Parte 2: El misterioso caso de la extraña desaparición de TrueCrypt

Ha pasado poco más de año y medio, y la desaparición de TrueCrypt sucedida en la primera mitad del 2014, parece ser irreversible. Recordemos que TrueCrypt era una utilidad gratuita, de código abierto, para cifrar carpetas, archivos o particiones de tu disco duro, compatible con múltiples sistemas operativos.

La desaparición de TrueCrypt sucedió algunos meses después de las filtraciones de Edward Snowden, y tuvo lugar durante una auditoría abierta en la que participaban desarrolladores de todo el mundo para buscar posibles vulnerabilidades. Hay quien afirma que fueron en parte las afirmaciones de Snowden lo que motivó la auditoría sobre TrueCrypt. Más información en una entrada anterior de este blog, véase: "El extraño caso de la misteriosa desaparición de TrueCrypt"


Los creadores de TrueCrypt no sólo permanecen hasta hoy (principios de 2016) en el anonimato, sino que decidieron no liberar el código fuente al abandonar el proyecto, como han hecho otros desarrolladores de código abierto. Sin embargo, como parte de la auditoría de seguridad que se venía realizando sobre TrueCrypt por un grupo internacional de voluntarios, el código estaba disponible para ellos y esto ha permitido la generación de nuevas alternativas de software.

Cabe señalar que, dada la disponibilidad de herramientas como BitLocker (Microsoft) en algunos sistemas operativos (Windows 7, 8 y 10 Enterprise o Ultimate), ya no es tan imperioso contar con algo como TrueCrypt, como lo era hace algunos años.

Sin embargo BitLocker específicamente no ha logrado algo que TrueCrypt podía hacer: interoperabilidad de contenedores cifrados entre múltiples sistemas operativos. Por ejemplo: TrueCrypt permitía cifrar un medio de almacenamiento USB (memory stick o disco duro removible) que por su naturaleza podría ser fácilmente olvidado o robado y abrir dicho medio de almacenamiento tanto en Linux como Windows sin mayor problema.

También existía una versión "portátil" (portable) de TrueCrypt con lo que ni siquiera era necesario hacer una instalación para, digamos, poder abrir un disco duro USB en una máquina prestada. Por ejemplo, al ir de viaje y tener necesidad de acceder a tus archivos en la máquina del centro de negocios de un hotel.

¿Qué alternativas tenemos entonces, si necesitamos un cifrador interoperable que no nos obligue a adquirir las versiones más costosas de nuestro sistema operativo?

Si queremos seguir por la vía del código abierto, algunas alternativas son:

Examinemos ahora sus relativas ventajas y desventajas.



CipherShed

Este software se desarrolló como una rama (fork) del código fuente de TrueCrypt. Heredó mucho de la filosofía de operación (y el código) de TrueCrypt. La misión de los desarrolladores era corregir las vulnerabilidades (todas menores) encontradas durante la auditoría de TrueCrypt. El formato de los archivos es directamente compatible con TrueCrypt, por lo que hay compatibilidad hacia volúmenes generados con la aplicación anterior.

Para los paranóicos: uno de los principales impulsores del proyecto CipherShed es Jason Pyeron, quien ha trabajado para una de las múltiples agencias de inteligencia del gobierno americano, denominada DISA (Defense Information Systems Agency www.disa.mil). Esto hace que los más desconfiados se pregunten sobre las motivaciones y la integridad de este desarrollador, porque oportunidades para introducir caballos de Troya, las hay. Aún así, el código es abierto y en principio cualquiera puede revisarlo en busca de posibles vulnerabilidades.

Ventajas:
  • Incorpora las recomendaciones emitidas durante la auditoría de TrueCrypt.
  • Código abierto.
  • Compatibilidad directa con contenedores de TrueCrypt.
Desventajas
  • Requiere compilar las versiones para OS-X y Linux.
  • El ritmo de desarrollo no parece haber sido tan dinámico como el de VeraCrypt.
  • Incluso haciendo a un lado las teorías de conspiración, la protección criptográfica parece no ser tan robusta como con VeraCrypt.

