¿Cómo utilizar el dongle?

Dongle Dongle fue creado por primera vez por Rainbow World Company y luego se convirtió en un término común en la industria para la protección de software. "Dongle" es un producto de cifrado de software y hardware que se conecta al puerto paralelo de una computadora (los dongles más nuevos también tienen puertos USB). Generalmente hay decenas o cientos de bytes de almacenamiento no volátil para lectura y escritura, y ahora los dongles más nuevos también incluyen un microcontrolador. Los desarrolladores de software pueden intercambiar datos con el perro a través de la función de interfaz (es decir, leer y escribir el perro), comprobar si el perro está conectado a la interfaz o utilizar directamente la herramienta proporcionada por el perro para cifrar su archivo EXE (comúnmente conocido); como "encapsulación"). De esta manera, los desarrolladores de software pueden configurar múltiples bloqueos de software en el software y usar el dongle como llave para abrir estos bloqueos. Si el dongle no está insertado o el dongle no corresponde al software, el software no se ejecutará correctamente.

El dongle intercambia datos con el dongle durante la ejecución del software para lograr el cifrado. El circuito de microcontrolador integrado del dongle (también conocido como CPU) permite que el dongle tenga capacidades de procesamiento de juicio y análisis, mejorando así sus capacidades activas anti-descifrado. Este tipo de producto de cifrado se denomina dongle "inteligente". El microcontrolador integrado en el dongle contiene un software de algoritmo específico de cifrado. Una vez que el software se escribe en el microcontrolador, no se puede volver a leer. Esto garantiza que el hardware del dongle no se pueda copiar. Al mismo tiempo, los algoritmos de cifrado son impredecibles e irreversibles. El algoritmo de cifrado puede convertir números o caracteres en números enteros, como DogConvert(1)=17345, DogConvert(A)=43565.

Dongle es una herramienta de protección de software inteligente para desarrolladores de software. Consiste en una pieza de hardware instalada en el puerto paralelo o interfaz USB de la computadora, un conjunto de software de interfaz y software práctico en varios idiomas. El dongle se basa en tecnología de protección de hardware. Los dongles se basan en tecnología de protección de hardware y están diseñados para proteger el software y los datos del uso no autorizado de la propiedad intelectual.

Cómo funcionan los dongles:

Los dongles implementan el cifrado intercambiando datos con el dongle durante la ejecución del software. El dongle tiene un circuito de microcontrolador incorporado (también conocido como CPU), que le permite tener capacidades de juicio, análisis y procesamiento, y mejora la capacidad de prevenir activamente el descifrado. Este tipo de producto de cifrado se denomina dongle "inteligente". El microcontrolador integrado en el dongle contiene un software de algoritmo de cifrado especial. Una vez que el software se escribe en el microcontrolador, no se puede volver a leer. Esto garantiza que el hardware del dongle no se pueda copiar. Al mismo tiempo, los algoritmos de cifrado son impredecibles e irreversibles. El algoritmo de cifrado puede convertir un número o carácter en un número entero, como DogConvert (1) = 17345, DogConvert (A) = 43565. Aquí damos un ejemplo para ilustrar el uso del algoritmo de microcontrolador. A=Fx (3). El programa quiere obtener el valor de la variable A basándose en la constante 3. Por lo tanto, podemos reescribir el programa original de esta manera: A = Fx (DogConvert (1) -12342). De esta manera, la constante 3 no aparecerá en el programa original, pero será tratada como DogConvert (1) -12342. Sin el dongle, la función DogConvert no devolverá el resultado correcto y la ecuación A=Fx(DogConvert(1)-12342) ciertamente no devolverá el resultado correcto. Esto hace que el método de cifrado de valores de software no esté disponible para los usuarios pirateados, y el método de descifrado es más suave, más encubierto y más esquivo que el método de cifrado que advierte y desactiva el uso ilegal de métodos de cifrado. Además, el dongle también tiene una función de lectura y escritura, que se puede utilizar para leer y escribir en la memoria interna del dongle. Por lo tanto, podemos escribir 12342 en la fórmula anterior en la memoria del dongle, de modo que el valor de A dependa completamente de los resultados de las funciones DogConvert () y DogRead (), aumentando así en gran medida la dificultad de descifrado.

