¿Por qué utilizar HTTPS en el protocolo DP-3T?
Estoy teniendo una discusión sobre la transparencia del protocolo HTTPS sobre una aplicación de detección de COVID-19 específica. Los oponentes sostienen que usar HTTPS está ofuscando la aplicación, que la aplicación debe comportarse de manera transparente y enviar todo el tráfico a través de HTTP para que puedan ver lo que están enviando, porque los datos son "anónimos" de todos modos.
Después de investigar un poco, descubrí que esta parte sigue estrictamente el protocolo DP-3T , que establece que "La aplicación abre una conexión TLS encriptada al servidor y envía el código de autorización [...]". Sé con certeza que no leyeron todo el protocolo (yo tampoco, solo algunas partes), pero incluso con esto en mente, siguen diciendo que no hay razón para no comenzar a usar HTTP simple eliminando HTTPS. Van más allá y afirman que si aparece en el protocolo es que está mal diseñado.
Entonces, ¿cuáles serían las razones para usar HTTPS en un protocolo anónimo como DP-3T?
Respuestas
Las conexiones TLS tienen 3 propiedades importantes y distintas:
- privacidad, es decir, protección contra escuchas ilegales
- autenticación, para asegurarse de que las partes que se comunican sean realmente quienes pretenden ser
- integridad, lo que significa que los datos no se pueden modificar durante la transmisión
Parece que sus oponentes solo discuten contra el primero, pero los otros dos son fundamentales para la mayoría de las aplicaciones. Para DP-3T en particular, la falta de autenticación significaría que un atacante podría interceptar una transmisión y descartarla mientras la aplicación pensaría que el código se ha transmitido correctamente.
Y de manera más general, TLS hoy en día es barato y fácil de configurar. Necesitaría una muy buena razón para no usarlo en lugar de uno para usarlo. De hecho, al menos para iOS, se requiere explícitamente que una aplicación utilice seguridad de transporte y las excepciones deben estar justificadas.
Junto con los ciberdelincuentes dispuestos a realizar escuchas telefónicas a través de redes inalámbricas, las complicadas redes de hoy en día suelen llevar una gran cantidad de cajas intermedias de vigilancia diferentes para diferentes propósitos . Esos dispositivos no solo escuchan a escondidas, sino que a veces pueden modificar los datos transmitidos de manera arbitraria, intencional o no.
Por ejemplo, un equipo DPI instalado por un ISP se puede configurar para reemplazar el anuncio del sitio web con los anuncios del ISP. Si se configura de manera incorrecta, este equipo también reemplazaría partes no relacionadas del código Javascript o XML en los flujos de datos transmitidos por aplicaciones móviles o sitios web.
Esto es sólo un ejemplo.
Por lo tanto, el modelo de amenazas actual para sitios web y aplicaciones móviles simplemente asume HTTPS cifrado como transporte. HTTPS es bastante fácil de configurar en estos días, es gratis y elimina una gran cantidad de amenazas opacas y complejas y errores potenciales que es más fácil y mucho más confiable, desde el punto de vista operativo, configurarlo que no hacerlo.
Los oponentes sostienen que usar HTTPS está ofuscando la aplicación, que la aplicación debe comportarse de manera transparente y enviar todo el tráfico a través de HTTP para que puedan ver lo que están enviando, porque los datos son "anónimos" de todos modos.
Asumiré que el "ellos" en negrita se refiere al usuario final y no a los desarrolladores (porque si se refiere a los desarrolladores, entonces este es un problema sencillo de no usar técnicas de depuración apropiadas como el registro del lado del servidor ).
Siendo realistas, ¿cuántos de sus usuarios finales van a ejecutar Wireshark o un software similar? De aquellos que son lo suficientemente competentes técnicamente para ejecutar Wireshark, ¿cuántos van a encontrar seriamente sospechoso el tráfico HTTPS? Es muy posible que sea el segundo protocolo más popular (capa 7) del mundo (después de SMTP, me imagino) y, como usted dice, el protocolo DP-3T requiere explícitamente su uso. Es poco probable que cualquiera que lo encuentre sospechoso sepa lo suficiente sobre tecnología de redes como para usar Wireshark en primer lugar. En mi opinión, es más probable que el uso de HTTP no seguro provoque sospechas que el uso de HTTPS.
Por otro lado, es muy posible ocultar datos en flujos de red no cifrados utilizando cualquier número de formas diferentes de esteganografía (en este caso, ocultando algunos datos en los ID efímeros supuestamente "aleatorios" que utiliza DP-3T, y / o en la clave secreta cuando se carga para un informe de infección; ambos son manchas opacas de datos binarios sin una estructura significativa para que el usuario pueda introspectar). Por lo tanto, el hecho de que el usuario final técnico sea capaz de monitorear el tráfico de su aplicación en realidad no ayuda mucho con la confianza de todos modos.
En cualquier caso, podemos ver claramente que:
- Esto no convence a los usuarios no técnicos de nada.
- Es poco probable que sea eficaz para convencer a los usuarios técnicos de que su aplicación es segura y podría convencerlos de que su aplicación no es segura o, al menos, está mal diseñada.
- Como se describe en muchas otras respuestas, TLS hace otras cosas además de la confidencialidad, y eso puede comprometer la seguridad de su implementación de otras formas.
Además de los excelentes puntos señalados en las otras respuestas, cifrar solo los datos en los que la privacidad es una preocupación les dice a los adversarios que se trata de datos en los que la privacidad es una preocupación y les permite centrar sus esfuerzos en descifrar estos datos.
En otras palabras, incluso si la privacidad es su única preocupación, debe cifrar todo para que los adversarios no sepan dónde buscar. Eso significa usar HTTPS, en lugar de HTTP, cuando corresponda.
Aquí hay una referencia que encontré. Aunque se trata de diferentes protocolos, la idea básica es la misma. Autodefensa por correo electrónico :
Cuanto más pueda cifrar sus mensajes, mejor. Si solo encripta los correos electrónicos ocasionalmente, cada mensaje encriptado podría generar una señal de alerta para los sistemas de vigilancia. Si todo o la mayor parte de su correo electrónico está encriptado, las personas que realizan vigilancia no sabrán por dónde empezar.