Les bases de la stéganographie

La stéga-quoi ?

La stéganographie est une méthode de dissimulation d'informations dans un message, elle est utilisée depuis longtemps, genre vraiment longtemps (environ -450 av JC). On l'a d'abord utilisée sur des supports physiques, et aujourd'hui elle est notament utilisée de manière numérique afin de cacher des messages secrets .

Procédé de dissimulation d'un message confidentiel au sein de données.

La stéganographie se bases sur de la manipulation de données afin de rendre le message caché le plus discret possible.

Applications

On peut utiliser la stéganographie de plusieurs manières :

  • stéganographie + crypto = message plus sûr
  • transmission d'un message (ajout d'un nouveau message en plus des informations)
  • message secret, caché, et donc difficile à retrouver

Dans les textes

La stéganographie s'applique très bien lors de la transmission d'informations sous format texte, la preuve :

Je suis très émue de vous dire que j'ai
bien compris, l'autre jour, que vous avez
toujours une envie folle de me faire
danser. Je garde un souvenir de votre
baiser et je voudrais que ce soit
là une preuve que je puisse être aimée
par vous. Je suis prête à vous montrer mon
affection toute désintéressée et sans cal-
cul. Si vous voulez me voir ainsi
dévoiler, sans aucun artifice mon âme
toute nue, daignez donc me faire une visite.

Lettre de Goerges Sand à Alfret de Musset

Vous avez trouvé le message caché ? Un indice : lire entre les lignes.
Si vous n'avez pas trouvé, il suffit de lire une ligne sur deux pour comprendre le message assez direct de Gorges Sand.

Il existe de nombreuses techniques pour dissimuler de l'information avec un support texte, comme par exemple lire la troisième lettre de chaque mot, ou compter le nombre de virgules par ligne pour obtenir un nouveau message.

Dans les images

La stéganographie, ou plutôt ceux qui l'utilisent, évoluent et trouvent de nouvelles astuces afin de cacher un message. Notament avec l'avancée du numérique, il est possible d'utiliser des images comme support de l'information (posters, affiches, vidéos...).

En appliquant la stéganographie aux images numériques, les possibilités sont multiples. Comment transmettre un message secret via une image ?
Tout dépend de la discrétion voulue. Dans cet article je ne vais parler que de quelques méthodes, mais la limite eset bien souvent l'imagination.

Afin de pouvoir cacher des messages secrets dans une image il faut en premier lieu savoir comment une image est structurée, de quoi est-elle composée ?

Une image numérique est composée de deux choses :

  • Métaconnées
  • Pixels

Métadonnées d'une image

Les métadonnées permettent de connaître et d'identifier toutes sortes d'informations sur l'image, elles contiennent par exemple la taille de l'image, le modèle de l'apareil photo qui a capturé l'image, à quelle heure, éventuellement le lieu. Ces informations ne sont pas présentes sur l'image à proprement dit, mais elles existent bel et bien.

Pixels

Vous devez déjà le savoir mais une image est composée de pixels, une unité de mesure, qui définnissent la qualité de l'image. Mais ces pixels sont aussi là pour définir à une position précise la couleur de l'image en utilisant le format RGB (teinte de rouge, teinte de vert, teinte de bleu) sous forme de nombres qui définissent l'intensité de la teinte (ex: 255,0,0 correspond à la couleur rouge, et 255,255,255 correspond à blanc).

Maintenant que nous savons comment une image est composée, nous allons pouvoir créer des messages secrets ! Je vais proposer une méthode pour chaque composants de l'image : métadonnées et pixels.

Message secret dans les métadonnées

Il existe une métadonnée appellée Comment, cette donnée est bien souvent vide car il faut la modifier manuellement. Nous pouvons l'utiliser pour y mettre notre message secret ! Sous linux il existe l'outil exiftool qui permet de visualiser et de modifier les métadonnées (et pas que !) :

exiftool -comment="Mon message secret" image.jpg

Nous venons de modifier le contenu de la métadonnée Comment en lui donnant une valeur, notre message.
Afin de vérifier que notre commande a bien modifié le commentaire :

exiftool image.jpg

Super ça fonctionne !

Message secret dans les pixels

Maintenant nous allons voir comment cacher un message dans les pixels d'une image. Une manière simple et pas très technique : écrire le message secret en tout petit dans un coin de l'image par exemple. Sinon on peut passer par les bits de poids faible, ce qui est bien plus discret que d'écrire le message sur l'image.

Dans les fichiers audio

Tout comme avec les images, il est tout à fait possible de cacher des messages dans des fichiers audio. On peut imaginer de multiples possibilités, en utiliser plusieurs en même temps... Mon but est de décrire les pricipes de la stéganographie sans trop rentrer dans les détails, tout en passant à la pratique, je ne vais donc pas détailler les techniques suivantes, il suffit largement d'avoir compris la partie sur le texte ou les images.

Néanmoins il est très intéressant de jouer avec les fichiers audio ! Pour cacher un message un peu par exemple le dire à haute voix, l'inverser et l'accélerer pour le rendre incompréhensible ; on peut aussi utiliser les fréquences pour cacher un message, avec des logiciels ou outils il est possible de cacher une image dans la rerésentation fréquentielle de l'audio, ou d'appliquer le principe du bit de poids faible.

Autres

Pour aller plus loin, voici une liste de sujets qui utilisent la stéganographie afin de rendre secret un message dans un fichier ou du texte :

  • Fichiers intégrés (embedded files)
  • Langage npiet
  • Angecryption (super intéressant)
  • Homoglyphes