Difference between revisions of "Pacman/Package signing (Español)"

From ArchWiki
Jump to: navigation, search
(Agregando llaves)
Line 108: Line 108:
 
  xargs pacman-key --recv-keys
 
  xargs pacman-key --recv-keys
  
==Firmar llaves==
+
==Troubleshooting==
Para que funcione la llave, el nivel de confianza tiene que ser cambiado.
+
===Cannot import keys===
  
Encuentre el desarrollador a quien le pertenece la llave en https://www.archlinux.org/developers/; el texto del enlace "PGP Key" es el '''keyid'''.  
+
Some ISPs block the port used to import PGP keys.  One solution is to use the MIT keyserver, which provides an alternate port.  To do this, edit {{ic|/etc/pacman.d/gnupg/gpg.conf}} and change the keyserver line to:
 +
{{bc|keyserver hkp://pgp.mit.edu:11371}}
  
Para firmar una llave localmente, use:
+
==Disabling signature checking==
 +
{{warning|Use with caution. Disabling package signing will allow pacman to install untrusted packages automatically.}}
  
  # pacman-key --lsign-key <keyid>
+
If you are not concerned about package signing, you can disable PGP signature checking completely. Edit {{ic|/etc/pacman.conf}} and uncomment the following line under [options]:
 +
SigLevel = Never
 +
This will result in no signature checking, which was the behavior before pacman 4.  If you decide to do this, you do not need to set up a keyring with pacman-key.  You can change this option later if you decide to enable package verification.
  
Para mas opciones, entre al menú de manejo de la llave usando el comando:
+
==Resetting all the keys==
  
# pacman-key --edit-key <keyid>
+
If you want to remove or reset all the keys installed in your system, you can remove {{ic|/etc/pacman.d/gnupg}} folder as root and rerun {{ic|pacman-key --init}} and following that add the keys as preferred.
 
+
y ahora mete {{Codeline|help}} aquí para listar las otras opciones.
+
 
+
Al contrario, pacman se puede configurar para confiar en cualquier llave en su llavero. Para hacer esto, agregue UNA de las siguientes lineas a {{Filename|/etc/pacman.conf}}:
+
SigLevel    = Required TrustAll
+
SigLevel    = Optional TrustAll
+
 
+
 
+
==Script para agregar las firmas PGP requeridas==
+
 
+
Cuando las llaves maestras son agregadas, ya no es necesario validar cada llave de desarrollador oficial o de usuario de confianza, por que ellos estan firmados en por lo menos tres llaves maestras.
+
 
+
===Script para agregar todas las llaves maestras===
+
 
+
Este script agrega todas las llaves maestras al almacenaje de llaves de pacman y pone el nivel de conianza en "marginal" (3).
+
 
+
{{Advertencia|Haga esto con precaucion. Por favor revize que las llaves listadas abajo coincidan con las llaves de [https://www.archlinux.org/master-keys/ master-keys]. Es posible que alguien pueda hackear las llaves maestras e instertar llaves GPG maliciosas, haciendo que todo el proceso de firmas algo inutil.}}
+
 
+
Este script debe ser ejecutado como root o agregar sudo antes del comando pacman-key.
+
 
+
for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
+
    pacman-key --recv-keys $key
+
    pacman-key --lsign-key $key
+
    printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/ \
+
        --no-permission-warning --command-fd 0 --edit-key $key
+
done
+
 
+
===Script para agregar todas las llaves GPG de developers de la pagina de developers: [https://www.archlinux.org/developers/ Developers page]===
+
 
+
Este script utiliza curl para descargar la pagina de Developers, extraer las llaves PGP y utiliza {{ic|pacman --recv-keys}} con {{ic|pgp.mit.edu}} como el servidor de llaves, para agregarlos al almacenaje de llaves de pacman.
+
 
+
{{Advertencia|Haga esto con precaucion.  Es posible que alguien pueda hackear las llaves maestras de la pagina de Developers e instertar llaves GPG maliciosas,algo inutil.}}
+
 
+
 
+
Este script debe ser ejecutado como root o agregar sudo antes del comando pacman-key.
+
 
+
curl <nowiki>https://www.archlinux.org/developers/</nowiki> |
+
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
+
xargs pacman-key --recv-keys
+
 
+
===Script para agregar las llaves PGP desde la [https://www.archlinux.org/trustedusers/ pagina de usuarios de confianza]===
+
 
+
Este script utiliza curl para descargar la pagina de usuarios de confianza, extrae las llaves PGP y utiliza {{ic|pacman --recv-keys}} con {{ic|pgp.mit.edu}} como el servidor de llaves, para agregarlos al almacenaje de llaves de pacman.
+
 
+
{{Advertencia|Haga esto con precaucion.  Es posible que alguien pueda hackear las llaves maestras de la pagina de usuarios de confianza e instertar llaves GPG maliciosas,algo inutil.}}
+
 
+
Este script debe ser ejecutado como root o agregar sudo antes del comando pacman-key.
+
 
+
curl <nowiki>https://www.archlinux.org/trustedusers/</nowiki> |
+
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
+
xargs pacman-key --recv-keys
+
 
+
=== Script para agregar todas las llaves GPG (de Desarrolladores y usuarios de confianza) ===
+
 
+
{{Advertencia|Haga esto con precaucion. Es posible que alguien pueda hackear las llaves de los los desarrolladores oficiales o de usuarios de confianza e inserte llaves GPG maliciosas, haciendo que todo el proceso de firmas.}}  
+
 
+
 
+
curl <nowiki>https://www.archlinux.org/{developers,trustedusers}/</nowiki> |
+
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
+
xargs pacman-key --recv-keys
+
 
+
==Solucion a posibles problemas si la importacion de llaves falla==
+
 
+
El problema puede ser porque ciertos proveedores de internet bloquean el puerto utilizado para la importacion de llaves.
+
 
+
Edite el archivo {{ic|/etc/pacman.d/gnupg/gpg.conf}} y remplaze la linea  {{ic|keyserver hkp://keys.gnupg.net}} con  {{ic|keyserver hkp://pgp.mit.edu:11371}}. Despues de esto, todo debera funcionar bien.
+

Revision as of 17:08, 21 January 2012

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

pacman-key es una nueva herramienta incluida con pacman 4. Cumple la función de manejar la lista de llaves PGP que mantiene pacman en la nueva implementación de la firma de paquetes.

Visión general

El sistema de la firma de paquetes de pacman se basa en el modelo de "confianza web" para garantizar que los paquetes proceden de los desarrolladores y no de alguien que pretenda suplantarlos. Los desarrolladores y los TUs (usuarios de confianza) disponen de llaves PGP individuales para firmar digitalmente sus paquetes. Además, cuando configuras pacman, tú también obtienes una llave personal.

Una llave PGP permite a los desarrolladores firmar sus paquetes de una forma única, asegurando que ellos hicieron el paquete y no un impostor.

Un keyid es una versión corta de una llave que puede usarse para identificar a dicha llave sin escribirla por completo, dado que éstas pueden ser muy largas.

Formatos de keyid:

  • Keyids como "6645 B0A8 C700 5E78 DB1D 7864 F99F FE0F EAE9 99BD" tienen que ser comprimidas a "6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD" (sin espacios).
  • El bit "0x" es opcional.

Las llaves se pueden usar para firmar otras llaves, lo que significa que el propietario de la llave de firma da el visto bueno a la autenticidad de la llave firmada. Para confiar en la autenticidad de un paquete, es necesario tener una cadena de firmas de tu propia llave PGP que confirme la autenticidad del paquete. De acuerdo con la estructura de llaves de Arch, esto se puede dar de tres formas:

  • Paquetes propios: Tu construyes tus paquetes y los firmas con tu llave personal.
  • Paquetes no oficiales: Un desarrollador construye un paquete y lo firma. Has de usar tu llave personal para firmar la llave del desarrollador.
  • Paquetes oficiales: Un desarrollador construye un paquete y lo firma. La llave del desarrollador ha sido firmada por las llaves maestras de Arch. Has de usar tu llave para firmar las llaves maestra y otorgarles confianza para darle el visto bueno a los desarrolladores.

Configuración

Configurando pacman

En primer lugar, debes de decidir el nivel de validación que quieres. Esto se configura usado la opción SigLevel /etc/pacman.conf. En este fichero hay varios comentarios, aunque puede consultar pacman.conf man page para más detalles.

Advertencia: La opción TrustAll existe para tareas de depuración y hace muy fácil confiar en las llaves que no han sido verificadas. Se recomienda usar TrustedOnly para todos los repositorios oficiales.

A diciembre de 2011, la base de datos de firmas no ha sido implementada todavía, por lo que es necesario añadir la opción DatabaseOptional si usas Required, por ejemplo:

SigLevel = Required DatabaseOptional TrustedOnly

Inicializando el llavero (keyring)

Para configurar el llavero de pacman has de usar:

# pacman-key --init

Esto configura el nuevo llavero en /etc/pacman.d/gnupg y genera una llave maestra para tu sistema.

Gestionando el llavero (keyring)

Las llaves necesarias para verificar las firmas de los paquetes se almacenan en un "llavero" (keyring) gestionado por pacman-key. Cuando se necesita una llave que no está en el llavero, pacman y pacman-key la obtienen del servidor de llaves (keyserver). El servidor de llaves utilizado está configurado en /etc/pacman.d/gnupg/gpg.conf, pudiendo modificarse mediante la opción --keyserver. (Si estás buscando diferentes servidores de llaves, podrás encontrar un breve lista en el artículo de Wikipedia.)

Las llaves PGP son habitualmente demasiado grandes (2048 bits o más) para que trabajen con ellas los humanos, así que se reducen a un código hash para crear una huella de 40 dígitos hexadecimales. Los últimos 8 dígitos se conocen como el ID de llave (key ID) y suele usarse como el "nombre" de la llave. La huella completa se utiliza cuando quieres comprobar a mano si dos llaves son la misma.

Llaves maestras

Hay 5 llaves maestras de Arch Linux que se usan para firmar las llaves de los desarrolladores y los TUs (usuarios de confianza) y, por lo tanto, estas llaves deberían estar en tu llavero. Los IDs de estas llaves están disponibles en la página de Llaves Maestras de Firmas. Para instalarlas, deberás ejecutar:

# pacman-key -r <keyid> <keyid> <keyid> <keyid> <keyid>

También es necesario que firmes localmente estas llaves y establezcas su nivel de confianza a, como mínimo, "marginal":

# pacman-key --edit-key <keyid> <keyid> <keyid> <keyid> <keyid>

Antes de que firmes o confíes en una llave, deberías verificar su huella (fingerprint). El modo más seguro de hacerlo es no usar un ordenador, por ejemplo, invitando a Allan a una cerveza y pidiéndole en persona la huella de su llave pública. Es razonablemente seguro contrastar la huella entre varios listados diferentes, tal como la página de Llaves Maestras de Firmas y la bitároca de Allan (inglés).

gpg> lsign
...
 Primary key fingerprint: ...
...
Really sign? (y/N)

Si la huella coincide, continua y fírmala. Deberías asignar, al menos, nivel de confianza "marginal" para cada una de las llaves maestras.

Really sign? (y/N) y
gpg> trust
...
Your decision? 3
gpg> q
Save changes? (y/N) y

Este proceso se repetirá para cada llave maestra.

Llaves de desarrolladores oficiales

Las llaves de los desarrolladores oficiales y de los TU (usuarios de confianza) están firmadas con las llaves maestras. Cada vez que pacman encuentre una llave que no reconozca, te preguntará si quieres descargarla del servidor de llaves. Una vez descargada la llave del desarrollador, no tendrás que volverlo a hacer y podrá ser reutilizada para verificar cualquier otro paquete firmado por éste.

Llaves no oficiales

Si quieres añadir un llave no oficial a tu llavero, deberás hacerlo manualmente usando pacman-key. En primer lugar, obtén el ID de llave de su propietario. Ejecuta:

# pacman-key -r <keyid>

para descargarla del servidor de llaves. Asegúrate de verificar la huella, tal como harías con una llave maestra o cualquier otra llave que vayas a firmar. Tras verificar la huella, deberás firmar esta llave localmente:

# pacman-key --lsign-key <keyid>

A partir de ahora, confías en en esa llave para firmar paquetes.

Añadir automáticamente llaves

Esta sección proporciona algunos scripts que pueden usarse para descargar las llaves automáticamente. Para evitar establecer confianza a llaves maliciosas, se recomienda un uso precavido.

Llaves maestras

Advertencia: Usar con precaución. Este script establecerá automáticamente como confiable cualquier llave que descargues. Por consiguiente, ¡se recomienda que verifiques las huellas ANTES de usar pacman!

Se deberá ejecutar como root para añadir las llaves.

for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
    pacman-key --recv-keys $key
    pacman-key --lsign-key $key
    printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/ \
        --no-permission-warning --command-fd 0 --edit-key $key
done

Llaves de desarrolladores y TUs (usuarios de confianza)

Advertencia: Este script debería usarse únicamente para descargar llaves si estás usando TrustedOnly!

Este script usa curl para descargarse la página de los Desarrolladores, extraer las huellas PGP de las llaves y usa pacman --recv-keys con pgp.mit.edu como servidor de llaves, para añadirlas al llavero de pacman.

Se deberá ejecutar como root para añadir las llaves o añadir sudo antes al comando pacman-key.

curl https://www.archlinux.org/{developers,trustedusers}/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Troubleshooting

Cannot import keys

Some ISPs block the port used to import PGP keys. One solution is to use the MIT keyserver, which provides an alternate port. To do this, edit /etc/pacman.d/gnupg/gpg.conf and change the keyserver line to:

keyserver hkp://pgp.mit.edu:11371

Disabling signature checking

Warning: Use with caution. Disabling package signing will allow pacman to install untrusted packages automatically.

If you are not concerned about package signing, you can disable PGP signature checking completely. Edit /etc/pacman.conf and uncomment the following line under [options]:

SigLevel = Never

This will result in no signature checking, which was the behavior before pacman 4. If you decide to do this, you do not need to set up a keyring with pacman-key. You can change this option later if you decide to enable package verification.

Resetting all the keys

If you want to remove or reset all the keys installed in your system, you can remove /etc/pacman.d/gnupg folder as root and rerun pacman-key --init and following that add the keys as preferred.