Saltar al contenido

Sirviendo páginas web con https

Hablando con un compañero, sobre servir una web institucional mediante HTTP o HTTPS, hemos tenido un interesante intercambio de opiniones (vale, sólo han sido tres correos). Mi idea es que si no hay información sensible de ser robada mejor no usar HTTPS por:

  • que ciertos proxies y sistemas de cacheado de datos no trabajaban bien con TLS/SSL
  • se incrementa el esfuerzo del servidor para cifrar las peticiones a todos los recursos que se sirven con una página web (imágenes, hojas de estilo, ficheros javascript, documentos html, etc)

Como notáis por mis argumentos no soy un experto en TLS/SSL pero, como hablar es gratis, sigamos 🙂 Con esto en mente hubiera desplegado la web con HTTP pero mi compañero no, el opta por HTTPS. Para apoyar su idea me manda un interesante enlace «Should All Web Traffic Be Encrypted?» [1], en Codinghorror, donde se plantea este mismo tema. Con la ayuda de algunas de las referencias que en él se indican mis dos argumetos pierden fuerza.

En los comentarios de «Chrome’s 10 Caches» [2] indican dos referencias «HTTPS Caching and Internet Explorer» [3] y «Should cache SSL content to disk even without Cache-Control: public» [4] donde hablan sobre el compartamiento de los naveadores ante el cacheado de elementos cifrados.

En Internet Explorer [3]:

WinINET will not reuse a previously-cached resource delivered over HTTPS until at least one secure connection to the target host has been established by the current process Es decir: la primera vez que solicitemos el recurso no se cachea pero las siguientes sí, mientras no cerremos el navegador (o eso he entendido).

En Firefox [4]:

Currently, Firefox only caches SSL content to disk if it was sent with Cache-Control: public. On the other hand, IE and Chrome cache SSL content even without that header. And this header was not designed to affect client caches (only proxies).
The reason why I implemented it this way was to avoid caching secure content to disk without an explicit hint that this is OK to do so, but considering that especially IE doesn’t require this header, it seems OK to remove this requirement.

De lo que entiendo que Firefox cachea todos los recursos HTTPS a menos que se añada la cabecera «cache-control: no-store».

En Chrome [2]:

Caches SSL sessions to disk. This saves several round trips of negotiation when connecting to HTTPS pages by allowing the connection to skip directly to the encrypted stream

Con esto se viene abajo mi idea del no cacheado de los recursos cifrados 🙁 aunque habría que ver cómo se comportan los sistemas de cacheado como Varnish ante el tráfico cifrado [7] En el tema del incremento de trabajo en los procesadores del servidor leo en «SSL FalseStart Performance Results» [5] que, ya desde 2011 (por Dios qué atrasado estoy en el tema!!), hay un método para reducir el tiempo de intercambio de claves durante el proceso de cifrado de las comunicaciones llamado «Transport Layer Security (TLS) False Start» [6].

Con todo lo leido y aprendido sigo pensando lo mismo: a pesar de las mejoras en los navegadores, con el cacheado de los recursos, y en el propio mecanismo de cifrado estoy de acuerdo con el comentario final del artículo con el que comenzamos [1]:

Maybe not tomorrow, maybe not next year, but over the medium to long term, adopting encrypted web connections as a standard for logged-in users is the healthiest direction for the future of the web. We need to work toward making HTTPS easier, faster, and most of all, the default for logged in users.

O en castellano: para sitios web donde los usuarios tengan que logearse el tráfico HTTPS debiera ser obligatorio. A lo que añado: para aquellos que no haya identificación de usuarios es mejor usar HTTP.

[1] Should All Web Traffic Be Encrypted?: http://www.codinghorror.com/blog/2012/02/should-all-web-traffic-be-encrypted.html
[2] Chrome’s 10 Caches: http://gent.ilcore.com/2011/02/chromes-10-caches.html?showComment=1297102528799#c5411401837359385517
[3] HTTPS Caching and Internet Explorer: http://blogs.msdn.com/b/ieinternals/archive/2010/04/21/internet-explorer-may-bypass-cache-for-cross-domain-https-content.aspx
[4] Should cache SSL content to disk even without Cache-Control: public: https://bugzilla.mozilla.org/show_bug.cgi?id=531801#c19
[5] SSL FalseStart Performance Results: http://blog.chromium.org/2011/05/ssl-falsestart-performance-results.html
[6] Transport Layer Security (TLS) False Start: https://tools.ietf.org/html/draft-bmoeller-tls-falsestart-00
[7] Varnish no soporta SSL: https://www.varnish-cache.org/docs/trunk/phk/ssl.html

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Jorge Hoya.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a OVH que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Esta web utiliza cookies, puedes lees sobre ellas en la política de cookies    Ver política de cookies
Privacidad