Le castor est un ingénieur. Il choisit son cours d’eau, il coupe ses arbres, il empile ses branches et il façonne son environnement jusqu’à ce que la rivière fasse ce qu’il veut. Rien de spontané dans son travail : chaque tronc est calé, chaque brèche est colmatée, et si l’eau s’infiltre par une berge, il revient dessus jusqu’à ce que la digue tienne. On ne remarque pas un castor à l’œuvre. On remarque son ouvrage.
Sous cette signature, vous lirez des articles qui suivent la même discipline. On y construit quelque chose de bout en bout — un service, un script, un protocole, une petite architecture — puis on cherche méthodiquement par où il cède. L’ouvrage n’est jamais là pour lui-même, il est le décor de la démonstration. On ne montre pas seulement l’attaque : on montre d’abord ce que l’attaque contourne.
On construit. Le sujet est monté en pièces visibles, avec le code, les fichiers de configuration, le raisonnement derrière chaque choix. Un lecteur qui suit peut refaire à l’identique. Ce n’est pas une preuve de concept jetable : c’est une hutte, propre, dans laquelle on pourrait raisonnablement habiter.
On casse. Une fois l’ouvrage debout, on l’attaque. Les brèches sont travaillées comme des expériences : on décrit le vecteur, on montre ce qu’il produit, on explique pourquoi l’ouvrage n’avait pas prévu ça. La démonstration reste reproductible — pas de capture triomphale sans le contexte qui l’entoure.
On en tire la leçon. L’article se ferme sur ce que la brèche révèle du modèle mental qui avait présidé à la construction. C’est le temps qui distingue le castor du simple briseur : il connaît son barrage, il sait ce qu’il avait supposé, il sait maintenant ce qu’il aurait dû supposer.
Sur ses propres ouvrages, exclusivement. Le matériel monté pour un article appartient à l’auteur : machines virtuelles, domaine de laboratoire, certificats émis pour l’occasion, adresses privées. Rien de ce qui est attaqué dans ces pages n’appartient à quelqu’un d’autre, et aucun montage ne reproduit une installation existante identifiable — c’est la même ligne que celle tenue ailleurs sur ce site, et elle vaut aussi pour les décors.
Ce n’est pas une précaution formelle : c’est ce qui rend la démonstration reproductible. Un lecteur qui veut vérifier doit pouvoir remonter le décor chez lui, à l’identique, sans rien demander à personne. Un article dont l’ouvrage n’est pas remontable est un article qu’on est obligé de croire sur parole — exactement ce que le castor cherche à éviter.
Quand un article devient trop dense pour qui découvre le sujet, la marmotte reprend le fil en bas de page. Le castor ne ralentit pas sa démonstration pour autant : les deux registres cohabitent dans le même texte plutôt que de se diluer l’un dans l’autre.
Son icône — 🪵, une bûche, son matériau de construction — apparaît aussi en bas de certaines fiches du glossaire, sous la rubrique « Comment le vérifier ». Ce n’est pas un article : la fiche garde sa forme habituelle, le castor n’y intervient qu’à la marge, comme la marmotte ou l’abeille interviennent dans le travail des autres plutôt que d’écrire le leur.
La même règle s’y applique, transposée au format court. Deux formes seulement, jamais une troisième : soit un pointeur vers une brèche RÉELLEMENT publiée sous cette signature — un article existant qui démontre déjà la casse évoquée —, soit une recette générique, au conditionnel, qui dit comment un lecteur pourrait monter un labo minimal et le casser lui-même. Jamais une affirmation que l’atelier a eu lieu : le castor ne prétend pas avoir mouillé ses pattes sur un sujet qu’il n’a pas réellement construit. Quand ni l’un ni l’autre n’est honnête, la rubrique ne s’affiche pas — une case cochée pour la forme, sans rien dedans, mentirait sur ce qu’elle annonce.
Ce n’est pas du pentest de bibliothèque, où l’on prend un système écrit par d’autres pour en extraire un exploit hors contexte. Ce n’est pas non plus du tutoriel défensif qui expliquerait comment se prémunir de menaces abstraites qu’on n’a jamais éprouvées. Le castor a besoin d’avoir mouillé ses pattes dans la boue avant de dire quoi que ce soit sur la boue.
Ce n’est pas non plus une posture. On n’attaque pas son propre ouvrage pour la mise en scène, mais parce que c’est la seule façon d’être sûr de ce qu’il vaut. Un ouvrage qu’on n’a pas essayé de rompre est un ouvrage sur lequel on n’a qu’une opinion. Après l’avoir rompu, on a une mesure.
La plupart des contenus techniques choisissent un côté. Les tutoriels construisent sans jamais attaquer ce qu’ils viennent d’élever ; les articles offensifs cassent sans avoir bâti ce qu’ils démolissent. Les deux sont fatigants pour des raisons différentes — les premiers parce qu’ils promettent une solidité qu’ils n’ont pas testée, les seconds parce qu’ils ne disent jamais ce qu’ils feraient à la place.
Le castor tient les deux bouts. Ça prend plus de temps à écrire, ça prend plus de place à lire, mais ce qu’il en reste, une fois l’article refermé, est quelque chose qu’on peut refaire, sonder et remettre en cause soi-même.
C’est le sens des textes qui paraissent sous cette signature.
🦔 Ce que le castor a construit, puis rompu
1 page sous cette signature — cliquez une carte pour en voir le détail.
Un service de déchiffrement RSA PKCS#1 v1.5 monté proprement en laboratoire, puis rompu sans jamais toucher à la clé privée — en n'exploitant que la façon dont il répond.
On construit : Un service de déchiffrement RSA PKCS#1 v1.5 complet, sur des clés de laboratoire générées pour l'occasion, avec le code et le raisonnement derrière chaque choix. Un lecteur qui suit peut le remonter à l'identique.
On casse : L'oracle de remplissage : quelques dizaines de milliers de questions auxquelles le serveur ne devrait jamais répondre, et le texte clair finit par tomber. Aucune clé n'est extraite, aucun module n'est factorisé.
La leçon : L'ouvrage n'avait aucun bug d'implémentation. Il a cédé sur une hypothèse — « un bon message d'erreur aide l'utilisateur » — fausse pour un déchiffreur asymétrique. D'où ROBOT, DROWN, et le retrait pur et simple de l'échange de clés RSA dans TLS 1.3.