12.8k Star!“神奇虫洞”,一条命令就能安全传送文件

【导语】:基于 PAKE 协议实现文件在公网的加密传输。

简介

magic-wormhole (神奇虫洞)是基于 PAKE 协议实现文件在公网加密传输的软件工具,可以安全地将文件从一台计算机发送到另一台计算机,发送和接收均仅需一条命令。

两个端点通过使用相同的 wormhole codes 字符串来进行识别,发送端生成并显示 wormhole codes 字符串,接收端输入该字符串。这些字符串通常都是人类可读的,用来远距离传输时告知接收方。

日常生活中我们已经有了一些相应工具用来复制、传输文件。比如U盘,但是U盘适合物理位置上比较接近的文件复制传输,或者需要将U盘本身进行长距离运送;ssh/scp 可以进行远程复制,但是需要事先确定好机器的账号密码,如何安全地告知账号密码又是一个难题。

发送端:

% wormhole send README.md
Sending 7924 byte file named 'README.md'
On the other computer, please run: wormhole receive
Wormhole code is: 7-crossover-clockwork
 
Sending (<-10.0.1.43:58988)..
100%|=========================| 7.92K/7.92K [00:00<00:00, 6.02MB/s]
File sent.. waiting for confirmation
Confirmation received. Transfer complete.

接收端:

% wormhole receive
Enter receive wormhole code: 7-crossover-clockwork
Receiving file (7924 bytes) into: README.md
ok? (y/n): y
Receiving (->tcp:10.0.1.43:58986)..
100%|===========================| 7.92K/7.92K [00:00<00:00, 120KB/s]
Received file written to README.md

项目地址是:

https://github.com/magic-worm...

下载安装

  • 很多操作系统已经包含了该软件包,如果使用的是以下操作系统,直接使用即可




  • MacOS / OS-X
.brew install magic-wormhole
  • Linux (Debian/Ubuntu)
$ sudo apt install magic-wormhole
  • Linux (Fedora)
$ sudo dnf install magic-wormhole
  • Linux (openSUSE)
$ sudo zypper install python-magic-wormhole

设计

magic-wormhole 基于 PAKE 协议进行设计开发,即 Password-Authenticated Key Exchange,这是一个密码算法,它使用一个简短的低熵密码来建立一个强大的高熵共享密钥。然后可以使用此密钥来加密数据。

PAKE 有效地权衡了与离线攻击的交互。网络攻击者获取共享密钥的唯一方法是在初始连接期间执行中间人攻击,并正确猜测双方正在使用的代码。他们这样做的机会与 wormhole codes 的熵成反比。默认使用 16 位代码(使用 –code-length= 可以更改设置),因此对于该工具的每次使用,攻击者将获得 65536 分之一的成功机会。

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。

你可能感兴趣的:(ide)