Retour au blog
cryptographie15 min de lecture7 juin 2026

Stéganographie : l'art de cacher l'information dans l'invisible

Technique millénaire modernisée : comment dissimuler des données dans une image, un fichier audio ou une vidéo. LSB, DCT, outils, stéganalyse et cas d'usage réels.

Là où la cryptographie rend un message illisible, la stéganographie le rend invisible. L'art de dissimuler l'existence même d'une communication remonte à l'Antiquité grecque. Aujourd'hui numérique, elle permet de cacher des fichiers dans des images, des messages dans des MP3, des données dans des vidéos — parfois à des fins légitimes, parfois malveillantes.

Stéganographie vs Cryptographie

La cryptographie et la stéganographie sont complémentaires mais distinctes. La cryptographie transforme un message pour le rendre illisible — mais révèle qu'il existe un secret. La stéganographie cache le message dans un support anodin — l'observateur ne sait pas qu'il existe. Combinées, elles offrent une protection maximale.

  • Cryptographie : le message est illisible, mais sa présence est évidente
  • Stéganographie : le message est invisible, mais si découvert, lisible en clair
  • Stéganographie + chiffrement : message invisible ET illisible si découvert — optimal
  • Sécurité par l'obscurité seule : insuffisant — ne jamais compter uniquement sur la stéganographie

Histoire : de l'Antiquité à nos jours

Les techniques historiques

  • Hérodote (440 av. J.-C.) : tatouage d'un message sur le crâne rasé d'un esclave, envoyé après repousse des cheveux
  • Encre sympathique (invisible) : citron, lait, urine — révélée par chaleur ou réactif chimique
  • Microdot (WWII) : texte photographié et réduit à la taille d'un point typographique, collé sur une lettre ordinaire
  • Nul-chiffre (null cipher) : cacher un message dans les initiales ou premières lettres d'un texte anodin
  • Stéganographie imprimée : encres à fréquences précises visibles seulement sous UV (technique des imprimantes laser)

Stéganographie numérique — Les techniques modernes

LSB — Least Significant Bit (la technique la plus répandue)

Dans une image numérique, chaque pixel est représenté par 3 octets (R, G, B — rouge, vert, bleu), chacun valant 0 à 255. Le bit de poids faible (LSB — dernier bit) a une influence imperceptible sur la couleur. Le modifier pour y stocker un bit de message ne change visuellement rien à l'image.

python
from PIL import Image

def encoder_message_lsb(image_path: str, message: str, output_path: str):
    img = Image.open(image_path).convert("RGB")
    pixels = list(img.getdata())

    # Convertir le message en bits + marqueur de fin
    message_bits = ''.join(format(ord(c), '08b') for c in message) + '1111111111111110'

    if len(message_bits) > len(pixels) * 3:
        raise ValueError("Message trop long pour cette image")

    nouveaux_pixels = []
    bit_index = 0

    for r, g, b in pixels:
        if bit_index < len(message_bits):
            # Modifier le LSB du canal rouge
            r = (r & 0xFE) | int(message_bits[bit_index])
            bit_index += 1
        if bit_index < len(message_bits):
            # Modifier le LSB du canal vert
            g = (g & 0xFE) | int(message_bits[bit_index])
            bit_index += 1
        if bit_index < len(message_bits):
            # Modifier le LSB du canal bleu
            b = (b & 0xFE) | int(message_bits[bit_index])
            bit_index += 1
        nouveaux_pixels.append((r, g, b))

    img.putdata(nouveaux_pixels)
    img.save(output_path, "PNG")  # PNG sans perte — JPEG compresse et détruit les LSB
    print(f"Message encodé dans {output_path}")

La technique LSB ne fonctionne qu'avec des formats sans perte (PNG, BMP). Sauvegarder une image stéganographiée en JPEG détruira les LSB lors de la compression et effacera le message caché. Toujours utiliser PNG comme format de sortie.

Stéganographie dans les fichiers audio

Dans un fichier audio WAV, les bits de poids faible des échantillons sonores sont inaudibles à l'oreille humaine. La technique LSB s'applique de la même façon. MP3Stego cache des données dans la phase de compression MP3.

bash
# Steghide — outil polyvalent stéganographie (images JPEG/BMP, audio WAV/AU)
# Installation
sudo apt install steghide

# Cacher un fichier dans une image JPEG avec mot de passe
steghide embed -cf photo.jpg -sf secret.txt -p "motdepasse123"
# → Produit photo.jpg modifiée (visuellement identique)

# Extraire le fichier caché
steghide extract -sf photo.jpg -p "motdepasse123"

# Voir les infos d'une image (sans mot de passe)
steghide info photo.jpg

Stéganographie dans les documents

  • Espaces blancs : cacher des bits dans les espaces de fin de ligne ou les tabulations
  • Watermarking invisible : marquer chaque document imprimé avec un code invisible identifiant l'imprimante et la date (tous les imprimantes laser couleur le font — "yellow dots")
  • Métadonnées : cacher des données dans les champs EXIF, XMP d'une image ou les propriétés d'un PDF
  • Stéganographie PDF : modifier légèrement l'espacement des caractères ou des mots (imperceptible à l'œil)

