我有一个使用 OpenSSL 的服务器应用程序。我试图了解什么类型的 SSL 连接正在访问我的系统(即 SSLv2、SSLv3、TLSv1、TLSv1.1、TLSv1.2)。特别是,我正在努力禁用 SSLv3(re:POODLE)。在我这样做之前,我想看看谁/什么在 SSLv3 上连接
我目前正在使用 SSL_CIPHER_description 和 SSL_CIPHER_get_name 函数,它们提供了关于为每个连接协商的密码的非常好的信息
我在尝试区分 SSLv3 与 TLSv1 连接时遇到了一些挑战。每
https://www.openssl.org/docs/ssl/SSL_CIPHER_get_name.html :
"The TLSv1.0 ciphers are flagged with SSLv3. No new ciphers were added by TLSv1.1."
我已经确认 TLSv1 连接被标记为 SSLv3
例如:SSL_CIPHER_description 在绝对是 TLSv1.0 的连接上返回以下内容:
AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1
有没有人对如何检测 OpenSSL 中的连接是 SSLv3 还是 TLSv1 有任何想法?
最佳答案
您可以使用方法 SSL_get_version(SSL *ssl)
连接协商成功后。
关于encryption - 检查连接是 TLSv1 还是 SSLv3 (SSL_CIPHER_description/SSL_CIPHER_get_name),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26656680/