Comunicação M2M com segurança habilitada usando o CloudMQTT Broker: IOT Parte 19

A segurança é uma preocupação primordial em qualquer desenvolvimento de aplicativos IoT. Os dados dos dispositivos IoT são passados ​​para o servidor/nuvem onde podem ser armazenados temporariamente ou por um longo período para gerar análises. O meio de transporte através do qual os dados são passados ​​do dispositivo IoT para a nuvem deve ser protegido com a implementação de várias medidas de segurança IoT, para que os dados não possam ser invadidos por qualquer ataque Man-in-the-Middle.
O protocolo MQTT também tem várias provisões de segurança como autenticação, autorização, criptografia de carga útil e segurança da camada de transporte TLS/SSL. O CloudMQTT é um dos MQTT Broker que permite implementar todas essas medidas de segurança. O CloudMQTT é um broker Mosquitto gerenciado e seguro na nuvem que fornece um método leve de execução de mensagens do publicador para o assinante usando o modelo de enfileiramento de mensagens pub/sub. O broker cloudMQTT usa um número aleatório de portas que são geradas pelo próprio broker CloudMQTT. Para nenhuma segurança, o número da porta começa com 1XXXX, para segurança TLS/SSL, o número da porta começa com 2XXXX e para suporte a Websocket, começa com 3XXXX.
Neste tutorial, será demonstrado como dois dispositivos móveis (smartphones) podem se comunicar usando o protocolo MQTT com segurança TLS via corretor CloudMQTT. Para configurar esses smartphones como clientes MQTT, um aplicativo Android – IOT MQTT Dashboard é instalado e usado. Para saber mais sobre como configurar qualquer telefone celular ou PC como cliente MQTT, confira o seguinte tutorial –
Como configurar PC e celular como clientes MQTT
Para aproveitar os serviços do broker CloudMQTT, um desenvolvedor ou usuário precisa criar uma conta em customer.cloudmqtt.com. Então, primeiro crie uma conta em customer.cloudmqtt.com e faça login no painel de controle.
Visita cliente.cloudmqtt.com e insira um ID de e-mail no formulário de inscrição.
Captura de tela da página de registro de conta do cliente no CloudMQTT
Figura 1: Captura de tela da página de registro da conta do cliente no CloudMQTT
Uma mensagem de confirmação será enviada para o ID de e-mail. Abra o e-mail do CloudMQTT e clique em 'confirmar e-mail'.
Captura de tela do e-mail de confirmação da conta do cliente do CloudMQTT
Fig. 2: Captura de tela do e-mail de confirmação da conta do cliente do CloudMQTT
Agora crie a conta CloudMQTT digitando uma senha de sua escolha na aba aberta.
Captura de tela da criação de conta de cliente no CloudMQTT
Fig. 3: Captura de tela da criação da conta do cliente no CloudMQTT
Uma nova janela será aberta solicitando a criação de uma instância. Crie uma nova instância CloudMQTT clicando no link ‘criar’.
Captura de tela da criação de instância no CloudMQTT
Figura 4: Captura de tela da criação da instância no CloudMQTT
Na janela ‘Criar nova instância’, insira o nome da instância e adicione um nome de tag como Mobile2Mobile.
Captura de tela da criação de uma nova instância no CloudMQTT
Fig. 5: Captura de tela da criação de nova instância no CloudMQTT
Depois de criar a instância, os detalhes da instância, como informações de conexão, nome de usuário, senha e porta atribuída, podem ser visualizados na página de detalhes.
Captura de tela dos detalhes da instância no CloudMQTT
Figura 6: Captura de tela dos detalhes da instância no CloudMQTT
Esta página de informações da instância contém as seguintes informações que serão usadas posteriormente nos dispositivos do cliente MQTT –
1) Servidor – Este é o nome de domínio do broker MQTT. No caso do CloudMQTT, parece m**.cloudmqtt.com.
2) Nome de usuário e senha – O servidor CloudMQTT gera aleatoriamente nome de usuário e senha para os clientes MQTT se conectarem ao corretor. Os desenvolvedores também podem gerenciar seu próprio nome de usuário e senha para se conectar ao corretor MQTT.
3) Porta – CloudMQTT gera porta aleatória para conectar os dispositivos ao broker MQTT. A porta TLS/SSL é usada neste tutorial para fornecer conexão segura aos dispositivos.
Agora clique na guia usuários e crie um usuário digitando um nome de usuário e uma senha. O usuário é o Cliente MQTT que será identificado na corretora por seu nome de usuário e senha.
Captura de tela da criação do usuário no CloudMQTT
Figura 7: Captura de tela da criação do usuário no CloudMQTT
Captura de tela dos detalhes do usuário no CloudMQTT
Fig. 8: Captura de tela dos detalhes do usuário no CloudMQTT
Neste tutorial, um usuário é criado com o nome de usuário 'Techshlok' e uma senha. Qualquer senha pode ser definida pelo desenvolvedor. Dessa forma, vários usuários podem ser criados para a instância CloudMQTT, com cada usuário tendo nome de usuário e senha separados para se conectar ao broker MQTT.
Se no aplicativo IOT MQTT Dashboard forem usados ​​nome de usuário e senha gerados aleatoriamente, não será necessário adicionar tópicos ao broker MQTT, mas se usuários definidos identificados por nome de usuário e senha forem usados ​​no aplicativo, os campos de tópico deverão ser criados primeiro e cada usuário deve receber direitos de acesso a eles. Os tópicos podem ser criados na aba ACL. Clique no botão Tópico, selecione o usuário, escreva um nome de padrão e clique no botão adicionar. Neste tutorial, o usuário com o nome – Techshlok é usado. O nome do padrão é o nome do tópico.
Captura de tela da criação de tópicos no CloudMQTT
Figura 9: Captura de tela da criação de tópicos no CloudMQTT
Há dois tópicos/padrões criados – “Mobile2/M1” e “Mobile1/M2”. O usuário recebeu acessos de leitura e escrita para ambos os tópicos. Então, os clientes MQTT que serão conectados ao usuário Techshlok com a senha definida podem compartilhar suas mensagens nesses 2 tópicos.
Captura de tela de tópicos criados no CloudMQTT
Fig. 10: Captura de tela de tópicos criados no CloudMQTT
Agora, tudo está definido no lado do corretor CloudMQTT. É hora de configurar os dispositivos móveis para se conectarem ao corretor MQTT. O aplicativo IOT MQTT Dashboard é usado para essa finalidade. Este aplicativo fornece segurança TLS/SSL para transmitir os dados com segurança.
Use o nome de domínio do servidor fornecido na instância do CloudMQTT quando a conta foi criada e use o número da porta na qual a segurança TLS está habilitada. Use o nome de usuário e a senha inseridos ao criar o usuário.
O nome de usuário e a senha gerados pelo broker são usados ​​neste tutorial. Certifique-se de que TLS/SSL esteja definido como 1 para que a conexão segura com o broker possa ser usada. Salve as configurações. Quando as configurações forem salvas, os dispositivos serão conectados com segurança ao broker MQTT.
Captura de tela móvel da nova atividade de conexão no painel IOT MQTT
Fig. 11: Captura de tela móvel da nova atividade de conexão no painel IOT MQTT
Agora, os dispositivos estão conectados com o broker, os dispositivos estão prontos para publicar e assinar as mensagens. Se o nome de usuário e a senha gerados aleatoriamente forem usados, qualquer tópico pode ser definido na extremidade do cliente. Como os tópicos já foram criados para publicar a mensagem de um celular (vamos chamá-lo de celular-01) e para assinar a mensagem, o mesmo tópico é criado no outro celular (vamos chamá-lo de celular-02). Da mesma forma, o tópico para o publicador do celular-02 e para o assinante do celular-01 pode ser criado nas extremidades do cliente.
Saiba mais sobre como criar tópicos e publicar mensagens no painel IOT MQTT no seguinte tutorial –
Comunicação entre PC e celular usando protocolo MQTT via HiveMQ Broker
No tutorial mencionado acima, o corretor HiveMQ é usado. Use o corretor CloudMQTT, o processo restante para criação de tópicos e publicação de mensagens permanece o mesmo para qualquer corretor.
Captura de tela móvel da atividade de publicação e assinatura no painel IOT MQTT
Fig. 12: Captura de tela móvel da atividade de publicação e assinatura no painel IOT MQTT
Os tópicos de ambos os clientes móveis já foram registrados no broker CloudMQTT. As mensagens sobre os tópicos podem ser publicadas de um cliente que o cliente de assinatura obterá automaticamente por meio do broker no aplicativo móvel.
Captura de tela móvel de tópicos de publicação e assinatura listados no painel IOT MQTT Publicar atividade de assinatura
Fig. 13: Captura de tela móvel dos tópicos de publicação e assinatura listados no painel IOT MQTT Atividade de publicação e assinatura
O broker MQTT está recebendo e passando as mensagens para os clientes com segurança. Dessa forma, autenticação básica, autorização e segurança da camada de transporte podem ser habilitadas no Protocolo MQTT.
No próximo tutorial, aprenda a controlar uma luz LED de um PC remoto usando o ESP8266 Wi-Fi Modem e o HiveMQ MQTT Broker. O tutorial também demonstra o carregamento de código para a placa ESP8266 usando a placa Arduino.

Vídeo do projeto

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.