• Nenhum resultado encontrado

Implementação do algoritmo criptográfico Papílio Versátil na biblioteca OpenSSL

N/A
N/A
Protected

Academic year: 2021

Share "Implementação do algoritmo criptográfico Papílio Versátil na biblioteca OpenSSL"

Copied!
90
0
0

Texto

(1)

Departamento de Informática e Matemática Aplicada Programa de Pós-Graduação em Sistemas e Computação

Mestrado Acadêmico em Sistemas e Computação

Implementação do Algoritmo Criptográfico

Papílio Versátil na Biblioteca OpenSSL

Luiz Ranyer de Araújo Lopes

Natal-RN Outubro 2019

(2)

Implementação do Algoritmo Criptográfico Papílio

Versátil na Biblioteca OpenSSL

Dissertação de Mestrado apresentada ao Pro-grama de Pós-Graduação em Sistemas e Computação do Departamento de Informá-tica e MatemáInformá-tica Aplicada da Universidade Federal do Rio Grande do Norte como re-quisito parcial para a obtenção do grau de Mestre em Sistemas e Computação.

Linha de pesquisa: Teoria da Computação

Orientador

Prof. Dr. Benjamín René Callejas Bedregal

Coorientador

Prof. Dr. Isaac de Lima Oliveira Filho

PPgSC – Programa de Pós-Graduação em Sistemas e Computação DIMAp – Departamento de Informática e Matemática Aplicada

CCET – Centro de Ciências Exatas e da Terra UFRN – Universidade Federal do Rio Grande do Norte

Natal-RN Outubro 2019

(3)

Lopes, Luiz Ranyer de Araújo.

Implementação do algoritmo criptográfico Papílio Versátil na biblioteca OpenSSL / Luiz Ranyer de Araújo Lopes. - 2019. 88f.: il.

Dissertação (mestrado) - Universidade Federal do Rio Grande do Norte, Centro de Ciências Exatas da Terra. Departamento de Informática e Matemática Aplicada, Programa de Pós-Graduação em Sistemas e Computação. Natal, 2019.

Orientador: Benjamín René Callejas Bedregal. Coorientador: Isaac de Lima Oliveira Filho.

1. Computação Dissertação. 2. Segurança da informação Dissertação. 3. Criptografia Dissertação. 4. OpenSSL -Dissertação. I. Bedregal, Benjamín René Callejas. II. Oliveira Filho, Isaac de Lima. III. Título.

RN/UF/CCET CDU 004

Catalogação de Publicação na Fonte. UFRN - Biblioteca Setorial Prof. Ronaldo Xavier de Arruda - CCET

(4)

I e e a d A C f c Pa Ve a B b eca O e SSL

E a D e a f ada ade ada a a a b e d de e e e S e a e C a e a ada e a f a f a e P a a de P -G ad a e S e a e C a d De a a e de I f ca e Ma e ca A cada da U e dade Fede a d R G a de d N e.

______________________________________________________________________ P e de e: D . BENJAM N REN CALLEJAS BEDREGAL

(O e ad - UFRN) __________________________________________________________ P f . D . A e Maga de Pa a Ca (C de ad a d P a a) Ba ca E a i ad a ______________________________________________________________________ E a ad : D . AUGUSTO JOS VEN NCIO NETO

(UFRN)

______________________________________________________________________ E a ad : D . ISAAC DE LIMA OLIVEIRA FILHO

(UERN)

______________________________________________________________________ E a ad a: D a. KARLA DARLENE NEPOMUCENO RAMOS

(UERN)

(5)

deu apoio e força para conclusão sendo um exemplo de dedicação e força, acadêmica e pessoal. Também dedico aos meus Pais e irmãos.

(6)

A Deus e todos os Guias de luz, que me protegem e me guardam.

Ao meu Orientador, Prof.Dr. Benjamin Rene Callejas Bedregal, pela oportunidade, dedicação, paciência e motivação durante todo o processo de elaboração dessa dissertação; Ao meu coorientador, Prof.Dr. Isaac de Lima Oliveira Filho, que antes de ser meu coorientador é uma excelente amigo, e por muitas vezes aliviou o peso das incertezas desta etapa, me encaminhando para a construção desta dissertação;

Ao Prof.Dr. Augusto José Venâncio Neto, que foi um excelente supervisor, me auxi-liando e apoiando, cedendo um espaço em seu laboratório e muitas vezes me orientando, em momentos de dúvidas, obrigado sempre, pelas palavras e amizade;

A funpec, pelo apoio parcial na etapa final deste trabalho, que foi de grande ajuda; A minha esposa Liliane Ribeiro da Silva pelo companheirismo, amor, apoio e força. Por ser essa mulher forte e determinada, que abriu meus olhos para coisas além do que eu queria ver, muito obrigado pela paciência e cuidado.

Aos meus pais Regina Maria de Araújo Lopes e Luiz Otávio Vieira Lopes, pela criação e educação e todo amor que me é proporcionado são meus heróis, aos meus irmãos Luana Rachel de Araújo Lopes, que sempre foi um exemplo para mim, e Lucas Rafael de Araújo Lopes que é nosso pacotinho e sobrinho Luiz Otávio Vieira Lopes Neto, que sempre é felicidade desdo momento em que veio ao mundo. Obrigado por entender minha ausência em alguns momentos deste período e de todo Amor retribuído, incondicional.

Aos meus amigos de Salvador do grupo “QP” Taís, Marcelo, Carol, Flávio, Bianca, Adailton, Camila e Cason, amigos de longas caminhadas e conversas.

Meus amigos de Natal do “Hissatsus” que sempre garantiram ótimas risadas e diversão, e muitos companheiros de profissão, Tainá, Hand, Igor, Camila, Dennel, Gabriel, Prentice, Guilherme, Matheus e outros vários.

Aos amigos para todas as horas que considero uma família Ronildo Pinheiro e Deuziane Cruz e ao casal de fofos tem aquele abraço aconchegante André Castro e Elisa Dias.

(7)

Wanderson, Lucas, Douglas, Alisson, Marcílio, Matheus, Átalo e em especial Ailson e Do-mingo, que sempre deram apoio necessário e pela forma que procuram ajudar solucionando problemas que não conseguimos mais ver;

Aos professores do DIMAp pela contribuição na minha formação como aluno e pessoa; Aos funcionários do DIMAp por facilitarem a minha vida;

Aos parentes Avós, Tios, primos que de alguma forma contribuíram para minha edu-cação, emanando sempre força positiva;

E a tantos outros que contribuíram de alguma forma na minha vida, por mais que não tenham sido mencionados aqui, muito obrigado.

(8)
(9)

Versátil na Biblioteca OpenSSL

Autor: Luiz Ranyer de Araújo Lopes Orientador(a): Pro. Dr. Benjamín René Callejas Bedregal Coorientador(a): Pro. Dr. Isaac de Lima Oliveira Filho

Resumo

Em um mundo globalizado e altamente exposto, a informação é um dos bens mais valiosos no mundo. Com o crescente aumento das tecnologias de informações e o grande volume de dispositivos conectados e interligados à internet surge à internet das coisas (IoT), o que contribui com o crescimento da quantidade de dados transmitidos, com os ataques cibernéticos passando a pertencer ao cotidiano das empresas e das pessoas. Estes ataques podem representar riscos diretos aos usuários. Desta forma, existe uma demanda crescente em manter essas informações livres de riscos e perigos quanto à sua integridade, à sua autenticidade e à sua confidencialidade.

Nesse sentido, a segurança da informação busca a proteção dessas informações imple-mentando políticas de segurança e mecanismos de proteção de dados, que devem contem-plar o adequado equilíbrio dos aspectos humanos e técnicos da segurança da informação. Sobre os mecanismos de proteção, a criptografia é um dos mais utilizados para a mantê-los seguros, está diretamente relacionada aos tipos de algoritmos criptográficos, que podem ser utilizados nos mais diversos contextos. Neste caso, aborda-se o uso de algoritmos criptográficos inseridos no processo de comunicação entre cliente/servidor via ferramenta OpenSSL.

Com o intuito de investigar o nível de segurança oferecido pelo OpenSSL, este tra-balho aborda a integração do algoritmo de criptografia Papílio Versátil ao conjunto de cifras integradas ao próprio OpenSSL. Além disso, busca-se mensurar o nível de segurança inerente ao uso do Papílio Versátil dentro do processo de proteção na transmissão de da-dos entre cliente e servidor. Através de uma avaliação experimental, foi possível validar

(10)

pequeno acréscimo médio em termos de latência, mas esse custo é compensado através da ampliação da segurança na plataforma.

(11)

Algorithm in the OpenSSL Library

Author: Luiz Ranyer de Araújo Lopes Supervisor: Pro. Dr. Benjamín René Callejas Bedregal Cosupervisor: Pro. Dr. Isaac de Lima Oliveira Filho

Abstract

