Baixe o app para aproveitar ainda mais
Prévia do material em texto
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/337257385 Análise de Bibliotecas de Python que Permitem Criptografar Dados Conference Paper · November 2019 CITATIONS 0 READS 514 4 authors, including: Some of the authors of this publication are also working on these related projects: Projeto de Extensão "Quebrando barreiras na troca de saberes, conhecimentos e experiências por meio de redes dinâmicas e convergentes" View project Aplicações em computação colaborativa em rede P2P View project Luciana Pereira Oliveira Instituto Federal de Educação, Ciência e Tecnologia da Paraíba 28 PUBLICATIONS 16 CITATIONS SEE PROFILE Edson L. V. Almeida Instituto Federal de Educação, Ciência e Tecnologia da Paraíba 5 PUBLICATIONS 0 CITATIONS SEE PROFILE Lucas Sales da Silva Instituto Federal de Educação, Ciência e Tecnologia da Paraíba 1 PUBLICATION 0 CITATIONS SEE PROFILE All content following this page was uploaded by Luciana Pereira Oliveira on 14 November 2019. The user has requested enhancement of the downloaded file. https://www.researchgate.net/publication/337257385_Analise_de_Bibliotecas_de_Python_que_Permitem_Criptografar_Dados?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_2&_esc=publicationCoverPdf https://www.researchgate.net/publication/337257385_Analise_de_Bibliotecas_de_Python_que_Permitem_Criptografar_Dados?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_3&_esc=publicationCoverPdf https://www.researchgate.net/project/Projeto-de-Extensao-Quebrando-barreiras-na-troca-de-saberes-conhecimentos-e-experiencias-por-meio-de-redes-dinamicas-e-convergentes?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_9&_esc=publicationCoverPdf https://www.researchgate.net/project/Aplicacoes-em-computacao-colaborativa-em-rede-P2P?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_9&_esc=publicationCoverPdf https://www.researchgate.net/?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_1&_esc=publicationCoverPdf https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_4&_esc=publicationCoverPdf https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_5&_esc=publicationCoverPdf https://www.researchgate.net/institution/Instituto_Federal_de_Educacao_Ciencia_e_Tecnologia_da_Paraiba?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_6&_esc=publicationCoverPdf https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_7&_esc=publicationCoverPdf https://www.researchgate.net/profile/Edson_Almeida3?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_4&_esc=publicationCoverPdf https://www.researchgate.net/profile/Edson_Almeida3?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_5&_esc=publicationCoverPdf https://www.researchgate.net/institution/Instituto_Federal_de_Educacao_Ciencia_e_Tecnologia_da_Paraiba?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_6&_esc=publicationCoverPdf https://www.researchgate.net/profile/Edson_Almeida3?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_7&_esc=publicationCoverPdf https://www.researchgate.net/profile/Lucas_Silva108?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_4&_esc=publicationCoverPdf https://www.researchgate.net/profile/Lucas_Silva108?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_5&_esc=publicationCoverPdf https://www.researchgate.net/institution/Instituto_Federal_de_Educacao_Ciencia_e_Tecnologia_da_Paraiba?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_6&_esc=publicationCoverPdf https://www.researchgate.net/profile/Lucas_Silva108?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_7&_esc=publicationCoverPdf https://www.researchgate.net/profile/Luciana_Oliveira47?enrichId=rgreq-8a2969ada857e06a8306c3f1c7f43aba-XXX&enrichSource=Y292ZXJQYWdlOzMzNzI1NzM4NTtBUzo4MjUxNDg0MzMyNDQxNjJAMTU3Mzc0MjEyNTI5NA%3D%3D&el=1_x_10&_esc=publicationCoverPdf Análise de Bibliotecas de Python que Permitem Criptografar Dados Luciana Pereira Oliveira[1], [1]luciana.oliveira@ifpb.edu.br/IFPB Campus João Pessoa. Edson Luis Vieira de Almeida[2], [2]edson.l.v.almeida@outlook.com/IFPB Campus João Pessoa. Wellington Pessoa de Lima Filho[3], [3]wellington.pessoa@academico.ifpb.edu.br/IFPB Campus João Pessoa. Lucas Sales da Silva[4], [4]lucas.sales@academico.ifpb.edu.br/IFPB Campus João Pessoa. Roberto Carlos Resumo Há um elevado número de algoritmos em diversas linguagens de programação que foram criados para criptografar mensagens e arquivos, a fim de esconder informações confidenciais. A linguagem Python é uma dessas linguagens, que atualmente vem crescendo e sendo utilizada com bastante frequência. Com o intuito de demonstrar a performance do simple-crypt, cryptography e pyAesCrypt, que foram desenvolvidos em Python, este artigo analisa a quantidade de linhas de código, o tempo de processamento e consumo de memória deles em um ambiente de máquina virtual. Palavras-chave: Criptografia. Performance. Python Abstract There are a large number of algorithms in various programming languages that have been created to encrypt messages and files in order to hide confidential information. Python is one of those languages, which is currently growing and being used quite often. In order to demonstrate the performance of simple-crypt, cryptography and pyAesCrypt, which were developed in Python, this article analyzes the number of code lines, their processing time and memory consumption in a virtual machine environment. Keywords: Cryptography. Performance. Python. mailto:pacheco.franklin9@gmail.com 1 Introdução A internet das Coisas (Internet of Things - IoT) ganhou força a partir dos avanços tecnológicos que foram surgindo ao longo do tempo e da necessidade de conectar dispositivos, de forma que eles possam automatizar serviços e funções, melhorando o cotidiano de uma forma geral e auxiliando na tomada de decisões. Estes dispositivos inteligentes (denominados de smart objects) geralmente possuem restrições de memória e processamento, muitos são alimentados por baterias e alguns estão em locais de difícil acesso, dificultando a troca dessas baterias. Tais diferenciais (em relação aos tradicionais computadores pessoais) requerem umaelevada necessidade de baixo consumo de energia e uma alta conectividade para o envio de dados, sinais e até acesso remoto. Dado o crescente desenvolvimento da IoT, e a tendência de conectividade que há, estipulações indicam que até 2020 existirão mais de 50 bilhões de dispositivos conectados, em contrapartida para este mesmo ano com 7,6 Bilhões de pessoas no mundo, logo a média será de aproximadamente 6,58 dispositivos por pessoa [EVANS, 2011]. Com esse elevado número de objetos inteligentes, a crescente quantidade de aplicações e o elevado número de dados a serem transmitidos, faz-se necessário que as soluções funcionem de forma segura e, atendendo, restrições de memória e processamento dos dispositivos. Além disso, é necessário um estudo a fim de encontrar o melhor custo benefício entre a proteção das informações e o processamento necessário para garantir a confidencialidade dos dados a serem transmitidos. Neste contexto de segurança, criptografia é o estudo e prática de métodos para comunicação segura que impedem que terceiros leiam e compreendam as informações que estão nas mensagens privadas. A criptografia tem como objetivo garantir a confidencialidade e integridade. O processo consiste em aplicar um algoritmo para codificar os dados que se deseja proteger de modo que apenas emissor e receptor consigam compreendê-lo. Antigamente, a criptografia era usada principalmente em assuntos ligados à guerra e à diplomacia. Uma das técnicas mais simples e conhecidas é a cifra de César, na qual cada letra do texto é substituída por outra. O estudo da criptografia vai além do que apenas cifrar e decifrar, a criptografia moderna é basicamente formada pelo estudo dos algoritmos criptográficos que podem ser implementados na computação. As técnicas de codificação constituem uma parte importante da segurança dos dados, pois protegem informações confidenciais de ameaças que incluem exploração por malware e acesso não autorizado por terceiros. Com as incertezas ao escolher a melhor opção dentre as bibliotecas. Este estudo analisa soluções de criptografia em Python, pois esta linguagem foi adotada para o ensino de programação nos cursos de tecnologia do IFPB, que é a instituição dos estudantes envolvidos nesta pesquisa. A intenção é investigar bibliotecas de encriptação e decriptação de dados que podem ser utilizadas no desenvolvimento de soluções seguras na área de Internet das Coisas. Para isso, foram elencados os seguintes questionamentos: a) Qual biblioteca de algoritmo de criptografia em Python será mais adequada para o desenvolvimento de aplicações que requer um rápido processamento dos dados? b) Quando um hardware tem restrições no tamanho da memória, qual biblioteca de algoritmo de criptografia em Python será mais adequada? Considerando esses questionamentos, este artigo apresenta os resultados da investigação de três bibliotecas: simple-crypt de [COOKE, 2015], pyAesCrypt de [BELLACCINI, 2015] e cryptography de [GAYNOR et al, 2019]. Os autores deste artigo criaram um programa simples para utilizar cada uma dessas bibliotecas que oferecem a implementação de soluções para criptografar dados com a linguagem Python. O objetivo geral é analisar a eficiência dessas três soluções através da medição do tempo de execução (real, usuário e kernel) e a quantidade de memória residente que foi utilizada para o processamento de cada exemplo de código. A Seção 2 apresenta a fundamentação sobre criptografia e internet das coisas. A Seção 3 apresenta a metodologia utilizadas nos experimentos. Na Seção 4 é possível observar os resultados e, por fim, na Seção 5 está a descrição das considerações finais e de trabalhos futuros. 2 Referencial teórico A segurança da informação é um conjunto de estratégias para gerenciar os processos, ferramentas e políticas necessárias para prevenir, detectar, documentar e combater ameaças às informações digitais e não digitais. Visando proteger a confidencialidade, integridade e disponibilidade dos dados daqueles com intenções maliciosas. Os três principais conceitos de segurança da informação, de acordo com [KAREN et al, 2008], são: • Confidencialidade: tem como função garantir que as informações sejam acessadas somente por aqueles que possuem autorização. Uma das formas de garantir a confidencialidade é por meio do uso de criptografia, garantindo que apenas as partes envolvidas possam visualizar a real informação. A perca da confidencialidade se dá quando alguém não autorizado obtém acesso a recursos e informações. • Integridade: é a necessidade de garantir que as informações não tenham sido alteradas acidentalmente ou intencionalmente, e que elas estejam corretas e completas, garantindo a autenticidade da informação. Isto é, mede a veracidade da informação e seus métodos de modificação, manutenção e validade. Quando a informação é alterada indevidamente ou quando não é possível garantir que a informação é a mais atualizada há perda da integridade. • Disponibilidade: garante que a informação estará disponível para acesso no momento desejado. Diz a respeito ao correto funcionamento do sistema, onde este deve permitir que a informação seja acessada quando for necessária. Há perca de disponibilidade quando é requisitada uma informação e esta não é recebida conforme o esperado. É de suma importância garantir a segurança da informação, principalmente, no âmbito da IoT tendo em vista que o acesso a informações, coletadas no ambiente remoto, deve ser feito de forma segura, visando garantir a confiabilidade, disponibilidade e integridade das informações capturadas e transmitidas pelos nós remotos. Por essa razão, diversas pesquisas foram realizadas apontando a importância do uso de mecanismos de segurança no ambiente da IoT, seja na privacidade dos dados [KOZLOV et al, 2012] ou na autenticação dos nós que fazem parte da rede [CHAVAN and NIGHOT, 2016]. Então, na IoT é necessário utilizar métodos para proteger a privacidade dos dados e, ao mesmo tempo, considerar as restrições de hardware dos dispositivos. Por isso, geralmente, os mecanismos de segurança para esses dispositivos são mais simples para prolongar o tempo de uso das baterias e serem exequíveis nos dispositivos. Por exemplo, mecanismos comuns de segurança utilizando a criptografia faz-se necessária para garantir a confidencialidade, integridade e autenticação. Existem vários tipos de criptografia, os dois tipos básicos são: a simétrica e assimétrica. A criptografia simétrica é um método de criptografia em que a chave usada é a mesma entre destinatário e receptor. [NAKAMURA e GEUS, 2007]. Esse método de criptografia é o mais antigo, a vantagem desse método é a sua simplicidade, sendo assim, de fácil implementação. Em contrapartida, o requisito de que ambas as partes possuam acesso à mesma chave secreta é uma das principais desvantagens da criptografia de chave simétrica, pois gera insegurança. Já a criptografia assimétrica utiliza duas chaves, uma privada e uma pública. A chave pública pode ficar disponível para quem quiser se comunicar com outra pessoa de forma segura, e a privada é de uso particular e deve ser guardada. [OLIVEIRA, 2012]. Esse método é mais seguro pois usa duas chaves e essa é a sua principal vantagem, a desvantagem é que esse método tem grande complexidade, dificultando a sua implementação. [SILVEIRA, 2010] comenta sobre o método de criptografia de chave pública (assimétrica) afirmando que os algoritmos de chave pública devem ser funções de difícil inversão, para que o público em geral não consiga obter a chave privada a partir da chave pública. Além disso, os inteiros envolvidos devem ser extremamente grandes,da ordem de centenas de dígitos decimais (centenas ou milhares de bits), para que um computador avançado não consiga testar todas as combinações possíveis em tempo hábil. No entanto, mesmo uma criptografia simétrica pode ser um desafio para dispositivos em IoT. Em um computador pessoal, a criptografia simétrica denominada de AES (Advanced Encryption Standard) pode ser processada várias vezes em um dia para proteger a privacidade dos dados. No entanto, executar esse mesmo AES em um dispositivo IoT pode resultar em uma rápida finalização da bateria. Portanto, é necessário utilizar mecanismos adaptados ou melhorias em algoritmos de criptografia como o trabalho de [GEREZ et al, 2018], que avalia o protocolo TLS configurado com 3 algoritmos diferentes de criptografia. Tal trabalho mostra que a escolha errada do mecanismo de encriptação pode elevar em mais de 30% o consumo de energia. Por outro lado, estava fora do escopo de [GEREZ et al, 2018] avaliar bibliotecas de criptografia que podem ser utilizadas em aplicações construídas em Python. Outro desafio da segurança no ambiente de IoT é a diversidade de aplicações que esta possibilita. Isso porque são necessários diferentes níveis de segurança para diferentes aplicações de forma que se possa oferecer soluções simples para preservar a bateria e, ao mesmo tempo, assegurar a privacidade e integridade dos dados [LAI et al, 2004]. Em termos de avaliações de soluções de criptografia, [OLIVEIRA, 2012] faz uma análise dos principais algoritmos de criptografia de cifragem simétrica e assimétrica, demonstrando suas vantagens e desvantagens. Além disso, [SILVEIRA, 2010] demonstra o papel da aritmética em precisão múltipla na criptografia de chave pública (assimétrica). Já este artigo, faz uma comparação entre o desempenho de algumas bibliotecas e algoritmos de criptografia (simple-crypt, cryptography e pyAesCrypt) presentes na linguagem Python. 3 Método da pesquisa Este trabalho é classificado, quanto à sua abordagem, como uma pesquisa quantitativa, tendo em vista que seus resultados e suas amostrar podem ser quantificadas numericamente [GERHARDT AND SILVEIRA, 2009]. Em relação a sua natureza, este trabalho é classificado como uma pesquisa aplicada, visto que tem como objetivo gerar conhecimentos para aplicação prática. Para realizar as medições, foram utilizadas três máquinas virtuais configuradas com o sistema operacional Linux Debian 9, que por sua vez utiliza-se de 2GB de RAM e 1 núcleo de processamento. Cada máquina virtual ficou responsável por executar um algoritmo, assim evitando que um possa influenciar nas medições dos outros. Foram desenvolvidos três códigos, onde cada um desses foi codificado com uma biblioteca diferente. Os nomes das bibliotecas não: simple-crypt (com o uso dos pacotes encrypt e decrypt), cryptography (com o uso do pacote Fernet) e PyAesCrypt (com o uso do pacote que possui o mesmo nome PyAesCrypt). Durante os experimentos, foi utilizado o comando //usr/bin/time --format='tempo=%E memoria= %M kernel=%S usr=%U' python3 <nome do arquivo> que por sua vez irá executar os algoritmos: simple-crypt, pyAesCrypt e cryptography (Utilizando a versão 3.5 da linguagem Python). Através desse comando é possível visualizar o tempo de execução (real, usuário e kernel) e a utilização de memória residente no processo. Esse comando foi executado dez vezes para cada algoritmo, e em seguida, foi tirada uma média do tempo de execução e memória residente, assim sendo possível avaliar o desempenho de cada um dos algoritmos, com o intuito de adquirir o melhor resultado. Especificação do comando: • %E – Exibe o tempo real para processar um programa no formato de hora, minutos e segundos; • %M – Exibe a quantidade de memória residente que foi necessária para executar o programa em bytes; • %U – Exibe o tempo para processar o programa no modo usuário em segundos; • %S – Exibe o tempo para executar o programa no modo kernel em segundos. Além dessas medições, foi contabilizado a quantidade de linhas para codificar cada solução de criptografia com as bibliotecas. Nas figuras 1, 2 e 3 são apresentados os códigos utilizados para realizar o estudo da avaliação de desempenho (total de 30 repetições para cada experimento), no qual cada experimento possuía as mesmas mensagens, para que os algoritmos pudessem ser avaliados justamente. Antes de executar o código da Figura 1 que utiliza a biblioteca simplecrypto, é necessário executar o seguinte comando no sistema operacional Debian: “pip3 install simplecrypto”. Esse comando permite a instalação da biblioteca que será utilizada pelo código da Figura 1. Figura 1- Simple-crypt Fonte: Elaboração própria. Antes de executar o código da Figura 2, é necessário executar o seguinte comando no sistema operacional Debian: “pip3 install cryptography”. Figura 2- Cryptography Fonte: Elaboração própria. Diferentemente dos códigos anteriores, antes de executar o código da Figura 3, é necessário instalar dois módulos compatíveis com a versão 3 da linguagem python: “pip3 install hashlib” e “pip3 install PyAesCrypt”. Figura 3- pyAesCrypt. Fonte: Elaboração própria. 4 Resultados da pesquisa O Quadro 1 apresenta a comparação dos códigos em relação a quantidade de linhas de código, onde não se considera as linhas em branco. É possível observar que a solução pyAesCrypt apresenta uma maior quantidade de linhas de código, sendo o dobro de linhas de código do que utiliza a biblioteca Cryptography. No gráfico a seguir, presente na Figura 4, é possível visualizar que o cryptography foi o algoritmo mais eficiente nessa avaliação do tempo de processamento. Além disso, é possível identificar que o algoritmo simple- crypt foi o mais ineficiente, pois apresentou um maior tempo para realizar o processamento do código do que os outros dois algoritmos analisados. Quadro 1 – Comparação das soluções em relação a quantidade de linhas de código NOME DO CÓDIGO QUANTIDADE DE LINHAS DE CÓDIGO Simple-crypt 8 Cryptography 7 PyAesCrypt 14 Fonte: Elaboração própria. No gráfico a seguir, presente na Figura 4, é possível visualizar que o cryptography foi o algoritmo mais eficiente nessa avaliação do tempo de processamento. Além disso, é possível identificar que o algoritmo simple- crypt foi o mais ineficiente, pois apresentou um maior tempo para realizar o processamento do código do que os outros dois algoritmos analisados. Figura 4- Média do tempo de execução Fonte: Elaboração própria. Em termos do consumo de memória, na Figura 5, vê-se que o algoritmo cryptography faz o seu melhor uso e, como consequência, torna a execução do programa mais rápido do que os demais algoritmos utilizados no experimento. Figura 5- Média do uso de memória Fonte: Elaboração própria. 5 Conclusão/Considerações O objetivo do trabalho foi apresentar um estudo comparativo de desempenho entre programas que utilizam diferentes bibliotecas para criptografia. Especificamente, foram analisados três códigos: simple-crypt, cryptography e pyAesCrypt que foram desenvolvidos na linguagem Python. Apesar de não serem executados testes com dispositivos de IoT, de acordo com os resultados das análises, aquele que apresentou os melhores resultados nos testes em máquinas virtuais é o código que utilizou a biblioteca cryptography, pois apresentou menor tempo de execução e o consumo de memória foi intermediário e apresentou uma menor quantidade de linhas de código, conforme Quadro 1. Acredita-se que o pyAesCrypt não é indicado para dispositivo de IoT com restrições em tamanho de memória, pois o programa que utilizou esta bibliotecafoi o que mais consumiu o espaço de memória durante a execução e também apresenta uma maior quantidade de linhas de código. Ou seja, o tamanho do código maior impacta no espaço de memória para armazenar o código. O código que utilizou o simple-crypt foi o que utilizou menos a memória, mas apresentou o maior tempo de execução, não sendo adequado para sistemas que precisam de um baixo tempo de resposta. Os resultados apresentados podem indicar oportunidades de melhorias tanto nos ajustes de desempenho das bibliotecas, quanto nos ajustes de desempenho dos algoritmos. Tais resultados são importantes para programadores escolherem a biblioteca que melhor atenda a expectativas e necessidades, seja esse o uso de memória ou do tempo de execução. As próximas pesquisas irão incluir a realização de testes de segurança e consumo de energia em dispositivos de IoT. Por exemplo, é possível instalar o interpretador Python em um Raspberry, bem como, utilizar os códigos deste artigo para serem executados nesse dispositivo. A intenção será não apenas comparar os resultados das bibliotecas em termos de consumo de memória e tempo de execução, mas também realizar medições do consumo de energia. Também se pretende realizar a avaliação de soluções de algoritmos que foram implementados em outras linguagens de programação que possam ser executadas em dispositivos como Arduino Nano que possuí maior restrição (menor quantidade de memória e de processamento), quando comparado com um Raspberry. Referências [BELLACCINI, 2015]. Bellaccini, M. pypi. pypi, 2018. Disponivel em: <https://pypi.org/project/pyAesCrypt/>. Acesso em: 03 Fev 2019. [CHAVAN and NIGHOT, 2016] A. Chavan and K. Nighot, "Secure and Cost-effective Application Layer Protocol with Authentication Interoperability for IOT", Procedia Computer Science, Volume 78, 2016, pp. 646-651. [CIRIACO, 2015]. Ciriaco, D. canaltech. canaltech, 2015. Disponivel em: <https://canaltech.com.br/seguranca/o-que-e- criptografia-e-por-que-voce-deveria-usa-la/>. Acesso em: 03 Fev 2019. [COOKE, 2015]. Cooke, A. pypi. pypi, 2015. Disponivel em: <https://pypi.org/project/simple-crypt/>. Acesso em: 03 Fev 2019. [EVANS, D. 2011]. Evans, D. The Internet of Things: How the Next Evolution of the Internet Is Changing Everything. 2011. Disponível em: <http://www.cisco.com/web/about/ac79/docs/i nnov/IoT_IBSG_0411FINAL.pdf>. Acesso em: 03 Fev 2019. [GAYNOR et al, 2019]. Gaynor, A., Dreid, Stufft, D. e Kehrer, P. Disponível em <https://pypi.org/project/cryptography/>. Acesso em: 03 Fev 2019. [GEREZ et al, 2018]. A. H. Gerez, K. Kamaraj, R. Nofal, Y. Liu and B. Dezfouli, "Energy and Processing Demand Analysis of TLS Protocol in Internet of Things Applications," 2018 IEEE International Workshop on Signal Processing Systems (SiPS), Cape Town, 2018, pp. 312-317. [GERHARDT AND SILVEIRA, 2009]. GERHARDT, T. E.; SILVEIRA, D. T. “Métodos de Pesquisa”. Porto Alegre: Editora UFRGS, 2009. [KAREN et al, 2008]. Karen A. Scarfone, Wayne Jansen, and Miles Tracy.“Guide to General Server Security”. Technical Report, SP 800-123. NIST, Gaithersburg, 2008, MD, United States. [KASPERSKY,2019] . kaspersky, 2019. Disponivel em: <https://www.kaspersky.com.br/resource- center/definitions/encryption>. Acesso em: 03 Fev 2019. [KOZLOV et al, 2012] D. Kozlov, J. Veijalainen and Y. Ali. "Security and privacy threats in IoT architectures. In Proceedings of the 7th International Conference on Body Area Networks" (BodyNets '12). ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), ICST, 2012, Brussels, Belgium, Belgium, 256-262 [LAI et al, 2004]. B. Lai, D. Hwang, S. Kim and I. Verbauwhede, "Reducing radio energy consumption of key management protocols for wireless sensor networks," Proceedings of the 2004 International Symposium on Low Power Electronics and Design (IEEE Cat. No.04TH8758), Newport Beach, CA, USA, 2004, pp. 351-356. [NAKAMURA e GEUS, 2007] NAKAMURA, T. E; GEUS, L. P. Segurança De Redes Em Ambientes Cooperativos. 1. ed. São Paulo: Novatec, 2007. [OLIVEIRA, 2019] Oliveira R. R. Criptografia simétrica e assimétrica: os principais algoritmos de cifragem. Revista Segurança Digital, [on-line], v. 05, p. 11-15, mar. 2012; continuação: v. 06, p. 21-24, mai. 2012. Disponível em <http://www.segurancadigital.info/>. Acesso em: 03 Fev 2019. [PYPI, 2019]. pypi, 2019. Disponivel em: <https://pypi.org/project/cryptography/>. Acesso em: 03 Fev 2019. [SILVEIRA, 2010] SILVEIRA, A. S.; FALEIROS, A. C. Criptografia de chave pública. O papel da Aritmética em precisão múltipla. São José dos Campos: Instituto Tecnológico de Aeronáutica (ITA), 2010.Relatório de Iniciação Científica. View publication statsView publication stats https://www.researchgate.net/publication/337257385
Compartilhar