TLS 1.3 в OpenSSL начал поддерживать российские стандарты шифрования
На своем сайте компания «Криптонит» рассказала, что совместно с компанией «Криптоком» завершила разработку реализации протокола TLS версии 1.3, в которой используется защита с использованием российских криптографических алгоритмов. Доступна она как расширение для OpenSSL 1.1.1.
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);
— доработана встроенная система тестов.
Руководитель лаборатории информационной и сетевой безопасности НПК «Криптонит».
«За относительно короткое время после выхода официального стандарта мы сделали open-source реализацию протокола TLS 1.3 с отечественной криптографией. Мне кажется, это хорошая работа и отличный задел на будущее для научного сообщества, разработчиков, а также пользователей, которые должным образом относятся к безопасности своих коммуникаций».
Генеральный директор ООО «Криптоком»
«Наша компания всегда понимала важность открытых реализаций наряду с сертифицированными, мы считаем, что такой подход способствует расширению рынка для всех его участников».
Для ветки OpenSSL 3.0 ведётся аналогичная работа по внедрению российских стандартов шифрования.