Explicación del código variable


13

¿Podría alguien explicar cómo funcionan los protocolos de código rodante como KeeLoq? Entiendo la premisa básica de que usan un código diferente cada vez, así que no puedes usar el ataque de repetición, pero no entiendo cómo un lado verifica el código correcto, etc.

Además, ¿cómo realizan una sincronización inicial si el índice en los códigos continuos no se conoce / comparte de antemano?

Si tiene que usar Keeloq como ejemplo para explicarlo, está bien, pero preferiría una explicación general de los códigos continuos.


Respuestas:


10

Los códigos continuos requieren varias partes para funcionar correctamente. Aquí describiré una implementación genérica que usa todas las partes de una manera específica. Otros sistemas son variaciones sobre este tema, pero generalmente emplean muchas de las mismas técnicas de manera similar. En lugar de tratar de describir la implementación completa y cómo funciona de una vez, describiré un sistema simple y agregaré complejidad a medida que avanzamos hasta llegar a un sistema criptográficamente seguro.

Un código móvil no criptográfico es simplemente un transmisor y un receptor que usan el mismo generador de números pseudoaleatorios (PRNG). Este generador tiene dos piezas de información importante: un cálculo y el número generado previamente. El cálculo es generalmente una ecuación de retroalimentación lineal que se puede representar con un solo número. Al alimentar el PRNG con el número anterior y mantener el número de retroalimentación igual, se genera una secuencia específica de números. La secuencia no tiene secuencias repetidas hasta que pasa por todos los números que puede generar, y luego comienza de nuevo con la misma secuencia.

Si tanto el control remoto como el transmisor conocen el número de retroalimentación y el número actual, cuando el control remoto transmite el siguiente número, el receptor puede probarlo con su propio generador. Si coincide, se activa. Si no lo hace, pasa por la secuencia hasta que encuentra el número que envió el control remoto. Si presiona el control remoto nuevamente, debería coincidir y se activará porque la transmisión anterior ya sincronizó los generadores de números. Es por eso que a veces tiene que presionar el botón de desbloqueo dos veces: su receptor o transmisor no están sincronizados.

Esa es la parte móvil del código. Si el PRNG es lo suficientemente largo, es muy difícil encontrar el número de retroalimentación sin muchos números en la secuencia en una fila, lo cual es difícil de obtener en el uso normal. Pero no es criptográficamente seguro.

Además de eso, agrega cifrado típico. El fabricante del vehículo utiliza una clave secreta específica para el transmisor y el receptor. Dependiendo del fabricante, es posible que cada modelo y año tengan un código diferente, o que compartan el código entre varios modelos de vehículos y durante varios años. La compensación es que cada uno requiere un control remoto diferente para ser almacenado, pero el problema de compartir un código en muchos modelos es que si está roto, más autos son vulnerables.

Detrás del cifrado tiene información de botón, el número generado por PRNG y un poco de información sobre el número de comentarios. No es suficiente para hacer el PRNG desde cero, pero lo suficiente como para que después de presionar un cierto número de botones, y con cierta información interna sobre el espacio limitado, un número de retroalimentación pueda involucrar (nuevamente, fabricante, línea específica), entonces el receptor puede, después de varios entrenamientos transmisiones, determine el número de comentarios y comience a rastrear el PRNG para ese control remoto.

El código rodante está destinado solo a detener los ataques de repetición. El cifrado está destinado a asegurar el código móvil para evitar que se rompa. Con solo uno u otro, el sistema sería demasiado fácil de romper. Dado que el fabricante controla tanto el transmisor como el receptor, la capacitación no involucra criptografía de clave pública ni nada particularmente involucrado. También evita que los llaveros del mercado secundario trabajen en automóviles con este tipo de sistema.