Pero en general, la dificultad del algoritmo del microcontrolador dongle es menor que la de algunos algoritmos de cifrado públicos, como DES, porque los descifradores tienen que enfrentar muchas dificultades antes de entrar en contacto con el algoritmo dongle.

[Editorial] Últimos principios de cifrado de hardware

Con el desarrollo de la tecnología de descifrado, los dongles de microcontroladores se están eliminando gradualmente del mercado debido a algoritmos simples, poco espacio de almacenamiento y fácil copia impresa. En este contexto, Beijing Zhongke Yutu Technology Co., Ltd. ha desarrollado un dongle de cuarta generación con mejor estabilidad, mayor espacio de almacenamiento (máximo 64K) y puede prevenir eficazmente la clonación física: la tecnología original de "trasplante de código" "Tarjeta inteligente" dongle y dongle de "tarjeta inteligente" con tecnología original de "trasplante de código". El "dongle" de tarjeta inteligente, con su principio original de "trasplante de código", ha sido adoptado por grandes desarrolladores de software comercial nacionales, como Kingdee, UFIDA, CAXA, Quanta, Lingmai, Luban...

El primer bloqueo de contraseña con tarjeta inteligente del mundo: Honggou como ejemplo, presentaremos brevemente el principio de "trasplante de código"

El principio de cifrado de "trasplante de código" es un nuevo modo de protección de software confiable. siguiente: Parte del código en el software se compila y se "trasplanta" al hardware de la cerradura. No hay ninguna copia del código en el software.

En este esquema de protección del software, el código clave del software de la aplicación para PC. y Los datos "desaparecen" y se mueven de forma segura al hardware bloqueado de Elite IV para su protección. Cuando sea necesario, el software de la aplicación puede usar el motor de llamada de función para indicarle a Elite IV que ejecute el código y los datos críticos en el hardware y devuelva los resultados. para que aún pueda estar protegido Complete todas las funciones de todo el software Dado que no hay copias de código ni datos en el lado de la PC, los descifradores no pueden adivinar el algoritmo ni robar datos, lo que garantiza en gran medida la seguridad de todo el sistema de software. En resumen, Elite IV es teóricamente seguro. El cifrado de software proporciona una solución confiable.

Casos de aplicación de la tecnología dongle

1. Software de costo Glodon

2. Tsinghua. Software de costes Unigroup

3. Software de cálculo de costes Magical

4. Software de cálculo de costes Luban

Algunas estrategias para utilizar el cifrado dongle

Hoy en día , la tecnología de descifrado excluye Es una ciencia desde una perspectiva académica sin tener en cuenta factores legales y éticos.

Las siguientes son algunas ideas sobre el uso de dongles (dongles) para la protección del hardware:

¿Cuáles son los métodos de descifrado usando dongles?

1. Copia de hardware

Copia el hardware, es decir, el descifrador copia el mismo bloqueo de cifrado que Sentinel Superpro. Utiliza el sistema patentado de Rainbow. Tecnología de chip ASIC Es muy difícil y costoso copiar el bloqueo de cifrado.

2. Escuchar

El descifrador utiliza un programa de descifrado de puerto paralelo, que funciona de la siguiente manera:

El oyente registra la cadena de consulta enviada por la aplicación al puerto paralelo y la cadena de respuesta enviada por el bloqueo de cifrado después de que se elimina el bloqueo de cifrado, si el programa envía otro mensaje al puerto paralelo A. cadena de consulta para confirmar la identidad, el oyente devolverá la cadena de respuesta grabada. El programa cree que el bloqueo de cifrado todavía está en el puerto paralelo y la aplicación está descifrada.

