Estoy tratando de cambiar la contraseña de la clave secreta de mi GPG.
De hecho, lo cambié usando Seahorse (También probé gpg --edit-keys
y passwd
, pero cuando traté de exportar mi clave privada, ahora me pide dos frases de contraseña (tanto la nueva como la anterior) y usa la anterior como clave subsecreta.
¡Ahora tengo que recordar dos contraseñas complicadas!
¿Cuál es la forma correcta de cambiar la contraseña de la clave secreta de GPG?
Respuesta aceptada:
Para GPG 2.1 y versiones posteriores, las claves privadas se almacenan en ~/.gnupg/private-keys-v1.d
Cada clave, incluidas las subclaves, se almacenan como archivos separados utilizando el identificador de la clave como nombre de archivo:
<keygrip>.key
Al usar gpg --edit-key
para cambiar la frase de contraseña, todas las subclaves se modifican en el directorio de claves privadas.
Sin embargo, parece que seahorse
solo está modificando el archivo de clave privada de la clave principal.
Entonces, parece que se trata de un error en seahorse
. Puede ser una regresión de gpg
anterior versiones que almacenaban las claves privadas en una estructura de llavero al igual que las claves públicas. Este comportamiento se cambió en las versiones 2.1 y posteriores.
Resultados de prueba simples con clave de prueba, que muestran que el caballito de mar solo modifica el archivo de claves privadas de la clave principal.
Clave de prueba con tres subclaves
pub ed25519 2018-12-24 [SC]
988D29CB7CA9D62252B22DEFB42E56952F9FB61C
Keygrip = 8226D19110BAC4FB4D60BC25869E5F23C1BB667F
uid [ultimate] delete me (Delete Me) <[email protected]>
sub cv25519 2018-12-24 [E]
Keygrip = 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C
sub ed25519 2019-03-25 [SA]
Keygrip = 269995721854253C5F8B48CB40DD24948D580F8C
sub ed25519 2019-03-25 [SA]
Keygrip = 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB
La frase de contraseña cambió con seahorse
-rw------- 1 user user 333 Mar 25 09:27 8226D19110BAC4FB4D60BC25869E5F23C1BB667F.key
-rw------- 1 user user 333 Mar 25 09:08 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB.key
-rw------- 1 user user 333 Mar 25 09:08 269995721854253C5F8B48CB40DD24948D580F8C.key
-rw------- 1 user user 341 Mar 25 09:08 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C.key
La frase de contraseña cambió con gpg --edit-key
-rw------- 1 user user 333 Mar 25 09:37 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB.key
-rw------- 1 user user 333 Mar 25 09:37 269995721854253C5F8B48CB40DD24948D580F8C.key
-rw------- 1 user user 341 Mar 25 09:37 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C.key
-rw------- 1 user user 333 Mar 25 09:37 8226D19110BAC4FB4D60BC25869E5F23C1BB667F.key
Comprobación del código fuente de Seahorse
Después de revisar parte del código fuente del caballito de mar, parece probable que el comportamiento se alinee con los métodos gpg de llavero secreto más antiguos.
Según gpgme
documentación, la frase de contraseña debe cambiarse usando gpgme gpgme_op_passwd
Llamada de función. Sin embargo, esta llamada de función no aparece en el código fuente del caballito de mar.