Primero, tengo algunas preguntas conceptuales, y luego algunas preguntas más específicas con respecto a la implementación de HTTPS.
-
En un sistema extremadamente simple con solo 2 hosts (A y B) que hablan en una LAN pero un MITM activo en la LAN (Z), que está activo desde el principio y es capaz de interceptar y modificar completamente las primeras conexiones entre los 2 hosts A y B, es cierto que fundamentalmente, algunos datos deben compartirse fuera de banda para evitar este escenario de ataque, ¿correcto?
En otras palabras: no existe un algoritmo, protocolo o truco matemático que permita que el host A se conecte a B por primera vez, teniendo absolutamente no conocimiento previo de B, y de alguna manera afirmar que B no es un MITM, ¿correcto? Sé que esta pregunta puede sonar obvia, porque la verdad es que si A no tiene ningún conocimiento de B, entonces no hay nada que distinga a B de Z a A, pero necesito escucharlo de los expertos.
-
Así es exactamente cómo funciona la PKI en Internet, ¿verdad? Debido a que el certificado de un servidor está firmado por una clave privada de la CA, pero el certificado público de la CA se compartió efectivamente de antemano y fuera de banda (cuando compró la computadora o el disco del sistema operativo, ya estaba en el navegador software).
-
¿También es cierto que un certificado emitido por CA en comparación con un certificado autofirmado solo proporciona un beneficio logístico en forma de escalabilidad? (en comparación con un mundo hipotético donde todas las partes compartieron certificados de forma segura, fuera de banda) En otras palabras, cada sitio en Internet intentó utilizar certificados autofirmados, luego técnicamente todavía podría ser seguro si para Por ejemplo, amazon.com y yo nos comunicamos fuera de banda y amazon compartió su certificado (de manera que pudiera establecer la confianza de que el certificado proporcionado era en realidad de Amazon), así que podría validar las conexiones futuras, ¿verdad? Pero el problema sería la necesidad de realizar este paso fuera de banda para cada sitio web.
Ahora en un problema de implementación relacionado.
Imagine un sistema informático hipotético autónomo con aproximadamente 100 hosts en una LAN privada. 1 host es el "maestro" e inicialmente se instala manualmente (desde un disco, unidad o algún otro medio físico de confianza). Pero los 99 hosts restantes se instalan a través de la LAN (https). Si los 99 hosts restantes tienen no almacenamiento persistente y se instalan directamente en la RAM y comienzan a ejecutarse, entonces debe ser imposible diseñar un sistema de este tipo para evitar la posibilidad de MITM inicial descrita anteriormente, ¿verdad? Especialmente teniendo en cuenta que cada uno de los 99 hosts realiza una reinstalación completa, y esencialmente se conecta por primera vez en cada reinicio. Porque no hay lugar ni medios para almacenar ningún tipo de certificado o datos de validación precompartidos para que los 99 clientes puedan verificar digitalmente un certificado SSL presentado por el servidor "maestro". Y si no hay un método de comunicación fuera de banda, deben recurrir únicamente a la aceptación inicial del certificado a través de la misma conexión (creando la posibilidad de MITM). Además, los 99 hosts están automatizados, por lo que no hay posibilidad de que un usuario intervenga y valide una huella digital, como con lo que hace SSH. Pero esto realmente sería otra forma de comunicación fuera de banda que parece.