In a globalized and highly exposed world, information is one of the most valuable assets in the world. With the increasing increase of information technologies and the large volume of connected and interconnected devices, internet of things (IoT), which contributes to the growing amount of transmitted data, cyber attacks have become part of the daily lives of businesses and people. . These attacks can pose direct risks to users. Thus, there is a growing demand to keep this information free of risks and dangers regarding its integrity, authenticity and confidentiality.

In this sense, information security seeks to protect this information by implementing security policies and data protection mechanisms, which must address the appropriate balance of human and technical aspects of information security. About the protection mechanisms, encryption, one of the most used to keep them safe. This protection is directly related to the types of cryptographic algorithms that can be used in the most diverse contexts. In this case, we approach the use of cryptographic algorithms inserted in the process of communication between client / server via OpenSSL tool.

In order to investigate the level of security offered by OpenSSL, this paper addresses the integration of the Papillium Versatile encryption algorithm to the set of ciphers inte-grated with OpenSSL itself. In addition, we seek to measure the level of security inherent in the use of Versatile Papillion, within the process of protection in data transmission between client and server. Through an experimental evaluation it was possible to validate the implementation performed. It can be observed that the requests made had a small average increase in latency, but this cost is offset by the increased security on the platform. Keywords: Network Security, Cryptography, OpenSSL, SSL/TLS .

(12)

1 Incidentes reportados. . . p. 25 2 Incidentes reportados ano de 2017. . . p. 26 3 Método de criptografar um dado. . . p. 34 4 Método de decriptação de um dado. . . p. 34 5 Método de criptografia de chave simétrica. . . p. 36 6 Método de criptografia de chave assimétrica. . . p. 38 7 Caminho, através dos sistemas, de Berlim a San José. . . p. 41 8 Caminho físico da Califórnia à Alemanha. . . p. 42 9 SSL foi desenvolvido juntamente com os primeiros navegadores web. . . p. 43 10 O protocolo considerado como uma nova camada na arquitetura TCP/IP. p. 44 11 Utilização do SSL por outras tecnologias. . . p. 44 12 Estabelecimento de uma conexão segura com SSL. . . p. 47 13 Representação de um volta do Algoritmo Papílio. . . p. 52 14 Estrutura do codificador. . . p. 55 15 Papílio (tradicional) x PapílioXP na avalanche. . . p. 58 16 Geração de Subchaves no Papílio Versátil. . . p. 60 17 Cenário estabelecido para a testes. . . p. 63 18 Servidor ReginaLAB. . . p. 64 19 Destaque do subdiretório do Papílio. . . p. 66 20 Listagem do subdiretório Papílio. . . p. 66 21 Implementação do arquivo Makefile. . . p. 67 22 Suporte engine. . . p. 67

(13)

24 Registro da cifra. . . p. 69 25 Novas ID’s. . . p. 70 26 Implementação na matriz Aliases. . . p. 70 27 Chamada do Papílio. . . p. 71 28 Identificação da biblioteca. . . p. 71 29 Página web - www.papilio.com.br. . . p. 72 30 Saída do comando ciphers -v. . . p. 75 31 Arquivo teste no diretório /home/ubuntu do servidor. . . p. 76 32 Conteúdo inicial do arquivo. . . p. 76 33 Arquivo criptografado no diretório. . . p. 77 34 Arquivo teste.txt criptografado. . . p. 77 35 Comando speed no openssl para o Papílio. . . p. 79 36 Cifras disponíveis para a comunicação Cliente. . . p. 81 37 Cifras disponíveis para a comunicação. . . p. 82 38 Tabela comparativa das cifras simétricas. . . p. 83 39 Gráficos de comparação das cifras simétricas. . . p. 84

(14)

1 Principais algoritmos criptográficos simétricos. . . p. 37 2 Principais algoritmos criptográficos assimétricos. . . p. 39 3 Exemplo de execução do algoritmo Viterbi Modificado. . . p. 54 4 Resultado do algoritmo desenvolvido. . . p. 56

(15)

HFC – Hybrid Fiber Coax EAD – Educação a distância IoT – Internet of Things SSL – Secure Socket Layer TLS – Transport Layer Security

CoAP – Constrained Application Protocol MQTT – Message Queue Telemetry Transport LWM2M – OMA Lightweight M2M

CERT.br – Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil

Web – World Wide Web DoS – Denial of Service SSH – Secure Shell

TCP – Transmission Control Protocol RDP –Remote Desktop Protocol FTP – File Transfer Protocol

ADSL – Assymetrical Digital Subscriber Line IMAP – Internet Message Access Protocol SMTP – Simple Mail Transfer Protocol CMS – Content Management System SO – Sistema Operacional

(16)

NIST – National Institute os Standards and Technologies IBM – International Business Machines

3DES – Triplo Data Encryption Standard RC2 –Rivest-Shamir-Adleman

IDEA – International Data Encryption Algorithm AES – Advance Encryption Standard

SHA1 (Secure Hash Algorith,) MD5 (Message-Digest algorithm 5)

(17)

1 Introdução p. 18 1.1 Motivação . . . p. 20 1.2 Objetivo . . . p. 21 1.3 Revisão Bibliográfica . . . p. 22 1.4 Organização do Trabalho . . . p. 24 2 Fundamentação Teórica p. 25 2.1 Riscos à Segurança . . . p. 25 2.2 Segurança da Informação . . . p. 29 2.3 Criptografia . . . p. 31 2.4 OpenSSL . . . p. 40 2.5 Justificativa para a Necessidade do Protocolo . . . p. 41 2.6 Surgimento do SSL . . . p. 42 2.7 Arquitetura, Propriedades e Funcionamento . . . p. 45 2.8 TLS - O sucessor do SSL . . . p. 49

3 Algoritmo Papílio Versátil p. 51

3.1 Papílio Original . . . p. 51 3.2 PapilioXP . . . p. 56 3.3 Papílio Versátil . . . p. 59 3.4 Criptoanálise Diferencial do Papílio . . . p. 60

(18)

4.2 Cenário . . . p. 63 4.3 Metodologia do Desenvolvimento . . . p. 64 4.4 Etapas Desenvolvidas . . . p. 65

5 Experimentos p. 74

5.1 Arquitetura de Desenvolvimento e de Testes . . . p. 74 5.2 Compatibilidade . . . p. 74 5.3 Performance . . . p. 78 5.4 Conectividade SSL/TLS . . . p. 80 5.5 Comparação de algoritmos de criptografia . . . p. 82

6 Considerações Finais p. 85

6.1 Conclusões . . . p. 85 6.2 Trabalhos Futuros . . . p. 86

(19)

1

Introdução

O tema segurança da informação tem se tornado cada vez mais conhecido, à medida que as pessoas e organizações mantêm seus dados processados, salvos ou disponíveis no ambiente computacional, com esses dados estando sempre disponíveis a qualquer momento de necessidade, para a realização de negociações ou uso pessoal.

Uma das questões mais importantes quando se trata de informação é a segurança, independentemente dessa informação estar no ambiente de tecnologia ou em ambiente convencional. A informação é o recurso que move o mundo, sendo muito mais que um conjunto de dados. O ato de transformar dados em informação é transformar algo em um recurso de valor para a vida toda. A informação é um bem, que deve ser protegido com cuidados por meio de políticas e regras, de maneira similar a que os recursos financeiros e materiais são tratados.

A internet proporcionou uma série de facilidades para seus usuários; do seu advento até os dias atuais, já ocorreram muitas inovações, dentre elas os serviços de mensagens instantâneas, e-mail, vendas, computação em nuvem etc. A internet é utilizada de maneira natural para vários fins, nos quais é quase impossível imaginar a vida sem ela. A forma de se comunicar foi completamente modificada: antigamente, os principais meios de co-municação eram as cartas/telegramas ou telefonemas (telefones analógicos). Atualmente, a maioria da população utiliza o aparelho celular (smartphone) para realizar várias fun-ções, como envio de e-mails, postar fotos através de aplicativos sociais, comunicação com várias pessoas ao mesmo tempo e, em ocasiões ocasiões mais “especiais” ou “importantes”, realizar um ligação.

A popularização da internet veio principalmente através da melhoria dos serviços de telefonia, como telefonia móvel, disponibilidade de internet em alta velocidade para residências, roteadores com tecnologia Wireless1 e implementação e popularização da rede

HFC. 2 A crescente modernização dos serviços de telefonia, entre eles a internet, tem 1Rede sem fio, tecnologia para promover a mobilidade

(20)

impactado em várias áreas da economia mundial, com o surgimento de empresas de vendas de produtos/serviços pela internet (e-commerce), a popularização do modelo EAD e com possibilidades de reuniões com pessoas em localizações geográficas diferentes (vídeo conferência). Desses exemplos de impacto, destacam-se os serviços na categoria comércio eletrônico (e-commerce).

Esses serviços lidam com uma grande quantidade de dados, denominamos como da-dos sensíveis, dada-dos bancários, informações sigilosas de empresas ou pessoais, entre outras. Estes dados transitam pela rede desde a sua criação. Com isso, o número de crimes ciber-néticos também vem aumentando, acontecendo no momento em que são disponibilizados dados de cartões, dados bancários, ou em uma simples troca de e-mail.

