Неделя на исправление и публичный скандал. Белый хакер доказал, что сквозное шифрование можно взломать

Такой дерзкий вызов экспертному сообществу не бросали уже несколько лет.


1zi2nvbvwsr9cf010qadqd2tr4v92430.jpg


Автор блога Soatok опубликовал разбор проблем в Vodozemac — криптографической библиотеке на Rust , которую экосистема Matrix использует для сквозного шифрования. Поводом стала проверка кода после прежних претензий к старой библиотеке Olm и споров вокруг того, как Matrix реагирует на сообщения об уязвимостях.

По версии автора, наиболее серьёзная проблема связана с тем, что реализация Olm допускает вариант, при котором один из участников подаёт «нулевой» открытый ключ, соответствующий нейтральному элементу в X25519. В таком случае вычисления Диффи-Хеллмана дают предсказуемый общий секрет, а из него детерминированно выводятся ключи. Soatok утверждает, что для приватных групповых чатов это создаёт риск утечки истории переписки оператору сервера или любому, кто получил шифртекст, поскольку ключ групповой сессии передают новому участнику через Olm, а слабое рукопожатие позволяет этот ключ извлечь без сигналов об ошибке.

Вторую уязвимость автор связывает с возможностью «понизить» режим обмена сообщениями с V2 до V1. В V2 библиотека должна использовать полный HMAC, а V1 ограничивает тег аутентичности 64 битами. По описанию Soatok, реализация по умолчанию остаётся на V1, а активный атакующий может добиться незаметного перехода к более слабому варианту, в том числе за счёт усечения тега или особенностей десериализации данных с настройками версии.

Отдельно перечислены спорные и потенциально опасные моменты в коде. Среди них двузначный CheckCode в ECIES с небольшим числом вариантов, детерминированный IV в формате pickle при повторном использовании ключа, молчаливое отбрасывание ключей после заданного лимита, а также отключённая по умолчанию строгая проверка Ed25519, снижающая устойчивость к модификациям подписи. Ещё один фрагмент, связанный с отключением проверок при сборке для фаззинга, автор позднее уточнил: речь идёт не о типичном флаге возможности, а о режиме, который включают специально.

Soatok описал недельный график раскрытия, заявил о передаче демонстрации атаки и кода исправления, а также раскритиковал позицию команды Matrix.org, которая, по его словам, настаивала на отсутствии практического влияния на безопасность . В тексте также упоминаются публичные комментарии Мэттью Ходжсона и дискуссия о проверках «нулевого» результата X25519, в том числе с отсылкой к аргументам Тревора Перрина, но автор подчёркивает, что проблема возникает на уровне протокола и его обвязки, а не примитива.