Un código variable (o a veces llamado código de salto ) se utiliza en sistemas de entrada sin llave para evitar una forma simple de ataque de repetición , donde un espía graba la transmisión y la reproduce más tarde para hacer que el receptor se "desbloquee". Estos sistemas son típicos en los abridores de puertas de garaje y en los sistemas de entrada de automóviles sin llave.
La contraseña de un solo uso basada en HMAC, ampliamente utilizada en la autenticación multifactor , utiliza un enfoque similar, pero con una clave secreta previamente compartida y HMAC en lugar de PRNG y una semilla aleatoria previamente compartida .
Un transmisor de código variable es útil en un sistema de seguridad para mejorar la seguridad de la transmisión de radiofrecuencia (RF), que comprende un código fijo de bits trinarios entrelazados y un código variable. Un receptor demodula la transmisión de RF cifrada y recupera el código fijo y el código variable. Al comparar los códigos fijos y móviles con los códigos almacenados y ver que pasan una serie de comprobaciones algorítmicas, se genera una señal para accionar un motor eléctrico para abrir o cerrar un componente móvil. [ cita necesaria ]
Los controles remotos envían una palabra de código digital al receptor. Si el receptor determina que la palabra clave es aceptable, entonces activará el relé, desbloqueará la puerta o abrirá la barrera. Los sistemas de control remoto simples utilizan una palabra clave fija; la palabra clave que abre la puerta hoy también la abrirá mañana. Un atacante con un receptor adecuado podría descubrir la palabra clave y utilizarla para obtener acceso algún tiempo después. Los sistemas de control remoto más sofisticados utilizan un código variable (o código de salto) que cambia para cada uso. Un atacante puede aprender la palabra clave que abrió la puerta hace un momento, pero el receptor no aceptará esa palabra clave en el futuro previsible. Un sistema de código variable utiliza métodos criptográficos que permiten que el control remoto y el receptor compartan palabras en clave, pero dificultan que un atacante rompa la criptografía.
El Microchip HCS301 fue alguna vez el sistema más utilizado en receptores y controles remotos de garajes y puertas. El chip utiliza el algoritmo KeeLoq. El sistema HCS301 KeeLoq transmite 66 bits de datos:
Como se detalla en KeeLoq , se ha demostrado que el algoritmo es vulnerable a una variedad de ataques y se ha roto por completo .
Un código variable transmitido por una señal de radio que pueda ser interceptada puede ser vulnerable a la falsificación. En 2015, se informó que Samy Kamkar había construido un dispositivo electrónico económico del tamaño de una billetera que podía ocultarse en o cerca de un vehículo cerrado para capturar un único código de entrada sin llave que se usaría más adelante para desbloquear el vehículo. El dispositivo transmite una señal de interferencia para bloquear la recepción del vehículo de señales de código variable desde el control remoto del propietario, mientras registra estas señales de sus dos intentos necesarios para desbloquear el vehículo. El primer código grabado se reenvía (reproduce) al vehículo sólo cuando el propietario hace el segundo intento, mientras que el segundo código grabado se conserva para uso futuro. Kamkar afirmó que se sabía desde hacía años que esta vulnerabilidad estaba presente en muchos tipos de vehículos, pero que no se había demostrado anteriormente. [3] Se realizó una demostración durante DEF CON 23. [4]