Além de conectar pessoas, a internet está vivenciando uma nova fase, em que não ape-nas pessoas com o auxilio dos seus dispositivos, como computadores, notebooks, smartpho-nes e tablets conectam-se, mas qualquer outro equipamento, como eletrodomésticos, auto-móveis, máquinas, sensores, atuadores e outros produtos em geral, são capazes de realizar a conexão com a internet. Essa nova fase da internet também é conhecida como internet das coisas IoT. Segundo (KHAN et al., 2012), a Internet das Coisas dispõe de conectividade para toda e qualquer pessoa e para toda e qualquer coisa em qualquer tempo e lugar.

A extraordinária potencialidade da Internet das Coisas é o poder que confere a objetos do uso cotidiano, tornando-os capazes de coletar, processar, armazenar, transmitir e expor informações. Interligados em uma rede, estes objetos são habilitados para exercer ações de forma independente e gerar dados em quantidade e diversidade exponenciais. Nesse cenário, a informação passa a ser um aspecto do ambiente, e caracteriza-se em novos contornos de comportamento das pessoas no mundo.

Com todo esse avanço nos serviços de internet e a quantidade de dispositivos que po-dem se conectar, é necessário que exista certo nível de segurança e a criptografia trabalha para que as informações trafeguem de forma mais segura e a comunicação desses dispo-sitivos interligados através do IoT seja eventualmente segura. Algoritmos de criptografia trabalham a todo o momento em cima desses paradigmas (tráfego e comunicação segura), para tentar manter a segurança em diferentes meios de comunicação e armazenamento.

Assim como na vida real, algumas informações necessitam de privacidade, o que mos-tra a necessidade em garantir a confidencialidade dessas informações, tornando-as seguras. Nesse sentido, a segurança da informação visa manter estes dados protegidos, empregando técnicas de proteção e respeitando as diretrizes de segurança que devem ser seguidas em internet em alta velocidade.

(21)

qualquer sistema de informação. Sendo a forma mais utilizada para prover a segurança em pontos vulneráveis na rede, a criptografia é utilizada para barrar as ameaças e os ataques, fornecendo técnicas para codificar e decodificar dados, a fim de que esses dados possam ser armazenados, transmitidos e recuperados sem sua alteração ou exposição.

A RFC 2828 (Request for Coments no 2828) define o termo criptografia como a

ci-ência matemática que lida com a transformação de dados para mudar seu significado em algo ininteligível para o inimigo, isto é, esconder seu conteúdo semântico prevenindo sua alteração ou o seu uso sem autorização (SHIREY, 2000) por exemplo, quando uma pessoa realiza uma compra pela internet, os dados são processados pelas aplicações de redes e armazenados em servidores. A transferência dos dados para a rede deve ser protegida para evitar perda de informação sensível. Esta proteção pode ser alcançada via utilização de técnicas de encriptação de dados, como por exemplo o SSL e o TLS nesse sentido, o SSL utiliza algoritmos criptográficos que aplicam a proteção de dados sobre o canal de transmissão.

Através de uma implementação de códigos abertos dos protocolos SSL/TSL, a bibli-oteca OpenSSL realiza a implementação de funções básicas de criptografia, disponibili-zando, assim, várias funções utilitárias (OPENSSL.ORG, 2018).

1.1

Motivação

O crescimento da IoT fomentou criações de aplicações, aparelhos, sensores e outros para tornar tudo conectado. Esse crescimento também apresenta uma discussão que en-volve segurança, em relação à comunicação desses dispositivos, assim como a integração de novos dispositivos. Todas as tecnologias que utilizam IoT dependem diretamente de conectividade e segurança, pois, para que a IoT funcione, é necessário uma conexão entre equipamentos e, sempre que se fala em conectar algum dispositivo na rede, a segurança é algo a ser considerado.

Alguns protocolos já são bastante conhecidos e são utilizados com frequência em aplicações IoT, como o CoAP, MQTT e o LW2M. Em relação à criptografia usada em comunicação na rede de computadores, é comum encontrar a biblioteca OpenSSL, que possui vários algoritmos criptográficos, sendo aceita por várias aplicações.

O nível de proteção do SSL está diretamente relacionado aos tipos de algoritmos criptográficos utilizados na comunicação entre o cliente e o servidor. Desse modo, ao utilizar algoritmos mais robustos, o protocolo SSL fornece, consequentemente um nível

(22)

maior de proteção. Assim, ao inserir outros algoritmos criptográficos com maiores níveis de segurança à sua base de cifras, é possível melhorar o nível de segurança do próprio protocolo.

Nesse sentido, decidiu-se integrar o algoritmo de criptografia Papílio Versátil (NETO, 2009) na biblioteca OpenSSL, tornando-o um possível algoritmo usual nesta biblioteca. Deste modo, é possível provar que o Papílio Versátil é um algoritmo capaz de realizar as funções de encriptação e decriptação, promovendo ao OpenSSL um aumento no nível de proteção dos dados, através de características criptográficas. Apesar dos trabalhos desenvolvidos e suas variantes, entre elas o Papílio Versátil (RAMOS, 2002), (ARAÚJO, 2003), (ARAÚJO et al., 2005) (NETO, 2009), (FILHO, 2010) e (FILHO, 2014) em nenhum deles abordou uma integração do algoritmo, com uma biblioteca específica para proteção de dados. Desta forma, surgiu a oportunidade de realizar tais estudos, obtendo resultados práticos para a implementação do Papílio Versátil na biblioteca OpenSSL.

1.2

Objetivo

O principal objetivo deste trabalho é contribuir no aumento ou melhoria da segurança da Biblioteca OpenSSL incluindo o algoritmo Papílio Versátil, visto que, por ser um algoritmo desconhecido pode possuir algumas vantagens em sua utilização, já que não possui estudos para a quebra de sua criptografia. Nesse contexto, empreendemos a, os testes realizados e a comparação com outros algoritmos utilizados na biblioteca OpenSSL, em que, através desta investigação, conclui-se que o Papílio pode contribuir e realizar a comunicação segura juntamente com a referida biblioteca.

A relação de objetivos específicos que esta implementação pode ocasionar está relaci-onada da seguinte maneira:

• Provar que a implementação é possível;

• Realizar a troca de mensagens SSL/TLS, mostrando que é realizada de forma segura;

Tal estrutura pode provar que todos os esforços para a realização deste trabalho são essenciais para sua conclusão.

(23)

1.3

Revisão Bibliográfica

Durante o tempo de pesquisa sobre bibliografias, para ajudar a realização desta dis-sertação, as fontes de grande importância para nortear a pesquisa foram:

1. Ramos, em "Papílio: proposta de um algoritmo de criptografia baseado no algoritmo Viterbi e codificação convolucional"(2002), desenvolveu estudos usando o algoritmo Viterbi Modificado como função F do codificador Feistel, a fim de atingir os princí-pios de difusão e confusão do codificador Feistel. Além da função F, Viterbi Modi-ficado também é utilizado para geração das sub-chaves. Ela desenvolveu o Papílio, que é uma algoritmo do tipo convencional, em que o processo para cifrar o texto claro é realizado em blocos. Para cada bloco de entrada é produzido um bloco de saída (RAMOS, 2002).

2. Araújo, em "PapílioXP: uma extensão do algoritmo criptográfico Papílio"(2003), propôs uma variante do algoritmo Papílio adicionando a capacidade de variar o modo como cifrar os textos dependendo do texto o qual se está cifrando e de maneira que atinja os melhores índices criptográficos possíveis, afim de que seja aumentada a dificuldade de se conseguir quebrar a mensagem codificada. (ARAÚJO, 2003). 3. Araújo et al., em "Papílio cryptography algorithm"(2005), apresenta o algoritmo

como um algoritmo de criptografia Feistel, em que o processo codificador (função F) é baseado no algoritmo Viterbi. Também expõe a solução do algoritmo Viterbi para decodificar códigos convolucionais e explica a necessidade da realização de algumas modificações no Viterbi, além de realizar uma análise dos índices criptográficos (ava-lanche, difusão e confusão) do Papíllio, considerando todos os possíveis polinômios diferentes e fixando os demais parâmetros. (ARAÚJO et al., 2005).

4. Neto, em "Papílio Versátil: Um algoritmo criptográfico"(2009), realizou um estudo acerca do algoritmo PapílioXP de Araújo (2003), em que, onde as implementações feitas trouxeram uma maior versatilidade e segurança contra a criptoanálise. Nesta variante do Papílio, foi alterado o modo de construção de sub-chaves do Papílio, que processa blocos de 16 Bytes (128 bits) de tamanho, permitindo utilizar chaves de tamanho entre 16 Bytes (128 bits) e 128 Bytes (1024 bits). (NETO, 2009), (ARAÚJO, 2003).

(24)

