Le coin du cryptologue 9 : Chiffrer ? Non, plutot dissimuler : La steganographie

La cryptologie expliquée à mon voisin qui n'y connait rien mais qui voudrait savoir... Comme dans toutes mes rubriques "Le coin du cryptologue", un conseil pratique se trouve à la fin.

Vous trouverez les articles précédents sur le sujet :

  1. Le calcul d’empreinte dans la lettre mensuelle de Forum ATENA du mois d’avril 2016
  2. Chiffrer, déchiffrer, décrypter dans celle du mois de mai
  3. Le chiffrement à clé publique dans celle du mois de juin
  4. La signature numérique dans celle du mois de septembre
  5. Le chiffrement symétrique dans celle du mois d’octobre
  6. Les échanges des clés de chiffrement dans celle du mois de novembre
  7. La cryptologie quantique aujourd'hui dans celle du mois de décembre
  8. Le chiffrement homomorphe pour un Cloud sécurisé dans celle du mois de janvier 2017

La stéganographie est une méthode vieille comme le monde pour assurer la confidentialité d’une information sensible. La cryptologie (du grec κρυπτός : cacher) consiste à brouiller une information pour la stocker ou la transmettre au travers d’un contenant qui lui n’a pas à être caché. La stéganographie (στεγανός : couvrir) consiste au contraire à stocker ou transmettre une information en clair, mais intégrée dans un contenant qui n’est pas caché. Ce qui est caché, et qui assure la confidentialité, c’est que ce contenant contient l’information qu’on souhaite n’être lue que par celui qui en a l’autorisation, mais bien malin celui qui peut le savoir si on ne le lui a pas dit, surtout si le contenant semble anodin. En somme, pour ne pas découvrir le contenu d’un message caché, il suffit de ne faire savoir que son contenant contient ce message, qu’à son correspondant.

Il y a 2500 ans, quand les Perses ont levé une flotte pour envahir la Grèce, un Grec vivant à Babylone, ayant eu vent de l’affaire eut l’idée de graver un message d’alerte à destination d’Athènes, sur une planchette en bois qu’il recouvrit de cire. Cette planchette traversant sans encombre tous les contrôles fut remise aux Grecs qui grattèrent la cire et surent ainsi que les trières perses allaient emporter l’armée d’invasion de la Grèce en passant par le détroit de Salamine. A l’heure dite, les Grecs les attendaient dans le détroit et lancèrent des embarcations enflammées sur la flotte d’invasion perse, causant la panique parmi les assaillants et un immense télescopage des navires perses. Et ce fut, grâce à ce renseignement fourni par ce procédé de stéganographie, la victoire navale de la bataille de Salamine. La Stéganographie avait ainsi acquis ses lettres de noblesse. Mais le procédé avait dû être utilisé bien avant, peut-être même, qui sait, dans les peintures rupestres de la grotte de Lascaux.

Un exemple littéraire célèbre de stéganographie se trouve dans la correspondance prêtée à un échange entre Alfred de Musset et George Sand. Le poème très romantique, très fleur bleue d’Alfred de Musset cache un poème beaucoup plus terre à terre, c’est le moins qu’on puisse dire, quand on ne lit qu’un vers sur deux. Et le premier mot de chaque vers que George Sand lui a fait en réponse le renseigne sur le moment des retrouvailles. Encore fallait-il connaître la méthode pour retrouver ces messages cachés...

Voir en : http://5ko.free.fr/fr/sand.html

Bon, cet exemple célèbre d'acrostiche littéraire n'est sans doute pas d'Alfred de Musset ni de Georges Sand, mais qu'importe ici la vérité pourvu qu'on ait l'ivresse ! :-)

De l’encre invisible aux micro points cachant une information qui n’est lisible qu’à l’aide d’un microscope électronique, les techniques de stéganographie n’ont cessé de se perfectionner. Et bien sûr avec elles se sont développées les techniques de contre-mesures. Par exemple si un texte est écrit en utilisant de l’encre invisible (ça marche avec le jus de citron) qui ne se révèle qu’à une certaine température, il suffit de chauffer toutes les feuilles pour savoir si elles ne recèlent pas un message caché (quand le message ne se révèle pas spontanément parce qu’il fait trop chaud). Les micro points, eux, peuvent être décelés en lumière rasante, parce qu’ils sont, en général, plus brillants que le texte qui les contient.

Le numérique allait donner une impulsion aux techniques de stéganographie. Prenons comme exemple un message sensible caché dans une image.

Un message caché dans une image

Une image numérique est composée de petits carrés élémentaires, les pixels (picture éléments). Chaque pixel coloré dans une image en couleur est constitué de trois octets composant les couleurs fondamentales, rouge, vert et bleu. La combinaison des nuances de ces trois couleurs donne la couleur du pixel. Un pixel est composé ainsi d’un octet de rouge, d’un octet de vert et d’un octet de bleu. Un octet, élément de 8 bits, peut prendre 256 valeurs.

