PGP

(Pretty Good Privacy)

Sébastien Blin  0x85F1D0174FC09B8C68D65379C894BB01EEB2A9A9

Yves Legris        0x6091D31AD17932FC9D7EE91A50F5CF50180E72B4

12 Dec. 2016

Plan

  1. Introduction
  2. Description de PGP
    1. À quoi ça sert ?
      1. Authenticité
      2. Confidentialité
      3. Intégrité
      4. Non répudiation
    2. Utilisation
      1. Génération de clé
      2. Échange de clé
      3. Signer/Chiffrer/Déchiffrer
      4. Signé des clés
      5. Révocation d'une clé
    3. Défauts
      1. Psychological Acceptance

                2. Non chiffrement des méta-

 

        4. Attaques connues

                1. Short ID spoofing

                2. Déchiffrer le message

        5. Outils

                1. Enigmail

                2. Gestionnaire de mot de

 

                3. Envoi de fichier sur le Cloud

                4. Signature de binaires et de

 

3. Conclusion

données

commits

passe

Introduction

  • Fondé par Werner Koch
  • Décembre 1997
  • Écrit en C
  • Multiplateforme
  • Logiciel cryptographique
  • PGP créé par Phil Zimmermann
  • 1991
  • Logiciel cryptographique

Acheté par Symantec en 2010

Exemple : SPOOFING DE MAIL

Text

Text

Text

Chemin du mail :

République Tchèque => France => Canada

Description de PGP

A quoi ça sert ?

  • Signer numériquement les données
  • Assure les fondamentaux de la sécurité
  • Largement utilisé aujourd'hui (médical, mail, ...)

Cryptographie à clé publique : le message est chiffré avec la clé publique du destinataire et déchiffré avec sa clé privée

Description de PGP

Authenticité, confidentialité, intégrité, non-répudiation

Signature numérique avant envoi

          Évite les attaques de type spoofing

Protéger l'information contre la divulgation à des tiers non autorisés

Une donnée a de la valeur (bancaire, médicale, ...)

Protection contre la modification de la donnée

Une données à de la valeur que si elle à une signification

L'émetteur certifie être celui qui a envoyé la donnée

          Évite les attaques de type phishing

Description de PGP

Utilisation : Génération de clé

Pour générer une clé, il faut avoir installé gpg2 ou gpg4win

gpg2 --full-gen-key

Création d'une pair de clé

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 

Suivre les étapes

1

RSA keys may be between 1024 and 
4096 bits long. Larger is  almost 
always recommended here, however 
your use case and  security
models may dictate otherwise.
What keysize do you want? (2048)

2

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 

3

pub  1024D/1B2AFA1C 2005-03-31 John Q. Doe (Fedora Docs Project) <jqdoe@example.com>
Key fingerprint = 117C FE83 22EA B843 3E86  6486 4320 545E 1B2A FA1C
sub  1024g/CEA4B22E 2005-03-31 [expires: 2006-03-31] 

Résultat de la génération. Ou

gpg2 --list-key

Description de PGP

Utilisation : Echange de clé

Avant toute communication, il faut divulguer sa clé publique.