5. Oliveira apresentou "Criptoanálise diferencial do Papílio"(2010), em que aplicou-se a técnica de Criptoanáliaplicou-se Diferencial, introduzida por Biham e Shamir, sobre o algoritmo Papílio, a fim de testar e, principalmente, provar sua relevância em relação a outras cifras de blocos como DES, Blow-Fish e FEAL-N(X). (FILHO, 2010). 6. Oliveira, em "Algoritmo Papílio como método de proteção de templates para

au-mentar a segurança em sistemas de identificação biométricos"(2014), promove a utilização simultânea de criptografia com o Algoritmo de Criptografia Papílio, junto com os modelos de proteção de templates Fuzzy Vault e Fuzzy Commitment em sistemas de identificação baseados em biometria. (FILHO, 2014).

7. Niemiec, em "Implementation of a New Cipher in OpenSSL Environment the Case of INDECT Block Cipher"(2016), realiza a implementação de uma nova cifra na biblioteca de criptografia popular para amplo uso, em que é descrito o processo de integração da nova cifra à Biblioteca OpenSSL. A cifra implementada é a INDECT Block Cipher (IBC), uma cifra de bloco simétrica baseada em substituição. Alegando que é possível integrar qualquer cifra simétrica no ambiente OpenSSL, o objetivo da implementação é permitir o uso de uma nova cifra em aplicativos usando bi-bliotecas OpenSSL, especialmente para criptografar dados em SSL/TLS Conexões.

(JURKIEWICZ; NIEMIEC, 2016).

8. Também foi utilizado a implementação do algoritmo de criptografia Camellia através da RFC 5932 (KATO; KANDA; KANNO, 2010), que especifica o conjuntos de cifras para o Protocolo TLS a fim de suportar a criptografia do algoritmo Camellia, o qual também é uma cifra de bloco. Ele altera o conjunto original de cifras da RFC 4132 através da introdução de contrapartes usando os mais recentes algoritmos de criptografia hash.

9. Caio, em "Ampliando a segurança de aplicações para a Internet das Coisas baseadas na plataforma FIWARE"(2018), direciona o estudo para a incorporação da arquite-tura de serviços de segurança fim-a-fim através do uso de cifragem e do controle de acesso em todas as requisições NGSI. Realizando a implementação em NodeJs do suporte ao DTLS 1.2 no protocolo LWM2M/CoAP com o IoT Agent, ele permite que outros protocolos possam se beneficiar dos resultados obtidos. (OLIVEIRA et al., 2018).

10. Em "Internet das Coisas"– Um estudo sobre questões de segurança, privacidade e infraestrutura"(2016), Vitor apresenta um estudo sobre algumas questões básicas

(25)

da nova fase da internet, a internet das coisas. Abordando questões relevantes à segurança da informação e dos dados, apresentando alguns mecanismos para a pro-teção em IoT e relata uma análise sobre a infraestrutura da internet das coisas, seus desafios e obstáculos que retardam o seu desenvolvimento e os principais padrões utilizados nas suas implementações.(FIGUEIRA, 2016).

11. Luis, em "Arquitetura para privacidade na integração de Internet das Coisas e com-putação em nuvem"(2018), propõe uma arquitetura de privacidade em Cloud of Things, permitindo ao usuário o controle completo do acesso aos dados gerados pelos dispositivos de suas redes IoT e armazenados na nuvem. Ele desenvolve a di-minuição da sobrecarga nos dispositivos IoT, além de avaliar a análise analítica e experimental, utilizando o simulador de redes ns-3 para prover privacidade na Cloud of Things. (PACHECO, 2018).

1.4

Organização do Trabalho

Neste capítulo, foi apresentado o escopo do trabalho, juntamente com suas motivações e objetivos, e uma rápida revisão bibliográfica. No Capítulo 2, serão apresentados os conceitos fundamentais de enriquecimento sobre o tema, como segurança da informação, criptografia e seus sistemas criptográficos. No Capítulo 3, será abordado o algoritmo em questão, no caso o Papílio Versátil, juntamente com algumas características do mesmo. As versões Papílio Original e PapílioXP, assim como sua criptoanálise diferencial, também serão abordadas neste capítulo. O Capítulo 4 trata da aplicação do Papílio no protocolo SSL, juntamente com uma justificativa para a necessidade de se usar este protocolo, explanando sua arquitetura, o processo de comunicação (Handshake3) e o seu sucessor, o TSL, finalizando com o OpenSSL. O Capitulo 5 aborda os experimentos realizados neste trabalho, com sua metodologia, sua arquitetura de testes, as etapas desenvolvidas. Por fim, no Capitulo 6, trazemos as considerações as considerações finais e trabalhos futuros.

3Permissão com a qual o cliente e o servidor SSL ou TLS estabelecem as chaves secretas com as quais

(26)

2

Fundamentação Teórica

A seguir, serão apresentadas informações e conceitos básicos sobre segurança da in-formação, juntamente com seus principais serviços. Em seguida, serão apresentados os conceitos sobre IoT, criptografia e protocolos.

2.1

Riscos à Segurança

Segundo o CERT.br, a quantidade de incidentes reportados nos últimos anos, espe-cificamente de 2016, foi de 647.112 contra 833.775 do ano de 2017, ou seja, ocorreu um aumento de 29%. Na Figura 1, é possível acompanhar a evolução dessas ameaças ao longo dos anos, a qual demonstra que as ameaças relacionadas a problemas de segurança estão mais presente a cada dia.

Figura 1: Incidentes reportados. Fonte:CERT.Br (2018).

Pode-se observar que as taxas de crescimento aumentaram de um ano para o outro. Por exemplo, na comparação entre os anos 2012 e 2013, e tal foi 24% menor que o total do anterior, porém 2014 foi 197% maior que o total de 2013. Percebe-se, que 2014 é o ano de maior número de incidentes reportados, com 1.047.031 até o momento, sendo justamente

(27)

o ano da falha de segurança no OpenSSL, a Heartbleed1.

Com isso, pode-se dizer que a preocupação com a segurança da informação teve início na antiguidade, com o surgimento da escrita, sobretudo no que se refere ao aspecto da confidencialidade da informação. Com o crescimento do número de pessoas com a ha-bilidade de ler e escrever por meio de símbolos, logo percebeu-se a necessidade de duas pessoas poderem trocar informações sem que outras pudessem lê-las.

Em relação aos tipos de ataques, o gráfico referente ao ano de 2017 mostra que existiu uma diminuição em alguns tipos de ataques em relação ao ano de 2016. Na análise de alguns fatos observados nesse período, como ataques de negação de serviço, tentativas de fraude, varreduras e propagação de códigos maliciosos, ataques a servidores Web, com-putadores comprometidos e outros incidentes reportados, a Figura 2 ilustra a proporção de cada tipo de ataque com respeito ao total de ataques no ano de 2017.

Figura 2: Incidentes reportados ano de 2017. Fonte: Cert.br (2018).

Para melhorar o entendimento da Figura 2, o CERT.br realizou uma pequena análise dos fatos observados neste período, agrupados por categorias de incidentes:

• Ataques de Negação de Serviço.

– No ano de 2017, 220.188 notificações sobre computadores que participaram de ataques de negação de serviço DoS. Este número foi quase 4 vezes maior que

1Através de uma extensão chamada heartbeat, que mantém ativa uma conexão segura. Por meio da

(28)

o número de notificações recebidas em 2016;

– A maioria das notificações de ataques de DoS foi recebida em julho de 2017, referente a um ataque originado por equipamentos de IoT (Internet das Coisas) infectados e fazendo parte de botnets2.

• Tentativas de Fraude.

– As notificações de tentativas de fraude totalizaram 59.319 incidentes em 2017, correspondendo a uma queda de 42% em relação a 2016;

– Em 2017, as notificações de casos de páginas falsas de bancos e sites de comércio eletrônico (phishing clássico) caíram 46% em relação a 2016;

– As notificações sobre Cavalos de Troia, utilizados para furtar informações e credenciais, tiveram uma queda de 7% em relação ao ano de 2016;

– Em 2017, o número de notificações de casos de páginas falsas que não envolvem bancos e sites de comércio eletrônico teve um aumento de 6% em relação a 2016. Nesses casos, estão incluídos os serviços de webmail e redes sociais, por exemplo.

• Varreduras e propagação de códigos maliciosos.

– As notificações de varreduras somaram 443.258 em 2017, correspondendo a um aumento de 15% com relação a 2016;

