Nova Segurança de Software para Dispositivos de Baixo Custo
Uma abordagem de software pra proteger dados sensíveis em dispositivos IoT acessíveis.
― 8 min ler
Índice
Com mais dispositivos se conectando à Internet, proteger os dados que eles manuseiam se tornou super importante. Esses dispositivos, muitas vezes chamados de dispositivos IoT, lidam com informações sensíveis. Então, garantir a segurança dos dados é crucial para a privacidade e segurança.
Enquanto algumas soluções de hardware existem para manter os dados seguros, elas costumam ser caras demais para dispositivos de baixo custo. Muitos desses dispositivos não vêm com recursos de segurança embutidos, tornando-os vulneráveis a ataques. Esse artigo apresenta uma abordagem de segurança baseada em software projetada especificamente para esses tipos de dispositivos, permitindo que eles funcionem de forma segura sem precisar de hardware especial.
A Necessidade de Proteção
No mundo de hoje, milhões de dispositivos embutidos estão sendo usados. Esses dispositivos ajudam a criar serviços valiosos, mas também introduzem riscos. Eles precisam ser protegidos porque podem coletar e gerenciar dados sensíveis. Se deixados vulneráveis, esses dados podem ser acessados e mal utilizados.
Um método comum para proteger os dados envolve o uso de Ambientes de Execução Confiável (TEEs). Os TEEs garantem que aplicações e dados permaneçam seguros. No entanto, a maioria dos TEEs depende de hardware específico, que não está disponível em dispositivos mais baratos. Como resultado, muitos dispositivos de baixo custo não conseguem se beneficiar dessas proteções.
Soluções baseadas em software estão sendo desenvolvidas agora para preencher essa lacuna. Diferente das soluções de hardware, os TEEs baseados em software podem ser atualizados facilmente e não dependem de hardware específico. Isso os torna mais adequados para dispositivos mais simples. Porém, muitos sistemas baseados em software não consideram ataques de hardware. Essa falha pode colocar os dispositivos em risco se alguém tiver acesso físico a eles.
Nova Abordagem de Software
Reconhecendo as limitações tanto do hardware quanto das soluções de software existentes, uma nova abordagem de segurança baseada em software foi desenvolvida. Essa abordagem foca em fornecer mecanismos leves para proteger tanto o software quanto os dados em dispositivos embutidos conectados. Ela verifica continuamente a integridade da memória e oferece soluções em caso de mudanças inesperadas.
O código da aplicação é criptografado, tornando-o resistente a alterações e garantindo confiabilidade no processo de verificação. Algoritmos de criptografia leves serão usados para proteger esses dados. Essa nova estrutura de segurança é projetada para funcionar efetivamente em dispositivos de baixo custo sem comprometer seu desempenho.
Cenários de Ataque e Suposições
Ao desenvolver sistemas de segurança, é essencial entender as ameaças potenciais. Nesse caso, consideramos atacantes que têm acesso direto aos dispositivos. Eles podem alterar o código da aplicação para ler ou mudar dados. Esses atacantes também podem interceptar comunicações de rede e alterar mensagens entre dispositivos.
Supõe-se que o software usado nesses dispositivos esteja configurado corretamente por uma parte confiável. Também se espera que ele funcione sem bugs. Nesse cenário, o atacante não conseguiria contornar as medidas de segurança ou interferir no processo de verificação do código. Cada dispositivo também é suposto ter métodos em operação para calcular as chaves de criptografia necessárias para proteger os dados.
Visão Geral da Arquitetura
A arquitetura de segurança proposta consiste em um módulo computacional que opera dentro de um gateway central. Este módulo monitora aplicações rodando em vários nós conectados. Cada nó tem um agente responsável por garantir a integridade do seu código de aplicação. Esse agente gera uma assinatura digital do código e a envia ao módulo computacional para validação.
Tanto o código da aplicação quanto as mensagens trocadas entre o módulo computacional e seus agentes são criptografados para maior segurança. Os principais componentes dessa arquitetura incluem:
Gerenciador de Aplicativos
Esse componente interage com as aplicações nos nós. Ele realiza atualizações e gerencia a troca de dados entre os nós e o gateway.
Gerenciador de Chaves
O Gerenciador de Chaves cuida da geração e renovação das chaves que garantem a comunicação entre o módulo computacional e seus agentes. Ele usa um protocolo de troca de chaves para facilitar esse processo.
Cripto
Este módulo fornece serviços criptográficos. Ele pode criptografar, descriptografar e criar códigos de autenticação de mensagem (MAC). O Gerenciador de Aplicativos pode usar esse componente para criptografar o código da aplicação antes de enviá-lo para os nós, garantindo atualizações seguras.
Verificador de Integridade
O Verificador de Integridade monitora a memória para garantir que os dados permaneçam inalterados. Ele registra onde os dados são armazenados e verifica a integridade do código dos nós regularmente.
Registro
O Registro mantém registros dos estados da memória, nós conectados e atividade de rede. Isso ajuda a detectar quaisquer potenciais ataques ou tentativas de acesso não autorizado.
Thread de Aplicativo
A Thread de Aplicativo executa o código da aplicação desenvolvido pelo usuário e fornece uma interface para o software e hardware subjacentes. Todas as interações devem usar essa interface para manter a segurança.
Mecanismos de Proteção de Dados
Os dados armazenados na memória precisam permanecer seguros para garantir que os sistemas funcionem corretamente. Essa arquitetura aborda a integridade da memória para prevenir o acesso ou mudanças não autorizadas em informações sensíveis.
Quando os dados são armazenados, duas informações são salvas: os dados reais e um pedaço de dados chamado de verificação de integridade. A verificação de integridade, criada usando um código de autenticação de mensagem (MAC), verifica se os dados não foram alterados. Apenas o Verificador de Integridade sabe onde a informação está armazenada, tornando mais difícil para os atacantes manipularem os dados.
Usar MACs fornece uma maneira segura de validar dados, já que uma chave secreta é usada no processo. Isso significa que apenas partes autorizadas conseguem criar a verificação de integridade correta, tornando muito mais difícil para os atacantes falsificarem a segurança dos dados.
Estratégias de Proteção de Aplicativos
Além da confidencialidade dos dados, é vital garantir a integridade do código da aplicação armazenado nos nós. O código da aplicação é criptografado e só é descriptografado durante a execução. Um método de desafio-resposta verifica a integridade do código. O gateway envia um desafio criptografado para o nó, que deve responder corretamente para provar que seu código não foi alterado. Se o nó falhar em responder como esperado, o sistema assume que ele foi comprometido e toma as medidas apropriadas.
Processo de Renovação de Chaves
Para manter a segurança ao longo do tempo, é importante renovar regularmente as chaves de criptografia. Antes de atualizar uma aplicação, a chave usada para criptografar seu código é refreshada. Esse processo de renovação pode ocorrer mesmo sem um aviso de atualização, garantindo que a criptografia permaneça segura.
Algoritmos de Criptografia Leves
Dada a meta da arquitetura de suportar dispositivos de baixo custo, ela se baseia em algoritmos de criptografia leves. Esses algoritmos precisam funcionar efetivamente sem exigir muitos recursos. Durante os testes, dois algoritmos de criptografia leve do NIST foram avaliados para determinar sua adequação.
Os resultados mostraram que um dos algoritmos teve um desempenho melhor que o outro em termos de velocidade e uso de recursos. Essa descoberta indica que a escolha cuidadosa dos métodos de criptografia é vital para garantir segurança sem sacrificar desempenho.
Implementação e Testes
A arquitetura proposta está sendo implementada atualmente para verificar sua eficácia. Um protótipo será configurado para testar como ela se comporta em um ambiente do mundo real. O protótipo incluirá um gateway do qual o módulo computacional operará, conectando vários nós onde agentes e aplicações serão implantados.
Testar o sistema em um ambiente distribuído permite avaliar as práticas de comunicação e troca de dados entre o gateway e os nós. Identificando desafios potenciais, a arquitetura pode ser refinada para lidar melhor com as medidas de segurança.
Em resumo, esse trabalho apresenta um sistema de segurança baseado em software que acomoda dispositivos embutidos de baixo custo, fornecendo proteções essenciais sem precisar de mudanças de hardware. À medida que o projeto avança, mais testes avaliarão o desempenho e a eficiência em cenários do mundo real.
Título: Software-based security approach for networked embedded devices
Resumo: As the Internet of Things (IoT) continues to expand, data security has become increasingly important for ensuring privacy and safety, especially given the sensitive and, sometimes, critical nature of the data handled by IoT devices. There exist hardware-based trusted execution environments used to protect data, but they are not compatible with low-cost devices that lack hardware-assisted security features. The research in this paper presents software-based protection and encryption mechanisms explicitly designed for embedded devices. The proposed architecture is designed to work with low-cost, low-end devices without requiring the usual changes on the underlying hardware. It protects against hardware attacks and supports runtime updates, enabling devices to write data in protected memory. The proposed solution is an alternative data security approach for low-cost IoT devices without compromising performance or functionality. Our work underscores the importance of developing secure and cost-effective solutions for protecting data in the context of IoT.
Autores: José Ferreira, Alan Oliveira, André Souto, José Cecílio
Última atualização: 2023-03-14 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2303.07975
Fonte PDF: https://arxiv.org/pdf/2303.07975
Licença: https://creativecommons.org/publicdomain/zero/1.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.