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:
- El contenido del mensaje está recortado para proporcionar una salida de longitud fija de todo el contenido.
- 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?)
- El proceso anterior crea una firma digital que se transmite con el mensaje original
- 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?