Criptografía de Caja Blanca

Publicado en

La criptografía es la práctica y estudio de técnicas para comunicación segura en presencia de terceros. Esta práctica ha ido evolucionando y haciéndose más compleja a lo largo de la historia: en un inicio consistió en el reemplazo de letras o palabras en base a patrones sencillos; posteriormente en la 2da Guerra Mundial se desarrolló significativamente este campo y se comenzaron a utilizar máquinas electromecánicas, como la Enigma. Hoy en día, que vivimos en un mundo basado en información, el uso de criptografía está ampliamente extendido y para ello se utilizan diversos métodos.

A pesar de la evolución que ha tenido la criptografía, los métodos convencionales no son capaces de ofrecer una solución blindada que contemple por completo los distintos escenarios de diferentes ataques que intentan explotar las vulnerabilidades inherentes en la criptografía. En las implementaciones de DRM (Gestión de derechos digitales) típicas, los algoritmos criptográficos forman parte de la solución de seguridad y emplean un algoritmo conocido y potente al mismo tiempo, confían en el secretismo de la clave criptográfica. El problema con dicha estrategia es que las plataformas en las que estas aplicaciones pueden ejecutarse quedan sujetas al control de usuarios finales potencialmente hostiles.

El supuesto convencional de la criptografía es una configuración de tipo Black-box (caja negra) donde se asume que el atacante no tiene acceso a la clave de cifrado, es decir, que solo tiene acceso al resultado (texto cifrado). Durante mucho tiempo se ha dado por supuesto que esto es cierto también para los dispositivos de hardware como las tarjetas inteligentes, pero los ataques maliciosos que explotan la información "filtrada" de un Black-box (como los ataques de análisis de potencial diferencial, también conocidos como DPS) se han desarrollado permitiendo a los atacantes obtener las claves secretas de cifrado utilizadas por la supuesta caja negra. Es así que lo que tenemos no son realmente cajas negras, sino en todo caso grises.

Los mecanismos de cifrado más populares, como AES [1], no han sido diseñado para operar en entornos donde su ejecución puede ser observada; dichos modelos asumen que los tokens de protección en los puntos finales —como PCs o reproductores digitales— son de confianza. Si estos puntos finales residen en un entorno potencialmente hostil, entonces las claves criptográficas pueden ser visibles directamente para los atacantes que monitoreen la ejecución de la aplicación mientras intentan extraer las claves que están adjuntas o son generadas por la aplicación desde la memoria. Este es un problema común en las aplicaciones basadas en software que se ejecutan en PCs, decodificadores digitales IPTV y otros dispositivos que consumen datos al intentar aplicar DRM. Al supervisar de forma activa las API criptográficas estándar o los volcados de memoria, un atacante puede extraer las claves cuando se usan. Por ejemplo, el programa BackupHDDVD utiliza este mecanismo para lograr copiar el contenido de un DVD protegido, eliminando así el DRM.

La idea de mantener información valiosa como las licencias y otros secretos empresariales ocultos a la vez que se opera en un entorno completamente transparente plantea diversos dilemas: ¿cómo podemos cifrar y descifrar contenido sin revelar directamente ninguna parte de la clave o los datos?, ¿cómo implementamos un mecanismo de cifrado sólido sabiendo que un atacante puede observar y alterar el código durante la ejecución? Este es el contexto de lo que se conoce como criptografía White-box (caja blanca).

Las técnicas de criptografía White-box tienen como objetivo proteger las implementaciones de software de algoritmos criptográficos contra la recuperación de claves, incluso si el atacante tiene un control absoluto sobre la máquina que realiza el cifrado; esto es especialmente útil en el campo de DRM. La criptografía White-box utiliza técnicas que permiten realizar cifrado de manera que un atacante no pueda acceder la clave, incluso aunque sea capaz de observar libremente la ejecución del código dinámico y conocer los detalles de los algoritmos utilizados.

Conclusión

Los algoritmos creados para los modelos de Black y Grey-box no son prácticos de cara a funcionar en equipos que no sean de confianza; los atacantes han reconocido la vulnerabilidad de la criptografía clásica en el entorno de PC abierto. La criptografía White-box, en cambio, ha sido diseñada para operar en este contexto.

Resulta implícito que la protección del software debe recibir una atención específica, a lo largo de las fases de diseño e implementación además de ajustarse como parte del ciclo de vida del producto y en el lanzamiento de nuevas versiones. Además de la criptografía White-box, deberían emplearse medidas de seguridad complementarias adicionales para reforzar aún más el plan de protección general.

Bio
Mauricio Hernández es especialista en soluciones de protección en SafeNet, empresa proveedora de soluciones DRM, para la protección y el licenciamiento de software. @SafeNetLatino www.safenet-inc.com