【发布时间】:2014-02-23 17:14:29
【问题描述】:
我正在考虑做一个涉及以标准直接连接方式传输文件的副项目。澄清一下,如果 9.9.9.9 想要向 10.10.10.10 发送文件,则 10.10.10.10 将监听某个端口,然后 9.9.9.9 将能够使用安全连接连接到 10.10.10.10。
不幸的是,我几乎没有任何安全协议的背景知识,但我最近正在阅读双向 SSL 的工作原理。我想用 Python 写这个,这样我就可以使用 Python SSL 库了。
我正在尝试对如何传输文件提出一个高层次的概述。我在想以下几点:
1) 程序第一次启动时,程序会生成一个自签名证书。此证书将与此程序一起使用,直到证书过期或被删除。
2) 用户 A 想向用户 B 发送文件。假设他们从未在彼此之间传输过文件。 B 必须在某个端口上已经有一个 SSL 侦听套接字。 A 将尝试连接到 B。
3) 当 A 尝试连接到 B 时,双方将被警告他们从未相互连接。如果双方选择继续,他们将在各自的机器上存储彼此的证书。将来,如果 A 想向 B 发送文件,反之亦然,程序不会警告他们,因为他们有彼此的证书。
4) A 现在可以将文件发送给 B。
几个问题:
1) 概述有什么问题吗(我确定有)?
2) 除了客户端可以访问监听器的证书之外,双向 SSL 还允许监听器访问客户端的证书,对吗?
3) 对于这些生成的证书,什么是好的到期时间限制(如果有的话)?
非常感谢你们!
【问题讨论】:
-
scp有什么问题? -
那不需要这个程序的运行者创建一个新的系统级用户吗?我想避免这种情况。特别是在 OSX 上运行它,因为那里的程序通常是独立的,并且在第一次运行程序时不需要 root(我希望这个程序可以跨平台工作)
标签: python sockets ssl file-transfer