« GPG » : différence entre les versions

Contenu supprimé Contenu ajouté
ortho, ponctuation ...
Ligne 1 :
Bien que la méthode décrite se déroule sous Gnu/Linux, c'est la même que sous les autres systèmes.
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é ? ouOu 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 : 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 the Molière's 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 : [http://gpglinux.free.fr/gpg.pdf http://gpglinux.free.fr/gpg.pdf]
Ligne 26 :
Clairement, la signature numérique permet deux 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 ? ouiOui 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 de l'émetteur qui l'affirme.
 
== Intérêt et mise en garde ==
 
 
Bien sûr, la “parano way of 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 auaux murmurs de béton armé, pour fournir les précieuses informations de base. Car rien n'est plus sûr que de 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 ==
Ligne 49 :
=== Le système de clefs ===
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 vosles données de votre nom), deux clefs sont 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).
La clef publique est celle que vous devez fournir à vos correspondants. Elle permet à ces derniers de reconnaître l'authenticité de vos mails, et de chiffrer des informations pour votre utilisation.
Il faut savoir qu'une clef publique peut ne pas forcément être attribuée à une seule personne (physique), mais aussi à un groupe de personnes (comme une personne morale).
==== Signer ====
Ligne 66 :
Le fichier signature doit être fait avec la version finale du document à signer, il ne doit plus changer d'un bit après la signature.
Ensuite vous envoyez votre document à une personne. Cette dernière doit posséder votre clef publique. Elle se servira de cette dernière avec GPG pour vérifier que le document est (encore une fois au bit près) conforme à ce que vous lui avez envoyé, et, surtout, pour vérifier qu'il vient bien de vous (car vous seul pouvez générer ce fichier signature avec votre clef privée).
Il y a véritablement une question d'unicité dans la signature numérique. Si le contenu signé est modifié ne serait-ce que de rien du tout (il suffit de l'ouvrir souvent pour modifier les informations contenues), alors il ne sera plus authentique, ni certifié.
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é.
Attention : Sisi la signature comporte bien une date, cette dernière n'est pas fiable. Il suffit en effet de changer la date de son ordinateur pour pouvoir générer des signatures post ou antidatées. Une signature certifie donc l'authenticité des données qu'elle signe, mais pas à une date donnée.
 
À 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 ====
Ligne 79 :
Cette méthode permet de diffuser des informations qui, en plus d'être certifiées authentiques et intégrales, ne sont pas lisibles par quiconque.
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 en particulier, 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 : 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 ==
 
 
Il existe beaucoup d'applications qui utilisent GPG, et, donc, la signature et le chiffrement. La messagerie instantané Jabber, ou encore, Mozilla Thunderbird avec son module enigmail, pour les mails... tousTous ces logiciels facilitent l'utilisation des outils de GPG pour une utilisation courante.
Ligne 93 :
Il faut savoir que la majorité de l'initialisation se fait en ligne de commande (ici en tout cas). C'est ce que je préfère, dans la parano's way of life, : on n'aime pas les interfaces graphiques. Mais vous en trouverez un large nombre qui vous faciliteront la vie.
Ligne 109 :
A partir de ce moment vous allez avoir un certain nombre de questions.
*'''Le choix du chiffrement''' : Le choix (1) RSA/RSA est conseillé (DSA ou Elgamal l'étaitétaient dans les versions plus anciennes). 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 : plus la clef est longue, plus l'ordinateur a du mal à la gé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 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 cce n'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 ; auquel cas il faudra régénérerre-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 serveursserveur PGP, pour une vérification plus aisée et automatique.
 
== Gérer son porte-clef ==
Ligne 149 :
'''gpg --export --armor votre-clef > ~/clefpublique.asc'''
Cette commande génèrera un fichier .asc, qui est, finalement, un fichier texte. De là, plusieurs solutions s'offrent à vous.
 
*Soit vous la transmettez à un serveur sécurisé (comme http://pgp.mit.edu), en faisant un copier -coller du fichier texte produit dans la fenêtre mise à disposition sur ledit site. Cela permettra à tous de s'y référer de façon rapide.
 
 
*Soit vous mettez ce fichier sur votre site internet personnel, et vous donnez le lien. Cette méthode n'est pas très sûre pour une multitude de raisons. Par contre, elle permet de mettre à jour régulièrement la clef et, donc, d'assurer un changement simple et régulier.
 
 
*''Mano aà Manomano'', méthode la plus sécurisée : 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éesécurisée, directement sur le serveur :
'''gpg --send-keys --keyserver pgp.mit.edu clef-publique'''
Ligne 167 :
=== Import ===
Un fois créée, vous ou vos collègues de la DST doivent pouvoir mettre la clef publique dans leur trousseau de clefclefs !
Vous récupérez le fichier .asc en question, et faites, tout 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 : il faut chiffrer le fichier ASC.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 ... brefBref, 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 :
Ligne 188 :
=== 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 : 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 n'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 :
 
'''gpg --import fichier'''
 
Et, ensuite, exportez -la au serveur de clefs :
 
'''gpg --keyserver pgp.mit.edu --send-keys votreclef'''
Ligne 215 :
'''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'''
Ligne 227 :
'''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é :
Ligne 233 :
'''gpg --verify le-fichier-signé'''
Bien sûr, c'est la version manuelle ; des logiciels font ce genre de travail parfaitement, comme enigmail, pour signer les mails.
 
== Chiffrer ses informations ==
 
=== MethodeMéthode via clefs ===
Allons -y ! Produisons des fichiers hautement sécurisés (du moins, théoriquement).
'''gpg --recipient la-clef-du-recepteur --encrypt fichier'''
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 :
'''gpg --recipient clef-du-recepteur --armor --encrypt fichier'''
À ce moment là, vous aurez un fichier *.asc, qui est lisible par un éditeur de textestexte, mais, bien sûr, incompréhensible. C'est plus conseillé, puisque plus souple,. vousVous pouvez faire un copier -coller du fichier via mail, ou autre, s'il est chiffré en ascii. Les deux façons sont aussi sécurisées l'une que l'autre.
Mais, la première est moins gourmande en poids (relatif), et la seconde est plus simple d'exportation.
Dans les deux cas, seule la personne possédant la clef indiquée dans la commande pourra déchiffrer les informations.
Ligne 259 :
'''gpg --decrypt fichier > fichier'''
Tout simplement, il demandera le mot de passe de l'utilisateur, et transformera le fichier .gpg en fichier lisible.
 
=== Méthode de chiffrement symétrique ===
Autre moyen de chiffrer / déchiffrer :
leLe chiffrement symétrique, c'est-à-dire qui n'utilise pas le système de clefsclef publique/privée, on vous demande un mot de passe que votre interlocuteur doit connaître.
'''gpg -c fichier''' pour chiffrer
Récupérée de « https://fr.wikibooks.org/wiki/GPG »