通过网络进行Diffie-Hellman密钥交换或任何其他密钥交换

时间:2018-10-04 18:06:02

标签: python python-3.x encryption public-key-encryption grpc

构建端到端加密服务的正确方法是什么?

我的思考过程-

  1. 为用户创建公共密钥和私钥,在握手阶段(当两个用户聊天开始聊天时),使用公共密钥与接收者共享密钥

  2. 一旦双方都获得了密钥,我想可以使用pycrypto库对Tx侧消息进行加密,并且可以使用第一步中共享的密钥在Rx侧对它们进行解密。

我的问题-如何实现DH密钥交换?我们在python中有库吗?

PS:该应用程序是使用gRPC构建的,

谢谢

1 个答案:

答案 0 :(得分:0)

如何不重新发明轮子呢?

import socket
import ssl
s = socket.socket(...)
secure = ssl.wrap_socket(s, keyfile="mykey", certfile="mycert")

openssl将建立一个ssl会话并进行协商。然后,您可以通过安全套接字进行通信。