[Pratique] Bit de poids faible (LSB)
|
01-11-2011, 15h48
(Modification du message : 06-03-2017, 14h26 par ark.)
Message : #1
|
|
itcef
Membre actif Messages : 77 Sujets : 4 Points: 2 Inscription : Oct 2011 |
[Pratique] Bit de poids faible (LSB)
Bonjour à tous et bienvenue dans mon second tutoriel qui complète le précédent sur les bits de poids faible !
On a vu précédemment qu'on pouvais extraire les bits de poids faible d'une image, mais on peut même le faire pour un fichier audio, donc comme je vous ai expliqué comment ça fonctionnais pour les images on va continuer avec cette base Mais avant de commencer, vous avez du vous poser une question du genre Comment peut on savoir s'il y a des informations cachées dans le LSB? Peut-on faire une analyse? Hé bien évidemment c'est possible ! Je vais vous décrire d'abord une méthode qui consiste à savoir si oui ou non qu'une information soit cachée dans ces bits Et je vous donnerais un petit script en PHP qui pourra extraire les bits de poids faible d'une image BMP, avec une méthode simple Sans oublier de faire une démonstration d'un script écrit en python capable de faire une analyse pour savoir si des informations sont cachées ou non dans les bits de poids faible d'une image On doit savoir que toutes les méthodes de stéganographie à base de LSB altèrent le contenu de l'image, et que même si ce n'est pas visible à l'œil nu, il existe des techniques bien efficaces pour la détection Le truc c'est que même si les bits de poids faibles sont porteurs de très peu d'informations, ça ne veut pas dire qu'il sont porteurs d'aucune information. Alors pour commencer on doit séparer les bits de poids faible et les bits de poids fort, pour cela on va vider chaque bit des informations inutiles (bit de poids fort MSB), et seules les bits susceptibles de cacher des informations seront gardés. Code : compos = compos & 1; // On supprime les informations inutiles Ex: Pour cela j'utilise le script python dont je vous ai parlé en haut: Code : itcef# ./lsb.py -h Faisons un test sur cette image: Code : itcef# ./lsb.py toxico.png -o toxico_lsb.png La structure de l'image n'a pas changé, il y va de même pour les bits de poids faible Essayons de cacher des données dans l'image d'origine: Code : itcef# ./lsb.py -f hidden.txt toxico.png -o toxico_hidden.png On vois très bien qu'en haut de l'image que quelque chose a changé, mais pas en bas de l'image, c'est parce que ça suffisait pour cacher ce qu'il y avait dans le fichier texte, et donc le bas n'a pas été touché. C'est vraiment une des méthodes les plus intéressantes dans la stegano LSB. Astuce: Vous pouvez tout de même voir si une image contient des données cachées dans le LSB en baissant la correction gamma, avec Photoshop par exemple, CTRL + L et on bouge le point gris vert la droite Exemple d'extraction Maintenant je vais vous montrer un petit script PHP pouvant extraire le LSB d'une image BMP: Code : <?php Cependant si on arrive a altérer une image BMP en mettant des données cachées, on pourra les extraire avec ce script, mais c'est pas toujours gagné, il y a une infinité de méthodes pour cacher des informations dans le LSB et celle qu'utilise ce dernier est une méthode assez simple. Alors voilà pour vous montrer, j'ai extrait les données LSB d'une image et on obtient ceci: http://pastebin.com/7n9J9VEf Je le mets sur pastebin vu que ça prends toute la largeur de la page, ce qui peut vous gêner. Essayez de convertir du Binaire -> ASCII Bien évidemment c'est moi qui a caché ce petit texte dans une image, vous ne trouverez pas le même texte dans toutes les images hein :p J'espère que ce tutoriel vous a plu, et si vous avez d'autres idées ou suggestions n’hésitez pas a me les remettre ------------------------- Tutoriel écrit par Itcef. Libre à vous d'en faire ce que vous voulez
Mieux vaut être faux que vrai.
|
|
01-11-2011, 19h39
Message : #2
|
|
CyberSee
Admin fondateur de N-PN Messages : 1,721 Sujets : 287 Points: 158 Inscription : Jan 2012 |
[Pratique] Bit de poids faible (LSB)
Très bon tuto bravo :-)
|
|
11-11-2011, 17h10
Message : #3
|
|
Luxerails
Bon membre Messages : 267 Sujets : 6 Points: 67 Inscription : Aug 2011 |
[Pratique] Bit de poids faible (LSB)
A noter que le code php à la fin pour extraire les bits de poids faible ne marche que dans un BMP. Pourquoi ? Le bmp code ses couleurs en clair dans le raw byte, contrairement au PNG par exemple. Il est tout à fait possible de cacher des bits de poids faible dans du PNG de cette façon, mais il va falloir passer par une lib d'image (sous PHP gd par exemple.).
|
|
11-11-2011, 19h12
Message : #4
|
|
itcef
Membre actif Messages : 77 Sujets : 4 Points: 2 Inscription : Oct 2011 |
[Pratique] Bit de poids faible (LSB)
Effectivement, merci de la précision
Mieux vaut être faux que vrai.
|
|
13-11-2011, 11h43
Message : #5
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,613 Sujets : 72 Points: 466 Inscription : Jan 2012 |
[Pratique] Bit de poids faible (LSB)
Bon tuto, continue comme ça, dude
|
|
30-11-2011, 00h47
Message : #6
|
|
oxoo
Newbie Messages : 11 Sujets : 1 Points: 0 Inscription : Nov 2011 |
[Pratique] Bit de poids faible (LSB)
En fin de compte, mieux vaut faire ton XOR sur les octets, vu que si y'a une analyse sur le fichier, au moins le mec trouvera pas l'original sur images google . Après, j'suis sûr que certains formats de fichiers utilisent des paddings qui pourraient se révéler bien utiles en fin de compte...
|
|
30-11-2011, 08h35
Message : #7
|
|
itcef
Membre actif Messages : 77 Sujets : 4 Points: 2 Inscription : Oct 2011 |
[Pratique] Bit de poids faible (LSB)
Le format BMP par exemple.
Mieux vaut être faux que vrai.
|
|
30-11-2011, 11h45
Message : #8
|
|
Luxerails
Bon membre Messages : 267 Sujets : 6 Points: 67 Inscription : Aug 2011 |
[Pratique] Bit de poids faible (LSB)
Oui, d'ailleurs on utilise souvent le padding bmp pour cacher des informations aussi (voir même des octets réservés inutilisés dans un pixel, en sachant qu'un pixel = 4 octets dont un qui devrait toujours être nul), mais bon là l'information cachée est un peu en clair dans le fichier, c'est pour ça que je préfère le lsb personnellement :p (par exemple, si on veut cacher un png dans du padding bmp, si le padding bmp restant d'une ligne est de quatre caractères, on peut voir directement par exemple en clair le début d'un PNG, soit ‰PNG)
|
|
01-12-2011, 19h23
Message : #9
|
|
oxoo
Newbie Messages : 11 Sujets : 1 Points: 0 Inscription : Nov 2011 |
[Pratique] Bit de poids faible (LSB)
Oui, mais pour moi, l'intérêt de la ségano n'est pas de cacher de l'info en clair, mais de l'info chiffrée . Après, modifier un padding c'est assez grillé (lsb aussi apparemment). Le mieux c'est sûrement de modifier un binaire, c'est moins "flag", je pense.
|
|
01-12-2011, 20h10
Message : #10
|
|
Luxerails
Bon membre Messages : 267 Sujets : 6 Points: 67 Inscription : Aug 2011 |
[Pratique] Bit de poids faible (LSB)
Oui, le mieux c'est de combiner la crypto et la stégano
|
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
[Théorie] Bit de poids faible (LSB) | itcef | 9 | 3,871 |
07-12-2016, 00h02 Dernier message: notfound |
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)