KeeLoq es un cifrador de bloques exclusivo de hardware que utiliza un registro de desplazamiento de retroalimentación no lineal (NLFSR). El protocolo de transferencia de comandos unidireccional fue diseñado por Frederick Bruwer de Nanoteq (Pty) Ltd., el algoritmo criptográfico fue creado por Gideon Kuhn en la Universidad de Pretoria y la implementación de silicio estuvo a cargo de Willem Smit en Nanoteq (Pty) Ltd ( Sudáfrica ) a mediados de la década de 1980. KeeLoq se vendió a Microchip Technology Inc en 1995 por $10 millones. [1] Se utiliza en codificadores y decodificadores de " código de salto " como NTQ105/106/115/125D/129D, HCS101/2XX/3XX/4XX/5XX y MCS31X2. KeeLoq se ha utilizado en muchos sistemas de entrada remota sin llave de empresas como Chrysler , [2] Daewoo , Fiat , Ford , [3] GM , Honda , Mercedes-Benz , [3] Toyota , Volvo , Volkswagen Group , Clifford, Shurlok y Jaguar . [3]
Los codificadores de "salto de código" KeeLoq cifran un bloque de 32 bits lleno de ceros con el cifrado KeeLoq para producir un " código de salto " de 32 bits. Se añade linealmente un vector de inicialización de 32 bits ( se realiza una operación XOR ) a los 32 bits menos significativos de la clave antes del cifrado y después del descifrado .
El cifrado KeeLoq acepta claves de 64 bits y encripta bloques de 32 bits ejecutando su NLFSR de un solo bit durante 528 rondas. La función de retroalimentación NLFSR es 0x3A5C742E
o
KeeLoq utiliza los bits 1, 9, 20, 26 y 31 del estado NLFSR como entradas durante el cifrado y los bits 0, 8, 19, 25 y 30 durante el descifrado. Su salida se combina linealmente (se realiza una operación XOR) con dos de los bits del estado NLFSR (los bits 0 y 16 en el cifrado y los bits 31 y 15 en el descifrado) y con un bit de clave (el bit 0 del estado de clave en el cifrado y el bit 15 del estado de clave en el descifrado) y se devuelve al estado NLFSR en cada ronda.
Este artículo describe el protocolo KeeLoq clásico, pero se han desarrollado versiones más nuevas. El sistema Ultimate KeeLoq [4] es un algoritmo basado en temporizador que mejora el sistema KeeLoq clásico. El objetivo de esta versión más nueva es contener un cifrado AES-128 más fuerte y estándar de la industria que reemplace el algoritmo de cifrado KeeLoq, y tener un contador controlado por temporizador que se incrementa continuamente, que es lo opuesto al KeeLoq clásico donde el contador se incrementa según la pulsación del botón. Esto proporciona protección contra ataques de fuerza bruta y ataques de captura y reproducción , conocidos como RollJam por el trabajo de Samy Kamkar .
Para simplificar, las implementaciones individuales de "saltos de código" normalmente no utilizan nonces criptográficos ni marcas de tiempo . Esto hace que el protocolo sea inherentemente vulnerable a ataques de repetición : por ejemplo, al bloquear el canal mientras se intercepta el código, un ladrón puede obtener un código que aún puede ser utilizable en una etapa posterior. [5] Este tipo de "capturador de código", [6] aunque teóricamente interesante, no parece ser ampliamente utilizado por los ladrones de automóviles. [7]
En 2015 apareció una descripción detallada de un prototipo económico diseñado y construido por Samy Kamkar para explotar esta técnica. El dispositivo, del tamaño de una billetera, podría ocultarse en un vehículo cerrado o cerca de él para capturar un único código de entrada sin llave que se utilizará más adelante para desbloquear el vehículo. El dispositivo transmite una señal de interferencia para bloquear la recepción por parte del vehículo de las señales de código variable del mando a distancia del propietario, mientras registra estas señales de sus dos intentos necesarios para desbloquear el vehículo. El primer código grabado se envía al vehículo solo cuando el propietario realiza el segundo intento, mientras que el segundo código grabado se conserva para su uso futuro. [8] Se anunció una demostración para DEF CON 23. [9]
KeeLoq fue analizado por primera vez por Andrey Bogdanov utilizando técnicas de deslizamiento y aproximaciones lineales eficientes . Nicolas Courtois atacó KeeLoq utilizando métodos deslizantes y algebraicos. Los ataques de Bogdanov y Courtois no plantean ninguna amenaza para las implementaciones reales que parecen ser mucho más vulnerables a la fuerza bruta simple del espacio de claves que se reduce en todas las implementaciones de salto de código del cifrado conocidas hasta la fecha. Algunos "capturadores de código" de KeeLoq utilizan dispositivos basados en FPGA para descifrar claves basadas en KeeLoq por fuerza bruta en aproximadamente dos semanas debido a la longitud de clave reducida en las implementaciones del mundo real. [ cita requerida ]
En 2007, los investigadores del grupo COSIC de la Universidad de Lovaina (Bélgica ) (KULeuven), en colaboración con colegas de Israel, descubrieron un nuevo ataque contra el sistema. [10] Utilizando los detalles del algoritmo que se filtraron en 2006, los investigadores comenzaron a analizar las debilidades. Después de determinar la parte de la clave común a los coches de un modelo específico, los bits únicos de la clave se pueden descifrar con solo rastrear la comunicación entre la clave y el coche.
Microchip introdujo en 1996 [11] una versión de los circuitos integrados KeeLoq que utilizan una semilla de 60 bits. Si se utiliza una semilla de 60 bits, un atacante necesitaría aproximadamente 1011 días de procesamiento en una máquina dedicada a realizar ataques de fuerza bruta en paralelo antes de que se rompa el sistema. [12]
En marzo de 2008, investigadores de la Cátedra de Seguridad Integrada de la Universidad del Ruhr en Bochum , Alemania, presentaron un ataque completo a los sistemas de entrada remota sin llave basados en la tecnología RFID KeeLoq. [13] [14] Su ataque funciona en todos los sistemas de control de acceso a automóviles y edificios conocidos que se basan en el cifrado KeeLoq.
El ataque del equipo de Bochum permite recuperar las claves criptográficas secretas incorporadas tanto en el receptor como en el mando a distancia. Se basa en la medición del consumo de energía eléctrica de un dispositivo durante un cifrado. Aplicando a las trazas de energía los llamados métodos de análisis de canal lateral , los investigadores pueden extraer de los receptores la clave del fabricante, que puede considerarse como una clave maestra para generar claves válidas para los mandos a distancia de un fabricante determinado. A diferencia del ataque criptoanalítico descrito anteriormente, que requiere unos 65536 pares de texto plano-texto cifrado seleccionados y días de cálculo en un PC para recuperar la clave, el ataque de canal lateral también se puede aplicar al modo de funcionamiento denominado KeeLoq Code Hopping (también conocido como rolling code ), que se utiliza ampliamente en los sistemas de acceso sin llave (coches, garajes, edificios, etc.).
La consecuencia práctica más devastadora del análisis de canal lateral es un ataque en el que un atacante, habiendo aprendido previamente la clave maestra del sistema, puede clonar cualquier codificador legítimo interceptando sólo dos mensajes de este codificador desde una distancia de hasta 100 metros (330 pies). Otro ataque permite reiniciar el contador interno del receptor (puerta de garaje, puerta de coche, etc.), lo que hace imposible que un usuario legítimo abra la puerta. [15]
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda )