Linux:GnuPG et OpenPGP Card

De Djjnet.

Sommaire

GnuPG

Petit listing des principales commandes de gnupg :

créer le dossier .gnupg et le fichier de base options :

gpg

recherche les clefs publiques au nom de dupont dans le serveur par défaut du fichier de configuration .gnupg/gpg.conf :

gpg --search-keys dupont

en précisant le serveur :

gpg --keyserver pool.sks-keyservers.net --search-keys dupont

pour générer sa clef :

gpg --gen-key

lister les clefs :

gpg --list-key

créer un certificat de révocation :

gpg --gen-revoke XXXXXXXX> .gnupg/revoke_XXXXXXXX # remplacer XXXXXXXX par les 8 chiffres/caractères de la ligne pub  retournée par la commande : gpg --list-key

exporter votre clefs en ascii :

gpg --export -a adresse@email>.gnupg/djj-pubkey.asc

éditer une clef pour par exemple rajouter une adresse email à celle-ci :

gpg --edit-key XXXXXXXX 
Command> apparaît, adduid pour ajouter la  nouvelle adresse, enfin save pour terminer

voir l'emprunte des clefs de son trousseau :

gpg --fingerprint

envoyer une clef sur un serveur public :

gpg --keyserver pgp.mit.edu --send-key XXXXXXXX

recevoir une clef d'un serveur public :

gpg --keyserver pgp.mit.edu --recv-key XXXXXXXX

Signer des clefs :

gpg --sign-key XXXXXXXX : permet de signer la clef publique d'une personne après avoir vérifié physiquement son identité exportez ensuite sa clef avec la commande ci-dessus pour lui fournir la clef signée. il suffit à cette personne d'utiliser la commande gpg --import fichierclefsigne pour mettre à jour dans son trousseau de clefs puis elle peut ensuite la publier sur le serveur public.

gpg --list-sigs XXXXXXXX : lister les signatures d'une clef

OpenPGP Card

La carte : http://www.g10code.com/p-card.html

La doc d'utilisation de GnuPG avec une OpenPGP Card : http://www.gnupg.org/documentation/howtos.html#GnuPG-cardHOWTO

Branchement d'un lecteur Sim Card Stick USB :

[17718.388025] usb 5-1: new full speed USB device using ohci_hcd and address 6
[17718.616724] usb 5-1: New USB device found, idVendor=04e6, idProduct=5117
[17718.616729] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[17718.616732] usb 5-1: Product: SCR3320 - Smart Card Reader
[17718.616735] usb 5-1: Manufacturer: SCM Microsystems Inc.
[17718.616738] usb 5-1: SerialNumber: 21120747300908
[17718.616841] usb 5-1: configuration #1 chosen from 1 choice

Premier lancement

  • gpg --card-status
djj@tortuegeniale:~$ gpg --card-status
Application ID ...: D2760001240102000005000002400000
Version ..........: 2.0
Manufacturer .....: ZeitControl
Serial number ....: 00000240
Name of cardholder: [non positionné]
Language prefs ...: de
Sex ..............: non spécifié
URL of public key : [non positionné]
Login data .......: [non positionné]
Private DO 1 .....: [non positionné]
Private DO 2 .....: [non positionné]
Signature PIN ....: forcé
Key attributes ...: 2048R 2048R 2048R
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Codes PIN

La carte dispose de deux PIN : le PIN et l'AdminPIN. L'AdminPIN permet de débloquer le PIN si 3 erreurs ont eu lieu. Attention l'AdminPIN est limité à 3 essais définitivement, en cas d'erreur, la carte devient inutilisable.

Pour changer les PIN :

djj@tortuegeniale:~$ gpg --change-pin
gpg: carte OpenPGP n° D2760001240102000005000002400000 détectée

1 - change PIN
2 - unblock PIN
3 - change Admin PIN
4 - set the Reset Code
Q - quit

Votre choix ? 

Par défaut les valeurs sont 12345678 pour l'AdminPIN et 123456 pour le PIN.

Modification des informations de la carte

  • gpg --card-edit

Cette commande renvoie le même résultat que --card-status puis un prompte :

Commande> 
Commande> help
quit       quitter ce menu
admin      indiquer les commandes d'administration
help       afficher cette aide
list       lister toutes les données disponibles
fetch      aller chercher la clé spécifiée dans l'URL de la carte
passwd     menu pour changer ou déverrouiller le PIN
verify     vérifier le code PIN et lister toutes les données
unblock    unblock the PIN using a Reset Code
Commande> admin
Les commandes d'administration sont permises

Commande> help
quit       quitter ce menu
admin      indiquer les commandes d'administration
help       afficher cette aide
list       lister toutes les données disponibles
name       changer le nom du propriétaire de la carte
url        changer l'URL pour récupérer la clé
fetch      aller chercher la clé spécifiée dans l'URL de la carte
login      changer le nom d'identification
lang       changer les préférences de langue
sex        changer le sexe du propriétaire de la carte
cafpr      changer l'empreinte d'une autorité de certification
forcesig   inverser le paramètre obligeant à rentrer le code PIN pour les signatures
generate   générer de nouvelles clés
passwd     menu pour changer ou déverrouiller le PIN
verify     vérifier le code PIN et lister toutes les données
unblock    unblock the PIN using a Reset Code

Exemple de modification, changeons le nom du porteur de la carte :

Commande> name
Nom du déteneur de la carte: Lemaire
Prénom du déteneur de la carte: Jerome

