"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Protegendo a integridade dos dados IoT com a plataforma Go IoT

Protegendo a integridade dos dados IoT com a plataforma Go IoT

Publicado em 2024-11-08
Navegar:974

Securing IoT Data Integrity with Go IoT Platform

Tradução:

Go IoT Development Platform é uma solução gratuita, eficiente e escalonável de Internet das Coisas (IoT) desenvolvida usando a linguagem de programação Go. A plataforma suporta protocolos de transmissão de dados como MQTT, HTTP, WebSocket, COAP e TCP/IP, e fornece ferramentas de configuração leves para funções de alarme e serviços de estatísticas de dados baseados em JavaScript.

Site oficial: http://iot-dev-egi.pages.dev/

Endereço do repositório: https://github.com/iot-ecology/go-iot-platform

Estamos procurando engenheiros de desenvolvimento React; sua participação é bem-vinda.

Descrição do Evento

EMQX pode receber relatórios de dados de segundo nível de muitos dispositivos a qualquer momento, mas isso pode não estar em conformidade com o processo comercial normal. Por exemplo, em circunstâncias normais, um dispositivo pode reportar dados uma vez a cada 5 minutos. Para identificar se o dispositivo de relatório é legítimo, precisamos de um método para detectar se o dispositivo pode ser malicioso, reportando deliberadamente dados com frequência para afetar a estabilidade do EMQX.

Solução da plataforma de desenvolvimento Go IoT

Detalhes do dispositivo físico: Existem dois campos principais nos detalhes do dispositivo físico (DeviceInfo): Push Interval (segundos) e Push Time Error (segundos). Com esses dois campos, podemos determinar se o comportamento de relatório do dispositivo é anormal e prosseguir com o processamento lógico subsequente.

Método de cálculo

Para calcular se a taxa de relatório do dispositivo está dentro do intervalo de push e erro, e se está fora do erro, primeiro precisamos definir algumas variáveis ​​e condições:

  1. O intervalo de envio do dispositivo é indicado como ( T ) (segundos).
  2. O erro de tempo de envio do dispositivo é indicado como ( E ) (segundos).
  3. O intervalo de envio real do dispositivo é indicado como ( T_{\text{actual}} ) (segundos).

0. Cálculo do intervalo real de push

  1. First Push Timestamp: A hora em que o dispositivo enviou dados pela primeira vez ( T_{\text{1}} ).
  2. Second Push Timestamp: A hora em que o dispositivo enviou dados pela segunda vez ( T_{\text{2}} ).
  3. Intervalo de envio real: ( T_{\text{actual}} = T_2 - T_1 )

1. Cálculo se está dentro do intervalo push e erro

A taxa do dispositivo é considerada dentro do intervalo de push e erro se o intervalo de push real ( T_{\text{actual}} ) atender à seguinte condição:
[ T - E \leq T_{\text{real}} \leq T E ]

2. Cálculo de erro externo

A taxa do dispositivo é considerada fora do erro se o intervalo de push real ( T_{\text{actual}} ) não atender à condição acima, ou seja:
[ T_{\text{atual}} T E ]

Exemplo de cálculo

Assumir:

  • Intervalo de envio (T = 60) segundos
  • Erro de tempo de envio (E = 5) segundos
  • O dispositivo enviou os primeiros dados às 10h00 do dia 20 de setembro de 2024 (ou seja, (T_1))
  • O dispositivo enviou os segundos dados às 10:01:05 do dia 20 de setembro de 2024 (ou seja, (T_2))

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

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

Verifique se está dentro do intervalo push e erro:

[ 60 - 5 \leq 65 \leq 60 5 ]
[ 55 \leq 65 \leq 65 ]
Como ( 55 \leq 65 \leq 65 ) é verdadeiro, a taxa do dispositivo está dentro do intervalo de envio e erro.

Verifique se há erro externo:

Como ( 65 ) não é menor que ( 60 5 ), a taxa do dispositivo não está fora do erro.

Por este método, você pode calcular com precisão o intervalo de push real do dispositivo e analisar melhor se ele está em conformidade com o intervalo de push definido e as regras de erro.

Tratamento de problemas

Pelo método de cálculo mencionado anteriormente, podemos determinar se os dados relatados estão em conformidade com o intervalo de envio esperado e a faixa de erro. Geralmente, os dados que estão em conformidade com esta faixa são considerados normais e precisam ser processados, enquanto os dados fora dessa faixa podem ser considerados anormais e devem ser descartados. Na plataforma de desenvolvimento Go IoT, para esses dados anormais, tomaremos as seguintes medidas:

  1. Descarte de dados: Descarte diretamente os dados que excedem o intervalo de envio e a faixa de erro. Ao consumir mensagens na fila de mensagens, ACK (reconhecer) diretamente esses dados sem armazenamento persistente.

  2. Manutenção através de ferramentas de gerenciamento de servidores EMQX

1. Excluir clientes da lista negra do EMQX

Usando o recurso de lista negra do EMQX, podemos restringir clientes maliciosos ou de relatórios anormais. Aqui está uma análise detalhada das vantagens e desvantagens de desabilitar objetos e seus casos de uso:

Objeto desativado Vantagens Desvantagens Casos de uso
ID do cliente - Alta precisão, pode restringir diretamente clientes específicos.
- Fácil de implementar, geralmente o ID do cliente é único, fácil de gerenciar e rastrear.
- Se o cliente alterar o ID, ele precisará ser adicionado à lista negra novamente.
- É necessário um mecanismo para identificar e registrar o ID do cliente.
- Adequado para cenários que exigem controle preciso de dispositivos ou clientes individuais.
- Quando é fácil identificar e registrar o ID do cliente MQTT do dispositivo de relatório.
Nome de usuário - Pode gerenciar um grupo de dispositivos usando o mesmo nome de usuário.
- Simplifica o gerenciamento de um grupo de dispositivos.
- Não adequado para cenários que exigem controle preciso de dispositivos individuais.
- Se os dispositivos compartilharem um nome de usuário, os dispositivos legítimos poderão ser restringidos incorretamente.
- Adequado para cenários em que os dispositivos usam a mesma senha de conta em lotes ou de acordo com regras.
- Quando o gerenciamento de dispositivos é mais centralizado e o controle refinado de dispositivos individuais não é necessário.
Endereço IP - Pode restringir rapidamente todas as solicitações de um endereço IP específico.
- Simples e eficaz para dispositivos com endereços IP fixos.
- Não é eficaz para IP dinâmico ou dispositivos móveis.
- Pode restringir erroneamente outros dispositivos legítimos sob o mesmo IP.
- Adequado para cenários em que os dispositivos têm endereços IP fixos.
- Quando você precisa restringir rapidamente o tráfego de um IP específico e não há outros dispositivos legítimos sob esse IP.

Os três acima devem priorizar primeiro o ID do cliente.

2. Excluir clientes por meio da interface API fornecida pelo EMQX

EMQX fornece uma interface API que permite aos administradores remover clientes MQTT específicos do servidor. Deve-se observar que se o cliente MQTT implementou um mecanismo de reconexão, simplesmente removê-lo pode não remover completamente o cliente.

Referência: Documentação EMQX - Exclusão do cliente

Declaração de lançamento Este artigo é reproduzido em: https://dev.to/beck_moulton/securing-iot-data-integrity-with-go-iot-platform-42gf?1 Se houver alguma infração, entre em contato com [email protected] para excluir isto.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3