¿Por qué gpg --list-keys modifica mi anillo de claves?

9

Me preocupa que la lista de claves en mi conjunto de claves GPG cambie mis archivos pubring.gpg y trustdb.gpg . Esperaba que las claves del listado fueran una operación de solo lectura.

¿Sabrías cuál es la razón? Si no hay una buena razón, ¿hay alguna manera de prevenirla? Tomar los hashes de estos archivos para verificar su autenticidad facilitaría mi trabajo.

Script para reproducir

rm keys -rf
mkdir keys

gpg --homedir keys --gen-key --batch <<EOF
Key-Type: RSA
Key-Length: 2048
SubKey-Type: RSA
SubKey-Length: 2048
Name-Real: Test
Expire-Date: 0
EOF

find keys -type f -exec sha256sum {} \;

gpg --homedir keys --list-keys

find keys -type f -exec sha256sum {} \;

Salida de muestra

gpg: WARNING: unsafe permissions on homedir 'keys'
gpg: keyring 'keys/secring.gpg' created
gpg: keyring 'keys/pubring.gpg' created
.....+++++
..+++++
...+++++
..+++++
gpg: keys/trustdb.gpg: trustdb created
gpg: key A492C6DF marked as ultimately trusted
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  keys/pubring.gpg~
a5791aee44c5496e11105a9ecd6d1dc41b64c19f3ad236a21ad854fe636dda3a  keys/random_seed
357de0c1a72450c653f6a1bd472bc50db975e4016644967cd49c3edcd416bdac  keys/pubring.gpg
f408c36e2f20bcd79da92ddbbb9866fa47bd5c1cfa1457b09a8a7560ac52f94f  keys/secring.gpg
854fa0608f4a3d8ff264c4720c4c6e3a72db9a37a6e28244705f6dd3cd954ebf  keys/trustdb.gpg
gpg: WARNING: unsafe permissions on homedir 'keys'
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
keys/pubring.gpg
----------------
pub   2048R/A492C6DF 2017-03-02
uid                  Test
sub   2048R/CBA76512 2017-03-02

357de0c1a72450c653f6a1bd472bc50db975e4016644967cd49c3edcd416bdac  keys/pubring.gpg~
a5791aee44c5496e11105a9ecd6d1dc41b64c19f3ad236a21ad854fe636dda3a  keys/random_seed
d8d723c224be6e54099305f18d6064758b05033698d64c7d6c591e518b6116ad  keys/pubring.gpg
f408c36e2f20bcd79da92ddbbb9866fa47bd5c1cfa1457b09a8a7560ac52f94f  keys/secring.gpg
7bb05436e0077fbe90f3407ebd90d62a6d2983c878de9bfc6bf44d6ae724cf04  keys/trustdb.gpg
    
pregunta marcv81 02.03.2017 - 08:53
fuente

1 respuesta

8

Cuando usas --list-keys por primera vez, GPG realiza implícitamente una verificación de la base de datos de confianza (porque no lo has hecho antes). Esto también aparece en su registro:

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model

La verificación de la base de datos de confianza no es un proceso de solo lectura. Al menos cambiará una marca de tiempo en el archivo trustdb.gpg . Esto es para lo que está el cheque:

--check-trustdb
       Do  trust  database  maintenance  without user interaction. From
       time to time the trust database must be updated so that  expired
       keys or signatures and the resulting changes in the Web of Trust
       can be tracked. Normally, GnuPG  will  calculate  when  this  is
       required  and do it automatically unless --no-auto-check-trustdb
       is set. [...]
  

Tomar los hashes de estos archivos para verificar su autenticidad facilitaría mi trabajo.

Los archivos de claves contienen más que solo los parámetros clave, tienen metadatos adjuntos. No se garantiza que dos archivos que contengan las mismas claves produzcan siempre el mismo hash de archivo. Por lo tanto, en lugar de codificar los archivos, debe --fingerprint las claves específicas si desea compararlas.

Además, si no desea conservar su ownertrust configuración (o no tiene ninguna), entonces no habría necesidad de hacer una copia de seguridad de la base de datos de confianza y simplemente podría eliminar el archivo trustdb.gpg (aunque volvería a aparecer con la próxima comprobación).

(No pude reproducir ningún cambio para pubring.gpg al usar tu script).

    
respondido por el Arminius 13.03.2017 - 06:54
fuente

Lea otras preguntas en las etiquetas