Cambiando vencimiento llave GPG

Las llaves GPG que me identifican les coloco un vencimiento anual.

Mi llave pública GPG en keybase

entonces cada año en esta época debo proceder a renovar la llave, que lo que hago es correrle un año para adelante el vencimiento y vovler a sincronizar con los keyservers.

Este es el proceso total que ejecuto:

Buscar mi llame en mi llavero:

$ gpg --list-keys Rodolfo
pub   rsa2048 2014-09-07 [SC] [caduca: 2017-09-14]
      FCE66FC5849DA0F6E30DD1FCA33C4E6423B5BE7B
uid           [  absoluta ] Rodolfo Pilas <rodolfo@>
uid           [  absoluta ] Rodolfo Pilas <rodolfo@>
uid           [  absoluta ] Rodolfo Pilas <rpilas@>
uid           [  absoluta ] [jpeg image of size 4579]
uid           [  absoluta ] [jpeg image of size 13611]
sub   rsa2048 2014-09-07 [E] [caduca: 2017-09-14]

Editar la llave:

$ gpg --edit-key FCE66FC5849DA0F6E30DD1FCA33C4E6423B5BE7B

Clave secreta disponible.

sec  rsa2048/A33C4E6423B5BE7B
     creado: 2014-09-07  caduca: 2017-09-14  uso: SC
     confianza: absoluta      validez: absoluta
ssb  rsa2048/65841C4E15CF2ADC
     creado: 2014-09-07  caduca: 2017-09-14  uso: E
[  absoluta ] (1). Rodolfo Pilas <rodolfo@>
[  absoluta ] (2)  Rodolfo Pilas <rodolfo@>
[  absoluta ] (3)  Rodolfo Pilas <rpilas@>
[  absoluta ] (4)  [jpeg image of size 4579]
[  absoluta ] (5)  [jpeg image of size 13611]

Está editando la key 0 o sea la que se identifica como A33C4E6423B5BE7B

gpg> expire
Cambiando caducidad de clave primaria.
Por favor, especifique el per'iodo de validez de la clave.
         0 = la clave nunca caduca
      <n>  = la clave caduca en n d'ias
      <n>w = la clave caduca en n semanas
      <n>m = la clave caduca en n meses
      <n>y = la clave caduca en n a~nos
?Validez de la clave (0)? 1y
La clave caduca Tue Sep 11 17:26:48 2018 -03
?Es correcto? (s/n) s

sec  rsa2048/A33C4E6423B5BE7B
     creado: 2014-09-07  caduca: 2018-09-11  uso: SC
     confianza: absoluta      validez: absoluta
ssb  rsa2048/65841C4E15CF2ADC
     creado: 2014-09-07  caduca: 2017-09-14  uso: E
[  absoluta ] (1). Rodolfo Pilas <rodolfo@>
[  absoluta ] (2)  Rodolfo Pilas <rodolfo@>
[  absoluta ] (3)  Rodolfo Pilas <rpilas@>
[  absoluta ] (4)  [jpeg image of size 4579]
[  absoluta ] (5)  [jpeg image of size 13611]

Ya quedo cambiada la caducidad de la llave primaria, ahora la secundaria 65841C4E15CF2ADC:

gpg> key 1

sec  rsa2048/A33C4E6423B5BE7B
     creado: 2014-09-07  caduca: 2018-09-11  uso: SC
     confianza: absoluta      validez: absoluta
ssb* rsa2048/65841C4E15CF2ADC
     creado: 2014-09-07  caduca: 2017-09-14  uso: E
[  absoluta ] (1). Rodolfo Pilas <rodolfo@>
[  absoluta ] (2)  Rodolfo Pilas <rodolfo@>
[  absoluta ] (3)  Rodolfo Pilas <rpilas@>
[  absoluta ] (4)  [jpeg image of size 4579]
[  absoluta ] (5)  [jpeg image of size 13611]

gpg> expire
Cambiando fecha de caducidad de subclave.
Por favor, especifique el per'iodo de validez de la clave.
         0 = la clave nunca caduca
      <n>  = la clave caduca en n d'ias
      <n>w = la clave caduca en n semanas
      <n>m = la clave caduca en n meses
      <n>y = la clave caduca en n a~nos
?Validez de la clave (0)? 1y
La clave caduca Tue Sep 11 17:27:37 2018 -03
?Es correcto? (s/n) s

sec  rsa2048/A33C4E6423B5BE7B
     creado: 2014-09-07  caduca: 2018-09-11  uso: SC
     confianza: absoluta      validez: absoluta
ssb* rsa2048/65841C4E15CF2ADC
     creado: 2014-09-07  caduca: 2018-09-11  uso: E
[  absoluta ] (1). Rodolfo Pilas <rodolfo@>
[  absoluta ] (2)  Rodolfo Pilas <rodolfo@>
[  absoluta ] (3)  Rodolfo Pilas <rpilas@>
[  absoluta ] (4)  [jpeg image of size 4579]
[  absoluta ] (5)  [jpeg image of size 13611]

Guardar la llave editada y salir de gpg

gpg> save

Subir la llave al keyserver, para que los cambios se repliquen

