Chiffrement et Stéganographie
De Wiki de l'internet libre.
Sommaire |
Introduction
Le chiffrement consiste à protéger par cryptographie ses fichiers ou une partition de son disque dur, ou sa communication numérique (courriel, messagerie instantanée, téléphonie).
Citation de Philip Zimmermann, l'inventeur de PGP : "If privacy is outlawed, only outlaws will have privacy". En français: "Si l'intimité est déclarée hors-la-loi, seuls les hors-la-loi auront une intimité".
Dans un environnement post-orwellien où de nombreux États jusqu'ici qualifiés de démocratiques cèdent à la tentation d'une surveillance des échanges privés, la cryptographie est appelée à prendre une importance croissante. La prise de conscience par le plus grand nombre de la disparition du secret des communications privées peut entraîner une généralisation du chiffrement, y compris parmi les braves gens et pour les contenus non confidentiels, qui aurait pour effet collatéral de transformer le web en un magma chiffré et insurveillable (tout le monde cachette ses enveloppes depuis toujours, désormais on chiffrera aussi son courriel).
Un exemple en Belgique : Vos emails conservés deux ans (pour la justice et la police).
Voyez aussi l'article Mots de passe statiques.
Il est important d'avoir des notions en cryptographie quantique.
Dissimulation d'url
La plupart des proxies anonymes brouillent les URL avant de les transmettre, les soustrayant ainsi à un filtrage simple.
Outils
Chiffrement de fichiers
- GPG permet de chiffrer des fichiers.
- Sous Ubuntu: un simple clic droit sur un fichier permet de le chiffrer, à condition qu'une paire de clefs publique/privée ait été créé. Il suffit d'entrer son mot de passe GPG. Tutoriel GPG pour Ubuntu en français, sur Ubuntu-fr.org.
- Sous Windows: WinPT permet de faire de même, toujours à condition qu'une paire de clefs publique/privée ait été créé. Tutoriel WinPT pour Windows: en allemand ici, à venir en français.
- Sous Ubuntu: un simple clic droit sur un fichier permet de le chiffrer, à condition qu'une paire de clefs publique/privée ait été créé. Il suffit d'entrer son mot de passe GPG. Tutoriel GPG pour Ubuntu en français, sur Ubuntu-fr.org.
Outils
- TrueCrypt
- FreeOTFE
- Chiffrer en utilisant une image comme clé
- GPG
- Faire des sauvegardes chiffrées
- Ncrypt
- AxCrypt
Intégrer du chiffrement dans vos applications
- Site de Keyczar (en anglais)
"Keyczar is an open source cryptographic toolkit designed to make it easier and safer for developers to use cryptography in their applications. Keyczar supports authentication and encryption with both symmetric and asymmetric keys."
Traduction maison: "Keyczar est un kit d'outils de chiffrement open source conçu dans le but de rendre plus facile et plus sûre l'utilisation du chiffrement par les développeurs dans leurs applications. Keycsar permet l'authentification et le chiffrement à l'aide de clefs symétriques ou asymétriques."
Chiffrement de disque / clé USB / système
Il est possible de chiffrer des disques durs entiers (même les partitions système) :
- Installer un système Debian chiffré (Guide d'autodéfense numérique)
- Comment chiffrer une partition système Linux (ici Ubuntu) (korben)
- Chiffrer un disque système Windows avec TrueCrypt (korben)
- System Encryption with LUKS (en)(Archlinux wiki)
Outils
- TrueCrypt
- FreeOTFE
- eCrypt pour Linux (en)
- encfs pour Linux (en) permet de chiffrer un dossier. Chaque fichier est chiffré mais l'arborescence et les droits restent inchangés.
Stéganographie
la stéganographie est l'art de la dissimulation : l'objet de la stéganographie est de faire passer inaperçu un message dans un autre objet.
Outils
- Saurez-vous découvrir le contenu caché (sans chiffrement) dans l'image ci-contre ?
À noter : à côté des outils de stéganographie, il existe aussi des outils automatisés (et coûteux) de détection de données stéganographiques. Nul doute que la Haute Autorité de Détection des Opérations Potentiellement Interdites en disposera.
Chiffrement du courrier électronique
« Peut-être pensez-vous que le courrier électronique que vous recevez est assez légitime pour que le chiffrement ne se justifie pas. Si vous êtes vraiment un citoyen au dessus de tout soupçon, pourquoi n’envoyez-vous pas toujours votre correspondance papier sur des cartes postales ? Pourquoi ne vous soumettez-vous pas aux tests de consommation de drogue sur simple demande ? Pourquoi exigez-vous un mandat de perquisition pour laisser la police fouiller votre maison ? Essayez-vous de cacher quelque chose ? Si vous cachez votre courrier dans des enveloppes, cela signifie-t-il que vous êtes un [élément] subversif ou un trafiquant de drogue, ou peut-être un paranoïaque aigu ? Est-ce que les citoyens honnêtes ont un quelconque besoin de chiffrer leurs e-mails ? » Philip Zimmermann Source
À titre d'exemple, la version chiffrée et signée du paragraphe ci-dessus :
-----BEGIN PGP MESSAGE----- Version: GnuPG v2.0.12 (MingW32) hQIOAxobf7OG6R7YEAgA6X1vMYbEzPN7T96+/nOtejPyexL6IZHAKBRotdQ7FHPu RzKZElpM/b+KayEU8XmqdxcnsTi3ksGEDwxDWeoqF7jvCmzWJb2FlB6iXhtMVxi4 VtDPU6n/kymB2ms1HeOwnFy7+94tFBOXDdjEA1yWTyBDGgYSmfILtzsawoH/WgWb FsQOUK+0B2EqIj3TFSspSlEQQGlB54LOKTtPKHfS9ign7CkPH/PF/TkyL/fkba8t nnqyXI2X46FRJA5NNDqbDoiwV7oKG7VI7KmHWFFtAiSRI1XAhyGS/PouFjIKCGS2 CAMtqA4376fVsHfU8RB51gXMf91tYC5W0fHi46Q2tAgA61u8As0AsKt/XMf6PFy2 OIojr4yEEqeuZNGZ3ul1FqhkyD2h12eB6v1rU/L3FZKZvSwEUoH6CyA7xj02nvK2 mLd9cw3o3PbupNAcC+UlXiT/8KvcVwaxnHm3uFj2pH341LC8GqejXtPmzZ2Y+SJf 0IEOZ6BJPunKybNnPzs+FQY7OCE8/k6ctxC2BL0sYlbijkm1OLWoAQ3Ayqiel7AB bbldiS79a5dAJW6VLaaXJE7cke2jMusvUJCiY82/UP+34OdpGC7Vdf5Anlotzxa0 kcBUaejtBpBBZaGKaxhA6JSEIq/pfg+1elGRc5Np4AqiQMkFAxZxHhfJAuHAVLVU jtLpASjKprYwVzkX9ymCDXL7OoBjhEz0ZfYCfaehnK3JSxTvR1oALtmVxzG2igGS Nz5nvVvmXgn4x2cpyTxXbkghZ0dMkTGclN1md8mFjcDTf5hlg6J9C7yuvIpOCAE/ bR4PnsGUTeFQyjSC44//Oi+FxyzCQzkMGNa2yHk/+hQPijZ7znjLHQEMZxrZDSx2 xjajnVU33UdhZuGig1Q7YZdU87qhjT+34PgcrG3WyeRS02XGvh86452dR5OBXCkO DEwZNgbPJ1VOJkj05z+aPmYrn+k2Qndu3xrfKa+G6AJtIHpNkCAp4+yFsvSVPHlZ ufNZWwHuRo7jv5o13Eyoo4E4EgCp/a/B8pt7R3/F2LZPbXMDxcCCVHP0SaI9Tt8o dUktgC2/8GXbCHFkacsfr7iazdjXcjmgZUC/WorkAzg6Jb1JSF6ySkMW4t8vBdOH wfS9BiyST3ziDSiSSt+87/vg8eyoqiIFkHp/Z39L8K0/7q0/kvlX+zssW/5Y2Li6 zxw9icra7a4nBYqbkSm9rPjZ+++q5G7O2oLQsQc6XM6yh8sCVD0wKWouqq6GPq1o VqfXd9OP5mMvGP+t8PrSIhE7T2eKYrt2cxtkd1lx8tkPNaJK6XSkAN7iCcKAiWIB XlBRrg8zvq4qhe1eZFJIMUEgNX2ipxIEB/BOwi9MqEDdSZF72hIx6dDB7i4QXBvB OWXHYvfZInsSLaF5Jh7wAPnh/qYg72i3liIO3wYI/hxOvBNalbP4nSIoTfjq8tDu 3xWR1G/PKllePpqUVF8ZRQhuIMwnIfmuQKyvKqc3YsrygAn+Sqv6D9Mgb0xlzn0c WwQuPA7Ey5TBw3lN5kFs =5Ris -----END PGP MESSAGE-----
- Logiciels:
- Comment chiffrer vos e-mailsNB : ce document, qui date de 2006, est une référence très bien faite et très utile, mais il mentionne un produit qui a cessé d'exister. PGP Freeware 8.0 a fait place à PGP Desktop Home, vendu au prix de 91 €
- GPG est une méthode de chiffrement et de signature de contenu basée sur une paire de clés publique/privée. Voir aussi les limitations de GPG.
- WinPT (Windows Privacy Tray) est une application fonctionnant sous Windows qui permet de signer et/ou chiffrer le contenu du bloc-note ou un fichier en utilisant GPG.
- TrustedBird, un fork de Thunderbird, créé par la gendarmerie nationale française, un peu dans la même logique que BitBox sorte de Firefox dans une machine virtuelle créé par le gouvernement allemand. Prudence dans les 2 cas, rien ne dit qu'il n'y a pas de discrète backdoor mise dedans par le gouvernement, même si le logiciel est libre, les binaires ne peuvent pas être constamment auditées ...
- Extensions:
- FireGPG est une extension pour Firefox qui vous permet de chiffrer ou signer les emails envoyés à partir d'un webmail. Il s'intègre parfaitement dans gmail (FireGPG a temporairement des problèmes de compatibilité avec Gmail ; une solution est annoncée pour fin août 2009). Tutoriel pour débuter avec. Autre tutoriel pour FireGPG.
- La dernière version fonctionnelle de cette extension, abandonnée par son auteur, est sauvegardée ici. Attention, il faut refuser les mises à jour : elles n'ont pas d'autre objet que de remplacer la version fonctionnelle par une version inopérante.
- Enigmail est un module pour Mozilla Thunderbird qui permet d'utiliser facilement GnuPG pour chiffrer et signer ses courriels. Tutoriel pour les utilisateurs de Thunderbird sous GNU/Linux (Ubuntu en l'occurence). Tutoriel pour les utilisateurs de Thunderbird sous Windows.
- Thunderbrige ThunderBridge est un complément, permettant de transmettre des courriels directement (par voie P2P) tout en contournant les serveurs de messagerie extérieurs. Il s'agit d'une extension pour le logiciel Thunderbird.
- Services web:
- Mobrien propose un service en ligne d'envoi de courriels chiffrés. Aucune installation nécessaire, mais ça ne convient que pour de courts messages sans pièce jointe. (NB : ce service ne semble plus exister ce 25 décembre 2009)
- LockBin est un service similaire (il vous faudra transmettre le mot de passe à votre correspondant par un autre canal).
- Tutoriels:
- Explication sur le fonctionnement du chiffrement et des signatures (cas de RSA) pour la messagerie.
Cryptographie pour les téléphones mobiles
S'il n'existe pas, pour le moment et à ma connaissance, de véritable cryptographie pour la téléphonie mobile, Philip Zimmermann dirige le projet Zfone, aujourd'hui centré sur la VOIP "classique" (sur PC). Une évolution pour la téléphonie mobile est envisagée.
D'autre part Symbian (filiale de Nokia) a annoncé dès 2007 avoir choisi la plate-forme PGP pour sécuriser les échanges par téléphonie mobile. Aucune suite concrète à ce jour.
Le projet sourceforge "mPGP", qui promettait beaucoup, est en hibernation depuis des années.
Chiffrement de SMS (ou "textos")
- CryptoSMS est une application opensource (GPL) permettant d'échanger des textos chiffrés entre des téléphones mobiles disposant de J2ME (Java mobile). Les deux correspondants doivent avoir installé l'application. Il s'agit d'une cryptographie originale utilisant des clefs dérivées de courbes elliptiques. L'application utilise un carnet d'adresses caché distinct du répertoire général du téléphone. Liste des téléphones supportés
Traduction française de l'introduction du manuel d'utilisation :
- CryptoSMS repose sur le concept de doubles clefs publiques/privées. Pour chiffrer un message à l'intention d'un destinataire, il vous faut disposer de sa clef publique. Sans cela, CryptoSMS ne vous permettra pas de lui envoyer un SMS. Ceci élimine le risque d'envoyer un SMS en clair en croyant l'avoir chiffré. Seule votre clef publique sera transmise en clair. Après importation de la clef publique d'un correspondant, tout SMS envoyé à son numéro sera automatiquement chiffré avant d'être émis.
- La réception d'un SMS chiffré est similaire à la réception d'un SMS ordinaire : vous ne devez plus saisir un mot ou une phrase de passe. Le message chiffré sera automatiquement déchiffré au moyen de votre clef privée. La saisie de votre mot ou phrase de passe n'est requise qu'au démarrage de l'application ou après expiration du délai d'inactivité.
- Cette version de CryptoSMS supporte la vérification d'empreinte pour authentifier les clefs publiques reçues.
- Crypt Your Life pour crypter ses sms sur Android.
- Atelier "Confidences par sms" de La Cantine (uniquement pour les développeurs, regarder les "slides" pour voir ce qui est programmé sur l'écran durant la séance). Cet atelier propose l’implémentation de communications chiffrées sur réseau GSM, en commençant par les SMS. L’équivalent pour les communications vocales serait un plus, dont l’utilisation de l’Openmoko Freerunner en boitier dédié pourrait en faciliter la réalisation.
PGP/GnuPG pour Symbian
Sauf erreur, l'unique portage pour Symbian de la cryptographie PGP était l'application (aujourd'hui en déshérence) de Zenobyte. Elle fonctionnait sur les anciens communicateurs Nokia 9200, 9300 et 9500. Aucune mise à jour pour les versions actuelles (S60) de Symbian.
Les possesseurs de ces anciens communicateurs pourront trouver ici la dernière version publiée. Même si elle est aujourd'hui obsolète, cette application a eu l'immense mérite d'apporter la preuve que la cryptographie PGP est compatible avec les modestes ressources d'un terminal mobile.
Expérience en cours : Je teste l'utilisation d'une ancienne version MS-DOS de PGP en ligne de commande, installée sur un Nokia E90 (Symbian s60v3) avec l'émulateur s60DosBox. C'est assez acrobatique maisConclusion de l'expérience : Les limitations de la DosBox (voir discussion) ne permettent pas d'écrire des batches interactifs satisfaisants. Pas de véritable tuto donc, mais en attendant la publication d'une vraie application de cryptographie pour Symbian, il est démontré que l'on peut faire tourner pgp 2.6.3i sur une machine Symbian S60. Il faut pour cela :
- Installer s60DosBox et ses binary dependencies
- Installer par simple décompression PGP 2.6.3i dans un sous-dossier ad hoc ("PGP" par exemple) du dossier de la DosBox
- Ajouter dans la section "autoexec.bat" du fichier "dosbox.conf" les lignes suivantes :
PATH = z:\;c:\pgp; SET PGPPATH=C:\PGP set tz=-9
- Adapter le fichier "config.txt" de PGP en ajoutant ou en décommentant quelques lignes :
MyName = "votre nom" Language = fr CharSet = cp850 ArmorLines = 24 Armor = on # Use -a flag for ASCII armor whenever applicable TextMode = on # Attempt to use -t option where applicable ClearSig = off # Use ASCII armor even for unencrypted signed messages Verbose = 2 # Verbose diagnostic messages ShowPass = on # Echo password when user types it Interactive = on # Interactively prompt the user when adding keys (-ka) EncryptToSelf = on # Encrypt all messages with your own public key TZFix = -9
- Confectionner quelques batches basiques tels que :
echo Chiffrer echo Argument 1 : "Que chiffrer" Argument 2 : "Pour qui chiffrer" echo Exemple : ch message.txt destinataire@email.com pgp -e %1 %2
echo Déchiffrer echo Argument unique : "Que déchiffrer" echo Exemple : de message.asc pgp -d %1
echo Signer avec chiffrement echo Arg1 = "Quoi" Arg2 = "PourQui" Arg3 = "ParQui" echo Exemple : si message destinataire auteur pgp -se %1 %2 -u %3
- ...etc. D'autres batches peuvent être construits sur ces modèles en se référant à la documentation pgpdoc1.txt et pgpdoc2.txt (fournie avec PGP 2.6.3i).
- Entretenir sur le PC un miroir du dossier PGP de la machine Symbian et y gérer ses trousseaux de clefs.
- N'envisager que le chiffrement et le déchiffrement de fichiers de taille modeste (disons 100 Ko)
- Renoncer à signer des documents, la DosBox ne sachant pas gérer la date et l'heure.
- Les clefs de type "RSA Legacy" sont acceptées, mais pas les clefs plus récentes de type "DH/DSS" ou "DSA" (par exemple celles issues de PGP version 8.xx et ultérieures ou de GnuPG 2.xx). Si vous avez une de ces clefs, il faudra en créer une du type requis au moyen de PGP 2.6.3i et la certifier par votre clef principale. C'est tant mieux comme ça : en cas de compromission de la clef réservée à votre confidentialité déportée sur un terminal mobile, votre clef principale ne sera pas affectée.
- Bien que cette astuce constitue un progrès appréciable pour l’univers Symbian, qui manque dramatiquement de solutions efficaces en matière de cryptographie et d’authentification, elle n'est qu'une solution d’attente jusqu’à l’apparition d’outils modernes et complets : ce que veulent les utilisateurs, c’est une solution complètement interopérable avec les normes actuelles, c’est-à-dire les algorithmes à haute robustesse (AES, DSA etc.) auxquels RSA a laissé la place, et complètement intégrée au système d’exploitation Symbian, avec possibilité d’appel direct à partir des applications de courriel, de messagerie instantanée, de SMS et de bureautique.
Lecture très utile (en anglais facile)
PuTTY for Symbian OS
Article déplacé => Authentification SSH par clef RSA
Chiffrement de contenu
SSL
Voir HTTPS et SSL/TLS et Auto-signer son certificat SSL. Attention SSL n'est pas parfait bien que ce soit une solution sécurisée.
JCryption - Chiffrer des formulaires sans SSL
Pour chiffrer l'envoi de formulaires sur un site web, il n'existe jusqu'à présent que les certificats SSL.
Mais une librairie javascript baptisée JCryption permet de chiffrer un formulaire en RSA2048 bits sans utiliser de SSL. Il n'y a pas la couche authentification, mais la couche chiffrement est déjà un bon début. Le script est basé sur JQuery et d'autres librairies RSA. Jscryption
Chiffrer un serveur et un site internet
Outils
- Chiffrer une page web en AES 256 (Obsolète)

