Предварительный выпуск OpenSSL 1.1.0 с поддержкой ChaCha20 и Poly1305

Началось тестирование альфа-выпуска новой ветки библиотеки OpenSSL 1.1.0 с реализацией протоколов SSL/TLS и различных алгоритмов шифрования. Новая ветка включает изменения, нарушающие обратную совместимость на уровне API. Релиз намечен на 28 апреля. Поддержка выпуска OpenSSL 1.0.2 будет осуществляться до 31 декабря 2019 года, а 1.0.1 — до 31 декабря 2016 года. Время жизни веток 0.9.8 и 1.0.0 истекает через несколько недель, 31 декабря 2015 года.

Основные новшества OpenSSL 1.1.0:

  • В libcrypto и libssl интегрированы потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305, разработанные Дэниелом Бернштейном (Daniel J. Bernstein), Таней Ланге (Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 можно рассматривать, как более быстрые и безопасные аналоги AES-256-CTR и HMAC, программная реализация которых позволяет добиться фиксированного времени выполнения без задействования специальных аппаратных ускорителей;
  • Прекращена поддержка устаревших технологий, в том числе удалены компоненты, обеспечивающие работу SSLv2, Kerberos, 40- и 56-разрядных шифров. Из набора шифров по умолчанию исключён алгоритм RC4;
  • В libcrypto и libssl добавлена поддержка асинхронных криптографических операций;
  • Поддержка TLS-расширения Extended Master Secret (RFC 7627);
  • Интеграция набора блочных шифров CCM;
  • Переработка тестового набора, который переписан на Perl с использованием модулей Test: Harness и Test: More;
  • Скрыты многие внутренние структуры libssl и libcrypto, в том числе BIGNUM, EVP_MD, EVP_MD_CTX и HMAC_CTX.
  • Переписаны реализация конечного автомата для SSL/TLS, код согласования версий протокола и слой обработки записей;
  • Операции с эллиптическими кривыми переведены на новый метод EC_KEY_METHOD;
  • В libcrypto добавлен режим работы с блочными шифрами OCB (Offset Codebook Mode);
  • Все публичные заголовочные файлы перенесены в директорию include/openssl (ранее использовались символические ссылки).

© OpenNet