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.

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, dóndedonde p y q son dos números primos grandes. La clave privada correspondiente es(o a veces)o alguna variante de la misma) donde, lo que significa que e multiplicado por d es equivalente a 1, módulodonde φ 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:
Encontrar el valor deLa 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:
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:
donde se desconoce el valor exacto de k peroUtilizando este hecho y la aproximació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 deSe puede demostrar quelo 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
- 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.
- ↑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.
- ↑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.
- ↑"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)
- Hacking (computer security)