在 TLS 客户端上使用 openSSL,我使用 SSL_CTX_set_cipher_list() 指定了一个唯一的密码套件。
当我使用 wireshark 查看消息时,我看到在客户端 Hello 消息中,允许的密码套件是我指定的。
但是如果我查看扩展:签名算法,我发现客户端似乎接受大量算法,其中包括一些对我来说似乎不太安全的算法,例如 MD5。
我怎样才能改变这种行为?
答案1
(发现正在研究其他东西。我不知道安全性,甚至是 SO,是否会更好。)
在版本 1.0.2(仅限)中,有关于此内容的新内容SSL_[CTX_]set1[_client]_sigalgs[_list]
。我尚未在任何版本中看到文档,但它显然位于网站上的“主”(即开发“主干”)中https://www.openssl.org/docs/manmaster/ssl/SSL_CTX_set1_sigalgs.html因此大概它会出现在未来的版本中。
在早期版本中,您可以设置验证回调,或者仅检查结果链,并拒绝使用 MD5、RSA<=1024 或使用怀疑是 NSA 后门的曲线的 ECC 的任何证书或链,或任何您不喜欢的东西,例如说“我们讨厌猫”的 CA 政策。