Наскрізне шифрування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Наскрізне шифрування (також кінцеве шифрування; англ. end-to-end encryption) — спосіб передачі даних, в якому тільки користувачі, що беруть участь в спілкуванні, мають доступ до повідомлень.[1] Таким чином, використання наскрізного шифрування не дозволяє отримати доступ до криптографічних ключів з боку третіх осіб.[2]

Обмін ключами[ред. | ред. код]

Для обміну ключами можуть бути застосовані симетричний і асиметричний алгоритми.[3] Наскрізне шифрування припускає, що ключі шифрування відомі тільки сторонам, які спілкуються між собою. Для реалізації цієї умови може бути використана схема з попереднім поділом секрету або, наприклад, протокол Діффі-Хелмана, який використовується в месенджерах WhatsApp[4] і Telegram[5][6]

Сучасне використання[ред. | ред. код]

Загальні принципи[ред. | ред. код]

Наскрізне шифрування гарантує, що доступ до вихідного тексту повідомлення є тільки у відправника і одержувача.[7] Це означає, що інформація стає недоступною навіть для серверів, що передають дані.[7][1]

Шифрування відбувається на кінцевих пристроях користувачів, крім того дані залишаються зашифрованими, поки не будуть доставлені до місця призначення, тому часто наскрізне шифрування також називають "нульовий доступ" або "шифрування на стороні клієнта".[8] Однак, слід розрізняти кінцеве шифрування при передачі даних та шифрування на стороні клієнта при зберіганні даних.[1]

Електронна пошта[ред. | ред. код]

Одним з перших стандартів для асинхронного обміну повідомленнями є протокол SMTP.[9] Цей протокол, спочатку використовується тільки для передачі електронної пошти, у первісній своїй реалізації не забезпечував конфіденційність листування за допомогою наскрізного шифрування.[10] У 1991 році Філіпом Цимерманом був створений пакет програмного забезпечення для шифрування електронної пошти PGP. Бібліотека отримала широке розповсюдження по всьому світу, тому багато компаній хотіли створювати власну, сумісну з PGP.[11] Після цього в 1997 році IETF остаточно визначила набір стандартів для наскрізного шифрування електронної пошти, який назвали OpenPGP.[12] OpenPGP реалізований в програмному забезпеченні систем з відкритим вихідним кодом, таких як Enigmail для Thunderbird, а також в мобільних додатках, таких як IPGMail для iOS[13] і в системі управління ключами Openkeychain для Android[14] та інших.[15]

У 1999 році Фондом вільного програмного забезпечення була розроблена реалізація OpenPGP, яка отримала назву GnuPG. Вона відповідає стандартам специфікації OpenPGP, виступаючи в якості основи безкоштовного програмного забезпечення для більшості сучасних додатків з підтримкою PGP.[16]

Месенджери і чати[ред. | ред. код]

На відміну від електронної пошти, яка використовує асинхронний обмін повідомленнями, системи миттєвого обміну повідомленнями від самого початку використовували синхронну передачу даних, однак сьогодні багато месенджерів дозволяють здійснювати асинхронну доставку повідомлень. Останнім часом такі системи стають більш популярними порівняно з поштовими клієнтами, так як вони також надають підтримку передачі відео, файлів і голосу.[17]

У 1998 році Джеремі Міллером почалася розробка проекту Jabber, який надалі отримав назву XMPP. XMPP надає технологію для асинхронного обміну структурованими даними в розподіленій мережі з участю клієнтів і серверів, що підтримують присутність. Щоб підвищити рівень безпеки у нових специфікаціях протоколу буде додана підтримка наскрізного шифрування, так як зараз інформація, передана за допомогою XMPP, за замовчуванням не шифруються, хоча в ньому і використовуються вбудовані протоколи SASL і TLS.[18] Спочатку саме відкритий стандарт протоколу XMPP, розроблений IETF, використовувався в більшості систем миттєвого обміну повідомленнями, таких як Google Talk.[19]

Протокол OTR, випущений в 2004 році, є розширенням XMPP з метою забезпечити наскрізне шифрування. Він також забезпечує оповіщення користувачів, на відміну від PGP, яке згодом може бути використано в якості запису про встановлення з'єднання і ідентифікації учасників. OTR в якомусь сенсі можна вважати оновленням безпеки в PGP, так як він не зберігає довгострокових відкритих ключів, які можуть бути скомпрометовані. До недоліків OTR можна віднести відсутність підтримки групових чатів та асинхронного обміну повідомлень, так як він призначений для синхронного обміну повідомленнями між двома людьми.[20][21]

Кілька сучасних месенджерів використовують для шифрування Signal Protocol.

Проблеми[ред. | ред. код]

Атака «людина посередині»[ред. | ред. код]

Наскрізне шифрування передбачає, що контроль за листуванням здійснюється безпосередньо користувачами. Одним з варіантів обходу наскрізного шифрування для зловмисника є захоплення під свій контроль каналу зв'язку між кінцевими точками, після цього він може спробувати видати себе за одержувача повідомлення, щоб, наприклад, підмінити відкритий ключ. Щоб не дати себе виявити, зловмисник після дешифрування повідомлення може зашифрувати його ключем, який він або вона поділяє з фактичним одержувачем, або його або її відкритим ключем у випадку асиметричних систем, і знову відправити повідомлення. Атаки такого типу прийнято називати атаками «людина посередині». [2][22]

