[Tutorial] El protocolo HTTPS
06 septiembre 2011
Si asistes a una charla sobre seguridad en internet seguro que, más bien pronto que tarde, aparecerá una frase parecida a: asegúrate que, cuando entras a tu banco, al principio de la barra de dirección puedes ver las siglas https. Y es cierto, tenemos que echar un ojo, pero ¿por qué?
Muchas veces la explicación se reduce a decir que se establece una conexión segura, y no es falso, pero la verdad es que podremos entender con un poquito más de profundidad en qué consiste HTTPS, y no hace falta hacerlo con palabras complicadas, ni enrollarnos durante media hora.
¿Qué problemas soluciona HTTPS?
Muchas veces, para comprender porqué narices alguien se ha molestado en inventar algo complicado es mejor pensar para qué lo ha ideado. ¿Cuáles son los problemas que han motivado la aparición de este HTTPS? El principal problema es una falta de privacidad en nuestra navegación normal.
Normalmente, cuando navegamos por internet lo hacemos utilizando el protocolo HTTP, que simplemente establece unas directrices acerca de cómo se va a comunicar nuestro ordenador (cliente) con un servidor. Establece cómo se transfieren los datos, y en este caso, los datos se transfieren sin ninguna modificación, según los estás viendo ahora mismo.
Podemos imaginar que hay una tubería entre nuestro ordenador y el servidor por la que pasan los datos. Pero en esa tubería, alguien podría hacer un pequeño agujero por el que poder ver la información que viaja de un lado al otro, o incluso algo peor, modificar la información que tu envías. En ámbitos de seguridad esto se refiere como un ataque man-in-the-middle (Hombre en el medio, literalmente).
Esto no es un problema si alguien cotillea mientras visitas Genbeta, pero posiblemente sea un problema mientras estás consultando los movimientos de tu tarjeta de crédito. Además, si nuestro man-in-the-middle se hace pasar por tu entidad bancaria… ¿cómo podrías estar seguro de que te responde tu banco? ¿no te entran ganas de evitar esas intromisiones? Aquí aparece HTTPS.
Cómo funciona HTTPS
Ya que evitar cotillas en una comunicación es algo que se puede catalogar como muy difícil o imposible, la solución ha consistido en hacer que nuestro amigo mirón no pueda comprender lo que mira a través de ese agujerito que ha hecho en la tubería, y que tampoco pueda meter en la tubería mensajes haciéndose pasar por nuestro banco (servidor) o por nosotros mismos (cliente).
Al menos en este asunto de las conexiones seguras, la magia no existe. Antes de empezar esa conexión segura, se establece una comunicación entre el cliente y el servidor en la que se acuerdan los detalles necesarios. Esta fase se denomina acuerdo, o en inglés handshake (apretón de manos), y es donde todo se complica un poco.
El handshake entre cliente y servidor puede variar dependiendo de los modos de autenticación (verificación de la identidad del remitente de un mensaje) y cifrado que se vayan a utilizar durante la conexión segura. Suena difícil, pero los sistemas utilizados no difieren mucho de los utilizados durante la II Guerra como por ejemplo el famoso código Enigma.
Imaginamos que somos capaces de crear dos códigos (o claves) especiales. De forma que un mensaje se puede cifrar con la primera y descifrar con la segunda, y viceversa. Así, un mensaje cifrado con la primera, ÚNICAMENTE podrá ser descifrado con la segunda, y un mensaje cifrado con la segunda, sólo podrá ser descrifrado con la primera.
Ahora viene el truco. La primera de ellas la haces pública, se la das a todos tus amigos, sin problema. Pero la segunda es secreta, te la guardas como tu mayor tesoro. Con este pequeño truco podemos hacer dos cosas imprescindibles dentro del protocolo HTTPS:
- Verificar nuestra identidad: Si un mensaje (o parte) lo ciframos con nuestro código secreto, cualquier persona será capaz de leerlo, pero nadie más habrá sido capaz de crearlo (necesitarían nuestra clave ultra secreta). Así es como se firma cuando no puedes utilizar un boli.
- Evitar mirones: Si me queréis enviar un mensaje, utilizáis mi código público para cifrarlo y lo colgáis por ejemplo en un tablón de anuncios (o en un comentario). De esta forma sólo quien tenga mi código secreto será capaz de leerlo, es decir, sólo yo podré saber lo que significa. De hecho, ni siquiera vosotros seríais capaces de leerlo una vez lo cifrárais.
Vía | Genbeta
Publicar un comentario