Signature numérique et Chifrement
Pour ce dernier chapitre, on attaque des fonctionnalités un peu plus complexes.
On ne va pas faire ici un cours de crypto

. Si vous souhaitez en savoir plus, reportez vous à la littérature ou encore sur le site
http://laurent.flaum.free.fr/pgpintrofr.htm plus complet sur la cryptographie.
La méthode utilisé ici est dite asynchrone, cela signifie qu’il existe 2 clés, une pour chiffrer ou signer et une pour déchiffrer/vérifier :
La clé publique Pu accessible par tous.
La clé privé Pr que vous êtes le seul à posséder.
Et le principe de base est qu’on ne peut pas connaître la clé privée à partir de la clé publique !
Lors d’une opération de chiffrement d’un mail, l’expéditeur utilise la clé publique du destinataire. Ce dernier déchiffrera avec sa clé privée qui est la seule apte à retrouver le message. Le chiffrement permet de garder la confidentialité des informations transmises.
Mathématiquement (et succinctement) on a donc :
Soit M le message :
Pu(M) = M’
Pr(M&rsquo
= M
Lors d’une opération de signature numérique, l’expéditeur va 'signer' le message avec sa clé privé, le destinataire pourra alors vérifier que la signature est valide grâce à la clé publique. La signature numérique permet juste de garantir que le mail que vous recevez est authentique, que donc la personne qui l’a envoyé est bien celle qui possède l’adresse, et permet de vérifier que personne n’a intercepté le message.
Donc pour envoyer un message chiffré ou recevoir des message signés, vous n’avez rien à faire, puisque c’est le certificat de votre correspondant que vous utilisez.
Lors de la réception d’un message signé, vous allez voir une page écrite avec des caractères bizarres : ne vous affolez pas, appuyez sur le bouton type formulaire, et cela devrait marcher. Si vous cochez l’option, cette page ne reviendra pas.
Passons maintenant à l’utilisation de ce système avec Foxmail :
La première opération pour pouvoir signer des messages consiste à créer ces fameuses clés.
Vous trouverez un petit zip qui contient tout ce dont vous avez besoin (encore merci TheGuit !)
Apres décompression vous devez avoir ces fichiers :

Le fichier 1.bat contient ceci :
REM 'root-ca.bat'
REM Usage: creer la CA
REM Creer la cle privee de CA. A ne faire qu’une fois. Personnaliser la taille de cle (1024, 2048)
openssl genrsa -des3 -out ca.key -rand seed.rnd 2048
REM Autosignature de la cle. Personnaliser la duree du certificat de CA (3650, 7300), en jours.
echo 'Autosignature de la cle de CA'
openssl req -new -x509 -days 7300 -config root-ca.cnf -key ca.key -out ca.crt
REM 'user-cert.bat'
REM Usage: creer le formulaire de demande de certificat utilisateur.
REM Creation de la cle. A faire pour chaque certificat. Personnaliser la taille de cle (1024, 2048).
openssl genrsa -out user.key -rand seed.rnd 2048
REM Remplir les donnes du certificat, nom d’utilisateur et adresse e-mail
echo 'Remplir les donnees du certificat'
openssl req -new -config user-cert.cnf -key user.key -out user.csr
echo ' '
echo 'Vous pouvez maintenant lancer ca-sign.bat pour faire signer votre certificat'
echo ' '
REM 'ca-sign.bat'
REM Usage: signer un certificat d’utilisateur avec la cle de CA
REM Utiliser le mot de passe entre lors de la creation de CA
echo 'signature par la CA: user.csr -> user.crt:'
openssl ca -config ca-sign.cnf -out user.crt -batch -infiles user.csr
echo 'verification par la CA user.crt <-> CA cert'
openssl verify -CAfile ca.crt user.crt
Vous n’avez normalement rien à modifier ici. Les possibilités de modifications sont les 3 valeurs en gras, les deux 2048 représentent le nombre de bits sur lesquels sont codés les clés. Le 7600 représente le nombre de jours avant expiration (soit ici 20 ans !!)
le fichier 2.bat contient :
REM 'p12.bat'
REM Usage: rassemble les elements du certificat utilisateur et les met au format PKCS#12
REM Remplacer Username et CA NAME par les noms que vous avez entres lors de la creation des certificats user et CA
REM Laisser les guillemets autour des noms
openssl pkcs12 -export -in user.crt -inkey user.key -certfile ca.crt -name 'Username' -caname 'CA NAME' -out user.p12
echo ' '
echo 'Votre certificat utilisateur a ete cree au format PCKS#12'
echo 'Vous pouvez l’importer dans votre navigateur'
echo ' '
Ici il va falloir modifier les deux valeurs en gras.
La première correspond au nom d’utilisateur que vous voulez utiliser avec votre certificat et le CA NAME représente le nom de votre compagnie.
Remplacez ces deux valeurs par vos données propres (si vous ne savez pas quoi mettre en CA NAME prenez par exemple VTR)
Il reste une dernière étape avant de lancer la création : il faut mettre une chaîne aléatoire dans le fichier seed.rnd.
Pour cette étape je vous conseille de vous équiper d’un éditeur texte puissant tel que PSPad plutôt que le simple Bloc Note.
On commence donc par chercher un petit fichier compressé au hasard et assez important en taille:
Ici il s’agit d’un fichier contenant des sauvegarde pour un jeu le total fait 19Mo et est compressé avec WinRAR.
On l’ouvre donc avec PSPad:
On choisit une portion au hasard d’un assez grand nombre de caractères que l’on copie puis que l’on colle dans le fichier seed.rnd. (Évitez de choisir une portion trop au début ou à la fin du fichier)
Une fois ceci effectué, on peut lancer le premier batch (1.bat).
Viennent alors les questions :
Vous devez rentrer une phrase que vous avez choisit de plusieurs mots et qui contient, si possible, des majuscules et des nombres
Enter pass phrase for ca.key:
Verifying - Enter pass phrase for ca.key:
Country Name (2 letter code) [FR>: L’abréviation de votre pays
State or Province Name (full name) [FRANCE>: Votre pays en entier
Locality Name (eg, city) [PARIS>: Votre ville
Organization Name (eg, company) [Ma CA>: Nom de votre société.
Les deux champ suivant mettez ceci:
Organizational Unit Name (eg, section) [Service de Certification>: Service de Certification
Common Name (eg, Mon Autorité de Certification) [>: SDC
Pour les champs suivants, remplissez avec vos informations :
Email Address [>:L’adresse E-mail pour laquelle vous créez le certificat
Common Name (eg, Jean MARTIN) [>:Le nom qui apparaîtra dans le certificat
Vous devrez alors arriver à l’étape où il faut rentrer un mot de passe (il ne s’agit pas de la phrase demandée plus haut). Ce mot de passe vous sera peut être nécessaire pour déchiffrer des messages si vos paramètres de sécurité sont haut.
Enter Export Password:
Verifying - Enter Export Password:
Apres cette étape, vous devriez avoir un fichier user.p12. Il va falloir l’installer, ou plutôt l’importer.
Choisissez : installer PFX
Normalement c’est le bon !
Vous rentrez ici le mot de passe que vous avez saisi à la question « Enter Export Password: »
Faites oui et… C’est fini ! Vous avez maintenant un certificat d’installé sur votre compte PC, prêt a servir.
On retourne dans Foxmail, dans les propriétés du compte
Dans l’onglet « Security »,
on clique sur « Sélectionner »
puis on choisit le certificat correspondant à l’adresse de ce compte.
Dernière étape : une petite configuration dans les préférences.
Cochez les deux options du milieu.
Et voilà.
On peut donc s’en servir pour signer nos mails.
Reste une dernière question : Mais comment on fait ? 
Eh bien c’est simple, il suffit de créer un nouveau message
et de cliquer sur cette petite icône :
Désormais, si vous envoyez un mail signé à quelqu’un, celui-ci pourra, lorsqu’il vous répondra, chiffrer le message grâce à votre clé publique contenue dans la signature et ainsi vous adressez des messages confidentiels.