Представлен (http://permalink.gmane.org/gmane.network.gnutls.general/4127) значительный выпуск GnuTLS 3.5.0, свободной библиотеки с реализацией протоколов SSL, TLS и DTLS, алгоритмов шифрования (включая AES и Camellia) и функций для работы с различными типами сертификатов и ключей. Ветка 3.5.x подготовлена после года разработки в Git-репозитории и помечена как stable-next, что сигнализирует о достижении качества стабильной ветки, но пока неготовности заменить текущую стабильную ветку 3.4.x (https://www.opennet.ru/opennews/art.shtml?num=43415), поддержка которой будет продолжена.
Основные новшества (http://nmav.gnutls.org/2016/05/gnutls-3-5-0.html):
- Для DSA, RSA и ECDSA добавлены алгоритмы цифровой подписи на базе SHA3. В утилиту certtool добавлена поддержка создания подписей для сертификатов с использованием SHA3.
- Добавлена поддержка алгоритма Curve25519 (https://en.wikipedia.org/wiki/Curve25519) (RFC 7748 (https://tools.ietf.org/html/rfc7748)), предложенного Дэниэлом Бернштейном (D. J. Bernstein);
- Для TLS реализовано расширение False Start (draft-ietf-tls-falsestart-01 (https://tools.ietf.org/html/draft-bmoeller-tls-falsestart-01)) для ускорения установки соединения, активируемое через флаг GNUTLS_ENABLE_FALSE_START в gnutls_init();
- Добавлены новые вызовы API для доступа к средствам генерации параметров RSA и DSA, определённым в FIPS186-4;
- По умолчанию активирована связка из потокового шифра ChaCha20 и алгоритма аутентификации сообщений (MAC) Poly1305, которая в цепочке приоритетов поставлена вслед за AES-GCM;
- Добавлена проверка сохранения владельца прежнего сертификата при повторном согласовании соединения (rehandshake), что добавляет дополнительное звено защиты для приложений не делающих подобных проверок;
- Ужесточён процесс декодирования списка расширений TLS, который теперь не допускает ошибок при разборе содержимого поля с расширениями (ранее при ошибке использовалась типовая структура);
- Старые и неподдерживаемые номера версий протокола в сообщениях установки соединения теперь приводят к отказу установки соединения;
- Вызов функций gnutls_session_get_data*() ограничен только для исходных сессий (не возобновлённых);
- Для возобновления сеанса задействованы требования RFC 7627 (https://tools.ietf.org/html/rfc7627) (extended master secret);
- Системные вызовы writev() и select() заменены на sendmsg() и poll();
- Файл со списком приоритетов теперь загружается при загрузке библиотеки, что позволяет использовать приоритеты и в программах, выполняющих chroot();
- Приложениям разрешено переопределять URL встроенных ключей и сертификатов;
- В утилиту certtool добавлены опции "--provable" "--verify-allow-broken";
- Из базовой поставки удалена утилита crywrap, которая теперь развивается отдельно (https://github.com/nmav/crywrap);
- Добавлены новые элементы API:
- GNUTLS_FORCE_CLIENT_CERT;
- GNUTLS_ENABLE_FALSE_START;
- GNUTLS_INDEFINITE_TIMEOUT;
- GNUTLS_ALPN_SERVER_PRECEDENCE;
- GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING;
- GNUTLS_E_HANDSHAKE_DURING_FALSE_START;
- gnutls_check_version_numeric;
- gnutls_x509_crt_equals;
- gnutls_x509_crt_equals2;
- gnutls_x509_crt_set_subject_alt_othername;
- gnutls_x509_crt_set_issuer_alt_othername;
- gnutls_x509_crt_get_signature_oid;
- gnutls_x509_crt_get_pk_oid;
- gnutls_x509_crq_set_subject_alt_othername;
- gnutls_x509_crq_get_pk_oid;
- gnutls_x509_crq_get_signature_oid;
- gnutls_x509_crl_get_signature_oid;
- gnutls_x509_privkey_generate2;
- gnutls_x509_privkey_get_seed;
- gnutls_x509_privkey_verify_seed;
- gnutls_privkey_generate2;
- gnutls_privkey_get_seed;
- gnutls_privkey_verify_seed;
- gnutls_decode_ber_digest_info;
- gnutls_encode_ber_digest_info;
- gnutls_dh_params_import_dsa;
- gnutls_session_get_master_secret;
URL: http://permalink.gmane.org/gmane.network.gnutls.general/4127
Новость: https://www.opennet.ru/opennews/art.shtml?num=44393