A quoi sert la cryptographie ?
Elle permet de chiffrer les messages entre deux interlocuteurs qui ont une clé en commun.
La cryptographie vous permet d'envoyer des messages que personne ne pourra lire à part votre correspondant. Les messages sont chiffrés à l'aide d'une clé que votre correspondant utilisera pour déchiffrer vos messages.
La solution que je propose aujourd’hui est OpenPGP et son implémentation GnuPG, une solution libre très puissante considérée comme standard en cryptographie.
Manipulation
1- Installation
Pour commencer, il faut télécharger GnuPG
Installer le ...
Choisissez la langue Fr-Français et suivez l'assistant jusqu'à la fin de l'installation
Important :
GnuPG est libre, mais il n'est pas opensource, et du fait, on n'a pas de garantie que cette application ne moucharde pas ! la sume garantie qu'on a , c'est la parole du distribuant du programme .
2- Obtention de la clé
GnuPG utilise des clés asymétriques, c'est à dire, il fonctionne par pair de clé, une pour chiffrer et l'autre pour déchiffrer. La clé publique est celle qu'on diffuse à tout le monde, la seconde clé est dite privée, il faut qu'elle reste ainsi.
Pour commencer, il faut ouvrir l'invite de commande dans le dossier de GnuPG,
Maintenant il faut taper :
gpg --gen-key
Choisissez 1 pour DSA et Elgamal puis valider
La paire de clés DSA fera 1024 bits.
GnuPG vous demandera alors de fournir la longueur (entre 1024 et 4096 bits). Vous pouvez utiliser les valeurs par défaut 2048 valider.
Ensuite, vous devez définir une date d'expiration pour la clé.
Pour 3 jours faites 3
pour 3 semaines faites 3w
Pour 3 mois faites 3m
et pour 3 ans faites 3y
Saisissez ensuite votre nom (Prénom Nom), vous pouvez laisser l'adresse email et le commentaire vides, ils sont facultatifs.
Prénom nom (commentaire) <mail@domaine>
Maintenant, il faut définir un mot de passe, vous devez le choisir soigneusement, éviter les dates de naissances, les endroits que vous fréquenter, les prénoms et noms, utiliser des majuscules et des minuscules ainsi que des caractères spéciaux et que la sa longeur soit entre 9 et 15 caractères.
pendant que GnuPG genère votre clé, tapez n'importe quoi, du pure hasard, comme un psycopathe qui tape sur un clavier !
Et finalement GnuPG va vous communiquer votre paire de clés.
La clé est 675B8F52
Important :
Si vous avez predu le mot de passe ou votre clé ou pour n'importe quelle raison, vous pouvez générer un certificat de révocation
gpg --output revoke.asc --gen-revoke 675B8F52
Valider par oui, GnuPG vous demandera de saisir la phrase de passe que vous avez créé.
Valider et tapez
gpg --import revoke.asc
est votre clé sera revoquée.
Crypter un message
Il faut maintenant publier la clé, on dit l'exportier :
gpg --output 675B8F52.asc --armor --export 675B8F52
Nous obtiendons le fichier 675B8F52.asc, on l'envoi à notre correspondant.
Une fois le correspendant a recu le fichier il doit l'ajouter à son Trousseau de clés en tapant
gpg --import 675B8F52.asc
Si le correspendant souhaite nous envoyer un message
gpg --receipient Amine REGBA --encrypt message
Le fichier message.gpg (ou autre si vous utilisez --output) contiendra le message crypté avec ma clé publique, pour le déchiffrer avec ma clé privé
Maintenant pour décrypter le message
gpg --decrypt message.pgp
Pour signer le message afin que les correspondants s'assure que le message provient de vous et pas de quelqu'un qui connait la clé publique
gpg -- sign message
Signer un message en le laissant lisible
gpg --clearsign message
Signer un message avec une signature dans un fichier séparé
gpg -detach-sign message
Vérifier la signature d'un message signé
gpg --verify message.asc
Vérifier la signature même si le message est compressé
gpg --verify message.gpg
Déchiffrer le message, le lire et vérifier la signature
gpg --decrypt message.gpg
Déchiffrer le message, le lire et vérifier la signature séparée.
gpg --verify signature.sig message
Si la signature est message.sig et le message signé s'appel message
gpg --verify message.sig
Il est fortement conseillé de signer les messages chiffrés à la fois
gpg --recipient 'Destinataire' --sign -- encrypt message