Segurança de Sistemas Operacionais IoT – 6LoWPAN

Square

Gisela Miranda Difini, Leonardo Felix, Karolina Pacheco, Tiago Costa

Curso de Bacharelado em Ciência da Computação – Universidade do Vale do Rio dos Sinos (UNISINOS) – São Leopoldo
93020-190 – São Leopoldo – RS– Brasil

{giselamd,leonardofelix, karolinacp, tiagocsilva}@edu.unisinos.br

Abstract. With the advent of Internet of Things millions of devices are getting connected to the internet. This IoT tendency requires a new Internet Protocol with the new and modern standards, which in this case is the IPv6, with a set of differences in relation to its predecessor, the IPv4, discussed on their respectives RFCs 8200 and 791. These differences go from the size of the addressable protocol, to the security requirements incorporated to this new Internet Protocol, which requires an efficient implementation to prevent security breaches to meet the new standards. In devices with a low amount of resources, low battery, and limited processing power, these new standards are harder to implement as in the case of the 6LoWPAN, IPv6-based LoWPAN  networks.

Resumo. Com o advento da Internet das Coisas, milhões de dispositivos passaram a estar conectados à internet. Essa tendência, de Internet das Coisas, ou IoT, gera a necessidade da criação de um novo protocolo de rede, no caso, o IPv6, com grandes diferenças em relação ao antigo IPv4, discutidas nas respectivas RFCs 8200 e 791. Essas diferenças vão desde o tamanho endereçável do protocolo à requisitos de seguranças incorporados ao IPv6, que necessitam de implementação eficiente, a fim de garantir que todos os requisitos de segurança sejam cumpridos. Em dispositivos com baixa capacidade de processamento e recursos, esses requisitos se tornam mais complexos para implementação, como no caso dos 6LoWPAN, redes LoWPAN baseadas em IPv6.

Introdução

A Internet das Coisas desponta como uma evolução da internet e um novo paradigma tecnológico, social, cultural e digital, ela revolucionará os modelos de negócios e a interação da sociedade com o meio ambiente, por meio de objetos físicos e virtuais, em que esses limites se tornam cada vez mais tênues [Lacerda & Lima-Marques, 2015]. Nesse novo cenário, a pluralidade é crescente e previsões indicam que mais de 50 bilhões de dispositivos estarão conectados até 2020 [Evan, 2011]. Com os objetos inteligentes será possível detectar o contexto do mesmo, controlá-lo e viabilizar a troca de informações de um objeto com outros. Em paralelo, novas possibilidades de aplicações surgem, como por exemplo, cidades inteligentes, equipamentos de medicina e robôs industriais, porém desafios também aparecem, como regulamentações, segurança e padronizações. Sem dúvida, dos desafios citados, a segurança é um dos tópicos mais importantes.

Por se tratarem de objetos conectados à rede, é necessário um endereçamento para tais. Assim como os computadores que possuem um endereço IP na internet, as coisas que serão conectadas à internet também deverão ter o seu endereço IP. Para endereçamento são utilizados os protocolos de rede IPv4 e IPv6, porém, o mundo ficou sem endereços IPv4 em fevereiro de 2010 e, embora nenhum impacto real tenha sido percebido pelo público em geral, essa situação tem o potencial de diminuir o progresso da IoT, pois os possíveis bilhões de novos sensores exigirão endereços IP [Evan, 2011]. Criou-se, então, o IPv6, que possui endereços IP abundantes e capacidade de encriptação de ponta a ponta. Além disso, ele facilita o gerenciamento de redes devido a recursos de auto configuração e oferece recursos de segurança aprimorados [Evan, 2011]. Entretanto, no contexto de IoT, o IPv6 possui desvantagens, o seu consumo de memória é muito grande, e sistemas IoT são comumente estruturados com pouca memória e limitações de processamento.

Com isso, surge a necessidade de se criar um novo protocolo que atenda as necessidades de um sistema de Internet das Coisas, e é assim que nasce o 6LoWPAN, ou IPv6 over Low power Wireless Personal Area Networks, que significa IPv6 em redes pessoais sem fio de baixa potência, viabilizando a transmissão de pacotes de dados para Internet das Coisas.

