Comment envoyer facilement des mails authentiques ou confidentiels ?

GnuPG et Sylpheed

Par Philippe Lhardy (Nullix)

journaliste débutant.


Rien qu'à l'annonce du sujet de mon article j'ai eu le droit à des mises en gardes car les sujets « Sylpheed » et « GnuPG » sont déjà totalement épuisés par les magazines. Ce à quoi j'ai répondu avec l'aide de Sylpheed «  je fais ce que veux avec mes cheveux, alors qu'on ne vienne pas me les couper en quatre. ». Je persiste et je signe avec l'aide de Gnupg ou plus exactement de gpgme la librairie qui permet d'intégrer gnupg dans mon mailler désormais préféré : Sylpheed. Vous voilà prévenus si vous en avez assez d'entendre parler de Sylpheed ou de GnuPG ou que vous êtes des experts passez votre chemin.


Tout d'abord qu'est-ce que Sylpheed ?

C'est tout simplement un outil graphique pour recevoir et envoyer vos mails. Il supporte plusieurs comptes utilisateurs ce qui peut être sympathique si vous avez de nombreuses adresses e-mails ou bien une famille nombreuse. Il est assez véloce et ne gaspille pas vos ressources processeur. Pour Sylpheed je vous renvoie à leur site et à la la lecture de Planète Linux N°(14-15?) puisque semble-t'il ils ont tout dit.


Et qu'est-ce que GnuPG ?

GnuPG est un outil libre conçu sur le modèle PGP. PGP [ Pretty Good Privacy ] comme son nom l'indique fourni l'authentification et la confidentialité pour les échanges de documents. Appliqué aux mails il permet donc de certifier aux destinataires l'origine du mail ( l'authentification ) par un procédé de signature. Mais aussi la confidentialité (le cryptage) : seules les personnes auxquelles sont destinées le mail peuvent le lire à condition biensûr qu'elles disposent aussi de GnuPG et d'une identification. Pour GnuPG je vous renvoie à la leur FAQ disponible sur leur site et à la lecture des Linux Magazine N°31 et 33. En effet avant de pouvoir utiliser gpg correctement il faut savoir ce que l'on fait et disposer de clefs et d'identifiants personnels ce qui serait un peu long à détailler ici.


Biensûr vous pouvez utiliser GnuPG en dehors de Sylpheed et signer crypter et décrypter vos documents en les envoyants en pièces jointes de votre mail. Et donc mon article ne servirait à ... rien. Mais pourquoi vous compliquer la vie alors qu'une bonne petite recompilation ou l'obtention du bon package peut vous sortir de tout ça. Une fois configuré vous pourrez signer, decrypter vos mail et crypter ceux pour des amis d'un simple clic et de la saisie d'un mot de passe.


Cet article doit contenir l'essentiel pour mener cette tâche à son terme.

Toutes les sources des informations de cet article sont mentionnées avec des liens.

Est-ce que c'est bien utile ?

Pour la signature la réponse est oui :-)

En fait c'est utile car les mails que vous recevez actuellement ne disposent d'aucune identification fiable de la source.

N'importe quel rigolo est à même d'envoyer de n'importe où un mail en se faisant passer pour vous, ceci ne demande aucune compétence particulière. Simplement configurer votre mailler avec l'adresse de quelqu'un d'autre et utiliser le service local de délivrement des mails suffit. Sinon un petit peu de telnet sur le port smpt est à la portée du premier venu car le protocole smtp est compréhensible par un humain. Enfin tout ça pour dire que ce que vous croyez aujourd'hui provenir d'une source bien définie ne repose que sur le peu de risque que quelqu'un est envie d'usurper l'identité de votre correspondant. C'est si simple et cela peut faire tant de dégats.

En plus le gain d'avoir la signature est d'obtnir des informations supplémentaires sur l'utilisateur qui ne sont parfois pas dans son adresse e-mail. Un identificateur contient trois champs : l'identité de l'individu ( ie nom prénom ); une information additionnelle complétant le nom pour indiquer le contexte d'utilisation de la signature ( personnel, privé, travail ou le titre « Linux-azur PreZ » par exemple ) et fort heureusement l'adresse e-mail qui sera utilisée.

La mienne est Philippe Lhardy (Nullix) <philippelhardy@chez.com> où vous apprenez mon surnom. Mon identifiant est B2595886 ainsi vous pourrez récupérer mon identité en faissant un simple gpg --recv-keys B2595886.

Pour le crypage c'est un peu plus discutable, il n'y a que ceux qui ont quelquechose à cacher qui l'utilisent. Et puis côté légal il vaut mieux l'utiliser avec parcimonie ( lisez la partie 'est-ce légal ?' pour vous en convaincre ).

Mais parfois cela peut être utile ne serait que pour ne pas envoyer de mails contenant des informations bancaires ou très personnelles en clair sur le réseau. Ou bien simplement pour fournir à un ami votre mot de passe ssh sur votre machine si vous voulez qu'il vous dépanne à distance et pas qu'un vialin méchant zackerZ vienne vous refiler le vers solitaire. En effet les mails circulent de serveur en serveur et ils sont lisibles à la fois à leur passage entre les serveurs et en attente de réexpédition sur ces serveurs eux même.

Ah oui Mais est-ce que tout ça est bon légal ?

Ce qui peut vous sembler évident ne l'est pas, ça n'est pas parce que c'est libre et que vous disposez de tout pour le recompiler chez vous que c'est légal, la cryptographie a très longtemps été un domaine réservé à l'armée et protégé pour des raisons de sécurité d'état.

En effet ce n'est que très récemment que la législation française a changée, avant 1996 l'utilisation, l'exportation l'importation de procédé de chiffrements avec clefs de plus 40 bits était très réglementé. Utiliser des moyens de chiffrement fort à cette époque était comparable à disposer d'armes militaires à domicile. Bon heureusement pour nous ça a changé, pourvu que ça dure.


informations légales :

http://www.eff.org/Privacy/Foreign_and_local/France/

http://www.scssi.gouv.fr/fr/reglementation/regl.html#crypto


Selon les dernières dispositions légales datant de 1999 et ce que j'en ai compris l'utilisation de gpg pour authentifier et même pour n'est soumis à aucune restricition pour l'uitlisation chez le particulier. En fait pour une utilisation privée il semblerait que vous ayez le droit de l'utiliser sans déclaration préalable pour crypter car la clef de session symétrique est sur 128bits. Cependant cette clef de session est échangée par un algorithme à clef publique qui lui est par défaut sur 1024 bits et bien que ces tailles ne sont absolument pas comparables à celles des clefs symétriques, ceci pose peut être des problèmes mais je ne le pense pas car il est en fait plus facile de briser la clef de 1024 bits asymétrique que la clef de 128 bits symétrique.

Je n'ai qu'un conseil : utilisez le moins possible le cryptage et dans tous les cas conservez bien vos clefs privées. Si d'aventure vous étiez poursuivi et dans l'incapacité de fournir les moyens aux autorités judiciaires de vérifier le contenu de vos documents, le risque serait grand d'être condamné pour utilisation illégale du chiffrement. C'est ce qui semble ressortir des dispositions légales : « Ok pour le cryptage pourvu qu'en cas de besoin on puisse décrypter ».


Comment utiliser Sylpheed pour signer et crypter ?

La version de Sylpheed utilisée pour cet article est la 0.6.5.


Sylpheed avec le support de GPG dispose d'un onglet Confidentialité (Privacy) dans les « Préférences générales... » du menu configuration. Les commandes Signer et Crypter dans le menu Messages lors de la composition d'un mail seront disponibles.

Le décryptage se fera automatiquement lors de l'ouverture d'un mail crypté tout comme la vérification de la signature de votre correspondant. La signature et le décryptage nécessitent la saisie de la phrase de passe (passphrase) de la clef privée correspondante.


Les options de configuration du cryptage et ses menus d'activation se trouvent à plusieurs endroits dans Sylpheed, nous allons donc en faire le détail :



Préférences générales:

Ces préférences sont appliquées quelque soit le compte.

Crypter par défaut : Tous vos envois de mails dont vous disposez de la clef publique du destinataire seront cryptés.

Signer par défaut: Tous vos mails seront signés ( par vous ).

Le reste apparaît assez clair dans le texte suivant la case à cocher.

Une option est active quand la case est enfoncée.



Configuration du compte:

Vous allez pouvoir choisir avec quel indentifiant vous allez signer votre mail.

Normalement à la configuration de GnuPG vous définissez sa clef par défault elle est dans votre fichier de configuration ( ~/.gnupg/options ) sous le titre default-key, s'il n'y en a pas alors la clef par défaut est la première clef privée de votre trousseau de clefs secrêtes : secring ( liste avec commande gpg --list-secret-keys ).

Sélectionner la clé en fonction de l'adresse mail permet de choisir dans votre secring la première qui correspond à votre adresse source.

Spécifier manuellement la clé permet de choisir la clef, c'est au niveau de Sylpheed l'équivalent du default-key de GnuPG.




Bon c'est bon tout cela mais ce que je veux moi c'est signer ! Ah tu veux signer ! Et bien voilà :
Compose ton mail comme à l'habitude et dans le menu Message tu verras apparaître les options signer et crypter.
Signer va utiliser la clé secrète de l'utilisateur du compte que tu as configuré précedemment et crypter lui utilisera la clé publique du destinataire, à condition biensûr que tu en disposes.

Composition du message:

Vous cochez la case signer pour signer, la case crypter pour crypter et le tour est joué il n'y a plus qu'à envoyer le mail.

Raccourci :
Bon les racourcis c'est assez cimple c'est Alt+les lettres soulignées pour les menus et simplement la lettre soulignée pour les choix, ce sera je l'espère mon seul passage neuneu mais fallait bien la remplir cette foutue case ZUT.

signer : Alt+M S
Crypter : Alt+M y

Il vous faudra tout de même remplir le mot de passe avent que le mail ne puisse effectivement partir mais cela est expliqué ci-dessous


Cette boîte de dialogue apparaîtra lorsque vous enverrez un mail que vous avez signé et qu'il faut donc que vous authentifiez ou bien lorsque vous lirez un mail qu'un de vos correspondants a cryptez avez votre clé publique.

Bon rien de miraculeux ici, à vous de saisir votre phrase secrète qui protège votre clefs privée d'une utilisation frauduleuse si vous la perdez.

Un conseil : choisissez une vrai phrase secrète ou bien assurez vous de ne jamais divulger ou vous faire voler votre clé.



Vérification d'une signature :

Rien d'original ici notez simplement qu'à la reception d'un mail un document de type MIME application/pgp-signature est attaché et sera analyzé par GnuPG pour valider la signature. La validation des signature et la configuration du réseau de confiance quand à elle se fait à l'aide des outils génériques gpg --edit-keys de façon externe (ie dans un shell ou avec un outil approprié ).




Ouaou c'est génial ça mais je trouve rien de ce qui est montré ici dans mon Sylpheed !
Et oui il va falloir donc lire la suite delectable de cet article.

Comment obtenir Sylpheed avec le support de GnuPG ?

Sylpheed en lui même peut s'obtenir sous la forme d'un package RPM soit binaire soit source. Cet article utilise la troisième solution qui est de récupérer le version compressée des sources en tar.gz. Elle a l'avantage de pouvoir s'installer sur n'importe quelle distribution pourvu que l'on recompile le tout. Puisqu'il n'existe pas à ma connaissance de package Sylpheed supportant GnuPG sans recompilation ceci sera donc un passage obligé.


Obtenir les sources de Sylpheed :

http://www.sylpheed.org

http://sylpheed.good-day.net


Extrait traduit de

http://nlpagan.net/sylpheed-faq.html


De quoi a t'on besoin pour compiler Sylpheed :


Tout UNIX repsectant la norme POSIX ou un système similaire par exemple Linux, FreeBSD, Solaris

GTK+ 1.2.6 ou plus récent ou un compilateur ANSI C ( mais pas Sun C ).

et évidemment le code de Sylpheed.

Optionnellement ( le choix se faisant à la configuration de la compilation ) :

Imlib ou gdk-pixbuf pour la visualisation des images intégrées.

libcompface pour X-Face

libjconv pour l'internationalisation.

GPGME pour l'authentification la confidentialité.

l'équivalent de GTK+-devel et Xfree86-devel.


Comment activer le support de GnuPg dans Sylpheed ?

Lors de la compilation de Sylpheed il faut ajouter --enable-gpgme après la commande ./configure.

Sylpheed disposera alors du support inégré de GPG.

Nous avons encore besoin de GnuPG lui-même et gpgme qui est la librairie d'intégration pour les les interfaces utilisateurs pour pouvoirdisposer de chiffrement etd'authentification dans Sylpheed.


Avoir les sources de Sylpheed et le recompiler n'est donc pas la seule difficulté : il faut aussi obtenir gnupg version 1.0.6 et pas un version plus vieille sinon gpgme n'est pas heureux.

Si vous avez un RedHat ou une Mandrake simplifiez-vous la vie et installez directement les rpm.

Sinon soit il existe des .deb pour debian soit vous recompilez les sources.


http://www.gnupg.org/download.html


sur un site mirroir par exemple:

ftp://ftp.strasbourg.linuxfr.org/pub/gnupg/gnupg



Pour compiler gnupg à partir des tar.gz:


tar -xzf gnupg-1.0.6.tgz


avec un utilisateur quelconque :

./configure

l'installation sera faite dans /usr/local par défaut, si vous désirez le recompiler comme un installation finale alors utilisez --prefix=/usr \exec-prefix=/usr

./make

changez d'utilisateur prenez root :

su

[mot de passe root]

./make install

exit

en effet une fois l'installation terminée inutile de rester en super utilisateur.



Obtenir gpgme:

http://www.gnupg.org/gpgme.html


gpgme se compile tout comme gpg avec les même commandes.


La fin de la configuration de sylpheed doit au moin indiquer GPGME : yes.


export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

./configure --enable-gpgme

(...)

sylpheed 0.6.5


gdk-pixbuf : no

gdk_imlib : no

GPGME : yes

JPilot : no

LDAP : no

OpenSSL : no

compface : no

libjconv : no

IPv6 : no


Bon et bien maintenant que tout est compilé :


export LD_LIBRARY_PATH=/usr/local/lib

/usr/local/lib/Sylpheed


Yeah super ça marche mais comment je me fais la main ?

A vous de jouer ! Vous pouvez pour commencer vous procurer les magazines dont je vous ai parlé et particulièrement le linux magazine n°33. Créez vous une clé à vous ( gpg --gen-keys ) et saisissez bien votre adresse e-mail, et c'est parti !

Envoyez-vous des mails amusez vous à les signer, à les crypter à les décrypter, vous pouvez aussi m'envoyer un mail crypté ( utilisez ma clé ). Prenez pour habitude de signer vos mail, vous allez voir cela fait tout de suite plus pro.

Remarquez qu'une fois que vous avez crypté un mail pour un destinataire vous êtes vous-même dans l'incapacité de le décrypter à moins d'être aussi le destinataire et/ou d'avoir sa clé privée.

Tiens en passant éditez votre ~/.signature et mettez dedans ce que vous voulez voir apparaître en pieds de vos e-mail, cela n'a aucun rapport avec les signatures pgp mais je ne savais pas trop comment vous le dire :-)


et je persiste...

et signe !