Plusieurs méthodes :

  • Échange par mail
  • Site web spécialisé (http://pgp.mit.edu/)
  • Blog personnel
gpg2 --send-keys LONGID
gpg2 --export-secret-keys --armor jqdoe@exampl
e.com > jqdoe-privkey.asc

Pour voir manuellement sa clé publique :

Pour envoyer automatiquement la clé publique sur un serveur :

gpg2 --import
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2

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
jeu35tUxKbD7FN3R/g==
=F06J
-----END PGP PUBLIC KEY BLOCK-----

Pour importer une clé publique :

Description de PGP

Utilisation : Signer / Chiffrer / Déchiffrer

Pour signer un fichier :

#Créer mon_fichier.asc
gpg2 --clearsign <mon_fichier>
# Créer mon_fichier.gpg au format binaire
gpg2 --encrypt <mon_fichier>

# Pour avoir un texte ASCII, il suffit d’ajouter --armor
gpg2 --armor --output "mon_fichier_chiffré" --encrypt "mon_fichier"

Pour chiffrer un fichier, deux méthodes :

gpg2 --output <mon_fichier> --decrypt <mon_fichier.gpg>

Pour déchiffrer un fichier :

Description de PGP

Utilisation : Signer des clés

Il est également possible de faire confiance à une clé et donc de la signer.

 

gpg2 --edit-key LONGID
> trust
# Donner un niveau de confiance
> sign
# Il faut indiquer à quel point on a vérifié
> save
# Puis il est possible de renvoyer la clé
# sur les serveurs de clé

Description de PGP

Utilisation : Révocation d'une clé

Créer un certificat de révocation

gpg2 --gen-revoke 0E05A0C20911EB24E576D771BB91FEEC8B7EE579
gpg2 --import revokeFile

Importer le certificat pour révoquer définitivement la clé

Description de PGP

Défauts : Psychological Acceptance

  • Tout le temps utiliser des clés pour chiffrer
  • S'assurer de l'identité de la personne
  • Faire signer sa clé
  • Gestion des mails non parfaite (difficile de rechercher dans le contenu...)
  • Conversion à plusieurs destinataires (recherche impossible car aucune clé commune)

Description de PGP

Défauts : Non chiffrement des métadonnées

PGP permet de sécurisé le contenu d'un mail mais pas ses métadonnées

  • Sujet
  • Date d'envoi
  • Destinataire(s)
  • etc ...

Description de PGP

Attaques connues : Short ID Spoofing

Trois longueurs d'ID : 32, 64, 160

Probabilité de collision :

1/2^32  =                                        1/4294967296
1/2^64  =                              1/18446744073709551616
1/2^160 = 1/1461501637330902918203684832716283019655932542976

ID taille 32 est vulnérable

Ne jamais faire confiance à un Short ID, privilégier les Long ID

Exemples de cible d'attaques : Linus Torvalds, Isis Grimalkin, Asheesh Laroia

Description de PGP

Attaques connues : Déchiffrer le message

PGP est basé sur des algorithmes existants :

RSA, Elgamal, DSA

PGP est donc sensible aux mêmes attaques que pour ces algorithmes

Peu d'attaques connues.

L'attaque exhaustive prendrait des années mais finirai par aboutir

Description de PGP

Outils : Enigmail

  • Inventé en 2009
  • Addon Thunderbird (messagerie Firefox)
  • Gratuit
  • Outils cryptographique
  • Envoie et reçois des messages signé et crypté automatiquement
  • Multiplateforme

Description de PGP

Outils : Gestionnaire de mot de passe

Permet de stocker nos mots de passes dans un conteneur sécurisé par un mot de passe maître

Linux en possède un par défaut basé sur gpg2

#Initialise l'outil
pass init etudiant@uqac.ca

#Génère un mot de passe aléatoire de longueur 54
pass generate Email/uqac.ca 54

#Insère un mot de pase existant
pass insert Email/personal

#Liste l'arborescence des mots de passes
pass

#Récupère un mot de passe pour 45 secondes
pass -c Email/uqac.ca

Description de PGP

Outils : Envoi de fichier sur Cloud

CryptSync permet de chiffrer / déchiffrer des fichiers à l'envoi / réception du Cloud

Description de PGP

Outils : Signature de binaire et de commit

Possibilité de signer des commits, des tags, des binaires ...

Éviter de se faire passer pour un autre développeur et insérer du code malicieux

Cela peut-être fait directement avec l'outil Git

Conclusion

  • Sécurisé
  • Connu
  • Développé

PGP reste un bon outil :

Cependant quelques défauts subsistent :

  • Mail non chiffré par défaut
  • Metadatas des mails non chiffrés
  • Recherche dans les mails

Sources

Question ?

Made with Slides.com