To top
Products Products

Blurry Box Cryptography

Share:

Kerckhoffs’ Principle

Auguste Kerckhoffs

Auguste Kerckhoffs
Image Source: Wikipedia.org

Auguste Kerckhoffs postuló su principio epónimo en el siglo XIX:  “Un criptosistema debe ser seguro, incluso si todo lo que compone al sistema, a excepción de la clave, es de público conocimiento”. Esto significa que un método eficaz no necesariamente debe ser secreto. Si lo fuera, uno debería preguntarse el por qué.

Wibu-Systems ha seguido fielmente este principio durante años. Si bien otras llaves electrónicas del mercado se basan en algoritmos patentados, Wibu-Systems ya había comenzado a utilizar el conocido algoritmo público FEAL y publicado el esquema de derivación de claves en el manual de WibuBox en 1992, cuando WibuKey se lanzó por primera vez. A pesar de que pudieron descifrarse varios sistemas (no publicados) en una etapa inicial, WibuKey logró resistir la prueba del tiempo, hasta que la clave de 40 bits (utilizada debido a restricciones de exportación) se volvió demasiado pequeña. Las WibuBox actuales tienen una longitud de clave actual de 64 bits, y jamás han sido descifradas. El primer lanzamiento de CodeMeter, en 2003, implementó AES (Estándar avanzado de encriptación) de 256 bit, otro algoritmo de cifrado público. Y, como sucedió anteriormente, no se ha descifrado ningún CmDongle hasta el momento.

El concepto

A diferencia del proceso de cifrado que sucede en una llave electrónica, no se han publicado hasta el momento métodos para integrar protecciones seguras en el software. Esto significa que existe “seguridad por ocultamiento”, exactamente lo opuesto de lo que predica el principio de Kerckhoffs. Estos métodos no publicados no pueden evaluarse ni compararse entre sí. Nuevamente marcando la diferencia, Wibu-Systems ha estado ofreciendo la oportunidad de debatir acerca de los métodos y funcionalidad de CodeMeter Protection Suite durante sus conferencias y eventos.

Con Blurry Box, la criptografía se eleva a otro nivel. La criptografía de Blurry Box ofrece protección de software completamente basada en métodos disponibles al público, lo cual permite que se pueda evaluar y comparar. Obviamente, la criptografía de Blurry Box puede combinarse con los métodos tradicionales de CodeMeter Protection Suite.

Chart describes the AxProtector.NET Operational Principle

El principio básico de la criptografía de Blurry Box es el uso de una o más claves seguras en una llave electrónica, y el hecho de que el software generalmente es complejo. El objetivo es hacer que el esfuerzo necesario para copiar ilegalmente software sea mayor que el esfuerzo necesario para reescribir el mismo software por completo. Básicamente, nada podría detener a un atacante que sabe cómo funciona un determinado software para que simplemente desarrolle un software similar: nada más que el puro esfuerzo necesario en sí.

Los métodos

La criptografía de Blurry Box consiste de siete métodos, lo cual incrementa el esfuerzo necesario para crear una falsificación, hasta el punto en que se vuelve más fácil y rápido volver a desarrollar el software desde cero.

Images shows the seven methods of Blurry Box

Creación de variantes

Todas las variantes se cifran para evitar que los atacantes realicen ingeniería inversa del código sin antes descifrarlo.

Inserción de trampas

Además de las variantes ya generadas, se insertan variantes adicionales como trampas cifradas. Una trampa contiene un código de bloqueo, lo cual significa que si la trampa se descifra a través de la llave electrónica, la llave se bloquea automáticamente y no se puede volver a utilizar para el descifrado. Esto previene que un atacante descifre todos los métodos sin realizar ingeniería inversa.

La elección de variante en la llave electrónica

La función de envoltorio utiliza la llave electrónica para seleccionar la variante. Para este propósito, los parámetros de entrada se envían a la llave electrónica, que devuelve la variante a utilizar. Esto hace que ya no sea posible para el atacante distinguir entre las variantes requeridas simplemente mediante una ingeniería inversa de la función de envoltorio descifrada. Dicho atacante debería ejecutar el código para todos los parámetros de entrada posibles a fin de poder identificarlo con certeza absoluta.

Motor de estado en la llave electrónica

El desarrollador sabe que las funciones solo pueden ejecutarse en el orden que ha elegido. El último método de cifrado se almacena en la llave electrónica como un estado. El siguiente cifrado verificará si se ha cumplido con este estado. En caso contrario, se puede activar una trampa para evitar que el atacante pruebe todas las variantes en un determinado punto del software. Siempre deberá volver al punto de inicio, lo cual incrementa la complejidad del ataque.

Demora de descifrado

En funcionamiento normal, solo puede realizarse determinada cantidad de descifrados cada 30 segundos. Esta cantidad se almacena como un umbral de descifrado en la llave electrónica. La llave electrónica configura el ritmo de trabajo de descifrado respectivamente. Además de hacer al proceso más complejo, el mecanismo retrasa al atacante.

Resumen

La criptografía de Blurry Box utiliza siete métodos publicados que aumentan en gran medida la complejidad y el tiempo necesarios para que un ataque sea exitoso. A final de cuentas, sería más fácil y menos costoso que el posible atacante desarrolle un software similar desde cero.

La criptografía de Blurry Box se puede combinar con los métodos de ofuscación y antidepuración típicos de CodeMeter Protection Suite. Con Blurry Box, la protección del software se convierte en algo medible y comparable. No hace falta tener fe ciega: usted compra una solución que se ha verificado minuciosamente y que ha sido aceptada por los expertos en el campo.