Cet article (découpé en deux parties) aborde la notion de stéganographie, un moyen efficace de cacher des informations dans d’autres données. Ce domaine introduit un moyen encore peu utilisé pour sécuriser ses données et ses communications numériques. Il traite des différentes formes de stéganographie qui existent aujourd’hui ainsi que de l’utilisation possible de ce domaine dans des cas concrets.
À l’heure où l’informatique prend une place majeure dans notre quotidien (PC, tablette, smartphone) il est judicieux de se poser les questions suivantes :
Est-il possible de communiquer de manière sécurisée et sûre ?
La confidentialité des données échangées peut-elle être assurée ?
Bien sûr, de nombreux moyens de chiffrer ses données existent déjà. Mais l’information chiffrée est repérable, son passage est visible sur le réseau. Toutefois, une clef est nécessaire pour la déchiffrer. Selon les algorithmes utilisés, un certain temps et certaines ressources de calcul sont indispensables pour retrouver la clé. L’idéal serait d’être suffisamment discret pour que l’on ne devine pas la présence des informations que nous voulons protéger. C’est ce que propose un domaine appelé « la stéganographie ». Il permet de rester discret dans l’échange ou le stockage de données en cachant des informations dans des supports classiquement utilisés.
La stéganographie est une technique très ancienne qui existait déjà au moyen âge. En effet, Démarate, un ancien roi de Sparte qui avait trouvé refuge auprès de Xerxès, avait utilisé une tablette de cire et avait fait fondre la cire pour graver un message d’alerte sur le bois. Il avait ensuite recouvert le bois de cire et y avait inscrit un message insignifiant. Ainsi le message avait été transmis de manière sécurisée et la stéganographie était inventée. Histiée, à la même époque, fit raser un de ses esclaves, lui tatoua un message sur le crâne puis il attendit que ses cheveux repoussent avant de l’envoyer à Milet. D’autres idées sont apparues au cours des âges afin de communiquer discrètement. Il existe de nombreuses anecdotes historiques sur cette technique (encre invisible, micropoint, etc.) une grande quantité est référencée sur internet.
1-Principe de fonctionnement
A-Les différentes formes de stéganographie
La stéganographie est un moyen de cacher des données dans d’autres données. Il est donc nécessaire d’altérer au minimum le support utilisé. C’est pourquoi ce sont les supports média tels que le son, les images ou les vidéos qui sont le plus souvent utilisés.
En effet, ceux-ci sont généralement assez volumineux et facilement modifiables pour que l’altération ne soit pas décelable par nos sens. Ces derniers ne sont pas parfaits, une légère modification d’un pixel, ou d’un bruit est très difficilement remarquable, même si l’on dispose de l’originale pour comparer. Nous utilisons donc ces supports, afin de pouvoir cacher des informations.
Il est également possible d’utiliser la stéganographie sur des supports différents. Ce phénomène est plus rare, mais existe, l’important étant toujours d’insérer des données discrètement.
A-Les images
Pour les images, l’altération légère de la nature d’un pixel est aisément réalisable sans pour autant que cela ne soit visible à l’œil nu. Une image est composée de deux parties : une première partie (appelé « header ») qui contient toutes les informations relatives à l’image (type, largeur, hauteur, etc.) et une deuxième partie contenant un ensemble de points, de valeurs, correspondant aux pixels. Prenons pour exemple une image au format BMP : chacun de ses pixels est défini par trois valeurs correspondant respectivement au bleu, au vert et au rouge.
Il existe plusieurs méthodes pour insérer des données dans les images : la plus répandue est la modification non visible des pixels pour y insérer petit à petit les octets de la donnée que l’on désire cacher. Cette technique est communément appelée LSB (Less Significant Bit) puisqu’elle se concentre sur les bits de poids faibles des pixels. C’est principalement cette technique qui est utilisée sur les images, car elle est réalisable même sur des formats compressés tels que le JPEG et qu’elle est difficilement détectable. L’autre avantage est qu’elle ne modifie ni la taille du fichier, ni les dimensions initiales de l’image, confortant ainsi notre objectif de discrétion.
Reprenons notre exemple d’image BMP : un pixel a une valeur de bleu, une de rouge, et une de vert, chacune de ces valeurs est comprise entre 0 et 255 (sur 8 bits). On a donc :
Pixels :
00100111 11101001 11001000
00100111 11001000 11101001
11001000 00100111 11101001
Insertion de la lettre A : À = 65 = 01000001
Résultat :
00100110 11101001 11001000
00100110 11001000 11101000
11001000 00100111 11101001
On répète cette action pour tout le message et nous obtenons désormais deux images identiques à l’œil nu :
b-Les sons
Pour la musique, le procédé est similaire, mais il est effectué en fréquences.
Les principales techniques utilisées sont :
LBE (Low Bit Encoding) : C’est une technique assez similaire à la méthode LSB pour les images. Elle consiste à modifier aléatoirement les bits d’un fichier son.
SSE (Spread Spectrum Encoding) : Elle consiste à ajouter aléatoirement du bruit dans lequel seront contenues les informations à cacher. À la différence du LSB, ce bruit sera inséré au niveau fréquentiel et non directement sur les octets du fichier.
EDH (Echo Data Hiding) : Dans la plupart des fichiers musicaux des échos sont présents. Il est possible de cacher des informations dans cet écho ou entre l’écho et le son original.
C-Les vidéos
L’insertion de données dans des vidéos est bien sûr possible. Cette technique est moins utilisée, car les formats vidéo sont bien plus complexes. De plus, c’est un support lourd et très peu de personnes ont des bases de données suffisantes pour réaliser des tests et des analyses d’attaques efficaces. Ce système est surtout utilisé dans la défense où l’on utilise les données de vidéosurveillance. Par exemple, l’entreprise Thalès a mené des recherches il y a quelques années dans ce domaine comme l’explique très bien Clément Chastagnol dans son rapport de stage.
Les formats vidéo principalement utilisés pour cacher des informations sont les formats MPEG-2 et MPEG-4 qui sont assez proches du JPEG dans leurs structures, il est donc possible d’y insérer des données de manière similaire. Mais il existe une quantité importante de formats vidéo tels H264/AVC, AVI où la dissimulation de messages est possible. Au final si le fonctionnement du support est connu, il est vite possible de détecter les zones les plus aptes à être modifiées pour cacher une information discrètement.
D-Les utilisations originales
Ces formats propres au multimédia sont les principaux utilisés, mais il existe d’autres supports où l’insertion d’un message est possible. Par exemple, les protocoles TCP/IP, HTTP et autres offrent ces possibilités. En effet, lorsque deux machines communiquent entre elles, elles échangent ce qu’on appelle des paquets. Ce sont des groupes d’octets contenant de nombreuses informations (émetteurs, destinataires, données à transmettre, etc.). Il est donc possible de modifier très légèrement ces groupes de données afin d’y cacher des informations.
En résumé, la stéganographie est envisageable dans de nombreux types de données. À partir du moment où la dissimulation d’informations est réalisable sans modifier le fichier orignal de manière perceptible pour l’humain, tout est possible et tout est utilisable. Maintenant, de nouvelles questions se posent à nous :
La stéganographie est-elle un moyen infaillible de sécurisation des informations ?
Est-il possible de trouver une information cachée ?
B-Est-elle infaillible ?
Non. De manière générale, en informatique rien ne l’est. Néanmoins, ce domaine comporte des avantages complémentaires à la cryptographie. Malgré ces avantages, l’usage de la stéganographie nécessite un bon usage de la cryptographie. Le chiffrement est une sécurité efficace qui nécessite de posséder une clé et l’algorithme pour être déchiffré. La stéganographie permet d’insérer un message dans un support et il est possible de le faire pseudo aléatoirement (à l’aide d’une clé initiatrice de l’aléatoire). Si l’on combine chiffrement et stéganographie, nous obtenons alors une sécurité à deux clés et deux algorithmes, ce qui renforce nettement sa complexité. De plus, si jamais un message caché est découvert, mais que celui-ci est chiffré, l’utilisateur n’a aucun moyen de savoir si il s’agit d’un texte chiffré ou d’une suite d’octets sans relation. Il va donc falloir qu’il effectue toute une série de tests et d’analyses afin de pouvoir retrouver le message final. C’est pourquoi nous insistons sur le fait que ces deux techniques sont complémentaires.
Il est bien évidemment possible de forcer les sécurités et d’y déceler les failles. C’est pourquoi la stéganographie comprend aussi un domaine de recherche appelé : la stéganalyse.
a-La stéganalyse
A la différence de la cryptanalyse, elle n’a pas pour but de retrouver l’algorithme d’insertion ni la clé de déchiffrement du message. Elle se focalise sur la détection d’un message au sein d’un support (image, son, etc.). Par conséquent, elle permet de réaliser un premier filtre sur les données suspectes.
Prenons l’exemple d’une entreprise qui veut contrôler les images transitant sur le réseau. Celle-ci va placer une barrière de contrôle stéganographique afin de pouvoir analyser chaque image. Si une image est jugée stégo (elle contient un message dans le support) alors l’entreprise peut décider de l’analyser ou de la supprimer.
Pour tester les comportements et les attaques possibles, des banques de données sont utilisées. Ces banques de données sont divisées en deux blocs : un réservé pour l’entraînement, l’autre pour la validation. Ces deux blocs sont eux-mêmes subdivisés en deux, afin de séparer les images modifiées des images neutres. Pour tester l’efficacité d’une attaque, celle-ci est lancée avec toutes les valeurs possibles sur la banque d’entraînement. De chaque tentative est déduit un taux d’erreur puisque les images sont connues. L’attaque possédant le taux d’erreur le plus faible est alors lancée sur la banque de validation. Si le taux d’erreur est suffisamment faible, l’attaque sera validée, sinon elle est jugée inefficace.
Ceci n’est qu’un aperçu général de la complexité de ce domaine, c’est pourquoi il est si difficile de déceler la présence d’un message dans un support et c’est aussi pour cela que la stéganographie est une sécurité très efficace.