Según BuildYourOwnKernel, hay dos formas de obtener el código fuente:
apt-get
- ¿Está apt-get firmado por el equipo de Ubuntu?
- Quiero decir, ¿mi computadora verificará la firma cuando la descargue?
- ¿Hay alguna forma de verificar yo mismo la firma con un método alternativo?
git
El código fuente de Git no está firmado.
- ¿Hay algún lugar donde pueda encontrar la firma?
- Puedo ver que las etiquetas git están firmadas, pero no puedo obtener las claves públicas y tampoco puedo verificar que estas claves públicas sean seguras (¿están firmadas por el equipo de Ubuntu?)
Respuesta aceptada:
¿Está apt-get firmado por el equipo de ubuntu?
Bueno, el archivo dsc está firmado y contiene hashes de los archivos que se descargarán:
-----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
Entonces, un archivo dsc firmado con sumas de verificación de los tarballs en él es lo más cercano que obtendrá al código fuente firmado.
Quiero decir, ¿mi computadora verificará la firma cuando la descargue?
Lo intenta. apt-get
intenta verificarlo:
$ 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:
Pero en mi caso no funcionó porque aún no había importado la clave correspondiente. Los archivos dsc generalmente están firmados por el desarrollador que los creó, y AFAICT no existe un solo lugar donde se enumeren todas esas claves. Los diversos desarrolladores de Ubuntu son miembros de varios grupos en Launchpad, y los perfiles de Launchpad de los desarrolladores deben enumerar sus claves GPG. Por ejemplo, vea el equipo Ubuntu Kernel Uploaders o el equipo combinado Ubuntu Developers (que a su vez incluye muchos otros equipos).
Relacionado:¿Cómo usar 'chmod' en una partición NTFS (o FAT32)?En este caso específico, el firmante es el empleado de Canonical Stefan Bader. Puede obtener la clave del servidor de claves de Ubuntu, pero es posible que desee hacerlo mediante HKPS.
¿Hay alguna forma de verificar yo mismo la firma con un método
alternativo?
El dscverify
herramienta se puede utilizar para eso.
Puedo ver que las etiquetas de git están firmadas, pero no puedo obtener las claves públicas
y tampoco puedo verificar que estas claves públicas sean seguras (¿están firmadas
por el equipo de Ubuntu?)
Bueno, siguiendo las listas de servidores de claves de Stefan Bader o Andy Whitcroft (quien parece haber firmado esta etiqueta, por ejemplo), sí.