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.
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.
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.
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:
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 ]
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 ]
Assumir:
[ T_{\text{real}} = (10:01:05 - 10:00:00) = 65 \text{ segundos} ]
[ 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.
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.
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:
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.
Manutenção através de ferramentas de gerenciamento de servidores 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.
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
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