– Os serviços que podem sofrer ataques de força bruta continuam sendo muito visados: SSH (22/TCP com 47% das notificações de varreduras, TELNET (23/TCP) com 9%, RDP (3389/TCP) com 2% e FTP (21/TCP) com 1% das notificações em 2017;

– As varreduras de TELNET (23/TCP), bem como o par de varreduras 23/TCP e 2323/TCP, que continuam a ter destaque desde 2015, correspondem a 14% das notificações e parecem visar dispositivos IoT e equipamentos de rede alocados às residências de usuários finais, tais como modems (ADSL, cabo e fibra), roteadores Wi-Fi etc.;

– As notificações de varreduras de SMTP (25/TCP), que em 2016 correspondiam a 30% de todas as varreduras, agora correspondem a 21%. As portas IMAP (143/TCP) e Message Submission (587/TCP) correspondem respectivamente a 3% e 1% das notificações;

2Grupo de computadores conectados à Internet, cada um deles rodando um ou mais bots e se

(29)

– As varreduras de SMTP (25/TCP) são relativas a 3 tipos de abuso: tentativas de envio de e-mails com uso de dicionários de nomes de usuários; exploração de servidores de e-mail como open-relays; e ataques de força bruta para envio de mensagens utilizando credenciais de usuários existentes nos sistemas atacados; – As varreduras de IMAP (143/TCP) e Message Submission (587/TCP) são relativas a ataques de força bruta para obtenção das credenciais de usuários existentes nos sistemas atacados e posterior envio de e-mail utilizando as cre-denciais descobertas;

– As notificações de atividades relacionadas com a propagação de worms e bots (categoria worm) totalizaram 45.101 em 2017, aumento de 60% em comparação com 2016.

• Ataques a servidores Web.

– No ano de 2017, houve um aumento de 10% nas notificações de ataques a servidores Web em relação a 2016, totalizando 60.766 notificações;

– Os atacantes exploram vulnerabilidades em aplicações Web para comprometer sistemas e então realizar as mais diversas ações, tais como: hospedar páginas falsas de instituições financeiras, armazenar ferramentas utilizadas em ataques, e propagar spam e/ou scam;

– Observa-se que, durante o ano de 2017, um aumento das notificações de ataques de força bruta contra sistemas de gerenciamento de conteúdo CMS tais como WordPress e Joomla foram, em sua maioria, tentativas de adivinhação das senhas das contas de administração destes sistemas.

• Computadores comprometidos.

– Em 2017, 401 notificações de máquinas foram comprometidas. Este total foi 76% menor do que o número de notificações recebidas em 2016;

– A maioria das notificações de computadores comprometidos foi referente a servidores Web que tiveram suas páginas desfiguradas.

• Outros incidentes reportados.

– Em 2017, 4.742 notificações que se enquadram na categoria "outros"corresponderam a um número 68% menor que o total de 2016.

(30)

Todas as estatísticas dos incidentes apresentadas pelo CERT.br demonstram que as ameaças de segurança estão presentes a cada dia, e as empresas precisam se conscientizar desse aumento, justificando a implementação de segurança da informação.

2.2

Segurança da Informação

A segurança da informação visa aplicar medidas de proteção para os dados, sendo eles processados, armazenados ou transmitidos nos sistemas de informação ou comunicações. Independente do tipo de sistema utilizado, busca-se sempre proteger essa informação do uso indevido (intencional ou acidental) por parte de quem manipule esses dados. A vulnerabilidade ou falha de segurança pode acontecer por meio de um “bug”3 em um

sistema operacional ou aplicação, ou através de uma atualização que foi realizada sem os devidos testes, como em um servidor Web ou em servidor com qualquer SO.

Um usuário que tem sua respectiva senha divulgada de maneira indevida ou descui-dada também indica uma vulnerabilidade. Por exemplo, um determinado funcionário pode sabotar uma base de dados dos funcionários de uma determinada empresa por vingança, ou mesmo um espião industrial. O fato é que não existe sistema ou informação 100% segura, visto que, ao utilizar a rede pública as informações que são disponibilizadas ou pesquisadas estão sujeitas a riscos, pelo fato de não existir um controle completo, ficando assim sempre vulneráveis a ataques.

Esses ataques contra a segurança da informação causam grandes prejuízos financeiros às grandes corporações, pois elas não possuem um noção clara do valor da informação que assim, quando ocorre um ataque que resulta em um “downtime”4 da rede, caso ele se

torne público, as perdas com produtividade e principalmente com relação à imagem da empresa são muitas vezes incalculáveis.

Noções de Confidencialidade, Integridade e Disponibilidade

A segurança dos canais de comunicação corresponde à restrição na capacidade forne-cida no E-interface , que pode ser caracterizada em função de dois aspectos: a quantidade de informação vazada sobre mensagens transmitidas e a potencial influência sobre as men-sagens entregues ao receptor. Por conseguinte, uma garantia de confidencialidade limita

3Termo utilizado quando é encontrado um erro em algum programa que faz com que aja de maneira

inesperada ou fora do comum.

4porcentagem de tempo em que um sistema de computador, ou um de seus componentes,

perma-nece inativo por causa de um problema inesperado ou para fins de manutenção, troca de equipamento, arquivamento de dados antigos.

(31)

a quantidade de informação que é divulgada, e uma garantia de integridade restringe a influência contraditória em mensagens entregues. A seguir, serão descritos cada pilar da segurança da informação.

Confidencialidade

Tem como principio a proteção da informação em sistemas, recursos e processos para que ela não possa ser acessada por pessoas não autorizadas. Essa informação não pode ser disponibilizada para quem não tem a devida autorização para acessá-la. A confidenci-alidade também é um mecanismo que garante a privacidade dos dados.

O acesso das pessoas autorizadas a essas informações armazenadas ou transmitidas se dá por meio de redes de comunicação. Manter a confidencialidade pressupõe assegurar que as pessoas não tomem conhecimento de informações, de forma acidental ou proposital. Alguns aspectos importantes da confidencialidade são a identificação a autenticação e a autorização. A confidencialidade pode ser obtida criptografando os dados armazenados e transmitidos, restringindo os acessos, classificando os dados e criando procedimentos de segurança.

Integridade

A integridade consiste na garantia de que a informação permaneceu íntegra, o que significa que ela não sofreu nenhuma espécie de modificação durante a sua transmissão ou armazenamento, sem a autorização do autor da mensagem.

Esquemas de criptografia em geral não protegem a integridade das mensagens. No en-tanto, são utilizados para verificar se houver qualquer alteração de integridade do objeto encriptado. Por exemplo, se um atacante substitui o texto cifrado c transmitido para uma mensagem m ∈ M , em que m é a nova mensagem que foi modificada de M , uma cifra c∗ = c, o receptor irá potencialmente obter uma mensagem diferente m ∈ M durante a decriptação. Para o atacante (m), substituindo c por c∗ corresponde a selecionar uma transformação F : M → M que descreve, para cada mensagem ˜m potencialmente trans-missível, que mensagem ˜m0 = F ( ˜m) o receptor teria obtido, uma vez que a mensagem

original foi ˜m.

A integridade está relacionada com a proteção da informação ou o processo para que não seja intencionalmente ou acidentalmente alterada, ou seja, alterada sem a devida au-torização (controle de fraude). Nenhum usuário possui a capacidade de alterar os dados de forma a corrompê-los, ou causar perdas financeiras, tornando a informação não confiável.

(32)

A integridade é fundamental e crítica em alguns sistemas, como:

• Sistemas de controle de tráfego aéreo; • Sistemas financeiros em geral;

• Comércio eletrônico;

• Sistemas de infraestrutura básica, como fornecimento de energia elétrica, água e gás.

Disponibilidade

Consiste na garantia de que as informações estejam acessíveis às pessoas e aos pro-cessos autorizados, a qualquer momento requerido, durante o período acordado entre os gestores da informação e a área de informática. Manter a disponibilidade de informações pressupõe garantir a prestação contínua do serviço, sem interrupções no fornecimento de informações para quem é de direito. As ameaças à disponibilidade estão relacionadas a ataques de negação de serviços (DoS) e perdas resultantes de desastres naturais, como fogo, enchente, terremotos ou ações humanas. Esses ataques ocorrem e deixam os serviços indisponíveis.

2.3

Criptografia

O conceito de criptografia, segundo (SIMON, 2000), pode ser visto como a proteção de informações sensíveis do acesso não autorizado de terceiros, isto é, de pessoas que não são o remetente nem o destinatário dessas informações e dados. A subseção 2.5.1 descreve características desejáveis em um algoritmo criptográfico. Já as subseções 2.5.2 e 2.5.3 apresentam, respectivamente, os sistemas criptográficos e funções Hashing.

Ciência que utiliza algoritmos matemáticos para criptografar/encriptar (cripto = es-conder) dados (texto claro) em uma forma aparentemente não legível (texto cifrado) e recuperá-los (decriptografá-los). Com essa ciência, o custo de tentar descobrir o conteúdo das mensagens cifradas torna-se maior do que o potencial ganho com os dados. ( FERNAN-DES, 2013) Utilizada para codificar informação pelos egípcios em forma de hieróglifos, seu uso cresceu de forma considerável juntamente com a proliferação de computadores e as necessidades de proteção da informação digital.

(33)

A criptografia tem o intuito de oferecer a maior dificuldade possível à tentativa de um indi-víduo não autorizado descobrir o conteúdo da mensagem cifrada. Para isso, os algoritmos criptográficos baseiam-se em alguns critérios para atingir tal objetivo, como avalanche, confusão e difusão.

Avalanche

Corresponde à influência que um bit da chave ou do texto claro possui no resultado do processo de cifragem. Conforme (RAMOS, 2002) descreveu, considera-se um bom algoritmo em que a modificação de um bit na chave ou texto claro, influencia no estado de 50% dos bits do texto cifrado. Essa característica já dificulta a dedução da chave ou do texto claro a partir do texto cifrado, caso um intruso subtraía essa mensagem, pois, caso ele erre em pelo menos um bit o texto cifrado, o resultado obtido terá uma diferença de 50% do texto cifrado originalmente.

Difusão

Corresponde à destruição da estatística de ocorrências dos símbolos presentes no texto cifrado, coibindo assim o ataque estatístico, que é baseado na ideia de frequência de aparição dos símbolos do texto cifrado similar aos símbolos do texto claro. Como explicado em Araújo (2003), caso o texto claro seja proveniente de uma linguagem natural, basta que o intruso disponha de uma tabela de frequência natural de aparição destes caracteres para fazer a correspondência um para uma dos símbolos do texto cifrado e do texto claro.(ARAÚJO, 2003)

Confusão

Corresponde o quanto é incompreensível a relação entre o texto claro e o texto cifrado.

(RAMOS, 2002) explica que, quando um bit da chave ou do texto claro é alterado, o

algoritmo que satisfaz a confusão deve produzir um texto cifrado com símbolos diferentes. A confusão é similar à avalanche, só que ela se preocupa com os símbolos gerados e não com o estado dos bits.

Sistemas Criptográficos

A implementação dos sistemas criptográficos geralmente ocorre via software, por ser mais barata, entretanto o resultado é mais lento e menos seguro (FERNANDES, 2013), visto

(34)

que o software é mais fácil de ser modificado e forjado. A implementação via hardware é feita através de chips e microprocessadores dedicados à criptografia. São mais rápidos que os controlados por software, entretanto menos flexíveis.

O processo de encriptação e decriptação requer o uso de informações secretas, conhe-cidas como chaves. A chave geralmente é um numero primo, utilizado em conjunto com um algoritmo criptográfico na criação do texto cifrado, que possui alguns atributos.

• Tamanho: número de bits/bytes da chave;

• Espaço: coleção de combinações matemáticas que possuem o mesmo tamanho de chave.

O gerenciamento das chaves criptográficas deve definir mecanismos para geração, dis-tribuição, entrada e saída, armazenamento e arquivamento

• Geração de chaves: deve obrigatoriamente fazer uso de um algoritmo devidamente testado. O gerador de números aleatórios deve garantir que todos os valores dos bits são gerados igualmente, assim como o padrão de geração de chaves não pode ser de conhecimento público. Portanto é preciso usar algoritmos randômicos que geram números aleatórios.

• Distribuição de chaves: podendo ser realizada manualmente, automática (via teclado ou smart cards) ou uma combinação. O canal utilizado para o envio e a troca de chaves criptográficas deve ser o seguro.

• Armazenamento de chaves: as chaves não podem ser acessíveis, entretanto, é muito útil armazenar as chaves criptográficas em um arquivo para o caso de perda, permitindo assim a sua recuperação. Esse arquivo deve estar localizado em um computador que esteja em um ambiente seguro e controlado.

Em modos gerais, a criptografia é dada a partir de uma mensagem original M que é transformada em uma mensagem criptografada M∗, pela aplicação de um algoritmo A, com uma ou mais chaves k independentes da mensagem. O algoritmo deve produzir uma saída única para cada chave passível de ser utilizada. A Figura 3 demostra a encriptação de uma mensagem após ser codificada pelo algoritmo A.

(35)

Figura 3: Método de criptografar um dado. Fonte: Elaborada pelo autor (2018).

Para recuperar a mensagem original M , aplica-se sobre M∗ o processo de decriptação, utilizando a chave correspondente, através da aplicação do mesmo algoritmo A, junto com a chave K correspondente. Essa operação é inversa à criptografia, como mostra a Figura 4.

Figura 4: Método de decriptação de um dado. Fonte: Elaborada pelo autor (2018).

O segredo do algoritmo não pode fundamentar a segurança do mesmo, pois, se ele apenas for seguro se permanecer secreto, então ele só será seguro até o momento no qual se aplique a decriptação e o torne público. A segurança deve estar centrada no conjunto de chaves. Desta forma, dificulta-se que um intruso possa recuperar M apenas em posse do algoritmo utilizado para gerar a mensagem criptografada M (STALLINGS, 2008).

(36)

tempo computacional envolvido), de modo a poderem ser aplicados conforme o conhe-cimento das chaves envolvidas. Ou seja, deve ser computacionalmente fácil executar as funções de encriptação e decriptação desde que as chaves sejam conhecidas. (STALLINGS, 2008), classifica os algoritmos de criptografia em uma forma genérica em três tipos: quanto ao seu número de chaves, tipos das operações usadas para criptografar as mensagens e modo de processamento da mensagem original.