Segurança em Sistemas Operacionais IoT

Os sistemas operacionais surgiram com dois objetivos principais: criar uma camada de abstração entre o hardware e as aplicações e gerenciar os recursos de forma eficiente [Tanenbaum & Woodhull, 1997]. No começo do desenvolvimento dos sistemas operacionais as preocupações de segurança eram mínimas pois os computadores estavam isolados e a única forma de invasão possível era a presencial.

Com o passar do tempo, os sistemas operacionais foram sendo aprimorados, surgiram as redes para interligar computadores, e os sistemas operacionais passaram a suportar a execução de múltiplas tarefas simultaneamente, permitindo que duas ou mais pessoas compartilhassem o tempo de processamento de uma mesma máquina [Garfinkel & Spafford, 1996, Tanenbaum & Woodhull, 1997]. Com a chegada da internet, usuários domésticos passaram a fazer parte das redes e uma vasta quantidade de informações tornou-se acessível a qualquer pessoa [Nakamura e de Geus, 2002].

Quando se pensa em Internet das Coisas e os bilhões de dispositivos que estarão conectados à internet, uma série de riscos de segurança deve também ser discutida. Esses riscos se referem tanto aos próprios dispositivos, como as plataformas, redes e sistemas de operação com os quais estão conectados. O dispositivo conectado pode ser usado como um canal para ingresso à rede e assim iniciar um ataque massivo [Abreu, 2016].

Nem sempre os usuários se preocupam com a segurança das senhas de seus dispositivos conectados, ou seja, mesmo um sistema de segurança eficiente, com criptografia, autenticação e proteção dos dados em uma casa conectada, seria suficiente para barrar um ataque se o dono da casa não mudar a senha default ou usar a mesma para todos seus dispositivos, e-mails e redes sociais. Outro desafio que surge neste meio é, por exemplo, a duração da bateria dos dispositivos: um sistema de segurança avançado em um dispositivo IoT significa mais processamento que é igual a maior consumo de energia. Além disso, a falta de padronização em arquitetura e segurança, entre os grandes sistemas operacionais de dispositivos conectados é uma grande falha para a segurança dos sistemas IoT.

Internet das Coisas

A Internet das Coisas  (ou Internet of Things – IoT) pode ser considerada como a terceira geração da Internet. A primeira geração foi baseada na digitalização da informação. A segunda geração (ou Web 2.0) consistiu da entrada maciça de pessoas como geradores de conteúdos, principalmente através das mídias sociais. Agora, a terceira geração consiste na capacidade de objetos também se conectarem à internet e se comunicarem entre si, com máquinas, sistemas de informações e com pessoas [ABINC, 2017].

A Internet das Coisas é definida como um paradigma onde os objetos do nosso dia a dia podem ser equipados com uma unidade básica de hardware que apresentará ao menos uma das seguintes características [Ruiz et al. 2004, Loureiro et al. 2003]: 1) unidade(s) de processamento; 2) unidade(s) de memória; 3) unidade(s) de comunicação e; 4) unidade(s) de sensor(es) ou atuador(es), que irão permitir que os mesmos se comuniquem uns com os outros e com outros equipamentos e serviços através da internet para alcançar algum objetivo útil. Os dispositivos da Internet das Coisas serão onipresentes, sensíveis ao contexto e permitirão inteligência ao ambiente.

Ao conectar objetos com diferentes recursos a uma rede, potencializa-se o surgimento de novas aplicações, mas novos desafios surgem ao se conectar à internet objetos com restrições de processamento, memória, comunicação e energia [Loureiro et al. 2003]. Uma questão que surge tem relação ao endereçamento dos dispositivos, pois sabe-se que os paradigmas de comunicação e roteamento nas redes de objetos inteligentes podem não seguir os mesmos padrões de uma rede como a internet [Chaouchi 2013]. Deste modo, fica evidente a necessidade da adaptação dos protocolos existentes.

Protocolos de Internet

Tanto em redes locais quanto na internet, cada dispositivo conectado deve ter um endereço único para que possa ser identificado e desta forma acessar os dados que necessita.

  Com o início da era de redes de computadores e a necessidade de comunicação entre os mesmos, surgiram muitos modelos de protocolos de internet, sendo alguns deles o NPL Network, o Xerox XNS, o modelo ISO e o modelo TCP/IP, sendo este último o popular deles, utilizado em larga escala.

