El algoritmo de encriptación en alarmas de automóviles es un conjunto de reglas para el intercambio de datos entre el llavero y la unidad de control de una alarma de automóvil, según el cual la transmisión de datos está protegida para que un atacante no pueda obtener acceso no autorizado al automóvil, incluso si puede. interceptar paquetes de intercambio de datos.
La función principal de las alarmas de automóviles es un sistema de advertencia complejo para el propietario sobre la entrada no autorizada a su automóvil (por ejemplo, abrir puertas, capó, maletero), cualquier acción realizada por un intruso con el automóvil (por ejemplo, golpear el cuerpo, levantar el automóvil, moviéndose en el espacio, pinchando las ruedas de los neumáticos), intentos de robar un automóvil. Además, todos los sistemas de alarma modernos están equipados con funciones adicionales que aumentan la comodidad de usar el vehículo (ver Alarma de automóvil). El enfrentamiento entre los desarrolladores de alarmas para automóviles y los ladrones de automóviles comenzó desde la creación de las primeras alarmas para automóviles. A lo largo de los años, los sistemas de seguridad han mejorado, pero también los medios para piratearlos. A continuación, hablaremos sobre el cifrado en las alarmas de los automóviles, sus vulnerabilidades, así como los métodos de protección.
Al igual que cualquier sistema electrónico, un sistema de alarma de automóvil consta de tres componentes básicos: dispositivos de entrada y activación , una unidad de control (en lo sucesivo, BU). Los dispositivos de entrada incluyen un control remoto o un llavero de alarma para automóvil . En una alarma estándar (instalada por el fabricante del automóvil), la mayoría de las veces se combina con una llave de encendido física. Con la ayuda del llavero se arma y desarma la alarma, además de monitorear el estado del auto. En varios diseños de alarma, se utiliza un llavero remoto para arrancar el motor de forma remota, controlar el equipo eléctrico y buscar un automóvil en un estacionamiento.
La centralita es el corazón de la alarma y se encuentra en el interior del coche, en un lugar invisible desde el exterior. En el sistema de cableado electrónico del vehículo (ver Controller Area Network ), la CU está conectada a los sensores necesarios para el funcionamiento de esta alarma (pueden ser sensores de posición y velocidad, sensores inductivos, magnetorresistivos, ópticos (para monitorear varios parámetros del vehículo, como como integridad del cuerpo), sensores de presión) [1] .
Los datos entre la unidad de control y el llavero se transmiten a través de un canal de radio , que no es seguro. En otras palabras, las ondas de radio no se propagan en una dirección y los datos transmitidos se pueden escuchar, estando lejos del propietario del automóvil. Usando ciertos algoritmos de cifrado, los datos transmitidos se cifran y transmiten en forma de pequeñas secuencias: paquetes . Cada paquete se puede representar como un comando (por ejemplo, "Abra las cerraduras"), una respuesta a un comando ("Las cerraduras están abiertas") o un mensaje ("¡Atención! ¡El encendido está encendido!").
A pesar de que se realizan transformaciones reversibles sobre los datos transmitidos (mencionados anteriormente) utilizando una clave para ocultarlos de personas no autorizadas (en nuestro caso, de una persona que no es el propietario del automóvil), es decir, los datos está encriptado, en la literatura rusa y las revistas científicas en relación con las alarmas de los automóviles, las expresiones " codificación estática" , "codificación dinámica", "codificación de diálogo" (y frases similares con la palabra "código"), que son incorrectas desde el punto de vista punto de vista de la criptografía, se han asentado. De hecho, estos son tres tipos de encriptación y, además, considerándolos, tendremos en cuenta este hecho.
Los primeros algoritmos de señalización se basaban en codificación estática . Al mismo tiempo, cada equipo tenía su propio paquete de comandos, que no cambiaba con el tiempo (de ahí el nombre de este tipo de codificación). Por ejemplo, el comando "Puertas abiertas" siempre correspondía al paquete de comando " Q1234Y" (en este formato se transmitía desde el llavero a la unidad de control). El formato del paquete fue elegido por el propio usuario (o el fabricante de la alarma), cambiando los motores dentro del llavero o soldando los puentes. Dado que había pocas opciones de código, a veces podía abrir el automóvil de otra persona con la misma alarma con su llavero: los formatos del paquete coincidían. Por supuesto, dicha codificación no proporcionó la protección adecuada: fue suficiente escuchar el paquete correspondiente al comando "Desarmar" una vez y luego, después de repetirlo, obtener acceso al automóvil.
Una vulnerabilidad en el método de codificación estática y la posibilidad de escuchar la radio se convirtió en el impulso para la aparición de capturadores de código , dispositivos técnicos especiales que pueden interceptar la señal, decodificar y repetir el código. Por lo tanto, el capturador de código básicamente emula una alarma regular sin el conocimiento del propietario. En cuanto a su diseño, el capturador de código repite casi exactamente el llavero de alarma del automóvil: tiene un receptor y un transmisor de ondas de radio, un microcontrolador de control, botones físicos y medios de indicación. Para simplificar la fabricación de tales dispositivos, los secuestradores a menudo usan el cuerpo del llavero de alarma, ya que allí hay botones, una antena y una indicación. Además, visualmente, un llavero capturador de código de este tipo no se puede distinguir de un llavero de referencia.
Para proteger las alarmas de los automóviles de ser pirateadas por un capturador de códigos, comenzaron a usar un código dinámico , un paquete de datos que cambia constantemente y se transmite desde el llavero a la unidad de alarma a través de un canal de radio. Con cada nuevo comando, se envía un código desde el llavero que no se ha utilizado antes.
La alarma funciona según el siguiente principio. Cuando el propietario del automóvil presiona el botón del llavero, se genera una señal. Lleva información sobre el número de serie del dispositivo, el código secreto ( clave de cifrado ) y el número de clics (es necesario sincronizar el funcionamiento del llavero y la unidad de control). Estos datos están precodificados antes de ser enviados. El algoritmo de cifrado en sí está disponible gratuitamente, pero para descifrar los datos necesita conocer el código secreto que se escribe en el llavero y la unidad de control en la fábrica. Podría parecer que el problema de los capturadores de código se ha resuelto, pero no fue así. La codificación dinámica tampoco resistió los capturadores de código de las nuevas modificaciones.
El primer método se basa en la sustitución del código de alarmas ( code grabber code change ), en el que los comandos de armado y desarmado se realizan presionando un botón. El método de piratería es crear interferencia e interceptar la señal. Cuando el propietario del automóvil sale del automóvil y presiona el botón del control remoto, se crea una fuerte interferencia de radio. Como resultado, la señal con el código no llega a la unidad de control de alarma, sino que es interceptada y copiada por el capturador de códigos. El desconcertado conductor presiona el botón nuevamente, pero el proceso se repite y el segundo código también es interceptado. A partir del segundo tiempo, el auto se pone en defensa, pero el comando proviene del dispositivo del ladrón. Cuando el propietario se dedica tranquilamente a sus asuntos, el secuestrador envía un segundo código, previamente interceptado, y elimina el automóvil de la protección. Obviamente, la protección contra este tipo de piratería es el uso por parte de los productores de auto-singalization de algoritmos de generación de mensajes vinculados al momento de la creación y la vida útil (similar a TOTP), lo que garantizará que el mensaje almacenado por el atacante quede obsoleto. Al mismo tiempo, el mensaje debería volverse obsoleto en un período de tiempo muy corto, lo que no permite que el delincuente lo use sin que el propietario del automóvil lo note. Pero, en caso de piratear los algoritmos de cifrado y los secretos utilizados, el atacante tiene la oportunidad de crear un duplicado de un llavero legítimo.
El segundo método es analítico y se basa en las vulnerabilidades dejadas en el algoritmo por los fabricantes de alarmas para automóviles. Por ejemplo, los sistemas estándar de algunos automóviles tienen las mismas llaves. Esto hace posible la fabricación de los llamados capturadores de código algorítmicos . Dichos dispositivos determinan la marca y la marca de la alarma mediante el mensaje digital del llavero, luego se compara con la base de los códigos "secretos" de fábrica (o códigos de fábrica) y, al final, el capturador de códigos comienza a funcionar de acuerdo con los datos recibidos, convirtiéndose en un duplicado completo del llavero del propietario. La base de datos de fábrica se forma debido a filtraciones de información de los propios fabricantes, así como debido a algunas vulnerabilidades (por ejemplo, las mismas claves para toda una serie de alarmas de automóviles) [2] .
El algoritmo de codificación dinámica más famoso es KeeLoq , desarrollado por la empresa estadounidense Microchip Technology . El algoritmo es un cifrado de bloque simétrico (es decir, la misma clave para el cifrado y el descifrado) con un bloque de 32 bits y una clave de 64 bits, basado en el componente de software NLFSR: un registro de desplazamiento de retroalimentación no lineal [3] [ 4] . Analíticamente, este algoritmo aún no ha sido pirateado, solo sus implementaciones fallidas han sido pirateadas [5] . Por ejemplo, muchos fabricantes escriben la misma clave para todos los sistemas, lo que le permite crear capturadores de código "de fábrica" [6] .
Muchos fabricantes de alarmas para automóviles han desarrollado sus propios códigos dinámicos, logrando mejoras significativas. Algunos de ellos todavía se consideran sin abrir. Sin embargo, debe comprender que las alarmas de codificación dinámica ya están algo desactualizadas, no brindan una protección del cien por ciento del automóvil contra robos. Fueron reemplazados por dispositivos con codificación conversacional.
Por el momento, el más confiable y criptorresistente es la llamada "codificación de diálogo", que requiere un canal de comunicación bidireccional (la presencia de un receptor y un transmisor, tanto en el módulo principal como en el llavero). Debido a la presencia de un canal de comunicación bidireccional, es posible organizar el intercambio de claves de cifrado basado en un protocolo similar a Diffie-Hellman . La identificación del llavero se lleva a cabo en varias etapas. Consideremos con más detalle el proceso de armado / desarmado de un automóvil.
Cuando el propietario del automóvil presiona el botón, una solicitud para ejecutar el comando proviene del llavero a la unidad central de alarma. A continuación, la unidad de control debe asegurarse de que el comando se haya enviado desde el llavero del propietario. Para ello, genera un número aleatorio y lo envía al llavero. Este número se procesa de acuerdo con un cierto algoritmo y se transmite de vuelta a la unidad de control. Al mismo tiempo, la unidad de control procesa el mismo número y lo compara con el número recibido del llavero. Si y solo si los números coinciden, la unidad central de señalización ejecuta el comando. Vale la pena señalar que el algoritmo específico mediante el cual se realizan los cálculos en un número aleatorio es puramente individual para cada alarma de automóvil, se incorpora en la etapa de producción y en la mayoría de los casos es un secreto comercial.
Considere el siguiente algoritmo:
,
donde A, B, C, m son los números que se escriben en la alarma en la etapa de producción de la alarma (diferentes para cada alarma);
X es un número aleatorio generado por la unidad de control y transmitido al llavero (cambia con cada comando);
Y es un número calculado por la unidad de control y el llavero de acuerdo con un algoritmo dado.
Después de presionar el botón en el llavero, la unidad de control generó un número aleatorio ( X = 977 ) y lo envió al llavero. Para el cálculo aceptaremos:
A=37, B=17, C=23, m=610 .
Sustituyendo y realizando los cálculos, obtenemos el número ( Y = 46882441603), que debe obtenerse en el curso de los cálculos en el llavero y la BU. En caso de coincidencia, la VU permite ejecutar el comando.
Está claro que los algoritmos utilizados en la señalización son mucho más complicados. Pero incluso para el ejemplo anterior, se requiere interceptar paquetes de datos cuatro veces (ya que hay cuatro incógnitas en la ecuación).
Es analíticamente imposible interceptar y descifrar un paquete de datos de una alarma de automóvil interactiva. Esto se debe al hecho de que cada sistema utiliza una clave de cifrado individual que se transmite solo una vez al registrar un llavero en el sistema. La longitud de la clave es de 128 bits (en 256 bits más modernos), lo que da combinaciones. Llevará más tiempo del que existe el universo clasificar este número a una velocidad de incluso mil millones de opciones por segundo.
Además, la CU utiliza un generador de números aleatorios de hardware, que además está protegido contra la piratería. Además, la transmisión de paquetes de información va acompañada de pausas, lo que provoca un salto en la frecuencia de transmisión dentro del ciclo de autorización del llavero remoto en el sistema.
Todas las medidas anteriores dificultan tanto interceptar como descifrar el comando enviado desde el llavero a la unidad de control o viceversa, lo que hace que hoy en día sea imposible piratear una alarma de automóvil basada en un código de diálogo. Algunos de los principales fabricantes están organizando un concurso para encontrar vulnerabilidades en la señalización conversacional. Por encontrarlos, se ofrece una gran recompensa monetaria [7] . (Por el momento, el código de diálogo del intercambio de radio entre el llavero y el complejo de seguridad de esta empresa no ha sido pirateado).
En los últimos años se ha popularizado un nuevo tipo de alarma para auto, que no requiere que el dueño presione los botones del llavero para armar/desarmar, basta con acercarse al auto a corta distancia para desbloquear las puertas, o aléjese para que las puertas estén bloqueadas y la alarma entre en protección. Además, este tipo de alarma te permite arrancar el coche con un botón, sin necesidad de una llave de contacto clásica. Dicho sistema se denomina PKES (Acceso y arranque pasivos sin llave - "Acceso pasivo sin llave y arranque del motor") [8] .
Tan pronto como el propietario se acerca al automóvil y presiona el botón en la manija de la puerta, el automóvil "se despierta" e inicia un diálogo con la llave (ver Codificación de diálogo):
- Hola, soy el auto X con identificador Z. ¿Quién eres?
Este mensaje se transmite en el aire a una frecuencia de 125 kHz, y si el llavero (también llamado llave inteligente / llave inteligente) está cerca y comprende el idioma de la solicitud, responde inmediatamente a la máquina utilizando su propia frecuencia operativa (433 o 868 MHz). Además, responde con una combinación digital generada por el algoritmo de cifrado (individual para cada señalización):
- ¡Oye, soy tu llave! Código de respuesta X123.Y456.Z789.
Para excluir el fraude electrónico (reproducir paquetes pregrabados, transmitir un código a través de canales de Internet celular o móvil), la respuesta de la llave electrónica debe llegar en tiempo real (los retrasos se cuentan por nanosegundos), por lo que cualquier intento de abrir el automóvil está condenado. al fracaso. Pero incluso acciones tan inteligentes no siempre salvan del robo.
La vulnerabilidad criminal de los sistemas PKES se discutió en 2011, cuando un equipo de programadores suizos demostró un método para "alargar" el canal de comunicación de la llave del automóvil. La tecnología se llamó Relay Station Attack [9] . En ese momento, los secuestradores rusos ya estaban usando tales dispositivos con poder y fuerza [10] .
Un atacante necesitará un repetidor especial (también llamado "varilla"/"brazo largo"), que cuesta decenas de miles de euros, y un asistente, que debe ubicarse junto a la llave inteligente, es decir, al lado del Propietario. . Cuando el secuestrador presiona el botón para abrir el automóvil, la señal se transmite a través del repetidor al dispositivo del asistente, que ya se está comunicando con el llavero de alarma. Con la ayuda de tales acciones, puedes robar cualquier automóvil.
Tomemos un ejemplo de robo. Estacionó su automóvil cerca del centro comercial, cerró las puertas y siguió con su negocio, las puertas se bloquearon automáticamente al mismo tiempo. El intruso n.° 1 con un receptor se acerca a su automóvil y el intruso n.° 2 está cerca de usted con un repetidor de señal para su llave. El auto en este momento identifica que supuestamente estás cerca y abre. El intruso #1 se sube al auto y se aleja.
¿Cómo lidiar con esta vulnerabilidad? Existe un firmware que cambiará el código de control de alarma por otro, lo que significa que el canal de radio quedará fuera del alcance de los repetidores. También hay un método probado: ocultar el llavero de alarma en una pantalla de lámina metalizada (ver Jaula de Faraday ), una forma simple pero efectiva de bloquear físicamente el diálogo entre el llavero y la unidad de control tan pronto como se aleje del coche y ocultar el llavero.