$ gpg --keyserver pgp.mit.edu --send-keys FCE66FC5849DA0F6E30DD1FCA33C4E6423B5BE7B
gpg: enviando clave A33C4E6423B5BE7B a hkp://pgp.mit.edu

Y aprovechar a actualizar todas las demas llaves de mi llavero, pero eso ya es otra tarea.

gpg2 con Enigmail en Mac OS X

Hasta ahora usaba GNUpg versión 1.4 con Thunderbird y Enigmail y estaba muy a gusto; pero Enigmail me mostró una advertencia al respecto de la próxima versión solo soportará GNUpg 2; así que puse manos a la obra.

La instalación no es simplemente sustituir una versión por otra, ya que Enigmail con GNUpg 2 utiliza gpg-agent para invocar a gpg2 y requiere cierta configuración adicional.

Primero desinstalar GNUpg versión 1.4:

$ brew uninstall gnupg

e instalar gpg2

$ brew install gpg2

Remember to set a graphical pinentry program (such as pinentry-mac) in your
~/.gnupg/gpg-agent.conf if you configure launchd to start gpg-agent at login.

To have launchd start gpg-agent at login:
   ln -sfv /usr/local/opt/gpg-agent/*.plist ~/Library/LaunchAgents
Then to load gpg-agent now:
   launchctl load ~/Library/LaunchAgents/homebrew.mxcl.gpg-agent.plist

En el mensaje de post-configuración ya tenemos una pista de que necesitamos ajustar. Así que cree los links de gpg-agent como indica y con launchctl lo puse a correr.

Instalar pinentry para que gpg-agent obtenga la passphrase:

$ brew search pinentry

You can now set this as your pinentry program like

~/.gnupg/gpg-agent.conf
pinentry-program /usr/local/bin/pinentry-mac

.app bundles were installed.
Run `brew linkapps pinentry-mac` to symlink these to /Applications.

y ajustar el archivo ~/.gnupg/gpg-agent.conf como indica, quedando así:

$ vim .gnupg/gpg-agent.conf

pinentry-program /usr/local/bin/pinentry-mac
no-grab
default-cache-ttl 1800

Adicionalmente es necesario que Enigmail utilice el ejecutable gpg2, para eso en la configuración presionar Restaurar para que vuelva a buscar el nuevo ejecutable.

Captura_de_pantalla_2015-03-22_a_la_s__0_33_07

Y luego al quererlo utilizar, gpg-agent pedirá la clave con pinentry-mac asi:

Captura de pantalla 2015-03-22 a la(s) 0.36.52

Espero estas instrucciones sirvan a otros y, en caso de duda, la fuente que yo consulté fue el foro de soporte de Enigmail.

GNUpg – Refrescar llavero con Enigmail

La tarea de refrescar el llavero de claves públicas permite mantener al día la información de las llaves públicas que se utilizan para cifrado y verificación de mensajes firmados.

Si alquien desea hacerlo por línea de comandos es solamente escribir:

$ gpg --refresh-keys

Revocando llave GPG

Hace 13 años y 3 meses creé mi llave GPG con 1024 bits y, a pesar que prorrogo su vencimiento año tras año, hoy por su tamaño es considerada obsoleta. Esa llave GPG respresentó para mi una experiencia magnífica, donde muchos amigos y conocidos me acompañaron con su firma para ampliar la cadena de confianza sobre la misma.

Ha llegado el día de generar una nueva llave con 2048 bits de tamaño que pueden encontrar en los servidores de llaves con estos datos:

pub   2048R/23B5BE7B 2014-09-07 [expires: 2015-09-07]
      Key fingerprint = FCE6 6FC5 849D A0F6 E30D  D1FC A33C 4E64 23B5 BE7B

Pero el objetivo de este artículo es contar cómo hice la revocación y me despedí de mi antigua clave:

Primero generar un certificado de revocación:

$ gpg --output old-key-revocation-certificate.asc --gen-revoke 57153363

Luego importé el certificado a mi llavero para que revoque la clave:

$ gpg --import old-key-revocation-certificate.asc

y verificar que fue debidamente revocada

$ gpg --list-keys 57153363
pub   1024D/57153363 2001-06-02 [revoked: 2014-09-07]

o verificar la razón de la revocación:

$ gpg --export 57153363 | gpg --list-packets | grep reason
hashed subpkt 29 len 58 (revocation reason 0x03 (Old key generated 2001. New key 2048R/23B5BE7B available.))

Resta inscribir el estado actual de la llave revocada en los servidores de llaves, para que todos puedan saberlo y verificarlo:

$ gpg --send-keys 57153363 

Firmas para repositorios Debian

llaves En mi repositorio Debian, que documentón en mi artículo Tu propio repositorio de Debian, comencé a tener problemas con el sistema de firmas electrónicas de validación para la puesta al día del repositorio. En los comentarios de ese artículo se plantearon algunas soluciones.

No obstante, es hora de sistematizar los conceptos al respecto de las firmas que validan los archivos y los repositorios de Debian. Así es que a partir de un hilo de discusión en la lista debian-user-spanish he conseguido bastante de la información al respecto y entonces escribo este nuevo artículo.
Seguir leyendo