14 julio 2014

SPDY, ¿héroe o villano?

SPDY, para aquellos que aún no lo conozcan, es un nuevo protocolo desarrollado principalmente por Google que incorpora una mejora en la eficiencia de las comunicaciones y que, además, lleva asociado el cifrado por defecto de todas ellas.

De hecho, este cifrado por defecto es el que hace que merezca la pena analizar en detalle las consecuencias que tendría su implementación desde una perspectiva de seguridad, puesto que SPDY ha servido como base para los primeros borradores del futuro HTTP 2.0.

En primer lugar, y basándonos en el análisis realizado por Jorge Dávila en su artículo titulado "La Internet opaca de SPDY" publicado en el número 110 de la revista SIC (junio 2014), habría que destacar que este nuevo protocolo ya se encuentra implementado en la mayoría de los navegadores (Chrome, Safari, Firefox, Opera...) e incluso por algunos servidores (pocos, pero significativos, como Google Search, Facebook o Twitter). No obstante, mientras se realiza la transición de todos los servidores a SPDY, será necesario contactar con unos servidores que ejerzan de traductores entre HTTP 1.1 y HTTP 2.0 (habiendo sido Google [lógicamente], la primera organización en poner este tipo de servidores proxy a disposición de los usuarios).

Por tanto, para analizar las consecuencias de SPDY tendremos que tener en cuenta dos momentos muy distintos:
  • la fase transitoria durante la que unos servidores proxy nuevos conocerán todos los detalles de navegación de los usuarios, puesto que deben realizar la traducción de HTTP 2.0 a HTTP 1.1.
  • la fase final en la que todas las comunicaciones de los usuarios con los servidores a los que se conectan se encontrarán cifradas, utilizando el conocido protocolo TLS (y las cabeceras comprimidas con el algoritmo DEFLATE).


Fase transitoria

El hecho diferencial de esta fase se deriva de la existencia de unos nuevos jugadores en la arquitectura de Internet, unos servidores proxy, que a modo de pasarela canalizan todas las comunicaciones de los usuarios y que tienen conocimiento de las comunicaciones realizadas a diferencia del resto de actores (para los que las comunicaciones están cifradas) al encargarse de traducir entre versiones de protocolos HTTP.

Esta circunstancia supone, claramente, un riesgo para la privacidad de las comunicaciones, en tanto en cuanto, todas las comunicaciones llegarán en claro a dichas pasarelas que se encargarán de adaptarlo a SPDY. No obstante, no deberíamos presuponer que es una situación peor que la actual, en la que todo el mundo puede escuchar las comunicaciones de una persona. En la transición, solo serán las pasarelas, y cualquiera puede implementar pasarelas. Por ejemplo, si los ISPs crearan estas pasarelas, estaríamos en una situación idéntica a la actual. Si utilizamos otras pasarelas, entonces tendremos que "confiar" en los operadores de esas pasarelas.

No obstante, ¿podremos confiar en estos nuevos actores? ¿se les podrá imponer algún tipo de requisito a sus operadores, tipo "que no puedan utilizar la información que gestionan para otros fines distintos a los propios de la pasarela"? En ese caso, ¿quién debería hacerlo y quién podría tutelar que se cumplen?

Finalmente, esta nueva actividad no deja de ser también una oportunidad para aquellos que provean servicios con confianza, ¿por qué no crear "pasarelas" robustas y confiables en el marco de la UE que sean utilizadas por los usuarios que deseen utilizar pasarelas "de confianza"?


Fase final

En este momento, la situación mejorará claramente, puesto que todas las comunicaciones serán secretas y se podrá asegurar la privacidad de las mismas, puesto que se cifrarán punto a punto (siempre quedarán riesgos como ataques man-in-the-middle, o vulneración de los extremos de las comunicaciones - troyanos, etc.) pero al menos, todo lo relativo a las escuchas pasivas se verá reducido, siendo necesario vulnerar un extremo o la connivencia del mismo para escuchar la comunicación.

Por tanto, en general, la confianza debería mejorar puesto que los usuarios podremos estar tranquilos de que las comunicaciones que mantenemos son secretas y solo se conocen por nosotros y por aquellos con los que nos comunicamos y que no pueden ser "espiadas" de manera masiva (tipo NSA).


Reflexión final

Hablando con algunos colegas sobre el protocolo y las motivaciones de Google para impulsar SDPY creo que tengo un punto de vista quizás, un poco diferente.

En mi opinión, está claro que Google está intentando escapar del efecto negativo que el "caso NSA" está teniendo sobre la confianza de los usuarios en los servicios de Internet, asegurándose de que nadie (ni siquiera la propia Google) podrá acceder al contenido de las comunicaciones (para que tampoco el gobierno americano pueda usar la Patrioct Act) y en este sentido creo que, claramente, tendrá un efecto sobre las prácticas habituales de seguridad nacional: A partir de SPDY no se podrán hacer "escuchas pasivas" de las comunicaciones y será necesario que cuando el Estado quiera escuchar mis comunicaciones tenga que "atacar" mis dispositivos de comunicación (smartphone, tablet, PC..) - algo que, por otra parte, no les es ajeno, o eso me parece. Evidentemente esto es mucho menos "eficiente", pero también es mucho menos "intrusivo" y supondrá una acción mucho más orientada de las "escuchas" a objetivos específicos (lo que será más fácil de justificar).

¿Todavía no me sigues en twitter.com/antonio_ramosga?

4 comentarios:

Busindre dijo...

Buenas, no termino de entender esta afirmación.

<>

Por qué es necesario utilizar servidores proxy? Actualmente puedes instalar el soporte SPDY en un Apache o Nginx sin que tus clientes utilicen ninguna pasarela / proxy / puente etc... No va a pasar lo mismo con http 2.0? no será el navegador cliente el que utilice uno u otro dependiendo de lo que soporte el servidor?

A ver si puedes aclararme el tema un poco.

Saludos!

Antonio Ramos dijo...

Hola, Busindre.
Sí, claro que lo puedes hacer sin usar nada de terceros... lo que quería decir es que en una fase transitoria, se podrán usar estos proxies de terceros hasta que instales el tuyo propio.
Slds,
Antonio

Busindre dijo...

Buenas!,

Gracias por contestar, más vale tarde que nunca, verdad? Usar proxys de terceros siempre es un riesgo, pero no creo que sea o haya sido una práctica generalizada para el uso de http 2.0 (o spdy en su día) por parte de los usuarios. Desde mi punto de vista tampoco tendría demasiado sentido ofertar esa posibilidad.

Un saludo.

Busindre dijo...

Gracias por contestar.

Desde mi punto de vista unos servidores proxys para conectar a servicios http 2.0 tendrían utilidad si el protocolo http 1.0/1.1 fuera borrado de un plumazo de los navegadores, cosa que carece de lógica y por lo tanto improbable.

Desde luego usar un proxy de un tercero es siempre un riesgo, sea para lo que sea. Pero en el caso que nos ocupa, desde luego no tendría mucho sentido el uso de proxys. Actualmente a fecha de este artículo, http 2.0 se encuentra presente cada día más en Internet y no hay presencia en la red de ese tipo de proxys.

En cuanto los servidores web empiecen a implementar como protocolo predeterminado HTTP 2.0, supongo será cuando se acelere dicha transición. Pero sospecho que nos queda mucho HTTP 1.X todavía, esto irá igual de lento que IPv6.

Un saludo