Supongamos lo siguiente: Alice y Bob están realizando el intercambio de claves Diffie-Hellman en un canal no protegido. Eve es un atacante activo (capaz de soltar, modificar y construir paquetes en el canal). Digamos que Alice y Bob pueden verificar visualmente (al mirar una imagen generada a partir de un hash o una comparación letra por letra del código base64), las cosas que aparecen en sus pantallas: estoy totalmente en contra de la verificación visual de este tipo porque es demasiado fácil para un usuario ingenuo proporcionar accidentalmente una superficie de ataque MiTM, sin embargo, esta no es la pregunta principal. La pregunta principal es cuál de las siguientes es mejor:
- Verifique el hash de los parámetros DH recibidos ( posible advertencia: ¡los tamaños de las teclas son mucho más grandes que los hashes! Y los hashes similares son difíciles de distinguir visualmente )
- Verifique el hash de la clave intercambiada
Una respuesta que detalla las ventajas / desventajas de ambos sería asombrosa (especialmente considerando que la idea de verificación visual de los parámetros recibidos es bastante tentadora y tal vez esta pregunta ayude a evitar el mismo problema que tiene Telegram ).