1. Número de chaves: Podendo ser de chaves simétricas ou chaves assimétricas. A simétrica também conhecida como chave privada, ocorre quando o remetente e o receptor utilizam a mesma chave para encriptar e decriptar. Diferentemente, a assimétrica, também conhecida como chave pública, utiliza chaves diferentes, para realizar as operações, encriptar ou decriptar.

2. Tipo das operações usadas para criptografar as mensagens: No geral, os algoritmos de criptografia são fundamentados em dois princípios: substituição ou transposição. Na substituição, cada elemento do texto é mapeado em outro elemento. Já na transposição, os elementos são rearranjados dentro do texto.

3. Modo processamento da mensagem original: Caso a mensagem original seja processada utilizando como unidade de entrada e saída blocos de dados de tamanho fixo, o algoritmo é dito como uma cifra de bloco. Caso a mensagem original seja processada de forma contínua, como uma única unidade de dados, não importando o seu tamanho, o algoritmo é dito como uma cifra de fluxo.

Sistemas Simétricos

Todas as informações reservadas, que possuem algum valor para a atividade econômica de empresas ou pessoais, e que podem ser transportadas em um meio inseguro, devem ser criptografadas. Os sistemas de chaves simétricos, baseado no conhecimento entra as partes da comunicação de uma chave secreta, geralmente são utilizados quando existe uma grande quantidade de dados a serem criptografados. Esse sistema não é capaz de promover o não repúdio5. A Figura 4 ilustra como é realizado o processo de criptografia

de chave simétrica.

5Não repúdio é um serviço de segurança que consiste em técnicas e métodos para que o remetente da

(37)

Figura 5: Método de criptografia de chave simétrica. Fonte: Elaborada pelo autor (2018).

Principais Algoritmos de Criptografia Simétrica

• DES e 3DES: O DES é um algoritmo criptográfico padrão, desenvolvido nos anos de 1970 pelo NIST em conjunto com a IBM. A chave possui tamanho de 56 bits. No 3DES, o algoritmo DES é aplicado três vezes com três chaves distintas a 168 bits ou duas distintas de 112 bits (ROBACK; M., 1998). O DES substitui os bits da mensagem clara pelos bits da mensagem criptografada. Como o processo é simples, os algoritmos possuem rápida execução.

• RC2 : Desenvolvido por um dos fundadores do RSA Ronald Rivest. É vendido pela RSA e permite o uso de chaves criptográficas de até 2.048 bits.

• RC4: Uma evolução do RC2, sendo mais rápido. Também é um produto da RSA que trabalha com chaves de até 2.048 bits.

• RC5: Publicado em 1994 e permite o uso de chaves com tamanhos definidos pelo usuário.

• IDEA: O IDEA foi desenvolvido por James Massey e Xuejia Lai. Ele utiliza uma chave de 128 bits e a patente pertence a ASCOM TECH AG, uma empresa Suíça. • AES: AES criado pelo NIST com um padrão avançado de criptografia com o

objetivo de substituir o DES e o 3DES. Ele surgiu em um concurso realizado pelo NIST. (ROBACK; M., 1998). Os fatores analisados para a escolha do algoritmo foram

(38)

segurança (esforço requerido para criptoanálise), eficiência computacional, requisitos de hardware e software, simplicidade e licenciamento (FERNANDES, 2013). Trabalha com um bloco fixo de 128 bits e uma chave cujo o tamanha varia entre 128, 192 ou 256 bits.

Nome do Algoritmo Tipo de Encriptação Tamanho da Chave

DES Bloco 56 ou 64

IDEA Bloco 128

RC2 - RC5 Bloco 1 a 2.048

3DES Bloco 56 ou 112

AES Bloco 128, 192 ou 256

Tabela 1: Principais algoritmos criptográficos simétricos. Fonte: Fernandes (2013).

Sistemas Assimétricos

Os sistemas assimétricos, criados em 1976 por Whitfield Diffie e Martin Hellman

(FERNANDES, 2013), utilizam uma chave pública conhecida por ambas as partes e uma

chave privada que é mantida em segredo para encriptar os dados, ou seja, cada um dos interlocutores necessita gerar um par de chaves públicas e privadas. Esses sistemas exigem mais recursos computacionais, e em geral são utilizados para distribuir chaves secretas ou enviar pequenas mensagens.