O conjunto de protocolos de internet conhecido como TCP/IP, definido na RFC871, faz a junção do TCP (Transfer Control Program), até então utilizado para fazer a comunicação apenas entre computadores de uma mesma rede, conectados fisicamente, com a interligação através de protocolos de internet. No TCP/IP, são mantidas as “boas ideias” do TCP, como a utilização de sockets, a troca de pacotes, conexões lógicas e a ideia de comunicação entre processos, enquanto as “más ideias” são reestruturadas a fim de atingir os principais objetivos do protocolo, o acesso remoto, compartilhar recursos e alcançar o “internetting” [Padlipsky, M. A.,1982].

Utilizando-se deste conjunto de protocolos surge a padronização dos protocolos de internet, onde não apenas a comunicação entre computadores é padronizada, mas também a forma de enviar os dados, como no caso do IPv4, e, posteriormente o IPv6.

  • IPv4O protocolo de internet, versão 4, ou IPv4, foi primeiramente especificada sob a RFC 791, publicada pelo IETF (Internet Engineering Task Force) em setembro de 1981. No IPv4, o endereço é definido por um número de 32 bits, dividido em quatro grupos de oito bits cada (quatro octetos) de tamanho fixo. Na configuração desses endereços, representa-se cada octeto por um número que pode variar de 0 até 255, assim, obtém-se um conjunto de quatro números separados por pontos. Com o propósito de estabelecer a comunicação entre redes de forma padronizada, tem como sua única especificação de segurança um parâmetro opcional ao cabeçalho dos datagramas, onde a interpretação fica a cargo dos roteadores ou gateways envolvidos na transferência dos dados.
  • IPv6
    Mesmo o IPv4 possuindo uma quantidade muito grande de endereços, trata-se de uma quantidade insuficiente. Somente quando a internet passou a ser utilizada de maneira ampla é que ficou claro que o número máximo de endereços IP poderia ser atingido em um futuro próximo. Foi a partir desta percepção que o projeto IPng (Internet Protocol next generation) teve início, dando origem ao IPv6 [Alecrim, 2013].O espaço de endereçamento do IPv6 constitui endereços com um tamanho de 128 bits no total e  portanto conta com cerca de 3,4 × 10^38 endereços disponíveis. Os endereços utilizam oito sequências de até quatro caracteres separado por ‘:’, considerando o sistema hexadecimal.Há também a preocupação de corrigir as limitações de segurança existentes no IPv4. Um dos principais mecanismos criados para isso é o IPSec (IP Security), que fornece funcionalidades de criptografia de pacotes de dados, de forma a garantir três aspectos fundamentais de segurança: integridade, confidencialidade e autenticidade [Alecrim, 2013].

    Não obstante, no contexto de Internet das Coisas, o IPv6 possui uma grande desvantagem: seu tamanho. São 40 bytes utilizados no cabeçalho, os sistemas IoT devem ser muito mais leves que isso devido as suas limitações de processamento e memória.

Cabeçalho dos protocolos IP

O conjunto de informações transmitidas através dos protocolos é conhecido como cabeçalho de um pacote de dados, ou datagrama do protocolo, e contém todas as informações que devem ser interpretadas pelo receptor, tais como o endereço IP de origem e de destino, o tamanho total do pacote, o offset de fragmentação, a versão do protocolo, entre outros.

  • Cabeçalho IPv4
    O cabeçalho IPv4 é composto por 12 campos fixos, que podem ou não conter opções responsáveis por fazer com que o tamanho varie de 20 a 60 Bytes, como pode ser visto na figura 1.
Figura 1. Cabeçalho IPv4
Fonte: IPv6.br, 2012

