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

Diffie-Hellman key exchange over the network or any other key exchange

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

我的思考过程 -

  1. 为用户创建public密钥和私钥,在握手阶段使用public密钥与接收方共享密钥(当两个用户聊天发起聊天时)

  2. 一旦双方都获得了密钥,我想 pycrypto 库可以用来加密 Tx 端消息,并且可以使用第一个共享的密钥在 Rx 端解密步骤.

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

PS: 正在使用 gRPC 构建应用程序,

谢谢

不重新发明轮子怎么样:

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

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