Многие реализации механизма инкапсуляции ключей Kyber для квантово-безопасного шифрования уязвимы к набору недостатков, получивших общее название KyberSlash, которые могут позволить восстановить секретные ключи.
CRYSTALS-Kyber – это официальная реализация механизма инкапсуляции ключей Kyber (KEM) для квантово-безопасного алгоритма (QSA) и часть набора алгоритмов CRYSTALS (Cryptographic Suite for Algebraic Lattices).
Он предназначен для общего шифрования и входит в подборку алгоритмов Национального института стандартов и технологий (NIST), разработанных для противостояния атакам квантовых компьютеров.
Среди популярных проектов, использующих реализацию Kyber, – Mullvad VPN и мессенджер Signal. Последний в прошлом году объявил о принятии CRYSTALS-Kyber KEM в качестве дополнительного слоя, который злоумышленники должны взломать, чтобы вычислить ключи, защищающие коммуникации пользователей.
Дефекты KyberSlash – это атаки по времени, связанные с тем, как Kyber выполняет определенные операции деления в процессе декапсуляции, что позволяет злоумышленникам анализировать время выполнения и извлекать секреты, которые могут скомпрометировать шифрование.
Если сервис, реализующий Kyber, позволяет выполнять несколько запросов операций для одной и той же пары ключей, злоумышленник может измерить разницу во времени и постепенно вычислить секретный ключ.
Проблемные части кода, из которых состоит уязвимости KyberSlash (KyberSplash1 и KyberSplash2), были обнаружены Гоутамом Тамвадой, Картикеяном Бхаргаваном и Францискусом Кифером – исследователями из Cryspen, поставщика инструментов проверки и математически обоснованного программного обеспечения.
В демонстрации KyberSlash1 на системе Raspberry Pi исследователи восстановили секретный ключ Kyber по таймингам расшифровки в двух из трех попыток.
Работа над исправлением ведется
Аналитики компании Cryspen обнаружили KyberSlash1 в конце ноября прошлого года и сообщили об этом разработчикам Kyber, которые выпустили патч для KyberSlash1 1 декабря 2023 года.
Однако исправление не было обозначено как проблема безопасности, и только 15 декабря Cryspen приняла более публичный подход и начала информировать затронутые проекты о необходимости обновить свои реализации Kyber.
30 декабря KyberSlash2 был исправлен после его обнаружения и ответственного сообщения №№2№№
По состоянию на 2 января 2024 года нижеперечисленные списки проектов были идентифицированы как затронутые проблемой и имели следующий статус исправления:
- pq-crystals/kyber/ref – полностью исправлено
- symbolicsoft/kyber-k2so – полностью исправлено
- aws/aws-lc/crypto/kyber, main branch – полностью исправлено
- zig/lib/std/crypto/kyber_d00.zig – полностью исправлено
- liboqs/src/kem/kyber – исправлено только для KyberSlash1
- aws/aws-lc/crypto/kyber, ветка fips-2022-11-02 – исправлено только для KyberSlash1
- randombit/botan – исправлено только для KyberSlash1
- mupq/pqm4/crypto_kem/kyber – исправлено только для KyberSlash1
- antontutoveanu/crystals-kyber-javascript – не исправлено
- Argyle-Software/kyber – не исправлено
- debian/src/liboqs/unstable/src/kem/kyber – не исправлено
- kudelskisecurity/crystals-.go – патча пока нет
- PQClean/PQClean/crypto_kem/kyber/aarch64 – не исправлено
- PQClean/PQClean/crypto_kem/kyber/clean – не исправлено
- rustpq/pqcrypto/pqcrypto-kyber (используется в Signal) – не исправлено
Также, следующие библиотеки помечены как не затронутые, поскольку в них нет подразделений с секретными входами:
- boringssl/crypto/kyber
- filippo.io/mlkem768
- formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/common/amd64/avx2
- formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/common/amd64/ref
- pq-.crystals/kyber/avx2
- pqclean/crypto_kem/kyber/avx2
Наихудшим сценарием является утечка секретного ключа, но это не означает, что все проекты, использующие Kyber, уязвимы к утечке ключей.
Последствия KyberSlash зависят от реализации Kyber и могут варьироваться в зависимости от практических случаев использования и дополнительных мер безопасности.
Например, Муллвад утверждает, что KyberSlash не влияет на VPN-продукт компании, поскольку они используют уникальные пары ключей для каждого нового туннельного соединения, что делает невозможным проведение серии атак на одну и ту же пару.
BleepingComputer связался с Signal, чтобы узнать о реальном влиянии KyberSlash на ее криптографию и коммуникации пользователей, а также о планах проекта по устранению последствий, но комментарий не был получен.
Комментарии (0)