Si no usar HTTPS / SSL / TLS es un riesgo de seguridad, ¿por qué los sitios / navegadores no fuerzan a HTTPS para todos los sitios que lo tienen?

4

De mi otra pregunta Además de las contraseñas de texto sin formato, ¿hay algo de qué preocuparse con los sitios que no usan SSL?

hay respuestas que mencionan todo tipo de cosas que pueden suceder si no hay SSL, incluidos los ataques maliciosos.

Si existe tal riesgo de que sucedan cosas malas, ¿por qué no se fuerza el HTTPS? Puedo entender por qué un sitio podría no tenerlo habilitado, pero ¿el navegador no lo configuraría automáticamente? Estaba buscando en Google y menciona que hay maneras de habilitarlo para los navegadores de una manera no tan fácil, es decir, se dijo que Chrome debería ingresar "X" en la URL para forzar el HTTPS, pero no estoy seguro de por qué esto no es normal. configuración?

    
pregunta XaolingBao 10.01.2017 - 13:26
fuente

2 respuestas

3

Porque eso no es fácilmente automatizable

  

Si existe el riesgo de que ocurran cosas malas, ¿por qué no se fuerza a HTTPS?

Porque eso puede romper fácilmente el sitio. Y luego los usuarios simplemente abandonarán ese navegador y elegirán otro que no rompa sus sitios.

Ejecuto el "HTTPS Everywhere" plugin en mis navegadores. Y intentan hacer algo similar. Pero incluso tienen que usar un conjunto de reglas masivo de 22k archivos . (Por lo que entiendo, las reglas se generan parcialmente y se ajustan a mano).

Y a juzgar por estos comentarios en el Amazonas Conjunto de reglas , no es tan fácil escribir reglas de trabajo que sigan funcionando:

  <!--    Amazon has a history of breaking us soon after
        adding rulesets, so these are here to detect that.

(URL de prueba omitidas)

    
respondido por el StackzOfZtuff 10.01.2017 - 15:31
fuente
1

Https es un protocolo. Eso significa que ambas partes tienen que estar de acuerdo en ello. Incluso solo esto haría las cosas un poco raras: ¿qué haría el navegador, intentar conectarse a través de https, luego, si eso falla, volver a http y guardar en caché esa decisión por un período de tiempo? Si algo cambia en su sitio, ¿cómo lo comunica al navegador para que se actualice su caché? Aquí hay una serie de aspectos prácticos que deberían resolverse para que esto ocurra en el mundo real, y aún no lo han hecho.

Más allá de eso, no todos los sitios que aceptan una conexión https realmente funcionan a través de https. Como un simple ejemplo, el sitio web del New York Times escucha en el puerto 443, pero si cambia la URL para que un artículo sea https, simplemente lo redirigirá nuevamente. Si el navegador hiciera su propia redirección de https automáticamente, esto podría ponerlo en un bucle de redirección infinito; como mínimo, estaría esperando a través de dos solicitudes http para cada página en lugar de solo una.

Por lo general, hay más trabajo por hacer para hacer que un sitio web esté disponible para https que simplemente configurar un terminador de https (aunque incluso eso puede ser un poco de trabajo, ya que necesita realizar una prueba de carga para asegurarse de que puede manejar todo su tráfico - Una vez, rompí un sitio web previamente escalable que se saltaba este paso. ). Uno de los problemas más importantes es asegurarse de que todo el contenido que incruste en una página también se solicite a través de https, o de lo contrario obtendrá advertencias de contenido mixto, y el usuario solo verá una página rota. Esto puede ser particularmente molesto si tiene contenido generado por el usuario, porque ahora tiene que hacer un poco de base de datos para arreglar las cosas que han estado agregando, y tenga mucho cuidado de asegurarse de no arruinar algo mientras haciendo eso. Y ahora tiene que usar https en su CDN, y algunos aún no lo admiten tan fácilmente, o quizás tenga que actualizar su plan para poder usar un certificado personalizado (ya que tenía un CNAME de su dominio a su servidores). Y ahora eso rompe algunos scripts que tienes, porque están escritos en Python 2.6, y eso no es compatible con SNI.

La lista continúa. El punto es que, en realidad, hay una cantidad no insignificante de trabajo para que muchos sitios web realicen una transición completa a https, y si un navegador intenta forzarlos todo al mismo tiempo, es casi seguro que haya cosas rotas. Y eso apesta para los usuarios.

    
respondido por el Xiong Chiamiov 10.01.2017 - 18:01
fuente

Lea otras preguntas en las etiquetas