Для запобігання MITM-атак більшість криптографічних протоколів використовують автентифікацію. Для цього можуть використовуватися, наприклад, центри сертифікації. Альтернативним методом є створення відбитків відкритого ключа на основі загальнодоступних відкритих ключів користувачів або загальних секретних ключів. Перш ніж почати розмову сторони порівнюють свої відбитки відкритих ключів з використанням зовнішнього каналу зв'язку, який гарантує цілісність та автентичність зв'язку, при цьому він не обов'язково повинен бути секретним. Якщо відбитки пальців збігаються, значить атака «людина посередині» не була проведена.[22][23]

Безпека кінцевих точок[ред. | ред. код]

Іншим способом обходу наскрізного шифрування є атака безпосередньо на кінцеві точки доступу. Кожне пристрій користувача може бути зламано, з метою вкрасти криптографічний ключ (для створення атаки «людина посередині») або просто прочитати дешифровані повідомлення користувачів.[4] Для уникнення такого роду спроб злому, необхідно забезпечити відповідний захист пристроїв за допомогою програмних або інших методів.[24] Основними спробами підвищити безпеку кінцевих точок були виділення ключових операцій генерації, зберігання і криптографії на смарт-карту, наприклад, у Project Vault Google.[25] Тим не менш, так як введення і виведення відкритого тексту видно в системі, то ці підходи не здатні захистити від клавіатурних шпигунів і шкідливого програмного забезпечення, яке може відстежувати розмови в режимі реального часу.[26] Більше надійний підхід полягає у фізичній ізоляції пристрою.[27]

Бекдори[ред. | ред. код]

Компанії можуть також (самостійно чи з примусу) впроваджувати у своє програмне забезпечення бекдори, які допомагають порушити узгодження ключа або обійти шифрування. Згідно інформації, розкритої Едвардом Сноуденом в 2013 році, Skype містив бекдор, який дозволяв Microsoft передавати в АНБ повідомлення користувачів, незважаючи на те, що офіційно ці повідомлення піддавалися наскрізного шифруванню.[28][29]

Примітки[ред. | ред. код]

  1. а б в What is End-to-End Encryption?. ProtonMail (en-US). 
  2. а б Hacker Lexicon: What Is End-to-End Encryption?. WIRED (en-US). Процитовано 22 December 2015. 
  3. J. H. Ellis (2014-10-30). The possibility of secure non-secret digital encryption. Архів оригіналу за 2014-10-30. Процитовано 2018-01-19. 
  4. а б End-to-End Encryption. WhatsApp (en-US). 
  5. Chris Alexander, Ian Avrum Goldberg (February 2007). Improved User Authentication in Off-The-Record Messaging. Proceedings of the 2007 ACM workshop on Privacy in electronic society (New York: Association for Computing Machinery): 41–47. doi:10.1145/1314333.1314340. 
  6. End-to-End Encryption, Secret Chats. Telegram (en-US). 
  7. а б End-to-End Encryption. EFF Surveillance Self-Defence Guide. Electronic Frontier Foundation. Процитовано 2 February 2016. 
  8. Ksenia Ermoshina, Francesca Musiani, Harry Halpin. End-to-end Encrypted Messaging Protocols: An Overview. 
  9. SMTP and the Evolution of Email | SendGrid. SendGrid (en-US). 2015-06-17. Процитовано 2018-01-15. 
  10. John C. Klensin <john+smtp@jck.com>. Simple Mail Transfer Protocol. tools.ietf.org. Процитовано 2017-12-29. 
  11. History of PGP. August 15, 2016. 
  12. About OpenPGP. August 15, 2016. 
  13. PGP for iOS. iPGMail. October 25, 2016. 
  14. OpenKeychain-Team. About · OpenKeychain. www.openkeychain.org. Процитовано 2018-01-05. 
  15. OpenPGP Software. September 27, 2017. 
  16. GnuPG 2.2.3 released. November 21, 2017. 
  17. Tom Van Vleck. Instant Messaging on CTSS and Multics. Multicians.org. Процитовано 2012-05-11. 
  18. XMPP | About XMPP. xmpp.org. Процитовано 2018-01-05. 
  19. History of XMPP
  20. Borisov N., Goldberg I., Brewer E (2004). Off-the-record communication, or, why not to use PGP. 
  21. Off-the-Record Messaging. otr.cypherpunks.ca. Процитовано 2018-01-05. 
  22. а б A Survey of Man In The Middle Attacks. IEEE Xplore (en-US). 
  23. David Mazières; M. Frans Kaashoek (September 1998). Escaping the Evils of Centralized Control with self-certifying pathnames (PostScript) Proceedings of the 8th ACM SIGOPS European workshop: Support for composing distributed applications. Sintra, Portugal: MIT. Процитовано 2006-12-23. 
  24. What is Endpoint Security? | How does Endpoint Protection Works?. Comodo (en). 2013-10-22. 
  25. Julie Bort, Matt Weinberger "Google's Project Vault is a tiny computer for sending secret messages", Business Insider, NYC May 29, 2015
  26. Keyloggers: Increasing threats to computer security and privacy. IEEE Xplore (en-US). 
  27. Endpoint security management overview. Процитовано 2015-07-22. 
  28. Goodin, Dan (20 May 2013). Think your Skype messages get end-to-end encryption? Think again. Ars Technica. 
  29. Greenwald, Glenn; MacAskill, Ewen; Poitras, Laura; Ackerman, Spencer; Rushe, Dominic (12 July 2013). Microsoft handed the NSA access to encrypted messages. The Guardian.