Boite à lettre : black friday – pas cher – code reduction – Déployer un service d’annuaire de clés OpenPGP pour votre domaine

  • MAKITA Pack Starter Black Friday 18V: Perceuse 42Nm DDF453 + Meuleuse 115mm
    Outillage Outillage électroportatif Pack de plusieurs outils électroportatifs MAKITA, Pack Starter MAKITA 18V 2 machines 2 batt 3Ah comprenant: - 1 Perceuse visseuse 18V 42Nm DDF453 - 1 Meuleuse angulaire 18V 115mm DGA452 - 2 Batteries BL1830 (Li-Ion 18 V - 3 Ah) - 1 Chargeur DC18SD - 2 Coffrets Makpac
  • MAKITA Pack Starter Black Friday 18V: Perceuse 42Nm DDF453 + Meuleuse 115mm DGA452 + 2
    Outillage Outillage électroportatif Pack de plusieurs outils électroportatifs MAKITA, Pack Starter MAKITA 18V 2 machines 2 batt 3Ah comprenant: - 1 Perceuse visseuse 18V 42Nm DDF453 - 1 Meuleuse angulaire 18V 115mm DGA452 - 2 Batteries BL1830 (Li-Ion 18 V - 3 Ah) - 1 Chargeur DC18SD - 2
  • Alchimie By Chaps Menu "Black out Eveil des sens" en 3 services pour 2 personnes avec Alchimie By Chaps
    Réaliser une expérience gustative originale en duo et déguster dans l’obscurité totale un menu en trois services
  • Boîte à Lettre Courrier Boîte aux Lettres Murale 58 cm Jaune - Jaune-Bis
  • Boîte aux lettres à ouverture totale R-Box Lys Decayeux - Simple face - Beige
  • DECAYEUX Boîte à lettres Probat double face Gris Ral7016 - 125987 - Decayeux
    Quincaillerie Quincaillerie extérieure Boîte aux lettres et mobilier de hall Boîte aux lettres DECAYEUX, Détails : Boîte aux lettres Probat DECAYEUX Porte emboutie renforçant la rigidité Tôle d'acier électrozinguée Goulotte antivol Volet en acier peint Peinture 100% polyester Conforme à la norme N.F.D
  • Boite aux lettres
  • DECAYEUX Boîte à lettres Probat double face Gris Ral7016 - 125987 - Decayeux
    Quincaillerie Quincaillerie extérieure Boîte aux lettres et mobilier de hall Boîte aux lettres DECAYEUX, Détails : Boîte aux lettres Probat DECAYEUX Porte emboutie renforçant la rigidité Tôle d'acier électrozinguée Goulotte antivol Volet en acier peint Peinture 100% polyester Conforme à la
  • Boite aux lettres Design V18 Boite postale murale Anthracite Compartiment journal Revêtue par poudre
  • Creastuce BOITE AUX LETTRES BOIS CREASTUCE :UNE LETTRE A LA MER, 2 PORTES PRESTIGE
    Boîte aux lettres chalet classique en bois massif avec une touche de modernisme de fabrication française artisanale. Décoration " bord de mer et soleil" Nos boîtes sont fabriquées en bois de sapin de qualité , issu de forêts durablement gérées répondantes aux
  • Boîte aux lettres à ouverture totale R-Box Lys Decayeux - Double face - Beige
  • Dema Boite aux lettres ''Milan'' avec compartiment à journaux
    Boîte aux lettres en acier inoxydable, avec compartiment à journaux et une grande fente d'insertion pour format A4, Livré avec 2 clés, chevilles et vis ainsi qu'un emplacement pour le nom.
  • Boite lettres Design V28 Anthracite Compartiment journaux Fixation murale rev?tue poudre inox
  • A Little Lovely Company Lightbox A Little Lovely Company LIGHTBOX A4-Boite lumineuse LED Blanc + 85 lettres et symboles H21cm Rose
    Boite lumineuse LED a personnaliser format A4 composee d'une structure en PVC avec plaque diffusante blanche accueillant sur 3 lignes les lettres et symboles noirs de votre choix a choisir par les 85 fournis. Cette lampe est equipee d'un interrupteur sur le cote. Composez les messages de votre choix grace a
  • Boite aux lettres avec porte-journaux en Anthracite pour Montage au mur Avec 2 Clés Courrier
  • Silverline Boîte de poinçons chiffres et lettres Silverline - 36 pièces
    La Boîte De Poinçons Silverline : Des Poinçons Solides Et Précis Pour Une Empreinte Claire Les Poinçons Lettres Et Chiffres À Frapper De Ce Coffret Sont Fabriqués En Acier Trempé Et Revenu. Leur Composition De Qualité Laisse Une Empreinte Claire Et Lisible Permettant Une Utilisation Sur Tous Types De Métaux :
  • Boite aux lettres Murale en Acier Inoxydable Revêtement Protecteur + Compartiment journaux 300 mm x 120 mm x 395 mm Gris
  • Chronopost Enveloppe Chronopost 13h avec option boîte à lettre - 36x27cm
    Enveloppe Chronopost 13h avec option boîte à lettre - 36x27cm
  • CITADIS
  • Boite à lettre déco Postes
  • Boite lettres V24 Anthracite Murale Revêtue poudre Compartiment journal Magazine
  • Boîte aux à Lettres Courrier Murale Jaune Poste 40 cm - 14100-Lettre
  • Boite lettres V23 Anthracite Murale Revêtue par poudre Porte journal Magazine
