trou de ver: transférer des fichiers en toute sécurité sur Internet
Attention
Cet article a été publié il y a plus d'un an, il peut y avoir des développements été.
S'il vous plaît prendre en compte.
Il y a ceux qui utilisent Dropbox / Mega / Google Drive, qui les classiques e-mail, qui le e-mails cryptés, dépenser SSH / SCP et qui encore le Les lecteurs flash USB. Échanger des fichiers aujourd'hui demande une bonne dose d'imagination et un tri plus que minutieux des alternatives, ou nous courons le risque de tomber dans une erreur.
Il faut d'abord évaluer la sécurité des moyens par lesquels nous souhaitons transmettre les informations. Qu'il s'agisse des photos de vacances ou des fichiers de préférences de Firefox, demandons-nous si nous serions sereins si ces données pouvaient être “des lits” de quelqu'un d'autre.
Nous évaluons également la taille des données à transférer. Un mail a une capacité limitée dictée par le serveur / gestionnaire de services (et il faut vérifier que la taille est autorisée par notre responsable et celle de destination).
Nous évaluons le simplicité Système, l'intelligibilité des données que nous devrons insérer dans le logiciel. Tout le monde n'est pas aussi doué pour écrire rapidement des hachages, du premier coup, sans fautes. Et par simplicité on entend aussi l'éventualité qu'il soit nécessaire d'ouvrir certains ports sur le routeur, pare-feu, ordinateur de réception… avoir même une connaissance discrète du réseau et de son fonctionnement peut ne pas être défini “simples”.
Nous évaluons le distance géographique entre le point d'envoi et le point de réception. Nous aimons tellement notre prochain, mais nous n'échangerons pas de fichiers avec lui seul.
Une fois que nous avons évalué tous ces aspects, nous évaluons l'utilisation de Wormhole, que ces faiblesses n'en ont pas.
Wormhole est un petit utilitaire de ligne de commande disponible pour Linux (de nombreuses distributions) et macOS (pas de fenêtres). Trou de ver permette, à travers une syntaxe intelligible, pour transmettre tout type de fichier, de toute taille, de l'ordinateur source à l'ordinateur de destination sans intermédiaires. Oh, et… j'ai déjà dit que c'est open source?
Le fonctionnement de Wormhole sur le web est globalement celui de NetCat sur le LAN. Vous pourriez être intéressé par un article où j'ai parlé de NetCat.
Pour une application python aussi légère, ce qu'il fait est vraiment hors de ce monde. Comme avec NetCat, il vous suffit de lancer la commande appropriée sur le serveur, accompagné de la localisation du dossier à transmettre, et exécutez la commande “accueil” sur le client pour lancer le téléchargement. C'est plus long à expliquer qu'à faire.
Serveur (l'ordinateur sur lequel réside le fichier à transmettre)
~$ 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.
Client (l'ordinateur qui recevra le fichier)
~$ 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
La chose intéressante est la clé générée: dans ce cas deux termes et un nombre. Quelque chose de simple à écrire ou à dire (au cas où nous serions au téléphone). Les codes de trou de ver sont jetables, donc quand tu l'as utilisé (ou tu ne l'auras pas utilisé) le code sera perdu.
Avec Wormhole, vous pouvez transférer des fichiers ou des répertoires. Les répertoires sont compressés avant le transfert.
Ce sera en sécurité?
Réponse courte: “vous”.
Longue réponse: Wormhole utilise PAKE (Échange de clés authentifié par mot de passe) chiffrer les données (l'algorithme SPAKE2).
La bibliothèque de trous de ver nécessite un “Serveur de rendez-vous”: un relais simple basé sur WebSocket qui transmet les messages d'un client à un autre. Cela permet aux codes Wormhole d'omettre les adresses IP et les numéros de port. L'URL d'un serveur public est entrée dans la bibliothèque pour être utilisée par défaut et sera disponible jusqu'à ce que le volume ou l'abus rende impossible le support.
Les commandes de transfert de fichiers utilisent un “Relais de transit”, qui est un autre serveur simple qui relie deux connexions TCP entrantes et transfère des données entre elles. Le mode d'envoi de fichier Wormhole partage les adresses IP de chaque client avec l'autre (dans le message crypté) et les deux clients essaient d'abord de se connecter directement. S'il échoue, ils recommencent à utiliser le relais de transit.
Si ce n'est toujours pas clair, je vous recommande de regarder le discours de Brian Warner à PyCon del 2016 dans lequel on parle presque exclusivement de sécurité.
Installation
Avec les principales distributions, il sera assez facile de rechercher le paquet “magic-wormhole
” au sein des dépôts. Ceux qui ne peuvent pas le trouver dans les dépôts de leur distribution peuvent essayer avec snap
.
~$ sudo snap install wormhole
Pour plus d'informations le projet Wormhole est hébergé sur GitHub.
0 commentaires