Pastenym — Un service de partage respectueux de la vie privée

cgi-bin/
No Trust Verify
Published in
4 min readNov 1, 2022

Pastenym permet de partager du texte simplement, de manière anonyme et en respectant sa vie privée. Inspiré de pastebin.com, pastenym fonctionne sur le mixnet de Nym.

Ce réseau permet de protéger ses données et metadonnées des yeux des gouvernements, fournisseurs d’accès Internet et tout autre organisme/acteur qui analyserait (=surveillerait) le réseau et les communications.

Le mixnet permet, grâce à différents mécanismes, de protéger l’identité des personnes lorsqu’elles communiquent sur ce réseau (pour plus de détails https://nymtech.net/docs/stable/architecture/network-overview#overview).

Mixnet design by Nym

Pastebin/ Privatebin

Les systèmes comme pastebin.com ou privatebin.info (fork de zerobin) permettent d’échanger rapidement et facilement du texte. Privatebin rajoute une couche de chiffrement qui garantit que seuls l’émetteur et les récepteurs ont accès au contenu.

Lors de l’utilisation de ces sites Web, il est tout à fait possible qu’un observateur détecte les actions effectuées par les utilisateurs, comme par exemple: le fait de récupérer ou partager un texte. Ces informations peuvent être corrélées avec d’autres, issues d’autres services, tel qu’une discussion sur une messagerie instantanée ou l’envoi de mails. Cela est possible car les metadonnées ne sont pas protégées sur ces services.

Pastenym

Pastenym est une adaptation de pastebin.com, utilisant le mixnet de Nym, afin de protéger les utilisateurs et leur données mais surtout leur metadonnées .

Pour bien comprendre la différence, il est important de saisir le fonctionnement de ce service. Lors d’une connexion au site Web, qui est uniquement une “vitrine”, le navigateur va utiliser le client (nym-client) développé par Nym pour se connecter au mixnet via une gateway et obtenir une identité.

L’utilisateur-trice va ensuite entrer le texte qu’elle souhaite partager puis cliquer sur “Envoyer”.

A ce moment le nym-client va sélectionner 3 mixnodes qui se chargeront de transmettre les données et va chiffrer les informations grâce aux clés publiques afin qu’ils puissent correctement relayer les données vers le mixnode ou la gateway suivante.

C’est la gateway du destinataire, dans le cas de pastenym le serveur qui héberge les données qui va se charger de transmettre le message. Finalement le client nym de pastenym va déchiffrer le contenu et stocker les informations. Un message sera renvoyé avec un identifiant aléatoire qui permet de retrouver le texte partagé.

Le fonctionnement est très semblable aux autres services, à la seule différence que le texte à partager est transmis à travers le mixnet. C’est celui-ci qui garantit l’anonymat et empêche de savoir quel ordinateur (adresse IP) a partagé ou accédé à un texte.

Partage d’un texte

Dans le cas où le réseau serait surveillé, seules les connexions visibles seraient celle du navigateur vers le serveur qui héberge le service web et celle initiée par le nym-client vers une gateway du mixnet, donc il est possible de connaître la destination des paquets envoyés et reçus mais sans possibilité de savoir s’il y a réellement des données et vers qui elles sont envoyées ou reçues. Un article plus complet sera publié plus tard

Pour assurer une protection complète, il faut que le site Web utilise le protocole HTTPS dans le cas où l’identifiant du texte à récupérer est dans l’URL.

Dans le mixnet, toutes les informations sont chiffrées et transmises à l’aide de paquets SPHINX (utilisé dans lightning network) qui rend toutes les données qui naviguent dans le réseau semblables. Pour empêcher un observateur de détecter quand vous communiquez, de faux paquets sont générés afin de simuler un traffic constant. Ces méthodes empêchent un observateur de savoir quels type d’application transitent (VoIP, chat, navigation, etc) et qui communique avec qui à travers le réseau, il est donc extrêmement difficile de savoir quel serveur héberge la base de données et de retrouver qui y aurait stocké des informations pour partager du texte car elle est accessible uniquement via le mixnet.

Dans le cas où le site Web se fait censurer ou supprimer, il suffit de recréer un serveur et de l’y déployer à nouveau afin de restaurer l’accès aux textes stockés.

Démonstration

Le site pastenym.ch est mis à dispostion pour partager du texte et tester l’application

Et voilà un exemple de texte partagé : https://pastenym.ch/#/bafkreieng36gxrefgi373qu7svu3c6najkz33b5agh7med2ajzxxq4t3fu&key=b0409885f5af807d786296d50d72be92

Attention, le projet est encore en alpha et ne peut pas être utilisé pour partager des informations sensibles. Les auteurs de ce projet ne prennent aucune responsabilité quant aux informations transmises sur ce service.

Futurs développements

Le code est sous licence GPLv3 et disponible à cette adresse: https://github.com/notrustverify/pastenym

Une application en ligne de commande va être développée afin de permettre une meilleure protection de la vie privée et résilience du service.

Ensuite une liste non-exhaustive de fonctionnalités:

  • Expiration des textes dans le temps ou au nombre de lecture
  • Support de Coconut pour l’authentification
  • Support des SURB (Single Use Reply Blocks)
  • Possibilité de supprimer des textes
  • Coloration syntaxique (Syntax highlighting)
  • Tags et catégories
  • Support de “paste” publique (sans chiffrement)
  • Développement d’une application en ligne de commande

A propos de No Trust Verify

Nous sommes membres de la #VerifyValley. Nous soutenons le réseau de Nym Technologies et y contribuons depuis le testnet. Nous sommes heureux de le renforcer avec nos mixnodes et nos gateways.

Développeur de pastenym.ch et isnymup.com

✅ Hébergé en Suisse
✅ Commission garantie : 5%
✅ Bande passante : 10 Gbit/s

Identity keys:

NTV1 : APxUbCmGp4K9qDzvwVADJFNu8S3JV1AJBw7q6bS5KN9E

NTV2 : 4yRfauFzZnejJhG2FACTVQ7UnYEcFUYw3HzXrmuwLMaR

NTV3 : ESPa5xnwZ7BebSX9SGmUbeYgNtkUeJo8PtbBx7JhzEHA

N’hésitez pas à nous contacter :

| Site officiel | Twitter | Telegram | Linkedin | Matrix |

--

--