miércoles, 9 de marzo de 2011

PROTOCOLO HTTPS

El protocolo HTTPS es una versión segura del protocolo HTTP que implementa un canal de comunicación seguro y basado en SSL ( Secure Socket Layers ) entre el navegador del cliente y el servidor HTTP.

Tabla de contenido

¿Porque utilizar HTTPS?

TCP/IP es un canal de comunicación no seguro, donde para ir de un cliente a un servidor, la información realiza un seguido de saltos entre diferentes routers que se encargan de hacer llegar la información a su destino.

En cada uno de estos saltos, la informacion es transmitida en la red local del router, siendo recibida tambien ( dependiendo del dispositivo que crea dicha red ) por todos los dispositivos de la misma red, pudiendo ser capturada para fines malintencionados.

No podemos evitar esto, pero podemos encriptar esta información para que una vez capturada no pueda conocerse su contenido y así poder enviar con tranquilidad numeros de cuenta, datos personales...

Diferéncias con HTTP

A diferéncia de HTTP, HTTPS trabaja por defecto por el puerto 443 TCP, y antes de enviar los datos realiza algunas acciones prévias.
Para hacer esta negociación, el cliente, envía al servidor las opciones de cifrado, compresión y versión de SSL junto con algunos bytes aleatorios llamados Challenge de Cliente.

El servidor, escoje las opciones de cifrado, compresión y versión de SSL entre las que ha ofertado el cliente y le envía su decisión y su certificado.

Ambos negocian la clave secreta llamada master secret y usando esta clave, la Challenge de Cliente y las opciones pactadas se envían la información encriptada de tal manera que de ser interceptada no se puede descifrar.

El certificado del servidor

Para que nos entendamos, un certificado de clave pública es un "documento" que certifica que el interlocutor ( el servidor HTTPS en el caso de HTTPS ) es quien realmente dice ser, esto se hace para evitar que un atacante pueda hacerse pasar por el servidor y recibir la comunicación segura en su lugar.

Estos certificados pueden generarse con herramientas cómo OpenSSL y para una mayor seguridad pueden ser firmados por una autoridad certificadora, por ejemplo:
VeriSign
Thawte
GoDaddy
GeoTrust
Aunque también puede ser auto-firmado, en este caso, evitaremos desenbolsar la cantidad de dinero que cobran las autoridades certificadoras manteniendo el cifrado del canal de datos, pero el cliente no tendrá total seguridad que la información está siendo enviada al servidor correcto.
 

No hay comentarios:

Publicar un comentario