OpenSSL пустил «Эльбрус» внутрь. Теперь осталось заставить всё работать

67
OpenSSL пустил «Эльбрус» внутрь. Теперь осталось заставить всё работать

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

image

Криптографическая библиотека OpenSSL 4.1.0 впервые получила начальную поддержку российской процессорной архитектуры «Эльбрус» (e2k). Релиз вышел 23 октября и открыл новые возможности для переноса одного из ключевых компонентов защищённых сетевых соединений на отечественные процессоры.

OpenSSL используют серверы, операционные системы и приложения для шифрования данных, проверки сертификатов и установления защищённых соединений. Библиотека реализует протокол TLS, на котором основана защита HTTPS. Поддержка новой аппаратной архитектуры на уровне основного проекта потенциально упрощает разработчикам адаптацию программ, использующих криптографические функции OpenSSL.

В случае с «Эльбрусом» речь пока идёт именно о начальной поддержке Elbrus2000, а не о полностью оптимизированной версии библиотеки. Разработчики OpenSSL не представили результатов тестирования производительности на e2k и не заявляли о полноценной совместимости всех возможностей. Появление архитектуры в официальном релизе создаёт основу для дальнейшей адаптации, но не означает, что любое приложение автоматически заработает на российских процессорах.

Помимо поддержки e2k, разработчики добавили DTLS 1.3, современную версию протокола защищённой передачи данных поверх UDP. В отличие от обычного TLS, который преимущественно работает с TCP, DTLS подходит для приложений, передающих отдельные сетевые пакеты без предварительного установления надёжного транспортного соединения. Подобный подход востребован в голосовой связи, видеоконференциях и других системах реального времени.

DTLS 1.3 сокращает число обменов сообщениями при установлении защищённого соединения и исключает устаревшие криптографические алгоритмы. Новая версия также допускает применение постквантовой криптографии. Разработчики расширили программный интерфейс SSL Listener для работы с DTLS, однако приложениям, использующим старый механизм DTLSv1_listen(), потребуется переход на другой интерфейс для поддержки версии 1.3.

Ещё одним нововведением стал механизм GREASE, описанный в стандарте RFC 8701. При установлении соединения библиотека может передавать специальные зарезервированные значения, которые серверы и промежуточное сетевое оборудование должны игнорировать. Такой приём помогает выявлять проблемы совместимости и предотвращает ситуацию, когда устройства начинают отвергать новые расширения протокола только потому, что раньше с ними не сталкивались.

Разработчики также ускорили работу постквантовых алгоритмов ML-KEM и ML-DSA, рассчитанных на защиту криптографических операций от будущих атак с применением квантовых компьютеров. Для архитектуры ppc64le оптимизировали математические операции обоих алгоритмов, а для x86_64 ускорили ML-DSA. Дополнительно задействовали инструкции AVX-512 для SHAKE и сочетание AVX-512 с VAES для расшифрования AES-CBC. Указанные оптимизации относятся к перечисленным аппаратным платформам, а не к e2k.

В OpenSSL 4.1.0 появилась поддержка функции формирования ключей KDF для протокола IKEv2, который применяют при согласовании параметров защищённых IPsec-соединений. Одновременно разработчики добавили возможность сборки с Microsoft Visual C++ 2013 и отказались от конфигураций для Windows CE и Windows на процессорах Itanium. Из параметров сборки также убрали отдельные переключатели отключения ECDSA и ECDH, поскольку прежние настройки фактически не выключали соответствующие реализации.

При всех нововведениях релиз вышел с четырьмя известными проблемами, связанными с DTLS 1.3. Одна из ошибок приводит к потере ожидающих повторной передачи служебных сообщений после обновления ключа. Другая способна вызвать разрыв соединения на сервере при определённой последовательности подтверждений пакетов. Ещё два дефекта затрагивают обработку ошибок чтения и записи, из-за чего приложения могут неправильно определять состояние соединения, преждевременно закрывать рабочий канал или продолжать ожидание после неустранимого сбоя. Исправления пока не включены в релиз.

OpenSSL 4.1 относится к обычным выпускам, а не к версиям с длительной поддержкой LTS. Согласно плану разработчиков, обновления для ветки будут выходить до 23 ноября 2027 года. Для организаций, которым требуется более продолжительный срок сопровождения, сохраняется OpenSSL 3.5 LTS с поддержкой до 8 апреля 2030 года. Поэтому переход на новую ветку имеет смысл оценивать с учётом необходимости дополнительных функций, совместимости приложений и обнаруженных проблем.

Предыдущий крупный релиз OpenSSL 4.0 вышел 14 апреля 2026 года, а разработку версии 4.1 публично тестировали с сентября. Для российской аппаратной экосистемы включение e2k в основной проект особенно интересно на фоне трудностей с переносом и сопровождением программного обеспечения для отечественных процессоров. Однако сама по себе поддержка архитектуры в криптографической библиотеке не решает проблем доступности оборудования, совместимости прикладных программ и производительности. Практическую пользу нового направления покажут дальнейшие доработки и испытания OpenSSL непосредственно на системах с «Эльбрусами».