Техническое: RFC 10024 и гибриды криптосистем

Недавно вышел документ RFC 10024 (обратите внимание: нумерация перевалила за десять тысяч). Этот RFC вводит идентификаторы для гибридов криптосистем обмена ключами в TLS 1.3. Это гибриды из классических и посквантовых криптосистем. В роли классических – выступают X25519 и ECDH, а в роли единственной постквантовой – ML-KEM. То есть, формально закрепляются следующие сочетания: X25519 + ML-KEM-768 как X25519MLKEM768 (0x11EC), ECDH/P-256 + ML-KEM-768 как SecP256r1MLKEM768 (0x11EB), и ECDH/P-384 + ML-KEM-1024 как SecP384r1MLKEM1024 (0x11ED).

При этом в качестве рекомендуемого (recommended) набора отмечен только X25519MLKEM768, варианты с ECDH – содержат значение N в поле “Recommended”. (Тут нужно оговорить, что флаг Recommended – это штука, назначаемая внутри IANA/IETF, и имеющая особенную трактовку; как минимум, тот факт, что ML-KEM стандартизована NIST, не означает, что IANA/IETF автоматически поставят флаг “рекомендуется”, тем более, что тут речь о гибридах; но и делать вывод, что нельзя использовать системы, у которых “Recommended: N” – тоже неверно: тогда бы и смысла в подобных RFC не было бы.)

Что здесь означают числа? В X25519 – это 2^255 – 19, модуль, задающий максимальную разрядность для этой криптосистемы; X25519 – массово используемый вариант протокола Диффи-Хеллмана (DH) на эллиптической кривой. P-256 и P-384 – две разных эллиптических кривых (отличных от используемой в 25519), на которых работает “типовой” протокол DH. P-256, которую также называют SecP256r1, имеет разрядность 256 бит, а P-384 (SecP384r1) – 384 бита. Математически, реализации DH на P-256 и P-384 – абсолютно идентичные, разные только кривые, а DH в версии X25519 тут в некоторых математических деталях отличается (распростраено мнение, – в том числе, среди специалистов, – что как раз эти отличия и делают реализации X25519, в целом, надёжнее и более стойкими, чем для DH на P-256/P-384).

ML-KEM тут фигурирует с двумя наборами параметров: 768 и 1024. Оценка стойкости ML-KEM – штука совсем сложная, поэтому тут только отмечу, что, несмотря на такие значение, ни 768, ни 1024 – как-то “линейно” с битовой стойкостью или эффективной разрядностью не связаны, но 1024, согласно спецификации, считается более стойким набором параметров. Поэтому для более стойкой кривой P-384 и выбран более стойкий вариант ML-KEM-1024.

Я не тестовом сервере tls13.1d.pw давно поддерживаю X25519MLKEM768 и SecP256r1MLKEM768, а вот P-384 пока не добавил.

Адрес записки: https://dxdt.blog/2026/08/13/18885/

Похожие записки:



Далее - мнения и дискуссии

(Сообщения ниже добавляются читателями сайта, через форму, расположенную в конце страницы.)

Комментарии читателей блога: 2

  • 1 <t> // 23rd August 2026, 19:18 // Читатель Anon написал:

    Решил протестировать подключение к tls13.1d.pw и заметил что:
    1) Сертификат хоста просрочен уже больше чем на неделю / Not After: 15 Aug 2026 09:17:10 UTC
    2) Сертификат хоста отдаётся почему-то сервером дважды:

    Certificate chain
    0 s:CN=tls13.1d.pw
    i:C=US, O=Let’s Encrypt, CN=E8
    a:PKEY: EC, (secp384r1); sigalg: ecdsa-with-SHA384
    v:NotBefore: May 17 09:17:11 2026 GMT; NotAfter: Aug 15 09:17:10 2026 GMT
    1 s:CN=tls13.1d.pw
    i:C=US, O=Let’s Encrypt, CN=E8
    a:PKEY: EC, (secp384r1); sigalg: ecdsa-with-SHA384
    v:NotBefore: May 17 09:17:11 2026 GMT; NotAfter: Aug 15 09:17:10 2026 GMT
    2 s:C=US, O=Let’s Encrypt, CN=E8
    i:C=US, O=Internet Security Research Group, CN=ISRG Root X1
    a:PKEY: EC, (secp384r1); sigalg: sha256WithRSAEncryption
    v:NotBefore: Mar 13 00:00:00 2024 GMT; NotAfter: Mar 12 23:59:59 2027 GMT
    3 s:CN=IP, port: IP:Port
    i:CN=HS DH: ffdhe3072
    a:PKEY: EC, (prime256v1); sigalg: ecdsa-with-SHA256
    v:NotBefore: Aug 23 07:28:34 2026 GMT; NotAfter: Sep 22 19:28:34 2026 GMT

    3) 4ым по счёту отдаётся самоподписанный сертификат с указанием связки IP:Port инициатора подключение в CN – интересная методика вернуть значение клиенту, не прибегая к уровню L7.
    Это где-то в предыдущих записках по этому сервису было описано?

  • 2 <t> // 23rd August 2026, 21:18 // Александр Венедюхин:

    > Сертификат хоста просрочен уже больше чем на неделю / Not After: 15 Aug 2026 09:17:10 UTC

    Надо будет поправить.

    > Сертификат хоста отдаётся почему-то сервером дважды:

    Это, насколько я помню, так специально, но браузер и другие клиенты – должны игнорировать повтор.

    > 4ым по счёту отдаётся самоподписанный сертификат с указанием связки IP:Port инициатора подключение в CN – интересная методика вернуть значение клиенту, не прибегая к уровню L7.

    Так и есть, это сигнальный сертификат, который генерируется для каждого соединения.
    Про этот момент я кратко писал тут: https://dxdt.blog/2023/09/15/11011/

Написать комментарий

Ваш комментарий:

Введите ключевое слово "F5SU3" латиницей СПРАВА НАЛЕВО (<--) без кавычек: (это необходимо для защиты от спама).

Если видите "капчу", то решите её. Это необходимо для отправки комментария ("капча" не применяется для зарегистрированных пользователей). Обычно, комментарии поступают на премодерацию, которая нередко занимает продолжительное время.