Alguns padrões em relação ao tamanho destes campos são estabelecidos, para que o receptor possa interpretar o pacote de forma padronizada, como, por exemplo, 4 bits para a versão do protocolo, 32 bits para os endereços e 13 bits para o offset de fragmentação. Unindo todas os dados necessários para o envio de um pacote via internet, o tamanho mínimo ocupado é de 20 bytes, sem contar com a parte de dados, que pode ocupar até 64kb, quando não ocorre fragmentação. O tamanho mínimo de um fragmento pode ser menor, chegando até 8 bytes.

  • Cabeçalho IPv6

    bytes. Além disso, ele ficou mais flexível e eficiente com a adição de cabeçalhos de extensão.

    Dentre as mudanças, destaca-se a remoção de seis dos campos existentes no cabeçalho IPv4, como resultado tanto da inutilização de suas funções quanto de sua reimplementação com o uso de cabeçalhos de extensão. Esta simplificação pode tornar a comunicação mais eficiente e reduzir o processamento necessário. Os campos utilizados no cabeçalho do IPv6 são os seguintes:

Diferentemente do IPv4, que inclui no cabeçalho base todas as informações opcionais, o IPv6 trata essas informações através de cabeçalhos de extensão. Caso existam múltiplos cabeçalhos de extensão no mesmo pacote, eles serão adicionados em série formando uma cadeia de cabeçalhos.

Protocolos de Internet para dispositivos IoT

Como dito anteriormente, o IPv4 foi esgotado em 2010 e o IPv6 consome muita memória, não se adequando aos padrões de um sistema IoT. Faltava então, um protocolo que definisse padrões para dispositivos IoT.

Pensando nisso, na RFC4919, o IETF define LoWPANs, que são redes sem fio de baixo consumo, nas quais dispositivos que se adequam às padronizações definidas pelo IEEE 802.15.4 utilizam para se comunicar. Estes dispositivos são caracterizados pelo curto alcance, baixo consumo, baixo custo e restrições em relação ao poder de processamento, memória e disponibilidade energética [Kushalnagar et. al., 2007]. Em mais detalhes, algumas das características que definem os dispositivos que se utilizam de LoWPANs são: o limite de 127 bytes por pacote de dados, taxas de transferência de até 250kbps, grande quantidade de dispositivos e incerteza de capacidade de comunicação, visto que muitos destes ficam inativos por longos períodos para economizar bateria. O 6LoWPAN, nada mais é que um dispositivo que utiliza o protocolo IPv6, porém de forma adequada a dispositivos LoWPAN.

A RFC4919 também lista alguns benefícios do protocolo IP, dizendo que a tecnologia de rede IP é especificada em aberto e livremente e que dispositivos baseados em IP podem ser conectados prontamente a outros sistemas baseados em IP. Alguns problemas são citados, ao que diz respeito a conectividade, é dito que os muitos dispositivos em um LoWPAN tornam altamente desejável a configuração automática da rede e para isso o IPv6 possui soluções prontas, o grande número de dispositivos coloca a necessidade de um grande espaço de endereço, bem suportado pelo IPv6, e, dado o tamanho do pacote limitado, os cabeçalhos para IPv6 devem ser compactados sempre que possível.

Tomando isso em conta, na RFC4944, o IETF determina a transmissão de pacotes IPv6 em redes IEEE 802.15.4, e na RFC6282 é determinado o formato de compressão para datagramas IPv6 em redes baseadas na IEEE 802.15.4. Além de termos uma camada de ligação de segurança AES-128 definida no IEEE 802.15.4, que fornece autenticação e criptografia de link.

Com isso, tem-se uma especificação de protocolo para envio de dados em sistemas operacionais voltados a Internet das Coisas, fazendo com que uma das preocupações sobre o avanço de objetos inteligentes seja sanada.

Conclusão

Em sistemas IoT, com dispositivos que possuem pouca memória, baixo processamento, baixo consumo de energia e, na maioria dos casos, utilizam-se de redes redes sem fio com baixa taxa de transmissão, a utilização de um protocolo de rede como o IPv6, mesmo que padronizado e com grande quantidade de endereços, não é o mais adequado devido ao seu tamanho.

O 6LoWPAN é uma alternativa que se adequa muito bem às características relativas aos sistemas IoT, pois possui a compressão dos dados e é também padronizado, o que torna o seu uso inestimável quando se pensa em migração de implementações.

