A Gartner prevê que haverá 20,8 bilhões de dispositivos conectados em todo o mundo até 2020. O número crescente de dispositivos conectados na Internet das Coisas (IoT) oferece uma oportunidade para os provedores de serviços desenvolverem novos fluxos de receita. Para usuários finais, a IoT tem o potencial de fornecer soluções que podem melhorar drasticamente a produtividade e a qualidade em segurança, saúde, educação e muitas outras áreas. Para aproveitar essa oportunidade, os provedores de serviços devem oferecer uma experiência ideal ao cliente, garantindo ao mesmo tempo proteção absoluta de dados, privacidade e segurança do usuário.
No entanto, esse grande número de dispositivos diversos também aumentará a vulnerabilidade da rede, com muitos dispositivos com potencial de se tornarem alvos de hackers e ataques de negação de serviço. Os dispositivos de IoT geralmente são limitados em termos de memória, armazenamento e recursos de computação. Essas limitações tornam um desafio oferecer suporte a algoritmos de segurança complexos e em evolução, pois eles exigem maior poder de processamento com baixos ciclos de CPU. Dispositivos conectados também podem sobreviver à eficácia da criptografia.
Em uma pesquisa e relatório de fevereiro de 2016 sobre O Futuro da Entrega de Serviços Móveis, Jim Hodges, analista sênior da Heavy Reading, destacou que a principal preocupação de segurança para provedores de serviços são as interrupções causadas por ataques de negação de serviço distribuída (DDoS) e botnet. Esse medo é seguido por ameaças relacionadas à integridade do sistema, nas quais o tráfego é manipulado por invasores externos ao mesmo tempo em que falsificam a identidade do usuário.
Três conceitos são fundamentais para a segurança da IoT: identidade, autenticação e autorização. Identidade significa nomear e fornecer autorização ao cliente. Autenticação significa comprovar a identidade do cliente, e autorização se refere ao gerenciamento dos direitos concedidos ao cliente. Para permitir ainda mais a coleta de dados do dispositivo para análise de inteligência em tempo real, os protocolos de comunicação da IoT também precisam ser acordados.
Os protocolos de mensagens da IoT devem incluir as seguintes funções de alto nível:
Atualmente, o protocolo de mensagens de IoT mais popular é o MQTT (Message Queue Telemetry Transport). O MQTT é usado como um protocolo de transporte primário em setores verticais da indústria, incluindo manufatura, remessa/rastreamento de ativos, energia e residências conectadas . Empresas como IBM, Microsoft, Amazon Web Services e Facebook Messenger usam MQTT para entrega rápida de mensagens e para economizar bateria em dispositivos.
Protocolos de IoT como MQTT são usados para comunicação segura e confiável entre dispositivos. O MQTT é baseado no Protocolo de Controle de Transmissão (TCP) e pode ser protegido com Segurança da Camada de Transporte (TLS). O protocolo MQTT foi projetado com baixos requisitos de computação e memória, otimizados com tamanhos de pacote muito mais simples e menores do que o HTTP para determinados aplicativos de IoT.
O MQTT foi criado originalmente em 1999 para sensores remotos, mas ganhou vida nova com vários aplicativos de IoT baseados em um modelo de publicação e assinatura. Dispositivos/sensores “publicarão” dados em uma plataforma de IoT (corretor) e o aplicativo de IoT então “assinará” os dados que são relevantes para seu caso de uso. Os dados publicados e assinados são chamados de “tópico”, que podem ser organizados em uma estrutura hierárquica com base em casos de uso e categoria do tipo de dados. A conectividade e as comunicações entre os dispositivos e sua plataforma influenciam a carga, o controle e a segurança exigidos por cada caso de uso.
Para manter o protocolo o mais leve possível para dispositivos IoT com recursos limitados, o MQTT fornece segurança mínima além do TCP. O MQTT recomenda apenas que o protocolo TLS seja usado para aplicativos que exigem níveis adicionais de autenticação. Como resultado, as comunicações MQTT que dependem apenas do TCP não são criptografadas e são suscetíveis a ataques do tipo man-in-the-middle.
O protocolo MQTT carrega uma série de vulnerabilidades potenciais. Por exemplo, portas abertas podem ser usadas para lançar ataques de negação de serviço (DoS), bem como ataques de estouro de buffer em redes e dispositivos. Dependendo do número de dispositivos IoT conectados e dos casos de uso suportados, a complexidade da estrutura do “tópico” pode aumentar significativamente e causar problemas de escalabilidade. As cargas de mensagens MQTT são codificadas em binário, e os tipos de aplicativos/dispositivos correspondentes devem ser capazes de interoperar. Outra área problemática são os nomes de usuário e senhas das mensagens MQTT, que são enviadas em texto simples.
Embora não faça parte especificamente da especificação MQTT, tornou-se comum que os corretores de plataforma de IoT ofereçam suporte à autenticação de cliente com certificados SSL/TLS do lado do cliente. A criptografia de transporte com SSL e TLS pode proteger dados quando implementada corretamente. Para proteção contra ameaças, dados confidenciais, incluindo IDs de usuários, senhas e quaisquer outros tipos de credenciais, devem sempre ser criptografados.
A desvantagem de usar TLS, SSL e outros métodos de criptografia é que eles podem adicionar uma sobrecarga significativa. No entanto, técnicas como a retomada de sessão TLS podem compensar alguns dos custos de conexão do TLS. A aceleração de hardware é outro método para reduzir a penalidade de tamanho da criptografia. Para aplicações complexas em dispositivos restritos, uma biblioteca de criptografia otimizada pode ser muito útil. Quando o código do aplicativo é grande, uma biblioteca de criptografia pode reduzir a memória de processamento e aumentar o desempenho.
A arquitetura do MQTT depende da alta disponibilidade dos corretores. O uso de certificados X.509 para autenticação de clientes pode economizar recursos no lado do broker quando muitos clientes tentam usar serviços do broker, como pesquisas de banco de dados ou chamadas de serviços da web. Combinar MQTT com padrões de segurança de última geração, como TLS, e usar certificados X.509 também pode ajudar a melhorar a segurança e o desempenho.
A IoT representa uma nova e importante oportunidade de negócios para provedores de serviços. Embora proteger o protocolo de mensagens MQTT com TLS seja uma consideração de segurança importante, muitos outros vetores de ataque também podem ser explorados. Os provedores de serviços devem garantir segurança de ponta a ponta com autenticação rigorosa de dispositivos, autorização e política de rede aplicada para acesso a caminhos de comunicação. A criptografia de dados para segurança e privacidade também é essencial para os fluxos de receita dos provedores de serviços na entrega de uma experiência ideal ao cliente.