Estou considerando um dispositivo IoT conectado à minha rede local (configurações padrão, sem VPN, sem NAT, sem DMZ) com ou sem acesso à Internet. Meu dispositivo será executado como um servidor HTTP, oferecendo um mecanismo RPC com autenticação e autorização. Ele se anuncia com o mDNS e eu converso com ele usando meu aplicativo móvel ou meu RaspberryPi.
Parece que a norma no desenvolvimento da IoT é ter SSL mútuo (bidirecional). Isso significa que o SSL unidirecional não pode proteger meu tráfego? Por quê?
Notas:
- Entendo as diferenças técnicas entre o SSL unidirecional e bidirecional, não entendo por que o One-way (quase) nunca é considerado na produção da IoT.
- Entendo que é difícil ter SSL mútuo para um dispositivo local: você precisa compartilhar a chave pública do servidor e o certificado para o cliente e vice-versa. O one-way, por outro lado, parece mais fácil (não requer ação do usuário).
- Alguns dispositivos produzidos em massa, como a Philips Hue, preferem ter um endpoint http local aberto e não seguro do que uma criptografia SSL unidirecional. Por que alguém faria essa escolha?
- Espero que essa pergunta não seja baseada em opiniões. Desculpas se este for o caso.
Geralmente, o TLS é bom para muito mais que x.509, mas muitas implementações o limitam a apenas x.509.
x.509 é uma técnica para uma confiança indireta segura. "A" confia em "B", se "B" tiver um certificado assinado por "C" e "C" como confiável "A". Isso funciona também na vida real; você confia em alguém que não conhece, se uma carta for apresentada assinada por uma pessoa em quem você confia. Talvez você veja a armadilha: se a carta diz, por favor, dê uma xícara de café que você não dará ao seu carro. Portanto, as informações adicionais no certificado também são relevantes para o escopo da confiança. É por isso que um servidor geralmente tem seu nome DNS ou endereço IP em seu certificado. Geralmente, você pode incluir informações diferentes (por exemplo, "lâmpada da sala"), mas muitas implementações também são pelo menos pré-configuradas para usar / verificar o material DNS / IP. E tudo isso só funciona se alguém se importa com os confiáveis "
Se você pode gastar algum tempo, verifique sua implementação, se ela também oferece conjuntos de cifras PSK. Caso contrário, talvez você possa ajustar a "verificação de validação" do certificado do servidor. Mas é preciso muita leitura para encontrar uma boa solução. E às vezes a implementação TLS usada simplesmente não oferece isso.
fonte