Autenticação de dispositivo

7

Como devo autenticar meu dispositivo? Eu tenho um arduino yun, executando um "daemon" no lado do OpenWRT. O daemon lê comandos do meu intermediário de mensagens, executa-os e retorna o valor.

Antes de se comunicar com o broker, o dispositivo deve ser autenticado (acredito). Qual é o fluxo certo?

Eu preciso autenticar? Se as credenciais do broker estiverem incorporadas no dispositivo, talvez eu não precise fazer isso. Mas não tenho muita certeza.

lucavallin
fonte

Respostas:

4

O MQTT suporta autenticação de nome de usuário / senha e certificados do lado do cliente para autenticar o cliente no broker.

O uso de certificados também permite verificar se o broker não está sendo representado também se você usar a fixação de certificados.

hardillb
fonte
Lembre-se de que esses esquemas geralmente não protegem contra uma caixa de cliente originalmente autêntica, mas agora comprometida, espionando o tráfego destinado a outros clientes pertencentes a outros usuários.
Chris Stratton
11
Não, mas uma árvore de tópicos bem construída e uma ACL garantirão que um cliente comprometido possa ver apenas o tráfego destinado a esse cliente e a capacidade de revogar um certificado a interromperá. Chaves / Certs deve ser mantido em um elemento de segurança, sempre que possível
hardillb
Acredito que você precise usar um plug-in para fornecer essa segregação - infelizmente não é um dos recursos projetados. Em termos de chaves, não importa realmente se eles estão em um elemento seguro - eles precisam ser únicos por instância do cliente, e praticamente toda a capacidade do cliente é uma superfície de ataque pela qual alguém pode potencialmente criar o elemento. O cliente usa sua chave para uma finalidade não intencional do fabricante. Portanto, em vez de evitar isso, você deve limitar o que uma chave pode fazer.
Chris Stratton
Não é necessário nenhum plug-in para qualquer coisa que eu descrevi (mas o plug-in mosquitto pode facilitar o gerenciamento das coisas). E sim, uma ACL fortemente vinculada à identidade do certificado / chave é o caminho certo a seguir, mas como a pergunta era incrivelmente vaga, uma resposta de alto nível provavelmente era boa o suficiente. Sinta-se livre para adicionar o seu próprio, se quiser.
hardillb