Amenazas a la criptografía

Creative Commons License
“Curso de Introducción a la Criptografía” by Jordi Íñigo Griera is licensed under a
Creative Commons Attribution 4.0 International License.
Project hosted at github.com/jig/crypto

Física cuántica

no confundir tres conceptos que parecen relacionados pero no lo están:

computación cuántica: cripto asimétrica

los computadores cuánticos utilizan algoritmos cuánticos; ciertos problemas exponenciales o subexponencials en computadores tradicionales se convierten en polinómicos:

DH, DSA, RSA y las variantes ECC quedarán obsoletas:
el algoritmo de Shor, 1994 es polinómico para factorizar $pq$ (RSAP) o para resolver el DLP o el ECDLP

Computación cuántica según Dilbert; bits y qubits

computación cuántica: cripto asimétrica

cambiar el tamaño de la clave no resuelve el problema (lo puede alejar en el tiempo ya que fuerza a trabajar con computadores cuánticos mayores ($\times 4$ qubits))

hasta ahora (2014) se ha factorizado números de hasta $16$ bit ($pq=56153$)

el 2001 IBM factorizó el $pq=15$

computación cuántica: cripto asimétrica

no se sabe cuando habrá computadores cuánticos utilizables

no se sabe cuando habrá un computador cuántico utilizable, ni quien lo tendrá
(pero probablemente no lo haga público)

se ha de estar preparado para tener un backup para la criptografía asimétrica probablemente hacia el 2030

se ha de ser consciente que no todo el mundo tendrá un computador cuántico durante un tiempo (largo), dependiendo de cual sea el objectivo de nuestra criptografía esto será relevante años más tarde

computación cuántica y
criptografía simétrica

computació cuántica: cripto simétrica

el algoritmo de Grover, 1996 permite encontrar las claves AES-128 en $2^{64}$ operaciones (cuánticas) conociendo una pequeña cantidad de texto en claro

si pasamos a AES-256 tendremos una seguridad equivalente de $128$ bit (ahora tenemos $256$ bit de seguridad equivalente)

computació cuántica: cripto simétrica

no se conoce ningún ataque sobre los hashes y los HMAC

contramedidas, resumen

  • usar claves de $256$ bit o superiores para criptografía simétrica
  • cripto asimétrica: en los casos que se pueda utilizar cripto simétrica…
    …utilizarla:
    • en VPNs intercambiar claves simétricas
    • en TLS utilizar claves muy grandes (hacen falta $n$ qubits para romper claves de $n$ bits; esto retarda unos años la factibilidad del ataque)
    • a largo plazo hace falta encontrar problemas matemáticos que tengan complejidad sub/exponencial en un ordenador cuántico
      • el NIST está buscando algoritmos substitutos

PQC Standardization Process

Actualmente en Segunda ronda de filtraje de candidatos

Criptografía basada en:

  • Lattices: crypto basado en matrices
  • Hashes: crypto de clave pública basada en Hash simétrico
  • Error-Correcting Codes: equivalentes a los códigos de protección de memoria
  • Multivariable: sistemas de ecuaciones
  • Supersingular Isogeny: variante the curvas elípticas

Criptografía cuántica

(no confundir con computación)

acuerdo de clave, a partir del cual se define una clave simétrica tradicional


los dos extremos se envían fotones individuales (fibra óptica habitualmente) con polarizaciones aleatorias y sumas de control:

si un atacante "observa" el intercambio modifica los fotones, destruyendo el intercambio de la clave y siendo detectado

2013,
Edward Snowden

Revelaciones Snowden

el 2013 Edward Snowden filtra cantidad de documentos que muestran las actividades de ciertas agencies de los EE.UU. (en particular de la NSA)

  • inversión en computación cuántica
  • captura de comunicaciones (cifradas o no): Echelon (pre-Snowden), almacenamiento de datos para posibilitar el posterior descifrado
  • miles de ingenieros y doctores dedicados al criptoanálisis (conocen la info publicada, y no publican sus avances): DH-1024, curvas elípticas, RC4, MD5; por cada diseñador de algoritmos, la NSA tiene 100 criptoanalistas (según la propia NSA)
  • a parte de una (supuesta) capacidad de computación enorme, la NSA dedica esfuerzos a modificar el código fuente tanto de software libre, como del código propietario (ya sea "amistosamente", como encontrando vulnerabilidades sin comunicarlas o inyectandolas de forma encubierta). Programa Bullrun

Revelaciones Snowden

  • si pueden evitar la criptografía lo prefieren:
    • es más fácil infectar que desencriptar
    • manipulación de código (propietario y abierto): conocimiento de exploits, troyanos
    • manipulación del hardware (RNG, APIs)
    • acceso a la nube por la puerta de atrás
    • publicación de algoritmos (a través del NIST), intoxicación (Dual_EC_DRBG)
    • extracción de datos de los metadatos: herramientas de inferencia sobre Big-Data (tienen pinchada Internet: proveedores de la nube, de Internet)

contramedidas a la NSA

  • TLS con DH/ECDH $\Rightarrow$ (Perfect Forward Secrecy, PFS): lo más probable es que lean tus claves en el disco del servidor (están en claro) $\rightarrow$ si han guardado en algún sitio todo el tráfico tendrán acceso a él con tus claves si tu TLS no cumple con PFS
  • gestión segura de software, restricción de la "sección" presentada, gestión de actualizaciones fiable…
  • los algoritmos con parámetros (ECC) deben estar validados
  • no usar algoritmos obsoletos: se cree que son capaces de descifrar RC4 sistemáticamente, encontrar colisiones en MD5, y quizás resolver DLP hasta a $p=1024$...

papeles de Snowden: lo que no sale

los papeles filtrados no hablan de que hay en la Suite-A

los papeles filtrados hablan de los aliados de los EE.UU. (Five Eyes), pero no de otros como China, Rusia, etc: se sabe por otras revelaciones que tienen programas equivalentes

Otros consejos

$\rightarrow$ formación, minimización de complejidad
(no sobrevalorar nuestra capacidad intelectual)

$\rightarrow$ disciplina, test/herramientas automáticas, gestión de actualizaciones procedimentada... procedimenta tu actividad
(no sobrevalorar nuestra memoria)

$\rightarrow$ comunicación, todos los actores relevantes de la Organización deben entender y compartir unos mismos objetivos de seguridad, y por tanto, unas mismas restricciones
(no sobrevalorar nuestra capacidad de hacer entender a todo el mundo que 1234 en un post-it no es una $k$ AES-128 segura…)

(RNG y HSM) $\rightarrow$