【问题标题】:Diffie-Hellman key exchange over the network or any other key exchange网络上的 Diffie-Hellman 密钥交换或任何其他密钥交换
【发布时间】:2018-10-04 18:06:02
【问题描述】:

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

我的思考过程——

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

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

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

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

谢谢

【问题讨论】:

  • 您的上述架构很容易受到中间人的攻击。
  • 您能否帮助简要解释一下,我需要一个密钥以加密方式发送给其他客户端。我想,DH 会帮助安全地共享密钥,不是吗?
  • 这就是您应该使用 TLS 的原因 - 设计您自己的协议通常最终会变得不安全。你的也不例外。
  • DH 通常容易受到 MITM 的攻击。我建议您阅读密钥交换算法及其工作原理。
  • 投票范围太广,这个网站不是设计安全传输协议的好起点。

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


【解决方案1】:

不重新发明轮子怎么样:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2014-05-13
    • 2023-03-03
    • 2010-09-29
    • 1970-01-01
    相关资源
    最近更新 更多