18 septiembre 2013

¿Nos fiamos de los rusos?

Hubo un tiempo, durante la guerra fría, que todo lo 'Occidental' tenía su réplica en la URSS, o tal vez, a ojos de un Ruso, todo lo Ruso tenía su réplica en Occidente.

En el caso de la criptografía sucedió exactamente lo mismo, mientras el bloque occidental implementó los algoritmos que actualmente sustentan toda la seguridad en Internet a nivel global, los genios matemáticos Rusos hicieron su propia aproximación al problema de cifrar los datos en un mundo moderno.

El resultado de sus investigaciones fueron los algoritmos GOST, tanto a nivel cifrado como a nivel hash.

Adicionalmente existen implementaciones de GOST para clave pública y clave privada más actuales (2001) basadas en curvas elípticas.

Estos algoritmos han sido literalmente ignorados -a propósito o no- a la hora de diseñar la seguridad de Internet.

No verás los algoritmos rusos a la hora de pedir una página bajo SSL, tampoco los verás cuando uses un certificado digital. Los algoritmos que verás son aquellos que han sido apadrinados por occidente.

Y ahora la pregunta del millón: ¿Pero los algoritmos GOST son seguros? Como todo en criptografía es un 'depende'. Se han hecho avances significativos en el criptoanálisis de GOST -obvio- pero igual que se han realizado avances en prácticamente cualquier algoritmo.

Si consultamos a los expertos, a Bruce Schneier parece que le convence: "Against diferential and linear cryptanalysis, GOST is probably stronger than DES" (cita del libro Applied cryptography)

Se pueden consultar informes técnicos sobre la viabilidad de GOST como este.

¿Y por qué no se han incluido estos algoritmos en SSL/TLS? Esta pregunta se la lancé a Ivan Ristic, y me facilitó un enlace a un olvidado draft de un RFC que proponía su inclusión. No parece que se hayan promovido más iniciativas al respecto.

En este sentido cabe destacar las muchas fuentes que apuntan a que SSL ya está roto por parte de la NSA

Afortunadamente, GOST sí se encuentra bastante bien implementado en muchas librerías, OpenSSL tiene soporte para GOST.

También hay librerías en Perl o Python, con lo que cualquier persona puede usar esos algoritmos en sus proyectos.

Lamentablemente este algoritmo no se encuentra disponible, por ejemplo, en TrueCrypt, ni tampoco en Luks (cifrado de discos para Linux) o la CryptoAPI de Windows

¿Es hora de plantearnos el uso de algoritmos no 'tutelados' por EEUU/NSA?

17 comments :

Longinos Recuero Bustos dijo...

Muy interesante la entrada Yago. Gracias por hacernos pensar más allá de lo que parece obvio ;)

Alfonso Muñoz dijo...

Buff, Yago... con lo que yo te aprecio. El AES no es un algoritmo "tuneado" por la EEUU/NSA, actual estándar mundial, concurso abierto al mundo mundial... y hombre comparar GOST con DES... comparemos GOST con AES, por eso de compararlo con algo real (vamos el estándar mundial), y veamos como se comportan frente a ataque diferencial, lineal, etc. Además, como bien sabes, comparar la seguridad en algoritmos reales no es nada trivial, por ejemplo, comparar la seguridad de AES con Blowfish, y en la práctica muchos otros factores deben ser tenidos en cuenta. En serio, mi opinión, dejemos de ver conspiración en todo y aportemos datos más objetivos...
Alfonso Muñoz - @mindcrypt/@criptored

Nico dijo...

A mi con el mismo aprecio y ya que no tengo ni idea sobre el tema, me gustaría saber algo más de esas comparaciones a nivel objetivo si es que hay algo publicado. Alfonso si nos puedes ilustrar con algún enlace aunque sea de opinión, te estaria agradecido.

Yago Jesus dijo...

Muchas gracias amigo !!

Yago Jesus dijo...

