GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo recuperar de forma segura el código fuente del kernel de Ubuntu?

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í.


Ubuntu
  1. Cómo actualizar el kernel de Linux en Ubuntu

  2. Cómo eliminar kernels antiguos en Ubuntu

  3. Cómo instalar el código de Visual Studio en Ubuntu 18.04

  4. ¡Lanzamiento del kernel de Linux 5.13! Cómo instalar en Ubuntu 21.04

  5. Cómo instalar Linux Kernel 4.3 en Ubuntu y LinuxMint

Cómo instalar el último kernel de Linux 4.8 en Ubuntu 16.04

Cómo instalar Linux Kernel 4.7.2 en Ubuntu 16.04 LTS

Cómo instalar fácilmente Linux Kernel 4.10 en Ubuntu 16.04, Ubuntu 16.10

Cómo instalar bloques de código en Ubuntu 16.04, Ubuntu 18.04, 19.04

Cómo obtener Linux Kernel 5.0 en Ubuntu 18.04 LTS

Cómo instalar el kernel de Liquorix en Ubuntu 20.04