Articulo de referencia

Ataques de búsqueda de claves

Los ataques de búsqueda de claves son ataques a sistemas informáticos que utilizan criptografía , en los que se busca en la memoria o el almacenamiento no volátil claves criptog...

Los ataques de búsqueda de claves son ataques a sistemas informáticos que utilizan criptografía , en los que se busca en la memoria o el almacenamiento no volátil claves criptográficas privadas que puedan usarse para descifrar o firmar datos. El término se usa generalmente en el contexto de ataques que buscan en la memoria de forma mucho más eficiente que simplemente probar cada secuencia de bytes para determinar si proporciona la respuesta correcta. A menudo se utilizan en combinación con ataques de arranque en frío para extraer material clave de los ordenadores.

Aproches

En su artículo fundamental [ 1 ] sobre ataques de búsqueda de claves, Shamir y van Someren propusieron dos enfoques diferentes para la búsqueda de claves: la búsqueda estadística o entrópica y la búsqueda analítica. El primero se basa en detectar diferencias en las propiedades estadísticas de los datos que componen las claves criptográficas, mientras que el segundo se basa en determinar patrones de bytes específicos que deben existir necesariamente en el material de la clave objetivo y en buscar dichos patrones.

Hallazgo estadístico clave

En general, para la mayoría de los sistemas criptográficos, las claves criptográficas deben ser lo más aleatorias posible. Para la mayoría de los cifrados simétricos, las claves pueden y deben ser un conjunto de bits verdaderamente aleatorio. Para la mayoría de los cifrados asimétricos, las claves privadas son números elegidos al azar con ciertas restricciones (como primalidad o ser generadores en un grupo) o son el resultado de cálculos basados ​​en un conjunto de números aleatorios con algunas restricciones. En ambos casos, el material de la clave presenta una alta entropía . En contraste, la mayoría de los datos sin comprimir en la memoria de una computadora tienen una entropía relativamente baja. Como resultado, si se sabe que una clave existe en la memoria en su forma original, es probable que destaque sobre el fondo de datos que no son clave debido a su alta entropía, y un atacante solo necesita buscar claves coincidentes en áreas de memoria o almacenamiento que tengan una alta entropía.

Las claves de alta entropía destacan visualmente sobre los datos de fondo de baja entropía.

El contraste entre la baja entropía de la mayoría de los datos y la alta entropía de los datos clave es suficiente para resultar evidente a simple vista. La imagen de la derecha muestra un ejemplo de ello.

Hallazgo clave analítico

Si bien la búsqueda estadística de claves puede ser eficaz para reducir la cantidad de memoria que se debe buscar, aún requiere probar áreas de alta entropía para verificar si contienen el material de clave correcto. En ciertos casos, particularmente en el contexto de los sistemas de cifrado de clave pública , es posible determinar patrones que deben aparecer en el material de clave y luego limitar la búsqueda a las áreas donde se encuentran estos patrones.

Shamir y van Someren [ 1 ] demostraron un ejemplo de este enfoque analítico para encontrar claves privadas RSA donde se conoce la clave pública y tiene un exponente público pequeño. En el sistema RSA, la clave pública es un par(norte,mi){\displaystyle (n,e)}, dóndenorte=pag.q{\displaystyle n=pq}donde p y q son dos números primos grandes. La clave privada correspondiente es(norte,d){\displaystyle (n,d)}(o a veces)(pag,q,d){\displaystyle (p,q,d)}o alguna variante de la misma) dondemi.d1(modϕ(norte)){\displaystyle ed\equiv 1{\pmod {\phi (n)}}}, lo que significa que e multiplicado por d es equivalente a 1, móduloϕ(norte){\displaystyle \phi (n)}donde φ representa la función totiente de Euler y es el tamaño del grupo multiplicativo módulo n. En el caso de una clave RSA:

ϕ(norte)=(pag1)(q1)=nortepagq+1{\displaystyle \phi (n)=(p-1)(q-1)=np-q+1}

Encontrar el valor deϕ(norte){\displaystyle \phi (n)}La factorización de n permite la factorización de n, y la seguridad del criptosistema RSA se basa en la dificultad de hacerlo. Por lo tanto, un atacante no puede determinar d con exactitud, dados e y n . Sin embargo, un atacante puede conocer bastante sobre cómo es d , dado el conocimiento de que p y q generalmente se eligen con la misma longitud en bits y ambos están "cerca" de la raíz cuadrada de n . Por lo tanto, un atacante puede aproximar una estimación de:

ϕ(norte)ϕ(norte)=norte2norte{\displaystyle \phi (n)\approx \phi '(n)=n-2{\sqrt {n}}}

y, por lo general, esta aproximación será correcta en la mitad más significativa de los bits de su representación binaria. La relación entre e y d significa que:

d=(1+k.ϕ(norte))/mi{\displaystyle d=(1+k.\phi (n))/e}

donde se desconoce el valor exacto de k pero0<k<mi.{\displaystyle 0<k<e.}Utilizando este hecho y la aproximaciónϕ(norte){\displaystyle \phi '(n)}, el atacante puede enumerar un conjunto de valores posibles para la mitad superior de la representación binaria de d para cada valor posible de k . Estos patrones binarios se pueden probar muchos órdenes de magnitud más rápido que realizando un descifrado de prueba. Además, en el caso común demi=3{\displaystyle e=3}Se puede demostrar quek=2,{\displaystyle k=2,}lo que permite determinar con exactitud la mitad superior de los bits de d y buscarla directamente.

Solicitud

Los ataques de búsqueda de claves se han utilizado junto con ataques de arranque en frío para extraer claves de máquinas después de que se hayan apagado. [ 2 ] Heninger y Shacham demostraron que las claves se pueden extraer incluso cuando los datos en la memoria se han corrompido al cortarse la energía. [ 3 ]

Nicko van Someren utilizó la técnica de búsqueda de claves estadísticas para localizar las claves de verificación de firmas que Microsoft utiliza para validar las firmas en los complementos MS-CAPI. Posteriormente se descubrió que Microsoft se refería a una de estas claves como NSAKEY , lo que generó cierta controversia. [ 4 ]

Medidas de mitigación

Key finding attacks can be mitigated in several ways. For analytic attacks, randomized key blinding will prevent the expected patterns from being found in memory as well as protecting against some other sorts of side-channel attack. Statistical attacks can be made less effective by storing other sorts of high-entropy or compressed data in memory and key material can be spread over a larger block of memory when not in use to reduce the concentration of entropy in one place.

References

  1. 12Shamir, Adi; van Someren, Nicko (1998-01-01). Playing Hide and Seek With Stored Keys. Lecture Notes in Computer Science. pp. 118–124. CiteSeerX 10.1.1.40.4467.
  2. Halderman, J. Alex; Schoen, Seth D.; Heninger, Nadia; Clarkson, William; Paul, William; Cal, Joseph A.; Feldman, Ariel J.; Felten, Edward W. (2008-01-01). "Least we remember: Cold boot attacks on encryption keys". In USENIX Security Symposium.
  3. Heninger, Nadia; Shacham, Hovav (2009-01-01). "Reconstructing rsa private keys from random key bits". Proceedings of Crypto 2009. pp. 1–17. CiteSeerX 10.1.1.215.6281.
  4. "Microsoft/NSA Info". 2000-06-17. Archived from the original on 2000-06-17. Retrieved 2016-10-12.{{cite web}}: CS1 maint: bot: original URL status unknown (link)