Сквозное шифрование

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Обмен ключами[править | править код]

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

Современное использование[править | править код]

Общие принципы[править | править код]

Сквозное шифрование гарантирует, что доступ к исходному тексту сообщения имеется только у отправителя и получателя.[7] Это означает, что пользовательская информация становится недоступной даже серверам, передающим данные.[1][7]

Шифрование происходит на конечных устройствах пользователей, кроме того данные остаются зашифрованными, пока не будут доставлены к месту назначения, поэтому часто сквозное шифрование также называют "нулевой доступ" или "шифрование на стороне клиента".[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[en].

Проблемы[править | править код]

Атака «человек посередине»[править | править код]

Сквозное шифрование предусматривает, что контроль за перепиской осуществляется непосредственно пользователями. Одним из вариантов обхода сквозного шифрования для злоумышленника является захват под свой контроль канала связи между конечными точками, после этого он может попытаться выдать себя за получателя сообщения, чтобы, например, подменить открытый ключ. Чтобы не дать себя обнаружить, злоумышленник после дешифровки сообщения может зашифровать его ключом, который он разделяет с фактическим получателем, или его открытым ключом (в случае асимметричных систем) и снова отправить сообщение. Атаки такого типа принято называть атаками «человек посередине».[2][22]

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

Безопасность конечных точек[править | править код]

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

Бэкдоры[править | править код]

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

Примечания[править | править код]

  1. 1 2 3 What is End-to-End Encryption? (англ.). ProtonMail.
  2. 1 2 Hacker Lexicon: What Is End-to-End Encryption? (англ.). WIRED. Проверено 22 декабря 2015.
  3. J. H. Ellis. The possibility of secure non-secret digital encryption  (недоступная ссылка — история) (30 октября 2014). Проверено 19 января 2018. Архивировано 30 октября 2014 года.
  4. 1 2 End-to-End Encryption (англ.). WhatsApp.
  5. Chris Alexander, Ian Avrum Goldberg (February 2007). «Improved User Authentication in Off-The-Record Messaging» (Association for Computing Machinery): 41–47. DOI:10.1145/1314333.1314340.
  6. End-to-End Encryption, Secret Chats (англ.). Telegram.
  7. 1 2 End-to-End Encryption. EFF Surveillance Self-Defence Guide. Electronic Frontier Foundation. Проверено 2 февраля 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 (17 июня 2015). Проверено 15 января 2018.
  10. John C. Klensin <john+smtp@jck.com>. Simple Mail Transfer Protocol (англ.). tools.ietf.org. Проверено 29 декабря 2017.
  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. Проверено 5 января 2018.
  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. Проверено 11 мая 2012.
  18. XMPP | About XMPP (англ.). xmpp.org. Проверено 5 января 2018.
  19. History of XMPP
  20. Borisov N., Goldberg I., Brewer E. Off-the-record communication, or, why not to use PGP (2004).
  21. Off-the-Record Messaging. otr.cypherpunks.ca. Проверено 5 января 2018.
  22. 1 2 A Survey of Man In The Middle Attacks (англ.). IEEE Xplore.
  23. (September 1998) "Escaping the Evils of Centralized Control with self-certifying pathnames" (PostScript) in 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 (22 October 2013).
  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.
  27. Endpoint security management overview. Проверено 22 июля 2015.
  28. Goodin, Dan. Think your Skype messages get end-to-end encryption? Think again. Ars Technica (20 May 2013).
  29. Greenwald, Glenn; MacAskill, Ewen; Poitras, Laura; Ackerman, Spencer; Rushe, Dominic. Microsoft handed the NSA access to encrypted messages. The Guardian (12 July 2013).