password-store, mudar chave GPG

short tutorial about GPG key change to encrypt passwords

Ao utilizar password-store como xestor de contrasinais nos teus dispositivos é posible que por calquera razón precises mudar a chave GPG que utilizaches no momento da instalación. Xa sexa para non utilizar a mesma que tes para o correo persoal, a chave do traballo ou simplemente para utilizar unha chave que non subiches a ningún repositorio público e queres manter só localmente.

captura de pantalla da web

Chave para password-store

Imos xerar nova chave co único propósito de utilizala con pass

O manual de password-store dinos que debemos proceder iniciando a password-store coa nova chave.

E resulta que é así de simple, non explica nada máis, porén xurde a dúbida de "qué pasa se me equivoco e perdo o acceso a TODOS os meus contrasinais?" Sería un #epicfail.

Creamos a nova chave

$ gpg --full-generate-key

que nos pregunta as características que desexamos para a chave, eu deixei as opcións RSA, 4096 e "non caduca".

Pídenos un "nome real", que para o caso sérvenos passwordstore, así é doada de identificar.

Tamén solicita asociar un enderezo de correo electrónico. Escribe o que queiras, pass@home.user vai ben. Esto ten utilidade para que os teus contactos localicen a chave pública nos servidores. Como non vas a usar a chave para o correo nin subila a internet podes escribir o que queiras.

Finalmente mostra o ID da chave creada

Escolleu este ID de usuario:
    «passwordstore <pass@home.user>»

e un comentario (optativo): para cifrar os contrasinais

Pide agora un contrasinal: escollemos a nosa frase de paso, que será a que pida cada vez que se solicite un contrasinal a non ser que a almacenamos na carteira de contasinais que utilice o teu sistema operativo.

cifrado gpg

Créase a chave e o seu certificado de revogación por se fose preciso (informa de onde está e o seu id).

Xa temos a chave que utilizaremos para cifrar os contrasinais.

Comprobámolo con

$ gpg --list-keys

ahí debería aparecer a nova chave passwordstore cos datos que a identifican


Cambiar a chave de password-store

Respalda os datos!!

primeiro respaldo do cifrado actual, que nunca se sabe :P . Imos ao directorio de traballo de pass e

$ cp -r .password-store/ .passwordstore_backup/

no directorio onde está a password-store tamén temos un ficheiro co id da chave que estamos a utilizar actualmente

$ cat .password-store/.gpg-id 

móstranos un id tipo XXXXXXXX hexadecimal.

Entón, seguindo as instruccións, "iniciamos" a password-store co novo "id"

If the specified gpg-id is different from the key used in any existing files, these files will be reencrypted to use the new id.

que será o noso caso.

$ pass init <gpg-id>

$ pass init XXXXXXXX

sendo XXXXXXXX o id da nova chave que acabamos de crear

pide o contrasinal da chave que queremos cambiar (a antiga, para descifrar os datos) e comeza a cifrar novamente todos os contrasinais utilizando a chave passwordstore.

agora

$ cat .password-store/.gpg-id

debería mostrar o valor XXXXXXXX da nova chave creada, e se pedimos un contrasinal con pass, a frase de paso que pide debería ser a da nova chave.

Sincroniza os outros equipos

Se temos a variable de PATH no binario de "pass" establecido a un directorio sincronizado con algún servidor externo (nexcloud por exemplo), entón este cambio afectará aos outros equipos onde estás a utilizar esos contrasinais.

Debes "exportar" a chave recén creada e impórtala de xeito seguro (por exemplo cifrándoa con GPG, copiándoa a un pincho usb ou enviandoa por correo).

No meu caso fíxeno utilizando OpenKeyChain no móbil. Fas unha copia de seguridade da chave (que estará cifrada) e "expórtala" a nextcloud. Así será enviada ao servidor nextcloud e estará dispoñible nos outros equipos para importala.

exportar openkeychain

Vas ao equipo de escritorio e descífrala e impórtala ao sistema con

gpg --decrypt backup_yyyy-mm-dd.sec.pgp | gpg --import

pídeche a frase de paso da chave para importala ao chaveiro.

Unha vez no sistema, os contrasinais xa estarán actualizados a nova chave (se se sincronizou co servidor) e o ficheiro .gpg-id dentro do directorio .password-store tamén estará modificado indicando que debe utilizar a nova chave.

Manual GPG https://www.gnupg.org/documentation/manuals/gnupg/