【问题标题】:No cipher can be selected无法选择任何密码
【发布时间】:2023-04-05 13:47:01
【问题描述】:

我在 python 2.7 / Win XP 上与 IDEA-CBC-SHA 建立 ssl 连接时遇到问题。

这是代码:

ciphers = "IDEA-CBC-SHA"

ssl_sock = ssl.wrap_socket(self.sock,
                           keyfile  = keyfile,
                           certfile = certfile,
                           ciphers  = ciphers)

ssl_sock.connect((address, port))

结果如下:

SSLError: _ssl.c:319: No cipher can be selected.

当我查询 openssl 时,我将 IDEA-CBC-SHA 视为列出的密码之一

OpenSSL> ciphers
DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DES-CBC3-MD5:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:IDEA-CBC-SHA:IDEA-CBC-MD5:RC2-CBC-MD5:RC4-SHA:RC4-MD5:RC4-MD5:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC2-CBC-MD5:EXP-RC4-MD5:EXP-RC4-MD5

我已经使用其他密码(DES-CBC3-SHA、RC4-SHA、AES256-SHA、AES128-SHA)进行了测试,它们都运行良好。

知道为什么我的 ssl 连接对于这个特定的密码可能会失败吗?

有什么方法可以禁用(然后启用)密码吗?

谢谢!

【问题讨论】:

  • IDEA 支持(以及 MDC2 和 RC5)由于专利问题而有些不常见。大多数发行版在没有它的情况下构建他们的 OpenSSL 库,自然大多数服务器使用他们发行版附带的任何东西。出于同样的原因,浏览器不支持它。
  • @SilverbackNet 那么当我在 OpenSSl 命令行上运行 ciphers 命令时这意味着什么?这不是它支持的密码列表吗?如果列出了 IDEA-CBC-SHA,是否不能确认它受支持?如果不是,那么有什么方法可以确定我的系统支持哪些密码?谢谢。

标签: python ssl openssl


【解决方案1】:

知道为什么我的 ssl 连接对于这个特定的密码可能会失败吗?

可能您连接的服务器不支持 IDEA。数据包捕获将确认这一点。

编辑:在 ssl 连接中,客户端建议它愿意使用的密码选项列表。服务器从该列表中选择服务器认为可接受的选项之一。如果服务器不喜欢客户端提出的任何选项,则连接将失败,因为服务器无法选择密码套件

【讨论】:

  • 现在看起来很明显......这正是问题所在。服务器不支持。我假设它在服务器上受支持,因为在应用程序配置文件中它在允许的密码列表中......谢谢!!
猜你喜欢
  • 1970-01-01
  • 2017-06-18
  • 2018-03-21
  • 2023-03-28
  • 2011-05-06
  • 2019-10-11
  • 2016-10-29
  • 1970-01-01
  • 2015-10-23
相关资源
最近更新 更多