SecretPixel - Un excellent petit outil de stéganographie pour planquer vos données
Vous en avez marre des logiciels de stéganographie qui ne tiennent pas vraiment leurs promesses en matière de sécurité et de furtivité ?
Ne cherchez plus, voici SecretPixel, un excellent outil pour planquer vos données sensibles dans des images afin de pouvoir ensuite les transmettre en toute discrétion.
Alors qu’est-ce qui fait de SecretPixel un outil si balèze comparé aux autres ? Déjà, il combine un chiffrement AES-256 de ouf pour vos données, avec une clé de session elle-même chiffrée avec RSA. Rien que ça, ça veut dire que seul le détenteur de la clé privée RSA pourra déchiffrer vos infos cachées. Niveau sécurité, on est donc au top.
Mais ce n’est pas tout ! Avant d’être chiffrées, vos données sont compressées avec zlib, ce qui réduit leur taille et minimise les schémas détectables par les outils de stéganalyse (oui c’est comme ça qu’on dit). Et pour vraiment brouiller les pistes, SecretPixel utilise un générateur de nombres pseudo-aléatoires pour déterminer les pixels qui vont accueillir vos bits cachés. Vos données sont ainsi éparpillées dans toute l’image, rendant leur détection quasi impossible, même avec des outils comme zsteg.
Le processus de chiffrement garantit que les données cachées restent confidentielles, tandis que la compression et la distribution aléatoire des données rendent extrêmement difficile pour les outils de stéganalyse de détecter la présence d’informations intégrées. L’utilisation d’un générateur de nombres aléatoires avec amorçage ajoute une couche de sécurité supplémentaire, car le schéma des données intégrées ne peut pas être prédit sans connaître l’amorce.
En prime, SecretPixel stocke aussi le nom original de votre fichier caché dans l’image. Comme ça, quand vous l’extrairez, il aura toujours son petit nom. Pratique non ?
Et vu qu’il est écrit en Python, vous pouvez l’utiliser sur n’importe quel système, tant que vous avez Python d’installé.
SecretPixel est conçu pour fonctionner avec une variété de formats de fichiers image : PNG, BMP, TGA et TIFF. Il est important de noter que le format d’image hôte choisi peut avoir un impact sur l’efficacité du processus de stéganographie. Les formats sans perte comme PNG et TIFF sont préférables pour garantir qu’aucune donnée n’est perdue pendant le processus d’intégration.
Maintenant, pour mettre la main sur ce petit bijou, rien de plus simple. Clonez le dépôt GitHub ou téléchargez le code source. Assurez-vous d’avoir Python 3 et les packages requis, et c’est parti !
git clone https://github.com/x011/SecretPixel.git
cd SecretPixel
pip install -r requirements.txt
Avant de jouer à cache-cache avec vos données, vous allez avoir besoin d’une paire de clés RSA - une clé privée et une clé publique. Pas de panique, les dev ont pensé à tout avec un script Python pour vous faciliter la tâche. Lancez donc generate_keys.py
qui va vous générer une paire de clés RSA de 4096 bits en un clin d’oeil.
python generate_keys.py
Choisissez une phrase de passe bien corsée pour votre clé privée. Elle sera chiffrée avec AES-256 pour une protection maximale. Une fois le script terminé, vous aurez deux fichiers tout beaux tout chauds : myprivatekey.pem
(votre clé privée chiffrée) et mypublickey.pem
(votre clé publique, à partager sans modération).
Maintenant, passons aux choses sérieuses. Pour planquer un fichier dans une image, lancez cette commande :
python secret_pixel.py hide host.png secret.txt mypublickey.pem output.png
Avant d’intégrer des données, l’image hôte ne doit pas contenir de contenu stéganographique antérieur ou de métadonnées sensibles qui pourraient entrer en conflit avec les nouvelles données ou révéler leur présence. En sélectionnant et en préparant soigneusement l’image hôte, vous améliorerez considérablement la sécurité et l’indétectabilité des données intégrées dans l’image.
De plus, l’image hôte servant de support pour les données cachées, afin de maintenir l’intégrité du processus de stéganographie et éviter la détection, il est crucial que l’image hôte soit suffisamment grande pour accueillir le fichier caché. En règle générale, l’image hôte doit avoir une capacité (en octets) au moins trois fois supérieure à la taille du fichier à cacher pour garantir que les modifications sont subtiles et largement dispersées.
Et hop, votre secret.txt
est incrusté incognito dans host.png
en utilisant votre clé publique mypublickey.pem
. L’image résultante output.png
a l’air innocente, mais elle cache bien son jeu !
Pour exfiltrer votre fichier caché d’une image, c’est tout aussi simple :
python secret_pixel.py extract carrier.png myprivatekey.pem [extracted.txt]
Votre fichier caché ressort de carrier.png
grâce à votre clé privée myprivate.pem. Si vous ne fournissez pas de nom de fichier pour le .txt se sortie (extracted.txt), l’outil utilisera le nom du fichier qu’il aura conservé.
Bonne carrière d’agent secret à tous !
Merci à Lorenper
Entièrement dédiée à la cybersécurité, l'école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l'école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).