Алгоритм двойного трещотки - Википедия - Double Ratchet Algorithm
В криптография, то Двойной трещоточный алгоритм (ранее назывался Аксолотль Рэтчет[1][2]) это ключ алгоритм управления, разработанный Тревор Перрин и Мокси Марлинспайк в 2013 году. Может использоваться в составе криптографический протокол предоставлять сквозное шифрование за мгновенное сообщение. После первоначального обмен ключами он управляет текущим обновлением и обслуживанием недолговечных ключей сеанса. Он сочетает в себе так называемую криптографическую трещотку, основанную на Обмен ключами Диффи-Хеллмана (DH) и храповик на основе ключевая деривационная функция (KDF), например, хеш-функция, поэтому называется двойной трещоткой.
Разработчики называют алгоритм самовосстановлением, потому что при определенных условиях он не позволяет злоумышленнику получить доступ к открытому тексту сообщений («коммуникации») после компрометации сеансового ключа.[3] Это условие состоит в том, что между компрометацией ключа и рассматриваемой связи было по крайней мере одно сообщение, которое не было изменено злоумышленником. Это фактически вынуждает атакующего перехватить все общение между честными сторонами, поскольку он теряет доступ, как только между ними передается одно бескомпромиссное сообщение. Позднее это свойство было названо Тайна будущего, или же Посткомпромиссная безопасность.[4]
Этимология
"Аксолотль "относится к самовосстановительным свойствам саламандры. Термин" храповик "в криптографии используется по аналогии с механическим храповым механизмом. В механическом смысле храповик допускает движение только в одном направлении; криптографический храповик позволяет перемещать ключи только в одном направлении. генерируется предыдущим ключом, однако в отличие от механического храповика каждое состояние уникально.
Источник
Алгоритм двойного трещотки был разработан Тревором Перрином и Мокси Марлинспайком (Открытые системы Whisper ) в 2013 году и введен в Сигнальный протокол в феврале 2014 года. Алгоритм двойного храповика основан на храповике DH, который был представлен Сообщения без записи (OTR) и сочетает его с храповым механизмом с симметричным ключом, смоделированным по образцу Протокол обмена мгновенными сообщениями Silent Circle (SCIMP). Изначально трещотка была названа в честь находящейся под угрозой исчезновения водной саламандры. аксолотль, который имеет необычайные возможности самовосстановления. В марте 2016 года разработчики переименовали Axolotl Ratchet в алгоритм Double Ratchet, чтобы лучше различать храповик и полный протокол.[2] потому что некоторые использовали имя Аксолотль при обращении к сигнальному протоколу.[5][2]
Характеристики
Алгоритм двойного храпового механизма имеет свойства, которые уже давно были широко доступны в системах сквозного шифрования: шифрование содержимого на всем пути передачи, а также аутентификация удаленного узла и защита от манипуляции сообщениями. Как гибрид DH и KDF трещотки, он сочетает в себе несколько желаемых черт обоих принципов. Из OTR обмен сообщениями он принимает свойства прямая секретность и автоматическое восстановление секретности в случае компрометации сеансового ключа, прямая секретность с компрометацией секретного постоянного основного ключа, и правдоподобное отрицание за авторство сообщений. Кроме того, он позволяет обновлять сеансовый ключ без взаимодействия с удаленным узлом с помощью вторичных трещоток KDF. Дополнительный шаг по получению ключей предпринимается, чтобы обеспечить сохранение ключей сеанса для сообщений о нарушении порядка, не подвергая опасности следующие ключи.
Говорят[кем? ] для обнаружения переупорядочения, удаления и воспроизведения отправленных сообщений и улучшения свойств прямой секретности по сравнению с обменом сообщениями OTR.
В сочетании с инфраструктура открытого ключа для сохранения предварительно сгенерированных одноразовых ключей (предварительных ключей) он позволяет инициализировать сеансы обмена сообщениями без присутствия удаленного узла (асинхронная связь ). Использование тройного обмена ключами Диффи – Хеллмана (3-DH) в качестве начального метода обмена ключами улучшает свойства отрицания. Примером этого является протокол сигнала, который сочетает в себе алгоритм двойного храповика, предварительные ключи и рукопожатие 3-DH.[6] Протокол обеспечивает конфиденциальность, целостность, аутентификацию, согласованность участников, проверку получателя, прямую секретность, обратную секретность (также известную как будущая секретность), сохранение причинно-следственной связи, несвязанность сообщений, отказ от сообщений, отказ от участия и асинхронность.[7] Он не обеспечивает сохранение анонимности и требует серверов для ретрансляции сообщений и хранения материалов открытого ключа.[7]
Функционирование
Клиент обновляет материал сеансового ключа во взаимодействии с удаленным узлом, используя храповик Диффи – Хеллмана, когда это возможно, в противном случае - независимо с помощью храпового механизма хеширования. Следовательно, с каждым сообщением клиент, использующий двойной храповик, продвигает один из двух хеш-храповиков (один для отправки, один для приема), которые заполняются общим секретом от храпового механизма DH. В то же время он пытается использовать любую возможность, чтобы предоставить удаленному партнеру новое общедоступное значение DH и продвигать храповик DH всякий раз, когда приходит новое значение DH от удаленного партнера. Как только устанавливается новый общий секрет, инициализируется новый храповой механизм.
В качестве криптографических примитивов алгоритм двойного трещотки использует
- для трещотки DH
- Эллиптическая кривая Диффи – Хеллмана (ECDH) с Подкрутка25519,
- за коды аутентификации сообщений (MAC, аутентификация)
- Код аутентификации сообщения с ключом-хешем (HMAC) на основе SHA-256,
- для симметричного шифрования
- то Расширенный стандарт шифрования (AES), частично в цепочке блоков шифрования Режим (CBC) с набивка согласно PKCS # 5 и частично в режиме счетчика (CTR) без заполнения,
- для трещотки
- HMAC.[8]
Приложения
Ниже приводится список приложений, использующих алгоритм двойного храпового механизма или его индивидуальную реализацию:
Примечания
- ^ а б c d Через OMEMO протокол
- ^ Только в «секретных разговорах»
- ^ а б c d е ж грамм Через Сигнальный протокол
- ^ Третья сторона плагин необходимо устанавливать отдельно
- ^ а б Через Матрица протокол
- ^ Только в «режиме инкогнито»
- ^ По протоколу Зины
- ^ Только в «приватных разговорах»
- ^ Viber "использует те же концепции протокола" двойного храповика ", который используется в приложении Open Whisper Systems Signal"
- ^ По протоколу Proteus
Рекомендации
- ^ Перрин, Тревор (30 марта 2016 г.). «Сравнить версии». GitHub. Получено 9 апреля 2016.
- ^ а б c Марлинспайк, Мокси (30 марта 2016 г.). «Сигнал снаружи, сигнал внутри». Открытые системы Whisper. Получено 31 марта 2016.
- ^ Марлинспайк, Мокси (26 ноября 2013 г.). «Продвинутая криптографическая трещотка». Whpersystems.org. Открытые системы Whisper. Получено 16 января 2016.
Храповик в стиле OTR обладает прекрасным свойством «самовосстановления».
- ^ Cohn-Gordon, K .; Cremers, C .; Гаррат, Л. (2016). «О безопасности после компрометации». 29-й симпозиум по основам компьютерной безопасности (CSF), IEEE, 2016: 164–178. Дои:10.1109 / CSF.2016.19. ISBN 978-1-5090-2607-4. S2CID 5703986.
- ^ Cohn-Gordon et al. 2016 г., п. 1
- ^ Unger et al. 2015 г., п. 241
- ^ а б Unger et al. 2015 г., п. 239
- ^ Frosch et al. 2014 г.
- ^ "Безопасность". Cryptocat. Архивировано из оригинал 7 апреля 2016 г.. Получено 14 июля 2016.
- ^ Гринберг, Энди (4 октября 2016 г.). «Наконец-то вы все можете зашифровать Facebook Messenger, так что сделайте это». Проводной. Condé Nast. Получено 5 октября 2016.
- ^ Тюлени, Тара (17 сентября 2015 г.). «G DATA добавляет шифрование для безопасного мобильного чата». Журнал Infosecurity. Reed Exhibitions Ltd. Получено 16 января 2016.
- ^ «SecureChat». GitHub. G Данные. Получено 14 июля 2016.
- ^ Гринберг, Энди (18 мая 2016 г.). «С помощью Allo и Duo Google наконец-то шифрует разговоры от начала до конца». Проводной. Condé Nast. Получено 14 июля 2016.
- ^ "Атрибуция убежища". GitHub. Guardian Project. Получено 22 декабря 2017.
- ^ Ли, Мика (22 декабря 2017 г.). «Новое приложение Сноудена использует ваш смартфон для физической защиты ноутбука». Перехват. Право первого выбора. Получено 22 декабря 2017.
- ^ Лэнгли, Адам (9 ноября 2013 г.). «Проволока в новой храповой системе». GitHub (Вклад GitHub). Получено 16 января 2016.
- ^ Мясник, Майк (19 сентября 2016 г.). «Riot хочет быть похожим на Slack, но с гибкостью базовой платформы с открытым исходным кодом». TechCrunch. AOL Inc. Получено 20 сентября 2016.
- ^ "Тихий круг / либзина". Github. Тихий круг. Получено 19 декабря 2017.
- ^ Лунд, Джошуа (11 января 2018 г.). «Signal сотрудничает с Microsoft, чтобы внедрить в Skype сквозное шифрование». Открытые системы Whisper. Получено 11 января 2018.
- ^ «Обзор шифрования Viber» (PDF). Viber. 25 июля 2018 г.. Получено 26 октября 2018.
- ^ Мец, Кейд (5 апреля 2016 г.). «Забудьте об Apple и ФБР: WhatsApp только что включил шифрование для миллиарда человек». Проводной. Condé Nast. Получено 5 апреля 2016.
- ^ "Белая книга по безопасности проводов" (PDF). Wire Swiss GmbH. 17 августа 2018 г.. Получено 28 августа 2020.
Литература
- Кон-Гордон, Катриэль; Cremers, Cas; Даулинг, Бенджамин; Гаррат, Люк; Стебила, Дуглас (25 октября 2016 г.). «Формальный анализ безопасности протокола передачи сигналов» (PDF). Архив криптологии ePrint. Международная ассоциация криптологических исследований (IACR).
- Фрош, Тилман; Майнка, Кристиан; Бадер, Кристоф; Бергсма, Флориан; Швенк, Йорг; Хольц, Торстен (2014). "Насколько безопасен TextSecure?" (PDF). Архив криптологии ePrint. Международная ассоциация криптологических исследований (IACR). Получено 16 января 2016.
- Унгер, Ник; Дечан, Сергей; Бонно, Жозеф; Фахл, Саша; Перл, Хеннинг; Гольдберг, Ян Аврум; Смит, Мэтью (2015). SoK: безопасный обмен сообщениями (PDF). Материалы симпозиума IEEE 2015 г. по безопасности и конфиденциальности. Технический комитет IEEE Computer Society по безопасности и конфиденциальности. С. 232–249. Дои:10.1109 / SP.2015.22.
внешняя ссылка
- Технические характеристики к Открытые системы Whisper
- "Расширенный криптографический храповик ", абстрактное описание Мокси Марлинспайк
- Olm: реализация на C ++ под Лицензия Apache