На Хабре уже упоминали, что протокол Signal получил постквантовую защиту, хотя в краткой новости не вдавались в детали. Но это действительно важное событие с учётом того, что количество пользователей этого протокола превышает 1 млрд человек за счёт WhatsApp.
Signal применяется для криптографической защиты сессий в одноимённом мессенджере, в Google RCS, WhatsApp и др. Опенсорсный протокол можно использовать в любом ПО.
Итак, что изменилось в криптографической подсистеме?
До сих пор Signal шифровал трафик по протоколу X3DH (Extended Triple Diffie-Hellman), разновидности эллиптической криптографии по методу ECDH (Elliptic Curve Diffie-Hellman), которая используется формирования пар асимметричных ключей. Безопасность асимметричного шифрования основана на односторонних функциях. В случае с эллиптическими кривыми это задача дискретного логарифмирования, где ключевые параметры базируются на определённых точках эллиптической кривой над полем целых чисел по модулю некоторого простого числа:
Алгоритм RSA тоже использует асимметричную криптографию, только другую функцию (перемножение больших простых чисел, произведение которых трудно разложить на множители)
В целом, асимметричная криптография решает задачу безопасного обмена ключами по открытым каналам между людьми, которые никогда не встречались. Однако стойкость этих форм шифрования нарушается при квантовых вычислениях, где двоичные биты из двух состояний 0 и 1 заменяются кубитами, в которых возможно существование бесконечного количества состояний:
Широко распространено мнение, что метод факторизации, известный как алгоритм Шора, позволяет квантовому компьютеру с достаточным количеством кубитов взломать асимметричное шифрование на односторонних функциях. По некоторым оценкам, для взлома 1024 или 2048-битного RSA квантовому компьютеру с 20 млн кубитов потребуется около восьми часов.
Схема работы алгоритма сублинейно-ресурсной квантовой целочисленной факторизации (SQIF) для оптимизации классического метода Шнорра для быстрой факторизации, источник
Правда, это пока далёкое будущее: по прогнозам, 5−30 лет. Сейчас самый большой квантовый компьютер работает всего с 433 кубитами (IBM Osprey). Тем не менее, никогда не поздно предпринять меры защиты.
Для защиты от квантового брутфорса разрабатывается так называемая «постквантовая криптография» (PQC). В частности, разработчики Signal произвели апгрейд вышеупомянутого протокола X3DH на постквантовую версию PQXDH (Post-Quantum Extended Diffie-Hellman).
Если вкратце, то поверх стандартного X3DH (X25519) здесь добавлен дополнительный уровень PQXDH-шифрования Crystals-Kyber — один из четырёх алгоритмов постквантовой криптографии, которые выбрал в прошлом году NIST.
Технический директор Signal Эрен Крет (Ehren Kret) объясняет, что выбранный механизм инкапсуляции ключей CRYSTALS-Kyber построен на прочном фундаменте, но для надёжности решено оставить также и прежний алгоритм на эллиптических кривых. Таким образом, для подбора секретного ключа злоумышленник должен сломать не одну, а обе системы: и эллиптические кривые X25519, и постквантовый шифр CRYSTALS-Kyber.
Такая перестраховка имеет смысл. Ещё не стёрлась в памяти история, как один из постквантовых шифров SIKE взломали вскоре после публикации, причём для нахождения секретного ключа понадобилось задействовать всего одно ядро старенького процессора Xeon E5-2630v2 на тактовой частоте 2,60 ГГц. Вычисление заняло менее часа. Для взлома SIKE криптографы использовали малоизвестную математическую теорему Кани от 1997 года, в которой обсуждается процесс «склеивания» двух эллиптических кривых — и при каких условиях эта процедура может дать сбой.
Так что от взлома не защищён ни один шифр, даже если он «постквантовый».
Пока в приложении Signal будут использоваться как X3DH, так и PQXDH (CRYSTALS-Kyber). Если у всех участников чата установлены новые версии Signal, то будет использоваться PQXDH. Если один или несколько участников используют старые версии, то разговоры будут шифроваться с помощью X3DH. В будущем протокол Signal полностью перейдёт на новый алгоритм.
Другие новости
Из других новостей в сфере приватности: вышел новый протокол децентрализованной сети Matrix 2.0 и новый клиент Element X под iOS and Android.
Новая версия Matrix разрабатывалась с учётом повышения производительности, чтобы общаться в свободных P2P-мессенджерах было так же удобно и приятно, как в популярных централизованных сервисах типа Telegram. Для этого были внедрены функции Sliding Sync (мгновенный вход/запуск/синхронизация), Native OIDC (надёжный стандарт аутентификации), Native Group VoIP (сквозное шифрование для массовых голосовых и видеоконференций) и Faster Joins (ленивая загрузка состояния комнаты при подключении нового сервера).
Разработчики пишут, что Matrix 2.0 — очень актуальное обновление, потому что «сегодня как никогда мир нуждается в децентрализации». Из разных стран приходят новости о цензуре и блокировках. Например, во Франции предлагают детектировать и банить VPN в соцсетях, а парламент Великобритании для защиты детей принял закон Online Safety Bill (OSB), который требует верификации возраста по ID и сканирования трафика в мессенджерах на предмет запрещённого контента, даже если это зашифрованный трафик. По мнению Фонда электронных рубежей, закон угрожает надёжности криптографических систем по всему миру, неявно подразумевая установку бэкдоров на клиентские устройства и софт.
Ещё одна хорошая новость в мире приватности — внедрение задач Proof-of-Work (PoW) для сервисов Onion, что обеспечит лучшую приоритизацию трафика для защиты от DDoS-атак. Как известно, в сети с луковичной маршрутизацией трафика традиционные лимиты по IP-адресам не помогают защититься от DDoS, так что пришлось придумать новый механизм. Теперь при активизации защиты сервер выдаёт клиенту вычислительную задачу на 5−30 мс времени (максимум 1 минута) как «билет» для входа. Для нагрузки клиента через протокол CPP (client puzzle protocol) используются задачи Equix (они отличаются быстрой верификацией и маленьким размером решения в 16 байт).
Приватность — очень важное дело. Не следует забывать о защите своих коммуникаций.