Enquanto uma chave é utilizada para a encriptação, a outra é usada para decriptação. Esse modo por ser mais complexo, é muito mais lento que a criptografia simétrica, algo de cem a mil vezes mais lento (FERNANDES, 2013). Ela permite, além de proteger as informações, fornecer um mecanismo eficiente para a assinatura digital6 e o certificado digital7. A Figura 6 ilustra como é realizado o processo de criptografia de chave assimétrica.

Principais Algoritmos de Criptografia Assimétrica

6Serve para verificar a autenticidade e a integridade da mensagem.

(39)

Figura 6: Método de criptografia de chave assimétrica. Fonte: Elaborada pelo autor (2018).

• DSA - Digital Signature Algorithm: Algoritmo que opera sobre o hash da mensagem SHA-1. Para verificar a assinatura, um pedaço do código calcula o hash e outro pedaço usa a chave pública para decifrar a assinatura, e, por fim ambos comparam os resultados, garantindo a autoria da mensagem. Utilizando chaves de 512 à 1024 bits, o DSA somente assina e não garante confidencialidade (STALLINGS, 2008).

• RSA: Desenvolvido por Ron Rivest, Adi Shamir e Leonard Adleman em 1977 (

STAL-LINGS, 2008) a segurança desse algoritmo está diretamente relacionada com a

di-ficuldade de realizar fatorações. Utilizam chaves com 1000 bits e em níveis mais críticos; chaves com 2000 bits também são utilizadas.

• Diffie-Hellman: Foi o primeiro algoritmo de chave pública, criado em 1976 (DIFFIE;

HELLMAN, 1976), e leva o nome dos inventores Whitfield Diffie e Martin Hellman.

Baseia-se no uso de chaves logarítmicas discretas.

• Curvas elípticas: Técnica inicialmente proposta em 1985 por Victor Miller e Neal Koblitz como uma atraente forma de implementação de um sistema de chave pública em algumas das aplicações existentes. Baseada na matemática das curvas elípticas, com argumentos de que a ECC pode ser mais rápida e utilizar chaves mais curtas do que os métodos como RSA, podendo proporcionar ao mesmo tempo um nível de segurança equivalente (BARRETO, 1999)

(40)

Nome do Algoritmo Tipo de Encriptação Tamanho da Chave DSA Assinatura digital Logaritmo discreto RSA Confidencialidade, assinatura

digital e troca de chaves

Fatorização

Diffie-Hellman Troca de chaves Logaritmo discreto Curvas elípticas Confidencialidade, assinatura

digital e troca de chaves

Uso de pontos de curvas elípticas

Tabela 2: Principais algoritmos criptográficos assimétricos. Fonte: (FERNANDES, 2013).

Funções Hashing

A técnica mais utilizada para realizar a verificação e garantir a integridade do dados é a hashing, que é o resultado de uma função matemática que calcula a quantidade de dados armazenados ou transmitidos no meio de comunicação. Quando ocorre uma transmissão, a mensagem é processada na origem, calcula-se a hashing e em seguida envia-se o hashing junto com a mensagem; quando a mensagem chega ao destino, o cálculo é refeito para depois comparar o novo hashing com o que foi recebido, junto com a mensagem. Se o valor estiver diferente, implica que a mensagem foi alterada e esse mesmo processo é realizado com as mensagens armazenadas. A seguir algumas características fundamentais para a hashing (FERNANDES, 2013).

• A entrada da função de hashing pode ser de qualquer tamanho para cálculo; • O hash sempre tem o tamanho fixo;

• Devem ser fáceis de computar;

• O hash é unidirecional e impossível de converter;

• O hash é livre de colisão, ou seja, dois textos diferentes não podem possuir o mesmo hash.

O SHA1 (Secure Hash Algorith,) e o MD5 (Message-Digest algorithm 5) são os principais algoritmos de Hashing. O primeiro realiza o cálculo sobre uma mensagem de qualquer tamanho, gerando um resultado (digest) de 512 bits. É utilizado em conjunto com os algoritmos criptográficos DES (Data Encryption Standard), Triple DES e AES (Advance Encryption Standard). O MD5, criado em 1991, processa a entrada em blocos de mensagens de 512 bits e gerar o Dgest (hash) de 128 bits, estando sujeito a colisões

(41)

2.4

OpenSSL

O OpenSSL é um toolkit de código aberto, que implementa os protocolos SSL e TLS, e funções criptográficas de uso geral. É escrito em linguagem de programação C, o que facilita a implementação em seus códigos (OPENSSL.ORG, 2018). Suas versões estão dis-poníveis para a maioria dos sistemas operacionais: Unix, Windows e MAC OS. As bibli-otecas compartilhadas do OpenSSL são pré-instaladas em muitas distribuições Linux. O OpenSSL consiste em três componentes principais: bibliotecas (libcrypto e libss) e duas ferramentas de linha de comando que serão descritas a seguir(OpenSSL).

Pelo fim dos anos 1990, grandes empresas já realizavam vendas de produtos pela internet, o que se tornou conhecido como e-commerce. Atualmente, esse tipo de negociação é comum e o seu crescimento foi extremamente elevado quando comparado ao seu início. Hoje, até mesmo os mais desconfiados já realizam compras pela rede, ou acessam suas contas bancárias através de portais web dos seus bancos (Internet Banking). Grande parte dos usuários de internet já realizam transações financeiras, pagando contas ou comprando através da rede, trocando todos os dias informações sensíveis através da internet. Estas informações variam desde um simples e-mail pessoal até números de cartão de crédito.

Como a maioria dos dados que são compartilhados são extremamente sigilosos a todo o momento pela internet, a segurança se tornou um ponto crucial para os negócios e organizações. E para garantir uma proteção na transmissão de dados, com o uso dos pro-cessos de criptografia, fez-se necessária a utilização de um protocolo efetivo para atender amplamente todos os tipos de transação realizada pela web. Este protocolo é o Secure Socket Layer, mais conhecido como SSL, que se apresenta juntamente com o seu sucessor, o Transport Layer Security (TLS).

Segundo Stallings (STALLINGS, 2008), o SSL possui pontos principais:

• Oferece serviços de segurança entre TCP (Transmission Control Protocol) e apli-cações que usam TCP. Sua versão padrão na internet é TLS (Transporte Layer Service).

• Confidencialidade usando criptografia simétrica e integridade de mensagens usando código de autenticação de mensagens.

• Inclui mecanismos de protocolo para permitir que dois usuários TCP determinem os mecanismos e os serviços de segurança que eles usarão.

(42)

2.5

Justificativa para a Necessidade do Protocolo

Para entender o SSL, é necessário entender o ambiente para o qual ele foi desenvolvido. Mesmo que o SSL seja um protocolo flexível que pode ser utilizado em muitas aplicações diferentes, originalmente ele foi desenvolvido para a internet. Seus inventores precisavam tornar o comércio eletrônico e outras transações pela web mais seguras. Um ambiente de fato muito perigoso. Por exemplo, (THOMAS, 2000) mostra o que acontece quando um usuário em Berlim executa uma compra online em um site de San Jose, Califórnia, na Figura 7.

Figura 7: Caminho, através dos sistemas, de Berlim a San José. Fonte: (THOMAS, 2000).

A Figura 7 mostra todas as rotas de endereçamentos que as mensagens, incluindo dados sigilosos, como número de cartão de crédito, passam até chegar ao receptor ou a quem de fato está sendo solicitado, nesse caso, na Alemanha, passando por diversos países. Desta forma, em meio a esse caminho todo, a mensagem pode sofrer alguma interferência, pois atravessa diversas instalações, as quais algumas pertencem às empresas privadas, muitas das quais não estão sujeitas a uma regulamentação ou a algum tipo de lei que garanta a privacidade das informações que elas transportam. Assim, elas podem

(43)

ser “roubadas” em alguma parte dessa viagem.

Pinheiro et al. (PINHEIRO F. V.; VIEIRA; SILVA, 2016) explica da seguinte maneira: Nem o usuário, nem o servidor possuem controle a respeito do caminho que suas mensagens seguirão, também não podem controlar quem irá examinar o conteúdo das mensagens através da rota. É como se o usuário escrevesse o número do seu cartão de crédito em uma carta e a colocasse em uma garrafa. O usuário não tem controle sobre como esta mensagem atingirá o seu destino e qualquer um no caminho pode facilmente ler a sua carta. A Figura 8 mostra bem a descrição feita em Pinheiro et al.

Figura 8: Caminho físico da Califórnia à Alemanha. Fonte: (PINHEIRO F. V.; VIEIRA; SILVA, 2016).

2.6

Surgimento do SSL

Diante da situação crítica que era a grande massa de dados sigilosos sendo compar-tilhada pela web, a área de segurança na internet se tornou uma importante personagem nesse meio. A Netscape Communications já considerava riscos de segurança desde o desen-volvimento do seu primeiro navegador web. Para garantir a segurança nestas transações, a Netscape desenvolveu o Secure Socket Layer protocol. A Figura 9 apresenta um diagrama mostrando a evolução do SSL em paralelo à internet, segundo Thomas (THOMAS, 2000).