*** Disfrute

.

Inserte el bloqueo de cifrado en la impresora**** y disfrútelo. Varias computadoras**** también usan el bloqueo de cifrado compartido por la impresora**** (las contramedidas se presentarán brevemente más adelante). >

4.DEBUG

Decryptor DEBUG y otros descompiladores, modifican el código fuente del programa u omiten la comparación de consultas. Las aplicaciones también se descifran.

Para los métodos de descifrado anteriores, los codificadores pueden considerar el uso de las siguientes estrategias de cifrado:

1. Para los métodos de descifrado anteriores para monitoreo y problemas de DEPURACIÓN, el autor recomienda hacer un uso completo de Estrategia de cifrado de los desarrolladores de dongle para llamadas a funciones API:

a. Para el programa de monitorización de puerto paralelo

1) Consulta del algoritmo de bloqueo de cifrado

p>

?Verificación de respuesta de consulta correcta

El usuario genera una gran cantidad de pares de respuesta de consulta, como 200 pares.

Durante la ejecución del programa, la unidad de algoritmo de cifrado activada envía aleatoriamente uno de los 200 pares "345AB56E"----"63749128". Si la cadena de consulta es "345AB56E", la siguiente cadena de respuesta precisa devuelta por la unidad de algoritmo debe ser "63749128". Si es así, significa que el programa en el bloqueo de cifrado es un puerto paralelo y es un usuario legal. de lo contrario terminará el programa.

?Verificación del algoritmo de desactivación aleatoria

Enviamos una cadena de consulta generada aleatoriamente a la unidad del algoritmo de bloqueo de cifrado desactivada, como por ejemplo: "7AB2341, siempre que la unidad del algoritmo inactivo tenga The". La consulta tendrá una cadena de respuesta. Entonces se devuelve la cadena de respuesta "7AB2341" y el programa determina si la cadena de respuesta y la cadena de consulta son iguales. Si son iguales, demuestra que nuestro bloqueo de cifrado todavía está ahí. Continúe ejecutando el programa.

?Verificación del algoritmo de activación aleatoria

Se supone que el oyente comprende el mecanismo anterior. Es decir, para un algoritmo de cifrado inactivo, la cadena de consulta que enviamos devolverá la misma cadena de respuesta. Yo también tengo una respuesta. La unidad del algoritmo de cifrado de activación envía una cadena de consulta generada aleatoriamente como "345AB56E", ya que la cadena de respuesta del algoritmo de activación no debe ser igual a la cadena de consulta. Por lo tanto, si se devuelve la cadena de respuesta "7253ABCD", el programa debe determinar si la cadena de respuesta es diferente de la cadena de consulta. Si es diferente, demuestra que nuestro bloqueo de cifrado todavía está en el puerto paralelo y continúa ejecutando el programa. .

Las tres estrategias de cifrado anteriores se utilizan simultáneamente en el programa, coincidiendo entre sí y complementándose. Esto es cierto incluso si el oyente registró parte de nuestra respuesta a la consulta.

2) Consulta de tiempo compartido

Pares de respuesta de consulta de grupo de usuarios, por ejemplo, 120 pares se dividen en 4 grupos. Cada grupo es de 30 parejas. El primer grupo se utiliza durante los primeros tres meses, el segundo grupo se utiliza durante el segundo y los tres meses, y así sucesivamente, y el programa de seguimiento registra continuamente los primeros tres meses. Después de los segundos tres meses, el programa todavía no estaba disponible.

También es posible generar 100 pares adicionales de "miembros temporales", uno seleccionado al azar en cada ejecución, para usar junto con las agrupaciones anteriores. De esta forma, el programa grabado no podrá grabarse completamente en un plazo de tres meses. El programa no está disponible.

3) Lectura y escritura aleatoria de unidades de almacenamiento.

