2011-04-18 6 views
25

He usado emacs por solo medio año desde 23.1 hasta 23.3.¿dónde puedo encontrar la clave pública para Gnu Emacs?

Cada vez que traté de encontrar la clave pública gpg para emacs para poder verificar el paquete tar.gz con tar.gz.sig publicado con cada versión nueva. Resultó que fallé cada vez: -].

Parece que debería ir a buscar primero la clave pública, y buscó el sitio web de emacs, pero nunca encontró una señal ...

sólo puedo encontrar la suma de comprobación SHA1 en la lista de correo http://lists.gnu.org/archive/html/info-gnu-emacs/2011-03/msg00000.html a hacer la comprobación de integridad

No me cabe duda de que la seguridad de FSF, por cierto. solo curioso ... nunca use gpg antes ...

¿Me puede dar un enlace?

Gracias

Respuesta

34

Si intenta verificar la firma usando

gpg --verify <pkg>.key 

que obtendrá una salida como la siguiente:

gpg: Signature made 02/17/05 14:02:42 GTB Standard Time using DSA key ID BE216115 
gpg: Can't check signature: No public key 

El ID de la llave que busca es BE216115 , entonces le pides a gpg que lo recupere usando:

gpg --recv-keys BE216115 

que dio como resultado lo siguiente en mi instalación:

gpg: requesting key BE216115 from hkp server keys.gnupg.net 
gpg: key BE216115: public key "Francesco Potortì <[email protected]>" imported 
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model 
gpg: depth: 0 valid: 1 signed: 1 trust: 0-, 0q, 0n, 0m, 0f, 1u 
gpg: depth: 1 valid: 1 signed: 6 trust: 0-, 0q, 0n, 0m, 1f, 0u 
gpg: depth: 2 valid: 6 signed: 1 trust: 0-, 0q, 0n, 6m, 0f, 0u 
gpg: Total number processed: 1 
gpg:    imported: 1 

Ahora, puede verificarlo. Pero ya que no ha asignado ninguna confianza a esta clave, la salida será:

gpg: Signature made 02/17/05 14:02:42 GTB Standard Time using DSA key ID BE216115 
gpg: Good signature from "Francesco Potortì <[email protected]>" 
gpg:     aka "Francesco Potortì <[email protected]>" 
gpg:     aka "Francesco Potortì <[email protected]>" 
gpg:     aka "Francesco Potortì <[email protected]>" 
gpg: WARNING: This key is not certified with a trusted signature! 
gpg:   There is no indication that the signature belongs to the owner. 
Primary key fingerprint: 4B02 6187 5C03 D6B1 2E31 7666 09DF 2DC9 BE21 6115 

Así, se sabe que la firma es válida, pero no está confiando en la clave pública. Puede confiar o firmar la clave pública usando:

gpg --edit-key BE216115 

En el símbolo del sistema de tipo help para ver todas las opciones disponibles. Para más información, vea Using the GNU Privacy Guard

+0

muchas gracias, así es como funciona gpg – sfszh

+0

Posiblemente de interés: http://security.stackexchange.com/q/4161/10198 – sampablokuper

+0

¿Cómo sé que puedo confiar en ti ('BE216115' es la clave)? Además, simplemente confiar en cualquier clave adicional no parece ser una buena práctica. – Zelphir

17

El llavero de GNU está en /[email protected]:/gnu/gnu-keyring.gpg

puede importar de forma local (después de la descarga) con

gpg --import gnu-keyring.gpg 
+0

Gracias. La respuesta aceptada no especifica qué hacer cuando no hay un servidor de claves. –

+0

¿No es esto un poco exagerado solo por verificar las descargas? –

+2

@JeffBurdges Si está descargando un software que luego instalará y ejecutará (posiblemente como root), parece razonable verificar que es el software correcto. –

8

