La stéganographie informatique
Avec l'avénement de l'informatique, et plus particulièrement avec la multiplication des transferts de fichiers sur les réseaux, la stéganographie est redevenue un sujet à la mode avec de nombreuses innovations. Quoi de plus facile, en effet, que de glisser quelques bits discrets au milieu d'un flot d'images, de textes et de programmes. Les moyens de cacher sont innombrables, des plus rudimentaires aux plus sophistiqués. On peut par exemple cacher très facilement des messages dans des pages web comme celles-ci. Ces pages web sont en effet écrites dans un langage de description de pages, le HTML, qui interprète de la même façon dans un texte un,deux,trois et même n espaces consécutifs : le navigateur n'affichera qu'un seul espace. Il suffit donc, entre les mots, d'insérer autant d'espaces que la lettre qu'on veut cacher (un espace pour A, deux espaces pour B,etc...).Message à cacher : BIBMATHSBien sûr, ceci n'offre qu'une sécurité très faible, car il suffit de trouver le protocole pour retrouver le message, et un moteur de recherche pourra repérer facilement ce genre de manipulations. Plus intéressants sont les messages cachés dans les programmes exécutables et sur les parties libres du disque dur. Dans le premier cas, on ajoute au programme une certaine quantité de code jamais atteint, et qui représente le message. Dans le second, on écrit le message (préalablement chiffré pour qu'il semble aléatoire) dans une partie libre du disque dur, et sans écrire dans la table d'allocations de fichiers du disque dur (son index) que des données sont écrites à cet endroit. La connaissance de l'adresse permet de retrouver le message. Mais la voie la plus intéressante pour la stéganographie moderne est la dissimulation des informations dans les fichiers multimédias, particulièrement les images. Chaque pixel d'une image est représenté par 3 nombres compris entre 0 et 255 : R représente l'intensité du rouge, G celle du vert, B celle du bleu. Ces nombres s'écrivent comme suite de 8 bits (écriture en base 2 avec 8 chiffres). Si l'on modifie les 2 bits de droite de R, on modifie très peu sa valeur (au plus, de 3), et cela est imperceptible à l'oeil humain. On remplace alors les 2 bits de droite de R par les 2 premiers bits du message. Puis on continue pour les composantes G,R, puis pour le 2ème pixel,etc... Il est impossible, à l'oeil, de distinguer l'image qui cache le message, et l'image initiale.
Description en espaces : 2-9-2-13-1-20-8-19
Affichage dans le navigateur Code source Avec l'avénement de l'informatique, la stéganographie est redenue un... Avec l'avénement de l'informatique, la stéganographie est redevenue un
Image initiale | R1=01001110 | G1=01101111 | B1=11111111 |
R2=01110011 | G2=01110110 | B2=10101010 | |
Message | 101100011011 | ||
Image qui cache le message | R1=01001110 | G1=01101111 | B1=11111100 |
R2=01110001 | G2=01110110 | B2=10101011 |
Ce système a de nombreux avantages : il est particulièrement discret, et il permet de cacher énormément d'informations. Dans une image 200×200, on peut cacher 200×200×6=240000 bits, soit 30000 caractères. L'inconvénient majeur est qu'il faut impérativement transmettre les fichiers en bitmap, format qui prend énormément de place. Toute compression en format Jpeg fait perdre le message caché. On utilise en général la dissimulation dans les images de 2 façons différentes :
- Souvent, on chiffre d'abord le message, par un algorithme comme DES ou AES, avant de le cacher dans l'image. Il est alors encore moins facilement détectable, les bits de poids faible de l'image étant devenus aléatoires. Et même si quelqu'un se doute que le message est caché dans l'image, il ne pourra le déchiffrer puisqu'il faudra encore la clé.
- Plutôt que de remplacer les 2 bits de poids faible de la couleur par les 2 bits du message, on les combine par un ou exclusif. Il faut alors que le destinataire possède lui-même l'image initiale pour pouvoir retrouver le message. L'image fait à la fois office de moyen de dissimulation (stéganographie) et de clé (cryptographie).
Image initiale | R1=01001110 | G1=01101111 | B1=11111111 |
R2=01110011 | G2=01110110 | B2=10101010 | |
Message | 101100011011 | ||
Image qui cache le message | R1=01001100 | G1=01101100 | B1=11111111 |
R2=01110010 | G2=01110100 | B2=10101001 |
Consulter aussi