VeraCrypt

Este desarrollo surgióinicialmente como una rama del código fuente de TrueCrypt, antes de la desaparición de este último. Sin embargo, casi desde el principio (2013) los desarrolladores decidieron cambiar el formato de los contenedores para mejorar la protección. Esto trajo como consecuencia que VeraCrypt fue (temporalmente) incompatible con los contenedores generados por TrueCrypt y era necesario migrar minuciosamente toda la información que estuviera protegida por el formato anterior. El día de hoy VeraCrypt soporta los dos formatos, para recuperar la compatibilidad, pero el formato preferido (y más robusto) es el nuevo.

Ventajas
  • Las mismas ventajas de CipherShed, incluyendo compatibilidad con volúmenes creados por TrueCrypt. 
  • La interfaz de usuario es prácticamente idéntica a TrueCrypt.
  • Incorpora un método criptográfico mucho más robusto para proteger los contenedores (archivos cifrados). Esto está relacionado con el número de iteraciones para la derivación de las llaves, que en TrueCrypt es del orden de mil (1000) y en VeraCrypt es del orden de medio millón (500,000) de iteraciones.
  • Instaladores pre-compilados.
  • El ritmo de desarrollo es intenso. Han habido periodos (en el 2015 por ejemplo) en los que se libera una versión nueva casi cada mes. Esto es un indicador del interés por parte de los desarrolladores de VeraCrypt y su comunidad de usuarios.
Desventajas
  • Un ritmo de desarrollo intenso puede introducir sus propios errores, fallas o vulnerabilidades.
  • El montaje y desmontaje de contenedores cifrados es más lento que con otras aplicaciones, quizá como resultado de la mejor protección criptográfica.
TrueCrypt

¡Si! ¡Todavía podemos descargar TrueCrypt desde sitios no-oficiales, con una firma hash válida.

Si no somos paranóicos, si no nos preocupa aquello de "TrueCrypt is Not Secure As... " (NSA), o si no tenemos nada que ocultar y lo único que queremos es protegernos de miradas indiscretas o del malandrín que nos asaltó y se robó nuestra Laptop, TrueCrypt puede ser suficiente protección todavía.

Debemos recordar que en la Seguridad Informática no existe la protección perfecta. Sólo existen niveles de protección que pueden, o no, ser adecuados para enfrentar el nivel de riesgo en nuestro entorno. Si el nivel de riesgo es bajo, (¿qué tan paranóicos somos?), entonces el nivel de protección también puede ser bajo.

Habiendo dicho eso, la protección criptográfica de TrueCrypt no ha sido rota en forma pública todavía. Todo son rumores sin evidencia comprobable.

Ventajas
  • TrueCrypt fue auditado y NO se encontraron vulnerabilidades graves, aunque sí se encontraron fallas.

Desventajas
  • NADIE está reparando las fallas actualmente. La licencia de código lo impide.
  • El estilo de programación resultó ser bastante desordenado. La clase de cosas que haría un programador o dos en sus ratos libres. ¿Quizá el esfuerzo de mantener al día TrueCrypt llegó a ser excesivo para sus desarrolladores? ¿Quizá la misteriosa desaparición sólo fue una manera de despedirse con estilo? Quizá nunca lo sabremos.

Conclusión

Si somos algo paranóicos, en realidad tampoco podemos estar seguros de que no se hayan introducido caballos de Troya dentro del código fuente de CipherShed o VeraCrypt. Sólo una auditoría abierta como la emprendida sobre TrueCrypt podría arrojar luz al respecto.

Lamentablemente, al no haber una aplicación predominante en este momento, el esfuerzo de auditar a múltiples aplicaciones podría ser excesivo para la comunidad de desarrollo de código abierto, que lo hizo en forma voluntaria en el caso de TrueCrypt.

Si nuestra necesidad es protegernos de atacantes oportunistas (como un asaltante en la calle, o la persona que hace la limpieza por las noches), entonces cualquiera de las tres aplicaciones anteriores es suficientemente robusta.

