encryption - 检查连接是 TLSv1 还是 SSLv3 (SSL_CIPHER_description/SSL_CIPHER_get_name)

标签 encryption openssl

我有一个使用 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/

相关文章:

java - 使用 Fernet 在 Java 上进行对称加密

algorithm - 混淆 ID

encryption - OpenSSL 服务器密码选择

python - 导入错误 : cannot import name HTTPSHandler using PIP

c++ - 如何将 PKCS7_sign 结果转换为 char * 或 std::string

javascript - Node.js 服务器到服务器加密

python - 通过网络或任何其他 key 交换进行 Diffie-Hellman key 交换

java - AES-256 : IV vector misunderstanding between Ruby and Java implementations

c++ - 在 debian64 中编译 Qt 5 失败

c++ - OpenSSL AES_cfb128_encrypt 公钥/私钥 C++