Des outils tels que la stéganographie, généralement utilisés pour échapper à la surveillance et aux régimes répressifs, font leur réapparition aujourd’hui.
Contrairement au chiffrement, où il est évident qu’un message est caché, la stéganographie dissimule des données à la vue de tous, à l’intérieur d’un fichier tel qu’une image. En ce qui concerne les images, pour quiconque ne sait pas qu’elles contiennent des données cachées, elles ont l’air de n’être que des images normales et innocentes.
La stéganographie est utile dans les situations où l’envoi de messages chiffrés pourrait éveiller les soupçons, par exemple dans les pays où la liberté d’expression est réprimée. Elle est également fréquemment utilisée comme filigrane numérique pour détecter le vol d’images ou de fichiers audio. Et d’un point de vue moins pratique, c’est tout simplement cool.
La stéganographie
DissidentX
https://github.com/bramcohen/DissidentX
DissidentX encode des messages dans des fichiers sur le web.
Bram Cohen, plus connu pour nous avoir apporté le protocole BitTorrent, très décrié car l’opinion publique l’associe le plus souvent au piratage, a aussi développé DissidentX un outil stéganographique.
La stéganographie est l’art et la science de coder des messages cachés de telle sorte que personne, hormis l’expéditeur et le destinataire, ne soupçonne l’existence du message. C’est une forme de sécurité par l’obscurité.
La stéganographie est utilisé à la fois pour le bien, comme DissidentX qui vise à fournir aux dissidents politiques un moyen de communiquer secrètement, et pour le mal, comme l’obscurcissement dans les échantillons de logiciels malveillants, les chevaux de Troie venant à l’esprit.
Un exemple simplifié serait une image modifiée par stéganographie, qui semble parfaitement normale, mais qui, après un examen plus approfondi, présente quelques pixels aléatoires d’une couleur différente. Pour un œil non averti, ces pixels pourraient être statiques, peut-être un peu de corruption de fichier, alors qu’il s’agit en fait d’un message caché.
Les techniques stéganographiques traditionnelles ne sont généralement pas très furtives et peuvent être détectées. L’outil de Bram Cohen porte la stéganographie à un tout autre niveau et espère rendre le fait qu’il y ait un message secret encore plus difficile à détecter.
Il utilise une nouvelle forme de stéganographie qui exploite les hachages cryptographiques pour rendre la détection plus difficile. Parmi les nombreuses nouvelles techniques utilisées, l’absence de texte dans un document de base peut être utilisée dans le cadre du processus stéganographique. Ainsi, la collaboration à la création d’un document d’apparence innocente peut devenir un canal clandestin !
TrueCrypt (s’applique également à VeraCrypt)
Dissimuler des conteneurs dans des fichiers vidéo MP4.
Il existe plusieurs techniques différentes pour dissimuler des données à l’intérieur de fichiers normaux. L’une des plus utilisées et peut-être la plus simple à comprendre est la technique du bit le moins significatif, communément appelée LSB.
Cette technique consiste à modifier les derniers bits d’un octet pour coder un message, ce qui est particulièrement utile dans le cas d’une image, où les valeurs rouge, verte et bleue de chaque pixel sont représentées par huit bits (un octet) allant de 0 à 255 en décimal ou de 00000000 à 11111111 en binaire.
En changeant les deux derniers bits d’un pixel complètement rouge de 11111111 à 11111101, la valeur rouge passe seulement de 255 à 253, ce qui, à l’œil nu, crée un changement de couleur presque imperceptible, mais nous permet tout de même d’encoder des données dans l’image.
La technique du bit le moins significatif fonctionne bien pour les fichiers multimédias, où une légère modification de la valeur des octets n’entraîne que des changements imperceptibles, mais moins bien pour des éléments tels que le texte ASCII, où un seul bit mal placé modifiera complètement le caractère. Sans parler du fait que les données cachées à l’aide de la stéganographie LSB sont également faciles à détecter si quelqu’un les cherche.
C’est pourquoi il existe une pléthore d’autres techniques de stéganographie, chacune ayant ses propres avantages et inconvénients. Une autre technique beaucoup moins détectable est celle des coefficients de la transformée en cosinus discrète, qui modifie légèrement les poids (coefficients) des ondes cosinus utilisées pour reconstruire une image JPEG.
En gardant à l’esprit que certaines techniques de stéganographie numérique sont meilleures que d’autres, il est généralement préférable d’éviter la technique LSB et d’opter pour quelque chose d’un peu plus sophistiqué. En fait, la conception de votre propre algorithme de stéganographie n’est pas très difficile si vous avez déjà de bonnes bases en codage et en mathématiques. Mais pour se faire une idée du fonctionnement de la stéganographie, la technique LSB fera parfaitement l’affaire.
Deux autres éléments à prendre en compte sont le chiffrement et la compression. Le fait de chiffrer les données avant de les incorporer ajoute une couche supplémentaire de sécurité, tandis que la compression de vos données vous permettra évidemment d’en faire tenir davantage dans votre fichier de couverture.
Personnellement j’utiliserais tcsteg https://keyj.emphy.de/real-steganography-with-truecrypt/. En gros, il suffit de rendre le conteneur true crypt très petit et de stocker un fichier texte avec le nom de la personne à qui vous le donnez. Ensuite, si vous voyez une copie pirate, vous pouvez ouvrir le fichier dans truecrypt/veracrypt et voir de qui il s’agit.
Vous connaissez probablement TrueCrypt, l’outil sans doute le plus populaire pour chiffrer les systèmes de fichiers. Comme alternative au chiffrement complet du système de fichiers ou même du disque, TrueCrypt peut également travailler avec des systèmes de fichiers à l’intérieur de fichiers conteneurs chiffrés. Il s’agit de fichiers qui semblent contenir des données purement aléatoires, mais qui révèlent leur véritable contenu lorsqu’on leur fournit la bonne clé de décryptage : Un système de fichiers FAT ou NTFS contenant vos données secrètes.
En plus de cette fonctionnalité de base, TrueCrypt offre également une forme simple de stéganographie. TrueCrypt peut protéger le volume caché lors du montage du volume externe, mais pour que cela fonctionne, vous devez fournir la clé du volume caché.
Le deuxième problème lié à l’approche de TrueCrypt en matière de stéganographie est que les fichiers conteneurs TrueCrypt ne sont que de gros fichiers contenant des données aléatoires et, en tant que tels, ils sont facilement détectables. Vous pouvez les déguiser en leur donnant des noms de fichiers peu suspects – pagefile.sys ou hiberfil.sys dans le répertoire racine d’un lecteur sont de bons candidats sur les systèmes Windows, par exemple. Mais même ces noms de fichiers sont très suspects lorsqu’ils se trouvent sur des supports amovibles.
Améliorez votre anonymat en ligne
Pensez à l'utilisation d'un VPN : une application VPN va changer votre adresse IP pour simuler celle de n'importe quel pays. Vous pourrez accéder à n'importe quel contenu, même celui qui est géo-restreint. Ce logiciel chiffre aussi votre trafic internet pour éliminer les malwares et les risques de piratage. Pensez à utiliser un gestionnaire de mots de passeUtilisons donc la solution suivante : les fichiers vidéo. Ceux-ci ont également tendance à être très volumineux et offrent un bon déguisement pour les données cachées, mais malheureusement, ils sont très faciles à détecter : Il suffit d’essayer de lire un tel fichier pseudo-vidéo et, quel que soit le lecteur utilisé, il vous indiquera que quelque chose ne va pas.
Ainsi, ce que nous voulons vraiment appeler une stéganographie appropriée est un fichier utilisable qui peut être ouvert avec un logiciel standard afin de ne pas éveiller les soupçons, mais qui, lorsqu’il est ouvert dans TrueCrypt avec la bonne clé, devrait révéler la véritable charge utile – un système de fichiers plein de secrets. Les fichiers vidéo sont le choix naturel pour ce type de piratage : Les vidéos de plusieurs gigaoctets sont tout à fait courantes de nos jours et les encodeurs sont si performants que même de grandes différences de débit ne signifient pas nécessairement de grandes différences de qualité. En d’autres termes : Un clip vidéo HD de quinze minutes de 1 gigaoctet bien encodé peut être tout aussi bon qu’une version de 4 gigaoctets pas tout à fait aussi bien encodée. Utilisons donc à bon escient les 3 gigaoctets que nous pouvons économiser et stockons-y des données secrètes.
Malheureusement, il n’est pas possible de le faire en utilisant directement TrueCrypt. Mais avec un peu d’adaptation du format de fichier, cela s’avère tout de même possible.
En fait, la construction d’un tel fichier stéganographique « hybride » n’est qu’une application d’une discipline courante de l’informatique ésotérique : Il s’agit de générer un fichier valable dans plusieurs formats. Par exemple, vous pouvez créer des fichiers PDF qui sont également des fichiers ZIP. Dans le cas présent, nous voulons des fichiers conteneurs TrueCrypt qui soient également utilisables dans un autre format courant. J’ai opté ici pour le format QuickTime ou MP4, parce qu’il est courant, utile et facile à comprendre.
Nous pouvons créer un fichier hybride avec un volume TrueCrypt caché à partir d’un fichier conteneur TrueCrypt existant en ajoutant des données et en réécrivant les premiers 64k du fichier à volonté. Nous devons maintenant reconstruire notre fichier de déguisement pour répondre à ces exigences. En particulier, nous avons besoin d’un moyen de créer un espace vide entre la marque de 64k et la fin du volume TrueCrypt qui sera ignoré par les applications lisant le fichier dans le format qu’il prétend être.
⇒ Le format QuickTime
Le format QuickTime et le format de fichier MPEG-4 (ISO 14496-14), qui est basé sur lui, se compose de ce que l’on appelle des « atomes ». Il s’agit de morceaux de données composés d’une valeur de longueur de 4 octets, d’un identificateur de type ASCII de 4 octets et d’une quantité arbitraire de données utiles qui peuvent à nouveau être composées de sous-atomes.
⇒ les fichiers MOV et MP4
En pratique, j’ai constaté que tous les fichiers MOV et MP4 suivent l’une des deux structures suivantes :
- La plus courante est simplement ftyp-moov-mdia, parfois avec un free à la fin contenant des informations sur la version de l’outil utilisé pour générer le fichier.
- L’autre structure courante est ftyp-mdat-moov (avec souvent un petit espace libre de 8 octets avant mdat pour les décalages de 64 bits, au cas où le fichier dépasserait 4 GiB par la suite). Il s’agit d’une disposition très utile pour nos besoins.
Nous pouvons facilement la falsifier et maintenir l’illusion d’un fichier QuickTime parfaitement légitime. Nous plaçons simplement le vrai mdat juste après la fin du volume TrueCrypt, suivi de l’en-tête moov.
Ensuite, nous générons un nouveau mdat qui couvre à la fois le volume TrueCrypt et les données média réelles. Étant donné que nous modifions les décalages de fichiers des échantillons de médias au cours de ce processus, nous devons ajuster les tables de décalage de morceaux, mais c’est gérable. Pour une crédibilité maximale, nous copions les premiers kilo-octets du mdat original au début du fichier.
De cette façon, le fichier semble inoffensif même lorsqu’il est visualisé dans un éditeur hexadécimal – par exemple, si le fichier a été encodé avec x264, le message SEI de l’encodeur est toujours visible.
Il n’y a que 4 façons de détecter la présence du volume caché, qui ont toutes peu de chances d’être vérifiées, même par une personne bien informée. Le moyen le plus simple de détecter la manipulation est le contrôle du débit binaire : Si un lecteur vous indique que le flux a un débit de 1 Mbps, mais qu’en analysant la taille du fichier, vous pouvez calculer qu’il doit avoir un débit d’au moins 5 Mbps, vous pouvez dire que quelque chose ne va pas. Mais qui étudie les débits binaires de manière aussi détaillée ? Les seuls autres moyens seraient :
- (1) une analyse sophistiquée paquet par paquet des données mdat qui permettrait de découvrir qu’à partir de l’offset 65 536, il n’y a pas seulement des données compressées d’apparence aléatoire, mais aussi des déchets d’apparence aléatoire ;
- (2) la vérification d’une répétition des premiers 64k de mdat quelque part dans le fichier
- et (3) la constatation qu’il y a beaucoup d’espace inutilisé dans le mdat qui n’est référencé par aucune table d’offset de chunk.
POUR ALLER PLUS LOIN ⇒ Tunnels de réseau : Qu’est-ce que c’est et comment les utiliser
PixelKnot
https://github.com/guardianproject/PixelKnot
Stéganographie d’images pour Android.
Pixelknot est une application de stéganographie basée sur l’image. Donnez à l’application une image et un mot de passe et elle cachera un message secret en utilisant ce qu’on appelle l’algorithme.
Avec PixelKnot, seuls vos amis ayant un mot de passe secret peuvent déverrouiller votre message spécial. Les autres ne voient qu’une jolie image. C’est un moyen amusant et facile de partager des messages cachés sans que personne ne le sache. Prenez ces pixels, tordez-les dans un nœud et voyez par vous-même !
PixelKnot est un outil de stéganographie très apprécié qui vous permet de cacher des messages chiffrés dans des images. Lorsqu’une personne fait l’objet d’une surveillance électronique, si elle présente un schéma d’activité comprenant des publications sur les réseaux sociaux et un protocole préalablement établi, le téléchargement d’un selfie avec un message encodé par stéganographie est un moyen simple, relativement sûr et rapide de communiquer.
Cette méthode a été utilisée dans le monde entier, y compris pour des reportages journalistiques réalisés dans des régions où les autorités exercent une forte surveillance. Pixelknot, l’outil de stéganographie Android, a été développé dans le cadre du projet Guardian, qui a pour mission de soutenir les activistes, les journalistes et les organisations humanitaires.