在 Twisted 中禁用 TLS 1.3 Python
Disable TLS 1.3 in Twisted Python
如何在 Twisted 服务器中禁用 TLS 1.3?这是我的代码,应该禁用 TLS 1.3,但没有:
from twisted.internet import ssl
ciphers = ssl.AcceptableCiphers.fromOpenSSLCipherString(
"ECDHE-RSA-AES128-GCM-SHA256:AES128-SHA"
)
tls_options = ssl.CertificateOptions(
privateKey=my_key,
certificate=my_cert,
extraCertChain=my_cert_chain,
acceptableCiphers=ciphers,
lowerMaximumSecurityTo=ssl.TLSVersion.TLSv1_2
)
listening_port = my_reactor.listenSSL(8000, my_factory, tls_options)
我添加了 lowerMaximumSecurityTo=ssl.TLSVersion.TLSv1_2
但这似乎禁用了 TLS 1.2 (!) 并使 TLS 1.3 可用。结果如下:
SSLv2 not offered (OK)
SSLv3 not offered (OK)
TLS 1 offered (deprecated)
TLS 1.1 offered (deprecated)
TLS 1.2 not offered and downgraded to a weaker protocol
TLS 1.3 offered (OK): final
删除 lowerMaximumSecurityTo=ssl.TLSVersion.TLSv1_2
或更改为 TLSv1_3
后,TLS 1、1.1、1.2 和 1.3 均被报告为受支持。
我正在使用来自 https://testssl.sh/dev/
的 testssl.sh 3.1dev 进行测试
我正在使用 Ubuntu 18.04,包括他们的 Twisted、OpenSSL、Python3 等软件包
这是由于将旧的 Python OpenSSL 包与现代 OpenSSL 本机库混合所致。两者均由 Ubuntu 18.04 提供。修复是更新 Python OpenSSL 包,使用 PIP 而不是系统包。
为什么失败:
- OpenSSL 本机库默认启用 TLS 1.3。
- 旧 Python OpenSSL 包不公开关闭 TLS 1.3 所需的常量。
- 现代 Twisted 检查 OpenSSL Python 包,发现它没有公开关闭 TLS 1.3 所需的常量,并错误地假设 OpenSSL 本机库不支持 TLS 1.3。它没有提供任何关于此的警告。
如何在 Twisted 服务器中禁用 TLS 1.3?这是我的代码,应该禁用 TLS 1.3,但没有:
from twisted.internet import ssl
ciphers = ssl.AcceptableCiphers.fromOpenSSLCipherString(
"ECDHE-RSA-AES128-GCM-SHA256:AES128-SHA"
)
tls_options = ssl.CertificateOptions(
privateKey=my_key,
certificate=my_cert,
extraCertChain=my_cert_chain,
acceptableCiphers=ciphers,
lowerMaximumSecurityTo=ssl.TLSVersion.TLSv1_2
)
listening_port = my_reactor.listenSSL(8000, my_factory, tls_options)
我添加了 lowerMaximumSecurityTo=ssl.TLSVersion.TLSv1_2
但这似乎禁用了 TLS 1.2 (!) 并使 TLS 1.3 可用。结果如下:
SSLv2 not offered (OK)
SSLv3 not offered (OK)
TLS 1 offered (deprecated)
TLS 1.1 offered (deprecated)
TLS 1.2 not offered and downgraded to a weaker protocol
TLS 1.3 offered (OK): final
删除 lowerMaximumSecurityTo=ssl.TLSVersion.TLSv1_2
或更改为 TLSv1_3
后,TLS 1、1.1、1.2 和 1.3 均被报告为受支持。
我正在使用来自 https://testssl.sh/dev/
的 testssl.sh 3.1dev 进行测试我正在使用 Ubuntu 18.04,包括他们的 Twisted、OpenSSL、Python3 等软件包
这是由于将旧的 Python OpenSSL 包与现代 OpenSSL 本机库混合所致。两者均由 Ubuntu 18.04 提供。修复是更新 Python OpenSSL 包,使用 PIP 而不是系统包。
为什么失败:
- OpenSSL 本机库默认启用 TLS 1.3。
- 旧 Python OpenSSL 包不公开关闭 TLS 1.3 所需的常量。
- 现代 Twisted 检查 OpenSSL Python 包,发现它没有公开关闭 TLS 1.3 所需的常量,并错误地假设 OpenSSL 本机库不支持 TLS 1.3。它没有提供任何关于此的警告。