Site categories All
#crypt
После трёх лет разработки и 19 тестовых выпусков состоялся релиз библиотеки OpenSSL 3.0.0 с реализацией протоколов SSL/TLS и различных алгоритмов шифрования. Новая ветка включает изменения, нарушающие обратную совместимость на уровне API и ABI, но изменения не повлияют на работу большинства приложений, для перевода которых с OpenSSL 1.1.1 достаточно пересборки. Поддержка прошлой ветки OpenSSL 1.1.1 будет осуществляться до сентября 2023 года.

Значительное изменение номера версии связано с переходом на традиционную нумерацию "Major.Minor.Patch". Первая цифра (Major) в номере версии отныне будет меняться только при нарушении совместимости на уровне API/ABI, а вторая (Minor) при наращивании функциональности без изменения API/ABI. Корректирующие обновления будут поставляться с изменением третьей цифры (Patch). Номер 3.0.0 сразу после 1.1.1 выбран для избежания пересечений с находящимся в разработке FIPS-модулем к OpenSSL, для которого применялась нумерация 2.x.

Вторым важным для проекта изменением стал переход с двойной лицензии (OpenSSL и SSLeay) на лицензию Apache 2.0. Ранее применявшаяся собственная лицензия OpenSSL была основана на тексте устаревшей лицензии Apache 1.0 и требовала явного упоминания OpenSSL в рекламных материалах при использовании библиотек OpenSSL, а также добавления специального примечания в случае поставки OpenSSL в составе продукта. Подобные требования делали старую лицензию несовместимой с GPL, что создавало трудности при использовании OpenSSL в проектах с лицензией GPL. Для обхода данной несовместимости GPL-проекты вынуждены были применять специфичные лицензионные соглашения, в которых основной текст GPL дополнялся пунктом, явно разрешающим связывание приложения с библиотекой OpenSSL и упоминающим, что требования GPL не распространяется на связывание с OpenSSL.
Разработчики DNS-сервера BIND сообщили о добавлении в экспериментальную ветку 9.17 реализации серверной поддержки технологий "DNS поверх HTTPS" (DoH, DNS over HTTPS) и DNS поверх TLS (DoT, DNS over TLS), а также механизма XFR-over-TLS для безопасной передачи содержимого DNS-зон между серверами. DoH доступен для тестирования в выпуске 9.17.10, а поддержка DoT присутствует начиная с выпуска 9.17.7. После стабилизации поддержка DoT и DoH будет бэкпортирована в стабильную ветку 9.16.

Реализация протокола HTTP/2, используемого в DoH, основана на применении библиотеки nghttp2, которая включена в число сборочных зависимостей (в дальнейшем библиотеку планируется перевести в число необязательных зависимостей). Поддерживаются как шифрованные (TLS), так и незашифрованные соединения по HTTP/2. При соответствующих настройках один процесс named теперь может обслуживать не только традиционные DNS-запросы, но и запросы, отправленные с использованием DoH (DNS-over-HTTPS) и DoT (DNS-over-TLS). Поддержка HTTPS на стороне клиента (dig) пока не реализована. Поддержка XFR-over-TLS доступна как для входящих, так и для исходящих запросов.