Сквозное шифрование
Сквозное шифрование (также оконечное шифрование; англ. end-to-end encryption) — способ передачи данных, в котором только пользователи, участвующие в общении, имеют доступ к сообщениям. Таким образом, использование сквозного шифрования не позволяет третьим лицам получить доступ к криптографическим ключам.[1]
Обмен ключами
Для обмена ключами могут быть применены симметричный и асимметричный алгоритмы.[2] Сквозное шифрование предполагает, что ключи шифрования известны только общающимся между собой сторонам. Для реализации данного условия может быть использована схема с предварительным разделением секрета или, например, протокол Диффи-Хелмана, который используется в мессенджерах WhatsApp, Signal (по умолчанию)[3] и Telegram (в секретных чатах)[4][5].
Современное использование
Общие принципы
Сквозное шифрование гарантирует, что доступ к исходному тексту сообщения имеется только у отправителя и получателя.[6] Это означает, что информация в чате становится недоступной даже серверам, передающим данные.[6]
Шифрование и дешифрование происходит на конечных устройствах пользователей. Кроме того, данные остаются зашифрованными, пока не будут доставлены к месту назначения. Поэтому часто сквозное шифрование также называют «нулевой доступ» или «шифрование на стороне клиента». Однако, следует различать оконечное шифрование при передаче данных и шифрование на стороне клиента при хранении данных.
Электронная почта
Одним из первых стандартов для асинхронного обмена сообщениями является протокол SMTP[7]. Этот протокол, изначально использовавшийся только для передачи электронной почты, в первоначальной своей реализации не обеспечивал конфиденциальности переписки при помощи сквозного шифрования[8]. В 1991 году Филиппом Циммерманом был создан пакет программного обеспечения для шифрования электронной почты PGP. Библиотека получила широкое распространение по всему миру, поэтому у многих компаний возникло желание создавать собственное ПО, совместимое с PGP[9]. После этого в 1997 году IETF окончательно определила набор стандартов для сквозного шифрования электронной почты, который назвали OpenPGP[10]. OpenPGP реализован в программном обеспечении систем с открытым исходным кодом, таких как Enigmail для Thunderbird, а также в мобильных приложениях, таких как IPGMail для iOS[11] и в системе управления ключами Openkeychain для Android[12] и других[13].
В 1999 году Фондом свободного программного обеспечения была разработана реализация OpenPGP, которая получила название GnuPG. Она соответствует стандартам спецификации OpenPGP, выступая в качестве основы свободного программного обеспечения для большинства современных приложений с поддержкой PGP[14].
Мессенджеры и чаты
В отличие от электронной почты, которая использует асинхронный обмен сообщениями, системы мгновенного обмена сообщениями изначально использовали синхронную передачу данных, однако сегодня многие мессенджеры позволяют осуществлять асинхронную доставку сообщений. В последнее время такие системы становятся более популярными по сравнению с почтовыми клиентами, так как они также предоставляют поддержку передачи видео, файлов и голоса[15].
В 1998 году Джереми Миллером началась разработка проекта Jabber, который впоследствии получил название XMPP. XMPP предоставляет технологию для асинхронного обмена структурированными данными в распределенной сети с участием клиентов и серверов, поддерживающую уведомления о присутствии. Чтобы повысить уровень безопасности, в новых спецификациях протокола будет добавлена поддержка сквозного шифрования, так как сейчас информация, переданная посредством XMPP, по умолчанию не шифруется, хотя в нем и используются встроенные протоколы SASL и TLS[16]. Первоначально именно открытый стандарт протокола XMPP, разработанный IETF, использовался в большинстве систем мгновенного обмена сообщениями, таких как Google Talk.[17].
Протокол OTR, выпущенный в 2004 году, является расширением XMPP с целью обеспечить сквозное шифрование. Он также обеспечивает оповещение пользователей, в отличие от PGP, которое впоследствии может быть использовано в качестве записи об установке соединения и идентификации участников. OTR в каком-то смысле можно считать обновлением безопасности по PGP, так как он не хранит долгосрочных открытых ключей, которые могут быть скомпрометированы. К недостаткам OTR можно отнести отсутствие поддержки групповых чатов и асинхронного обмена сообщений, так как он предназначен для синхронного обмена сообщениями между двумя людьми[18][19].
Несколько современных мессенджеров используют для шифрования Signal Protocol.
Проблемы
Атака «человек посередине»
Сквозное шифрование предусматривает, что контроль за перепиской осуществляется непосредственно пользователями. Одним из вариантов обхода сквозного шифрования для злоумышленника является захват под свой контроль канала связи между конечными точками, после этого он может попытаться выдать себя за получателя сообщения, чтобы, например, подменить открытый ключ. Чтобы не дать себя обнаружить, злоумышленник после дешифровки сообщения может зашифровать его ключом, который он разделяет с фактическим получателем, или его открытым ключом (в случае асимметричных систем) и снова отправить сообщение. Атаки такого типа принято называть атаками «человек посередине»[1][20] - MITM (Man-In-The-Middle) .
Для предотвращения MITM-атак большинство криптографических протоколов используют аутентификацию. Для этого могут использоваться, например, центры сертификации. Альтернативным методом является создание отпечатков открытого ключа на основе общедоступных открытых ключей пользователей или общих секретных ключей. Прежде чем начать разговор, стороны сравнивают свои отпечатки открытых ключей с использованием внешнего канала связи, который гарантирует целостность и аутентичность связи, при этом он не обязательно должен быть секретным. Если отпечатки ключей совпадают, значит атака «человек посередине» не была произведена[20][21].
Безопасность конечных точек
Другим способом обхода сквозного шифрования является атака непосредственно на конечные точки доступа. Каждое устройство пользователя может быть взломано с целью украсть криптографический ключ (для создания атаки «человек посередине») или просто прочитать дешифрованные сообщения пользователей.[3] Для избежания такого рода попыток взлома необходимо обеспечить соответствующую защиту пользовательских устройств с помощью программных или иных методов.[22] Основными попытками повысить безопасность конечных точек были выделение ключевых операций генерации, хранения и криптографии на смарт-карту, например, в Project Vault Google[23]. Тем не менее, так как ввод и вывод открытого текста видны в системе, то эти подходы не способны защитить от клавиатурных шпионов и вредоносного программного обеспечения, которое может отслеживать разговоры в режиме реального времени[24]. Более надежный подход заключается в физической изоляции устройства[25].
Бэкдоры
Компании могут также (самостоятельно или по принуждению) внедрять в свое программное обеспечение бэкдоры, которые помогают нарушить согласование ключа или обойти шифрование. Согласно информации, раскрытой Эдвардом Сноуденом в 2013 году, Skype содержал бэкдор, который позволял Microsoft передавать в АНБ сообщения пользователей, несмотря на то, что официально эти сообщения подвергались сквозному шифрованию[26][27].
Примечания
- ↑ 1 2 Hacker Lexicon: What Is End-to-End Encryption? (англ.). WIRED. Дата обращения: 22 декабря 2015.
- ↑ J. H. Ellis. The possibility of secure non-secret digital encryption (30 октября 2014). Дата обращения: 19 января 2018. Архивировано из оригинала 30 октября 2014 года.
- ↑ 1 2 End-to-End Encryption (англ.). WhatsApp. Дата обращения: 23 декабря 2017. Архивировано 2 июня 2018 года.
- ↑ Chris Alexander, Ian Avrum Goldberg. Improved User Authentication in Off-The-Record Messaging (англ.) // Proceedings of the 2007 ACM workshop on Privacy in electronic society : journal. — New York: Association for Computing Machinery, 2007. — February. — P. 41—47. — doi:10.1145/1314333.1314340. Архивировано 27 февраля 2016 года.
- ↑ End-to-End Encryption, Secret Chats (англ.). Telegram. Дата обращения: 23 декабря 2017. Архивировано 20 марта 2018 года.
- ↑ 1 2 End-to-End Encryption . EFF Surveillance Self-Defence Guide. Electronic Frontier Foundation. Дата обращения: 2 февраля 2016. Архивировано 5 марта 2016 года.
- ↑ "SMTP and the Evolution of Email | SendGrid". SendGrid (англ.). 2015-06-17. Архивировано 16 января 2018. Дата обращения: 15 января 2018.
- ↑ John C. Klensin <john+smtp@jck.com>. Simple Mail Transfer Protocol (англ.). tools.ietf.org. Дата обращения: 29 декабря 2017. Архивировано 16 января 2015 года.
- ↑ History of PGP (15 августа 2016). Дата обращения: 19 января 2018. Архивировано 15 мая 2018 года.
- ↑ About OpenPGP (15 августа 2016). Дата обращения: 5 января 2018. Архивировано 15 мая 2018 года.
- ↑ PGP for iOS . iPGMail (25 октября 2016). Дата обращения: 5 января 2018. Архивировано 25 апреля 2018 года.
- ↑ OpenKeychain-Team. About · OpenKeychain . www.openkeychain.org. Дата обращения: 5 января 2018. Архивировано из оригинала 5 января 2018 года.
- ↑ OpenPGP Software (27 сентября 2017). Дата обращения: 5 января 2018. Архивировано 27 августа 2016 года.
- ↑ GnuPG 2.2.3 released (21 ноября 2017). Дата обращения: 5 января 2018. Архивировано 15 декабря 2017 года.
- ↑ Tom Van Vleck. Instant Messaging on CTSS and Multics . Multicians.org. Дата обращения: 11 мая 2012. Архивировано 2 декабря 2017 года.
- ↑ XMPP | About XMPP (англ.). xmpp.org. Дата обращения: 5 января 2018. Архивировано 18 октября 2018 года.
- ↑ History of XMPP . Дата обращения: 5 января 2018. Архивировано 12 февраля 2011 года.
- ↑ Borisov N., Goldberg I., Brewer E. Off-the-record communication, or, why not to use PGP (2004). Дата обращения: 5 января 2018. Архивировано 25 июня 2018 года.
- ↑ Off-the-Record Messaging . otr.cypherpunks.ca. Дата обращения: 5 января 2018. Архивировано 12 апреля 2018 года.
- ↑ 1 2 A Survey of Man In The Middle Attacks (англ.). IEEE Xplore. Дата обращения: 22 декабря 2017. Архивировано 21 марта 2018 года.
- ↑ 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. Дата обращения: 23 декабря 2006. (недоступная ссылка)
- ↑ "What is Endpoint Security? | How does Endpoint Protection Works?". Comodo (англ.). 2013-10-22. Архивировано 2 декабря 2016.
- ↑ Julie Bort, Matt Weinberger «Google’s Project Vault is a tiny computer for sending secret messages» Архивная копия от 8 августа 2017 на Wayback Machine, Business Insider, NYC May 29, 2015
- ↑ Keyloggers: Increasing threats to computer security and privacy (англ.). IEEE Xplore.
- ↑ Endpoint security management overview . Дата обращения: 22 июля 2015. Архивировано 22 марта 2021 года.
- ↑ Goodin, Dan. Think your Skype messages get end-to-end encryption? Think again . Ars Technica (20 мая 2013). Дата обращения: 16 января 2018. Архивировано 22 декабря 2015 года.
- ↑ Greenwald, Glenn; MacAskill, Ewen; Poitras, Laura; Ackerman, Spencer; Rushe, Dominic. Microsoft handed the NSA access to encrypted messages . The Guardian (12 июля 2013). Дата обращения: 16 января 2018. Архивировано 19 ноября 2015 года.