TLS 1.3 в OpenSSL начал поддерживать российские стандарты шифрования

На своем сайте компания «Криптонит» рассказала, что совместно с компанией «Криптоком» завершила разработку реализации протокола TLS версии 1.3, в которой используется защита с использованием российских криптографических алгоритмов.  Доступна она как расширение для OpenSSL 1.1.1. 

6350732e608bc1d204490870b05e148b.jpeg

TLS используется для обеспечения сохранности данных, передаваемых в Интернет через браузеры, мессенджеры, клиенты электронной почты, другие приложения и IP-телефонию. TLS 1.3 позволяет использовать различные алгоритмы шифрования, распределения ключей и цифровой подписи. Конкретный набор криптографических алгоритмов (cipher suites), поддерживаемый обеими сторонами, задаётся на этапе «рукопожатия» (Handshake) — согласования параметров соединения. Он описан в международном стандарте RFC8446.

Однако, этот стандарт предусматривает использование в протоколе только зарубежных алгоритмов. В РФ принято расширение RFC8446 — стандарт Р 1323565.1.030–2020. Он использует российские криптографические алгоритмы и поддерживает другие режимы работы протокола. 

Российский стандарт определяет 4 набора криптошифрования, каждый из которых использует режим MGM (он описан в стандарте Р 1323565.1.026) со своими параметрами. Режим относится к группе алгоритмов AEAD (аутентифицированного шифрования со связанными данными). В нём используется мультилинейный режим с аутентификацией Галуа, позволяющий одновременно обрабатывать конфиденциальные данные (содержимое сетевых пакетов) и вспомогательные технические (заголовки пакетов). Последние не нужно шифровать, но им требуется обеспечить защиту от модификации (целостность) и проверяемое соответствие зашифрованным фрагментам. Проще говоря, MGM защищает от несанкционированных изменений метаданных, передаваемых открытым текстом. 

Почти год назад компания «Криптонит» сообщала о создании на базе OpenSSL 1.1.1 реализации с открытым исходным кодом всех актуальных российских алгоритмов шифрования и режимов их использования, в том числе режим MGM.  И вот настало время  для использования этих алгоритмов в TLS 1.3. 

Значительный объём российских криптографических алгоритмов доступен в OpenSSL через расширение Gost Engine. Специалистами «Криптонит» и «Криптоком» были выполнены такие доработки Gost Engine и исходного кода библиотеки OpenSSL:

— добавлен алгоритм кодировки открытого эфемерного ключа в расширении key_share (на этапе Handshake);  

— добавлен алгоритм выработки общего секретного значения ECDHE при использовании протокола Диффи-Хеллмана;

— реализован алгоритм TLSTREE, используемый для создания ключей защиты записей из корневого ключа;  

— доработан механизм согласования алгоритма в расширении signature_algorithms (потребовало правки кода OpenSSL);  

— доработана встроенная система тестов. 

92c78e8b286d91f0e962ddf736d8aee9.pngАлександр Спиридонов

Руководитель лаборатории информационной и сетевой безопасности НПК «Криптонит».

«За относительно короткое время после выхода официального стандарта мы сделали open-source реализацию протокола TLS 1.3 с отечественной криптографией. Мне кажется, это хорошая работа и отличный задел на будущее для научного сообщества, разработчиков, а также пользователей, которые должным образом относятся к безопасности своих коммуникаций».

96ac6bfec68c09aeef6d98d102a10200.jpgДмитрий Кабелев

Генеральный директор ООО «Криптоком»

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

Для ветки OpenSSL 3.0 ведётся аналогичная работа по внедрению российских стандартов шифрования.

© Habrahabr.ru