A trusted execution environment-based architecture for cloud/fog-based IOT applications - VALADARES, Dalton Cézane Gomes. (2020)
A “Internet das Coisas”, do inglês Internet of Things (IoT), é um termo que foi utilizado, pela primeira vez, em 1999, por Kevin Ashton, quando falava sobre a possibilidade de conexão entre dispositivos físicos e a Internet. RFID (Identificação por Rádio-Frequência) foi uma das principais tecnologias usadas naquela época, permitindo identificação e rastreamento de objetos, entre outras aplicações. Desde então, os avanços em várias tecnologias e o surgimento de outras têm possibilitado o barateamento de dispositivos e componentes, despertando ainda mais o interesse da indústria e da academia em explorar as várias possibilidades de aplicações de IoT. Como o uso de tais aplicações vem crescendo, para os mais diversos cenários, torna-se necessário padronizar arquiteturas, protocolos de comunicação e mecanismos de segurança, de modo a facilitar o desenvolvimento de tais soluções e melhorar a confiança dos usuários finais. A falta de padronização ainda é um desafio e, neste sentido, muitas empresas e comunidades de software livre têm proposto middlewares, frameworks e outras soluções, embora não haja, ainda, nenhum padrão “de facto”, bem definido e aceito. Por causa disto, empresas e pessoas interessadas em tais soluções têm algumas preocupações e dúvidas relacionadas a quais destas devem escolher ou como modelar uma solução específica. Estas preocupações são ainda maiores quando a aplicação lida com dados sensíveis, tais como Informação Identificável Pessoal (PII) ou Informação de Saúde Pessoal (PHI), que demandam proteção e, assim, requerem mecanismos de segurança bem estabelecidos. Nesta tese, o foco é prover uma Arquitetura Confiável para Aplicações IoT. A arquitetura proposta considera autenticação, autorização, criptografia e Ambientes de Execução Confiável (TEE, sigla em inglês). Um Ambiente de Execução Confiável é uma tecnologia fornecida por alguns processadores modernos que habilitam processamento seguro em uma região protegida de memória. A Arquitetura Confiável proposta é validada com um método formal (Rede de Petri Colorida) e com um experimento que mede o desempenho de uma aplicação implementada. Esta aplicação considera alguns componentes FIWARE, para autenticação e autorização, e algumas aplicações Intel Software Guard Extensions (SGX), para processamento protegido. Com a arquitetura proposta, bons nívels de proteção são atingidos, considerando integridade, confidencialidade, privacidade, autenticação, autorização e comunicação segura.