Como podemos observar no experimento, os pacotes enviados para dispositivos 6LoWPAN são fragmentados e o cabeçalho sofre compressão antes do envio. Dessa mesma forma, é possível observar que o nodo receptor deve possuir a capacidade de fazer a reconstrução do pacote, após término da transferência.

Referências

ABINC. “O que é a Internet das Coisas”. Disponível: http://abinc.org.br/www/2017/01/16/o-que-e-a-internet-das-coisas/. Acesso: nov/2017.

Abreu, M. “Segurança em IoT: alarmismo ou necessidade?”. Disponível: https://canaltech.com.br/seguranca/seguranca-em-iot-alarmismo-ou-necessidade-65333/. Acesso: nov/2017.

Alecrim, E. “O que é IPv6?”. Disponível: https://www.infowester.com/ipv6.php. Acesso: nov/2017.

Deering, S., & Hinden, R. “Internet Protocol, Version 6 (IPv6) Specification”. IETF RFC 2460, dezembro de 1998. Disponível: https://tools.ietf.org/html/rfc2460. Acesso: nov/2017.

Evan, D. “A Internet das Coisas: Como a próxima evolução da Internet está mudando tudo”. White paper Cisco, abril de 2011. Disponível: http://www.cisco.com/c/dam/global/pt_br/assets/executives/pdf/internet_of_things_iot_ibsg_0411fi nal.pdf. Acesso: nov/2017.

Fall, K. R. e Stevens, W. R. “TCP/IP Illustrated, Volume 1 – The Protocols”. Addison-Wesley Professional Computing Series, Estados Unidos, 2ª edição, 2011. Disponível: https://books.google.com.br/books?id=a23OAn5i8R0C&lpg=PR9&ots=R8doxQpof3&dq=tcp%2Fip&lr&hl=pt-BR&pg=PR6#v=onepage&q=tcp/ip&f=false. Acesso: nov/2017.

Garfinkel, S. e Spafford, G. “Practical Unix & Internet Security”. O’Reilly & Associates, Inc., Estados Unidos, 2ª edição, p. 971, 1996.

Hui, Ed. J. e Thubert, P. “Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks”. IETF RFC 6282, setembro de 2011. Disponível: https://tools.ietf.org/html/rfc6282. Acesso: nov/17.

Information Science Institute.  “Internet Protocol”. IETF RFC 791, setembro de 1981. Disponível: https://tools.ietf.org/html/rfc791. Acesso: nov/2017.

IPv6.br. “Cabeçalho”. Disponível: http://ipv6.br/post/cabecalho/. Acesso: nov/17.

Kushalnagar, N. et. al.. “IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals”. IETF RFC 4919, agosto de 2007. Disponível: https://tools.ietf.org/html/rfc4919. Acesso: nov/2017.

Lacerda, F. e Lima-Marques, M. “Da necessidade de princípios de arquitetura da Informação para a Internet das Coisas”. Perspectivas em Ciência da Informação, v.20, n.2, p.158-171, abr./jun. 2015.

Loureiro, A. A., Nogueira, J. M. S., Ruiz, L. B., Mini, R. A. d. F., Nakamura, E. F., e Figueiredo, C. M. S. “Redes de Sensores Sem Fio. Simpósio Brasileiro de Redes de Computadores (SBRC)”, páginas 179–226, 2003.

Montenegro, G. et al. “Transmission of IPv6 Packets over IEEE 802.15.4 Networks”. IETF RFC 4944, setembro de 2007. Disponível: https://tools.ietf.org/html/rfc4944#section-13. Acesso: nov/17.

Nakamura, E. e de Geus, P. L. “Segurança de Redes em ambientes cooperativos”. Editora Berkeley, São Paulo, 1ª edição, 2002.

Ruiz, L. B., Correia, L. H. A., Vieira, L. F. M., Macedo, D. F., Nakamura, E. F., Figueiredo, C. M., Vieira, M. A. M., Bechelane, E. H., Camara, D., Loureiro, A. A., et al. “Arquiteturas para redes de sensores sem fio”, 2004.

Tanenbaum, A. S. e Woodhull, A. S. “Operating systems: Design and Implementation”. Prentice Hall, Nova Jersey – Estados Unidos, 2ª edição, 1997.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *