« GPG » : différence entre les versions

152 octets ajoutés ,  il y a 13 ans
m
Quelques corrections typographiques.
(→‎Intérêt et mise en garde : intégralité=>intégrité)
m (Quelques corrections typographiques.)
Attribuer une signature numérique à vos documents, mails et projets secrets ? Chiffrer (= Crypter, mot franglais incorrect) un document encore plus secret, ou alors des photos qui montrent l'existence de votre frère jumeau caché ? ou simplement vos recettes de cuisine ? La parano's way of life n'est plus réservée aux pro's de la programmation machine à chaud.
En effet GPG (lisez lisez : Gnu Privacy Guard) est un outil multi-fonctions libre et gratuit qui permet de signer et de chiffrer à peu près tout ce qui se présente sous forme numérique (tout ce qui a un bit, si vous me passez l'expression).
Je vous propose un petit didacticiel "in“in the Molière's language"language” pour être un pro du chiffrement, impressionner vos collègues et vous faire aimer de votre boss sur vos incroyables et nouvelles connaissances sur la certification de données.
 
Vous trouverez un excellent didacticiel à cette adresse adresse : [http://gpglinux.free.fr/gpg.pdf http://gpglinux.free.fr/gpg.pdf]
 
Une autre documentation, au format HTMLHTML : [http://www.francoz.net/doc/gpg/ Introduction à GnuPG]
 
= Théorie =
Le chiffrement est la fonction la plus connue. Elle permet de rendre un document complètement illisible pour le commun des mortels qui ne connaît pas la phrase magique. Pour ce faire, le créateur de l'information chiffre ses données à l'aide d'un mot de passe convenu avec son interlocuteur, et ce dernier pourra retrouver les documents de son binôme rapidement - le tout - théoriquement - dans une totale intimité numérique.
C'est une méthode qui fait souvent irruption dans les films d'espionnage, d'ailleurs je pense que GPG est connu pour cette fonction dont les néophytes ont dû abuser. Ce n'est pourtant pas la plus "« intéressante" ».
La signature d'information, c'est un peu le renouveau de la rareté sur internet. En effet, elle permet à un fichier d'être unique numériquement.
Clairement, la signature numérique permet deux choses choses : vérifier que les informations reçues proviennent bien de la personne qui nous l'a envoyée et que ces mêmes informations sont reçues dans leur intégralité. Cela permet une multitude de possibilités assez intéressantes dans de nombreux domaines.
Je peux, grâce à cela, m'assurer que les informations que je possède sont "« authentiques" », "« officielles" » et qu'elles n'ont pas été détournées par un tiers malveillant (ou même bienveillant soit dit en passant).
Est-ce utile pour le commun des mortels ? oui et non. Oui parce qu'il faut toujours avoir un système de confidentialité prêt à être utilisé, et non parce que l'utilisateur alpha n'a peut-être pas besoin de savoir absolument si le message reçu vient bien du destinataire qui l'affirme.
 
 
Bien sûr la "parano“parano way of life"life” peut en laisser beaucoup perplexes. À quoi peut servir le chiffrement à tout va ? Il faut bien comprendre que c'est l'utilisation de première vue qui peut dérouter un peu. Il y a une multitude d'utilisations dérivées possibles et pas que pour les «  geeks  ».
Par exemple, la signature numérique peut servir de véritable "« certificat d'authenticité" » gageant de la provenance, de l'officialité et de l'intégrité de l'information obtenue. De là, on peut imaginer énormément de possibilités que ce soit de façon professionnelle comme pour les particuliers. Mais il y a quand même un brin de paranoïa.
Il faut aussi ne pas oublier que le chiffrement/signature n'est pas qu'une question d'informatique. Autrement dit, il ne faut pas rester que sur le support informatique. Par exemple, concernant les mots de passe d'un document chiffré, ou les signatures publiques (voir plus bas), qu'il faut fournir à l'interlocuteur, il est peu utile de passer par un moyen informatisé comme le mail pour fournir les informations.
Il vous faudra malheureusement accéder à un contact social physique dans une pièce au mur de béton armé pour fournir les précieuses informations de base. Car rien n'est plus sûr que voir la personne pour convenir d'un mot de passe, ou donner la clef publique, si on veut rester totalement intègre face au principe. C'est blasphématoire de communiquer le mot de passe via mail, messagerie instantanée... bref n'importe quel intermédiaire informatique peu sécurisé. La sécurité totale du chiffrement, de la transmission d'information, est globale dans tout son développement, il faut limiter les intermédiaires, et sécuriser les transmissions physiques/numériques.
Je veux dire qu'il y a une forme de "« relativisme" » à adopter pour éviter de tomber dans le piège de l'informatique pour l'informatique et ne pas oublier que si on fait ça il y a une raison qui vient du monde réel. Maintenant que vous êtes averti, vous pouvez apprendre à vous en servir.
 
== Fonctionnement et principes ==
GPG possède un système de clefs asymétriques. Bien que cela puisse paraître barbare, c'est assez simple mais il faut le comprendre pour bien utiliser l'ensemble.
Lorsque que vous créez votre "« profil" » (c'est-à-dire, lorsque vous créez l'ensemble des données pour signer/chiffrer vos données de votre nom), deux clefs sont créées créées : la clef publique et la clef privée.
La clef privée doit rester confidentielle. Elle vous permettra d'exporter votre profil sur d'autres machines, c'est elle qui contient toutes les informations vous concernant (chiffrées évidemment).
Cette méthode n'empêche pas la lecture du contenu, elle permet de vérifier que ce contenu est authentique, et livré dans son intégralité par rapport à la version de celui qui l'a composé.
A savoirÀ savoir : il existe des serveurs sécurisés pour stocker les clefs publiques. C'est plus pratique pour que n'importe qui puisse vérifier la validité du document. Vous pouvez aussi mettre ce fichier sur votre site internet, mais le plus sécurisé reste de transmettre la clef... par un contact social.
==== Chiffrer ====
Lorsque vous chiffrez un document, vous spécifiez la clef publique appartenant à la personne (morale ou physique) qui est le destinataire. Seule cette personne (qui possède également le mot de passe) pourra déchiffrer les informations. Vous pouvez aussi chiffrer « dans le vide », c'est-à-dire que le fichier n'est pas destiné à quelqu'un, mais à toute personne connaissant le mot de passe, mais c'est évidemment moins sécurisé.
C'est donc beaucoup plus confidentiel. Bien que l'on puisse croire à première vue que c'est destiné à la communication entre deux personnes uniquement, ce n'est pas forcément vrai vrai : un profil peut appartenir à un groupe de personnes (association, entreprise) donc chaque ordinateur de ce groupe peut posséder le même compte, mais la sécurité est plus controversée dans ce cas-là.
 
== Annexe ==
 
 
Une fois GPG installé, vous pouvez créer vos clefs. C'est très simple, il suffit de lancer une console et taper taper :
Citation :
Citation :
 
'''gpg --gen-key'''
A partir de ce moment vous allez avoir un certain nombre de questions.
*'''Le choix du chiffrement''' : Les choix (1) DSA ou Elgamal sont conseillés. Même si vous ne faites que signer, je pense que c'est le choix à faire.
*'''La longueur de la clef''' : Théoriquement, plus la longueur de la clef est grande, plus la sécurité est forte. Le standard étant 2048 et le maximum 4096. Plus la clef est longue, plus elle a du poids, il ne me semble pas que ce soit un souci de nos jours où on parle d'avoir des connexions à fibres optiques pour tous. Personnellement j'ai pris 4096 (parano's way of life). À savoir savoir : plus la clef est longue, plus l'ordinateur a du mal à la générergénérer : pendant la génération, pour qu'elle soit efficace et donne un résultat hautement sécurisé, il faut utiliser son ordinateur, bouger la souris, taper du texte, bref... "« mettre des artefacts"artéfacts » pendant la génération.
*'''Le temps de la clef''' : Intuitivement, on aurait tendance à mettre "« illimité" ». Pourtant, je ne pense pas que ce soit la bonne solution. Sachant que vous pouvez perdre votre clef privée, ou vous la faire voler, qui sait (on peut quand même révoquer publiquement une clef cf plus loin), ou tout simplement si vous oubliez votre mot de passe. Donc, le mieux pour la sécurité reste de prolonger régulièrement la durée de votre clef avant que celle-ci n'expire. Tout dépend de votre utilisation et de votre paranoïa quant au chiffrement de vos données. Il faut y réfléchir avant hein :o.
*'''Identité''' : Toutes les questions de nom, courriel, commentaires (on met généralement le site). C'est important étant donné que ce sont les informations qui apparaîtront lors de la vérification des signatures.
*'''Mot de passe''' : Forcément très important, l'idéal serait 3anc3dlk56nld12qn#@ius mais c'est pas très simple à retenir. Plus simple, une phrase relativement longue, avec des caractères spéciaux. Plus la complexité est grande, plus la sécurité est grande. Et ne pas oublier... de ne pas oublier ce mot de passe passe ; auquel cas il faudra régénérer une clef (d'où l'utilité de créer des clefs périodiques).
À partir de ce moment, les clefs se génèrent. Dès qu'il n'y a plus de . et de +, c'est que tout s'est bien passé. Il vous informe des informations concernant vos clefs publique/privée et vous donne "« l'empreinte" ». Cette empreinte permettra de retrouver votre clef publique dans le serveurs PGP pour une vérification plus aisée et automatique.
 
== Gérer son porte-clef ==
Gérer son porte clef, c'est exporter sa clef publique pour la diffuser, exporter sa clef privée pour la sauvegarder, c'est aussi importer les clefs publiques de ses connaissances.
Pour connaître la liste des clefs publiques que vous possédez possédez :
'''gpg --list-key'''
Pour connaître la liste des clefs privées privées :
'''gpg --list-secret-keys'''
 
Pour supprimer une clef publique publique :
 
'''gpg --delete-key la-clef-publique'''
Et pour la clef privée privée :
 
'''gpg --delete-secret-key la-clef-privée'''
 
 
*''Mano a Mano'', méthode la plus sécurisé sécurisé : vous donnez vous même le fichier à la personne qui désire vous identifier - par contact social (argh !) sur une clef USB que vous avez pris soin de chiffrer avec un mot de passe de 10 lignes que vous indiquez à la personne à ce même moment, dans le parking d'un centre commercial aux alentours de 2h du matin.
 
 
Vous l'aurez compris, il faut limiter absolument le nombre d'intermédiaires non sécurisés. Rien que l'export en fichier sur votre disque n'est pas sécurisé ! Pour cela il existe une commande qui permet d'exporter votre clef de façon securisée directement sur le serveur serveur :
'''gpg --send-keys --keyserver pgp.mit.edu clef-publique'''
Un fois crée, vous ou vos collègues de la DST doivent pouvoir mettre la clef publique dans leur trousseau de clef !
Vous récupérez le fichier asc en question et faites tout simplement simplement :
'''gpg --import clef.asc'''
Après, faites un petit --list-key pour vérifier qu'elle est bien présente.
Il faut savoir un petit détail pour les étourdis, si vous perdez votre clef privée, vous ne pourrez pas la retrouver en réimportant votre clef publique. Il faut exporter votre clef privée, mais ce n'est pas du tout sécuritaire sécuritaire : il faut chiffrer le fichier ASC avec un mot de passe que vous n'oublierez jamais, ou mieux se l'imprimer si vous avez un scanner capable de faire de l'OCR, ou le cacher dans un autre fichier... bref vous l'aurez compris, exporter sa clef privée n'est pas une bonne chose, il vaut mieux prendre ses précautions (clef périodique, faire une clef pour révoquer, avoir un système stable et durable etc..)
 
Pour pouvoir réimporter sa clef privée, il faut l'exporter avec la commande suivant suivant :
 
'''gpg --export-secret-key -a > fichier'''
 
et l'importer avec cette commande commande :
 
'''gpg --import --allow-secret-key-import fichier'''
=== Détruire sa clef ===
Pour une raison ou une autre on peut regretter sa clef. Et vous l'avez diffusée sur tous les serveurs ! Il existe un moyen simple simple : il faut révoquer votre clef. Autrement dit vous créez une clef qui, mise sur les même serveurs, "« annoncera" » la fin de validité de votre clef publique. Très pratique quand on a créé une clef à durée de vie illimitée.
'''gpg --gen-revoke votre-clef'''
Elle créera un certificat pour révoquer votre clef, à mettre ensuite sur les serveurs de clefs. Autant vous dire qu'il est intelligent de créer ce certificat avant que vous en ayez besoin. Il est aussi important de ne pas le dévoiler même si c'est moins important que la clef privée (on ne pourra pas signer à votre place, mais on pourra vous empêcher de signer).
 
Ensuite pour l'appliquer, vous importez le fichier via via :
 
'''gpg --import fichier'''
 
Et ensuite exportez la au serveur de clefs clefs :
 
'''gpg --keyserver pgp.mit.edu --send-keys votreclef'''
 
 
Nous attaquons une partie intéressanteintéressante : la signature électronique ! Il existe deux méthodes, il faut étudier laquelle convient le mieux à votre utilisation.
=== Avec un fichier joint ===
Pour signer un fichier, il faut taper taper :
'''gpg --default-key votre-clef --armor --detach-sign fichier'''
Cela créera un fichier portant le même nom que celui à signer avec une extension *.asc. Ensuite il vous suffira d'envoyer votre fichier avec lequel vous allez joindre le fichier *.asc.
Pour vérifier que le fichier est certifié authentique, il suffit de taper (si bien sûr vous avez la clef publique de votre correspondant) :
'''gpg --verify fichier.asc fichier'''
=== Signature intégrée ===
Vous pouvez intégrer dans le fichier même (par exemple les messages, les fichier textes, etc.), la signature électronique. Pour cela cela :
'''gpg --default-key votre-clef --clearsign fichier'''
La signature se trouvera à l'intérieur du fichier. Vous le remarquerez rapidement, votre texte sera entouré des balises GPG avec le morceau de la signature.
Pour vérifier l'authenticité authenticité :
'''gpg --verify le-fichier-signé'''
Cela vous pondra un fichier .gpg illisible de façon binaire.
Mais vous pouvez chiffrer l'information de façon ascii, souvent plus recommandé, de cette façon façon :
'''gpg --recipient clef-du-recepteur --armor --encrypt fichier'''
Dans les deux cas, seule la personne possédant la clef indiquée dans la commande pourra déchiffrer les informations.
 
Pour déchiffrer déchiffrer :
'''gpg --decrypt fichier > fichier'''
=== Méthode de chiffrement symétrique ===
Autre moyen de chiffrer / déchiffrerdéchiffrer :
Le chiffrement symétrique, c'est-à-dire qui n'utilise pas le système de clefs publique/privée, on vous demande un mot de passe que votre interlocuteur doit connaître.
16

modifications