Pregunta:
La especificación del protocolo de acuerdo de clave X3DH de Signal establece en la sección 4.5.:
Alternativamente, podría ser tentador reemplazar la autenticación mutua basada en DH (es decir, DH1 y DH2) con firmas de las claves de identidad. Sin embargo, esto reduce la negación, […]
¿Cómo reduce exactamente la negación la sustitución de DH1
y DH2
por firmas?
Respuesta:
Creo que el uso de firmas significa algo así como el protocolo STS ( https://en.wikipedia.org/wiki/Station-to-Station_protocol ). En STS, a los efectos de la autenticación mutua, cada parte debe enviar una firma de claves efímeras. Entonces, en términos usados en https://signal.org/docs/specifications/x3dh , Alice debe firmar EK_a || SPK_b
y Bob debe firmar lo mismo.
En X3DH, la autenticación proporcionada por las firmas se sustituye por el hecho de que para obtener la clave ( SK
), cada parte debe ejecutar el intercambio DH utilizando su clave de identidad (digamos, ID_a
) y la clave efímera de la contraparte (digamos, SPK_b
). Entonces, de hecho, la firma de SPK_b
con la clave privada de ID_a
(en STS) se sustituye simplemente con la ejecución de DH para ID_a
y SPK_b
(en X3DH).
Entonces, ¿cuál es la diferencia para la negación? Muy simple: la firma es evidencia de comunicación y conocimiento de claves efímeras, y por lo tanto conocimiento de SK
. Si bien ejecutar DH no es una evidencia, porque es incluso imposible saber si Bob (o Alice) ejecuta DH y obtiene SK
o no. Si Alice quiere demostrarle a algún juez que Bob se comunicó con ella, y Bob conoce algo de SK
(y por lo tanto, podría crear o al menos descifrar algunos textos cifrados proporcionados por Alice para juzgar), ella no puede probarlo: es obvio que Alice podría simular DH con cualquier tecla EK_a
ella quiera. No hay evidencia de que Bob estuviera ejecutando DH con EK_a
e incluso saber sobre la existencia de tal EK_a
.