Commande> list

Application ID ...: D2760001240102000005000002400000
Version ..........: 2.0
Manufacturer .....: ZeitControl
Serial number ....: 00000240
Name of cardholder: Jerome Lemaire

La clef et ses sous-clefs

Personnellement, ma clef est en DSA, il n'est donc pas possible de l'importer sur la carte. Pour cela il faut une clef RSA, si c'est votre cas, vous pouvez l'importer en suivant http://www.gnupg.org/howtos/card-howto/en/ch05.html

Par contre, il est possible de créer des sous-clefs (subkey). Pour cela, éditer votre clef :

djj@tortuegeniale:~$ gpg --edit-key 42AE6156
Commande> addcardkey
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]

Sélectionnez le type de clé à générer:
   (1) Clé de signature
   (2) Clé de chiffrement
   (3) Clé d'authentification
Votre choix ? 1

Please enter the PIN
What keysize do you want for the Signature key? (2048) 1024
The card will now be re-configured to generate a key of 1024 bits
NOTE: There is no guarantee that the card supports the requested size.
      If the key generation does not succeed, please check the
      documentation of your card to see what sizes are allowed.
gpg: size of key 1 changed to 1024 bits
Key is protected.

Vous avez besoin d'une phrase de passe pour déverrouiller la
clé secrète pour l'utilisateur: « Jerome Lemaire <jerome.lemaire@itenec.com> »
clé de 1024 bits DSA, ID 42AE6156, créée le 2006-09-06

Spécifiez combien de temps cette clé devrait être valide.
         0 = la clé n'expire pas
      <n>  = la clé expire dans n jours
      <n>w = la clé expire dans n semaines
      <n>m = la clé expire dans n mois
      <n>y = la clé expire dans n années
La clé est valide pour ? (0) 
La clé n'expire pas du tout
Est-ce correct ? (o/N) o
Créer vraiment ? (o/N) o
gpg: générer une nouvelle clé
gpg: 3 tentatives de PIN admin restent jusqu'à ce que la carte
soit irrémédiablement bloquée

Please enter the Admin PIN
gpg: attendez que la clé se génère...
gpg: la génération de clé a été effectuée (2 secondes)
gpg: signatures créées jusqu'ici: 0

Entrez le PIN
[sigs faites: 0]
gpg: signatures créées jusqu'ici: 1

pub  1024D/42AE6156  créé: 2006-09-06  expire: jamais      utilisation: SC  
                      confiance: ultime        validité: ultime
sub  2048g/0323AB8E  créé: 2006-09-06  expire: jamais      utilisation: E   
sub  1024R/4A77192D  créé: 2010-03-13  expire: jamais      utilisation: S   
[  ultime ] (1). Jerome Lemaire <jerome.lemaire@itenec.com>
[  ultime ] (2)  Jerome Lemaire (djj) <jerome.lemaire@dj-j.net>

Recommencer pour les deux autres types de clefs puis sauvegardez :

Commande> save
djj@tortuegeniale:~$ gpg --edit-key 42AE6156
gpg (GnuPG) 1.4.10; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

La clé secrète est disponible.

pub  1024D/42AE6156  créé: 2006-09-06  expire: jamais      utilisation: SC  
                      confiance: ultime        validité: ultime
sub  2048g/0323AB8E  créé: 2006-09-06  expire: jamais      utilisation: E   
sub  1024R/42B9B4DF  créé: 2010-03-13  expire: jamais      utilisation: E   
sub  1024R/4A77192D  créé: 2010-03-13  expire: jamais      utilisation: S   
sub  1024R/307683A4  créé: 2010-03-13  expire: jamais      utilisation: A   
[  ultime ] (1). Jerome Lemaire <jerome.lemaire@itenec.com>
[  ultime ] (2)  Jerome Lemaire (djj) <jerome.lemaire@dj-j.net>

Résultat sur la carte :

djj@tortuegeniale:~$ gpg --card-status
Application ID ...: D2760001240102000005000002400000
Version ..........: 2.0
Manufacturer .....: ZeitControl
Serial number ....: 00000240
Name of cardholder: Jerome Lemaire
Language prefs ...: fr
Sex ..............: masculin
URL of public key : [non positionné]
Login data .......: djj
Private DO 1 .....: [non positionné]
Private DO 2 .....: [non positionné]
Signature PIN ....: forcé
Key attributes ...: 1024R 1024R 1024R
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 2
Signature key ....: 08C4 ...
      created ....: 2010-03-13 19:36:03
Encryption key....: D295 ...
      created ....: 2010-03-13 19:34:54
Authentication key: A3BE ...
      created ....: 2010-03-13 19:36:41
General key info..: pub  1024R/4A77192D 2010-03-13 Jerome Lemaire <jerome.lemaire@itenec.com>
sec   1024D/42AE6156  créé: 2006-09-06  expire: jamais    
ssb   2048g/0323AB8E  créé: 2006-09-06  expire: jamais    
ssb>  1024R/42B9B4DF  créé: 2010-03-13  expire: jamais    
                      n° de carte: 0005 00000240
ssb>  1024R/4A77192D  créé: 2010-03-13  expire: jamais    
                      n° de carte: 0005 00000240
ssb>  1024R/307683A4  créé: 2010-03-13  expire: jamais    
                      n° de carte: 0005 00000240

GnuPG et son utilisation au quotidien (logiciels)

Outils personnels
Google AdSense