Outils stéganographiques de référence

  • Steghide — chiffrement AES + stéganographie dans JPEG, BMP, WAV
  • OpenStego — open-source, GUI, watermarking et dissimulation
  • zsteg — détection automatique de stéganographie dans PNG/BMP (outil de stéganalyse)
  • Stegosuite — GUI Java, supporte JPEG/BMP/GIF
  • DeepSound — stéganographie dans fichiers audio (Windows)
  • Outguess — résistant à la stéganalyse statistique

Stéganalyse — Détecter l'invisible

La stéganalyse est l'art de détecter la présence d'informations cachées. Elle s'appuie sur des analyses statistiques : une image stéganographiée présente des anomalies dans la distribution des LSB, des changements dans le spectre de fréquences ou des artefacts dans les histogrammes de couleurs.

bash
# zsteg — détection automatique dans PNG/BMP
gem install zsteg
zsteg image_suspecte.png       # Analyse tous les canaux LSB
zsteg -a image_suspecte.png    # Mode agressif (plus lent, plus complet)
zsteg --lsb image.png          # Uniquement LSB

# Binwalk — rechercher des fichiers embarqués dans n'importe quel fichier
binwalk image.png               # Lister les signatures détectées
binwalk -e image.png            # Extraire les fichiers trouvés

# Strings — chercher du texte caché
strings -n 8 image.png | grep -v "^[^[:print:]]"

# ExifTool — métadonnées suspectes
exiftool image.png | grep -iE "comment|description|keyword|user"

# StegSolve (Java) — outil GUI pour analyse visuelle plan par plan
# https://github.com/zardus/ctf-tools/blob/master/stegsolve/install

Usages légitimes et malveillants

Usages légitimes

  • Watermarking numérique : marquer les images pour prouver la paternité ou détecter la copie non autorisée
  • Protection des documents sensibles : identifier la source d'une fuite en marquant chaque copie différemment
  • Communication dans des régimes autoritaires : passer des messages sans éveiller les soupçons de la censure
  • Forensic et DRM : marquer les contenus numériques avec des identifiants imperceptibles
  • CTF (Capture The Flag) : la stéganographie est une catégorie classique des compétitions de cybersécurité

Usages malveillants

  • Command & Control (C2) : des malwares récupèrent leurs instructions depuis des images postées sur des réseaux sociaux publics
  • Exfiltration de données : cacher des données volées dans des fichiers images pour contourner les DLP
  • Persistance : cacher du code malveillant dans des images en mémoire (process hollowing stéganographique)
  • Contournement des antivirus : certains malwares embarquent leur payload dans des PNG pour éviter la détection

Le groupe APT29 (Cozy Bear, service de renseignement russe SVR) a utilisé la stéganographie dans des images PNG postées sur Twitter pour envoyer des commandes à des malwares compromettant des organisations cibles — les images étaient publiques et anodines.

Stéganographie dans les CTF

La stéganographie est omniprésente dans les compétitions CTF (Capture The Flag). Les challenges combinent souvent plusieurs techniques à détecter et décoder successivement.

  1. 1Vérifiez les métadonnées EXIF avec ExifTool
  2. 2Cherchez des strings cachées avec strings et grep
  3. 3Analysez les LSB avec zsteg (PNG) ou Steghide (JPEG)
  4. 4Cherchez des fichiers embarqués avec Binwalk
  5. 5Analysez visuellement les plans de bits avec StegSolve
  6. 6Vérifiez les canaux alpha, les spectrogrammes audio (Sonic Visualiser)
  7. 7Cherchez des données dans les commentaires HTML, les whitespaces

Pour progresser en stéganographie CTF, pratiquez sur PicoCTF (catégorie Forensics) et CyberDefenders. Le canal Discord de la communauté CTF francophone FCSC est aussi une excellente ressource.

Sources & références

  1. 1
    Johnson, Jajodia — Exploring steganography: seeing the unseen (1998)

    Article fondateur sur la stéganographie numérique et la stéganalyse

  2. 2
    Fridrich — Steganography in Digital Media (Cambridge)

    Livre de référence académique sur la stéganographie numérique moderne

  3. 3
    APT29 / Cozy Bear — Usage de stéganographie Twitter (FireEye)

    Rapport Mandiant/FireEye sur l'utilisation de stéganographie par APT29

  4. 4
    Yellow dots — EFF — Imprimantes et surveillance

    EFF : liste des imprimantes qui intègrent des points de tracking invisibles

  5. 5
    zsteg — GitHub — Détection stéganographie PNG

    Outil de stéganalyse automatique pour fichiers PNG et BMP

#stéganographie#lsb#steghide#dissimulation#forensic#ctf

Testez vos configurations

Xytherion Tools propose des outils gratuits pour vérifier vos DNS, auditer votre SSL, tester SPF/DKIM/DMARC et bien plus — directement depuis votre navigateur.

Stéganographie : l'art de cacher l'information dans l'invisible — Xytherion Tools