openSSL: Como especificar os algoritmos de hash de assinatura que aceitarei?

openSSL: Como especificar os algoritmos de hash de assinatura que aceitarei?

Usando openSSL, em um cliente TLS, especifiquei um conjunto de criptografia exclusivo com SSL_CTX_set_cipher_list().

Quando uso o wireshark para ver as mensagens, vejo na mensagem Client Hello que os conjuntos de criptografia permitidos são aqueles que especifiquei.

Mas se eu olhar para a Extensão: algoritmos de assinatura, vejo que o cliente parece aceitar um grande número de algos, incluindo alguns que não me parecem muito seguros, como o MD5.

Como posso mudar esse comportamento?

Responder1

(Encontrei pesquisando outra coisa. Não sei se a segurança, ou mesmo o SO, seria melhor.)

Na versão 1.0.2 (apenas) há novidades SSL_[CTX_]set1[_client]_sigalgs[_list]para isso. Ainda não vi nenhum documento em nenhuma versão, mas aparentemente está em "master" (ou seja, o "tronco" de desenvolvimento) no site emhttps://www.openssl.org/docs/manmaster/ssl/SSL_CTX_set1_sigalgs.htmlentão, presumivelmente, será em versões futuras.

Nas versões anteriores, você pode definir um retorno de chamada de verificação ou apenas verificar a cadeia de resultados e rejeitar qualquer certificado ou cadeia usando MD5 ou RSA <= 1024 ou ECC usando curvas suspeitas de backdoors da NSA ou qualquer outra coisa que você não goste, como CA política que diz "nós odiamos gatos".

informação relacionada