Python 安全直接连接文件传输程序
我正在考虑做一个附带项目,它将涉及以标准的直接连接方式传输文件。为了澄清这一点,如果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) 对于这些生成的证书,什么是有效的过期时间限制(如果有)Python 安全直接连接文件传输程序,python,sockets,ssl,file-transfer,Python,Sockets,Ssl,File Transfer,我正在考虑做一个附带项目,它将涉及以标准的直接连接方式传输文件。为了澄清这一点,如果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) 当程序第一次启动时
非常感谢你们 您会发现此包装程序(C)非常有用:
与Stunnel相比,从
openssl s_客户端
和openssl s_服务器
开始可能更好。它们是一种“SSL telnet”。scp有什么问题吗??这不需要该程序的运行者创建一个新的系统级用户吗?我想避免这样。特别是在OSX上运行这个程序,因为在OSX上的程序通常是以自包含的形式分发的,并且在第一次运行程序时不需要root(我希望这个程序能够跨平台工作)是的,我认为它可能容易受到MITM攻击。它们是SSL试图通过证书链避免MITM的方式,对吗?我将使用Python的ssl.getpeercert()方法获取对方的证书。文档中没有说明,但我假设证书是以明文形式发送的?对于stunnel,您是否建议使用它而不是使用Python库?我想我不知道这比图书馆有什么优势。这个图书馆似乎使用起来很简单。非常感谢!