¿Por qué se molesta gpg y cómo lo detengo?

24

Recientemente migré de una instalación de Ubuntu a otra, y en el proceso cambié mi nombre de usuario. Importé mi par de claves pública / privada en gpg, y aunque el descifrado (usando mi clave privada) funciona bien, cada vez que intento cifrarme algo con mi clave pública recibo el siguiente mensaje de advertencia:

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

Después de eso, me pregunta si realmente quiero usar la clave (siempre respondo "sí", porque de hecho es la única clave en mi llavero y sé de dónde vino). Puedo descifrar cosas muy bien, entonces, ¿por qué gpg produce un ataque de silbido cada vez que intento encriptar algo? ¿Y cómo puedo evitar que este mensaje vuelva a aparecer?

fouric
fuente
¿Alguna de las respuestas a esta pregunta anterior en stackoverflow ayuda ?: stackoverflow.com/q/9460140/2422988
Paul
@Paul, sí, ese enlace ayudó un poco. Establecí el nivel de "confianza" de mi clave para que sea definitivo, y eso parece haber solucionado el problema. Pero cual era el problema? ¿Por qué estaba sucediendo esto? ¿Lo solucioné o simplemente alivié los síntomas?
Fouric
Lo siento, InkBlend, me temo que mi capacidad de examinar y comparar los resultados de búsqueda excede mi conocimiento de pgp en este caso, de ahí mi no intento de reclamar esto como una Respuesta. Sin embargo, parece que Garrett sabe lo que está pasando.
Paul

Respuestas:

16

Logré reproducir el problema que estás experimentando. Lo hice haciendo lo siguiente:

$ gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --gen-key

<specified parameters and let it do its thing>

gpg: key 58018BFE marked as ultimately trusted
public and secret key created and signed.

<snip>

$

Observe que el proceso marcó la clave como "en última instancia confiable".

Ahora exporto las claves:

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export-secret-keys -a >private.key

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export -a > public.key

Ahora importo a una nueva base de datos gpg:

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import public.key

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import private.key

Ahora, si intento encriptar usando los nuevos llaveros, obtengo:

$ gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file -r Fake -e
gpg: AE3034E1: There is no assurance this key belongs to the named user

pub  1024R/AE3034E1 2013-06-13 Fake User <[email protected]>
 Primary key fingerprint: AD4D BAFB 3960 6F9D 47C1  23BE B2E1 67A6 5801 8BFE
      Subkey fingerprint: 58F2 3669 B8BD 1DFC 8B12  096F 5D19 AB91 AE30 34E1

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

La razón de esto es el modelo de "red de confianza". De manera predeterminada, para que se confíe en una clave pública, se requiere 1 certificado de confianza "definitivo" (generalmente donde usted ha verificado personalmente las identidades de las personas involucradas) o 3 certificados de confianza "marginales" (donde alguien que conoce, quien conoce a alguien que conoces ... ha firmado el certificado).

Debido a que gpg es una aplicación de seguridad, le advierte si está intentando encriptar una clave que no figura como confiable. La razón por la que no se confía en su propia clave en este caso es simple. Es porque no exportó las relaciones de confianza de la instancia de gpg anterior. Para hacer esto, use los comandos --export-ownertrust y --import-ownertrust.

Como siempre, consulte la página del manual .

Garrett Kajmowicz
fuente
1
¡La clave es que todos los datos sobre la confianza clave se almacenan por separado del llavero (tanto secreto como público)! ~/.gnupg/trustdb.gpgcontiene la base de datos de confianza, pubring.gpglas claves públicas y secring.gpglas claves secretas. Consulte la documentación de GnuPG sobre esto .
gertvdijk
28

Me encontré con el mismo problema, sin embargo, ya no tenía acceso a la clave anterior. Para que pueda recrear la confianza en su clave anterior con esto:

gpg --edit-key [email protected]
gpg> trust
Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
Kevin Lyda
fuente
OP ha hecho esto (anotado en los comentarios), pero es bueno tenerlo como respuesta.
muru
7

Puede usar la --always-trustbandera para omitir este mensaje.

Paul Baltescu
fuente
1
Esto es absolutamente cierto, pero eso solo quita los síntomas, no la enfermedad. Su solución es como tomar una aspirina porque tiene cáncer ...
Fabby
2
--always-trustes una buena solución en algunos casos , pero si la clave en cuestión es realmente la propia clave del usuario, entonces se le debe dar la máxima confianza.
Blacklight Shining
44
Mi enfermedad es la obstinada insistencia de GPG en un llavero que arruina mi encriptación programática de archivos, y lo hace de diferentes maneras en cada VM en la que instalo el software.
bbozo
@BlacklightShining y si aún no pude verificar eso, Evolution no permite encriptar correos a esa dirección. No tengo idea de por qué cifrar un texto a alguien requiere una confianza absoluta , y con solo una confianza marginal no debería ser posible.
Izzy