object.title
La stéganographie, une technique souvent oubliée

Par Adrien C. - Expert en CyberSécurité

Parmi les nombreux registres de la cybersécurité, la stéganographie est souvent relayée (injustement) au second plan par rapport à son illustre cousine : la cryptographie.

C'est pourquoi, nous allons tenter de lui redonner ces lettres de noblesse en expliquant les principes de base et son utilité dans le monde numérique d'aujourd'hui.

Là où la cryptographie (ou l'art du secret) consiste à rendre un message inintelligible à toute personne autre que le destinataire, la stéganographie consiste à dissimuler le message initial dans un autre message.

Une métaphore souvent employée pour illustrer leur principe de fonctionnement consiste à dire que chiffrer un message équivaudrait à mettre son argent dans un coffre-fort avec un système de cadenas/clef, alors que la dissimulation serait de cacher l'argent directement en l'enterrant dans le jardin.

À noter que l'usage de ces deux techniques de manière simultanée est tout à fait possible (et même fortement recommandée en fonction des enjeux).

Une méthode millénaire

À l'instar de la cryptographie, on retrouve de nombreux usage de la stéganographie à travers les âges, dont le cas d'utilisation le plus connu est l'usage de l'encresympathique, qui ne se révélée qu'une fois soumise à une source de chaleur. L'arrivée des microfilms plus tard lors de la Seconde Guerre Mondiale changera la donne par la suite.

Voici quelques exemples quand on parcourt l'histoire :

- En Chine, on écrivait un message sur une parchemin en soie, qui était ensuite recouvert de cire avant d'être avalé par le messager (pour être sans doute récupérer par les voies "naturelles")

- En Perse, on tatouait un message sur le crâne rasé d'un esclave avant de le faire parvenir au destinataire une fois les cheveux repoussés : une technique certes relativement lente, mais efficace car il était ainsi possible de savoir si le message avait été lu en chemin.

- Les espions allemands utilisaient le micro-point pour communiquer discrètement des informations secrètes. Il s'agissait en fait d'une photographie de la taille d'un point de ponctuation qui pouvait être habillement caché dans un texte légitime.

Cet exemple est d'ailleurs illustré dans la BD culte "Blake & Mortimer" d'Edgar P. Jacobs dans l'album SOS Météore.

Stegano Squad

Une méthode digitalisée

L'informatique étant aujourd'hui omniprésente dans nos vies et dans la communication, la stéganographie a tout naturellement évolué vers des techniques plus modernes. L'une d'entre elle, qui est très utilisée, s'appelle le LSB (Least Significant Bit), et celle-ci que nous allons maintenant aborder.

Comment cacher une information dans une image ?

Considérons une image quelconque. Il s'agit en fait d'un tableau de pixels. Pour chaque pixel, la couleur est codée sur 3 octets comme indiqué dans l'exemple ci-dessous :

Chaque octet indique l'intensité de la couleur correspondante, sur un niveau allant de 0 à 255. 255 correspond à la couleur native. Faire varier légèrement la valeur de l'octet n'influe que faiblement de manière graphique sur la couleur.

Ainsi, si on n'influe ne serait-ce que le dernier bit de chaque couleur primaire composant la couleur de chaque pixel (soit plus simplement dit, le dernier chiffre de chacun des trois nombres du code RGB définissant la couleur ou également dit "bit de poids faible") ou même les 2 derniers, le changement resterait imperceptible par l'œil nu : la nuance serait que de 3 au maximum sur 255 nuances possibles, ce qui est bien sûr reste suffisamment discret pour être discerné par l'œil humain.

C'est de cette manière que sont dissimulés des messages dans une image :

On convertit le message en binaire puis on remplace les deux derniers bits du rouge du premier pixel par les deux premiers bits de l'information à cacher.
Ensuite, les deux derniers bits de l'octet qui code la couleur bleu par les deux suivants du texte. Ce procesus est dupliqué pour la couleur verte puis avec le pixel suivant.

À la fin de l'opération, il est quasiment impossible de voir une différence entre l'image initiale et l'image qui contient l'information.

Pour cacher une image dans une autre image, le principe reste le même : au lieu de coder les bits d'un texte sur les bits de poids faible de l'image qui sert de support, il suffit de coder les bits des couleurs de chaque pixel à la place.

Il existe deux méthodes :

La première est simplement le fait de choisir une image support beaucoup plus grande que l'image à masquer, car l'objectif est de séparer une couleur primaire d'un pixel sur 1 pixel et le tiers d'un autre (de quoi insérer 8 bits en utilisant les deux derniers de chaque couleur primaire).

La seconde méthode consiste à utiliser davantage de bits pour chaque couleur de chaque pixel. Dans ce cas, il faut faire attention à ne pas prendre une trop grande partie de la couleur, car l'image une fois l'autre image stéganographiée risque d'être visiblement différente de l'image l'originale.

Nous venons d'aborder une technique de stéganographie parmi des milliers : celle-ci a pour avantage de faire transiter des informations (chiffrées ou non) de manière discrète car ces informations sont contenues dans d'autres informations classiques (textes, images, trames TCP, codes sources, morceaux de musique, etc.). Sa principale force réside en deux idées simples : nos sens (œil, ouïe) ne sont pas capables de détecter d'infimes changements dans une image ou un son, et à priori, nous ne savons pas à l'avance que tel fichier renferme de l'information cachée (bien qu'il existe certaines techniques d'analyse qui permettent de s'en prémunir). La stéganographie, couplée à la cryptographie, peut présenter une forme de danger, notamment dans le cadre d'exfiltration illégale de données.