При установке HTTPS-соединения клиент и сервер создают общий секрет. Затем с его помощью шифруется передаваемый трафик.
Современные алгоритмы обмена ключами считаются надёжными для обычных компьютеров. Но достаточно мощный квантовый компьютер сможет их взломать. Есть атака, которая называется harvest now, decrypt later. Трафик перехватывают сегодня, а расшифровывают через несколько лет.
Так вот JEP 527 добавил в Java 27 гибридный обмен ключами для TLS 1.3. Основная схема называется
X25519MLKEM768. Она объединяет классический X25519 и постквантовый ML-KEM-768.Секрет зависит от обоих алгоритмов. Даже если один из них когда-нибудь взломают, второй продолжит защищать соединение.
Клиент на JDK 27 по умолчанию предлагает серверу две схемы. Новую гибридную и обычную X25519. Если сервер поддерживает гибридную, используется она. Если нет, TLS продолжает работать по старой схеме.
Для нас, как для Spring-разработчиков приятно то, что при использовании стандартного javax.net.ssl защита включается по умолчанию. На код никак не влияет, если приложение не переопределяет список TLS-групп.
👀 Получается редкий апгрейд безопасности, который можно получить простым обновлением JDK. Правда, защищает он не от квантового компьютера сегодня, а от слишком
🔗 Подробнее о JEP 527