Le validateur qui ment : un tiret cadratin contre notre signature PGP
Le validateur de référence de security.txt accusait notre bloc PGP d'être invalide. Le vrai coupable : un tiret cadratin dans un commentaire, et une bibliothèque qui décode les fichiers signés en Latin-1. Leçon : validez avec l'outillage du validateur lui-même.
Aussi disponible en : English
Une brève de terrain — un problème, un diagnostic, une leçon.
Notre security.txt
(RFC 9116) est signé PGP : les chercheurs en sécurité qui veulent nous
écrire peuvent vérifier que le fichier vient bien de nous. Au moment de le
valider, le test d'internet.nl a rendu son verdict : « incorrect
ASCII-armored PGP block ». Bloc PGP invalide.
Sauf que le bloc PGP était parfaitement valide — gpg --verify passait sans
un murmure. Le coupable était ailleurs, et le message d'erreur mentait.
Le diagnostic, après un aller-retour frustrant : la bibliothèque du
validateur décode les fichiers security.txt signés en Latin-1, pas en
UTF-8. Notre fichier contenait un tiret cadratin (« — ») dans un simple
commentaire. Ce caractère UTF-8, mal décodé, levait une exception d'encodage
que la bibliothèque attrapait et réétiquetait en erreur PGP. Le
validateur n'accusait pas le vrai coupable : il accusait la signature, qui
n'y était pour rien.
Le correctif tient en une règle : notre security.txt est en ASCII pur,
tirets courts et texte sans fioritures. La note est même inscrite en
commentaire dans notre fichier source, pour que le prochain qui l'édite ne
redécouvre pas le problème.
La leçon dépasse le cas d'espèce : quand un validateur vous contredit, validez avec son propre outillage avant de chercher l'erreur chez vous — et avant de « corriger » quelque chose qui fonctionne. Les messages d'erreur décrivent l'endroit où une exception a éclaté, pas toujours sa cause.