OpenSSL newb ie,
Я пытаюсь отключить SHA1 из алгоритмов подписи, я установил алгоритмы подписи OpenSSL так:
SSL_CTX_set1_sigalgs_list(ctx, "ECDSA+SHA256:rsa_pss_rsae_sha256:RSA+SHA256:ECDSA+SHA384:rsa_pss_rsae_sha384:RSA+SHA384:rsa_pss_rsae_sha512:RSA+SHA512");
Как вы можете видеть там нет списка SHA1, функция возвращает успех, и WireShark действительно показывает эти алгоритмы:
Signature Hash Algorithms (8 algorithms)
Signature Algorithm: ecdsa_secp256r1_sha256 (0x0403)
Signature Algorithm: rsa_pss_rsae_sha256 (0x0804)
Signature Algorithm: rsa_pkcs1_sha256 (0x0401)
Signature Algorithm: ecdsa_secp384r1_sha384 (0x0503)
Signature Algorithm: rsa_pss_rsae_sha384 (0x0805)
Signature Algorithm: rsa_pkcs1_sha384 (0x0501)
Signature Algorithm: rsa_pss_rsae_sha512 (0x0806)
Signature Algorithm: rsa_pkcs1_sha512 (0x0601)
Однако, когда я подключаюсь к https://sha1-intermediate.badssl.com/, OpenSSL не применяет Алгоритмы подписи, которые я установил, и позволяют TLS-связи go на непрерывной основе.
Это pcap-файл WireShark .
Почему OpenSSL не применяет установленную подпись алгоритмы? Мне удалось сделать это только с помощью SSL_CTX_get_security_level и установить его на 2, но не рекомендуется устанавливать его выше 1. Также я хотел бы получить более детальный контроль.
Спасибо за вашу помощь, Дэвид.