?>
  • Boite aux Lettres européenne Murale style rétro
  • Boite aux lettres eolys double face vert ref 123524
    Quincaillerie Quincaillerie extérieure Boîte aux lettres et mobilier de hall Boîte aux lettres, Corps en acier Dim. L 30,2 x H 30 x P 41 cm Normalisée, équipée d'une serrure PTT Fenêtre d'introduction du courrier avec volet aluminium Dim. L 30,2 x H 30 x P 41 cm Fixation sur piquet ou en
  • Creastuce BOITE AUX LETTRES BOIS CREASTUCE : ST HUBERT COURTE
    Boîte aux lettres chalet classique en bois massif avec une touche de modernisme de fabrication française artisanale. Nos boîtes sont fabriquées en bois de sapin de qualité , issu de forêts durablement gérées répondantes aux critères du label PEFC, avec un design sobre et classique
  • Dema Boite aux lettres ''Milan'' avec compartiment à journaux
    Boîte aux lettres en acier inoxydable, avec compartiment à journaux et une grande fente d'insertion pour format A4, Livré avec 2 clés, chevilles et vis ainsi qu'un emplacement pour le nom.
  • ZQYRLAR Boîte aux lettres à pilier Aluminium Vintage antirouille Rouge
    Quincaillerie Quincaillerie extérieure Boîte aux lettres et mobilier de hall Boîte aux lettres ZQYRLAR, Notre belle boîte aux lettres à pilier de style antique sera un supplément pratique ainsi que décoratif à votre jardin ou à votre entrée à la maison ou à votre lieu de travail. Cette boîte aux lettres
  • Axess Industries Armoire boite aux lettres sans fermeture
    Armoire à boites aux lettres en construction robuste. La structure est totalement en métal soudé. Porte étiquette embouti sur chaque porte. Porte anti-bruit pour éviter toute nuisance sonore lors des fermetures. Fermeture magnétique Coloris standard au choix
  • Axess Industries Armoire boite aux lettres visitable
    Armoire à boites aux lettres en construction robuste. La structure est totalement en métal soudé. Elle est composée dune porte visitable qui donne l'accès au 10 boites aux lettres. Porte anti-bruit pour éviter toute nuisance sonore lors des fermetures. Porte étiquette embouti sur chaque porteFerm...
  • Cadre d'Encastrement Boite aux Lettres - Couleur - Vert 6005
    La solution esthétique et pratique pour intégrer votre boite aux lettres dans votre clôture rigide ! Structure en acier renforcé et recouvert de résine haute résistance aux UV Dimensions hors tout : L 455 x H 455 X P58,2 mm Dimensions encastrement : minimum : L 320 x H 320 mm maximum : L 400 x 400 mm
  • Cadre d'Encastrement Boite aux Lettres - Couleur - Noir 9005
    Cadre d'Encastrement Boite aux Lettres - Couleur - Noir 9005
  • Safetool Boite aux lettres Safetool - beige - 32x32x40
    Boite aux lettres Safetool - beige - 32x32x40
  • Uniprodo Boite aux lettres inox - 3 casiers UNI_LETTER_01
    Boîte aux lettres inox - 3 compartiments La boîte aux lettres inox UNI_LETTER_01 de Uniprodo se présente avec 3 compartiments verrouillables ayant chacun un emplacement pour étiquette afin d'être utilisable par plusieurs personnes. Le système de boîte aux lettres moderne peut être utilisé dans les zones
  • Boite aux lettres Style américain Design Couleur argent Boite postale sur pied US Mailbox - 60144
  • Boite aux lettres Design en acier inoxydable
  • Boîte aux lettres 1er Prix, Anthracite
  • Boite aux lettres 1 porte Blanc-Gris Anthracite - CREASTUCE-08-SF
  • Boîte aux lettres missive galvanisé LB 3 - gris
  • Boite aux lettres Boite postale Murale Design Blanche Revêtement par poudre Courrier V13 - 60140
  • Boite aux lettres Design V18 Boite postale murale Anthracite Compartiment journal Revêtue par poudre - 60168
  • Boite aux lettres sur pieds 3 entrées Noire 3 compartiments Revêtement poudre - 60000
  • Boîte aux Lettre Murale en Fonte Courrier Vert Antique 30.50 cm x 25.50 cm - Tx-8-Vert-Bis
  • Boîte aux lettres sur pied Aluminium Vintage Antirouille Blanc
  • Boîte aux lettres missive galvanisé LB 3 - noir
  • Boîte aux lettres en métal américaine Décor Blanc Bo27140
  • Boite aux lettres sur pieds 3 entrées Blanc 3 compartiments Revêtement poudre - 60002

