¿Seguridad inalámbrica para mensajes repetitivos?

0

Me estoy diseñando un sistema de automatización del hogar personalizado. Eventualmente, quiero expandir el sistema para incluir seguridad / alarma. La forma más fácil que conozco para hacer esto es incluir capacidades inalámbricas.

Esto me hizo pensar en la seguridad inalámbrica. Los mensajes de Digamos que los detectores de movimiento deberían estar cifrados, eso es un hecho. El movimiento debe tener un mensaje regular de tipo keep-alive para que cuando el sensor se apague o se desactive, el sistema lo marque.

Aquí es donde veo una debilidad. Si un sensor está transmitiendo constantemente el mismo mensaje (por ejemplo, "no se detectó movimiento"), el mensaje se puede grabar y falsificar. Incluso si el mensaje está cifrado porque se transmite constantemente, se verá el mismo paquete cifrado. Sin saber su contenido, el paquete podría ser capturado y falsificado después de deshabilitar el sensor. Sé que es paranoico, pero estoy tratando de cubrir todas mis bases.

¿Hay un protocolo inalámbrico que contabilice automáticamente la transmisión de mensajes repetitivos en su cifrado? Si no es así, ¿cómo se puede reparar la debilidad de transmisión repetitiva?

    
pregunta vini_i

2 respuestas

1

Primero: cableado será más seguro que inalámbrico. Es mucho más difícil aprovechar un sistema de cables y agregar mensajes, y (con un poco de reflexión) es posible hacer que sea muy difícil cortar los cables sin ser detectado primero. La conexión inalámbrica se puede bloquear fácilmente y es más vulnerable a los mensajes falsificados, etc.

Aparte de eso, para evitar un ataque de reproducción , debe asegurarse de que cada transmisión desde el sensor remoto sea diferente. Hay muchas formas de hacerlo, que ofrecen diferentes niveles de seguridad, y cuál utilizar dependerá de lo que considere una seguridad aceptable, una complejidad aceptable, una constante de componentes aceptable y un uso de energía aceptable en el sensor si se alimenta con batería. Algunas ideas:

  • Marca de tiempo cada transmisión "Estoy vivo", antes de cifrarla. Esto requiere un reloj en tiempo real razonablemente preciso en el sensor y, probablemente, un proceso de resincronización ocasional. El proceso de sincronización podría ser tan simple como la estación base que realiza un seguimiento de la deriva a medida que recibe las marcas de tiempo.
  • Utilice un nonce . Un nonce es un número aleatorio de un solo uso. La estación base lo genera y lo envía con un paquete "estás vivo". El sensor incluye el nonce en la respuesta cifrada.
  • Otra forma de usar un nonce es que el sensor genere uno que sea casi aleatorio pero que garantice que no se repita por mucho tiempo. La estación base luego verifica que no haya visto ese punto antes. El mensaje debe firmarse de modo que el atacante no pueda falsificarlo con un nuevo punto.
  • Tanto el sensor como la estación base comparten un secreto, como una almohadilla larga de un solo uso o un buen pseudo RNG. Cada transmisión contiene la siguiente parte del secreto. La estación base probablemente debería aceptar cualquiera de las siguientes tres partes, en caso de que una transmisión se confunda o se pierda. Incluso entonces, es posible que no esté sincronizado.

El cifrado de rollo propio no suele considerarse una buena idea. Probablemente hay algunos sistemas buenos, bien investigados y exhaustivamente comprobados. Las personas que se encuentran en este sitio de intercambio de pila pueden ayudarlo a elegir uno adecuado para sus necesidades.

    
respondido por el Jack B
1
Parece que

quiere frustrar un ataque de repetición .

Puedes hacerlo agregando un contador / marca de tiempo y cifrándolos. Luego, asegúrate de que el paquete de "Estoy vivo sin movimiento" y "Estoy vivo y que hay movimiento" tenga la misma longitud.

    
respondido por el ratchet freak

Lea otras preguntas en las etiquetas