Нефедеративный криптографический протокол
Signal Protocol (ранее известный как TextSecure Protocol ) — это нефедеративный криптографический протокол , который обеспечивает сквозное шифрование для голосовых и мгновенных сообщений . [2] Протокол был разработан Open Whisper Systems в 2013 году [2] и был представлен в приложении TextSecure с открытым исходным кодом , которое позже стало Signal . Несколько приложений с закрытым исходным кодом реализовали протокол, например WhatsApp , который, как говорят, шифрует разговоры «более миллиарда человек по всему миру» [3] или Google , который по умолчанию обеспечивает сквозное шифрование для всех разговоров на основе RCS между пользователями своего приложения Google Messages для индивидуальных разговоров. [4] Facebook Messenger также заявляет, что предлагает протокол для дополнительных секретных разговоров, как и Skype для своих приватных разговоров.
Протокол объединяет алгоритм двойного храпового механизма , предварительные ключи и тройное рукопожатие Диффи–Хеллмана на эллиптических кривых (3-DH) [5] и использует Curve25519 , AES-256 и HMAC-SHA256 в качестве примитивов . [6]
История
Разработка протокола Signal Protocol была начата Тревором Перрином и Мокси Марлинспайком (Open Whisper Systems) в 2013 году. Первая версия протокола, TextSecure v1, была основана на сообщениях Off-the-record (OTR). [7] [8]
24 февраля 2014 года Open Whisper Systems представила TextSecure v2, [9] который мигрировал в Axolotl Ratchet. [7] [10] Конструкция Axolotl Ratchet основана на эфемерном обмене ключами, который был представлен OTR, и объединяет его с симметричным ключом храповика, смоделированным по образцу протокола мгновенных сообщений Silent Circle (SCIMP). [1] Он принес поддержку асинхронной связи («офлайн-сообщений») в качестве своей главной новой функции, а также лучшую устойчивость с искаженным порядком сообщений и более простую поддержку разговоров с несколькими участниками. [11] Axolotl Ratchet был назван в честь находящейся под угрозой исчезновения водной саламандры Axolotl , которая обладает исключительными способностями к самовосстановлению. Разработчики называют алгоритм самовосстановлением, потому что он автоматически отключает злоумышленнику доступ к открытому тексту последующих сообщений после компрометации сеансового ключа . [1]
Третья версия протокола, TextSecure v3, внесла некоторые изменения в криптографические примитивы и сетевой протокол. [7] В октябре 2014 года исследователи из Рурского университета в Бохуме опубликовали анализ TextSecure v3. [6] [7] Среди других результатов они представили неизвестную атаку на общий ключ на протокол, но в целом они обнаружили, что он был безопасным. [12]
В марте 2016 года разработчики переименовали протокол в Signal Protocol. Они также переименовали Axolotl Ratchet в Double Ratchet algorithm, чтобы лучше различать храповой механизм и полный протокол [13], поскольку некоторые использовали название Axolotl, ссылаясь на полный протокол. [14] [13]
По состоянию на октябрь 2016 года [обновлять]протокол Signal основан на TextSecure v3, но с дополнительными криптографическими изменениями. [7] В октябре 2016 года исследователи из Оксфордского университета ( Великобритания) , Технологического университета Квинсленда ( Австралия ) и Университета Макмастера (Канада) опубликовали формальный анализ протокола, сделав вывод, что протокол является криптографически надежным. [15] [16]
Еще один аудит протокола был опубликован в 2017 году. [17]
Характеристики
Протокол обеспечивает конфиденциальность, целостность, аутентификацию , согласованность участников, проверку назначения, прямую секретность , безопасность после компрометации (т. н. будущую секретность), сохранение причинно-следственной связи, невозможность связывания сообщений, отказ от сообщений , отказ от участия и асинхронность. [18] Он не обеспечивает сохранение анонимности и требует серверов для ретрансляции сообщений и хранения материала открытого ключа. [18]
Протокол Signal также поддерживает сквозное шифрование групповых чатов. Протокол группового чата представляет собой комбинацию парного двойного храпового механизма и многоадресного шифрования . [18] В дополнение к свойствам, предоставляемым протоколом «один к одному», протокол группового чата обеспечивает согласованность говорящих, устойчивость к неупорядоченному удовлетворению, устойчивость к отброшенным сообщениям, вычислительное равенство, равенство доверия, обмен сообщениями в подгруппах, а также сжимаемое и расширяемое членство. [18]
Аутентификация
Для аутентификации пользователи могут вручную сравнивать отпечатки открытых ключей через внешний канал. [19] Это позволяет пользователям проверять личности друг друга и избегать атак типа «человек посередине» . [19] Реализация также может использовать механизм доверия при первом использовании , чтобы уведомлять пользователей об изменении ключа корреспондента. [19]
Метаданные
Протокол Signal не мешает компании сохранять информацию о том, когда и с кем общаются пользователи. [20] [21] Поэтому могут быть различия в том, как поставщики услуг обмена сообщениями решают обрабатывать эту информацию. Политика конфиденциальности Signal гласит, что идентификаторы получателей хранятся на серверах Signal только столько времени, сколько необходимо для передачи каждого сообщения. [22] В июне 2016 года Мокси Марлинспайк сказал The Intercept : «ближайшая часть информации к метаданным, которую хранит сервер Signal, — это последний раз, когда каждый пользователь подключался к серверу, и точность этой информации сводится к дню, а не к часу, минуте и секунде». [21]
В октябре 2018 года Signal Messenger объявили, что они внедрили функцию «запечатанного отправителя» в Signal, которая уменьшает объем метаданных, к которым имеют доступ серверы Signal, скрывая идентификатор отправителя. [23] [24] Идентификация отправителя передается получателю в каждом сообщении, но шифруется ключом, которого нет у сервера. [24] Это делается автоматически, если отправитель находится в контактах получателя или имеет доступ к его профилю Signal. [24] Пользователи также могут включить опцию получения сообщений «запечатанного отправителя» от неконтактов и людей, которые не имеют доступа к их профилю Signal. [24] Одновременное прослушивание устройства пользователя и/или серверов Signal может по-прежнему показать, что IP-адрес устройства обращался к серверу Signal для отправки или получения сообщений в определенное время. [23]
Использование
Open Whisper Systems впервые представила протокол в приложении TextSecure . Позже они объединили приложение для зашифрованных голосовых вызовов RedPhone с TextSecure и переименовали его в Signal .
В ноябре 2014 года Open Whisper Systems объявила о партнерстве с WhatsApp для предоставления сквозного шифрования путем включения протокола Signal в каждую клиентскую платформу WhatsApp. [25] Open Whisper Systems заявила, что они уже включили протокол в последний клиент WhatsApp для Android и что поддержка других клиентов, групповых/медиа сообщений и проверки ключей появится вскоре после этого. [26] 5 апреля 2016 года WhatsApp и Open Whisper Systems объявили, что они завершили добавление сквозного шифрования в «каждую форму общения» в WhatsApp, и что теперь пользователи могут проверять ключи друг друга. [27] [28] В феврале 2017 года WhatsApp анонсировал новую функцию WhatsApp Status, которая использует протокол Signal для защиты своего содержимого. [29] В октябре 2016 года материнская компания WhatsApp Facebook также развернула дополнительный режим под названием Secret Conversations в Facebook Messenger , который обеспечивает сквозное шифрование с использованием реализации протокола Signal. [30] [31] [32] [33]
В сентябре 2015 года компания G Data Software запустила новое приложение для обмена сообщениями под названием Secure Chat, которое использовало протокол Signal. [34] [35] G Data прекратила поддержку сервиса в мае 2018 года. [36]
В сентябре 2016 года Google запустил новое приложение для обмена сообщениями под названием Allo , в котором был предусмотрен дополнительный режим инкогнито, использующий протокол Signal для сквозного шифрования. [37] [38] В марте 2019 года Google прекратил поддержку Allo в пользу своего приложения Google Messages на Android. [39] [40] В ноябре 2020 года Google объявил, что будет использовать протокол Signal для обеспечения сквозного шифрования по умолчанию для всех разговоров на основе RCS между пользователями своего приложения Google Messages , начиная с индивидуальных разговоров. [4] [41]
В январе 2018 года Open Whisper Systems и Microsoft объявили о добавлении поддержки протокола Signal в дополнительный режим Skype под названием Private Conversations. [42] [43]
Влияние
Протокол Signal оказал влияние на другие криптографические протоколы. В мае 2016 года Viber заявил, что их протокол шифрования — это пользовательская реализация, которая «использует те же концепции», что и протокол Signal. [44] [45] Разработчики Forsta заявили, что их приложение использует пользовательскую реализацию протокола Signal. [46] [47] [ необходим сторонний источник ]
Алгоритм двойного храпового механизма , представленный как часть протокола Signal, также был принят другими протоколами. OMEMO — это протокол расширения XMPP (XEP), представленный в приложении обмена сообщениями Conversations и одобренный Фондом стандартов XMPP (XSF) в декабре 2016 года как XEP-0384. [48] [2] Matrix — это открытый протокол связи, включающий Olm, библиотеку, которая обеспечивает опциональное сквозное шифрование для каждой комнаты с помощью реализации алгоритма двойного храпового механизма. [2] Разработчики Wire заявили, что их приложение использует пользовательскую реализацию алгоритма двойного храпового механизма. [49] [50] [51]
Messaging Layer Security , предложение IETF , использует асинхронные храповые деревья для эффективного улучшения гарантий безопасности по сравнению с двойным храповым механизмом Signal . [52]
Реализации
Signal Messenger поддерживает эталонную реализацию библиотеки Signal Protocol, написанную на Rust под лицензией AGPLv3 на GitHub . Существуют привязки к Swift, Java, TypeScript, C и другим языкам, которые используют эталонную реализацию Rust.
Signal сохранил следующие устаревшие библиотеки:
Существуют также альтернативные библиотеки, написанные сторонними разработчиками на других языках, например TypeScript . [53]
Смотрите также
Ссылки
- ^ abc Marlinspike, Moxie (26 ноября 2013 г.). «Расширенный криптографический храповой механизм». Блог Signal . Open Whisper Systems . Архивировано из оригинала 24 марта 2017 г. Получено 23 сентября 2016 г.
- ^ abcde Ермошина, Ксения; Мусиани, Франческа; Халпин, Гарри (сентябрь 2016 г.). «Интернет-наука». В Баньоли, Франко; и др. (ред.). Интернет-наука . INSCI 2016. Конспекты лекций по информатике. Том. 9934. Флоренция, Италия: Спрингер. стр. 244–254. дои : 10.1007/978-3-319-45982-0_22. ISBN 978-3-319-45982-0.
- ^ "Интеграция протокола Signal в WhatsApp завершена". Signal . Блог Signal. 2016. Архивировано из оригинала 29 января 2021 г. Получено 5 апреля 2016 г.
- ^ ab Bohn, Dieter (19 ноября 2020 г.). «Google внедряет сквозное шифрование для RCS в бета-версии Android Messages». The Verge . Vox Media, Inc . Получено 28 ноября 2020 г. .
- ^ Унгер и др. 2015, стр. 241
- ^ ab Frosch et al. 2016
- ^ abcde Кон-Гордон и др. 2016, с. 2
- ^ "Протокол". Open Whisper Systems. 2 марта 2014 г. Архивировано из оригинала 7 января 2015 г. Получено 28 октября 2016 г. – через GitHub .
- ^ Донохью, Брайан (24 февраля 2014 г.). "TextSecure Sheds SMS in Latest Version". Threatpost . Архивировано из оригинала 15 февраля 2017 г. Получено 14 июля 2016 г.
- ^ "ProtocolV2". Open Whisper Systems. 2 марта 2014 г. Архивировано из оригинала 15 октября 2014 г. Получено 28 октября 2016 г. – через GitHub .
- ^ Унгер и др. 2015
- ^ Паули, Даррен (3 ноября 2014 г.). «Аудиторы обнаружили, что зашифрованный чат-клиент TextSecure безопасен». The Register . Архивировано из оригинала 4 ноября 2014 г. Получено 4 ноября 2014 г.
- ^ ab Marlinspike, Moxie (30 марта 2016 г.). «Сигнал снаружи, сигнал внутри». Блог Signal . Open Whisper Systems . Архивировано из оригинала 28 декабря 2016 г. Получено 9 апреля 2016 г.
- ^ Кон-Гордон и др. 2016, с. 1
- ^ Брук, Крис (10 ноября 2016 г.). «Signal Audit Reveals Protocol Cryptographically Sound». Threatpost . Kaspersky Lab. Архивировано из оригинала 14 февраля 2017 г. Получено 11 ноября 2016 г.
- ^ Кон-Гордон и др. 2016
- ^ Н. Кобейсси; К. Бхаргаван; Б. Бланше (2017). «Автоматизированная проверка протоколов безопасного обмена сообщениями и их реализаций: символический и вычислительный подход». Европейский симпозиум IEEE по безопасности и конфиденциальности 2017 г. (EuroS&P) (PDF) . стр. 435–450. doi :10.1109/EuroSP.2017.38. ISBN 978-1-5090-5762-7. S2CID 6717546. Архивировано (PDF) из оригинала 24 июля 2018 г. . Получено 29 августа 2020 г. .
- ^ abcd Унгер и др. 2015, с. 239
- ^ abc Роттерманнер и др. 2015, стр. 5
- ^ Роттерманнер и др. 2015, с. 4
- ^ ab Lee, Micah (22 июня 2016 г.). «Битва безопасных приложений для обмена сообщениями: как Signal побеждает WhatsApp». The Intercept . Архивировано из оригинала 19 февраля 2017 г. Получено 8 октября 2016 г.
- ^ "Политика конфиденциальности". Open Whisper Systems. nd Архивировано из оригинала 29 апреля 2017 года . Получено 8 октября 2016 года .
- ^ ab Dan Goodin (30 октября 2018 г.). "Новая функция конфиденциальности Signal удаляет идентификатор отправителя из метаданных". Ars Technica . Архивировано из оригинала 28 марта 2019 г. . Получено 28 марта 2019 г. .
- ^ abcd Lund, Joshua (29 октября 2018 г.). «Предварительный просмотр технологий: запечатанный отправитель для Signal». signal.org . Signal Messenger. Архивировано из оригинала 24 ноября 2018 г. . Получено 16 апреля 2019 г. .
- ^ Эванс, Джон (18 ноября 2014 г.). «WhatsApp Partners With Open Whisper Systems To End-To-End Encrypt Billions Of Messages A Day» (WhatsApp Partners With Open Whisper Systems To End-To-End Encrypt Billions Of Messages A Day). TechCrunch . Архивировано из оригинала 18 ноября 2014 г. Получено 14 марта 2016 г.
- ^ Marlinspike, Moxie (18 ноября 2014 г.). «Open Whisper Systems сотрудничает с WhatsApp для обеспечения сквозного шифрования». Open Whisper Systems. Архивировано из оригинала 18 ноября 2014 г. Получено 14 марта 2016 г.
- ^ Метц, Кейд (5 апреля 2016 г.). «Забудьте Apple против ФБР: WhatsApp только что включил шифрование для миллиарда человек». Wired . Архивировано из оригинала 5 апреля 2016 г. Получено 5 апреля 2016 г.
- ^ Ломас, Наташа (5 апреля 2016 г.). «WhatsApp завершает развертывание сквозного шифрования». TechCrunch . Архивировано из оригинала 6 апреля 2016 г. Получено 5 апреля 2016 г.
- ^ "WhatsApp Status". WhatsApp . Facebook. 20 февраля 2017 г. Архивировано из оригинала 23 февраля 2017 г. Получено 23 февраля 2017 г.
- ^ Айзек, Майк (8 июля 2016 г.). «Facebook добавит «Секретные беседы» в приложение Messenger». The New York Times . Архивировано из оригинала 12 июля 2016 г. Получено 12 июля 2016 г.
- ^ «Messenger начинает тестирование сквозного шифрования с секретными разговорами». Facebook. 8 июля 2016 г. Архивировано из оригинала 12 января 2018 г. Получено 11 января 2018 г.
- ^ Гринберг, Энди (8 июля 2016 г.). «Секретные разговоры: сквозное шифрование в Facebook Messenger». Wired . Архивировано из оригинала 11 июля 2016 г. Получено 12 июля 2016 г.
- ^ Гринберг, Энди (4 октября 2016 г.). «Вы все наконец-то можете зашифровать Facebook Messenger, так что сделайте это». Wired . Архивировано из оригинала 15 апреля 2017 г. Получено 5 октября 2016 г.
- ^ Seals, Tara (17 сентября 2015 г.). «G DATA добавляет шифрование для безопасного мобильного чата». Журнал Infosecurity . Архивировано из оригинала 22 июля 2016 г. Получено 14 июля 2016 г.
- ^ "SecureChat". G Data. Архивировано из оригинала 7 мая 2017 г. Получено 14 июля 2016 г. – через GitHub .
- ^ "G DATA Secure Chat wird eingestellt" (на немецком языке). G DATA Software AG. 18 мая 2018 г. Архивировано из оригинала 26 апреля 2019 г. Получено 26 апреля 2019 г.
- ^ Гринберг, Энди (18 мая 2016 г.). «С Allo и Duo Google наконец-то шифрует разговоры от начала до конца». Wired . Архивировано из оригинала 2 февраля 2017 г. . Получено 18 мая 2016 г. .
- ^ Гиббс, Сэмюэл (21 сентября 2016 г.). «Google запускает конкурента WhatsApp Allo – с Google Assistant». The Guardian . Архивировано из оригинала 7 января 2019 г. Получено 21 сентября 2016 г.
- ^ Портер, Джон (12 марта 2019 г.). «Google наконец-то прощается с Allo сегодня». The Verge . Vox Media. Архивировано из оригинала 12 марта 2019 г. Получено 26 апреля 2019 г.
- ^ Клейнер, Мэтт (5 декабря 2018 г.). «Последние новости о сообщениях, Allo, Duo и Hangouts». Архивировано из оригинала 13 апреля 2019 г. Получено 26 апреля 2019 г.
- ^ Омара, Эмад (ноябрь 2020 г.). «Обзор сквозного шифрования сообщений» (PDF) . gstatic.com . Google . Получено 28 ноября 2020 г. .
- ^ Ньюман, Лили Хей (11 января 2018 г.). «Skype внедряет сквозное шифрование для сотен миллионов людей». Wired . Архивировано из оригинала 12 января 2018 г. Получено 13 января 2018 г.
- ^ Лунд, Джошуа (11 января 2018 г.). «Signal сотрудничает с Microsoft, чтобы внедрить сквозное шифрование в Skype». Блог Signal . Open Whisper Systems. Архивировано из оригинала 2 февраля 2020 г. Получено 13 января 2018 г.
- ^ "Обзор шифрования Viber". Viber. 3 мая 2016 г. Архивировано из оригинала 11 июля 2016 г. Получено 8 июля 2017 г.
- ^ Эяль, Офир (3 мая 2016 г.). «Канада, Германия и Австралия получают шифрование e2e». Viber. Архивировано из оригинала 5 октября 2016 г. Получено 9 октября 2016 г.
- ^ u/tooker (9 апреля 2018 г.). "r/crypto - Forsta - Платформа обмена сообщениями на основе сигналов для предприятий". reddit . Архивировано из оригинала 2 мая 2018 г. Получено 6 февраля 2019 г.
- ^ "ForstaLabs/libsignal-node". GitHub . Forsta Inc. 3 февраля 2019 г. Архивировано из оригинала 13 июня 2018 г. Получено 6 февраля 2019 г.
- ^ Андреас Штрауб (7 декабря 2016 г.). "XEP-0384: OMEMO Encryption". Сайт XMPP Standards Foundation . Архивировано из оригинала 25 февраля 2017 г. Получено 28 апреля 2017 г.
- ^ "Добавить ссылку на источник". GitHub . Wire Swiss GmbH. 9 мая 2016 г. Архивировано из оригинала 7 мая 2017 г. Получено 9 октября 2016 г.
- ^ "Wire Security Whitepaper" (PDF) . Wire Swiss GmbH. 3 марта 2016 г. Архивировано (PDF) из оригинала 10 сентября 2018 г. Получено 7 февраля 2019 г.
- ^ Ломас, Наташа (16 декабря 2016 г.). «Зашифрованное приложение для обмена сообщениями Wire добавляет имена пользователей, чтобы вы могли ограничить то, чем делитесь с контактами». TechCrunch . Verizon Media. Архивировано из оригинала 9 февраля 2019 г. . Получено 8 февраля 2019 г. .
- ^ Барнс, Ричард; Бердуш, Бенджамин; Милликан, Джон; Омара, Эмад; Кон-Гордон, Катриэль; Роберт, Рафаэль (22 декабря 2020 г.). «Протокол безопасности уровня сообщений (MLS)». IETF. Архивировано из оригинала 6 июня 2021 г.
- ^ "libsignal-protocol-typescript". github.com . Получено 28 ноября 2020 г. .
Литература
- Cohn-Gordon, Katriel; Cremers, Cas; Dowling, Benjamin; Garratt, Luke; Stebila, Douglas (25 октября 2016 г.). "Формальный анализ безопасности протокола передачи сигналов". Архив Cryptology ePrint . Международная ассоциация криптологических исследований (IACR). Архивировано из оригинала 28 декабря 2016 г. . Получено 27 октября 2016 г. .
- Ермошина, Ксения; Мусиани, Франческа; Халпин, Гарри (сентябрь 2016 г.). «Интернет-наука». В Баньоли, Франко; и др. (ред.). Интернет-наука . INSCI 2016. Конспекты лекций по информатике. Том. 9934. Флоренция, Италия: Спрингер. стр. 244–254. дои : 10.1007/978-3-319-45982-0_22. ISBN 978-3-319-45982-0.
- Фрош, Тилман; Майнка, Кристиан; Бадер, Кристоф; Бергсма, Флориан; Швенк, Йорг; Хольц, Торстен (март 2016 г.). «Насколько безопасен TextSecure?». Европейский симпозиум IEEE по безопасности и конфиденциальности (EuroS&P) , 2016 г. Европейский симпозиум IEEE по безопасности и конфиденциальности 2016 г. (EuroS&P). Саарбрюккен, Германия: IEEE. стр. 457–472. CiteSeerX 10.1.1.689.6003 . дои :10.1109/ЕвроСП.2016.41. ISBN 978-1-5090-1752-2.
- Роттерманнер, Кристоф; Кизеберг, Питер; Хубер, Маркус; Шмидекер, Мартин; Шриттвизер, Себастьян (декабрь 2015 г.). Конфиденциальность и защита данных в мессенджерах для смартфонов (PDF) . Труды 17-й Международной конференции по интеграции информации и веб-приложениям и сервисам (iiWAS2015). Серия трудов Международной конференции ACM. ISBN 978-1-4503-3491-4. Архивировано (PDF) из оригинала 27 марта 2016 г. . Получено 25 сентября 2016 г. .
- Unger, Nik; Dechand, Sergej; Bonneau, Joseph; Fahl, Sascha; Perl, Henning; Goldberg, Ian Avrum; Smith, Matthew (2015). "SoK: Secure Messaging" (PDF) . Симпозиум IEEE 2015 года по безопасности и конфиденциальности . Труды симпозиума IEEE 2015 года по безопасности и конфиденциальности. Технический комитет IEEE Computer Society по безопасности и конфиденциальности. стр. 232–249. doi :10.1109/SP.2015.22. ISBN 978-1-4673-6949-7. Архивировано (PDF) из оригинала 4 марта 2016 г. . Получено 23 сентября 2016 г. .
- Рёслер, Пол; Майнка, Кристиан; Швенк, Йорг (2017). Больше значит меньше: о сквозной безопасности групповых чатов в Signal, WhatsApp и Threema. Архив Cryptology ePrint . Международная ассоциация криптологических исследований (IACR). Архивировано из оригинала 3 февраля 2019 г. . Получено 26 июня 2019 г. .
Внешние ссылки
- Официальный сайт
- «Протокол TextSecure: настоящее и будущее», доклад Тревора Перрина на NorthSec 2015 (видео)