De acordo comKhodadadi et al.(2017), o IoT, do ponto de vista de rede e comunica- ¸c˜ao, pode ser visto como uma agrega¸c˜ao de diferentes redes e tecnologias como redes m´oveis (3G, 4G, etc.), WLANs, entre outras.
Com o surgimento de protocolos de comunica¸c˜ao focados em meios locais e urbanos, como o Wi-Fi, Bluetooth ou LoRa, desenvolver uma rede de objetos tornou-se mais f´acil. No entanto, a aplica¸c˜ao de protocolos que liguem estas diferentes tecnologias tornou-se mais complexo.
24 CAP´ITULO 3. INTERNET DAS COISAS
Camada de Aplica¸c˜ao CoAP HTTP Camada de Transporte UDP TCP
Camada de Rede IPv4 IPv6 Camada Phy/MAC Bluetooth Wi-Fi LoRa
Figura 3.7 – Aqruitetura de comunica¸c˜ao de solu¸c˜ao IoT. Adaptado de Khodadadi et al.
(2017).
3.4.1
Camada Phy/MAC
Esta camada refere-se `as duas ´ultimas camadas do modelo OSI. Segundo Day and Zimmermann (1984), camada Physical fornece o acesso el´etrico e funcional ao meio f´ısico e especifica de que forma o dispositivo deve enviar e receber informa¸c˜ao. Esta camada pode tamb´em ser denominada de MAC (Medium access control ). Em aplica¸c˜oes IoT ´e tamb´em responsabilidade desta camada a divis˜ao da informa¸c˜ao em frames para esta ser transmitida. Os protocolos mais utilizados nesta camada s˜ao os seguintes: IEEE 802.15.4, Wi-Fi, LTE, LoRa, entre outros.
3.4.2
Camada de Rede
A camada de rede permite obter independˆencia entre a tecnologia de transferˆencia de dados e as considera¸c˜oes de roteamento, escondendo todas as peculiaridades do meio de transporte. De acordo com as especifica¸c˜oes do dispositivo os meios e protocolos de comunica¸c˜ao variam, sendo os mais comuns o IPv6, 6LoWPAN (IPv6 over Low power Wireless Personal Area Networks) e RPL (IPv6 Routing Protocol for Low Power and Lossy Networks) (Anna Gerber, 2018).
3.5. APLICAC¸ ˜OES 25
3.4.3
Camada de Transporte
O prop´osito da camada de transporte ´e fornecer uma transferˆencia de dados trans- parente entre sistemas, de forma confi´avel e econ´omica (Day and Zimmermann,
1984).
Esta camada prevˆe dois protocolos distintos, o TCP (Transmission Control Protocol ) e o UDP (User Datagram Protocol ). O TPC ´e um protocolo orientado a liga¸c˜oes confi´aveis, permitindo a entrega dos dados sem erros. Para isso, ´e controlada a velocidade de transmiss˜ao de forma a n˜ao superar a velocidade da rede. Al´em disso, ´e tamb´em utilizado um sistema de confirma¸c˜ao de pacotes atrav´es do envio de confirma¸c˜oes, ou acknowledgments (ACK). O UDP ´e um protocolo n˜ao orientado `a liga¸c˜ao, ou seja, n˜ao existe a garantia de entrega de pacotes, sendo este um protocolo mais leve devido ao reduzido tamanho do overhead.
3.4.4
Camada de Aplica¸c˜ao
A camada de aplica¸c˜ao ´e a camada de abstra¸c˜ao que re´une os protocolos de comunica- ¸c˜ao ponto-a-ponto. Existem in´umero protocolos nesta camada como o HTTP, CoAP ou XMPP (Anna Gerber,2018). No entanto, o modelo de publica¸c˜ao/subscri¸c˜ao ´e o m´etodo mais comum de troca de informa¸c˜ao em sistemas distribu´ıdos devido `a sua simplicidade. Um exemplo de protocolo ´e o MQTT (Message Queuing Telemetry Transport ). Em cen´arios dinˆamicos, este tipo de protocolo ´e eficiente devido ao uso de notifica¸c˜oes push e filas de espera para a entrega de mensagens. Outro tipo de protocolos como o HTTP apenas suporta modelos de pedido/resposta pelo que ´e menos utilizado em ambiente IoT.
3.5
Aplica¸c˜oes
O conceito do IoT baseia-se na intera¸c˜ao entre dispositivos, objetos, infraestruturas e ambiente. As aplica¸c˜oes de IoT tˆem, cada vez mais, um grande impacto na vida
26 CAP´ITULO 3. INTERNET DAS COISAS
de todos. Hoje em dia, muitos equipamentos dom´esticos trabalham em conjunto de forma a fornecer um servi¸co unificado e n˜ao como dispositivos a funcionar inde- pendentemente. Este tipo de intera¸c˜ao ´e fundamental para aplica¸c˜oes e servi¸cos do dia-a-dia, principalmente no que diz respeito a smart houses (Sharma and Tiwari,
2016) e smart cities.
Atualmente, e cada vez mais, podemos encontrar o IoT nos mais diversos campos. Segundo Chen et al. (2014) as aplica¸c˜oes do IoT podem ser divididos em 9 campos principais que s˜ao explicados na Tabela 3.1.
Campo Aplica¸c˜oes
Ind´ustria Controlo de processos de produ¸c˜ao, monitoriza¸c˜ao do ambiente industrial, acompanhamento da cadeia de manufatura, monitoriza¸c˜ao de ciclos de vida de produtos e controlo de polui¸c˜ao e poupan¸ca de energia.
Agricultura Utiliza¸c˜ao de recursos agr´ıcolas, gest˜ao quantitativa de processos de produ¸c˜ao agr´ıcola, monitoriza¸c˜ao ambiental, gest˜ao de qualidade.
Log´ıstica Controlo de invent´ario, gest˜ao de distribui¸c˜ao, sistemas de seguimento inteligente.
Transportes Perce¸c˜ao e notifica¸c˜ao do tr´afego, posicionamento e agendamento de viaturas, plataformas de transporte inteligentes.
Smart Grid Monitoriza¸c˜ao de instala¸c˜oes el´etricas, subesta¸c˜oes inteligentes, agendamentos autom´aticos, telecontagens.
Ambiental Monitoriza¸c˜ao de polui¸c˜ao, qualidade da ´agua e ar, recolha de informa¸c˜ao ambiental.
Seguran¸ca Monitoriza¸c˜ao de materiais perigosos, gest˜ao da qualidade alimentar, infraestrutura de resposta de emergˆencia, alertas de acidentes.
M´edico Controlo inteligente de medicamentos, gest˜ao hospitalar, recolha da dados m´edicos, monitoriza¸c˜ao remota de pacientes.
Casa Seguran¸ca, controlo de eletrodom´esticos, monitoriza¸c˜ao inteligente, poupan¸ca de energia.
3.6. SEGURANC¸ A 27
3.6
Seguran¸ca
Com o crescimento do IoT tendem a aparecem novos problemas de seguran¸ca. As principais causas para estes problemas s˜ao a dimens˜ao e heterogeneidade das redes, podendo estas ser relacionadas com os dispositivos ou com a comunica¸c˜ao (Zhang et al., 2014). Um dos principais focos de vulnerabilidades ´e o design dos programas, que com a velocidade de desenvolvimento e aparecimento de novas tecnologias, ´e muitas vezes descorado. Para al´em disso, as atualiza¸c˜oes de software nem sempre existem o que deixa vulnerabilidades detetadas por corrigir. Por outro lado, no que diz respeito `a comunica¸c˜ao, a existˆencia de diferentes protocolos e estruturas de dados, assim como a diversidade dos equipamentos de rede leva ao aparecimento de vulnerabilidades, sendo que estas s˜ao de complexa resolu¸c˜ao. Desta forma, um dos principais desafios para o IoT ´e como lidar com as quest˜oes de seguran¸ca.
3.6.1
Identifica¸c˜ao
A principal dificuldade de identifica¸c˜ao de objetos ´e garantir a integridade dos registos. Apesar de o Domain Name System (DNS) ser utilizado na Internet ´e um sistema inseguro que continua a ser vulner´avel a ataques como cache poisoning ou man-in-the-middle (Ariyapperuma and Mitchell, 2007).
Servidor DNS Utilizador exemplo.com IP: 192.0.0.16 IP para exemplo.com? 192.0.0.16 (em cache)
28 CAP´ITULO 3. INTERNET DAS COISAS
A utiliza¸c˜ao de cache no DNS permite uma redu¸c˜ao significativa nos tempos de acesso, no entanto, isto ocorre em detrimento da consistˆencia, isto ´e, se a identifica¸c˜ao de objetos for alterada esta pode n˜ao ser apresentada at´e que a cache seja limpa ou o time to live (TTL) expire. Normalmente um utilizador faz uma query, como no exemplo da Figura 3.8 e o servidor de DNS responde com o endere¸co IP em cache, reduzindo o tempo de resposta que seria muito maior caso fosse necess´ario comunicar com os v´arios servidores envolvidos no processo de resolu¸c˜ao DNS. Ap´os obter o endere¸co IP ´e poss´ıvel aceder `a p´agina.
Malicioso IP: 192.0.0.17 exemplo.com IP: 192.0.0.16 Servidor DNS Utilizador IP para exemplo.com? 192.0.0.17 (em cache)
Figura 3.9 – Ataque de cache poisoning. Adaptado de Cloudflare.
Um ataque de cache poisoning consistem em introduzir informa¸c˜ao falsa na cache, de forma a que as queries futuras retornem informa¸c˜ao incorreta como mostra a Figura 3.9. Isto ´e poss´ıvel pois o DNS utiliza o UDP invˆes do TCP. Desta forma, um atacante pode fazer-se passar por um resolver DNS e forjar a resposta do mesmo sem que o servidor saiba a verdadeira origem da informa¸c˜ao. Este problema ocorre, pois o protocolo de DNS foi desenvolvido para redes muito mais pequenas que a atual Internet e era baseado num princ´ıpio de confian¸ca.
Para resolver estes problemas existe um protocolo chamado Domain Name System Security Extensions (DNSSEC) que utiliza chaves p´ublicas para verificar e autenticar a informa¸c˜ao (Cloudflare). No entanto, este tipo de seguran¸ca traz consigo um aumento do processamento necess´ario e do overhead dos pacotes, o que pode n˜ao ser adequado para o IoT.
3.6. SEGURANC¸ A 29
3.6.2
Autentica¸c˜ao e Autoriza¸c˜ao
O IoT representou uma mudan¸ca ao n´ıvel da comunica¸c˜ao, passou-se de comunica¸c˜ao entre pessoas para uma entre objetos. Isto criou v´arios desafios ao n´ıvel da seguran¸ca, principalmente no controlo de acesso e autentica¸c˜ao, sendo estes aspetos cr´ıticos de qualquer sistema (El-hajj et al., 2017). A autentica¸c˜ao ´e o processo que determina se uma entidade, seja ela um dispositivo ou utilizador, pode aceder a um recurso e deve ser um fator chave para o IoT, pois um s´o dispositivo comprometido pode afetar toda a rede. A grande variedade de categorias sobre as quais os dispositivos e redes IoT caiem n˜ao permitem apontar uma ´unica solu¸c˜ao ao n´ıvel da autentica¸c˜ao e autoriza¸c˜ao uma vez que certos protocolos s˜ao mais adequados a determinadas situa¸c˜oes e arquiteturas. Diferentes aplica¸c˜oes necessitam de diferentes n´ıveis de seguran¸ca.
3.6.3
Privacidade
No IoT, os dispositivos utilizados para gerir, monitorizar e otimizar as atividades humanas s˜ao cada vez mais inteligentes e com capacidade de comunica¸c˜ao, pro- cessamento, armazenamento, e sobretudo, recolha de informa¸c˜ao. No entanto, as consequˆencias s˜ao muito grandes quando existe divulga¸c˜ao de informa¸c˜ao sens´ıvel sem o consentimento dos utilizadores. Devido `a interdependˆencia e dinˆamica dos sistemas, uma pequena fuga de informa¸c˜ao pode ferir de forma severa a privacidade. Desta forma, o IoT tem cada vez mais o desafio de tornar a infraestrutura segura, confi´avel e que preserve a privacidade dos utilizadores (Porambage et al.,2016). Devido `a heterogeneidade dos sistemas torna-se dif´ıcil a aplica¸c˜ao de protocolos convencionais sobre privacidade. Um dos maiores problemas de privacidade ´e a identifica¸c˜ao de informa¸c˜ao pessoal. (Porambage et al.,2016) d´a um exemplo criando um cen´ario em que o Bob compra uma tag RFID com o seu cart˜ao de cr´edito. Em certas situa¸c˜oes, a informa¸c˜ao pessoal do Bob pode ser automaticamente relacionada ao objeto comprado. Este tipo de dados pode dar lugar a amea¸cas `a privacidade em termos de localiza¸c˜ao e seguimento.
30 CAP´ITULO 3. INTERNET DAS COISAS
Semelhantemente, caso o Bob adquira um conjunto de tags e uma conseguir ser associada a si, pode acontecer o mesmo com as seguintes. De forma mais geral, as quest˜oes de privacidade do IoT envolvem localiza¸c˜ao de utilizadores, cria¸c˜ao de perfis, controlo de acesso, prote¸c˜ao de dados e confidencialidade.
3.7
Dispositivos
Os dispositivos do IoT s˜ao apenas componentes eletr´onicos que trocam informa¸c˜ao entre si. Segundo Podnozov, Andre (2019), Este tipo de dispositivo pode agrupado nas seguintes categorias:
• Microcontroladores: estes s˜ao a forma mais simples de dispositivos IoT. Podem recolher e enviar dados do ambiente, assim como receber comandos. A sua vantagem ´e o seu baixo consumo e capacidade de ser alimentado por bateria, para al´em de serem de reduzido custo.
• Computadores de placa ´unica: este tipo de dispositivo ´e o exemplo do Raspberry, e apresentam um maior poder de processamento sendo capazes exibir comportamentos inteligentes. No entanto o seu valor ´e maior e consomem mais energia.
• Gateways: estes dispositivos s˜ao utilizados em cen´arios de grandes redes IoT, fornecem conectividade e atuam em nome de um grupo de objetos. S˜ao providos de elevado poder de processamento.
3.8
Problemas e desafios
A conex˜ao de um grande n´umero de dispositivos ser´a um dos grandes desafios do IoT no futuro e ir´a definir o pr´oprio modelo atual de comunica¸c˜oes e tecnologias que o suportam (Robbie Mitchell). Atualmente, a maioria dos servi¸cos s˜ao centralizados o
3.8. PROBLEMAS E DESAFIOS 31
que ´e suficiente para as centenas ou milhares de dispositivos envolvidos. No entanto, quando as redes aumentarem drasticamente de tamanho para a ordem dos milh˜oes de dispositivos, os sistemas centralizados tornar-se-˜ao um bottleneck, ou seja, ir´a haver problemas de congestionamento. O futuro do IoT ir´a assim depender fortemente das redes descentralizadas e movendo parte do processamento para as n´os.
De acordo com Ben Dickson, o IoT atualmente est´a a crescer rapidamente e com diferentes tecnologias que tentam competir para se tornarem o standard. Isto poder´a causar dificuldade na interliga¸c˜ao de dispositivo e necessidade de outras tecnologias para realizar a interliga¸c˜ao. Por outro lado, equipamentos com um tempo de vida elevado como televis˜oes ou frigor´ıficos, devem ser capazes de se atualizar e manter em funcionamento mesmo quando o construtor deixe de os suportar.
O IoT cria desafios ´unicos ao n´ıvel da privacidade que podem ir muito para l´a do que estamos habituados hoje. Este problema torna-se mais saliente no caso de dispositivos com capacidade de monitoriza¸c˜ao como smartphones, carros ou mesmo televis˜oes. No caso das televis˜oes, funcionalidades como reconhecimento de voz ou gestos podem estar continuamente a monitorizar os utilizadores e transmitir esses dados para servi¸cos na cloud para processamento (Meng et al., 2018). Este tipo de recolhe de dados exp˜oe o IoT a problemas legais no que diz respeito a prote¸c˜ao de dados e privacidade.
`
A semelhan¸ca da privacidade, a seguran¸ca deve ser um grande foco do IoT. Uma grande mudan¸ca ao n´ıvel da seguran¸ca deve surgir do facto que o IoT se tornar´a mais enraizado nas nossas vidas, pelo que as preocupa¸c˜oes deixaram de ser simplesmente com a prote¸c˜ao de dados e informa¸c˜ao sens´ıvel. As vidas e sa´ude humanas poder˜ao tamb´em ser vitimas de ataques (Meng et al., 2018).
4
Proposta de uma arquitetura
Neste cap´ıtulo ´e apresentada uma proposta de uma arquitetura para um sistema de telecontagem para ´agua e eletricidade sendo descritos os requisitos pretendidos para o sistema, de que forma se encontra organizado e ´e explicado detalhadamente o seu funcionamento.
4.1
Requisitos
Atualmente tanto os contadores de ´agua como de eletricidade cumprem o seu prop´o- sito principal que ´e a fatura¸c˜ao, pelo que este ´e o principal objetivo para o sistema a desenvolver, obter contagens precisas e fidedignas. Os contadores cl´assicos n˜ao permitem ao utilizador monitorizar os seus consumos em tempo real sendo que s´o ap´os a fatura¸c˜ao s˜ao conhecidos os gastos. Assim, pretende-se que o sistema tenha a capacidade de informar quer o cliente, quer o distribuidor, dos consumos em tempo real. Isto que permite intervalos de fatura¸c˜ao personalizados e o conhecimento dos consumos no momento. Ap´os a an´alise cuidada sobre o estado da arte e o estudo te´orico sobre o IoT foram delineados requisitos que seriam necess´arios o sistema apresentar sendo que este deve ser dinˆamico, isto ´e, poder ser utilizado tanto para
34 CAP´ITULO 4. PROPOSTA DE UMA ARQUITETURA
monitorizar eletricidade como ´agua. Uma das principais caracter´ısticas do IoT ´e o baixo custo dos nodes, assim, tornou-se um objetivo desenvolver um node com o menor custo poss´ıvel que possa ser utilizado pelo comercializador de eletricidade ou ´
agua mas tamb´em por qualquer pessoa que o pretenda instalar em sua casa para realizar controlo de consumos, pelo que este deve ser de reduzidas dimens˜oes e, mais importante, de f´acil instala¸c˜ao sem a necessidade de conhecimentos t´ecnicos. Para isso foi idealizado um sistema modular para a alimenta¸c˜ao e comunica¸c˜ao. A alimenta¸c˜ao pode ser feita atrav´es de uma liga¸c˜ao ao quadro el´etrico ou atrav´es de uma bateria que ´e carregada por um hidrogerador, dependendo da aplica¸c˜ao. Estes dois modos de alimenta¸c˜ao devem ser poss´ıveis de ser alterados caso seja necess´ario alterar o prop´osito do node. Da mesma maneira, as comunica¸c˜oes podem ser feitas por LoRa ou Wi-Fi sendo que cada uma das tecnologias se encontra tamb´em num m´odulo distinto poss´ıvel de ser subsistido. Para al´em disto o node deve armazenar as contagens realizadas em mem´oria.
Todos os dados recolhidos pelos sensores devem ser poss´ıveis de visualizar pelos utilizadores numa plataforma, que para al´em disso deve permitir fazer a gest˜ao dos nodes. De forma a poder suportar um grande n´umero de utilizadores deve ser desenvolvida tendo em considera¸c˜ao a sua escalabilidade e seguran¸ca.