Selon BuildYourOwnKernel , il existe deux méthodes pour obtenir le code source:
apt-get
git
Le code source de Git n'est pas signé.
Est-ce qu'apt-get est signé par l'équipe d'ubuntu?
Eh bien, le fichier dsc est signé et contient des hachages des fichiers à télécharger:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.0
Source: linux
...
Checksums-Sha1:
180ab617036593212274177eff3a67f437c1b5ea 132860730 linux_4.4.0.orig.tar.gz
be23819008464f4aa49bed094d19aac086f16572 13880183 linux_4.4.0-112.135.diff.gz
Checksums-Sha256:
730e75919b5d30a9bc934ccb300eaedfdf44994ca9ee1d07a46901c46c221357 132860730 linux_4.4.0.orig.tar.gz
b5b6adc87ea98ffa48d31aee2ee5ec301a01c2b4fa64fa20d1564a4e95bdd6ad 13880183 linux_4.4.0-112.135.diff.gz
Files:
2070b49688e8d7ee7ff4c33590afc698 132860730 linux_4.4.0.orig.tar.gz
b349ae228d1659789e713b8ff2262eac 13880183 linux_4.4.0-112.135.diff.gz
Ainsi, un fichier dsc signé contenant les sommes de contrôle des archives contient le code source signé.
Je veux dire, mon ordinateur vérifiera-t-il la signature lorsque je la téléchargerai?
Il essaie. apt-get
tente de le vérifier:
$ apt-get source linux-image-4.4.0-87-generic
Reading package lists... Done
Picking 'linux' as source package instead of 'linux-image-4.4.0-87-generic'
NOTICE: 'linux' packaging is maintained in the 'Git' version control system at:
git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial
Please use:
git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 147 MB of source archives.
Get:1 ftp://ftp.iitb.ac.in//os/ubuntu/archives/ubuntu xenial-security/main linux 4.4.0-112.135 (dsc) [9,712 B]
Get:2 ftp://ftp.iitb.ac.in//os/ubuntu/archives/ubuntu xenial-security/main linux 4.4.0-112.135 (tar) [133 MB]
Get:3 ftp://ftp.iitb.ac.in//os/ubuntu/archives/ubuntu xenial-security/main linux 4.4.0-112.135 (diff) [13.9 MB]
Fetched 147 MB in 4s (31.8 MB/s)
gpgv: Signature made Fri 19 Jan 2018 17:14:04 IST using RSA key ID CBEECEA3
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./linux_4.4.0-112.135.dsc
dpkg-source: info: extracting linux in linux-4.4.0
dpkg-source: info: unpacking linux_4.4.0.orig.tar.gz
dpkg-source: info: applying linux_4.4.0-112.135.diff.gz
dpkg-source: info: upstream files that have been modified:
Mais dans mon cas, cela n’a pas abouti car je n’avais pas encore importé la clé correspondante. Les fichiers dsc sont généralement signés par le développeur qui les a créés et AFAICT n’existe pas d’endroit unique où toutes ces clés sont répertoriées. Les différents développeurs Ubuntu sont membres de différents groupes sur Launchpad, et les profils Launchpad des développeurs doivent répertorier leurs clés GPG. Par exemple, voir l'équipe Ubuntu Kernel Uploaders , ou l'équipe combinée de développeurs Ubunt (qui à son tour comprend de nombreuses autres équipes).
Dans ce cas spécifique, le signataire est un employé de Canonical Stefan Bader . Vous pouvez récupérer la clé sur le serveur de clés Ubuntu, mais vous voudrez peut-être le faire en utilisant HKPS .
Existe-t-il un moyen de vérifier ma signature avec une autre méthode?
L'outil dscverify
peut être utilisé pour cela.
Je peux voir que les balises git sont signées, mais je ne peux pas obtenir les clés publiques et je ne peux pas non plus vérifier que ces clés publiques sont sécurisées (sont-elles signées par l'équipe Ubuntu?)
Eh bien, passez par Stefan Bader ou Andy Whitcroft (qui semble avoir signé cette balise , par exemple) les listes de serveurs de clés, oui.