"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Asegurar la integridad de los datos de IoT con la plataforma Go IoT

Asegurar la integridad de los datos de IoT con la plataforma Go IoT

Publicado el 2024-11-08
Navegar:321

Securing IoT Data Integrity with Go IoT Platform

Traducción:

Go IoT Development Platform es una solución de Internet de las cosas (IoT) gratuita, eficiente y escalable desarrollada utilizando el lenguaje de programación Go. La plataforma admite protocolos de transmisión de datos como MQTT, HTTP, WebSocket, COAP y TCP/IP, y proporciona herramientas de configuración ligeras para funciones de alarma y servicios de estadísticas de datos basados ​​en JavaScript.

Sitio web oficial: http://iot-dev-egi.pages.dev/

Dirección del repositorio: https://github.com/iot-ecology/go-iot-platform

Buscamos ingenieros de desarrollo de React; su participación es bienvenida.

Descripción del evento

EMQX puede recibir informes de datos de segundo nivel desde muchos dispositivos en cualquier momento, pero es posible que esto no se ajuste al proceso comercial normal. Por ejemplo, en circunstancias normales, un dispositivo puede informar datos una vez cada 5 minutos. Para identificar si el dispositivo de informe es legítimo, necesitamos un método para detectar si el dispositivo podría ser un dispositivo malicioso, informando deliberadamente datos con frecuencia para afectar la estabilidad de EMQX.

Vaya a la solución de la plataforma de desarrollo de IoT

Detalles del dispositivo físico: Hay dos campos clave en los detalles del dispositivo físico (DeviceInfo): Intervalo de inserción (segundos) y Error de tiempo de inserción (segundos). Con estos dos campos, podemos determinar si el comportamiento de informes del dispositivo es anormal y continuar con el procesamiento lógico posterior.

Método de cálculo

Para calcular si la tasa de informes del dispositivo está dentro del intervalo de inserción y error, y si está fuera del error, primero debemos definir algunas variables y condiciones:

  1. El intervalo de pulsación del dispositivo se indica como ( T ) (segundos).
  2. El error de tiempo de pulsación del dispositivo se indica como ( E ) (segundos).
  3. El intervalo de pulsación real del dispositivo se indica como ( T_{\text{actual}} ) (segundos).

0. Cálculo del intervalo de empuje real

  1. Marca de tiempo del primer envío: la hora en que el dispositivo envió datos por primera vez (T_{\text{1}}).
  2. Marca de tiempo de la segunda inserción: la hora en que el dispositivo envió datos por segunda vez (T_{\text{2}}).
  3. Intervalo de envío real: ( T_{\text{actual}} = T_2 - T_1 )

1. Cálculo de si se encuentra dentro del intervalo de inserción y del error

Se considera que la velocidad del dispositivo está dentro del intervalo de inserción y se produce un error si el intervalo de inserción real ( T_{\text{actual}} ) cumple con la siguiente condición:
[ T - E \leq T_{\text{actual}} \leq T E ]

2. Cálculo de si hay error externo

Se considera que la velocidad del dispositivo está fuera del error si el intervalo de inserción real ( T_{\text{actual}} ) no cumple con la condición anterior, es decir:
[ T_{\text{actual}} T E ]

Ejemplo de cálculo

Asumir:

  • Intervalo de empuje (T = 60) segundos
  • Error de tiempo de empuje (E = 5) segundos
  • El dispositivo envió los primeros datos a las 10:00:00 del 20 de septiembre de 2024 (es decir, ( T_1 ))
  • El dispositivo envió los segundos datos a las 10:01:05 del 20 de septiembre de 2024 (es decir, ( T_2 ))

Cálculo de ( T_{\text{actual}} )

[ T_{\text{actual}} = (10:01:05 - 10:00:00) = 65 \text{ segundos} ]

Verifique si está dentro del intervalo de inserción y hay error:

[ 60 - 5 \leq 65 \leq 60 5 ]
[ 55 \leq 65 \leq 65 ]
Dado que ( 55 \leq 65 \leq 65 ) es cierto, la velocidad del dispositivo está dentro del intervalo de inserción y error.

Compruebe si hay un error externo:

Dado que ( 65 ) no es menor que ( 60 5 ), la velocidad del dispositivo no está fuera del error.

Con este método, puede calcular con precisión el intervalo de inserción real del dispositivo y analizar más a fondo si cumple con el intervalo de inserción establecido y las reglas de error.

Manejo de problemas

Mediante el método de cálculo mencionado anteriormente, podemos determinar si los datos informados se ajustan al intervalo de inserción y al rango de error esperados. Generalmente, los datos que se ajustan a este rango se consideran normales y deben procesarse, mientras que los datos que están fuera de este rango pueden considerarse anormales y deben descartarse. En la plataforma de desarrollo Go IoT, para dichos datos anormales, tomaremos las siguientes medidas:

  1. Descarte de datos: descarta directamente los datos que excedan el intervalo de inserción y el rango de error. Al consumir mensajes en la cola de mensajes, ACK (Reconocer) directamente estos datos sin almacenamiento persistente.

  2. Mantenimiento mediante herramientas de administración de servidores EMQX

1. Excluir Clientes a través de la Lista Negra de EMQX

Utilizando la función de lista negra de EMQX, podemos restringir clientes de informes maliciosos o anormales. Aquí hay un análisis detallado de las ventajas y desventajas de deshabilitar objetos y sus casos de uso:

Objeto deshabilitado Ventajas Desventajas Casos de uso
ID de cliente - Alta precisión, puede restringir directamente a clientes específicos.
- Fácil de implementar, normalmente el ID del cliente es único, fácil de administrar y rastrear.
- Si el cliente cambia la ID, debe agregarse nuevamente a la lista negra.
- Se requiere un mecanismo para identificar y registrar la ID del cliente.
- Adecuado para escenarios que requieren un control preciso de dispositivos o clientes individuales.
- Cuando es fácil identificar y registrar el ID del cliente MQTT del dispositivo que informa.
Nombre de usuario - Puede administrar un grupo de dispositivos usando el mismo nombre de usuario.
- Simplifica la administración de un grupo de dispositivos.
- No apto para escenarios que requieren un control preciso de dispositivos individuales.
- Si los dispositivos comparten un nombre de usuario, los dispositivos legítimos pueden restringirse incorrectamente.
- Adecuado para escenarios donde los dispositivos usan la misma contraseña de cuenta en lotes o de acuerdo con reglas.
- Cuando la administración de dispositivos está más centralizada y no se requiere un control detallado de dispositivos individuales.
Dirección IP - Puede restringir rápidamente todas las solicitudes de una dirección IP específica.
- Simple y efectivo para dispositivos con direcciones IP fijas.
- No es efectivo para IP dinámica o dispositivos móviles.
- Puede restringir por error otros dispositivos legítimos bajo la misma IP.
- Adecuado para escenarios donde los dispositivos tienen direcciones IP fijas.
- Cuando necesita restringir rápidamente el tráfico de una IP específica y no hay otros dispositivos legítimos bajo esa IP.

Los tres anteriores deben priorizar primero la ID del cliente.

2. Excluir clientes a través de la interfaz API proporcionada por EMQX

EMQX proporciona una interfaz API que permite a los administradores eliminar clientes MQTT específicos del servidor. Cabe señalar que si el cliente MQTT ha implementado un mecanismo de reconexión, es posible que simplemente eliminarlo no elimine completamente el cliente.

Referencia: Documentación EMQX - Exclusión de clientes

Declaración de liberación Este artículo se reproduce en: https://dev.to/beck_moulton/securing-iot-data-integrity-with-go-iot-platform-42gf?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3