15.2.15

HTTPS

Hypertext Transfer Protocol Secure - Protocolo Seguro de Transferencia de Hipertecto.
Es un protocolo de aplicación basado en el protocolo HTTP, destinado a la transferencia segura e datos de Hipertexto, es decir, la versión segura del HTTP.
Es utilizado principalmente en entidades bancarias, tiendas en línea, y cualquier tipo de servicio que requiera el envío de datos personales o contraseñas.

Características Técnicas

El sistema HTTPS utiliza un cifrado basado en SSL/TLS (Seguridad de la capa de transporte) para crear un canal cifrado (cuyo nivel de cifrado depende del servidor remoto y del navegador utilizado por el cliente) más apropiado para el tráfico de información sensible que el protocolo HTTP. De este modo se consigue que la información sensible (usuario y claves de paso normalmente) no pueda ser usada por un atacante que haya conseguido interceptar la transferencia de datos de la conexión, ya que lo único que obtendrá será un flujo de datos cifrados que le resultará imposible de descifrar.
El puerto estándar para este protocolo es el 443.

Un poco de Historia

Netscape Communications creó HTTPS en 1992 para su navegador Netscape Navigator.
Originalmente, HTTPS será usado solamente para cifrado SSL, pero esto se volvió obsoleto ante TLS. HTTPS fue adoptado como un estándar web con la publicación de RFC 2818 en mayo de 2000.

Diferencia con HTTP: En el protocolo HTTP las URLs comienzan con "http://" y las URLs del HTTPS comienzan con "https". Y os preguntaréis... ¡¿No me digas?!. Sí es un poco absurda la diferencia pero otra diferencia es que el protocolo HTTP usa el puerto 80, mientras que el protocolo HTTPS utiliza el puerto 443 por omisión. 

HTTP es inseguro y está sujeto a ataques man in the middle y eavesdropping que puede permitir al atacante acceso a cuentas de sitio web e información confidencial. HTTPS está diseñado para resistir esos ataques y ser más seguro.

Capas de red: HTTP opera en la capa más alta del modelo OSI, la capa de aplicación; pero el protocolo de seguridad opera en una subcapa más baja, cifrando un mensaje HTTP previo a la transmisión y descifrando un mensaje una vez recibido. Estrictamente hablando, HTTPS no es un protocolo separado, pero refiere el uso del HTTP ordinario sobre una Capa de Conexión Segura cifrada Secure Sokets Layer (SSL) o una conexión con Seguridad de la capa de Transporte (TLS). 

Configuración del servidor: Para preparar un servidor web que acepte conexiones HTTPS, el administrador debe crear un certificado de clave pública para el servidor web. Este certificado debe estar firmado por una autoridad de certificación para que el navegador web lo acepte. La autoridad certifica que el titular del certificado es quien dice ser. Los navegadores web generalmente son distribuidos con los certificados raíz formados por la mayoría de las autoridades de certificación por lo que estos pueden verificar certificados firmados por ellos.

Limitaciones: El nivel de protección depende de la exactitud de la implementación del navegador web, el software del servidor y los algoritmos de cifrado actualmente soportados.
También HTTPS es vulnerable cuando se aplica a contenido estático de publicación disponible. El sitio entero puede ser indexado usando una "araña" web, y la URL del recurso cifrado puede ser adivinada conociendo solamente el tamaño de la petición/respuesta. Esto permite a un atacante tener acceso al texto plano y al texto cifrado, permitiendo un ataque criptográfico.
Debido a que SSL opera bajo HTTP y no tiene conocimiento de protocolos de nivel más alto, los servidores SSL solo pueden presentar estrictamente un certificado para una combinación de puerto/IP en particular.  Esto quiere decir que en la mayoría de los casos, no es recomendable uasr Hosting virtual name-based con HTTPS.
Existe una solución llamada Server Name Indication (SIN) que envía el hostname al servidor antes de que la conexión sea cifrada, sin embargo, muchos navegaores antiguos no soportan esta extensión. 
El soporte para SNI está disponible para Firefox 2, Opera 8 e Internet Explorer 7 sobre Winows Vista.