Hola Alfonso,

Por partes, sobre lo que dices de que es un estándar mundial, eso es relativo, es un estándar en occidente. En Rusia, su estándar es GOST, incluso productos como Kaspersky Endpoint Security si tienen GOST como algoritmo para poder vender al gobierno Ruso.

Y como bien dices, comparar algoritmos es algo realmente complejo y que tiene muchas áreas a analizar. Lo que si he querido transmitir es que el juego de algoritmos GOST (tal vez el de PKI, con curvas elípticas sea el más peliagudo ...) son algoritmos robustos y acreditados, incluso por Schneier.


Respecto a la conspiranoia, yo siempre he intentado ser cauteloso pero no puedo ponerme una venda en los ojos con todo lo que está saliendo. Cuando crees que ya has llegado hasta el fondo de las implicaciones de la NSA, resulta que salen nuevos datos más asombrosos.


Mi objetivo con el post era simplemente mostrar 'otra realidad', que existen alternativas y plantear sobre la mesa lo extraño que resulta que de todo eso, nada esté incluido en las tecnologías que usamos todos y que ahora están en tela de juicio

Yago Jesus dijo...

Dale un vistazo al PDF que enlacé, yo creo que es de lo más completo que vas a encontrar, con muchas referencias a muchos autores

Alfonso Muñoz dijo...

Buenas,
a lo primero de "estándar mundial"... tienes razón. Al final el "imperialismo" de una forma u otra acaba saliendo hasta en el lenguaje :). Yo hace tiempo que intento evitar esa discusión peligrosa de que algoritmo es mejor o peor. Técnicamente sin duda GOST es más recomendable que DES, especialmente por todo lo que ya se conoce de este algoritmo y de las decisiones de diseño que se tomaron para facilitar ataques tipo lineal, diferencial, computacional, etc. ¿Qué algoritmo elegir? pues es un tema delicado. Realmente hoy día en cualquier pais "avanzado" existe el suficiente conocimiento para diseñar nuevos algoritmos simétricos con garantias suficientes. Yo siempre hablo de AES, primero por el concurso público en el que fue elegido (lo siento Scheneir Blowfish no... aunque bien es cierto que muchos opinan que es más seguro que AES aunque bien es cierto que es mas enrevesado y dificil de analizar) y sobre todo porque es un algoritmo usado masivamente en las comunicaciones mundiales. El uso masivo hace que multitud de personas estén intentando romperlo de momento sin éxito y en el campo de la criptografía, a día de hoy, no creo que haya una diferencia sustancial en el mundo civil y en el mundo militar. La pregunta del millón es si ante este nuevo tipo de algoritmos grandes organizaciones con suficientemente dinero puede encontrar algún camino que simplifique el descifrado. Yo no lo tengo claro, el tiempo y el dinero es bueno en aspectos cuantitativos, no estoy tan seguro que en aspectos cualitativos. Generar nuevas bases matemáticas para intentar resolver problemas no resueltos requiere además de lo anterior de las mentes más brillantes del planeta, y por muchos motivos estas agencias no están repletas de ellas. ¿Donde están? pues en universidades, centros de investigación, empresas, etc. ¿Por qué no trabajar en agencias? pues principalmente porque en otros sitios se gana mucho más dinero y en muchas ocasiones puedes presumir de lo que haces...


Enlaces como los que comentas, o muchos otros que se están publicando, no van a la base. Según mi punto de vista no destacan lo importante... la NSA intenta evitar a toda costa el criptoanálisis para simplificar su trabajo. En el caso de AES cualquier afirmación que indique que puede ser criptoanalizado más rapido que fuerza bruta (en realidad un "poquito menos" por los ultimos ataques publicados) en contra del conocimiento actual sin ningun tipo de prueba es del todo sensacionalista.



Yo sigo confiando en AES cuando podamos demostrar que no es así, seré el primero en afirmar que estaba equivocado. Por cierto, también en truecrypt... aunque menos que AES :)



