← Cloudflare SSL/TLS / ssl / post-quantum-cryptography
Поддержка PQC
В разделах ниже приведён обзор поддержки постквантовых алгоритмов, развёрнутых Cloudflare, сторонним программным обеспечением, сгруппированный по категориям ПО. Вклад для поддержания списка в актуальном состоянии приветствуются.
Отслеживаются два класса алгоритмов:
- Согласование ключей X25519MLKEM768 ↗ гибридный вариант, который защищает от harvest-now-decrypt-later ↗ атак на зашифрованный трафик. См. гибридное согласование ключей для получения общих сведений.
- Подписи, ML-DSA ↗, постквантовый алгоритм цифровой подписи, стандартизированный NIST и определённый тремя наборами параметров (ML-DSA-44, ML-DSA-65, ML-DSA-87). См. PQC в продуктах Cloudflare для списка продуктов, поддерживающих ML-DSA, а также постквантовые подписи для получения общих сведений.
Браузеры
Браузеры сгруппированы по используемому движку рендеринга и стеку TLS. Браузеры с общим движком обычно поддерживают постквантовые технологии одинаково, но производные браузеры могут отставать от базового движка или отключать постквантовые функции по собственной политике. Прежде чем полагаться на поддержку в производном браузере, проверьте поведение конкретной интересующей вас версии. Проверка поддержки браузеров Cloudflare Radar ↗ это быстрый способ проверить, согласовывает ли данный браузер постквантовый обмен ключами с Cloudflare.
На основе Chromium (BoringSSL)
Brave
- Согласование ключей: ✅ По умолчанию в Brave 1.73.86+ (Chromium 131)
- Подписи: Пока нет
- Справка: Brave ↗
Chrome
- Согласование ключей: ✅ По умолчанию в Chrome 131+
- Подписи: 📝 Запланировано через Merkle Tree Certificates ↗
- Справка: Chrome ↗, Построение надёжного и эффективного HTTPS, устойчивого к квантовым атакам ↗
Chrome не планирует добавлять стандартные постквантовые сертификаты X.509 в публичный Chrome Root Store. Вместо этого Chrome разрабатывает MTC в рабочей группе IETF PLANTS, которая сейчас находится на этапе исследования осуществимости совместно с Cloudflare.
Edge
- Согласование ключей: ✅ По умолчанию в Edge 131+
- Подписи: Пока нет
- Справка: Edge ↗
Opera
- Согласование ключей: ✅ По умолчанию в Opera 116+ (Chromium 131)
- Подписи: Пока нет
- Справка: Opera ↗
На основе Gecko (Firefox / NSS)
Firefox
- Согласование ключей: ✅ По умолчанию в Firefox 132+ (для настольных систем), 145+ (Android)
- Подписи: Пока нет
- Справка: Firefox ↗
Для QUIC/HTTP3: Firefox 135+ (для настольных систем).
Tor Browser
- Согласование ключей: ✅ По умолчанию в Tor Browser 15.0+
- Подписи: Пока нет
- Справка: Tor Browser ↗
На основе Firefox ESR с дополнительным усилением защиты.
На основе WebKit (Safari)
Safari
- Согласование ключей: ✅ По умолчанию в Safari 26+
- Подписи: Пока нет
- Справка: Safari ↗
Повсеместно в iOS 26, macOS Tahoe 26 и других Операционные системы Apple ↗.
Библиотеки
Этот раздел делится на базовые нативные библиотеки (написанные на C/C++) и языковые обвязки и библиотеки более высокого уровня, построенные на их основе.
Нативные библиотеки
AWS-LC
- Согласование ключей: ✅
- Подписи: ✅
- Справка: aws-lc ↗, Постквантовая криптография в AWS-LC ↗
ML-KEM-512/768/1024 и гибридные варианты X25519MLKEM768, SecP256r1MLKEM768, SecP384r1MLKEM1024; ML-DSA-44/65/87.
BoringSSL
- Согласование ключей: ✅
- Подписи: ✅
- Справка: BoringSSL ↗
ML-DSA-44/65/87.
Botan C++
- Согласование ключей: ✅ По умолчанию в TLS начиная с 3.7.0
- Подписи: ✅ 3.6.0+
- Справка: Botan ↗
ML-DSA-44/65/87.
GnuTLS
- Согласование ключей: ✅ 3.8.9+, скомпилировано с leancrypto 1.2.0+ (или 3.8.8-3.8.9 с liboqs 0.11.0+)
- Подписи: ✅ 3.8.10+, можно использовать в TLS-рукопожатиях
- Справка: GnuTLS ↗
Гибриды X25519MLKEM768 и SecP256r1MLKEM768 начиная с версии 3.8.8+; SecP384r1MLKEM1024 добавлено в версии 3.8.9 и выше. ML-DSA-44/65/87.
OpenSSL
- Согласование ключей: ✅ По умолчанию в 3.5.0+
- Подписи: ✅ 3.5.0+
- Справка: OpenSSL ↗
Гибридный X25519MLKEM768 начиная с версии 3.5.0+; SecP256r1MLKEM768 и curveSM2MLKEM768 добавлено в версии 3.6.0 и выше. ML-DSA-44/65/87.
Open Quantum Safe
- Согласование ключей: ✅ liboqs 0.10.0+, oqs-provider 0.7.0+
- Подписи: ✅ liboqs 0.14.0+, oqs-provider 0.9.0+
- Справка: Open Quantum Safe ↗
Эталонные реализации, не рекомендуются для промышленной эксплуатации.
s2n-tls
- Согласование ключей: ✅
- Подписи: Пока нет
- Справка: s2n-tls ↗
Реализация TLS с открытым исходным кодом от AWS, созданная на основе AWS-LC.
Языковые привязки и библиотеки высокого уровня
aws-lc-rs (Rust)
- Согласование ключей: ✅
- Подписи: 🚧 За флагом
unstableфункция - Справка: aws-lc-rs ↗
Привязки Rust для AWS-LC; лежит в основе rustls-post-quantum: поддержка ML-DSA. ML-KEM через aws-lc-rs::kem ↗; ML-DSA-44/65/87 через unstable::signature ↗.
CIRCL (Cloudflare)
- Согласование ключей: ✅
- Подписи: ✅ 1.5.0+ через
sign/mldsa↗ - Справка: CIRCL ↗
Библиотека криптографических примитивов на чистом Go. ML-KEM-512/768/1024 и ML-DSA-44/65/87.
Go
- Согласование ключей: ✅ По умолчанию в Go 1.24+
- Подписи: 🚧 Внутренняя реализация в Go 1.26; публичный
crypto/mldsa↗ предложено для Go 1.27 - Справка: Go ↗
Cloudflare форк Go ↗ также поддерживает согласование ключей через CIRCL.
Java (OpenJDK)
- Согласование ключей: ✅ По умолчанию в Java 27+ (JEP 527 ↗)
- Подписи: 🚧 Java 24+ предоставляет API ML-DSA (JEP 497 ↗) но они пока не интегрированы в
javax.net.sslTLS - Справка: OpenJDK ↗
Node.js
- Согласование ключей: ✅ По умолчанию в 24.5.0+ и 22.20.0+ (перенесено в более раннюю версию ↗)
- Подписи: ✅ 24.5.0+
- Справка: Node.js ↗
Использует пакетные OpenSSL 3.5. ML-DSA-44/65/87.
RustCrypto (Rust)
- Согласование ключей: ✅
ml-kem↗ - Подписи: ✅
ml-dsa↗ - Справка: RustCrypto ↗
Крейты на чистом Rust, не зависящие от AWS-LC. ML-DSA-44/65/87.
rustls (Rust)
- Согласование ключей: ✅ Включено по умолчанию начиная с rustls 0.23.27
- Подписи: 🚧 Нестабильно
- Справка: rustls ↗
TLS-библиотека, созданная на основе rustls-post-quantum.
rustls-post-quantum (Rust)
- Согласование ключей: ✅
X25519MLKEM768 - Подписи: 🚧 Нестабильная поддержка ML-DSA (за флагом
aws-lc-rs-unstableфункция) - Справка: rustls-post-quantum ↗
Крейт-расширение для rustls который предоставляет постквантовые алгоритмы с использованием aws-lc-rs под капотом.
Zig
- Согласование ключей: ✅ Zig 0.14.0+ (клиент)
- Подписи: Пока нет
- Справка: Zig ↗
Серверы
Caddy
- Согласование ключей: ✅ По умолчанию в Caddy 2.10.0+
- Подписи: Заблокировано в Go
crypto/mldsa - Справка: Caddy ↗
NGINX
- Согласование ключей: ✅ По умолчанию при компиляции с OpenSSL 3.5+ (инструкции ↗)
- Подписи: ✅ При компиляции с OpenSSL 3.5+
- Справка: NGINX ↗
rpxy
- Согласование ключей: ✅ По умолчанию в 0.9.4+
- Подписи: Заблокировано из-за отсутствия поддержки PQ-подписей в Rust
- Справка: rpxy ↗