El error no está en el protocolo, está en personas . O, podría decirse, en las herramientas , quién debe manejar los asuntos que son demasiado técnicos para que los usuarios humanos puedan hacerlo correctamente.
El protocolo SSL indica cómo van las cosas y que la conexión será segura, especialmente contra Man-in-the-Middle attack :
- The negotiation of a shared secret is secure: the negotiated
secret is unavailable to eavesdroppers, and for any authenticated
connection the secret cannot be obtained, even by an attacker who
can place himself in the middle of the connection.
Pero esto se mantiene solo si el protocolo realmente se sigue en toda su extensión y, en particular, si la validación de la clave pública del servidor no es un "acceso directo".
Por lo tanto, no hay nada que cambiar en el protocolo . Cuando las herramientas no implementan el protocolo correctamente, el error suele estar en las herramientas, no en el protocolo.
Podríamos argumentar que si los navegadores aún permiten omitir la advertencia de "certificado incorrecto" (aunque esa advertencia ha aumentado en el tono rojizo con el paso del tiempo), esto podría ser una indicación de que las suposiciones del protocolo no son realistas. Es decir, requerir que todos los servidores web tengan un certificado SSL que los navegadores de los clientes puedan validar puede ser demasiado pedir. Pero, honestamente, la seguridad tiene que comenzar en algún lugar . La criptografía no crea confianza, transfiere confianza . No puede tener un protocolo que garantice que el cliente siempre hable con el servidor "correcto" sin tener, al menos, una noción definida de lo que significa "correcto" en ese contexto.
Si el phishing o los ataques MitM con un certificado de servidor falso, que el usuario hizo clic en ellos, se vuelven demasiado frecuentes, espero que los proveedores de navegadores eliminen la omisión por completo y apliquen la validación estricta de X.509. Lo veremos en unos años.