Transfert de fichiers direct entre appareils via WebRTC



Le nouveau service WebWormHole fonctionne comme un portail à travers lequel les fichiers sont transférés d'un ordinateur à un autre. Appuyez sur le bouton New Wormhole - et obtenez le code à entrer. Une personne d'autre part entre le même code ou URL - et un tunnel éphémère est établi entre vous, à travers lequel les fichiers sont transférés directement. Très simple et efficace. Code source Github .

Pour installer le portail entre les appareils, il n'est pas nécessaire d'ouvrir un navigateur. Le client sur Go est lancé à partir de la ligne de commande et génère du code à usage unique dans la console.

Installation:

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

Diffuser:

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

Le destinataire de l'autre côté du tunnel éphémère entre un code à usage unique dans la console - et reçoit le fichier.

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

L'auteur du programme, Salman Aljammaz (Salmān Aljammāz), prévient que le client est à un stade précoce de développement, utilise des bibliothèques cryptographiques expérimentales, il peut donc ne pas fonctionner correctement dans tous les navigateurs. Le programme n'a pas non plus réussi un audit de sécurité, il peut donc ne pas fonctionner correctement et n'est pas sûr.

L'auteur a emprunté l'idée et le nom au programme Magic Wormhole , qui établit également une connexion poste à poste et transfère des fichiers entre ordinateurs.


Magic Wormhole

La différence est que WebWormHole utilise WebRTC, qui vous permet de traverser les pare-feu et NAT, ainsi que de démarrer la transmission à partir du navigateur.

Chaque tunnel est protégé par un mot de passe à usage unique et PAKEIl s'agit d'un échange de clé spécifique avec authentification par mot de passe pour établir une connexion cryptée. Cependant, le mot de passe lui-même n'est transmis sous aucune forme sur le réseau.

La vérification est effectuée à peu près comme dans une preuve de divulgation zéro dans laquelle le destinataire peut vérifier la fiabilité de toute déclaration sans avoir d'autres informations de l'expéditeur.


SPAKE2

Dans WebWormHole, pour générer une clé de chiffrement commune, les descriptions de session sont échangées avec les empreintes digitales des certificats DTLS, que WebRTC utilise pour chiffrer les connexions.

Le transfert de fichiers via un tunnel d'égal à égal est plus rapide et plus sûr que par courrier, FTP ou d'autres méthodes. Pour plus de commodité et de sécurité, ces méthodes sont comparées dans un tableau dePrésentations Magic Wormhole :

Entrer par expéditeurEntrée du destinataireProximité physiqueÉcoute électronique
Email~ 30 car.fournisseurs, autorités de certification, internet
Télécharger sur FTP / HTTP~ 60 car.serveur, fournisseurs, autorités de certification, Internet
Dropbox~ 60 car.Autorités de certification Dropbox
+ service de réduction de liaison~ 20 car.service de réduction de liens, recherche aléatoire, Dropbox, autorités de certification
clé USBX
Ssh / scp~ 740 caractères Clé publiqueaucun
trou de ver magique~ 20 car.aucun
Remarque . Depuis la compilation de ce tableau en 2016, des services pratiques ont été lancés pour transférer des fichiers tels que Firefox Send (il y a un client de console ) et File.pizza

En plus du Python Wormhole en Python, il existe d'autres clients pour établir des connexions WebRTC directes entre les ordinateurs:


En bonus:

  • rtc-ssh : wrapper WebRTC pour les connexions SSH

En utilisant WebRTC, vous pouvez établir des communications vidéo entre les appareils, transférer de la voix, des fichiers, etc.

Quant au mécanisme d'échange de clés PAKE, il est également utile dans divers domaines. Par exemple, il permet l'authentification sur le site sans envoyer de mot de passe au serveur.

All Articles