La negación directa simple es fácil de lograr con PGP: ¡simplemente no firme el correo electrónico que envía! Cualquiera puede enviar correos electrónicos con contenido arbitrario y presunto remitente; las firmas se significan específicamente para cancelar la negabilidad de reenvío.
Sin embargo, si no firmas, también pierdes integridad. Lo que desea es poder enviar un correo electrónico tal que:
- el destinatario puede estar razonablemente seguro de que el correo electrónico proviene de quién cree que es el remitente y no se ha modificado en tránsito;
-
pero ni los atacantes externos ni el destinatario obtienen ninguna prueba que pueda mostrar a terceros que el presunto remitente realmente envió el correo electrónico.
Protocolos conectados , como la mensajería instantánea, puede lograr estas propiedades mediante el uso de un secreto compartido establecido con un protocolo como Diffie-Hellman . Cuando Alice y Bob comparten el secreto K (y usaron la autenticación para establecer ese conocimiento compartido), y Bob recibe un mensaje con un MAC valor que usa K , entonces Bob sabe que el mensaje proviene de Alice, porque solo Alice y él saben K , y Bob no. envíalo él mismo. Sin embargo, Bob no tiene nada "convincente" que mostrar, porque como sabe K , podría haber falsificado todos los mensajes.
Con los correos electrónicos, no hay conexión, por lo que no hay un secreto compartido semitransitoria: un valor secreto que el remitente y el destinatario comparten, nunca se almacenan en un archivo, sino que se conservan para varios mensajes sucesivos. Sin embargo, hay un tipo de formato de "cifrado con MAC" en OpenPGP, sección 5.13 . El formato también es muy flexible, por lo que uno podría crear un mensaje OpenPGP que contenga:
Dicho correo electrónico encarnaría la negabilidad hacia adelante con integridad: desde el exterior, se puede probar que el presunto remitente envió al menos un mensaje, un día, al destinatario; y el destinatario puede mostrar K y la prueba indica que K también fue conocido por el remitente. Sin embargo, nadie puede demostrar que cualquier mensaje específico contenidos se haya cifrado con K .
Desafortunadamente, aunque el formato OpenPGP puede admitir muchas combinaciones, este no es necesariamente el caso de implementaciones existentes (como GnuPG ). Además, el paquete de "cifrado con MAC" utiliza un MAC casero barato (simplemente agrega el hash SHA-1 de los datos, y encripta todo el lote) que no me parece muy seguro. No estoy al tanto de los estudios extensivos de ese tipo de construcción de MAC, pero no apostaría mi última camiseta a su robustez.
Por lo tanto, puede potencialmente tener denegación hacia adelante con autenticación e integridad en PGP pero solo mientras el software relevante admita esta combinación específica, que, por lo que sé , ellos no. Sin embargo.
En la investigación criptográfica, también hay otro tipo de algoritmo denominado firmas en anillo que podría aplicarse al tema: con En las firmas, el remitente (Alice) computa un tipo especial de firma que involucra su clave privada y la clave pública del destinatario (Bob), de manera que se puede probar, desde afuera, que Alice o Bob computaron la firma, pero cuál en realidad lo hizo es desconocido.
Actualmente no hay soporte definido para firmas de anillo en OpenPGP.