Домой Софт macOS и Linux LibreSSL 4.3.0: поддержка постквантовой криптографии и исправления безопасности

LibreSSL 4.3.0: поддержка постквантовой криптографии и исправления безопасности

Релиз включает поддержку MLKEM768_X25519, устранение уязвимости в проверке сертификатов и переработку внутренних механизмов работы с памятью.

LibreSSL 4.3.0: поддержка постквантовой криптографии и исправления безопасности
LibreSSL 4.3.0: поддержка постквантовой криптографии и исправления безопасности — иллюстрация к материалу. Источник: linux.org.ru

Команда разработчиков проекта LibreSSL официально представила релиз версии 4.3.0. Сборка уже доступна для загрузки на зеркалах OpenBSD.

Данный выпуск имеет статус development-версии для ветки 4.3.x. Разработчики призывают сообщество активно участвовать в тестировании, так как дальнейших правок в API и ABI для этой ветки не запланировано.

Ключевые нововведения и безопасность

Важнейшим изменением в LibreSSL 4.3.0 стала реализация постквантового метода обмена ключами MLKEM768_X25519 для TLS. Нововведение соответствует спецификациям черновика IETF draft-ietf-tls-ecdhe-mlkem.

Особое внимание уделили исправлению критической уязвимости: была устранена ошибка «off-by-one» при проверке глубины сертификатов X.509. Ранее проблема могла привести к перезаписи 4 байт в памяти при взаимодействии с вредоносным сервером или при активации проверки клиентских сертификатов. Теперь максимальная глубина цепочки жестко ограничена значением 32. Исправление было реализовано при поддержке специалистов Calif.io, Claude и Anthropic Research.

Технические улучшения и очистка кода

Внутренние изменения затронули оптимизацию и модернизацию кодовой базы:

  • Проведена очистка проекта от устаревших фрагментов кода, обеспечивавших поддержку SSLv2 и SSLv3/TLS 1.0.
  • Полностью переписана функция ec_point_cmp().
  • В DH_check() внедрен ускоренный путь для обработки стандартных простых чисел DH, включая те, что описаны в RFC 7919.

Совместимость и API

Для улучшения взаимодействия с другими библиотеками и языковыми привязками внесены следующие изменения:

  • Удалено множество неактуальных макросов группы BN_* с неинформативными названиями (включая BN_LONG, BN_BITS4, BN_MASK2 и другие).
  • Утилита openssl(1) cms прекратила поддержку параметров -compress и -uncompress.
  • Внедрен флаг PKCS7_NO_DUAL_CONTENT для обеспечения корректной работы с некоторыми сторонними языковыми привязками.
  • В публичное API добавлены функции SSL_SESSION_dup() и X509_VERIFY_PARAM_set_hostflags().
  • Добавлена поддержка алгоритма RSASSA-PSS с OID в libssl.
  • Компонент BIGNUM переведен на использование стандартных типов C99 (uint64_t/uint32_t), что решает ряд проблем при компиляции на 64-битных системах Windows.

Исправления ошибок

  • Устранены утечки памяти в функциях nref_nos() и CMS_EncryptedData_encrypt().
  • Исправлено кодирование битовых строк, содержащих завершающие нули.
  • Устранены причины аварийного завершения (падений) при парсинге ответов timestamp и структур PKCS#12.
  • В libtls исправлены многочисленные ошибки, касающиеся проверки длин и консистентности сообщений об ошибках.
Источник: https://www.linux.org.ru