openSSL: Как указать алгоритмы хеширования подписи, которые я приму?

openSSL: Как указать алгоритмы хеширования подписи, которые я приму?

Используя openSSL, на клиенте TLS я указал уникальный набор шифров с помощью SSL_CTX_set_cipher_list().

Когда я просматриваю сообщения с помощью Wireshark, то вижу в сообщении Client Hello разрешенные наборы шифров, которые я указал.

Но если я посмотрю на Расширение: алгоритмы подписи, то увижу, что клиент, похоже, принимает большое количество алгоритмов, включая некоторые, которые кажутся мне не очень безопасными, например MD5.

Как я могу изменить это поведение?

решение1

(Нашел, исследуя что-то еще. Не знаю, что лучше — security или даже SO.)

В релизе 1.0.2 (только) есть новые SSL_[CTX_]set1[_client]_sigalgs[_list]для этого. Я пока не видел ни одного документа ни в одном релизе, но, по-видимому, он есть в "master" (т.е. в "trunk" разработки) на веб-сайте по адресуhttps://www.openssl.org/docs/manmaster/ssl/SSL_CTX_set1_sigalgs.htmlтак, по-видимому, и будет в будущих релизах.

В более ранних версиях вы могли установить обратный вызов проверки или просто проверить цепочку результатов и отклонить любой сертификат или цепочку, использующие MD5, RSA<=1024 или ECC, использующие кривые, подозреваемые в наличии бэкдоров АНБ, или что-то еще, что вам не нравится, например, политику CA, которая гласит «мы ненавидим кошек».

Связанный контент