Sin embargo, el código continuo no es impermeable. El antiguo sistema keeloq fue atacado con éxito hace solo unos años (después de una década de uso) para que se pueda encontrar el código de cifrado del fabricante, y los códigos continuos se pueden encontrar más fácilmente. Antes de eso, ha sido atacado de manera que permitía a las personas tomar vehículos sin realmente descifrar el código. En respuesta, la nueva clave de cifrado es de 60 bits. No es tan seguro como muchos sistemas de cifrado modernos, pero lo suficientemente seguro como para que probablemente dure muchos años más antes de que se rompa.


Ah, debo haber olvidado la parte de "PRNG sin secuencia repetida", eso es muy importante. ¿Cuál es la ventaja de transmitir información que permite al receptor determinar el código de retroalimentación? Eso parece menos seguro que simplemente elegir un código de retroalimentación y fabricar tanto el transmisor como el receptor con el conocido ...
NickHalden

@NickHalden, el código de comentarios es diferente para cada control remoto, y los clientes querrán agregar más controles remotos más tarde o reemplazar los controles remotos faltantes. Solo es necesario para el entrenamiento. Algunas versiones un poco más seguras requieren una secuencia específica de presionar botones en el control remoto antes de que emita la información de retroalimentación adicional, pero en general el sistema en general es lo suficientemente seguro como para que incluso si rompe el cifrado aún necesita mucha más información antes de ese pequeño un poco de información es suficiente para que pueda obtener el código de comentarios completo.
Adam Davis

8

Me encontré por primera vez con KeeLoq cuando investigaba el chip en un abridor de puerta de garaje. La hoja de datos de Microchip hace un buen trabajo al explicar cómo funciona.

En una palabra:

  • El receptor mantiene una base de datos de todos los transmisores, con su número de serie.
  • cada transmisor está asociado con una clave de cifrado simétrica (64 bits), que está en el chip y también en la base de datos del receptor.
  • cada transmisor está asociado con un número de secuencia cíclica de 16 bits, también almacenado en el chip y en la base de datos.
  • cuando se activa el transmisor, incrementa su número de secuencia módulo 65536 (envolvente 16 bits) y envía un paquete que consiste en una máscara de bits que representa qué botones se presionan, su ID de serie y una versión cifrada del número de serie.
  • el receptor coincide con el número de serie en la base de datos, saca la clave y descifra el número de serie.
  • el número de serie debe ser nuevo; no puede ser un número de serie usado recientemente, que protege contra ataques de repetición. (Ver Fig. 7.3 en la hoja de datos).
  • Si el número de serie se verifica, el receptor puede activar la funcionalidad en función de la máscara de bits de los botones que se presionan.
  • Si el nuevo número de serie está adelante en más de 16 valores (el usuario presionó los botones muchas veces accidentalmente mientras estaba lejos del receptor), entonces se debe realizar un apretón de manos adicional para resincronizar, lo que requiere presionar un botón adicional. (El usuario realizará la presión adicional del botón, creyendo que hay una mala recepción).

Agregar un nuevo transmisor a la base de datos del receptor es vagamente análogo, en un alto nivel, al método de configuración de presionar un botón para agregar clientes a un punto de acceso Wi-Fi. De alguna manera, se le dice al receptor que se ponga en un modo por el cual acepta un nuevo transmisor.

Se puede aceptar un nuevo transmisor a partir de la información transmitida en mensajes de activación ordinarios, si el receptor y el transmisor comparten la misma ID secreta del fabricante. Esto se debe a que la clave de cifrado de 64 bits se deriva de la identificación del fabricante y la información en serie del receptor. (Ver Sec. 7.1).

Hay una alternativa más segura a esto: el "Aprendizaje seguro". Esto se inicia de manera especial en el transmisor (tres botones presionados a la vez). El transmisor envía un paquete especial: un valor de inicialización de 60 bits del que se deriva la clave de cifrado, presumiblemente sin depender de la identificación del fabricante o el número de serie.

Cuando el receptor no está en modo de aprendizaje, por supuesto rechaza las transmisiones de los transmisores que no conoce.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.