Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Nullroom - Un chat P2P qui s'efface en 15 minutes

Utiliser une conversation WhatsApp pour partager un mot de passe à un pote, c'est un peu comme écrire son code de carte bleue au marker dans des chiottes publics. Sauf que les messages, eux, restent des années dans l'historique car y'a personne qui viendra nettoyer ça. Heureusement, Nullroom vient régler ce genre de bricole en mode radical, avec un chat P2P chiffré qui s'autodétruit au bout d'un quart d'heure, sans avoir à vous créer de compte et sans laisser de trace côté serveur.

Alors comment ça fonctionne ? Hé bien vous cliquez sur "CREATE SECURE ROOM", un lien apparaît, vous le balancez à votre correspondant par le canal de votre choix (Signal, SMS, pigeon voyageur...etc), et hop, une session chiffrée s'ouvre entre vos deux navigateurs. Vous pouvez alors discuter, échanger éventuellement des fichier (jusqu'à 16 Mo max en beta), et après 15 minutes, la room s'évaporera. Purement et simplement et aucun serveur n'aura vu passer vos échanges (mis à par quelques bouts de métadonnées pour établir la connexion).

Sous le capot, y'a un truc crypto assez chouette qui est une clé de chiffrement AES-GCM 256 bits, générée côté client via l'API Web Crypto du navigateur, qui vit dans le fragment de l'URL (c'est la partie qui vient après le #). Et comme les navigateurs n'envoient JAMAIS ce fragment au serveur, vu que c'est un standard HTTP, vous êtes tranquille.

Et voilà comment votre clé de session n'existe que chez vous et chez votre correspondant. Le serveur de Nullroom ne la voit pas, même pas une microseconde. C'est le même trick que celui qu'utilise PrivateBin pour les snippets chiffrés, mais appliqué à du chat en direct.

Le flux de données, lui, passe en direct d'un navigateur à l'autre via WebRTC et le serveur ne sert comme je vous le disais plus haut, qu'à la poignée de main initiale.

Ensuite, les messages et les fichiers circulent en peer-to-peer, relayés via les serveurs TURN de Cloudflare quand votre NAT coince. Donc au pire, Cloudflare voit passer du trafic 100% chiffré, et pas le contenu en clair. Les logs serveur sont également désactivés sur les chemins des rooms, et les UUIDs de sessions vivent dans un Redis totalement volatile qui est nettoyé au bout de ces fameuses 15 minutes.

Niveau limites, une room c'est deux personnes max donc si vous cherchiez un remplaçant à Signal ou à Briar, ce n'est pas le bon outil. C'est juste une messagerie pour un échange ponctuel entre 2 personnes.

Et l'équipe ou l'entreprise derrière n'est pas affichée côté site (pas de mentions légales, pas de juridiction précisée), donc attention ! Ça reste du "faites-vous votre opinion" mais comme le code est open source (licence MIT) sur GitHub vous pouvez quand même l'analyser et monter votre propre infra Nullroom.

Pour le quotidien, c'est un service qui est bien foutu, que ce soit pour un mot de passe à filer à un collègue en télétravail, un lien temporaire à partager pendant une réu, une confidence à un pote qui n'a rien à faire dans les archives iMessage, ou encore un numéro de compte à transmettre vite fait avant que l'autre ne parte en vacances... Tous ces cas d'usage existent et la friction est quasi nulle donc c'est plutôt une bonne approche je trouve.

Voilà, si vous voulez tester le concept d'une conversation qui n'aura jamais eu lieu, filez sur nullroom.io.

25 ans de catch WCW verrouillé par un DRM en carton

C'est fou hein, mais un CD-ROM de catch sorti en 1999 a gardé ses vidéos sous DRM durant 25 piges et tout ça juste parce que le serveur qui filait les clés de déchiffrement a disparu. Du coup personne pouvait plus rien lire.

Jusqu'à maintenant.

Le WCW Internet Powerdisk, c'était un disque promo glissé dans le magazine WCW. 61 clips vidéo de catch dessus, des matchs Hogan vs Goldberg, des profils de Sting, des intros Monday Nitro... le tout en MPEG-1 à 320x240, 30 fps, et audio MP2 mono à 64 kbps. Pour lire ces vidéos, fallait passer par UlPlayer.exe qui allait chercher une clé sur un serveur distant. Et quand le serveur a disparu vers 2000, 51 minutes de contenu sont devenues inaccessibles. Du jour au lendemain. Verrouillé pour TOUJOURS... enfin presque.

