gpt4 book ai didi

python - 安全直接连接文件传输程序

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:33 24 4
gpt4 key购买 nike

我正在考虑做一个涉及以标准直接连接方式传输文件的辅助项目。澄清一下,如果 9.9.9.9 想要将文件发送到 10.10.10.10,则 10.10.10.10 将监听某个端口,然后 9.9.9.9 将能够使用安全连接连接到 10.10.10.10。

不幸的是,我对任何安全协议(protocol)的了解都很少,但我最近正在阅读双向 SSL 的工作原理。我想用 Python 编写这个,这样我就可以使用 Python SSL 库。

我正在尝试就如何传输文件提出一个高层次的概述。我在想以下几点:

1) 第一次启动程序时,程序会生成一个自签名证书。此证书将与此程序一起使用,直到证书过期或被删除。

2) 用户 A 想向用户 B 发送文件。假设他们之间从未传输过文件。 B 必须在某个已经启动的端口上有一个 SSL 监听套接字。 A 将尝试连接到 B。

3) 当A尝试连接B时,双方都会被警告他们从未连接过对方。如果双方都选择继续,他们将把对方的证书存储在各自的机器上。将来,如果 A 想向 B 发送文件,或者反之亦然,程序将不会警告他们,因为他们有彼此的证书。

4) A 现在可以将文件发送给 B。

几个问题:

1)概述有什么问题吗(我确定有)?

2) 除了客户端可以访问监听器的证书之外,双向 SSL 还允许监听器访问客户端的证书,对吗?

3) 对于这些生成的证书,什么是好的到期时间限制(如果有的话)?

非常感谢你们!

最佳答案

您会发现这个包装程序(C 语言)很有用:

您的程序中存在与 SSL 证书初始交换有关的安全漏洞。您的协议(protocol)容易受到 SSL 试图阻止的中间人攻击。使用 Diffie-Hellman 会稍微改善这种情况,但不会从根本上解决问题。这就是为什么所有主要操作系统/浏览器都附带许多 SSL 证书的原因。

更新

我建议您只使用 Stunnel,因为当您不确定可以使用 SSL 做什么时,从头开始编写服务器端和客户端对您来说工作量太大。 Stunnel 是功能完备(包括相互(也称为双向)身份验证)且经过实战验证的 OpenSSL 用户软件示例。

我认为您需要执行以下步骤:

  1. 使用 Stunnel 连接到 https://www.google.com/
  2. 使用 Stunnel 通过您的自签名证书运行本地 SSL 服务器
  3. 使用 Stunnel 连接到 2。
  4. 使用 Python SSL 连接到 2.
  5. 使用 Python SSL 通过您的自签名证书运行本地 SSL 服务器
  6. 使用 Python SSL 连接到 5.

然后您将了解您的项目需要什么样的操作顺序。我很难想象你会因为缺少 Stunnel 的功能而遇到问题。如果您在使用 Stunnel 时遇到问题,那很可能是 SSL 的固有限制,并且在您切换到 Python SSL 后也无法摆脱它。

更新2

openssl s_clientopenssl s_server 开始可能比 Stunnel 更好。它们是一种“SSL telnet”。

关于python - 安全直接连接文件传输程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21950907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com