Developing Home Automation Protocol, ¿Cómo hacer que los mensajes sean seguros?

0

Supongamos que tenemos un concentrador llamado H y un controlador de bloqueo de puerta llamado D1

Ahora, tenemos un dispositivo electrónico malicioso que imita a H llamado M

H envía a D1 un comando para abrir la puerta, D1 desbloquea la puerta.

M captura el mensaje (comando), ahora asumo que M puede repetir un mensaje idéntico más tarde y hacer que D1 se desbloquee.

¿Cómo podría detener esto?

Mi idea es incluir una marca de tiempo, validada por D1 y cifrar el mensaje. Si la marca de tiempo es anterior a 30 s, D1 ignorará el comando. Esto todavía parece inseguro sin embargo.

Clarificaciones:

Ninguno hasta ahora

Leer más

Replay Attacks

    
pregunta mateos 23.01.2017 - 06:53
fuente

2 respuestas

1

Estás en el camino correcto, pero necesitarías 3 cosas:

  • mensaje de desbloqueo
  • marca de tiempo
  • ID de mensaje único

De esta manera, el mensaje de desbloqueo no se pudo capturar ni reproducir en la ventana de 30 segundos. Solo necesita mantener un registro de las ID únicas usadas en D1 que se han usado en los últimos 30 años

Mientras la clave privada en H se mantenga segura y la clave pública en D1 no se manipule ... este método debería ser seguro.

También se debe tener en cuenta que D1 debería tener un método para sincronizar de forma segura su sistema de tiempo interno con H periódicamente para evitar la desviación del tiempo que de otra manera podría hacer que D1 sea completamente inoperante.

Otra opción sería mantener una clave pública / privada tanto en H como en D1 ... esto le permitiría crear un secreto compartido que podría usarse como una clave secreta para algo como la comunicación AES256 entre H y D1 . Estoy notando esto porque pones TLS como una etiqueta en tu pregunta ... y esto es, en esencia, cómo funciona TLS.

Protocolo de enlace TLS

    
respondido por el CaffeineAddiction 23.01.2017 - 06:58
fuente
1

Una forma típica de solucionar el problema de reproducción es utilizar un código rodante o contraseñas de una sola vez (OTP) . La idea principal de estos enfoques es que cada mensaje es diferente del anterior y el destinatario sabe qué mensaje esperar del remitente. De esta manera, los ataques de reproducción son imposibles, pero hay una necesidad de sincronización entre el remitente y el destinatario. Pero tenga en cuenta que los problemas con esta sincronización pueden usarse para atacar sistemas de código rodante .

Otra forma es utilizar un mecanismo challenge-response donde el controlador de cerradura de puerta crea un desafío aleatorio y el concentrador responde a este desafío con una respuesta creada a partir del desafío y un secreto compartido entre el concentrador y la cerradura de la puerta. Dado que el bloqueo de la puerta emite un nuevo desafío aleatorio todo el tiempo y espera que solo la respuesta a este desafío exacto, los ataques son imposibles. Comparado con el código rodante o la OTP, no se necesita sincronización, pero el concentrador necesita la capacidad de recibir el desafío en lugar de solo transmitir datos.

    
respondido por el Steffen Ullrich 23.01.2017 - 07:38
fuente

Lea otras preguntas en las etiquetas