Tengo una clave pgp pública, para que los usuarios puedan enviarme un mensaje cifrado. Por supuesto, cualquier usuario que quiera enviarme un mensaje, quiere verificar que la (s) clave (s) pública (s) que tiene, realmente me pertenece. Por lo que he leído, uno puede publicar su clave pública a un tercero de confianza (por ejemplo: el servidor de claves públicas PGP del MIT). El servidor MIT PGP luego asegura al usuario que la clave realmente me pertenece. Mi problema es: ¿no pueden todos forjar una clave en ese servidor (no hay verificación de correo)? ¿No es inseguro el método?
Imagina:
- Mi nombre es John Doe. Mi clave pública es 0xE3D, mi dirección de correo es [email protected]
- Un Eva Atacker. Eve tiene una clave pública 0xA49, y quiere fingir que él es John Doe
- John publica su clave pública en su sitio web y registra su clave en el servidor PGP. Afirma en su sitio web: mi clave se creó el 1/1/15, mi clave es 0xE3D, mi correo es [email protected] y puede verificar mi clave en el servidor PGP de MIT.
- Eve registra su clave pública (0xA49) en el servidor de claves PGP del MIT con John en su correo electrónico (después de que John haya publicado la suya).
- Cuando un usuario, Alice visita el sitio web de John, Eve realiza un ataque MITM y cambia el mensaje en el sitio web a: mi clave se creó el 1/2/15, mi clave es 0xA49, mi correo es [email protected] y Puede verificar mi clave en el servidor PGP de MIT.
¿Cómo puede saber Alice si la clave 0xA49 es realmente la clave pública de John? Cuando busca la clave de John Doe, ve dos claves: 0xE3D & 0xA49. ¿Cómo puede saber qué clave es realmente publicada por John?