Este un sistema creado por la empresa Microchip que desarrolló un código basado en su algoritmo llamado Keeloq. Este código de 66 bits era hasta ahora prácticamente invulnerable gracias su elevado número de combinaciones (más de 18,4 trillones). Para entender como funciona este sistema debemos saber que el código se compone de 4 partes:
a) 4 bits fijos con el n° del canal
b) 28 bits fijos con el ID del transmisor
c) 32 bits de código variable
d) 2 bits fijos de paridad o sincronía
| | | parte fija | | | parte variable | | | ||||
| | | 2 bits | | | 4 bits | | | 28 bits | | | 32 bits | | |
Cuando el transmisor se memoriza, automáticamente el receptor crea una ventana de combinaciones esperadas, el tamaño de esta ventana varía de una marca a otra pero en forma empírica hemos detectado ventanas que van desde las 32 combinaciones hasta las 1024. El método o la forma como cambia la combinación también varía de una marca con otra y esto depende del algoritmo que da su nombre al sistema. Cada número de la secuencia se modifica igual como en que una máquina tragamonedas en la que van girando las figuras contenidas en el tambor rotario (rolling).
La ventana queda en modo de espera (stand by) hasta recibir un nuevo código del transmisor, cuando recibe el código y éste está dentro de la ventana, automáticamente la ventana se mueve a la posición del último código transmitido, quedando fuera de ella todos los códigos anteriores al último transmitido. Por ejemplo supongamos que al memorizar el transmisor, el receptor crea 32 combinaciones esperadas quedando en la posición cero el código con el que fue memorizado, luego supongamos que el trasmisor es accionado 5 veces fuera del alcance del receptor tras ser memorizado. Si se acciona una sexta vez dentro del alcance del receptor, el receptor lo tomará como un código válido porque está dentro la ventana de 8 combinaciones, quedando automáticamente en la posición Cero ese sexto código enviado y creándose una nueva ventana de 8 combinaciones a futuro, si las 5 combinaciones que se transmitieron previamente fueron copiadas en otro transmisor, el receptor no las considerará porque estarán fuera de la ventana.
| | | | | | | | | | | | | | | | | |
Ventanas de Combinaciones esperadas |
| | | | | | | | | | | | | | | | |
D564E89D FGA8431A 18D8A7EF D564E89D 4DE8441A 053EBA67 F008A99A 990DFE77 457AEFFF BED48941 4005FAA1 B0E64045 33BA78A4 789DAF20 66EE54E0 5F5F02AE |
| | | | | | | | | | | | | | | | |
*Inicio ventana 1 * * * * * * *Fin ventana 1 |
| | | | | | | | | | | | | | | | |
*Inicio ventana 2 * * * * * * *Fin ventana 2 |
| | | | | | | | | | | | | | | | |
En resumen si el código es presionado n veces fuera del alcance del receptor y se presiona una n+1 vez dentro del alcance del receptor, la ventana se corre n+1 posiciones. Por lo tanto la seguridad de este sistema está en que el Código que es enviado, es un código que sale de la ventana, y la ventana se va actualizando con respecto al último código recibido. Este sistema hace que cualquier copia que se hace a un transmisor queda inutilizada tras ser accionada una vez.
Hasta ahora las vulnerabilidad en el sistema estaba dado por receptores programados en forma defectuosa, como el que tiene por ejemplo los motores Veloti marca MC García con receptores TEM, cuya falla consiste en que existe una "remanencia" del código transmitido, vale decir cuando se memoriza el transmisor el receptor crea una ventana de 128 combinaciones esperadas a futuro, pero además crea una ventana de 128 combinaciones "pasadas" o ya transmitidas, quedando en el código cero entre ambas ventanas, entonces esto permite que tanto el original como la copia del control remoto quede operativos aún cuando la copia sea de código fijo. Sin embargo cada vez que se usa el trasmisor se genera una ventana nueva. De esta forma mientras el transmisor original va moviendo la ventana a "futuro" la copia o clon deja anclada la ventana en un punto ya pasado para el transmisor original, si ambos trasmisores se usan llega un punto luego de 255 pulsaciones en que entran en conflicto quedando fuera de su propia ventana el último en ser accionado.
Por otra parte se comercializan otro tipo de receptores llamados "universales" o de "rolling abierto" que trabajan sólo con la parte fija del código transmitido es decir los primeros 32 bits, y por tanto se puede copiar sin problema en un control remoto de código fijo.
Aún así frente a ataques "rudos" que se realizan con equipos que transmiten códigos aleatorios esta fallas da un margen de 32 bits de seguridad o sea 4.294 millones de combinaciones.
Resumiendo, entonces para vulnerar este código hasta ahora era necesario conocer el ID del transmisor el n° del canal que realiza la apertura, y lo más importante un código válidamente emitido y el algoritmo que permita determinar el siguiente código. Sin embargo desde el año 2016 esto ya no es así.
En el año 2005 se filtró documentación clasificada de la empresa Microchip respecto de los microcontroladores rolling code basados en su algoritmo Keeloq, con esta información investigadores belgas encontraron una falla que permite vulnerar, el hasta entonces, el más seguro código. Estos investigadores descubrieron que en la parte variable del código (32 bits) existe un "código de inicialización", que siempre se va a tomar como válido aún cuando no esté dentro de la ventana de las combinaciones esperadas. Esta información les permitió desarrollar un aparato que permite la apertura de los automóviles BMW, Mercedes, Audi, etc. El aparato funciona de la siguiente forma, deja fija los 32 bits de la parte variable del código, con el código de inicialización para la marca de auto que se quiere abrir, deja fija los 4 bits del código correspondiente al canal de apertura, mientras que los 28 bits correspondientes al ID del transmisor va variando. Dado que el ID de los microprocesadores va seriado de acuerdo al cliente (empresa de autos) que lo requiera, no hay más de 65.000 combinaciones posibles por marca. Lo que permite la apertura del auto en menos de 1 hora.
Como solución las marcas de autos llaman a Recall, actualizando o modificando el receptor y cambiado los ID de los vehículos nuevos a números no seriados.
El otro método de ataque que se utiliza, consiste en el uso de un dispostivo llamado RollJam, el cual consta de un inhibidor y un capturador de códigos. El método es bastante burdo ya que depende de lo desprevenido que esté la víctima. El inhibidor se instala cerca del automóvil de modo de bloquear la señal del transmisor original mientras que cerca del transmisor se instala el capturador de códigos. Cuando la víctima activa el transmisor, el inhibidor bloquea la señal y el capturador, captura y memoriza el primer código transmistido, entonces la víctima vuelve a presionar el botón de su transmisor enviando un segundo código, el cual también es bloqueado y memorizado por el capturador, a la vez que desactiva el inhibidor y envía el primer código capturado. De esta forma la víctima ve que su auto a recibido la señal y se retira, mientras que el perpetrador tiene el segundo código memorizado listo para usarlo. dependiendo del tipo de Rolljam puede aumentar la capacidad de códigos a memorizar.
Como solución se recomienda abrir y cerrar el centralizado del vehículo siempre en forma manual, si no es posible una vez dentro del vehiculo presionar varias veces el botón del control remoto de modo de que se mueva la ventana de combinaciones esperadas del receptor del auto.
SÍGANOS EN NUESTRO FANPAGE EN FACEBOOK
https://www.facebook.com/control.market