Verificar firma digital sin clave pública clave en la firma

6

Al recibir correos electrónicos, a veces veo lo siguiente:

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1

I found an integer overflow in PHP, in the conversation of dates to "Julian Day Count" function.

The commit, with a PoC can be found here: https://github.com/MegaManSec/php-src/commit/a538d2f5605798422f2746636 ecdc300f8ebcaa1
Use CVE-2015-1353.

CVE assignment team, MITRE CVE Numbering Authority M/S M300 202 Burlington
Road, Bedford, MA 01730 USA [ PGP key available through
http://cve.mitre.org/cve/request_id.html ]

-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (SunOS)

iQEcBAEBAgAGBQJUw/LpAAoJEKllVAevmvmsiYoH/Ag+n/8x+blfJyccUhjt39bp
nRxsuZw2MIx7COJcoufIxeycu2YGnm1O9RxZBA9lKmVYjb0wjMi9yHogcWkT8UOo 
i93ARMw7V6UFp1nV+2Kv5BgVh2EcwEBXyDkKkcaN2l68Dm3nRoApMB4i4m7G67BC 
K2T1L4eq1orQCNaR7n4hup2155pHZbLqZQRMAYn5EGQPr/+zPjgq+PQKes631US5 
SXrnthRKOAfZk9QVIlxf5t1JfVvC3Cta0HgETTaXJ8TbqEAA5AXw8hl+RmhWgFnI 
Cto73LM+iiA1tyxDXdXnfdRqV/uxmqK+FCgO6asyCuT7EYOpBZ74Wmq1z+RVJRc=
=VLR4 
-----END PGP SIGNATURE-----

Por lo que entiendo, una firma digital funciona de la siguiente manera:

  1. El contenido del mensaje está recortado para proporcionar una salida de longitud fija de todo el contenido.
  2. El hash que se genera se cifra con la clave privada del remitente (PS: pensé que la clave pública se usaba para cifrar cosas, ¿contexto diferente?)
  3. El proceso anterior crea una firma digital que se transmite con el mensaje original
  4. El receptor usa la clave pública para descifrar el texto cifrado para devolver el hash y luego el mensaje de sí mismo para ver si es el mismo

El problema que no puedo entender es la parte de la clave pública, en el ejemplo anterior de Mitre, no hay una clave pública enviada para que yo descifre la firma. Entonces, ¿cómo hago para verificar esta firma? Puedo ver que han proporcionado un enlace "Clave PGP disponible a través de", pero este enlace contiene la ID de la clave. ¿Qué es esta ID de clave y qué necesito para encontrar la clave pública?

    
pregunta W Khan 29.01.2015 - 12:52
fuente

2 respuestas

4

Cómo encontrar el PGP / KEY de CVE

Este artículo explica cómo buscar una clave GPG, y específicamente la clave pública del sitio CVE. Hay instrucciones sobre cómo importarlo allí, y he proporcionado instrucciones de importación básicas a continuación.

GPG / PGP típico

En PGP / GPG, cuando un usuario genera una clave, también hay una ID de clave asociada. Notará, en el enlace que proporcionó, que los últimos 4 bytes de la huella digital también son la clave de identificación .

Generalmente, el usuario cargará su clave pública a un servidor de claves. El ID de clave es lo que utiliza el servidor de claves para buscar claves dentro de su base de datos. Otros usuarios pueden buscar en el servidor de claves la ID de clave asociada con los datos que intentan descifrar o verificar. GPG usa su llavero para realizar todas sus operaciones. En una caja de Linux puede instalar GPG.

Debian:

sudo apt-get install pgpgpg

Luego puede importar claves en su llavero con un ID de clave desde un servidor de claves:

gpg --recv-keys 0x<key_id> --keyserver 'http://key-server.org'

O si tiene el archivo de claves:

gpg --import <keyfile>

Hay varias maneras de firmar un documento. Una forma de crear un archivo de firma separado. En este caso puedes hacer lo siguiente:

gpg --verify file-1.2.3.tar.sig file-1.2.3.tar

Sin embargo, en su caso, tiene el mensaje y la firma en el mismo archivo. Se puede decir porque tiene -----BEGIN PGP SIGNED MESSAGE----- y -----BEGIN PGP SIGNATURE----- en el mensaje. En este caso, simplemente puede hacer lo siguiente :

gpg --output your-file.txt --decrypt my-file.gpg

Para cada uno de estos verificar comandos, GPG intentará buscar en su llavero la clave utilizada para firmar el mensaje. Si no puede encontrarlo, se imprimirá un mensaje de error.

Has mencionado que ves esto en los correos electrónicos. Si está utilizando Thunderbird, hay una extensión llamada Enigmail que le permitirá configurar servidores de llaves, importar GPG / PGP claves, y cifrar / descifrar / verificar las firmas de correo electrónico para usted.

Para responder a sus preguntas sobre cómo se relacionan las claves públicas y las privadas, leería la La respuesta de Thomas Pornin aquí .

    
respondido por el RoraΖ 29.01.2015 - 15:24
fuente
1

No tengo mucho en pgp o gpg, pero puedo decirte cómo funcionaría esto con un simple rsa.

Si desea firmar algo, debe cifrarlo con su clave privada, cualquiera que reciba este mensaje puede descifrarlo con su clave pública y, por lo tanto, sabe que alguien que tiene la clave privada ha enviado este mensaje (es de esperar que solo usted tenga la clave privada). llave).

Si ambos tuvieran claves rsa, podría cifrarlos con su clave privada y luego cifrarlos con la clave pública de la persona a la que desea enviar el mensaje. Luego, el receptor descifra el mensaje y usted recibe un mensaje que solo una persona puede abrir y que solo una persona pudo haber enviado.

Por lo que entiendo de pgp y gpg, contienen los mensajes con una clave secreta y luego cifran esta clave con RSA.

Para sus problemas con las claves: hay servidores de claves públicas (por ejemplo, MIT: enlace )

    
respondido por el yamm 29.01.2015 - 14:34
fuente

Lea otras preguntas en las etiquetas