Python 支持 ssl 获取密码
Python ssl get ciphers supported
我想知道为什么没有一种简单的方法来查找特定 ssl 上下文支持的密码? (还是我错过了)
我知道我们可以使用 socket.cipher()
来获得用于特定 socket
连接的密码,但为什么不使用某些东西来获得所有支持的密码呢?
另一件事是,
我有一个服务器,它是 运行 带有密码字符串 "HIGH+TLSv1.2:!MD5:!SHA1"
的 openssl 库。客户端是一个使用 ssl
库的 python 文件,具有默认选项,并且在建立连接后 socket.cipher()
显示下面的元组
('DHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)
当我明确提到 TLSv1.2 时,如何与 TLSv1 建立连接,以及它如何使用 SHA384
,而 TLSv1 不支持高于 SHA1
的任何东西?
I was wondering why isn't there a simple way to find the ciphers supported by a particular ssl context? (Or did I miss it)
只有 OpenSSL 1.1.0 添加了一个函数 SSL_CTX_get_ciphers 来访问此列表,而此功能在 Python 中尚不可用。
('DHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)
How is the connection established with TLSv1, when I explicitly mentioned TLSv1.2, and how is it using SHA384, when TLSv1 doesn't have support for anything higher then SHA1?
根据 the source code Python is using SSL_CIPHER_get_version to find out the version string. The matching OpenSSL documentation 对于 OpenSSL 1.0.2 的说法:
SSL_CIPHER_get_version() returns string which indicates the SSL/TLS protocol version that first defined the cipher. This is currently SSLv2 or TLSv1/SSLv3. In some cases it should possibly return "TLSv1.2" but does not; use SSL_CIPHER_description()
因此,这是 OpenSSL 中的一个错误,根据 OpenSSL 1.1.0 中相同功能的文档,它已在最新的 OpenSSL 版本中修复。
我想知道为什么没有一种简单的方法来查找特定 ssl 上下文支持的密码? (还是我错过了)
我知道我们可以使用 socket.cipher()
来获得用于特定 socket
连接的密码,但为什么不使用某些东西来获得所有支持的密码呢?
另一件事是,
我有一个服务器,它是 运行 带有密码字符串 "HIGH+TLSv1.2:!MD5:!SHA1"
的 openssl 库。客户端是一个使用 ssl
库的 python 文件,具有默认选项,并且在建立连接后 socket.cipher()
显示下面的元组
('DHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)
当我明确提到 TLSv1.2 时,如何与 TLSv1 建立连接,以及它如何使用 SHA384
,而 TLSv1 不支持高于 SHA1
的任何东西?
I was wondering why isn't there a simple way to find the ciphers supported by a particular ssl context? (Or did I miss it)
只有 OpenSSL 1.1.0 添加了一个函数 SSL_CTX_get_ciphers 来访问此列表,而此功能在 Python 中尚不可用。
('DHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)
How is the connection established with TLSv1, when I explicitly mentioned TLSv1.2, and how is it using SHA384, when TLSv1 doesn't have support for anything higher then SHA1?
根据 the source code Python is using SSL_CIPHER_get_version to find out the version string. The matching OpenSSL documentation 对于 OpenSSL 1.0.2 的说法:
SSL_CIPHER_get_version() returns string which indicates the SSL/TLS protocol version that first defined the cipher. This is currently SSLv2 or TLSv1/SSLv3. In some cases it should possibly return "TLSv1.2" but does not; use SSL_CIPHER_description()
因此,这是 OpenSSL 中的一个错误,根据 OpenSSL 1.1.0 中相同功能的文档,它已在最新的 OpenSSL 版本中修复。