Todo aquel que ha estudiado matemáticas en una sala de cine sabe que el cifrado es muy dificultoso. Prácticamente todos los espías de todas las películas ven los archivos cifrados con temor y pavor. Se puede pelear contra ejércitos de ninjas. Las bombas se pueden desactivar. Los misiles se pueden desviar. Pero un archivo cifrado solo se puede abrir con la llave correcta -y esa llave siempre se encuentra en manos de un peligrosamente atractivo agente que está oculto en un suntuoso escondite en el otro lado del mundo. (Nunca en Newark o New Haven -¿quién va a querer filmar una película en estos lugares?)
Por desgracia, este teorema de seguridad del cifrado puede ser aceptado como demostrado por los genios de la matemáticas en Hollywood U., pero la realidad es un poco más oscura. El cifrado no siempre es perfecto, y aun cuando los algoritmos básicos son verdaderamente sólidos, muchos otros eslabones de la cadena pueden fallar. Hay cientos de pasos y millones de líneas de código protegiendo nuestros secretos. Si alguno de ellos falla, los datos pueden ser tan fáciles de leer como el rostro de un niño de cinco años jugando Go Fish.
El cifrado está bajo el asalto más que nunca -y desde más lugares de lo que se pensaba anteriormente. Esto no significa que deba renunciar a proteger los datos sensibles; pero bien dice el dicho, hombre precavido vale por dos. Es imposible asegurar toda la pila y la cadena.
A continuación 11 razones por las que el cifrado ya no es tan bueno como pretende ser.
1. No hay pruebas -solo una carrera armamentista de algoritmos
La matemática en el corazón de cifrado se ve impresionante, con un montón de superíndices y subíndices, pero no viene con ninguna prueba dura y rápida. Uno de los algoritmos más famosos, el RSA, se dice que es seguro -siempre y cuando sea difícil factorizar números grandes. Eso suena impresionante, pero se limita a trasladar la responsabilidad. ¿Es realmente tan difícil de factorizar grandes números? Bueno, no hay ninguna prueba de que sea difícil, pero nadie sabe cómo hacer las cosas bien todo el tiempo. Si alguien averigua un algoritmo rápido, el RSA podría resquebrajarse como un huevo, pero eso aún no ha sucedido… creemos.
2. La revelación es el único medio para detectar una grieta
Suponga que averigua cómo factorizar números grandes y crackea el cifrado RSA. ¿Se lo diría al mundo? Quizás. Sin duda alguna se haría famoso. Puede ser que consiga ser nombrado profesor en una prestigiosa universidad. O, podría incluso conseguir un cameo en “The Big Bang Theory”.
Pero el negocio de crackear la encriptación puede ser sombrío. No es difícil imaginar que atrae a una gran cantidad de individuos u organizaciones que quieran mantener en secreto su nuevo poder y usarlo para hacer dinero o extraer información valiosa.
Muchos de nuestros supuestos acerca de la seguridad de la criptografía se basan en la creencia de que la gente va a compartir todo su conocimiento de las vulnerabilidades; pero no hay garantía de que alguien vaya a hacer esto. Las agencias de espionaje, por ejemplo, mantienen rutinariamente sus conocimientos para sí mismos. Y circulan rumores acerca de un avance criptográfico increíble desarrollado en el 2010 que todavía es clasificado. ¿Por qué el resto de nosotros actuaría de forma diferente?
3. La cadena es larga y nunca es perfecta
Hay una serie de excelentes demostraciones matemáticas sobre la seguridad de éste o de aquél sistema. Ofrecen una gran cantidad de conocimiento sobre un aspecto particular, pero dicen poco acerca de toda la cadena. La gente le gusta usar frases como “seguridad directa perfecta” para describir un mecanismo que cambia las teclas con la frecuencia suficiente para evitar que las filtraciones se propaguen. Pero para toda su perfección, la prueba cubre solo una parte de la cadena. Una falla en el algoritmo o una falla en el software pueden eludir toda esta perfección. Se necesita un montón de educación para mantener esto adecuadamente.
4. La potencia de la computación en nube es barata y masiva
Algunas descripciones de algoritmos gustan afirmar que tomaría “millones de horas” probar todas las contraseñas posibles. Eso suena a un tiempo increíblemente largo, hasta que se da cuenta de que por sí sola Amazon puede tener medio millón de computadoras en alquiler por horas. Algunas botnets pueden tener más de un millón de nodos. Los grandes números no son tan impresionantes en estos días.
5. Las tarjetas de video ofrecen un paralelismo fácil para el crackeo
El mismo hardware que puede manejar millones de triángulos también puede intentar millones de contraseñas aún más rápido. Las GPU son computadoras paralelas increíbles, y están más baratas que nunca. Si necesita alquilar un rack, se lo alquila a Amazon, también por hora.
6. Los hipervisores, el flagelo de los hipervigilantes
Usted ha descargado la distro más segura, ha aplicado todas las actualizaciones, ha limpiado toda la costra, y ha desactivado todos los procesos extraños que están en segundo plano. Felicitaciones, está más cerca de tener un servidor seguro. Pero digamos que todavía está obsesionado y audita cada última línea de código usted mismo. Para ser extra cuidadoso, inclusive audita el código del compilador para asegurarse de que no se esté deslizándose hacia un backdoor.
Sería un acto impresionante, pero no importaría mucho. Una vez que tiene su pila súper limpia, completamente auditada del código que se ejecuta en la nube, el hipervisor en el fondo podía hacer lo que quería a su código o su memoria, así como también podría hacerlo al BIOS. Oh, bueno.
7. Abundan las capas ocultas
El hipervisor y el BIOS son solo algunas de las capas más obvias escondidas. Prácticamente cada dispositivo tiene firmware – el cual puede ser muy poroso. Rara vez es tocado por los foráneos, por lo que rara vez se ha endurecido.
Una investigación del “backdoor de” llamado Rakshasa muestra que puede infectar la BIOS y colarse en el firmware de las tarjetas de red basadas en PCI y en los drivers de CD. Incluso si su cifrado es sólido y el sistema operativo no está infectado, su tarjeta de red podría estar traicionándolo. ¡Su tarjeta de red puede pensar por sí misma! Será un poco más difícil para la tarjeta de red llegar a la memoria principal, pero cosas más extrañas han sucedido.
Estas capas ocultas se encuentran en todas las máquinas, por lo general fuera de la vista y en el olvido. Pero pueden hacer cosas asombrosas con su acceso.
8. Backdoors en abundancia
A veces los programadores cometen errores. Se olvidan de comprobar el tamaño de una entrada, o se saltan borrar la memoria antes de soltarla. Podría ser cualquier cosa. Eventualmente, alguien encuentra el agujero y comienza su explotación.
Algunas de las empresas más visionarias liberan un flujo constante de soluciones que nunca parecen terminar, y deben ser elogiados. Pero el aumento incesante de los parches de seguridad sugiere que no habrá un final a corto plazo. En el momento en que haya terminado de leer esto, es probable que haya dos nuevos parches para instalar.
Cualquiera de estos agujeros podría poner en peligro su cifrado. Podría parchar el archivo y pulverizar el algoritmo. O podría filtrar la clave mediante algún otro camino. No tiene fin la maldad que puede ser causada por una puerta trasera.
9. Malos generadores de números aleatorios
La mayor parte del ruido alrededor de la encriptación se centra en la fuerza del algoritmo de cifrado, pero esto pasa por alto el hecho de que el algoritmo de selección de clave es igual de importante. Su encriptación puede ser súper fuerte, pero cuando el espía puede adivinar la clave, eso no importa.
Esto es importante porque muchas rutinas de cifrado necesitan una fuente confiable de números aleatorios para ayudar a recoger la clave. Algunos atacantes simplemente sustituyen su propio generador de números aleatorios y lo utilizan para socavar la elección clave. El algoritmo sigue siendo fuerte, pero las teclas son fáciles de adivinar por cualquiera que conozca la forma en que el generador de números aleatorios se ha visto comprometido.
10. Errores ortográficos
Una de las bellezas del software de código abierto es que puede descubrir errores -tal vez no todo el tiempo, pero en algunas ocasiones.
El iOS de Apple, por ejemplo, tenía una línea adicional en su código: goto fail. Cada vez que el código quería comprobar un certificado para asegurarse de que era exacto, el código llegaba a la instrucción goto y saltaba todo. Oops.
¿Fue un error? ¿Fue puesto allí a propósito? Nunca lo sabremos. Pero seguro que tomó mucho tiempo para que los maravillosos “muchos ojos” de la comunidad de código lo encontraran.
11. Los certificados pueden ser falsificados
Digamos que va a PeteMail.com con una conexión de correo electrónico cifrado, y para ser muy cuidadoso, hace clic para revisar el certificado. Después de un poco de escrutinio descubre que dice que fue emitido por la autoridad de certificación Alfa a PeteMail.com y que es de confianza. ¿Entendió? ¿No?
Mal ¿Qué pasa si PeteMail.com obtuvo su certificado real SSL de una autoridad de certificación diferente -por ejemplo, Beta. El certificado de Alpha también puede ser real, pero Alfa acaba de hacer un certificado para PeteMail.com y se lo dio al espía para facilitar la conexión al bug. Los ataques man-in-the-middle son más fáciles si el hombre en el medio puede mentir sobre su identidad. Hay cientos de autoridades de certificación, y cualquiera de ellas puede emitir certificados para SSL.
Esto no es una preocupación hipotética. Hay cientos de autoridades de certificación en todo el mundo, y algunas están bajo el control de los gobiernos locales. ¿Crearían un certificado antiguo para alguien? ¿Por qué no les pregunta?
– Peter Wayner, InfoWorld (EE.UU.)