Vérification manuelle de la signature des dépôts Debian

Bonjour,
je souhaite vérifier manuellement la signature du fichier Release de la distribution buster de http://deb.debian.org/debian/ mais je bloque sur l’import des clefs publiques.

Je sais que apt vérifie tout seul la signature de ces fichiers mais je souhaite tout de même le faire manuellement.

J’ai donc téléchargé les trois fichiers suivants, situés dans le répertoire http://deb.debian.org/debian/dists/buster/ :
InRelease : fichier contenant les données du dépôt+ la signature embarquée (nouveau format depuis Debian 10)
Release : fichier contenant les données du dépôt uniquement (legacy)
Release.gpg : fichier contenant la signature détachée et associée à Release (legacy)

On peut donc soit traiter InRelease soit traiter ( Release + Release.gpg ). J’ai choisi cette dernière option.

Quand je tente une vérification, voici ce que j’obtiens :

$ gpg --verify Release.gpg Release
gpg: Signature faite le sam. 09 mai 2020 11:52:30 CEST
gpg:                avec la clef RSA 16E90B3FDF65EDE3AA7F323C04EE7237B7D453EC
gpg: Impossible de vérifier la signature : No public key
gpg: Signature faite le sam. 09 mai 2020 11:52:30 CEST
gpg:                avec la clef RSA 0146DC6D4A0B2914BDED34DB648ACFD622F3D138
gpg: Impossible de vérifier la signature : No public key
gpg: Signature faite le sam. 09 mai 2020 11:56:26 CEST
gpg:                avec la clef RSA 6D33866EDD8FFA41C0143AEDDCC9EFBF77E11517
gpg: Impossible de vérifier la signature : No public key

Il ne peut pas vérifier la signature car il ne dispose pas de la clef publique associée. Pas de soucis, tentons de l’ajouter au trousseau :

$ gpg --receive-keys 6D33866EDD8FFA41C0143AEDDCC9EFBF77E11517
gpg: key DCC9EFBF77E11517: new key but contains no user ID - skipped
gpg:       Quantité totale traitée : 1
gpg:                 sans identité : 1

C’est un comportement que j’avais déjà observé par ailleurs. Je crois comprendre que sur certains serveurs, les informations liées à la clef ne sont pas diffusé. Mais du coup, il m’est impossible de l’importer… Comment faire ???

Comme je sais que apt arrive bien à se débrouiller, je me dis qu’il doit bien avoir la clef quelque part et c’est en effet le cas :

$ apt-key list
(...)
/etc/apt/trusted.gpg.d/debian-archive-buster-stable.gpg
-------------------------------------------------------
pub   rsa4096 2019-02-05 [SC] [expire : 2027-02-03]
      6D33 866E DD8F FA41 C014  3AED DCC9 EFBF 77E1 1517
uid          [ inconnue] Debian Stable Release Key (10/buster) <debian-release@lists.debian.org>
(...)

Je suppose que je pourrais me dépatouiller en important la clef /etc/apt/trusted.gpg.d/debian-archive-buster-stable.gpg dans mon trousseau gpg mais j’aimerais faire sans… Avez-vous des idées ? Savez-vous pourquoi mon --receive-key ne fonctionne pas ?

Merci d’avance :slight_smile:

Donut

Alors j’ai cherché et je suis tombé sur ce fil de discussion.
En changeant le serveur de clef, on arrive bien à récupérer la clef en question :

$ gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 6D33866EDD8FFA41C0143AEDDCC9EFBF77E11517
gpg: clef DCC9EFBF77E11517 : clef publique « Debian Stable Release Key (10/buster) <debian-release@lists.debian.org> » importée
gpg:       Quantité totale traitée : 1
gpg:                     importées : 1

Ceci dit :

  1. c’est pas un peu moche de passer par les serveurs de clefs d’Ubuntu ? Quelle serait selon vous la bonne façon de procéder ??

  2. l’option --keyserver est deprecated, le man indique qu’il faut passer par dirmngr.conf mais je ne sais pas du tout où se situe ce fichier ? Il n’y rien ni dans /etc/ ni dans $HOME/.gnupg/…

–keyserver name
This option is deprecated - please use the --keyserver in ‘dirmngr.conf’ instead.

en fait ma question pourrait se décomposer en deux :

  1. [specifique Debian] : où pouvons-nous trouver de façon fiable les clefs publiques des dépôts Debian ?

  2. [specifique gpg] : quelles sont les « best practice » pour manipuler gpg avec l’évolution des serveurs de clefs qui, pour certains, ne diffusent plus les informations userid liées à la clef générant ainsi une erreur lors de l’importation avec gpg --receive-key ?

Il te suffit simplement de le créer et de remplir dedans les valeurs nécessaires, par exemple :

$ echo "keyserver hkps://keys.openpgp.org" ~/.gnupg/dirmngr.conf


$ apt search keyring

te permettra de trouver entres autres l’ensemble des clés relatives aux dépôts Debian ! :wink:

ça me semble être le rôle du paquet
https://packages.debian.org/buster/debian-archive-keyring

apt show debian-archive-keyring
Package: debian-archive-keyring
Version: 2019.1
Priority: important
Section: misc
Maintainer: Debian Release Team <packages@release.debian.org>
Installed-Size: 203 kB
Tag: role::data, security::authentication, suite::debian
Download-Size: 75,1 kB
APT-Manual-Installed: yes
APT-Sources: https://cdn-aws.deb.debian.org/debian buster/main amd64 Packages
Description: Ensemble de clés GnuPG pour l'archive Debian
 Le projet Debian signe électroniquement ses fichiers « Release ». Ce
 paquet contient les clés utilisées pour cela.
apt policy debian-archive-keyring
debian-archive-keyring:
  Installé : 2019.1
  Candidat : 2019.1
 Table de version :
 *** 2019.1 990
        500 https://cdn-aws.deb.debian.org/debian buster/main amd64 Packages
        500 https://cdn-aws.deb.debian.org/debian buster/main i386 Packages
        990 https://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
        990 https://cdn-aws.deb.debian.org/debian bullseye/main i386 Packages
        100 https://cdn-aws.deb.debian.org/debian sid/main amd64 Packages
        100 https://cdn-aws.deb.debian.org/debian sid/main i386 Packages
        100 /var/lib/dpkg/status
     2017.5+deb9u1 500
        500 https://cdn-aws.deb.debian.org/debian stretch/main amd64 Packages
        500 https://cdn-aws.deb.debian.org/debian stretch/main i386 Packages

Merci pour vos infos :slight_smile:
(je les avais vues et prises en compte mais j’ai zappé de vous répondre ^^)

Oui rajouter le bon keyserver dans dirmngr.conf est sans doute la meilleure chose à faire.

Je passe le sujet à résolu du coup

Bonne soirée à tous :slight_smile: