Con la entrada de hoy, a modo “Cazadores de Mitos“, espero aclarar algunas de estas confusiones y que poquito a poco, todos naveguemos mejor informados.
En teoría todo lo que se transmita por HTTPS y sea sensible el propio servidor debería identificar que no se cacheé, de esta forma se optimizaría las peticiones al igual que ocurre con HTTP.
Imaginemos que me conecto a un banco y este no especifica que la información no ha de cachearse localmente, si visito este banco desde un ordenador público, otro usuario podría consultar la cache del navegador y conocer mis movimientos u otros datos confidenciales. Esto es considerado una vulnerabilidad, pero aún hay miles de webs en las que se produce esta problemática
Está por lo tanto en manos del navegador definir qué hacer con el contenido pedido bajo HTTPS. Internet Explorer, salvo lo indique el servidor, por defecto usará la caché, aunque tiene una opción para deshabilitarlo y que nunca almacena datos, tal y como se comenta en el siguiente artículo: HTTPS Caching and Internet Explorer.
Para configurarla, tan solo hay que ir a “Herramientas”->”Opciones de Internet” y en la pestaña “Avanzado”, seleccionar “No guardar las páginas cifradas en el disco”
La siguiente imagen muestra un elemento cacheado que se sirvió por SSL.
En el caso de Opera, las páginas cacheadas de HTTPS son eliminadas al cerrar el navegador. Definido en la opción: Cache HTTPS After Sessions
Todos los datos confidenciales deben ser enviados utilizando el método POST, ya que si existe información confidencial en la propia URL, está quedará almacenada en múltiples sitios, como el historial del navegador, los registros del proxy, o los registros del propio servidor donde llegan las peticiones, como ocurre con HTTP.
Hace falta un certificado SSL para cada dirección IP, domonio o subdominio.
Existen muchas opciones y alternativas que permiten versatilidad con los certificados SSL y su instalación y configuración.
Un único certificado SSL que soporte wildcards, podrá ser instalado en todos los subdominios que queramos.
Server Name Indication extiende el protocolo de SSL y TLS permitiendo que el “CN” sea solicitado en la negociación TLS, dejando al servidor presentar el certificado correcto en base a la consulta que reciba.
Mediante Unified Communications Certificate (UCC), es posible incluir varios dominios distintos en un único certificado. En caso de que compartamos IP con otras aplicaciones y otros clientes.
Los certificados SSL son muy caros y dificiles de conseguir
Se pueden adquirir otros productos, con garantía o que permiten wildcards, desde 10$ anuales. Un precio asumible para cualquier compañía que tenga presencia y venta de productos online.
HTTPS es muy lento.
Sobre este mito hay aún debates abiertos. Uno de ellos es el que mantiene Adam Langley de ImperioViolet con el fabricante de aceleradores SSL F5. El primero ofrece argumentos por lo que la negociación SSL hoy por hoy se puede asumir económicamente. F5 (entre otras cosas, vendedor de aceleradores SSL) responde con unas tablas de pruebas y explicando que las pruebas de Adam son con certificados 1024-bit y no con los 2048-bit. Finalmente Adam opina que las pruebas de F5 no son reales, ya que están hechas con portátiles y no con servidores.
El usuario debería elegir si quiere utilizar o no HTTPS.
Volvemos a lo de siempre: Seguridad Por Defecto (SbD). Me gustaría no tener que explicarle a nadie porque debe usar HTTPS y no HTTP. La seguridad ha de ser impuesta, evitará problemas.
Si a un usuario únicamente le dejas acceder al servicio mediante el protocolo seguro, con certeza jamás hará una transacción por otra vía. No debe ser una opción y mucho menos una opción deshabilitada por defecto.
Me puedo fiar de la web si hay un candado en mi navegador.
Yo puedo crear un certificado SSL válido para “paipal.com” y hacerme pasar por Paypal, y el navegador mostraría el candado correctamente. Yago escribió sobre esto y lo demostró en un magnifico artículo: Fraude online con firma digital y SSL. Comprobar que la dirección y el dominio son correctos, es tarea que ha de hacer el usuario manualmente.
Fuente: SecurityByDefault