Si par exemple l’octet de bleu d’un des pixels se termine par un bit à 1 dans la couleur naturelle du pixel, et que le message que l’on veut cacher dans l’image demande qu’on le change par un bit à 0, on aura changé 1/256e de la teinte en bleu du pixel. Un être humain ne peut le détecter sur l’image. On va utiliser chacun des octets des pixels constituant l’image couleur, pour cacher le message sensible. Seuls ceux qui savent que l’image a été modifiée pourront donc s’intéresser aux bits de poids faible de chacun des trois octets de chaque pixel et reconstituer le message caché. Cette technique a pour nom LSB (Least Significant Bit).

Donc si on réserve pour dissimuler le message le bit de poids faible de chaque octet composant les pixels d’une image, ces pixels parfois changent, parfois pas, on peut disposer du 8eme de la taille de l’image pour cacher son message. Voir, à la fin, l’application pratique avec l’utilisation du logiciel libre SteganograFree. Si on a besoin de plus de place pour placer son message sensible, on peut prendre plusieurs bits de poids faibles de chaque octet (le dernier et l’avant dernier par exemple, mais l’image qui contient le message sera un peu plus dégradée. Mais du moment que ce n’est pas perceptible à l’œil humain …

Stéganographie et cryptologie, deux solutions complémentaires

La stéganographie corrige un gros problème de la cryptographie. Si un fichier est chiffré, c’est qu’il présente en principe une certaine importance puisqu’on a pris la peine de le chiffrer et les cryptanalystes vont essayer de le décrypter. Mais si un fichier n’est pas chiffré, seulement dissimulé, même en clair dans un élément en clair, comment connaître son existence ? En somme, si la cryptographie repose sur le fait que le message ne sera pas compris, la stéganographie repose sur le fait que le message ne sera pas trouvé. De plus, il n’est pas interdit de chiffrer également le message sensible, si la sensibilité du fichier, de plus caché dans son contenant, exige deux précautions plutôt qu’une. A l’écriture secrète de la cryptologie s’ajoute ainsi l’écriture discrète de la stéganographie.

Et de même que par ce procédé on peut dissimuler un texte dans une image, on peut également dissimuler une image ou tout autre fichier dans une image. On peut aussi cacher un son dans un son. Dans un fichier .wav par exemple on peut utiliser les fréquences non audibles par l’oreille humaine pour dissimuler un secret. C’est la stéganophonie.

Les contre-mesures

De même que la cryptanalyse a pour but de décrypter un message chiffré sans connaître la clé de chiffrement, la stéganalyse a pour but de permettre de découvrir une information cachée dans son contenant, ou au moins de la détruire.

Si on possède l’image originale et l’image modifiée, et qu’on se doute de quelque chose, il est évidemment possible de découvrir ce que cache l’image modifiée. Si on convertit une image BMP qui contient une information cachée, en image JPEG, la compression opérée détruit le message caché.

Le mieux serait d’interdire tout échange, mais ce n’est pas réaliste donc la stéganographie est une technologie d’avenir.

Watermarking ou tatouage

Le watermarking est une technologie qui assure non pas la confidentialité d’une image mais qui peut établir les droits d’auteur en dissimulant un copyright dans l’image. C’est une des applications de la stéganographie. Le watermarking ne doit pas altérer la qualité visible de l’image, tout en restant invisible. Il doit résister aux altérations de l’image, comme par exemple les compressions, et doit empêcher sa suppression. Autant de contraintes qui font du watermarking un espace de recherche actuel très fécond.

Application pratique : cacher un message dans un logo

Il n’est évidemment pas question de changer chaque bit de poids faible de chaque pixel à la main. Des outils conviviaux sont disponibles, comme dans l’exemple ci-dessous le logiciel libre SteganograFree.

Le but est ici de cacher le message « Vous ne pouvez pas vous douter que le logo LinkedIn cache un message secret » dans le logo LinkedIn. On charge le logo qui, dans le cas de SteganograFree, doit être une image au format BMP, on écrit le message, et on protège le tout par un mot de passe.

Pour retrouver le message, on charge le logo et on entre le mot de passe. On obtient le message secret. Simple et très efficace !

Pour plus d'info, voir mon post sur LinkedIn :

https://www.linkedin.com/pulse/chiffrer-non-plut%C3%B4t-dissimuler-la-st...

 

 

 

 


< Revenir à la newsletter

Auteur: 
Gérard Peliks, Président de l'atelier sécurité et VP de Forum ATENA gerard.peliks@forumatena.org

Ajouter un commentaire

Full HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Vous pouvez utiliser du code PHP. Vous devrez inclure les tags <?php ?>.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Filtered HTML

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.