首页 > 解决方案 > 安全地交换公共 dsa 密钥以在 python 中手动使用

问题描述

在我的一个项目中,我正在努力通过不安全的网络实现客户端和服务器之间的安全 TCP 通信。最初我正在考虑将其传递给 openssl,但我得出结论(由于超出此问题范围的原因),我更愿意手动处理 DSA 密钥。虽然这部分很简单,但还有一个问题:我如何将公钥发送到服务器,同时确保没有 MITM 拦截该密钥并用自己的密钥替换它?

我一直在研究 Diffie-Hellman 密钥交换算法,但我还没有找到一种在我的代码中实现这个而不重新发明轮子的方法,而且我正在努力为它找到一个现有的库,所以我决定退后一步有点,简单地问:

是否有图书馆或其他方法可以让我安全地交换密钥,同时允许我手动应用密钥?基本上,我想自己使用密钥进行实际的加密/解密,但我需要一种可靠的方式来交换所涉及的公钥。

在 Linux 上使用 python 3.6.9。我可以访问 openssl 和常用的 linux-tools。

标签: python-3.xencryptiondiffie-hellmanman-in-the-middle

解决方案


Diffie-Hellmen 算法应该很容易实现,Wikipedia 上的简单示例突出显示了所有以编程方式易于执行的步骤。

在此处输入图像描述


推荐阅读