Реализация протокола TLS 1.3 с использованием российских защитных алгоритмов разработана компаниями «Криптонит» и «Криптоком». Применять его можно как расширение для OpenSSL 1.1.1.
Зачем нужно
Протокол TLS (Transport Layer Security) необходим для безопасной передачи данных в интернете при помощи браузеров, мессенджеров и других приложений. Ключевая задача, решаемая TLS, – организация аутентифицированного защищенного канала, обеспечивающего целостность и конфиденциальность передаваемых между клиентом и сервером данных.
Пока что наиболее распространенной версией протокола остается версия TLS 1.2, но все более популярной становится версия TLS 1.3, стандарт которой утверждён в августе 2018 года. В версии TLS 1.3 разделены процессы согласования ключей, аутентификации и наборы шифрования; запрещены хэши MD5 и SHA-224; введена обязательность цифровой подписи – в целом улучшены показатели безопасности и пользовательские характеристики протокола.
Подробности реализации
Поддержка протокола TLS на веб-сервере в большинстве случаев обеспечивается с помощью библиотеки OpenSSL – это открытый инструментарий, выпущенный под лицензией Apache.
Применять российскую криптографию в OpenSSL возможно при помощи расширения Gost Engine – оно поддерживает реализацию всех актуальных российских алгоритмов шифрования и режимов их использования. Открытый исходный код разработки выложен на GitHub.
Сейчас эти алгоритмы стали доступны для TLS 1.3. Разработчики «Криптонита» и «Криптокома» в новой версии расширения добавили в исходный код библиотеки OpenSSL следующие алгоритмы:
- кодировка открытого эфемерного ключа в расширении key_share (на этапе согласования параметров соединения);
- выработка общего секретного значения ECDHE при использовании протокола Диффи-Хеллмана;
- механизм TLSTREE для генерации ключей защиты записей из корневого ключа;
Кроме того, доработаны решение для согласования алгоритма в расширении signature_algorithms и встроенная система тегов.
Сейчас разработчики отечественных компаний работают над внедрением российских криптографических стандартов в ветку OpenSSL 3.0.
ГОСТ как стандарт
Также 15 марта был утвержден международный стандарт RFC 9189, который описывает механизмы шифрования по ГОСТ для протокола TLS 1.2 – «GOST Cipher Suites for Transport Layer Security (TLS) Protocol Version 1.2».
В стандарте определены отечественные криптографические наборы протокола TLS версии 1.2, которые уже реализованы в наиболее современной версии КриптоПро CSP 5.0 R2 и готовы для применения как на серверной, так и на клиентской стороне.