La respuesta de @vhallac está ahora fuera de fecha (I' estoy intentando verificar una descarga de emacs-24.4). Si no desea descargar e importar todo el llavero GNU (como se discutió en @JSON), aquí hay una forma de hacerlo. En esta respuesta mostraré lo que funciona hoy, pero también cómo descubrir qué funcionará dentro de un año.

Primero descargue emacs y su archivo .sig.Tengo:

$ ls | grep emacs 
emacs-24.4.tar.xz 
emacs-24.4.tar.xz.sig 

Asumiendo que ya ha instalado gpg, tratar de verificarlo:

$ gpg --verify emacs-24.4.tar.xz.sig 
gpg: Signature made Mon 20 Oct 2014 02:58:21 PM EDT using RSA key ID A0B0F199 
gpg: Can't check signature: public key not found 

En este intento, se produce un error (verá un intento exitoso al final de este post) . No tengo la clave pública. El resultado le indica qué clave pública necesita obtener: A0B0F199. (Esto es lo que lo más probable es el cambio en el futuro.)

Así que intenta descargar con el comando por defecto:

$ gpg --recv-keys A0B0F199 
gpg: requesting key A0B0F199 from hkp server keys.gnupg.net 
(...hangs here...) 

Sólo cuelga. Eso es porque tengo ufw (mi software de firewall Linux) bloqueando la mayoría de los puertos. Se puede decir que gpg para utilizar el puerto 80, así:

$ gpg --keyserver hkp://keys.gnupg.net:80 --recv-keys A0B0F199 
gpg: requesting key A0B0F199 from hkp server keys.gnupg.net 
gpgkeys: key A0B0F199 not found on keyserver 
gpg: no valid OpenPGP data found. 
gpg: Total number processed: 0 

que consiguió a través del firewall, pero falla porque, por alguna razón, las teclas/FSF Emacs ya no están siendo almacenados en el servidor de GnuPG. Así que probé el otro servidor de claves que conozco y tengo cierto nivel de confianza de:

$ gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys A0B0F199 
gpg: requesting key A0B0F199 from hkp server pool.sks-keyservers.net 
gpg: key A0B0F199: public key "Glenn Morris <[email protected]>" imported 
gpg: Total number processed: 1 
gpg:    imported: 1 (RSA: 1) 

OK, funcionó. Ahora compruébelo:

$ gpg --list-keys 
... 
pub 2048R/A0B0F199 2012-12-23 [expires: 2015-12-23] 
uid     Glenn Morris <[email protected]> 
sub 2048R/951C59EC 2012-12-23 [expires: 2015-12-23] 

Sí, lo conseguí.

Ahora puede verificar el emacs descargado tar:

$ gpg --verify emacs-24.4.tar.xz.sig 
gpg: Signature made Mon 20 Oct 2014 02:58:21 PM EDT using RSA key ID A0B0F199 
gpg: Good signature from "Glenn Morris <[email protected]>" 
gpg: WARNING: This key is not certified with a trusted signature! 
gpg:   There is no indication that the signature belongs to the owner. 
Primary key fingerprint: B294 26DE FB07 724C 3C35 E5D3 6592 E9A3 A0B0 F199 

La firma es "bueno", pero no seguro. Vea las otras respuestas sobre cómo confiar en esa clave.

+1

Puede crear un archivo gpg.conf con una línea para el servidor de claves 'keyserver hkp: //pool.sks-keyservers.net: 80'. Coloque este archivo gpg.conf en '~/.gnupg' (en entornos unix) o en' c:/Users/USERNAME/AppData/Roaming/gnupg' en Windows –

3

Hay un archivo README en el nivel raíz del servidor FTP GNU que explica cómo usar las firmas.

Consulte ftp://ftp.gnu.org/README para la versión actualizada.

El archivo actual dice:

There are also .sig files, which contain detached GPG signatures of the above 
files, automatically signed by the same script that generates them. 

You can verify the signatures for gnu project files with the keyring file from: 
    ftp://ftp.gnu.org/gnu/gnu-keyring.gpg 

In a directory with the keyring file, the source file to verify and the 
signature file, the command to use is: 

    $ gpg --verify --keyring ./gnu-keyring.gpg foo.tar.xz.sig 
Cuestiones relacionadas