Pregunta al experto: Jornt van der Wiel habla sobre cifrado

En la segunda parte e nuestra sesión “pregunta al experto”, Jornt van der Wiel responderá preguntas sobre cifrado: cómo funciona, para qué sirve y mucho más.

Jornt van der Viel es el mayor experto en ransomware de nuestro equipo GReAT (Equipo de Investigación y Análisis Global). Pero también tiene grandes conocimientos sobre cifrado. Ofrecimos a nuestros lectores la oportunidad de hacer preguntas a Jornt sobre ambos temas y hubo tantas que tuvimos que dividirlas en dos publicaciones diferentes.

En la primera parte, Jornt respondió preguntas sobre ransomware. Esta vez hablará de cifrado y de temas relacionados.

Me he estado preguntando para qué sirve la seguridad informática. ¿Para la libertad? ¿Para la privacidad? ¿Para la seguridad nacional? No es fácil encontrar una respuesta, pero me gustaría saber qué opinas como experto.

En mi opinión, la seguridad informática trata sobre la protección de la vida diaria de las personas. Recuerda que la automatización y luego la informática se inventaron para que la vida fuera más fácil, para automatizar lo que los humanos tenían que hacer a mano. Por desgracia, muchos sistemas informáticos no se diseñaron con la seguridad en mente y de ahí la situación en la que nos encontramos ahora. Si no se protege la informática, la vida diaria sería un caos.

Imagínate que te llevan de urgencia al hospital y que no pueden atenderte porque les han hackeado. O que vives por debajo del nivel del mar y, de repente, tu casa se inunda porque se ha hackeado la esclusa de una presa . Estos dos ejemplos podrían llegar a suceder.

Pero no solo se trata de esos ejemplos, la vida diaria también engloba cosas pequeñas que importan a las personas. Imagina que alguien pierde las fotos de su recién fallecido padre porque un ransomware infectó su ordenador. Ese tipo de pérdidas tienen un impacto en la vida de las personas. Para eso sirve la seguridad informática, para proteger las cosas que más nos importan.

¿Cómo harías que una persona sin conocimientos informáticos comprendiera la importancia del cifrado en sus vidas diarias?

Creo que una de las mejores formas es dar ejemplos de lo que sucedería si no existiera el cifrado. Algo que sucede a menudo es que se pierden o se roban laptops o memorias USB con datos importantes. Si los datos no se cifraran, cualquiera con acceso a estos dispositivos podría ver los archivos y datos personales de las personas. Imagina cómo se podría manipular el tráfico de los pagos online si no se cifraran… Los ejemplos de la vida real son la mejor explicación.

¿Es fácil crear algoritmos de cifrado? ¿Cuánto se tarda?

Crear un algoritmo de cifrado confiable, que matemáticamente sea seguro, lleva años de investigación, sin mencionar los años de formación matemática. Aun así, si quieres crear algo simple, que se pueda hackear en cuestión de segundos, no tardarás nada.

¿Cómo funciona en realidad el descifrado?

Aquí debemos diferenciar entre diferentes tipos de cifrado: cifradores de flujo, cifradores simétricos y cifradores asimétricos.

Los cifradores de flujo son fáciles. Se basan en tu clave y se genera un sin fin de datos aleatorios que vuelves a pasar por XOR con tu texto cifrado (si imprimes ambos pares de datos, solo puedes contraponerlos). El resultado es el texto plano original.

Para los cifradores simétricos debes hacer a la inversa el mismo proceso de cifrado. Por ejemplo, si para cifrar unos datos tuviste que hacer A, luego B y luego C, para descifrarlo deberás empezar por C, continuar con B y terminar con A.

Los cifradores asimétricos son “magia pura”. También depende del tipo de cifrador asimétrico empleado (ECC y RSA funcionan de formas muy diferentes). Pero he dicho “magia” por las propiedades matemáticas utilizadas. Saber cómo descifrar es diferente a la verdadera comprensión de las matemáticas que hay tras el proceso de descifrado.

¿Qué algoritmo de cifrado es el más fiable?

Hay muchos algoritmos de cifrado que se pueden usar para diferentes propósitos. En general, utilizaría los que ganaron la competición NIST (AES/Rijndael y SHA-3/KECCAK). En realidad también depende de cómo y en qué tipo de sistema se utilizará el algoritmo. Por ejemplo, si tienes almacenamiento limitado, también puedes optar por ECC, el cual utiliza claves más pequeñas que las de RSA.

¿Qué métodos de cifrado son resistente a la fuerza bruta de la computadora cuántica?

Vaya, he tenido que leer mucho para responder esta pregunta (sonríe). Esto es lo que he averiguado: primero, la diferencia entre un ordenador cuántico y un PC normal es que el cuántico funciona con los llamados qubits en lugar de con los bits normales. Un qubit contiene dos bits. Ahora, para resumir una historia larga y complicada, utilizar el cifrado simétrico (el cual duplica la clave de cifrado) reduciría los beneficios de tener un ordenador cuántico si este se emplea para fuerza bruta.

