Comment fonctionne tosstome
Dernière vérification
tosstome est un petit service sur Cloudflare Workers associé à une page web. Le serveur présente les appareils les uns aux autres et, seulement quand il le faut, fait passer les données. Il ne stocke jamais les fichiers.
1. Se trouver
Quand vous ouvrez la page, le navigateur se connecte au serveur par WebSocket. Les appareils dont les connexions viennent de la même adresse IP publique, ce qui signifie en général le même réseau domestique ou de bureau, sont placés dans le même groupe et apparaissent dans la liste Sur ce réseau les uns des autres. L'adresse est hachée avant d'être utilisée. Pour des appareils sur des réseaux différents, un code à 6 chiffres les place dans un groupe temporaire à part.
2. Se connecter directement
Quand vous touchez un appareil, les deux côtés échangent des informations de connexion WebRTC par le serveur et essaient d'ouvrir un canal de données direct, en s'appuyant sur le service STUN de Cloudflare pour découvrir comment se joindre à travers les box domestiques. Un canal WebRTC direct est chiffré de bout en bout par les navigateurs (DTLS).
3. Basculer vers un relais
Certains réseaux bloquent les connexions directes : pare-feu d'entreprise, Wi-Fi invité, opérateurs mobiles avec NAT de niveau opérateur. Si le canal direct ne s'établit pas en quelques secondes, les deux côtés se connectent plutôt à un relais sur Cloudflare. Le relais transmet chaque morceau à mesure qu'il arrive et ne conserve rien. Le trafic vers et depuis le relais est chiffré avec TLS, mais le relais n'est pas encore chiffré de bout en bout ; c'est prévu dans la feuille de route.
4. Déplacer les données
Le même protocole de transfert fonctionne dans le navigateur et dans l'outil en ligne de commande : de petits messages de contrôle JSON plus des morceaux binaires, avec des accusés de réception du destinataire pour que l'expéditeur ne submerge jamais une connexion lente. Il se comporte de la même façon sur un canal direct et sur le relais.
5. Boîtes de réception
L'outil en ligne de commande garde une boîte de réception toujours active. Il crée deux clés secrètes : une clé d'agent qui reste sur l'ordinateur, et une clé d'envoi qui figure dans le lien de la boîte de réception après le #. Les navigateurs n'envoient pas cette partie d'un lien au serveur, et la clé est transmise dans le WebSocket à la place. Le serveur ne conserve que des empreintes SHA-256 des deux clés. Quand un téléphone ouvre le lien et envoie, le serveur fait passer les informations de connexion WebRTC entre le téléphone et l'ordinateur, comme entre deux navigateurs, donc sur le même réseau les fichiers vont directement dans le dossier de la boîte de réception sans en sortir. Si aucun canal direct ne s'établit, les deux côtés utilisent plutôt une session de relais. L'outil en ligne de commande se connecte directement de la même façon quand il envoie à un navigateur avec un code à 6 chiffres, ou quand un navigateur lui envoie depuis la liste Sur ce réseau.
Ce qui n'est pas encore fait
- Le chiffrement de bout en bout sur le chemin par relais
- L'appairage d'appareils signé et persistant dans le navigateur
- Des limites de débit au-delà du blocage par rôle en cas de mauvaises clés de boîte de réception
Lisez la page de confidentialité pour savoir ce que le service voit.
Questions
tosstome est-il chiffré de bout en bout ?
Les transferts WebRTC directs le sont, grâce au DTLS du navigateur. Les transferts par relais sont chiffrés avec TLS entre chaque appareil et Cloudflare, mais pas encore de bout en bout.
Qu'est-ce que WebRTC ?
Un standard des navigateurs pour les connexions pair à pair en temps réel, utilisé par les applis d'appel vidéo. tosstome utilise ses canaux de données pour envoyer des fichiers directement d'un navigateur à l'autre.
Mes fichiers sont-ils téléversés ou stockés quelque part ?
Non. Les fichiers vont directement d'un appareil à l'autre via WebRTC quand les réseaux le permettent. Sinon, ils passent par un relais sur Cloudflare qui transmet les octets au fur et à mesure de leur arrivée et ne conserve rien. Si le destinataire est hors ligne, rien n'est envoyé.
Pourquoi faut-il internet si c'est du pair à pair ?
Les navigateurs ont besoin d'un serveur pour se trouver et échanger leurs informations de connexion. Une fois connectés directement, les données des fichiers circulent entre les appareils.
À lire aussi
- Confidentialité
- Partager des fichiers entre appareils sur des réseaux différents
- Envoyer de gros fichiers sans les téléverser
- Alternatives à Snapdrop qui restent en pair à pair
Essayez maintenant
Ouvrez toss2.me sur deux appareils. Sans appli, sans compte, rien n'est stocké.
Envoyer un fichier maintenant