Quelques notions autour de la stéganographie

archive
image
PHP
Python

La stéganographie relève à la fois de l’art et de la science, à savoir l’insertion et la dissimulation de messages dans une image. Le premier usage de ce terme remonterait à 1499 mais c’est au moment de la Seconde Guerre Mondiale que le procédé a recommencé à faire son apparition, tout comme les techniques de chiffrement des messages. 

L’avantage de la stéganographie par rapport aux techniquement de chiffrement, est l’absence d’attractivité du message. Si Bob envoie à Alice une photographie de ses dernières vacances à Hawaii, il n’y a – a priori – aucune raison de se méfier. Mais si on ouvre la photographie, on obtient le message réel que Bob voulait envoyer à Alice. A l’inverse, si Bob envoie un message chiffré à Alice, même si cela est pour donner une liste de courses, le message paraîtra suspect voire illégal. En effet, il existe un certain nombre de pays dans lesquels le chiffrement des messages est interdit  comme l’Inde, l’Arabie Saoudite ou les Emirats Arabes Unis.

Une image, qu’elle soit en JPEG ou en PNG, peut facilement cacher un message, sans pour autant que le poids de l’image n’en soit affecté. Il faut passer par un procédé de stéganalyse pour découvrir le message.

De ce fait, on pourrait presque dire que si le chiffrement protège le message, la stéganographie protège à la fois le message et la transmission du message. On pourrait mais on ne le dira pas.

Il existe plusieurs façons de découvrir un message caché dans une image. Le plus simple consiste à ouvrir l’image non pas avec une visionneuse d’image mais tout simplement avec le Bloc-Notes de Windows. Si un message est dissimulé à « l’intérieur de l’image », il apparaîtra en clair dans le bloc-notes sauf si l’émetteur a codé d’une certaine façon le message. Il faudra donc analyser l’ensemble du texte pour retrouver le message.

On peut également jouer sur les couleurs de l’image. Ainsi, en jouant avec les contrastes, les balances, les couleurs ou la luminosité, le message apparaîtra ou non. On peut aussi ouvrir l’image avec une application d’archives, faisant ainsi apparaître un fichier texte ou même inclure un lien.

Ce sont des exemples simples de « décodages » d’images, il existe certaines méthodes beaucoup plus complexes mais du fait de leur complexité, demandant un certain niveau de connaissances et de pratiques, non seulement pour l’émetteur qui va créer le message mais aussi pour le destinataire qui va devoir procéder une analyse avant de pouvoir lire le message. Certains logiciels permettent de d’inclure facilement des messages mais demandent à ce que le destinataire possède le logiciel pour déchiffrer le message caché, ce qui n’est pas le meilleur moyen pour cacher un message. On peut aussi utiliser Python, ce qui a l’avantage de faire monter d’un cran le niveau de difficulté

L’une des méthodes simples pour cacher quelque chose dans une image est de passer par une archive. Dans un terminal de commande sous Windows, on tape : copy /b [File1(Image)] + [File 2 (RAR)][Destination File (Image)] .

Sous Linux, la commande est encore plus simple ainsi que le montre ce très court texte.  

La stéganographie peut être une façon de conserver un minimum de confidentialité des messages mais peut également être utilisée à des fins malicieuses. En effet, on peut cacher du code PHP malveillant dans une image et ensuite uploader l’image sur un site. Si le concepteur n’a pas verrouillé d’une façon ou d’une autre l’utilisation d’un script PHP des utilisateurs, le script va s’exécuter. Que l’on se rassure, l’interdiction d’exécution semble assez simple

On l’aura compris : les procédés de stéganographie ne sont finalement efficaces que s’ils sont fait à la main et non générés par un logiciel quelconque.

Ajouter un commentaire