gpt4 book ai didi

Python ssl 获取支持的密码

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:41 25 4
gpt4 key购买 nike

我想知道为什么没有一种简单的方法来查找特定 ssl 上下文支持的密码? (还是我错过了)

我知道我们可以使用 socket.cipher()获取用于特定连接的那个 socket ,但为什么不获取所有支持的密码呢?

另一件事是,

我有一个服务器正在运行带有密码字符串的 openssl 库 "HIGH+TLSv1.2:!MD5:!SHA1" .客户端是一个使用 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 使用 SSL_CIPHER_get_version 找出版本字符串。配套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 版本中修复。

关于Python ssl 获取支持的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44395795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com