Vue lecture

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

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) !

❌