Car un dev a décidé de s'attaquer au problème en analysant le programme de chiffrement utilisé à l'époque. Et le chiffrement PAVENCRYPT (oui c'est son petit nom), c'est juste une clé qui boucle sur chaque octet du fichier. Chaque fichier a sa propre clé, mais on est clairement sur du niveau exercice de première année en crypto, dans l'esprit du ROT13.

Et comme les fichiers MPEG-1 ont une structure connue, il suffit de regarder la fin du fichier chiffré pour deviner la clé. Un simple calcul, quelques secondes, et c'est plié. Sauf si le fichier est corrompu (là bon courage).

Résultat, 61 fichiers sur 61 récupérés ! 51 minutes de catch WCW avec des matchs, des promos, des segments scénarisés... tout ça converti en H.264 et mis en ligne sur l' Internet Archive . Le déchiffreur est en Python mais attention par contre, ça ne marche que sur les fichiers .PAV au format PAVENCRYPT, et pas sur n'importe quel chiffrement des années 90 ^^.

D'ailleurs, ce genre de DRM propriétaire des années 90, c'était monnaie courante. Y'a tout un tas de vieux contenus numériques qui pourrissent derrière des verrous obsolètes . Ici la protection a survécu plus longtemps que l'entreprise qui l'a fabriquée, qui a purement et simplement disparu.

Après, le chiffrement était tellement basique que c'est pas non plus un exploit de DINGUE. N'importe qui avec Python et des notions de crypto aurait pu faire pareil, sauf que personne n'avait essayé, donc voila, bravo !!

Comme quoi, un DRM n'a pas besoin d'être costaud pour bloquer du contenu pendant un quart de siècle. Suffit que personne ne s'y intéresse.

Obsidenc - Du chiffrement parano en Rust pour vos dossiers sensibles

Vous avez des dossiers sensibles que vous aimeriez chiffrer avant de les balancer sur un cloud ou un disque externe ? Ça tombe bien, je vous ai trouvé un petit outil en Rust qui va vous plaire.

Obsidenc , c'est son nom, est un utilitaire de chiffrement que son créateur qualifie de "paranoid-grade". Et après avoir jeté un œil au code source, je peux vous dire que c'est pas du marketing puisque ce truc archive votre répertoire en TAR et le chiffre avec XChaCha20-Poly1305, un algorithme AEAD moderne qui assure à la fois la confidentialité et l'intégrité de vos données.

Côté dérivation de clé, ça utilise Argon2id conforme à la RFC 9106. Pour les non-initiés, Argon2id c'est l'algo qui a gagné le Password Hashing Competition et qui est spécifiquement conçu pour résister aux attaques par GPU et circuits spécialisés (ASIC). L'outil adapte automatiquement les paramètres à votre machine en utilisant 85% de votre RAM disponible (entre 512 Mo minimum et 2 Go maximum) afin de rendre le brute-force astronomiquement coûteux. Et si vous avez moins de RAM dispo, il compense en augmentant le nombre d'itérations.

C'est du code Rust bien propre qui utilise les bibliothèques cryptographiques RustCrypto (bien auditées par la communauté) et le code implémente des bonnes pratiques de sécurité comme le memory locking (mlock sur Unix, VirtualLock sur Windows) pour éviter que vos clés se retrouvent dans le swap, et le zeroize pour effacer la mémoire sensible après utilisation.

Vous compilez ça avec cargo build --release, puis pour chiffrer un dossier :

obsidenc encrypt ~/mon-dossier ~/mon-dossier.oen

Pour déchiffrer :

obsidenc decrypt ~/mon-dossier.oen ~/mon-dossier-dechiffre

Le mot de passe doit faire minimum 20 caractères (pas de négociation possible, déso pas déso) et vous devez le confirmer deux fois. Vous pouvez aussi ajouter un fichier de clé en plus du mot de passe pour du 2FA old-school.

L'outil a aussi quelques protections défensives sympas. Par exemple, il refuse les symlinks (vecteur d'attaque classique), limite le nombre de fichiers à 1 million et la longueur des chemins à 4096 caractères pour éviter les zip bombs. Sur les systèmes Unix, il vérifie même que votre fichier de clé n'est pas lisible par tout le monde (chmod 600 obligatoire).

Cet outil part du principe qu'un attaquant peut avoir accès à votre fichier chiffré et dispose de temps illimité pour tenter de le casser, du coup, tout est conçu pour rendre l'attaque offline la plus douloureuse possible.

Bref, si vous cherchez un moyen de sauvegarder vos dossiers sensibles de manière vraiment sécurisée avant de les balancer sur un cloud ou un disque externe, obsidenc fait le taf et en plus c'est open source (MIT/Apache 2.0) !

❌