Conexão do protocolo TLS com agente MQTT
Para estabelecer uma conexão segura com o agente de MQTT, você pode usar o MQTTS na porta 8883 ou o MQTT em WebSockets na porta 443. É importante observar que só há suporte para conexões seguras. As etapas a seguir se destinam a estabelecer uma conexão segura antes da autenticação dos clientes.
Fluxo de alto nível de como a conexão mTLS (Mutual Transport Layer Security) é estabelecida
- O cliente inicia o handshake com o agente de MQTT. Ele envia um pacote hello com os pacotes de criptografia da versão TLS com suporte.
- O serviço apresenta o certificado ao cliente.
- O serviço apresenta um certificado P-384 EC ou um certificado RSA 2048, dependendo das criptografias do pacote hello do cliente.
- Certificados de serviço assinados por uma autoridade de certificação pública.
- O cliente valida se está conectado ao serviço correto e confiável.
- Em seguida, o cliente apresenta um certificado próprio para provar a autenticidade.
- Atualmente, só damos suporte à autenticação baseada em certificado, ou seja, os clientes precisam enviar os respectivos certificados.
- O serviço conclui o handshake do TLS com sucesso depois de validar o certificado.
- Depois que o handshake do TLS é concluído e a conexão mTLS é estabelecida, o cliente envia o pacote CONNECT do MQTT ao serviço.
- O serviço autentica o cliente e permite a conexão.
- O mesmo certificado do cliente usado para estabelecer o mTLS é usado para autenticar a conexão do cliente com o serviço.