Si nuestra necesidad es protegernos de un atacante determinado, VeraCrypt parece ser superior, pero si por "atacante" pensamos en una organización gubernamental, dicha organización también tendría forma de "pedirnos amablemente" que des-encriptemos nuestro sistema de archivos por "las buenas" o si no...

La seguridad perfecta no existe. Sólo podemos encontrar herramientas acordes con el nivel de riesgo percibido.

Truecrypt parecía ser algo fenomenal para enfrentar cualquier nivel de riesgo. Lamentablemente, es poco probable que volvamos a tener algo como TrueCrypt.

Ethernet: ¿algún día podremos deshacernos de este protocolo?

No cabe duda que Ethernet se ha consolidado como el protocolo de interconexión por excelencia. Nos encontramos implementaciones y adecuaciones de Ethernet para todos los medios de transmisión posibles: par trenzado, fibra óptica, redes inalámbricas, así como servicios SDH y SONET.

De ser inicialmente una tecnología para conexiones puramente locales, se ha vuelto una buena alternativa para los proveedores de servicio que desean eficientar sus redes de transmisión y de esa manera poder ofrecer anchos de banda mucho mayores que los ofrecidos por las generaciones tecnológicas anteriores,  con velocidades casi arbitrarias y precios más competitivos.

MetroEthernet o Carrier-Ethernet es un ejemplo de utilización de una tecnología, en este caso Ethernet, de manera muy distinta a su intención original de uso. Y esto no es malo.

El día de hoy (México, 2016) es perfectamente posible para una organización contratar servicios de conexión a Internet o interconexión de sitios trabajando a decenas o cientos de Megabits por segundo. De hecho, no hay razón técnica por la que un proveedor de servicio no pudiera ofrecernos velocidades en el orden de los Gigabits o decenas de Gigabits por segundo. 

El estándar de 100Gbps para Metro Ethernet fue ratificado por el IEEE en 2010. En estos momentos existen grupos de trabajo dentro del IEEE preparando las versiones para 100Gbps y 40GBbps en par trenzado, así como otro grupo de trabajo discutiendo la implementación de Metro Ethernet a 400Gbps (!).

Con esta sinergia, el uso de Ethernet como protocolo para servicios de redes y telecomunicaciones parece imparable. Resulta interesante quizá, en estos momentos revisar las principales ventajas y desventajas que tiene el que la industria se haya inclinado por esta tecnología.

Algunas de las Ventajas

  1. Simplicidad e interoperabilidad. El protocolo siempre tuvo como objetivo ser simple, fácil de entender, usar, mantener y reparar. Prácticamente TODOS los dispositivos conectables a Internet tienen una interfaz WiFi o de cableado estructurado.
  2. Economía de costos. Su uso extendido ha propiciado un desplome de precios que beneficia al usuario final. En 1985 un adaptador Ethernet podía costar USD$1,000 (¡si! ¡mil dólares!), mientras que 30 años después, en el 2015, costaba apenas unos cuántos centavos de dólar.
  3. Independencia de la velocidad de transmisión. Una misma trama ethernet puede transmitirse (con pequeñas adecuaciones, como en el caso de WiFi o SDH) a velocidades muy diferentes desde el dispositivo originador, a través de la red de transporte y en el dispositivo receptor.
  4. Posibilidad de contratar anchos de banda "individualizados". En el pasado, los ofrecimientos de ancho de banda de los proveedores de servicio estaban restringidos a ciertos niveles inmutables. El día de hoy el menú se ha expandido enormemente. Por ejemplo: antes hubiéramos estado limitados a contratar un servicio E3 de 34 Mbps. El día de hoy podemos contratar servicios de 10, 20, 30, 40, 50Mbps. etc... 