Tus posts siempre se agradecen... al final esto es un debate sano :)
Un abrazo
Alfonso M.

alfonso muñoz dijo...

donde digo blowfish... quiero decir twofish :D
Alfonso M

María García dijo...

Qué interesante. Saber que además de la sota, caballo y rey hay, no ya más figuras, sino hasta más palos en la baraja. Me parece un tema fascinante. Pero para "coscarme" de algo tendría que empezar por el "Parvulito", o sea http://www.securitybydefault.com/2013/07/libro-cifrado-de-las-comunicaciones.html

Además, expuesto de una forma muy atrayente, como si fuera una novela de John Le Carré.



En cuanto a la pregunta que abre el artículo, pues supongo que es cuestión de si en vez de que nos espíe la NSA, preferimos que lo haga la ex-KGB. Y no se ha dicho nada de los chinos, o de los israelíes...

alfonso muñoz dijo...

A mi personalmente me gusta bastante los estudios que hicieron cuando se presentaron candidatos al estándar AES y al final se seleccionó el algoritmo Rijndael. Puedes buscar detalles es muy interesante.


Te adjunto un pequeño texto en el que traduje aspectos del libro de los autores de Rijndael al castellano. Aunque mejorable (2004), las primeras páginas del proceso de selección te puedan dar una idea rápida

www.criptored.upm.es/descarga/Rijndael.zip

alfonso muñoz dijo...

Por cierto, este sitio siempre es recomdable http://www.cryptosystem.net/aes/... lo era desde 2004 :)
Hace tiempo que no entro, hay una noticia sobre nuevos ataques a GOST... voy a mirar :)
Alfonso M.

Yago Jesus dijo...

Estoy al 100% contigo en que resulta complejo / difícil comparar algoritmos.


Lo que no tengo tan claro es la fiabilidad de los algoritmos estándar. Desde mi punto de vista aquí aplica mucho el 'divide y vencerás', en el escenario actual resulta muy fácil concentrar esfuerzos, poner toda la capacidad de criptoanálisis un relativo pequeño número de algoritmos, eso juega en contra de la fiabilidad, por eso creo que diversificar y apostar por alternativas lo que genera es un escenario más amplio y por ende menos manejable.


Sobre lo que comentas de la NSA, las universidades y los grandes genios, el planteamiento me gusta pero para mi, se vino abajo tras Flame. Si 'el autor' de Flame tenía a su disposición un ataque a MD5 del que no se sabía nada, yo creo que es prueba irrefutable de que la NSA dispone de información y ataques a la criptografía que no conocemos. Ante ese escenario, cualquier planteamiento por descabellado que pueda parecer en origen, debe ser tomando, cuando menos, en consideración

alfonso muñoz dijo...

Si bien es cierto que el algoritmo MD5 ya estaba desaconsejado desde hace mucho tiempo... el problema es que hacer sistemas interoperables y actualizar la criptografía en el mundo real no es sencillo... yo creo que en es tipo de cosas es donde entidades con recursos tienen la carrera ganada...
Alfonso Muñoz

Omar [FiX] dijo...

Me ha gustado que plantees el uso de alternativas cuando mucha gente cree que no existen. Enhorabuena nuevamente por tu articulo Yago

Camilo Uribe dijo...

Si los secretos de las naciones pequeñas han de ser conocidos por las grandes, yo creo que es mas seguro que todos los secretos no los conozca un solo pais(USA) sino que cada quien sepa solo una parte, por ejemplo: china 33%, USA 33% y Rusia 33%

Camilo Uribe dijo...

La NSA no es de confianza.

No todo en la vida es de publico conocimiento.

Un cierto grado de paranoia no viene mal si se trabaja con seguridad.

Juan Miguel Taboada Godoy dijo...

Entonces...¿es hora de plantearnos el uso de algoritmos tutelados por Rusia?