(44)

Figura 9: SSL foi desenvolvido juntamente com os primeiros navegadores web. Fonte: (THOMAS, 2000) .

O SSL é um protocolo que se utiliza de dois tipos de criptografia (Assimétrica e Simétrica),em que, inicialmente estabelece a conexão com uma criptografia assimétrica. Através desta conexão segura, realiza a troca de chave da criptografia simétrica e, por fim, continua a comunicação dos dados com uma criptografia simétrica. Segundo Stallings (STALLINGS, 2008), este fluxo resolve diversos problemas que se têm utilizando os modelos de criptografia simétrica/assimétrica separadamente.

O SSL foi criado como um protocolo separado para segurança, sendo considerado uma nova camada na arquitetura TCP/IP, conforme demonstrado na Figura 10, no processo de camadas considerando seguro, com o Protocolo inserido.

(45)

Figura 10: O protocolo considerado como uma nova camada na arquitetura TCP/IP. Fonte: Elaborada pelo autor (2019).

Essa metodologia permite que o SSL seja utilizado para outras aplicações que não sejam o HTTP, como, por exemplo, FTP, POP3 e SMTP, conforme demostra a Figura 11.

Figura 11: Utilização do SSL por outras tecnologias. Fonte: Elaborada pelo autor (2019).

Segundo Pinheiro et al. (PINHEIRO F. V.; VIEIRA; SILVA, 2016), a Netscape Communi-cations desenvolveu as primeiras três versões do SSL com uma assistência significante da comunidade web. Apesar de o desenvolvimento do SSL ter sido "aberto"e a própria Nets-cape ter encorajado outros da indústria a participar, o protocolo tecnicamente pertence à Netscape (de fato, a Netscape recebeu a patente dos EUA).

Entretanto, em 1996, o desenvolvimento do SSL se tornou responsabilidade de uma organização internacional de padrões, a Internet Engineering Task Force (IETF). O IETF desenvolve muitos dos protocolos padrões para a internet, incluindo, por exemplo, TCP/IP.

(46)

Para evitar qualquer imparcialidade em relação a alguma empresa em particular, o IETF renomeou SSL para Transport Layer Security (TLS).

Ainda em Pinheiro et al. (PINHEIRO F. V.; VIEIRA; SILVA, 2016),afirma-se que, atual-ment, todos os navegadores e servidores web suportam o SSL. Pode-se observar o prefixo "HTTPS": para uma URL segurada pelo SSL. Alguns navegadores também exibem um pequeno ícone para indicar segurança, ou seja, o SSL funciona sem que o usuário se preo-cupe com o que está acontecendo, apenas tendo a certeza de que os seus dados estão sendo compartilhados com confidencialidade, autenticação, segurança e integridade através da internet.

2.7

Arquitetura, Propriedades e Funcionamento

O protocolo SSL é utilizado principalmente sobre o modelo Cliente-Servidor. Esta distinção é muito importante, porque o SSL exige que cada um dos sistemas se comporte de forma diferente e única. Stalling (STALLINGS, 2008) considera o cliente como sendo o sistema que inicia a comunicação segura, enquanto o servidor responde ao pedido do cli-ente. No modo mais comum de aplicação do SSL, a navegação Web segura, os navegadores (Firefox, iExplorer, Chrome, etc.) são os cliente e o site é o servidor. Estes dois papéis se empregam em todas as aplicações que usam o SSL.

Para o SSL, Pinheiro et al. (PINHEIRO F. V.; VIEIRA; SILVA, 2016) afirma que as dis-tinções mais importantes entre cliente e servidor são suas ações durante a negociação dos parâmetros de segurança. Logo que o cliente inicia a comunicação, ele tem a responsabi-lidade de propor ao servidor um grupo de opções que dizem respeito aos algoritmos de criptografia e funções hash a serem utilizados durante toda a comunicação. O servidor verifica a melhor (mais segura) opção de algoritmos e funções hash entre ele e o cliente e então decide o que será utilizado.

Sem a utilização do SSL, uma conexão é estabelecida com o seguinte fluxo:

1. Handshake TCP 8

2. O cliente e o servidor iniciam o processo normal definido pelo protocolo de camada de aplicação (HTTP, SMTP, FTP, POP3 e outros)

Com a utilização do SSL, uma conexão é estabelecida com o seguinte fluxo:

(47)

1. Handshake TCP

2. Processo de autenticação e encriptação

3. O cliente e o servidor iniciam o processo normal definido pelo protocolo de camada de aplicação (HTTP, SMTP, FTP, POP3 e outros)

Segundo, (ROCHA; PEDROSO; JUNIOR, 2003), dentre suas propriedades, o protocolo SSL proporciona: segurança criptográfica, interoperabilidade, escalabilidade e eficiência.

• Segurança criptográfica: O SSL deve ser usado para estabelecer uma conexão segura em duas partes;

• Interoperabilidade: Programadores independentes podem desenvolver aplicações utilizando o SSL que, então, será capaz de trocar parâmetros criptográficos sem o conhecimento de um outro código;

• Escalabilidade: SSL provê que novos métodos de criptografia possam ser adicio-nados, se necessários. Isso se faz para evitar a criação de um novo protocolo, alé, do risco de ter que implementar uma nova aplicação segura e, com isso, anular o risco de uma falha;

• Eficiência: Operações criptográficas costumam usar intensivamente o CPU e, par-ticularmente, operadores de chave pública. Por essa razão, o SSL tem incorporado o sistema de cachê de sessão para reduzir o número de conexões que necessitam ser estabilizadas desde o começo. Além do mais, um cuidado muito especial tem sido tomado para reduzir a atividade de rede.

Estabelecendo uma comunicação

Conforme descrição anterior, todas as comunicações utilizam o protocolo Handshake. É negociada uma conexão segura entre o Cliente e o Servidor, através de uma série de passos, em que são decididos os algoritmos que vão ser utilizados e a geração dos segredos, que são geralmente números aleatórios, nos seguintes passos:

• Negociação dos algoritmos a serem utilizados; • Troca de chaves (segredos) e autenticação;

(48)

As quatro etapas a seguir foram sugeridas na leitura de (PINHEIRO F. V.; VIEIRA; SILVA, 2016), (STALLINGS, 2008) e (THOMAS, 2000). Na primeira fase, cliente e servidor decidem quais os algoritmos suportados por ambos que serão utilizados na comunicação (RSA, DAS, ECDSA). O cliente faz o pedido a um servidor que suporte o protocolo SSL por uma conexão segura e lhe envia uma lista com os algoritmos disponíveis para a encriptação e a autenticação dos dados.

Na segunda fase, o servidor recebe o pedido e escolhe dentre os algoritmos da lista do cliente o mais forte; ele também possui esse algoritmo, e o avisa desta decisão. Ambos trocam chaves e realizam a autenticação - são utilizados algoritmos de chave pública (RSA, Diffie-Hellman, etc). Para sua autenticação, o servidor envia sua identificação na forma de um certificado digital. Este certificado normalmente contém o nome do servidor, a Autoridade Certificadora para verificação e sua chave pública.

Na terceira fase, as mensagens são autenticadas por códigos gerados por funções hash HMAC-MD5 ou HMAC-SHA. Daí em diante as mensagens são trocadas com integridade, segurança e autenticação depois de passarem pelo SSL Record Protocol. Na maioria dos casos, a autenticação do servidor é feita através de uma Autoridade Certificadora (AC). Dessa maneira, o cliente utiliza uma chave pública da própria AC para validar sua assi-natura no site do servidor. A AC deve estar na lista de AC’s confiáveis para ter certeza de que o servidor é quem ele diz ser, como demostra a Figura 12.

Figura 12: Estabelecimento de uma conexão segura com SSL. Fonte:(PINHEIRO F. V.; VIEIRA; SILVA, 2016).

Referências

Documentos relacionados

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Também este valor não será devolvido no caso de rejeição do trabalho enviado para submissão, seja pela qualidade dos conteúdos ou por não cumprir as normas da

1. Nos termos da presente cláusula e da lei, Decreto-Lei n.º 84/2008, de 21 de Maio, que disciplina os aspetos relativos à venda de bens de consumo e das garantias a ela relativas,

Isso fica perceptível, na proposta de Posner, quando diz que a democracia pragmática é aquela mais adequada ao caráter pragmático do povo americano e também para

Não houve um aumento significativo da resistência a compressão da mistura (MTA+Lignina) quando comparada com os resultados do MTA Angelus na mesma metodologia, isso se

Os peixes foram alojados em lotes homogêneos de 10 peixes por caixa, com duas refeições diárias (9hrs-17hrs) até saciedade aparente; Ao final dos 60 dias foram submetidos a

Este caso mostra que a interdisciplinaridade está presente no processo de trabalho dos enfermeiros e dos demais profissionais de Centro de Saúde como forma de

Percebe que as ferramentas da qualidade e da metodologia Lean Seis Sigma, associadas corretamente à cada etapa do DMAIC podem trazer ganhos expressivos para as mais variadas áreas