首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python没有共享密码

Python没有共享密码
EN

Security用户
提问于 2021-05-10 10:41:01
回答 1查看 2.2K关注 0票数 0

我使用的是一个定制的Python,它使用的是封装pq算法的liboqs-openssl。我使用提供的dilithium2算法生成证书,并希望与Python和服务器创建一个简单的SSL连接。

简化客户端:

代码语言:javascript
复制
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.load_verify_locations('.../quantum-safe-chat/pqca/ca/dilithium2_CA.crt')
_socket = socket(AF_INET, SOCK_STREAM, 0)
_socket = context.wrap_socket(_socket, server_hostname=hostname)
_socket.connect(address)

简化服务器:

代码语言:javascript
复制
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.load_cert_chain(certfile='.../quantum-safe-chat/pqca/server/dilithium2_srv.crt',
                        keyfile='.../quantum-safe-chat/pqca/server/dilithium2_srv.key')
server = socket(AF_INET, SOCK_STREAM, 0)
server.bind(self.__address)
server = context.wrap_socket(self.__server, server_side=True)

现在,当我试图运行服务器和客户机时,我得到了客户机错误ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1129)和服务器错误ssl.SSLError: [SSL: NO_SHARED_CIPHER] no shared cipher (_ssl.c:1129)

我已经试着打印出两端都有context.get_ciphers()的密码,它们是相同的。此外,我还尝试用context.set_ciphers('ECDHE-RSA-AES256-GCM-SHA384')手动将其设置为两端相同的密码,这只会给出相同的结果。

有谁知道这个问题可能是什么吗?

EN

回答 1

Security用户

回答已采纳

发布于 2021-05-10 10:48:12

我不熟悉libqs-openssl,但是

  • 文档清楚地表明,必要的密码支持是对TLS1.3的支持,而代码坚持使用TL1.2
  • 您正在尝试使用需要RSA证书的密码,即使您没有RSA证书。

这意味着没有能够支持您的证书可用的身份验证方法的密码。换句话说:没有密码,因此也没有共享密码。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/249216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档