gpt4 book ai didi

python - pyOpenSSL 密码列表失败

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:45 24 4
gpt4 key购买 nike

在 Apache 中,我成功地使用了以下 OpenSSL 密码设置:

SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM \
EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 \
EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 \
EECDH EDH+aRSA \
!aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"

我试图在 python (Twisted) 服务器中模拟它,但服务器不会提供任何具有指定的可比密码列表的页面。我究竟做错了什么?这是 python (本质上...)

     from OpenSSL import SSL
....
httpSslContext = ssl.DefaultOpenSSLContextFactory(...)
ctx = httpSslContext.getContext()
ctx.set_options( SSL.OP_CIPHER_SERVER_PREFERENCE )
ctx.set_cipher_list( "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4" )
...

如果我将密码列表更改为像“RC4-SHA”这样简单的东西,或者甚至像“DEFAULT:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP: !PSK:!SRP:!DSS:!RC4”。我设置了一些其他选项,例如异常(exception)协议(protocol),但我不知道是否相关...

请注意,此处使用了相同的密码列表:Python Paste SSL server with TLSv1.2 and Forward Secrecy

出于同样的原因,我正在尝试实现相同的结果,但遇到了一些问题。我现在想知道是否存在 pyOpenssl 版本差异?也许不允许使用 EECDH 密码?我也不能使用 ctx.set_tmp_ecdh()...

最佳答案

问题确实是无法使用 context.set_tmp_ecdh(),这是由于没有安装新版本的 pyOpenSSL。请参阅:Why is context.set_tmp_ecdh() not defined in pyOpenSSL?。解决这个问题。

当您指定一个密码列表时,这实际上并不是最终被实现的密码。 connection.get_cipher_list()(我在 context.set_info_callback() 函数中调用)将在考虑其他所有因素时显示实际结果。

旧版本的 pyOpenSSL 无法使用 EECDH(椭圆曲线)密码。因此,它们不可用,我的首选密码列表在某些浏览器上不起作用。

另一方面,Apache 没有这个问题,并且允许开箱即用地使用这些密码。

关于python - pyOpenSSL 密码列表失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34008974/

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