Para el cifrado asimétrico, la historia es algo diferente. Peter Shor, un matemático de renombre, inventó el algortimo de Shor, el cual puede usarse para la descomposición en factores enteros en un tiempo polinómico. El problema de la factorización de enteros es uno de los problemas del que dependen muchos algoritmos de clave pública . Poder realizar la descomposición en un tiempo polinómico reduce a cero la seguridad de estos algoritmos.

¿Cómo se implementa un algoritmo de cifrado en un programa?

Simplemente con descargar una librería de cifrados para tu lenguaje de programación y utilizando la API. Entonces podrás utilizar las funciones de cifrado de dicha librería para usarlas en tu código.

¿Utilizan todas las organizaciones algoritmos de cifrado “fuertes” o prefieren tomar el código de fuentes públicas y lo modifican un poco?

Supongo que te refieres a las firmas de desarrollo de software. Espero que no modifiquen el código obtenido desde fuentes públicas porque ya hemos visto en el pasado que esta práctica puede traer graves consecuencias. Por ejemplo, echa un vistazo al bug de generación de números aleatorios en Debian Linux. Básicamente, codificaron el código, pero lo debilitaron en lugar de fortalecerlo. Lo que vemos en la práctica es que muchas veces se utilizan los SDKs de un paquete (por ejemplo, un terminal POS) o aquellos disponibles de forma pública. Por ello, los bugs de OpenSSL causan tantos problemas a tantos comerciantes.

En el futuro, ¿el cifrado quedará obsoleto o correrá peligro a causa de las agencias gubernamentales (como GCHQ) que intentan implementar puertas traseras para acceder a los datos? En cuyo caso, ¿el cifrado quedaría obsoleto?

No creo que el cifrado de datos se vuelva obsoleto (y espero que no ocurra). Por ejemplo, DES se inventó hace tiempo y lo seguimos viendo en los dispositivos. Así, como te podrás imaginar, tendrá que pasar mucho tiempo antes de que dichos dispositivos y los nuevos, equipados con AES, dejen de usarse por completo. También hay algunos países, como en el que yo vivo, que hace poco se posicionaron en contra de las puertas traseras en el software y afirmaron que el cifrado es algo bueno. Incluso se donó dinero (si no me equivoco) para el desarrollo de OpenSSL. Así que no creo que vuelva obsoleto.

¿Es posible comprobar la fiabilidad de un sistema como TrueCrypt? ¿Hay alternativas viables que se puedan usar, quizá en la nube, como Dropbox?

Se comprobó si TrueCrypt tenía puertas traseras o errores de implementación y no se encontró nada. Poco después, el código fuente de TrueCrypt se publicó para que los usuarios que quisieran lo comprobaran por sí mismos. Se encontraron algunas vulnerabilidades, pero nada que pareciera una puerta trasera. Luego, los productos derivados basados en el código de TrueCrypt han sido de código abierto, lo que significa que también se pueden comprobar. En resumen: Sí, se sabe de su fiabilidad porque la han comprobado. La ventaja de las soluciones basadas en TrueCrypt sobre Dropbox es que tú mismo tienes las claves. Aunque Dropbox cifre tus archivos cuando los transfiere a sus servidores, ellos tienen las claves, lo que significa que pueden acceder a tus datos. Por otra parte, la ventaja de Dropbox sobre TrueCrypt es que se responsabilizan de las copias. Cifra tus archivos de forma local y así podrá guardarlos donde quieras, siempre y cuando tú tengas la clave.

¿Los juegos cifran los datos del cliente que transfieren a sus servidores y viceversa? Si no, ¿qué se puede hacer para que un usuario proteja los datos transferidos de los ciberladrones?

Espero de verdad que los juegos se comuniquen con el servidor mediante una conexión cifrada, si no se podrían hacer trampas. Si no se cifra, no hay nada que tú, como jugador, puedas hacer ya que configurar una conexión SSL con el servidor no funcionará porque esté no comprenderá dicho protocolo. Aun así, te daré un consejo: si la conexión entre el servidor y el cliente no está cifrada y resulta que tú hospedas tanto el servidor como al cliente, puedes construir túneles SSL entre el cliente y el servidor para obtener una comunicación cifrada.

¿Cómo puedes crear una protección fiable para los juegos de ordenador?

Si de verdad quieres una protección de confianza, deberías utilizar un hardware sin puertas traseras. Aquí te dejo un vídeo interesante al respecto:

Si quieres hacerlo totalmente mediante software, échale un vistazo a cómo Denuvo protege los juegos de ordenador (incluso si se han crackeado). Quizá encuentres buenas ideas sobre el funcionamiento y qué se puede hacer aquí.

Con esto terminamos nuestra sesión de Pregunta al experto con Jornt van der Wiel, nuestro principal experto en ransomware y cifrado. Esperamos que encuentren las respuestas a sus preguntas. ¡Gracias a todos por participar en la sesión!

Consejos