Para evitar el seguimiento de programas. Nuestra estrategia es que cuando se inicia el programa, usamos una función aleatoria para generar un número aleatorio, digamos que es "98768964". Escribimos este número en la celda 18# designada. Cuando ejecutamos el programa, debemos leer la unidad 18# del programa antes de cada llamada a la función para determinar si el número que escribimos es "98768964". Debido a que el número escrito cada vez se genera aleatoriamente, el oyente no registra el número aleatorio escrito al comienzo del tiempo actual y el número que devuelve no debe coincidir. De esta forma podemos determinar si el usuario es legítimo. Los dongles Sentinel Superpro se pueden escribir más de 100.000 veces. Esto significa que incluso si escribes tres veces al día, te durará 100 años.

2. Estrategia de cifrado para imprimir cobertura de ****

Para evitar la impresión de cobertura de ****. Nuestra estrategia es: cuando se inicia el programa, usamos una función aleatoria para generar un número, digamos que el número es "7762523A". Escribimos ese número en la celda 34# designada. Luego, mientras el programa se ejecuta, cada vez que se llama al programa de función, leemos la unidad 34# para determinar si es el número que escribimos, "7762523A". De esta forma podremos determinar si se trata de un usuario legítimo. Debido a que los números escritos cada vez se generan aleatoriamente y cuando se utiliza la impresión ****, el programa de otro usuario ilegal también escribirá números aleatorios diferentes tan pronto como ingrese. Luego, cuando el programa del primer usuario verifique si es el número escrito por el primer usuario, se considerará un usuario ilegal. Por lo tanto, en una determinada etapa, sólo puede ser utilizado por un programa. (Por ejemplo, el candado de cifrado Sentinel Superpro abierto por RAINBOW se puede abrir repetidamente más de 100.000 veces. (Es decir, se puede utilizar durante cien años incluso si se escribe tres veces al día).

3. Estrategia de seguridad para los bloqueos de cifrado de seguimiento de DEBUG

1) Método disperso

Se utiliza para el seguimiento de DEBUG. Antes de llamar a cada módulo de función importante, recomendamos consultar el bloqueo de cifrado para verificar la identidad. Si solo se autentica al comienzo del programa, la sección DEBUG tracer puede omitir fácilmente la parte de verificación y algún mal usuario puede eliminar el bloqueo de cifrado de otras computadoras después de la verificación.

2) Método de retraso

Para la verificación de consultas específicas, hay tres pasos:

? Consulta para obtener la cadena de respuesta

? Compare la cadena de respuesta con la cadena de consulta para encontrar una coincidencia

Realice los pasos apropiados

Recomendamos retrasar los tres pasos anteriores. Es mejor separar estos tres pasos o incluso ponerlos en diferentes subrutinas o funciones. Por ejemplo, después de ejecutar "Consultar para obtener la cadena de respuesta", ejecutaremos "Comparar la cadena de respuesta y la cadena de consulta para ver si coinciden" en intervalos de 50 segundos. Supongamos que el programa necesita llamar a una función. Luego realizamos "realizar los pasos correspondientes" en esta función. Esto aumenta la dificultad de descifrar el programa.

3) Integración

Utiliza la cadena de respuesta como dato en el programa.

Por ejemplo, tenemos el valor de retorno "87611123" y nuestro programa requiere el número "123". Podemos restar "8761000" de "87611123" para obtener "123". De esta forma, cualquier modificación al programa de cifrado romperá el programa.

4) Ofuscación

Normalmente, nuestro programa realizará los pasos de verificación adecuados. Si la verificación es ilegal, el usuario saldrá. Esta es una firma de código muy fácil de detectar. Sabemos que los usuarios ilegales seguirán realizando algunas operaciones inútiles y harán que el programa sea caótico. Confundir al descifrador.

Las anteriores son algunas estrategias prácticas de cifrado que actualmente los desarrolladores de software pueden utilizar dongles de hardware (dongles) para proteger su software.