Алгоритм двойного храпового механизма

В криптографии алгоритм двойного храповика (ранее называемый храповым механизмом Аксолотля) [2] [3] ) — алгоритм управления ключами , разработанный Тревором Перрином и Мокси Марлинспайком в 2013 году. Его можно использовать как часть криптографического протокола для обеспечения сквозного шифрования для обмена мгновенными сообщениями . После первоначального обмена ключами он управляет постоянным обновлением и обслуживанием кратковременных сеансовых ключей. Он сочетает в себе криптографический так называемый «храповик», основанный на обмене ключами Диффи-Хеллмана (DH), и храповик, основанный на функции деривации ключей (KDF), такой как хэш-функция , и поэтому называется двойным храповиком.
Алгоритм обеспечивает прямую секретность сообщений и неявное повторное согласование ключей пересылки; свойства, в честь которых назван протокол. [4]
История
[ редактировать ]Алгоритм двойного храпового механизма был разработан Тревором Перрином и Мокси Марлинспайком ( Open Whisper Systems ) в 2013 году и представлен как часть протокола сигналов в феврале 2014 года. Конструкция алгоритма двойного храпового механизма основана на храповом механизме DH, который был представлен Off-the- Запишите сообщения (OTR) и объедините их с храповым механизмом с симметричными ключами, созданным по образцу протокола обмена мгновенными сообщениями Silent Circle (SCIMP). Первоначально трещотка была названа в честь находящегося под угрозой исчезновения водного вида аксолотля саламандры , обладающего необычайными способностями к самовосстановлению. [5] В марте 2016 года разработчики переименовали Axolotl Ratchet в алгоритм Double Ratchet, чтобы лучше различать храповой механизм и полный протокол. [3] потому что некоторые использовали имя Аксолотль, говоря о Сигнальном Протоколе. [6] [3]
Обзор
[ редактировать ]
Алгоритм двойного храповика обладает свойствами, которые уже давно широко доступны в системах сквозного шифрования: шифрование содержимого на всем пути передачи, а также аутентификация удаленного узла и защита от манипуляций с сообщениями. Являясь гибридом трещоток DH и KDF , он сочетает в себе несколько желаемых характеристик обоих принципов. От обмена сообщениями OTR он перенимает свойства прямой секретности и автоматического восстановления секретности в случае компрометации сеансового ключа, прямой секретности с компрометацией секретного постоянного основного ключа и правдоподобного отрицания авторства сообщений. Кроме того, он позволяет обновлять ключ сеанса без взаимодействия с удаленным узлом с помощью вторичных храповиков KDF. Дополнительный этап создания ключа позволяет сохранить сеансовые ключи для сообщений, находящихся в неправильном порядке, не ставя под угрозу следующие ключи.
Говорят [ кем? ] для обнаружения изменения порядка, удаления и повтора отправленных сообщений, а также для улучшения свойств прямой секретности против пассивного прослушивания по сравнению с обменом сообщениями OTR.
В сочетании с инфраструктурой открытых ключей для хранения предварительно сгенерированных одноразовых ключей (предварительных ключей) это позволяет инициализировать сеансы обмена сообщениями без присутствия удаленного узла ( асинхронная связь ). Использование тройного обмена ключами Диффи-Хеллмана (3-DH) в качестве метода первоначального обмена ключами улучшает свойства отрицания. Примером этого является протокол Signal, который сочетает в себе алгоритм двойного храпового механизма, предварительные ключи и рукопожатие 3-DH. [7] Протокол обеспечивает конфиденциальность, целостность, аутентификацию, согласованность участников, проверку места назначения, прямую секретность, обратную секретность (также известную как будущая секретность), сохранение причинно-следственной связи, несвязность сообщений, отказ от сообщений, отказ от участия и асинхронность. [8] Он не обеспечивает сохранение анонимности и требует серверов для ретрансляции сообщений и хранения материалов открытого ключа. [8]
Функционирование
[ редактировать ]Клиент пытается обновить материал сеансового ключа в интерактивном режиме с удаленным узлом, используя храповик Диффи-Хеллмана (DH). Если это невозможно, клиенты обновляют сеансовый ключ самостоятельно, используя хеш-храповик. С каждым сообщением клиент выдвигает один из двух хэш-храповиков — один для отправки и один для получения. Эти два хэш-ращотки получают общий секрет от храповика DH. В то же время он пытается использовать любую возможность, чтобы предоставить удаленному узлу новое общедоступное значение DH и продвигать храповик DH всякий раз, когда поступает новое значение DH от удаленного узла. Как только устанавливается новый общий секрет, инициализируется новый хэш-храповик.
В качестве криптографических примитивов алгоритм двойного храповика использует
- для трещотки DH
- Эллиптическая кривая Диффи-Хеллмана (ECDH) с Curve25519 ,
- для кодов аутентификации сообщений (MAC, аутентификация)
- Код аутентификации сообщения с хеш-ключом (HMAC) на основе SHA-256 ,
- для симметричного шифрования
- Расширенный стандарт шифрования (AES), частично в режиме цепочки блоков шифра (CBC) с заполнением согласно PKCS #5 и частично в режиме счетчика (CTR) без заполнения,
- для хэш-трещотки
- ХМАС. [9]
Приложения
[ редактировать ]Ниже приведен список приложений, использующих алгоритм двойного храповика или его специальную реализацию:
- ЧатБезопасный [а]
- Разговоры [а]
- Криптокот [а] [10]
- Facebook Мессенджер [б] [с] [11]
- G Data Безопасный чат [с] [12] [13]
- Не унывать [а]
- ГНОМ Фрактал [д]
- Google Алло [и] [с] [14]
- Google Сообщения [ф] [с] [15]
- Хейвен [с] [16] [17]
- Пруд [18]
- Элемент [д] [19]
- Сигнал [с]
- Тихий телефон [г] [20]
- Скайп [час] [с] [21]
- Вайбер [я] [22]
- WhatsApp [с] [23]
- Проволока [Дж] [24]
Примечания
[ редактировать ]- ^ Перейти обратно: а б с д По OMEMO протоколу
- ^ Только в «Секретных беседах»
- ^ Перейти обратно: а б с д и ж г час Через сигнальный протокол
- ^ Перейти обратно: а б Через Matrix протокол
- ^ Только в «режиме инкогнито».
- ^ Только в индивидуальных чатах RCS.
- ^ Через протокол Зины
- ^ Только в "частных беседах"
- ^ Viber «использует те же концепции протокола «двойного храповика», которые используются в приложении Open Whisper Systems Signal»
- ^ Через протокол Протеуса
Ссылки
[ редактировать ]- ^ Тревор Перрин (редактор), Мокси Марлинспайк, « Алгоритм двойного храповика » . Редакция 1, 20 ноября 2016 г.
- ^ Перрин, Тревор (30 марта 2016 г.). «Сравнить версии» . Гитхаб . Проверено 9 апреля 2016 г.
- ^ Перейти обратно: а б с Марлинспайк, Мокси (30 марта 2016 г.). «Сигнал снаружи, сигнал внутри» . Открытые системы шепота . Проверено 31 марта 2016 г.
- ^ Кон-Гордон, К.; Кремерс, К.; Гарратт, Л. (2016). «О посткомпромиссной безопасности» . 29-й симпозиум IEEE по основам компьютерной безопасности (CSF) , 2016 г. стр. 164–178. дои : 10.1109/CSF.2016.19 . ISBN 978-1-5090-2607-4 . S2CID 5703986 .
- ^ Ксения Ермошина, Франческа Мусиани. «Стандартизация путем выполнения кода»: протокол Signal и фактическая стандартизация сквозного зашифрованного обмена сообщениями. Истории Интернета, 2019, стр.1-21. �10.1080/24701475.2019.1654697�. �халшс-02319701�
- ^ Кон-Гордон и др. 2016 , с. 1
- ^ Унгер и др. 2015 , с. 241.
- ^ Перейти обратно: а б Унгер и др. 2015 , с. 239.
- ^ Лягушка и др. 2014 год
- ^ "Безопасность" . Криптокат. Архивировано из оригинала 7 апреля 2016 года . Проверено 14 июля 2016 г.
- ^ Гринберг, Энди (4 октября 2016 г.). «Наконец-то вы все можете зашифровать Facebook Messenger, так что сделайте это» . Проводной . Конде Наст . Проверено 5 октября 2016 г.
- ^ Силс, Тара (17 сентября 2015 г.). «G DATA добавляет шифрование для безопасного мобильного чата» . Журнал Инфобезопасность . ООО "Рид Выставочник" . Проверено 16 января 2016 г. .
- ^ «Безопасный чат» . Гитхаб . Г-данные . Проверено 14 июля 2016 г.
- ^ Гринберг, Энди (18 мая 2016 г.). «Благодаря Allo и Duo Google наконец-то обеспечивает сквозное шифрование разговоров» . Проводной . Конде Наст . Проверено 14 июля 2016 г.
- ^ Амадео, Рон (16 июня 2021 г.). «Google включает сквозное шифрование для стандартного приложения Android SMS/RCS» . Арс Техника . Проверено 3 марта 2022 г.
- ^ «Атрибуции Хейвена» . Гитхаб . Проект «Гардиан» . Проверено 22 декабря 2017 г.
- ^ Ли, Мика (22 декабря 2017 г.). «Новое приложение Сноудена использует ваш смартфон для физической защиты вашего ноутбука» . Перехват . СМИ первого взгляда . Проверено 22 декабря 2017 г.
- ^ Лэнгли, Адам (9 ноября 2013 г.). «Проволока в новую храповую систему» . GitHub (вклад GitHub) . Проверено 16 января 2016 г. .
- ^ Мясник, Майк (19 сентября 2016 г.). «Riot хочет быть похожим на Slack, но с гибкостью базовой платформы с открытым исходным кодом» . ТехКранч . АОЛ Инк . Проверено 20 сентября 2016 г.
- ^ «Тихий круг/либзина» . Гитхаб . Тихий круг . Проверено 19 декабря 2017 г.
- ^ Лунд, Джошуа (11 января 2018 г.). «Назначьте партнерство с Microsoft для внедрения сквозного шифрования в Skype» . Открытые системы шепота . Проверено 11 января 2018 г.
- ^ «Обзор шифрования Viber» (PDF) . Вайбер. 25 июля 2018 года . Проверено 26 октября 2018 г.
- ^ Мец, Кейд (5 апреля 2016 г.). «Забудьте Apple против ФБР: WhatsApp только что включил шифрование для миллиарда человек» . Проводной . Конде Наст . Проверено 5 апреля 2016 г.
- ^ «Информационный документ по безопасности проводов» (PDF) . Вайр Свисс ГмбХ. 17 августа 2018 г. Проверено 28 августа 2020 г.
Литература
[ редактировать ]- Кон-Гордон, Катриэль; Кремерс, Кас; Даулинг, Бенджамин; Гарратт, Люк; Стебила, Дуглас (25 октября 2016 г.). «Формальный анализ безопасности протокола обмена сигналами» (PDF) . Архив электронной печати по криптологии . Международная ассоциация криптологических исследований (IACR).
- Фрош, Тилман; Майнка, Кристиан; Бадер, Кристоф; Бергсма, Флориан; Швенк, Йорг; Хольц, Торстен (2014). «Насколько безопасен TextSecure?» (PDF) . Архив электронной печати по криптологии . Международная ассоциация криптологических исследований (IACR) . Проверено 16 января 2016 г. .
- Унгер, Ник; Дечанд, Сергей; Бонно, Джозеф; Фаль, Саша; Перл, Хеннинг; Голдберг, Ян Аврум; Смит, Мэтью (2015). SoK: Безопасный обмен сообщениями (PDF) . Материалы симпозиума IEEE по безопасности и конфиденциальности 2015 г. Технический комитет IEEE Computer Society по безопасности и конфиденциальности. стр. 232–249. дои : 10.1109/СП.2015.22 .
Внешние ссылки
[ редактировать ]- Спецификация Open Whisper Systems
- « Продвинутый криптографический храповой механизм », абстрактное описание Мокси Марлинспайка.
- Олм : реализация C++ под лицензией Apache 2.0.
- Водоземак : реализация версии Olm на Rust под лицензией Apache 2.0.