Le blob GPG : lire une balise de paquet OpenPGP à partir d'un seul octet

Cryptographie Niveau 3/4 ~5 min 28 juillet 2026

Le défi

Un outil d'exfiltration a déposé data.bin sur un hôte compromis et l'équipe l'a noté comme binaire brut. Seul le tout premier octet trahit le format. Ouvrez-le dans la visionneuse hexadécimale, comparez cet octet aux balises de paquet de référence, et indiquez le vrai format.

Ce que tu vas apprendre

  • Expliquer que les paquets binaires OpenPGP sont délimités par un octet de balise, pas par une longue signature
  • Reconnaître qu'un octet de tête avec le bit 0x80 activé marque un en-tête de paquet OpenPGP
  • Identifier 0x85 comme le début d'un paquet de clé de session chiffrée par clé publique
  • Distinguer un blob GPG d'un ZIP, d'un GZIP et d'un PNG grâce à leurs premiers octets différents
  • Trier un binaire inconnu en lisant juste assez de l'en-tête pour le classifier

Compétences testées

Reconnaissance du format de paquet OpenPGPRaisonnement sur signature à un seul octetTri d'artefacts chiffrés

Prérequis

  • Connaissance de base de GPG / OpenPGP comme outil de chiffrement à clé publique
  • Aisance à lire des valeurs d'octets hexadécimaux individuels

Comment ça marche

La plupart des formats s'annoncent avec un nombre magique multi-octets, mais OpenPGP (le standard derrière GPG) est structuré différemment : un flux binaire OpenPGP est une séquence de paquets, et chaque paquet commence par un unique octet de balise. Dans cet octet, le bit de poids fort (0x80) est toujours activé pour marquer une limite de paquet, et les bits restants encodent le type de paquet et le format de longueur.

Ici, le premier octet est 0x85. Comme 0x80 est activé, il s'agit d'un en-tête de paquet ; la balise qu'il porte identifie un paquet de clé de session chiffrée par clé publique, exactement ce que l'on trouve en tête d'un message chiffré avec la clé publique de quelqu'un (gpg --encrypt en mode binaire, non-armored). Ainsi, un fichier consigné comme binaire opaque data.bin est en réalité un blob chiffré par GPG, et un seul octet suffisait pour le savoir.

Les leurres sont tous des formats avec des signatures multi-octets classiques : ZIP est 50 4B 03 04, GZIP est 1F 8B, et PNG est 89 50 4E 47. Aucun d'eux ne correspond à un premier octet 0x85. C'est l'aspect subtil de l'identification de fichiers : quand il n'y a pas de signature ASCII évidente, la structure d'un seul octet de trame suffit encore à nommer le format.

Erreurs fréquentes

  • Chercher une signature ASCII de quatre octets. OpenPGP n'en a pas ; le signal est l'octet de balise unique, donc scanner du texte imprimable ne donne rien.
  • L'écarter comme du binaire aléatoire. L'extension 'bin' et le corps à haute entropie tentent d'abandonner, mais l'octet 0 est structuré.
  • La confondre avec GZIP. GZIP ressemble aussi à du binaire compressé, mais il commence par 1F 8B, pas 85.
  • Sur-analyser l'en-tête. Il n'est pas nécessaire de parser tout le paquet ; l'octet de balise seul suffit à classifier le format.

Comment s'en protéger

Les défenseurs devraient détecter les blobs chiffrés par leur structure et traiter toute sortie GPG inattendue comme un possible artefact d'exfiltration ou de préparation.

  • Exécuter une détection basée sur le contenu qui comprend le format de paquet OpenPGP, pas seulement les signatures multi-octets, afin que les blobs GPG binaires soient classifiés plutôt que consignés comme 'binaire inconnu'.
  • Alerter quand des fichiers chiffrés par GPG apparaissent dans des emplacements ou des flux de travail qui n'en produisent pas normalement, une étape courante de conditionnement avant exfiltration.
  • Surveiller toute exécution inattendue des outils gpg / openpgp sur des serveurs qui n'ont aucune raison de chiffrer des données.
  • Inventorier les clés capables de déchiffrer de tels blobs afin qu'un intervenant en réponse à incident puisse déterminer le destinataire prévu.

Solution complète

Les membres Pro et Max débloquent la solution complète étape par étape.

Passer Pro

Statistiques de la communauté

97 résolutions
73% taux de réussite
Guilhermee Premier sang

Hacks du jour associés

25 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement