FORNECENDO COMUNICAÇÃO SEGURA EM AMBIENTES DE SISTEMA EMBARCADOS USANDO ARDUÍNO Autores : Iago Marinheiro ELIAS, Giorgy ismael da rosa OLIVEIRA, Thiago Locatelli Candido de OLIVEIRA, Vanessa Barbosa ROLIM. Identificação autores: PIBIC-EM/CNPq; Eduardo da SILVA, IFC Campus Araquari. Introdução Um dos maiores avanços obtidos pela humanidade, a Internet, se tornou parte do cotidiano de todos os indivíduos, ao ponto de ser difícil imaginar a vida sem ela. Posteriormente diversos dispositivos, que possuíam outros fins, obtiveram capacidade de integrar-se a Internet (MAGALHAES, 2016). A Internet das Coisas (Internet of Things - IoT) refere-se à integração de objetos físicos e virtuais em redes conectadas à Internet, propiciando que coisas coletem e troquem informações (ALMEIDA,2015). A IoT possui características autoconfiguráveis e baseada em protocolos de comunicação interoperáveis. Os dispositivos conectados em uma IoT possuem identidades, atributos físicos e personalidades virtuais. No qual, usam interfaces inteligentes e são perfeitamente integradas à uma rede de dados. Atualmente, essas "coisas", são objetos amplamente disseminados, pode-se citar partícipes: smartphones, sensores, tablets, microcontroladores, laptops entre outros dispositivos. Para atender os requisitos deste projeto foi proposto um ambiente de troca de segura de dados, entre microcontroladores e um servidor Web. Essa comunicação ocorre sob o protocolo HTTPS entre ambos os dispositivos que estão geograficamente dispersos. Para estabelecer a comunicação e a integração entre essas plataformas faz-se necessário empregar uma tecnologia de Serviço Web. Que caracteriza-se por uma tecnologia modular, autodescritiva e acessível através de uma URL. Esta tecnologia é independente da plataforma de desenvolvimento e permite a interação entre aplicações sem intervenção humana.
Almejando uma transmissão segura, confiável, eficiente e escalável; foram selecionadas duas tecnologias de Serviços Web, o SOAP (Simple Object Access Protocol Protocolo Simples de Acesso a Objeto) e o REST (Representational State Transfer - Transferência de Estado Representativo). A primeira é caracterizada pelo encapsulamento dos dados. Enquanto que a segunda pela exploração transparente dos recursos e protocolos já implementados na Internet. Observando as características das tecnologias estudadas, optou-se pela utilização do REST. Pois o desenvolvimento é viabilizado em plataformas diferentes, sem que houvesse a necessidade de preocupação com o desenvolvimento de outro protocolo. A representação gráfica do fluxo da comunicação entre o sistema embarcado (microcontroladores Arduino) e o servidor, pode ser encontrado na figura 1. Esta comunicação estabelece a troca de dados entre o servidor Django e os microcontroladores Arduino através da utilização do REST. Nesta leitura os dados obtidos pelos sensores interligados a microcontroladores, comunicam-se a um servidor Web que mantém o cadastros dos dispositivo IoT. Figura 1 - Fluxo da comunicação entre o sistema embarcado
Material e Métodos Para o desenvolvimento do projeto, são utilizados: um servidor com Django versão 1.9, Python na versão 2.7, e um banco de dados SQLite versão 3.14.1, Django REST versão 3.0. O Django é um framework Web (software base que fornece suporte a funcionalidades para desenvolvimento de aplicações Web) de alto nível, e desenvolvida por uma comunidade de código livre, que utiliza a linguagem Python. Para tanto, o framework incentiva o desenvolvimento limpo, rápido e pragmático. Neste âmbito os desenvolvedores concentram-se em escrever a sua aplicação sem a necessidade de reinventar funções triviais (DJANGO, 2016). O SQLite é um mecanismo de banco de dados SQL ( Structured Query Language ou Linguagem de Consulta Estruturada) integrado. Diferentemente da maioria dos outros bancos de dados, o SQL não possui um processo de servidor separado. Para tanto, é um banco de dados SQL completo com múltiplas tabelas, índices e triggers, contida apenas em um único arquivo no disco (SQLITE, 2016). Analogamente, para a comunicação, foi utilizado o Django REST framework, pois possui suporte para implementação com criptografia de soluções específicas. Para tanto, possui uma documentação extensa. Além disso, também é utilizada por empresas internacionalmente reconhecidas, incluindo Mozilla, Red Hat, Heroku, e Eventbrite (DJANGO-REST, 2016). Em suma, o hardware utilizado como base é o Arduino. Este é uma pequena placa de microcontrolador para prototipagem. Para conexões esta arquitetura contém um conector USB; além de outros circuitos eletrônicos externos, como motores, relés, sensores e atuadores (MONK, 2014). Adjacente as tecnologias citadas anteriormente, o protocolo HTTPS ( Hyper Text Transfer Protocol Secure ou Protocolo de Transferência de Hipertexto Seguro) foi adotado para obter-se segurança durante a comunicação entre o Arduino e o servidor.
Este protocolo equivale à o protocolo HTTP ( HyperText Transfer Protocol ou Protocolo de Transferência de Hipertexto) utilizado sobre uma camada denominada SSL ( Secure Sockets Layer) que em conjunto fornecem uma conexão segura, incluindo: I. Negociação de parâmetros entre cliente e servidor. II. Autenticação mútua de cliente e servidor. III. Comunicação secreta. IV. Proteção da integridade dos dados (TANENBAUM, 2011). Para implementação da estrutura proposta no Arduíno foi utilizada a placa Ethernet Shield W5100, adjacente à linguagem de programação C. E para tanto, gerenciamento da comunicação no microcontrolador foi utilizado a biblioteca Ethernet.h. Além do desenvolvimento de duas funções. A primeira, tem o objetivo de desempenhar a perspectiva de um servidor Web com ip designado pelo administrador, para que o este servidor possa enviar dados ao Arduíno. E a segunda para caminho contrário, no qual o microcontrolador Arduino envia os dados para servidor Web. Resultados e discussão Após a execução de alguns testes utilizando a arquitetura proposta, ficou elucidado que a preferência pela utilização do Django REST framework e o protocolo HTTPS foi adequada, pois rendeu resultados eficazes. E para tanto, foi comprovado que a transmissão de dados foi eficiente e confiável. Visto que não houveram quaisquer preocupações de implementação com soluções próprias em baixo nível de detecção e correção de erros, resultando em um melhor desempenho para a aplicação proposta. Conclusão A utilização desta arquitetura, previamente aplicada em outros cenários, no NODES (Núcleo de Operacionalização e Desenvolvimento em Sistemas de Informação) do IFC Araquari, favoreceu o desenvolvimento da comunicação entre as diferentes plataformas, com segurança na troca de dados. O desenvolvimento também visou uma
implementação simplificada e eficiente. Pois fomentou o conhecimento dos membros através da pesquisa em áreas pouco exploradas, vista do âmbito de redes de computadores, segurança e IoT. A comunicação entre meios tão diferentes de forma segura é cada vez mais pragmático e evidentemente acarreta no embasamento de futuros projetos, inclusive no NODES, agregando ainda mais valor aos resultados encontrados até o término da deste projeto de fato. Referências ALMEIDA, H. Tudo Conectado: assunto predominante no CSBC 2015, a Internet das Coisas é o tema desta edição da Computação Brasil. Porto Alegre. p. 7, 2015. EVANS, Dave. The Internet of Things How the Next Evolution of the Internet Is Changing Everything. Cisco Internet Business Solutions Group (IBSG), Apr. 2011. DJANGO-REST. Django REST framework - Web APIs for Django. Site, 2011-2014, Disponível em: < http://tinyurl.com/mlpb7ou />. Acessado em: 09 de junho de 2016. DJANGO. The Web framework for perfectionists with deadlines Django. Site, 2005-2014. Disponível em: <https://www.djangoproject.com/>. Acessado em: 09 de junho de 2016. JSON. JSON. Disponível em: <http://json.org/>. Acessado em: 09 de junho de 2016. MAGALHAES, G.G.M.S. Estudo de segurança nos principais protocolos da Internet das Coisas. 2016. 110 f. Monografia (Engenharia da Computação), Instituto de Ciências Exatas, Departamento de Ciência da Computação - Universidade de Brasília, Brasília. 2016. MONK, Simon. 30 Projetos com Arduino. 2ª Edição.Rio Grande do Sul: Bookman, 2014. 215 páginas. SQLITE. SQLite. Disponível em: <https://www.sqlite.org/about.html>. Acessado em: 09 de junho de 2016.