Sommaire

Depuis quelques années, les développeurs de GnuPG proposent un nouveau mécanisme de distribution et de découverte des clés OpenPGP. Au lieu de s’appuyer sur un réseau de serveurs de clés où chacun peut déposer librement des clés, le principe est de confier la distribution aux opérateurs de messagerie électronique, chaque opérateur devenant responsable de la distribution des clés pour les adresses de son propre domaine (c’est à dire., l’exploitant de example.org responsable de la distribution des clés des adresses @example.org).

Le mécanisme proposé est appelé Répertoire de clés Web ou WKD et est décrit dans un projet de l’IETF. J’en ai brièvement parlé dans un précédent journal. Ici, je décrirai plus en détail l’implémentation du protocole côté serveur. Cet article s’adresse donc davantage aux opérateurs de serveurs de messagerie qu’aux utilisateurs.

Présentation du protocole

Le protocole comprend deux parties distinctes:

  • le Répertoire de clés Web approprié est le répertoire pour que Bob obtienne la clé d’Alice;
  • le Protocole de mise à jour du répertoire de clés Web est le protocole d’alimentation, par lequel Alice fait connaître sa clé à son opérateur de messagerie afin qu’il puisse l’ajouter à son répertoire.

Les deux parties peuvent être utilisées indépendamment l’une de l’autre: un répertoire WKD ne peut pas être fourni via le Protocole de mise à jour WKD (il peut par exemple être saisi « manuellement » par l’opérateur, comme nous le verrons plus loin), et inversement Protocole de mise à jour WKD peut être utilisé pour fournir d’autres méthodes de distribution que WKD (par exemple DNS, avec DANE OpenPGP).

