Transferência direta de arquivos entre dispositivos via WebRTC



O novo serviço WebWormHole funciona como um portal através do qual os arquivos são transferidos de um computador para outro. Pressione o botão New Wormhole - e obtenha o código para inserir. Uma pessoa, por outro lado, insere o mesmo código ou URL - e um túnel efêmero é estabelecido entre você, através do qual os arquivos são transferidos diretamente. Muito simples e eficiente. Código fonte do Github .

Para instalar o portal entre dispositivos, não é necessário abrir um navegador. O cliente on Go é iniciado a partir da linha de comando e gera um código único no console.

Instalação:

$ go get -u webwormhole.io/cmd/ww

Transmissão:

$ cat hello.txt
hello, world
$ ww send hello.txt
8-enlist-decadence

O destinatário do outro lado do túnel efêmero insere um código único no console - e recebe o arquivo.

$ ww receive 8-enlist-decadence
$ cat hello.txt
hello, world

O autor do programa, Salman Aljammaz, alerta que o cliente está em desenvolvimento inicial, usa bibliotecas criptográficas experimentais; portanto, ele pode não funcionar corretamente em todos os navegadores. O programa também não passou em uma auditoria de segurança; portanto, pode não funcionar corretamente e não é seguro.

O autor emprestou a idéia e o nome do programa Magic Wormhole , que também estabelece uma conexão ponto a ponto e transfere arquivos entre computadores.


Buraco de Minhoca Mágico

A diferença é que o WebWormHole usa o WebRTC, que permite que você rompa firewalls e NAT, além de iniciar a transmissão pelo navegador.

Cada túnel é protegido por uma senha descartável e PAKEEssa é uma troca de chaves específica com autenticação de senha para estabelecer uma conexão criptografada. No entanto, a senha em si não é transmitida pela rede de nenhuma forma.

A verificação é realizada aproximadamente como em uma prova com divulgação zero , na qual o destinatário pode verificar a confiabilidade de qualquer declaração, sem ter outras informações do remetente.


SPAKE2

No WebWormHole, para gerar uma chave de criptografia comum, as descrições de sessão são trocadas com impressões digitais de certificados DTLS, que o WebRTC usa para criptografar conexões.

A transferência de arquivos por um túnel ponto a ponto é mais rápida e segura do que por correio, FTP ou outros métodos. Por conveniência e segurança, esses métodos são comparados em uma tabela daApresentações Magic Wormhole :

Entrar por remetenteEntrada do DestinatárioProximidade físicaWiretap
O email~ 30 Char.fornecedores, autoridades de certificação, internet
Carregar para FTP / HTTP~ 60 Char.servidor, provedores, autoridades de certificação, Internet
Dropbox~ 60 Char.Autoridades de certificação do Dropbox
+ serviço de redução de link~ 20 Char.serviço de redução de links, pesquisa aleatória, Dropbox, autoridades de certificação
Pen USBX
Ssh / scp~ 740 caracteres chave públicaNenhum
buraco de minhoca mágico~ 20 Char.Nenhum
Nota . Desde a compilação dessa tabela em 2016, foram lançados serviços convenientes para a transferência de arquivos como o Firefox Send (existe um cliente de console ) e o File.pizza

Além do Python Wormhole no Python, existem outros clientes para estabelecer conexões diretas do WebRTC entre computadores:


Como bônus:

  • rtc-ssh : wrapper WebRTC para conexões SSH

Através do canal WebRTC, você pode estabelecer comunicação por vídeo entre dispositivos, transferir voz, arquivos, etc.

Quanto ao mecanismo de troca de chaves PAKE, também é útil em vários campos. Por exemplo, permite autenticação no site sem enviar uma senha ao servidor.

All Articles