Article original : What is Steganography? How to Hide Data Inside Data
Mesdames et Messieurs, bienvenue dans le monde des espions 🕵️.
Dans le film Uncharted (un excellent film au passage), Tom Holland et son frère ont une forme secrète de communication. Ils écrivaient un message sur une carte postale ordinaire avec une encre spéciale qui devenait invisible, puis l'envoyaient à l'autre personne.
De l'extérieur, cela ressemblait à une autre vieille carte postale ordinaire. Mais si un briquet était allumé juste derrière le papier, l'encre réapparaissait et un nouveau message était découvert 🔥.
C'est l'un des trucs les plus cool pour cacher des informations vus dans les films. Mais que se passerait-il si nous pouvions faire cela sur des ordinateurs ?
Eh bien, il s'avère que nous pouvons plus ou moins le faire. En utilisant la stéganographie.
Avertissement : Ce concept peut être utilisé à la fois pour le bien et le mal. Le contenu de cet article est à des fins éducatives uniquement et ne doit pas être utilisé pour faire des farces, ou nuire aux personnes et aux infrastructures.
Et avec cela en tête, voici ce que nous allons explorer dans cet article :
- Qu'est-ce que la stéganographie ?
- Types de stéganographie – Texte, Image, Vidéo, Audio, Réseau
- Stéganographie d'image en utilisant Steghide
Qu'est-ce que la stéganographie ?
La stéganographie est l'art de cacher des données secrètes en pleine vue. Cela semble un peu contre-intuitif, mais vous seriez surpris de voir à quel point c'est efficace.
Cacher des choses comme le code source, les mots de passe, les adresses IP et d'autres informations confidentielles dans des images, de la musique ou d'autres fichiers aléatoires tend à être le dernier endroit où quelqu'un penserait à les trouver.
Vous devez noter que la stéganographie et la cryptographie ne sont pas mutuellement exclusives l'une de l'autre. L'une peut contenir des éléments de l'autre ou des deux. Par exemple, vous pourriez effectuer de la stéganographie avec un algorithme de chiffrement ou un mot de passe, comme vous le découvrirez bientôt.
Types de stéganographie
Il existe divers types de stéganographie, et nous en examinerons cinq dans ce tutoriel.
Stéganographie de texte
Cette forme implique de cacher un message dans un texte. Une méthode courante pour cela est la substitution. Elle implique de remplacer certains caractères par d'autres et ensuite de les substituer pour récupérer les données originales.
Par exemple, prenez le texte suivant.
Thi follow eng tixt contaens a sicrit missagi
Cela n'a pas vraiment de sens, n'est-ce pas ? Mais que se passerait-il si nous remplacions les i par des e et les e par des i ?
The follow ing text contains a secret message
Je pense que c'est un peu plus facile à lire. C'est un exemple assez simple, mais il en existe des beaucoup plus compliqués et même certains que vous pourriez inventer vous-même.
Stéganographie d'image
Franchement, c'est mon préféré. Cela implique de cacher des données derrière des images numériques. Il existe diverses techniques pour la stéganographie d'image qui incluent la technique du bit le moins significatif, le masquage et le filtrage, et la transformation par codage et cosinus.
Jetez un coup d'œil aux deux images ci-dessous et repérez la différence :
Groot sur Linux § Crédit : Mercury
En réalité, aucun humain sur terre ne peut dire la différence visuelle. Mais si vous regardez de plus près les détails du fichier...
Comparaison des images § Crédit : Mercury
La seule différence est la taille des images. C'est parce que celle de droite cache 260 mots de texte. N'est-ce pas cool ?
Stéganographie vidéo
Dans la stéganographie vidéo, vous pouvez littéralement cacher des vidéos entières à l'intérieur d'une autre vidéo. Les vidéos sont essentiellement une séquence d'images avec un audio qui joue à mesure que la séquence progresse. Ce type de stéganographie permet à chaque image vidéo de coder une image de celle que vous souhaitez cacher.
Cette technique peut également être utilisée pour cacher du texte comme démontré dans le logiciel Steganosaurus par James Ridgeway. Il montre comment cela fonctionne dans cette vidéo.
Stéganographie audio
Ce type de stéganographie permet d'encoder des messages cachés à l'intérieur d'un fichier audio. Une technique courante utilisée ici est appelée Backmasking. Le Backmasking consiste à cacher un message dans le fichier audio et il ne peut être entendu que lorsqu'il est joué à l'envers.
Le célèbre rappeur, Eminem, a fait du backmasking dans la chanson 'Stimulate' en 2002.
Stéganographie réseau
Cela est relativement rare, mais néanmoins, c'est une technique dans laquelle les messages sont transmis en les cachant dans le trafic réseau. Les messages pourraient être trouvés dans la charge utile ou les en-têtes des paquets de données lorsqu'ils sont capturés et analysés par le récepteur.
Maintenant, examinons comment faire de la stéganographie d'image.
Stéganographie en utilisant Steghide
Steghide est un outil open source de stéganographie d'image qui utilise la méthode du bit le moins significatif (LSB) pour cacher des données dans les images.
Les images sont composées de pixels, qui sont composés de bits. La profondeur de bits détermine combien de couleurs sont présentes dans une image. Plus la profondeur de bits est élevée, plus l'image tend à être colorée.
Ce que fait le LSB, c'est changer le dernier bit de chaque octet (ou pixel) dans l'image en un bit qui représente les données que vous souhaitez cacher. Cela change les données de l'image, mais si c'est fait correctement, ce n'est pas perceptible. Plus la profondeur de bits et la résolution sont élevées, plus de données peuvent être stockées dans l'image.
Maintenant que vous comprenez comment cela fonctionne, jouons un peu à cache-cache (sans jeu de mots 👀).
Tout d'abord, nous aurons besoin de quelques choses :
- Un système d'exploitation Linux
- Une connexion Internet
- Une image
- Un fichier texte
Installer Steghide
Tout d'abord, nous devons installer Steghide. Ouvrez votre terminal et exécutez la commande suivante pour le faire :
sudo apt install steghide
Vous pouvez toujours exécuter steghide --help pour obtenir la liste des commandes et voir toutes vos options.
Préparez votre image
Ensuite, placez une image et un fichier texte dans un répertoire. Mes fichiers sont 'information.txt' et 'image.png'. J'ai également mis du texte dans le fichier à cacher dans l'image plus tard.
Préparation des fichiers § Crédit : Mercury
Ouvrez à nouveau votre terminal et allez dans le répertoire où vous avez stocké les fichiers. Le mien est dans ~/Documents/steganography_tutorial.
Recherche des fichiers § Crédit : Mercury
Créez une nouvelle image
Ensuite, exécutez la commande suivante pour créer une nouvelle image qui contient le fichier texte que vous souhaitez cacher.
steghide embed -ef <data> -cf <image> -sf <stego_image> -v
Examinons la commande :
steghide– Nous spécifions l'outil à utiliserembed– Indique à l'outil que nous voulons intégrer des données-ef– Fichier à intégrer, spécifie le fichier à cacher-cf– Fichier de couverture, spécifie l'image de couverture-sf– Fichier stéganographique, crée une copie de l'image originale avec le fichier intégré-v– Verbose, nous donne plus d'informations sur le processus
Lorsque la commande est exécutée, il vous sera demandé d'entrer un mot de passe. Si vous souhaitez une couche supplémentaire de sécurité, vous pourriez vouloir faire cela. Si vous ne le souhaitez pas, appuyez simplement sur Entrée deux fois. Voici le résultat de ce que j'ai exécuté :
Intégration des informations § Crédit : Mercury
Inspectez le nouveau fichier
Maintenant, examinons le nouveau fichier.
Comparaison des images côte à côte § Crédit : Mercury
Il semble n'y avoir aucune différence. Nous pouvons regarder de plus près avec un site appelé diffchecker.com.
Comparaison des détails des images § Crédit : Mercury
Extrayez les données
Le fichier stéganographique est légèrement plus grand que l'original car il contient des informations. Nous pouvons extraire les données du fichier stéganographique en utilisant la commande ci-dessous.
steghide extract -sf <stego_image> -xf <extracted_data>
Passons en revue la commande ci-dessus :
-sf– fichier stéganographique, l'image contenant des données cachées-xf– fichier extrait, le fichier avec les données extraites
Ci-dessous se trouve la capture d'écran de l'exécution de la commande. Le texte extrait est également montré ci-dessous.
Extraction des informations § Crédit : Mercury
Si vous avez extrait le texte, félicitations 🎉🎊. Vous avez réussi à cacher et à extraire le texte de l'image. Vous pouvez faire cela avec un certain nombre de choses, même des livres entiers.
En utilisant un outil différent appelé Stegcore, j'ai caché un fichier texte contenant le nouveau livre de Quincy Larson, « Comment apprendre à coder et obtenir un emploi de développeur », derrière une image du livre 📝.
Voici un extrait du livre.
Un extrait du livre § Crédit : Quincy Larson
Et comme avant, le texte a été intégré dans une nouvelle image. Voici l'image originale et l'image stéganographique côte à côte.
L'image originale comparée à l'image stéganographique § Crédit : Mercury
Et comme prévu, l'image stéganographique est légèrement plus grande que l'originale.
Les détails des images côte à côte § Crédit : Mercury
Parler de cacher un livre derrière un livre (mauvaise blague, je sais 🤧). Si vous voulez l'essayer, vous pouvez consulter le dépôt Github repository ou l'application.
Conclusion
Vous avez appris ce qu'est la stéganographie et comment la mettre en œuvre en utilisant des outils. Gardez à l'esprit que la stéganographie est un outil et peut être utilisée à la fois pour le bien et le mal. Les entreprises peuvent cacher des informations sensibles en utilisant ces moyens. D'un autre côté, un pirate pourrait l'utiliser pour cacher du code malveillant.
Une fois de plus, ce tutoriel est à des fins éducatives uniquement et doit être utilisé pour aider et défendre les informations contre les pirates informatiques black hat. Restez en sécurité dans la jungle en ligne et bon piratage 🤓.
Remerciements
Merci à Anuoluwapo Victor, Chinaza Nwukwa, Holumidey Mercy, Favour Ojo, Georgina Awani, et ma famille pour l'inspiration, le soutien et les connaissances utilisées pour mettre cela ensemble. Je vous apprécie tous.
Si vous voulez des articles similaires à celui-ci, contactez-moi sur Upwork ou lisez plus de mes articles ici.
Crédit de l'image de couverture : Abstract Data Cube § Crédit : Shubham Dhage.