La combinaison de WKD et Protocole de mise à jour WKD est parfois appelé Service de clé Web ou WKS.

Le répertoire des clés Web

Lorsque Bob souhaite obtenir la clé d’Alice à partir de son adresse e-mail (alice@example), il construit une URL sous la forme suivante:

https://openpgpkey.example.org/.well-known/openpgpkey/example.org/hu/kei1q4tipxxu1yj79k9kfukdhfy631xe?l=alice

Chaîne kei1q4tipxxu1yj79k9kfukdhfy631xe est le condensat SHA-11 de la partie locale de l’adresse d’Alice (alice par conséquent, dans notre exemple), codé en Z-Base32.

Remarque

Vous pouvez utiliser la commande suivante pour calculer le condensat:

$ echo -n alice | openssl dgst -sha1 -binary | zbase32
kei1q4tipxxu1yj79k9kfukdhfy631xe

(bien sûr, en « situation réelle », vous n’avez jamais à le faire, votre client de messagerie le fait.)

Le serveur openpgpkey.example.org doit répondre à une requête HTTP sur cette URL en renvoyant une copie de la clé d’Alice, sous la forme d’un clé publique transférable ((Clé publique transférable ou TPK) conforme à la norme OpenPGP. La clé reçue peut être importée directement dans le trousseau public de Bob.

Notez la répétition du nom de domaine example.org dans l’URL ci-dessus (une fois dans le nom d’hôte, une fois dans le chemin d’accès aux ressources). L’URL est construite de cette manière afin de faciliter le déploiement d’un répertoire WKD qui gérerait plusieurs domaines. De même, le composant openpgpkey le nom d’hôte, qui semble redondant avec la ressource « bien connue » .well-known/openpgpkey, offre un niveau d’indirection qui permet d’héberger le répertoire sur une machine autre que celle située derrière le nom example.org.

Remarque

Les premières versions du brouillon WKD utilisaient un enregistrement SRV plutôt qu’un nom d’hôte avec un composant fixe pour fournir ce niveau d’indirection. Malheureusement, cela a causé trop de problèmes aux développeurs Javascript, ce langage (ou plutôt son environnement d’exécution, dans les navigateurs) n’offrant pas de fonctionnalités de résolution DNS dignes de ce nom.

Si une indirection n’est pas nécessaire, l’opérateur de example.org peut distribuer la clé d’Alice sous une URL légèrement plus simple, que nous appelons méthode directe (par opposition à l’URL précédente, qui représente le méthode avancée):

https://example.org/.well-known/openpgpkey/hu/kei1q4tipxxu1yj79k9kfukdhfy631xe?l=alice

Les opérateurs déployant WKD sont libres de choisir de prendre en charge la méthode directe ou la méthode avancée, selon qu’ils ont besoin du niveau d’indirection offert par la méthode avancée ou non. Les clients doivent d’abord essayer la méthode avancée, puis se rabattre sur la méthode directe si le sous-domaine openpgpkey n’existe pas.

Protocole de mise à jour du répertoire des clés Web

Pour déposer sa clé publique dans le répertoire WKD de son fournisseur de messagerie, Alice doit suivre les étapes suivantes.

Tout d’abord, elle doit demander à son fournisseuradresse de soumission, par une requête HTTP sur

https://openpgpkey.example.org/.well-known/openpgpkey/example.org/submission-address

(méthode « avancée ») ou (si openpgpkey.example.org n’existe pas) sur

https://example.org/.well-known/openpgpkey/submission-address

(« méthode directe). Le serveur répond avec une seule ligne contenant l’adresse e-mail à laquelle Alice doit envoyer sa clé.

Deuxièmement, Alice doit obtenir la clé publique du répertoire WKD, qu’elle utilisera pour crypter son message. Elle utilise le protocole pour cela Répertoire de clés Web décrit dans la section précédente, sur l’adresse de soumission qu’il vient de recevoir.

Troisièmement, Alice envoie un message à l’adresse de soumission spécifiée, chiffrée avec la clé publique qu’elle vient d’obtenir et contenant une copie de sa propre clé publique. Elle reçoit ensuite une demande de confirmation, envoyée à l’adresse alice@example.org et chiffré avec la clé publique qu’ils viennent d’envoyer.

Quatrièmement, Alice déchiffre la demande de confirmation, dans laquelle elle trouve un nonce. Elle répond à la demande de confirmation en renvoyant le nonce. Ce faisant, il prouve à l’exploitant de l’annuaire ① qu’il contrôle l’adresse e-mail (puisqu’il a reçu la demande de confirmation) et has qu’il possède la clé privée correspondant à la clé publique qu’elle a soumise à l’annuaire (puisqu’elle a pu déchiffrer la demande de confirmation et extraire le nonce). En conséquence, l’opérateur s’engage à publier sa clé.

Déploiement d’un répertoire en lecture seule

Dans cette section, nous verrons comment déployer un simple répertoire WKD, sans pour autant le service de ravitaillement fourni par le Protocole de mise à jour WKD. Ce type de déploiement peut par exemple convenir à un petit serveur personnel qui n’héberge qu’une petite poignée d’adresses. Il peut également servir de base à la mise en place d’un système de ravitaillement personnalisé (à partir d’une base de données utilisateurs par exemple).

Les manipulations décrites ci-dessous peuvent, comme souhaité, être effectuées directement sur le serveur web qui hébergera le répertoire ou bien sur une machine locale à partir de laquelle les fichiers seront copiés sur le serveur.

Installez le programme gpg-wks-server, la mise en œuvre de référence du protocole. Ce programme est normalement fourni avec GnuPG, mais il peut être empaqueté séparément sur votre distribution (sur Debian, il est dans le paquet nommé… gpg-wks-server, tout simplement).

Créez un dossier qui servira de racine pour le répertoire:

$ mkdir ~/wkd
$ chmod 0751 ~/wkd

Remarque

le chmod consiste à priver tout le monde (sauf l’utilisateur et les propriétaires de groupe du dossier) du droit de lecture sur le dossier. gpg-wks-server est psychorigide sur cette question et refusera catégoriquement de travailler sur un fichier lisible par tous.

Créez ensuite sous cette racine un dossier pour chaque domaine pour lequel votre répertoire distribuera les clés, puis initialisez le répertoire avec la commande --list-domains de gpg-wks-server :

$ mkdir ~/wkd/example.org
$ gpg-wks-server -C ~/wkd --list-domains
gpg-wks-server: domain example.org: subdir 'pending' created
gpg-wks-server: domain example.org: subdir 'hu' created
gpg-wks-server: domain example.org: submission address not configured
example.org

Vous pouvez ignorer le message en toute sécurité submission address not configured, car ce répertoire ne sera pas lié à Protocole de mise à jour WKD. Vous pouvez maintenant stocker des clés dans le répertoire. Si la clé que vous souhaitez déposer se trouve dans le trousseau public de votre compte utilisateur, obtenez son empreinte digitale:

$ gpg -k alice@example.org
pub   rsa2048 2020-05-13 [SC] [expires: 2022-05-11]
              7685DC4214D727BB011BD6B754B4CC7749CAE7C3
uid           [ultimate] Alice 
sub   rsa2048 2020-05-13 [E]

Ensuite aller à gpg-wks-server :

$ gpg-wks-server -C ~/wkd --install-key 7685DC4214D727BB011BD6B754B4CC7749CAE7C3 alice@example.org
gpg-wks-server: key 7685DC4214D727BB011BD6B754B4CC7749CAE7C3 published for alice@example.org

Au lieu d’une empreinte, vous pouvez également fournir gpg-wks-server un fichier contenant directement la clé à publier.

Le répertoire est prêt à être publié. Copiez le dossier ~/wkd à votre serveur Web si vous n’y étiez pas déjà et configurez votre logiciel serveur pour rendre le dossier disponible.

À ce stade, vous devrez décider si vous souhaitez utiliser des URL « directes » ou « avancées ». Pour le format direct, publiez le fichier ~/wkd/example.org sous le nom de .well-known/openpgpkey. Par exemple, en supposant que vous utilisez Apache httpd et que vous avez copié le dossier wkd dans /var/www/wkd, vous pouvez ajouter les lignes suivantes dans la configuration de l’hôte example.org :

Alias /.well-known/openpgpkey /var/www/wkd/example.org

  Require all granted

Si vous choisissez le format avancé, ajoutez des enregistrements à votre zone DNS A et AAAA sous le nom de openpgpkey, pointez ces enregistrements vers le serveur Web et ajoutez les lignes suivantes dans la configuration de l’hôte openpgpkey.example.org :

Alias /.well-known/openpgpkey /var/www/wkd

  Require all granted

Remarque

Notez la différence: dans le cas où le format avancé est utilisé, la racine du répertoire est publiée, tandis qu’au format direct, c’est le sous-dossier du domaine example.org.

Pour tester votre répertoire, sur votre machine locale, vous pouvez utiliser la commande --locate-external-keys de GnuPG:

$ gpg --locate-external-keys alice@example.org

Pour tester avec Thunderbird et Enigmail, commencez simplement à composer un message pour alice@example.org. Si vous n’avez pas déjà la clé d’Alice dans votre trousseau, Enigmail interrogera automatiquement le répertoire pour example.org et ramenez la clé.

Déploiement d’un service clé Web complet

Dans cette section, nous verrons comment déployer un répertoire WKD couplé à un service de ravitaillement implémentant le Protocole de mise à jour WKD.

Remarque

Pour simplifier les choses, nous supposerons que le serveur Web qui hébergera l’annuaire et le serveur de messagerie qui recevra les soumissions clés se trouvent sur la même machine. Si vous souhaitez séparer les deux, toutes les manipulations ci-dessous doivent être effectuées sur la machine sur laquelle le serveur de messagerie fonctionne. Pour la publication, vous devrez configurer un périphérique de synchronisation vous permettant de copier le contenu du répertoire du serveur de messagerie vers le serveur Web – soit à intervalles réguliers soit chaque fois que le contenu du répertoire changera (via inotifier par exemple).

Préparation du répertoire

Commencez par installer GnuPG et gpg-wks-server sur votre serveur, puis créez un compte utilisateur pour le service de ravitaillement, que nous appellerons ici wks :

# groupadd --system wks
# useradd --comment "Web Key Service" --home-dir "/var/lib/gnupg/wks -g wks --no-user-group --system --shell /bin/bash

Créez ensuite le dossier qui abritera le répertoire, /var/lib/gnupg/wks. Notez qu’il s’agit du dossier par défaut utilisé par gpg-wks-server ; vous êtes libre de choisir un autre dossier, mais dans ce cas vous devrez ajouter l’option -C DOSSIER à toutes les invocations de gpg-wks-serverau dessous de. Partout où vous décidez de créer le dossier, donnez-le à l’utilisateur wks et assurez-vous que le « reste du monde » n’y a pas accès en lecture.

# mkdir -p /var/lib/gnupg/wks
# chown wks:wks/var/lib/gnupg/wks
# chmod 0751 /var/lib/gnupg/wks

Les commandes suivantes doivent être effectuées sur le compte semaines. Créer dans un dossier /var/lib/gnupg/wks un sous-dossier pour chacun de vos domaines dont vous souhaitez publier les clés et initialiser le répertoire:

$ mkdir example.org
$ gpg-wks-server --list-domains
gpg-wks-server: domain example.org: subdir 'pending' created
gpg-wks-server: domain example.org: subdir 'hu' created
gpg-wks-server: domain example.org: submission address not configured
example.org

Décidez de l’adresse de soumission. Ici, nous choisirons wks-submission@example.org. Si vous hébergez plusieurs domaines, chaque domaine pouvez avoir votre propre adresse de soumission, mais vous pouvez également utiliser une seule adresse pour tous les domaines de votre annuaire.

Créez la clé associée à l’adresse de soumission:

$ gpg --batch --passphrase '' --quick-gen-key wks-submission@example.org

Notez que la clé privée n’a pas de phrase secrète, car elle doit pouvoir être utilisée indépendamment. A noter également qu’il expirera deux ans après sa création, il vous appartiendra d’envisager de prolonger sa date d’expiration avant la date limite. Pour demander dès le départ que la clé n’expire jamais, vous pouvez ajouter les mots clés default default never à la fin de la commande ci-dessus (les deux premiers mots clés demandent à GnuPG d’utiliser les algorithmes et le profil d’utilisation par défaut, le dernier demande que la clé générée n’expire jamais).

Enfin, publiez la clé du compte de soumission dans l’annuaire, puis publiez l’adresse de soumission elle-même:

$ gpg -k wks-submission@example.org
pub   rsa2048 2020-05-29 [SC] [expires: 2022-05-29]
      0D2652F979E05D919B64C808AAB89C4C439B2F67
uid           [ultimate] wks-submission@example.org
sub   rsa2048 2020-05-29 [E]

$ gpg-wks-server --install-key 0D2652F979E05D919B64C808AAB89C4C439B2F67wks-submission@example.org
gpg-wks-server: key 0D2652F979E05D919B64C808AAB89C4C439B2F67 published for wks-submission@example.org

$ echo wks-submission@example.org > example.org/submission-address

Configuration du serveur de messagerie

Le répertoire étant en place, vous devez maintenant configurer le serveur de messagerie afin que les messages envoyés à l’adresse de soumission choisie dans la section précédente (wks-submission@example.org) soit déplacé vers le programme gpg-wks-server , appelé sous le compte utilisateur responsable de l’annuaire (wks).

Il existe bien sûr plusieurs façons de le faire, qui dépendront de votre serveur de messagerie et de sa configuration déjà existante. Il n’est pas possible de couvrir toutes les configurations possibles et au final je vous renvoie à la documentation de votre logiciel serveur. Ce qui suit est à titre indicatif.

L’approche la plus simple consiste probablement à rediriger les messages envoyés vers wks-submission@example.org sur le compte local wks, puis installez la règle Procmail suivante dans le fichier ~/.procmailrc Compte wks :

:0
|gpg-wks-server --receive --from wks-submission@example.org --send

La commande --receive instruitgpg-wks-serverlire le message qu’il reçoit sur son entrée standard et agir sur le contenu du message (s’il s’agit d’une nouvelle soumission, envoyer une demande de confirmation; s’il s’agit d’une confirmation, vérifier qu’il correspond à une soumission en cours et que le nonce est correct). L’option --send demander que la réponse soit envoyée directement au système de messagerie, via la commande /usr/sbin/sendmail.

Une autre configuration possible avec Postfix est d’avoir les lignes suivantes dans le main.cf :

virtual_alias_maps = hash:/etc/postfix/virtual
mailbox_command_maps = hash:/etc/postfix/local_commands

La première ligne installe une « table d’alias virtuel », permettant, entre autres, de rediriger une adresse virtuelle vers un compte local. La deuxième ligne installe une table permettant de spécifier l’ordre de livraison à exécuter pour un compte local donné. Nous ajouterons la ligne suivante au tableau /etc/postfix/virtual :

wks-submission@example.org  wks

et la ligne suivante à la table /etc/postfix/local_commands :

wks  gpg-wks-server --receive --from wks-submission@example.org --send

Nous n’oublierons bien sûr pas d’exécuter postmap sur les tables après l’édition.

La dernière chose à faire est d’installer une tâche cron pour purger régulièrement les soumissions non confirmées:

42 3 * * * gpg-wks-server --cron

Ajoutez cette tâche au crontab de l’utilisateur wks. Modifiez la fréquence comme bon vous semble. À chaque appel, gpg-wks-server –cron supprimera les soumissions non confirmées datant de plus de trois jours.

Configuration du serveur Web

Le répertoire est maintenant prêt et connecté au système de messagerie pour recevoir les soumissions clés, il ne reste plus qu’à le rendre accessible via le web.

En supposant ① que votre serveur Web se trouve sur la même machine que votre serveur de messagerie, ② que votre serveur est Apache httpd et ③ que vous avez choisi le format URL direct, vous devez simplement ajouter les lignes suivantes dans la configuration de le hôte virtuel au service du terrain example.org :

Alias /.well-known/openpgpkey /var/lib/gnupg/wks/example.org

  Require all granted

Si vous avez plusieurs domaines, vous pouvez soit ajouter les lignes ci-dessus dans la configuration du hôte virtuel de chaque domaine, optez pour le format URL avancé. Dans ce dernier cas, créez un nouveau hôte virtuel qui sera dédié à l’annuaire et qui répondra au sous-domaine openpgpkey de chacun de vos domaines:

ServerName openpgpkey.example.org
ServerAlias openpgpkey.example.com
ServerAlias openpgpkey.example.net

Alias /.well-known/openpgpkey /var/lib/gnupg/wks

  Require all granted

Notez que les demandes WKD sont toujours effectuées via HTTPS, donc votre nouvel hôte doit avoir une configuration TLS correcte et un certificat valide pour tous vos domaines openpgpkey.*.

Test de service

Si vous utilisez Thunderbird et Enigmail, vous pouvez tester la publication de votre clé dans votre répertoire en ouvrant le « gestionnaire de clés » (Gestion des clés). Sélectionnez votre clé, puis lancez la commande Importer dans le répertoire de clés Web de votre fournisseur dans le menu Keyserver.

Enigmail enverra alors le message de soumission clé et vous devriez recevoir rapidement un message sur votre adresse de wks-submission@example.org. Ouvrez ce message et Enigmail reconnaîtra qu’il s’agit d’une demande de confirmation et vous demandera si vous souhaitez confirmer ou non la publication de votre clé. Acceptez et vous recevrez un nouveau message vous annonçant que votre clé a été publiée dans l’annuaire.

Si vous utilisez un client de messagerie sans prise en charge de protocole natif Protocole de mise à jour WKD, vous pouvez utiliser l’outil gpg-wks-client fourni par GnuPG. Notez que cet outil n’est pas nécessairement dans le PATH de votre shell, il est installé par défaut dans /usr/libexec (car il n’est pas vraiment conçu pour être appelé directement par l’utilisateur, mais plutôt par les clients de messagerie).

La commande suivante vérifie que le service d’annuaire pour example.org est en effet disponible:

$ /usr/libexec/gpg-wks-client --supported alice@example.org

Si la commande retourne une valeur différente de zéro, pas besoin d’aller plus loin, il y a un problème avec votre répertoire, probablement dans la configuration du serveur web.

Créez ensuite le message de soumission:

$ /usr/libexec/gpg-wks-client 7685DC4214D727BB011BD6B754B4CC7749CAE7C3 alice@example.org > submit-msg

Le fichier submit-msg contient le message de soumission prêt à être envoyé via votre client de messagerie habituel.

Remarque

Si vous avez un programme /usr/sbin/sendmail fonctionnel sur votre machine (qu’il s’agisse en fait de Sendmail ou d’un programme utilisant la même interface, tel que msmtp par exemple), vous pouvez demander gpg-wks-client envoyer le message lui-même avec l’option --send.

Lorsque vous recevez la demande de confirmation dans votre client de messagerie, déchiffrez-la et enregistrez-la dans un fichier, puis passez ce fichier à gpg-wks-client pour créer le message de confirmation:

$ /usr/libexec/gpg-wks-client --read < confirm-request > confirm-msg

Comme à l’étape précédente, envoyez le fichier confirm-msg via votre client habituel ou utilisez l’option --send partir gpg-wks-client prendre en charge.