Pero También hay Desventajas
  1. Carencia de mecanismos nativos de calidad de servicio. Ethernet por sí sólo no permitía distinguir la prioridad relativa de una trama con respecto a otra. La simpleza de diseño del protocolo vino con un costo en términos de "overhead" cuando quisimos diferenciar niveles de prioridad. El día de hoy inclusive puede ser preferible contratar más ancho de banda (la solución de "fuerza bruta") que implementar niveles de prioridad y calidad de servicio - QoS como el etiquetado 802.1Q (lo que hubiera sido la solución "inteligente").
  2. Carencia de mecanismos nativos de autentificación, cifrado y control de acceso. Nuevamente la simplicidad tuvo un costo. Para poder hacer autentificación y control de acceso necesitamos apoyarnos de protocolos adicionales. Cosas como 802.1X, PPPoE, VLANs, Q-in-Q son necesarias para autentificar al usuario y aislar su tráfico del tráfico de otros usuarios. El cifrado sólo puede hacerse mediante protocolos de orden superior (IPSec o SSL).
  3. Necesidad de enrutamiento individualizado en la red. Ethernet no es enrutable. A diferencia de otros protocolos que contienen un prefijo administrable con información geográfica (ATM, IPv4, IPv6, etc.), los prefijos Ethernet no son fácilmente administrables y los equipos de conmutación (switches) deben construir tablas con la ubicación individual de cada destino posible. En un mundo en el que se prevee la interconexión de miles de millones de dispositivos (Internet of Things), el direccionamiento Ethernet impone necesidades de procesamiento intensas y cada vez más sofisticadas a los equipos de los proveedores de servicio.
  4. Lentitud relativa de los mecanismos de restablecimiento ante fallas. En un mundo en el que 50mSeg de tiempo de desconexión parecen una eternidad, protocolos como Rapid Spanning-Tree (802.1W) y Spanning-Tree (802.1D) resultan asombrosamente insuficientes, con sus tiempos de restablecimiento en el orden de ¡segundos! Es así que algunos proveedores de servicios Metro Ethernet prefieren incluso no habilitarlos y depender de las muy superiores capacidades de SDH y SONET.
  5. En altas velocidades, las limitantes de longitud (1518 Bytes) no aportan mucho beneficio. Sin embargo la necesidad de compatibilidad "hacia atrás" dada por la posibilidad de que una misma trama deba viajar a muy diferentes velocidades no permite extender fácilmente dicho límite.
  6. Ausencia de diversidad. La competencia es buena. Al inclinarnos por UN SOLO PROTOCOLO de red, perdemos de vista los beneficios de otras tecnologías. Al mismo tiempo, cualquier posible debilidad, o deficiencia del protocolo podría permanecer oculta hasta que alguien decida explotarla, afectando a TODAS las variantes de Ethernet (por ejemplo, el ataque ARP Spoofing).

Haciendo un balance

Ethernet está aquí para quedarse, incluso si llegáramos a encontrar un protocolo mejor. De hecho, hace aproximadamente 20 años ya nos encontramos un protocolo con muy superiores capacidades técnicas (ATM - Asynchronous Transfer Mode), pero la economía de escala de Ethernet rápidamente lo desplazó salvo por algunos nichos de utilización que todavía existen en las redes de los proveedores de servicio.

Desde el punto de vista de diseño de servicios, es preferible incurrir en un "overhead" que cambiar de protocolo. Tal es el caso de ADSL que, pudiendo intercambiar tramas Ethernet libremente con el proveedor de servicios, necesita una capa adicional de protocolo PPPoE (Point-to-Point-Protocol over Ethernet), para fines de autentificación principalmente.

Pudiera argumentarse que el diseño de estándares a cada vez mayores velocidades (como 400Gbps) para el protocolo Ethernet no hará mas que aumentar el valor de dicha tecnología y apoyar la economía de escala en la que está metida.

¿Será algún día Ethernet víctima de su propio éxito? ¿Nos estaremos yendo por un camino del que será cada vez más difícil desviarnos en un futuro? ¿Podrían tecnologías de la red móvil como LTE, WiMax, 5G, etc. finalmente "liberarnos" de Ethernet? Sólo el futuro lo dirá.

Mientras tanto, nos tocará vivir tiempos interesantes.