SO BERNARDO DO CAMPO, 2008 OUTRAS APOSTILAS EM: www.projetoderedes.com.br
1 CENTRO EDUCACIONAL DA FUNDAO SALVADOR ARENA FACULDADE DE TECNOLOGIA TERMOMECANICA PROTOCOLOS CRIPTOGRFICOS Trabalho de Concluso de Curso apresentado pelos alunos Dinarde Almeida Bezerra e Gustavo Magno de Sousa, sob orientao da Prof Ms. Samris Ramiro Pereira, como parte das exigncias para obteno do grau de Tecnlogo em Anlise e Desenvolvimento de Sistemas.
SO BERNARDO DO CAMPO, 2008
2 Catalogao elaborada na fonte pela Biblioteca da Faculdade de Tecnologia Termomecanica Bibliotecria: Miriam da Silva Nascimento CRB 8/5347
Tecnlogo em Anlise e Desenvolvimento de Sistemas
Banca Examinadora: Prof. Francisco J os Martins (presidente, FTT) Prof. Ms. Fbio Henrique Cabrini (mestre, FTT)
Aprovado em 21/06/2008
Dinarde Almeida Bezerra e-mail: dinarde@gmail.com
Gustavo Magno de Sousa e-mail: gusmags@hotmail.com
Bezerra, Dinarde Almeida Protocolos criptogrficos. Dinarde Almeida Bezerra; Gustavo Magno de Sousa. So Paulo: FTT, 2008. 74 p. : il. ; 30 cm.
Orientador: Samris Ramiro Pereira Trabalho de Concluso de Curso Faculdade de Tecnologia Termomecanica, FTT, Tecnologia em Anlise e Desenvolvimento de Sistemas, 2008
1. Protocolo criptogrfico. 2. Criptografia. 3. Certificao digital. I. Pereira, Samris Ramiro. II. Faculdade de Tecnologia Termomecanica, FTT, Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas. III. Ttulo
3 DEDICATRIA
Dedicamos esse trabalho nossa orientadora Samris Ramiro Pereira que contribuiu intelectualmente e emocionalmente para que concretizssemos esse TCC.
4 AGRADECIMENTOS
Agradecemos primeiramente a Deus que nos permitiu chegar at aqui. Tambm aos nossos pais, familiares, amigos, educadores, colegas de sala, a nossa orientadora e a todos que contriburam diretamente ou indiretamente. Agradecemos a toda a estrutura da Fundao Salvador Arena que colaborou para que alcanssemos o diploma de nvel superior. Agradecemos, sinceramente, a todos.
5 SUMRIO
1 INTRODUO ................................................................................................................................... 12 1.1 OBJ ETIVOS .............................................................................................................................................. 12 1.2 MOTIVAO ............................................................................................................................................. 12 1.3 PLANO DE TRABALHO ............................................................................................................................... 13 1.4 REFERENCIAL TERICO ........................................................................................................................... 13 2 SEGURANA DA INFORMAO .................................................................................................... 15 2.1 IMPORTNCIA .......................................................................................................................................... 15 2.2 CONCEITOS ............................................................................................................................................. 16 2.3 OBJ ETIVOS .............................................................................................................................................. 18 3 CRIPTOLOGIA................................................................................................................................... 20 3.1 CONCEITOS ............................................................................................................................................. 20 3.2 CIFRAMENTO E DECIFRAMENTO .............................................................................................................. 21 3.3 PANORAMA HISTRICO ........................................................................................................................... 22 3.4 CRIPTOGRAFIA SIMTRICA E PBLICA .................................................................................................... 24 3.4.1 Criptografia simtrica ...................................................................................................................... 25 3.4.2 Tipos de algoritmos de chave simtrica ...................................................................................... 25 3.5 GERADOR DE NMEROS ALEATRIOS .................................................................................................... 30 3.6 CRIPTOGRAFIA DE CHAVES PBLICAS..................................................................................................... 30 3.7 O QUE A CRIPTOGRAFIA NO PODE FAZER ............................................................................................. 33 4 CERTIFICAO DIGITAL ................................................................................................................. 34 4.1 ASSINATURA DIGITAL ............................................................................................................................... 34 4.1.1 Propriedades da assinatura digital ............................................................................................... 35 4.1.2 Verificao da assinatura digital ................................................................................................... 35 4.1.3 Validade jurdica da assinatura digital ......................................................................................... 36 4.2 INFRA-ESTRUTURA DE CHAVES PBLICAS .............................................................................................. 36 4.2.1 ICP-Brasil ......................................................................................................................................... 36 4.2.2 Autoridade Certificadora e Registradora ..................................................................................... 37 4.3 CERTIFICADO DIGITAL ............................................................................................................................. 38 4.3.1 Padro X.509 ................................................................................................................................... 39 4.3.2 Estrutura de um certificado digital ................................................................................................ 39 4.3.3 Aplicaes da certificao digital .................................................................................................. 40 5 PROTOCOLOS CRIPTOGRFICOS ................................................................................................ 42 5.1 PROTOCOLO SSL.................................................................................................................................... 42 5.1.1 Objetivos........................................................................................................................................... 43
6 5.1.2 SSL e a pilha de protocolos TCP/IP ............................................................................................. 44 5.1.3 Protocolo Handshake ..................................................................................................................... 45 5.1.4 Protocolo Change Cipher Spec .................................................................................................... 45 5.1.5 Protocolo de Alerta ......................................................................................................................... 46 5.1.6 Camada de Registro ....................................................................................................................... 47 5.1.7 Como funciona o incio da conexo ............................................................................................. 48 5.1.8 Identificando um stio com SSL .................................................................................................... 50 5.1.9 Certificado gerado pelo OpenSSL ................................................................................................ 51 5.2 IPSEC ...................................................................................................................................................... 51 5.2.1 Security Association ....................................................................................................................... 53 5.2.2 Protocolos ........................................................................................................................................ 53 5.2.3 Funcionamento do protocolo ......................................................................................................... 55 5.2.4 Tecnologias de Criptografia........................................................................................................... 56 5.3 SET ......................................................................................................................................................... 56 5.3.1 Requisitos de negcio .................................................................................................................... 57 5.3.2 Recursos do protocolo ................................................................................................................... 57 5.3.3 Entidades do protocolo .................................................................................................................. 58 5.3.4 Assinatura dupla ............................................................................................................................. 59 5.3.5 Certificados ...................................................................................................................................... 59 6 CONCLUSES .................................................................................................................................. 61 REFERNCIAS ..................................................................................................................................... 63 APNDICE A - TUTORIAL DE INSTALAO E CONFIGURAO APACHE+SSL EM AMBIENTE WINDOWS ..................................................................................................................................... 68 A.1 INTRODUO ........................................................................................................................................... 68 A.2 INSTALAO ............................................................................................................................................ 68 A.3 CRIANDO CERTIFICADO SSL DE TESTE .................................................................................................. 70 A.4 CONFIGURANDO APACHE PARA SUPORTAR O SSL ................................................................................ 71 A.5 TESTANDO O SERVIDOR APACHE+SSL .................................................................................................. 71
7 LISTA DE FIGURAS
FIGURA 1 - ESQUEMA DE TIPOS DE ATAQUES. ..................................................................................... 19 FIGURA 2 - ESQUEMA DE CIFRAMENTO E DECIFRAMENTO. ................................................................... 23 FIGURA 3 - TELEGRAMA CRIPTOGRAFADO DE ZIMMERMANN. ............................................................... 25 FIGURA 4 - ESQUEMA DE CRIPTOGRAFIA SIMTRICA. ........................................................................... 26 FIGURA 5 - ESQUEMA DE CIFRAMENTO EM BLOCO. .............................................................................. 28 FIGURA 6 - ESQUEMA DE CIFRAMENTO DE FLUXO. ............................................................................... 28 FIGURA 7 - ESQUEMA DE CRIPTOGRAFIA ASSIMTRICA. ....................................................................... 32 FIGURA 8 - ESQUEMA DE ASSINATURA DIGITAL. ................................................................................... 35 FIGURA 9 - ESTRUTURA HIERRQUICA DA AC DO BRASIL. ................................................................... 39 FIGURA 10 - TOKEN E SMARTCARD. ................................................................................................... 40 FIGURA 11 - CERTIFICADO DIGITAL. ................................................................................................... 41 FIGURA 12 - ESQUEMA SEM E COM SSL. ............................................................................................ 43 FIGURA 13 - SSL E A PILHA DE PROTOCOLOS TCP/IP. ........................................................................ 45 FIGURA 14 - CONEXO INICIAL SSL. .................................................................................................. 50 FIGURA 15 - BARRA DE ENDEREOS COM SSL. .................................................................................. 51 FIGURA 16 - BARRA DE STATUS COM SSL. ......................................................................................... 51 FIGURA 17 - PROPRIEDADES DE SEGURANA DE UM STIO. ................................................................. 52 FIGURA 18 - CERTIFICADO GERADO A PARTIR DO SSL. ....................................................................... 53 FIGURA 19 - LOCALIZAO DO IPSEC NA PILHA DE PROTOCOLO TCP/IP. ............................................. 53 FIGURA 20 - PROTOCOLO AH. .......................................................................................................... 55 FIGURA 21 - PROTOCOLO ESP. ........................................................................................................ 55 FIGURA 22 - SA'S CRIADAS EM CONEXO IPSEC. ................................................................................ 56 FIGURA 23 - FORMAS DE FUNCIONAMENTO DO IPSEC. ........................................................................ 56 FIGURA 24 - INTERAO SET. ........................................................................................................... 59 FIGURA 25 - HIERARQUIA DE CERTIFICADOS. ...................................................................................... 60 FIGURA 26 - TELA DE CONFIGURAO INICIAL DO SERVIDOR. ............................................................... 70 FIGURA 27 - ALERTA DE CERTIFICADO DESCONHECIDO. ....................................................................... 73 FIGURA 28 - CERTIFICADO GERADO PARA O SERVIDOR APACHE. .......................................................... 73 FIGURA 29 - ERRO DE VERIFICAO DE DOMNIO. ................................................................................ 74
8 LISTA DE SIGLAS
AC - Autoridade Certificadora AC-J US - Autoridade Certificadora do J udicirio AES - Advanced Encryption Algorithm AR - Autoridade Registradora CN - Common Name DES - Data Encryption Standard DLP - Discrete Logarithm Problem DoS - Denial of Service ECDLP - Elliptic Curve Discrete Logarithm Problem e-NF - Nota Fiscal Eletrnica HMAC - Keyed-Hashing for Message Authentication Code HTTP - Hypertext Transfer Protocol HTTPS- Hypertext Transfer Protocol Secure ICP - Infra-estrutura de chaves pblicas IDEA - International Data Encryption Algorithm IETF - Internet Engineering Task Force IFP - Integer Factorization Problem IKE - Internet Key Exchange INSS - Instituto Nacional de Seguridade Social IP - Internet Protocol IPSec - Internet Protocol Security ITI - Instituto Nacional de Tecnologia da Informao MAC - Message Authentication Code MD5 - Message-Digest algorithm 5 MIT - Massachusetts Institute of Technology MP - Medida Provisria NIST - National Institute of Standards and Technology PGP - Pretty Good Privacy PKI - Public key infrastructure PKP - Public Key Partners PRNG - Pseudo-Random Number Generator
9 ProUni - Programa Universidade para Todos RC4 - Rivest Chipher 4 RC6 - Rivest Chipher 6 RFC - Request For Comments RNG - Random Number Generator RSA - Rivest, Shamir e Adleman SA - Security Association SET - Secure Electronic Transaction SHA - Secure Hash Algorithm SPB - Sistema de Pagamentos Brasileiros SSL - Secure Sockets Layer TCP - Transmission Control Protocol TLS - Transport Layer Security USC - University of Southern California XOR - EXclusive OR
10 RESUMO
A internet revolucionou o mundo das comunicaes. Hoje, virtualmente, de forma segura, podem-se compartilhar documentos, realizar compras, transaes bancrias, entre uma infinidade de servios. Mas para possibilitar a utilizao correta destes servios, o homem precisa manter informaes em sigilo, e desta forma a criptografia ganhou e est continuamente ampliando seu espao. Mas a criptografia isolada no proporciona um ambiente seguro em um meio inseguro como a internet, o que fez com que surgissem e se aprimorassem rapidamente os protocolos criptogrficos. Essa produo acadmica, aps apresentar um breve panorama da segurana da informao, apresenta os protocolos criptogrficos SSL, IPSec e SET, visto que estes so uma ferramenta fundamental de segurana, possibilitando a implementao de tecnologias como assinatura e certificao digital. Para possibilitar uma viso completa, so apresentados desde conceitos como o de criptografia, tipos de chave criptogrfica, a infra-estrutura de chaves pblicas e sua validade jurdica, at um tutorial de instalao e configurao de um servidor seguro em ambiente Windows atravs das ferramentas Apache e SSL.
The internet has revolutionized the world communications. Today, virtually, in a safe way, they can be shared documents, to accomplish purchases, bank transactions, among an infinity of services. But to make possible the correct use of these services, men need to maintain information in secrecy, and this way the cryptography won and it is continually enlarging his space. But the isolated cryptography doesn't provide a safe environment in an insecure way as the internet, what did with that they appeared and if they perfected the cryptographic protocols quickly. That academic production, after presenting an abbreviation panorama of the safety of the information, presents the cryptographic protocols SSL, IPSec and SET, because these are a fundamental tool of safety, making possible the implementation of technologies as signature and digital certification. To make possible a complete vision, they are presented from concepts as the one of cryptography, cryptographic key types, the infrastructure of public keys and her juridical validity, until an installation tutorial and configuration of a safe servant in environment windows through the APACHE tools and SSL.
Keywords: Cryptographic Protocol. Cryptography. Digital Signatures. Digital Certification. SSL. IPSec. SET. Apache.
12
CAPTULO 1
1 INTRODUO
Com a popularizao dos servios oferecidos na internet, cresceu tambm nmero de crimes digitais. A necessidade de aumentar a segurana dos servios e documentos que esto na rede mundial de computadores, fez da infra-estrutura de segurana da informao e em particular da criptografia, uma obrigao nas transaes realizadas virtualmente.
1.1 Objetivos
Prover material que possibilite o entendimento de protocolos criptogrficos, partindo da estrutura de chave simtrica e assimtrica, algoritmo criptogrfico, assinatura e certificado digital, autoridade certificadora e concluindo com funcionamento, caractersticas, vantagens, desvantagens e evolues de alguns protocolos criptogrficos que utilizam tcnicas de segurana e garante integridade na comunicao on-line.
1.2 Motivao
O nmero de usurios da internet cresce a cada dia. No mesmo ritmo, cresce o nmero de servios oferecido pela rede mundial de computadores, como transaes bancrias e servios de compra e venda. Mas como garantir a segurana nessas aes? No existe uma forma precisa e nica para se garantir a segurana na internet. Essa assegurada por um conjunto de procedimentos e tecnologias adequadas a determinada situao. Desta forma, este trabalho foi desenvolvido visando apresentar meios para tornar o trfego de dados na rede mundial de computadores mais seguros.
13
1.3 Plano de trabalho
O mtodo utilizado para o desenvolvimento desta pesquisa foi o monogrfico, tendo como objetivo descrever de forma detalhada o tema, partindo dos conceitos da criptografia, passando por outros conceitos envolvidos e chegando aos protocolos criptogrficos atualmente em uso para prover uma conexo segura na internet e apresentando exemplos prticos. Para tal, foram realizadas pesquisas em materiais tericos relacionados ao tema assim como a participao em alguns cursos on-line oferecidos pela Next Generation Center com o apoio da Intel [15].
O plano de trabalho seguiu os tpicos abaixo: Levantamento e seleo bibliogrfica, buscando livros, revistas tcnicas, artigos e trabalhos acadmicos sobre o tema. Desenvolvimento, com base nas pesquisas realizadas, partindo dos conceitos iniciais at os mais especficos. Apresentao de aplicaes. Concluses do tema, sintetizando a proposta conforme o objetivo.
1.4 Referencial terico
As referncias do trabalho ficaram baseadas em: Livros tcnicos: Livros renomados da rea como do Burnett e Painel Criptografia e segurana - O guia oficial RSA, Stephen Thomas SSL and TLS essencials entre outros; Produes acadmicas: Diversos trabalhos acadmicos de faculdades conceituadas como: UNB, UFSC, UFRJ , USP, etc., agregando valor ao trabalho; Material corporativo: Materiais de empresas do ramo de segurana da informao, unindo prtica e teoria, voltada ao meio comercial; rgos governamentais: Material de stios governamentais na internet, de rgos que gerenciam a tecnologia da informao brasileira;
14 Curso on-line: Foram realizados dois cursos de Certificao digital e Segurana da Informao, promovidos pela Intel, no seu programa de treinamentos Next Generation; Outros artigos publicados em stios da internet.
15 CAPTULO 2
2 SEGURANA DA INFORMAO
2.1 Importncia
Segurana da Informao um assunto de interesse geral. Burnett e Paine [5] citam no livro Criptografia e segurana o guia oficial RSA que se algum diz: No preciso de segurana. No tenho nenhum segredo, nada a ocultar, uma boa resposta seria OK, deixe-me ver seu pronturio mdico. Que tal seu contracheque, saldo bancrio, planilha de investimento e faturas de carto de crdito? Deixe-me anotar seu nmero de CPF, nmeros de carto de crdito e nmeros da conta bancria? Qual a senha do seu carto bancrio e do seu carto de crdito? Qual sua senha para conectar-se rede no trabalho? Onde voc mantm a chave sobressalente da sua casa?. O fato que toda pessoa tem informaes que quer manter em segredo. s vezes, a razo simplesmente o desejo de privacidade. Ningum se sente confortvel tornando pblico detalhes sobre o seu perfil mdico ou financeiro. Outra boa razo autoproteo - ladres poderiam utilizar informaes confidenciais de determinada vtima para assalt-la. Em outras palavras, os motivos para uma pessoa manter um segredo no so necessariamente de m f. Empresas tambm tm segredos informaes estratgicas, previses de vendas, detalhes tcnicos sobre produtos, resultados de pesquisas, arquivos pessoais e assim por diante. Embora empresas desonestas talvez tentem ocultar do pblico as suas atividades ilcitas, a maioria das organizaes quer proteger suas informaes valiosas de pessoas que podem estar trabalhando para concorrentes, hackers e crackers 1
1 Hackers: Pessoas que violam sistemas de forma tica. Visam melhoria e a resoluo de problemas dos mesmos. Crackers: Pessoas que violam sistemas a fim de prejudic-los e obter benefcios prprios. Roubam informaes, como senha bancria.
ou mesmo funcionrios. Os motivos para invaso de um computador domstico so inmeros [7]:
16 Utilizar o computador em alguma atividade ilcita, para esconder a real identidade e localizao do invasor; Utilizar o computador para lanar ataques contra outros computadores; Utilizar o disco rgido como repositrio de dados; Destruir informaes (vandalismo); Disseminar mensagens alarmantes e falsas; Ler e enviar e-mails em nome de seu real proprietrio; Propagar vrus de computador; Furtar nmeros de cartes de crdito e senhas bancrias; Furtar a senha da conta de provedor do equipamento invadido, para acessar a Internet se fazendo passar pelo seu usurio; Furtar dados do computador, como por exemplo, informaes de imposto de renda.
Os motivos para invaso em uma rede corporativa so inmeros: Obter informaes sigilosas da empresa; Acessar e-mails internos da empresa; Sobrecarregar a rede; Propagar vrus de computador; Deixar fora do ar servios providos pela empresa; Modificar dados empresariais; Utilizar recursos da empresa para benefcio de terceiros; Obter dados de funcionrios.
2.2 Conceitos
Segundo FILHO, A. M. S., informao compreende qualquer contedo que possa ser armazenado ou transferido de algum modo, servindo a determinado propsito e sendo de utilidade ao ser humano. Trata-se de tudo aquilo que permite a aquisio de conhecimento. Nesse sentido, a informao digital um dos principais, seno o mais importante, produto da era atual. Ela pode ser manipulada e visualizada de diversas maneiras. Assim, medida que a informao digital circula pelos mais variados ambientes, percorrendo diversos fluxos de trabalho, ela pode
17 ser armazenada para os mais variados fins, possibilitando ela ser lida, modificada ou at mesmo apagada [10]. A segurana da informao a proteo dos sistemas de informao contra a negao de servio a usurios autorizados, assim como contra a intruso 2 , e a modificao no-autorizada de dados ou informaes, armazenados, em processamento ou em trnsito, abrangendo a segurana dos recursos humanos, da documentao e do material, das reas e instalaes das comunicaes e computacional, assim como as destinadas a prevenir, detectar, deter e documentar eventuais ameaas a seu desenvolvimento [19]. Considera-se ameaa, toda possibilidade de explorao de fragilidades de sistemas, de forma intencional ou no, podendo ser uma ameaa interna (um funcionrio que pode explorar os sistemas internos da corporao) ou uma ameaa externa (algum de fora tentando comprometer os dados da corporao). J um ataque 1. , a tentativa, bem ou mal sucedida, de acesso ou uso no autorizado a um programa ou computador. Tambm so considerados ataques as tentativas de negao de servio [7]. Classificam-se em: Ataque ativo 1.1 : informaes so modificadas. Podem ser de vrios tipos, tais como: Interrupo 1.2 : O atacante sobrecarrega o sistema, causando lentido e indisponibilidade dele; Modificao 1.3 : O atacante obtm dados e os modifica; Falsidade
: O atacante faz se passar por outra pessoa. 2. Ataque passivo A figura 1 representa a classificao acima: : informaes no sofrem modificao, sendo somente copiadas. Caracteriza-se pela interceptao.
2 Intruso: Acesso no autorizado ao sistema, a fim de compromet-lo ou simplesmente obter informaes.
18
Figura 1 Esquema de tipos de ataques. Fonte: O autor.
2.3 Objetivos
A segurana da informao tem por objetivo, assegurar uma ou mais, das seguintes propriedades [23]: 1. Confidencialidade: assegura o sigilo de determinada informao; 2. Integridade: garante que a informao no seja manipulada sem autorizao. Por manipulao entendem-se incluses, excluses ou modificaes de dados; 3. Disponibilidade: garante o acesso informao quando esta for requerida por um usurio legtimo; 4. Autenticao: a idia de autenticao est associada identificao e inclui autenticao de entidade e de dados. A autenticao de entidade o processo que associa o indivduo a uma identificao nica, ou seja, a forma pela qual o usurio prova que quem alega ser, estabelecendo a validao de sua identidade. A autenticao de dados o processo que identifica como legtimas as informaes sobre os dados tais como: origem, data de origem, hora de envio, contedo; 5. No repdio: garante que o emissor de uma mensagem ou a pessoa que executou determinada transao de forma eletrnica, no poder posteriormente
19 negar sua autoria, visto que somente sua chave privada poderia ter gerado aquela assinatura digital. Deste modo, a menos que haja um uso indevido do certificado digital, fato que no exime de responsabilidade, o autor no pode negar a autoria da transao. 6. Legalidade: Outra propriedade que tem sido objetivo da segurana da informao a legalidade envolvida na situao em questo. Tm-se como exemplos, que a criptografia proibida em alguns pases, a certificao digital no reconhecida mundialmente, apresentando regras especificas conforme a localizao, assim como determinada invaso pode ser crime em um pas e em outro no.
20 CAPTULO 3
3 CRIPTOLOGIA
3.1 Conceitos
A palavra criptologia deriva da palavra grega kryptos (oculto) e logos (estudo). Este campo de estudo engloba criptografia e a criptoanlise. Criptologia: a cincia de estuda as cifras. Uma cifra no um cdigo. Um cdigo um sistema pr-estabelecido de substituio de palavras ou de pargrafos. Um idioma estrangeiro, por exemplo, como um cdigo secreto onde cada palavra em portugus possui uma equivalente nele. Assim, "oi" em portugus equivale a "hola" em espanhol ou "hi" em ingls. A maioria dos cdigos funciona com um "livro de cdigos" onde as palavras esto relacionadas a equivalncias, como se fosse um dicionrio [36]. A palavra cifra vem do hebraico saphar, que significa "dar nmero". As maiorias dos ciframentos so intrinsecamente sistemticos, freqentemente baseados em tcnicas de sistemas numricos. A cifra pode ser visualizada por qualquer pessoa. Porm, a mensagem a ser transmitida s poder ser decifrada pela pessoa autorizada. Caso a mensagem ou cifra estivesse oculta, estaria sendo utilizada a tcnica de esteganografia. Esteganografia: o estudo das tcnicas de ocultao de mensagens dentro de outras, diferentemente da criptografia, que altera a mensagem de forma a tornar seu significado original ininteligvel [18]. A esteganografia no considerada parte da criptologia, uma tecnologia de segurana de informao paralela, sendo usualmente estudada em contextos semelhantes aos da criptografia e pelos mesmos pesquisadores. Criptografia: Formada a partir da concatenao do termo grego kryptos (escondido, oculto) e grapho (grafia, escrita), a criptografia apresenta-se como a cincia de escrever em cifras, ou seja, a cincia que prov meios atravs de tcnicas matemticas, para se transformar um texto em claro (inteligvel) em um texto cifrado (ininteligvel).
21 Criptoanlise: o processo de examinar informaes criptografadas para tentar determinar qual a mensagem cifrada ou qual a chave que criptografou a mensagem (que, evidentemente, leva prpria mensagem) [33]. Para muitos autores o grande compromisso da criptografia seria o provimento da privacidade das comunicaes. De fato, a proteo de comunicaes sensveis tem sido a nfase da criptografia ao longo de toda histria. Dentro da criptologia, a cincia da criptografia tem como seu objeto de estudos os processos de ciframento. Ciframento: a transformao dos dados em uma forma que torna impossvel a sua leitura sem o apropriado conhecimento da chave. O seu principal propsito assegurar privacidade da informao protegendo o entendimento da mensagem oculta de qualquer um a qual ela no seja destinada [36]. Deciframento: O deciframento o processo inverso do ciframento; a transformao de dados cifrados novamente em uma forma legvel. Texto simples: qualquer informao que est escrita de maneira legvel. Texto cifrado: resultado de um texto simples que passou pelo processo de ciframento. Chave: 3.2 Ciframento e deciframento A chave um cdigo secreto utilizado por algoritmos de ciframento para criar verses nicas do texto codificado; isto faz com que uma mensagem, ao ser cifrado com chaves diferentes, apresente textos codificados diferentes [27].
O ciframento e o deciframento so realizados por programas de computador chamados de cifradores e decifradores. Um programa cifrador ou decifrador, alm de receber a informao a ser cifrada ou decifrada, recebe um nmero chave que utilizado para definir como o programa ir se comportar (figura 2). Os cifradores e decifradores se comportam de maneira diferente para cada valor da chave. Sem o conhecimento da chave correta no possvel decifrar um texto cifrado. Assim, para manter uma informao secreta, basta cifrar a informao atravs de um algoritmo criptogrfico reconhecido pela comunidade tcnica, mantendo todos os cuidados tcnicos especificados e manter em sigilo a chave [16].
22
Figura 2 - Esquema de ciframento e deciframento. Fonte: [9].
3.3 Panorama Histrico
A criptografia to antiga quanto prpria escrita. J estava presente no sistema de escrita hieroglfica dos egpcios. Os romanos utilizavam cdigos secretos para comunicar planos de batalha. O mais interessante que a tecnologia de criptografia no mudou muito at meados deste sculo [11]. A histria da criptografia da era moderna foi marcada pelo seu uso militar. Em situaes de guerra nenhum comandante deseja que seus inimigos conheam suas estratgias caso viesse interceptar uma mensagem. Em 17 de janeiro de 1917, por exemplo, o servio de Inteligncia Naval Britnica interceptou, decodificou e entregou aos Estados Unidos uma mensagem que havia sido enviada ao embaixador alemo na Cidade do Mxico pelo governo germnico. Na mesma se autorizava ao diplomata a negociar um acordo com o Mxico para entrar a favor da Alemanha na Primeira Guerra Mundial, com o propsito de deixar os Estados Unidos neutralizados durante a guerra e tambm ele propunha ao Mxico convidar o J apo para participar do plano. Em troca, os mexicanos iriam receber um grande valor financeiro e os territrios de Novo Mxico, Arizona e Texas caso resultassem vencedores. O texto conhecido como Telegrama de Zimmermann (figura 3), levou os norte-americanos trocarem sua poltica neutra pela guerra, o que prova o poder da criptoanlise. Se o telegrama no tivesse sido
23 interceptado e os planos contra os Estados Unidos tivessem dado certo a histria atual poderia ter sido bem diferente [32] [36]. Na Segunda Guerra Mundial os cdigos da mquina Enigma (mquina eletromecnica de criptografia com rotores), utilizada pelos alemes, foram quebrados pelos analistas norte-americanos, o mesmo se dando com os cdigos utilizados pelos japoneses. Os alemes, na Primeira Guerra venceram os russos facilmente, por conta disso. Os Estados Unidos conseguiram no perder do J apo na Segunda Guerra por possurem os cdigos de transmisso deste. Os alemes, por sua vez, no conseguiram invadir a Inglaterra pelo mesmo motivo. Rommel deve sua fama de raposa do deserto em parte ao fato de que conseguiu capturar uma transmisso americana detalhando como era o modo de operao dos britnicos no deserto [36]. O advento dos computadores, e a capacidade de processamento de dados sempre crescente, fizeram com que a criptografia se fizesse agora de forma digital. Em 1976, a IBM desenvolveu um sistema criptogrfico denominado Data Encryption Standard (DES), que logo foi aprovado pelos rgos de normatizao do governo americano. O DES baseia-se em elaborados sistemas matemticos de substituio e transposio os quais fazem com que seja particularmente difcil de ser rompido um ciframento [36]. O DES um exemplo clssico de criptografia simtrica e o RSA um padro mundial de criptografia assimtrica ou pblica. O RSA um sistema criptogrfico de chave pblica amplamente aceito e divulgado, desenvolvido em abril de 1977, pelos professores do Massachusetts Institute of Technology (MIT) Ronald Rivest e Adi Shamir e pelo professor da University of Southern California (USC) Leonard Adleman, batizado com as iniciais de seus nomes. Mais tarde a patente do RSA foi registrada pelo MIT que a cedem a um grupo denominado Public Key Partners (PKP) para uso domstico. Esta patente foi expirada por completo em setembro de 2000 [23]. Em 1991, o programador Phil Zimmermann autorizou a publicao em boletins eletrnicos e grupos de notcias de um programa por ele desenvolvido e batizado como Pretty Good Privacy (PGP). O PGP tem como base entre outros o algoritmo do RSA. Quando Zimmermann publicou o PGP se viu em problemas com o departamento de estado norte-americano que abriu uma investigao para determinar se ele havia violado as restries de exportao de criptografia ao
24 autorizar a divulgao do cdigo fonte do PGP na internet. Apesar do mesmo ter se comprometido a deter seu desenvolvimento, diversos programadores em vrias partes do mundo continuaram adiante, portando-o para distintas plataformas e assegurando sua expanso. Stale Schumacher, um programador noruegus, tem se encarregado das verses internacionais do PGP, que so totalmente compatveis com sua contraparte norte americana apenas observando o objetivo da legalidade [36].
Figura 3 - Telegrama criptografado de Zimmermann. Fonte: [32].
Nos dias atuais, com o aumento do comrcio e de transaes eletrnicas que requerem algum tipo de segurana, a criptografia tornou-se uma ferramenta fundamental para a utilizao da internet.
3.4 Criptografia Simtrica e Pblica
Existem dois tipos de criptografia conforme a sua chave: Criptografia simtrica e a criptografia assimtrica ou de chave pblica.
25 3.4.1 Criptografia simtrica
A criptografia de chave simtrica, representada na figura 4, utiliza a mesma chave para ciframento e deciframento. Dessa forma, a chave deve ser conhecida tanto pelo remetente quanto pelo destinatrio da mensagem. Nesse fato, reside a maior dificuldade do mtodo: a distribuio segura das chaves. Segundo Burnett e Painel em um sistema criptogrfico de chave simtrica, a chave apenas um nmero qualquer que tenha um tamanho correto e que o selecione aleatoriamente. Sero detalhadas ainda neste captulo as tcnicas utilizadas para a gerao de nmeros aleatrios [5]. Se uma pessoa quer se comunicar com outra com segurana, ela deve passar primeiramente a chave utilizada para cifrar a mensagem. Este processo chamado de distribuio de chaves, e como a chave o principal elemento de segurana para o algoritmo, ela deve ser transmitida por um meio seguro.
Figura 4 - Esquema de criptografia simtrica. Fonte: O autor.
3.4.2 Tipos de algoritmos de chave simtrica
H duas formas de se cifrar dados. Atravs de ciframento de bloco ou de fluxo.
26 Ciframento de bloco
Quando definido para o algoritmo um tamanho de fragmento de dado para cifrar ou decifrar, ele divide o texto simples em blocos e opera de maneira independente [5]. Suponha que um texto tenha 227 bytes e utilizado uma ciframento que opera com blocos de 16 bytes. O algoritmo ir utilizar os 16 primeiros bytes, cifrar, depois os prximos 16 bytes e assim por diante. Ele realizar esse procedimento 14 vezes sobrando apenas 3 bytes. Contudo, ele s opera com 16 bytes. Ento para cifrar os ltimos 3 bytes, ser adicionado bytes extras no ltimo bloco para torn-lo completo. O algoritmo de deciframento dos dados deve ser capaz de reconhecer e ignorar esse preenchimento. O esquema mais popular de efetuar esse preenchimento identificar o nmero de bytes que deve ser preenchido e repetir esse valor at o final dos dados. No caso acima, ele repetir o byte 13 em cada um dos 13 bytes de preenchimento. A figura 5 apresenta o esquema de ciframento do exemplo.
Ciframento de fluxo
Na ciframento de fluxo, os dados vo sendo criptografados bit a bit, conforme as informaes vo chegando. Estes algoritmos so teis quando o transmissor precisa enviar para o receptor um fluxo contnuo de dados criptografados [38]. Uma operao matemtica L realizada com cada bit da mensagem separadamente de forma a alterar-lhe o valor, cifrando-a. Essa operao pode ser a funo XOR ou OU Exclusivo 3
3 XOR ou OU Exclusivo: Operador lgico muito til na criptografia, visto que em 50% dos casos o resultado 1 e os outros 50% igual a 0. A operao com bits iguais igual a 0 e com bits diferentes igual a 1: 0 XOR 0 =0 e 0 XOR 1 =1 e 1 XOR 0 =1 e 1 XOR 1 =0 [5]. . A chave de ciframento deve ser constituda de bits que variam no tempo. Ela deve ser do mesmo tamanho da mensagem. Na deciframento o processo semelhante ao de ciframento, bastando apenas aplicar a operao inversa Linv. Na figura 6 pode ser visualisado o esquema de ciframento e deciframento de fluxo.
27
Figura 5 Esquema de ciframento em bloco. Fonte: O autor.
Figura 6 Esquema de ciframento de fluxo. Fonte: O autor.
28 Ciframento de bloco X ciframento de fluxo
A ciframento de fluxo quase sempre mais rpida e geralmente utiliza bem menos cdigo do que as de bloco [5]. Por outro lado, com a ciframento de blocos, voc pode reutilizar as chaves. No ciframento de fluxo utilizar-se a chave apenas uma vez, o que torna o gerenciamento dessas chaves difcil. Nenhum tipo melhor que o outro. Se for preciso reutilizar as chaves, o ciframento de blocos mais adequado. Se for preciso velocidade no precisando reutilizar a chave, o ciframento de fluxo provavelmente mais indicado. Na tabela 1, podem-se verificar exemplos dos tipos de ciframento de bloco ou fluxo, conforme a aplicao. A criptografia simtrica atinge ao objetivo de confidencialidade, mantendo os dados seguros, e suas principais vantagens sobre a criptografia de chave pblica [3]: a) velocidade, pois os algoritmos so muito rpidos, permitindo cifrar uma grande quantidade de dados em pouco tempo; b) as chaves so relativamente pequenas e relativamente simples, permitindo gerar cifradores extremamente robustos;
Enquanto desvantagens podem-se citar [3]: a) a chave secreta deve ser compartilhada entre emissor e receptor, o que dificulta o gerenciamento de chaves; b) no permite autenticao do remetente, uma vez que qualquer pessoa poder enviar uma mensagem criptografada com qualquer chave que esteja em seu domnio; c) no permite o no-repdio do remetente, o que decorrncia direta do item anterior.
Os principais algoritmos desta classe so [3]: a) Data Encryption Standard (DES): o algoritmo simtrico mais difundido no mundo. Criado pela IBM em 1977, com um tamanho de chave de 56 bits, relativamente pequeno para os padres atuais, por fora bruta em 1997;
29 Aplicao/Tipo de ciframento Exemplo Banco de dados/Bloco A interoperabilidade com outro software no uma questo, mas ser preciso reutilizar as chaves. E-mail/Bloco (AES) Embora cada mensagem de e-mail tenha sua prpria chave e possa ser utilizado um ciframento de fluxo, h um ganho de interoperabilidade em todos os pacotes de e-mail utilizando o AES padro. SSL em conexes Web 4 /Fluxo (RC4 5 A velocidade extremamente importante, cada conexo pode ter uma nova chave e praticamente todos os navegadores e servidores Web utilizam o algoritmo criptogrfico simtrico RC4. ) Ciframento de Arquivos/Bloco A interoperabilidade no uma questo, porm pode-se cifrar cada arquivo com a mesma chave e ento proteger essa chave.
Tabela 1: Utilizao do ciframento de bloco ou fluxo em algoritmos de chave simtrica. Fonte: [5].
b) Triple DES: Uma variao do DES que utiliza trs ciframentos em seqncia, empregando chaves com tamanho de 112 ou 168 bits, sendo recomendado no lugar do DES desde 1993; c) International Data Encryption Algorithm (IDEA): Criado em 1991, segue as mesmas idias do DES, mas tem execuo mais rpida que o mesmo. d) Advanced Encryption Standard (AES): o padro atual para ciframento recomendado pelo National Institute of Standards and Technology (NIST). Trabalham com chaves de 128, 192 e 256 bits, que adotou o cifrador Rijndael aps a avaliao de vrios outros;
4 Web Termo usado para referir-se rede mundial de computadores 5 RC4 um algoritmo de ciframento de fluxo para chave simtrica desenvolvido por Ron Rivest [35].
30 e) RC6 (Rivest Chipher 6): A ltima verso de uma srie de cifradores (RC2, RC3, RC4, RC5) desenvolvidos por Rivest. Concorreu adoo pelo padro AES.
3.5 Gerador de nmeros aleatrios
Como pode ser visto anteriormente, a chave um nmero gerado aleatoriamente. Mas como so gerados esses nmeros? Existem duas formas de ger-los:
Random Number Generator (RNG): So dispositivos que agrupam nmeros de diferentes tipos de entradas imprevisveis como a medio da desintegrao espontnea de radioatividade, o exame das condies atmosfricas na vizinhana ou o clculo de minsculas varincias na corrente eltrica. Esses nmeros passam por teste de aleatoriedade [5].
Pseudo-Random Number Generator (PRNG): So algoritmos que recebem sementes 6 3.6 Criptografia de chaves pblicas para gerar nmeros estatisticamente aleatrios. O que torna esses nmeros pseudo-aleatrios e no aleatrios a possibilidade de serem repetidos [5].
A criptografia de chaves pblicas, tambm conhecida por criptografia assimtrica, baseada no uso de pares de chaves para cifrar/decifrar mensagens [3]. As duas chaves so relacionadas atravs de um processo matemtico, usando funes unidirecionais com segredo para a codificao da informao. Uma das chaves, chamada de chave pblica, como o nome j diz, qualquer um pode conhecer e ter acesso, utilizada para cifrar, enquanto a outra, chamada chave privada (secreta), utilizada para decifrar (figura 7).
6 Semente: Valor retirado de um sistema do computador que utilizado para alimentar a entrada do PRNG tais como: hora do dia em milissegundos, estado do computador, nmero de processos, coordenadas do cursor do mouse entre outros [5].
31 Uma mensagem cifrada com uma chave pblica somente poder ser decifrada com o uso da chave privada com a qual est relacionada. Segue a tabela 2:
Funo da Chave Qual Chave? De Quem? Cifrar os dados para um destinatrio Chave Pblica Do Destinatrio Assinar a mensagem Chave Privada Do Signatrio Decifrar os dados para ler a mensagem Chave Privada Do Destinatrio Verificar a assinatura da mensagem Chave Pblica Do Signatrio
Tabela 2 - Resumo do uso de chaves pblicas e privadas na criptografia assimtrica. Fonte: [3].
Figura 7 - Esquema de criptografia assimtrica. Fonte: O autor.
Os sistemas criptogrficos de chave assimtrica baseiam-se na dificuldade que existe em se calcular a operao inversa de determinadas operaes matemticas. Atualmente existem trs categorias de problemas matemticos a partir dos quais so construdos os algoritmos de chaves pblicas [3]: a) fatorao inteira (IFP - Integer Factorization Problem): Dado um nmero n resultado da multiplicao de dois nmeros primos p e q, a dificuldade consiste em
32 encontrar p e q tendo-se somente n, sendo, todos, nmeros inteiros positivos. Para nmeros pequenos, um ataque de fora bruta pode facilmente encontrar a soluo, mas para valores maiores de n (da ordem de 1024 bits), encontrar a soluo no computacionalmente tratvel. Um dos algoritmos criptogrficos baseados neste problema o RSA; b) problema logaritmo discreto (DLP - Discrete Logarithm Problem): Dada a equao y =g x mod p, onde g um nmero inteiro positivo e p um nmero primo, ambos conhecidos, a dificuldade dado o valor de y calcular o valor de x. Da mesma forma que a fatorao inteira, para valores grandes de p; x; y e g, da ordem de centenas de bits, este clculo torna-se muito difcil. Os esquemas criptogrficos ElGamal e Diffie-Hellman so baseados neste problema; c) problema logaritmo discreto sobre curvas elpticas (ECDLP - Elliptic Curve Discrete Logarithm Problem). Dada a equao Q = l.P mod n, onde P um ponto sobre a curva elptica E, n a ordem do ponto P, e l um inteiro no intervalo 0 l n -1, a dificuldade est em se encontrar l sabendo-se P e Q. Basicamente os mesmos algoritmos desenvolvidos para DLP, podem ser aplicados sobre curvas elpticas.
As principais vantagens da criptografia de chave pblica sobre a simtrica so [3]: a) a chave secreta no compartilhada, uma vez que basta a chave pblica de conhecimento geral para a troca segura de mensagens; b) prov autenticao, j que possvel validar assinatura com a chave privada atravs da chave pblica, partindo-se do princpio que a chave privada no foi distribuda (uma vez que isso no necessrio) para ningum; c) permite o no-repdio, pois possvel verificar as chaves; d) escalvel, possibilitando que exista uma hierarquia de controle e distribuio de chaves, que pode ser facilmente ampliada.
Em contrapartida, existem pelo menos duas grandes desvantagens [3]: a) lenta, pois os algoritmos, pela sua natureza matemtica, apresentam auto custo de processamento; b) requer uma autoridade de certificao, para que se possa garantir a identidade e ter-se chaves pblicas confiveis.
33 A criptografia assimtrica no substitui a criptografia simtrica. importante reconhecer e identificar as limitaes de cada mtodo, de forma a utilizar os dois tipos de maneira complementar para prover a segurana necessria s partes envolvidas. A distribuio de chaves pblicas feita atravs de uma infra-estrutura de chaves pblicas, que ser apresentada a frente.
3.7 O que a criptografia no pode fazer
A criptografia tem um papel importante na segurana da informao, porm alguns fatores fazem com que ela torne-se vulnervel, tais como [2]: 1. A criptografia no protege arquivos no-criptografados: 2. Mesmo que se tenha um servidor Web configurado para utilizar uma forte criptografia no trfego dos dados, se os arquivos originais armazenados no servidor no estiverem criptografados, os mesmos se tornam vulnerveis. A criptografia no pode proteger contra chaves criptogrficas roubadas: 3.
preciso ter uma infra-estrutura segura para a armazenagem da chave criptogrfica, pois se o atacante tiver acesso chave e conhecer qual foi o algoritmo utilizado na ciframento, ele pode facilmente decifrar um dado. A criptografia no pode proteger contra ataques ao servio: Mesmo os dados estando criptografados, o atacante pode ter outro objetivo do que o de roubar dados. Ele pode ter como objetivo lanar ataques do tipo de DoS 7 4. , a fim de deixar o acesso ao servio, por exemplo, de um banco, indisponvel. A criptografia no pode proteger de programas modificados:
7 Denial of Service (DoS) ou ataque de negao de servios, consistem em tentativas de impedir usurios legtimos de utilizarem um determinado servio de um computador [1]. Um atacante pode modificar programas utilizados em um sistema criptogrfico para produzir resultados de seu conhecimento. Por exemplo: a Universidade da Califrnia em Berkeley desenvolveu um ataque onde o Internet Explorer foi modificado para sempre gerar a mesma chave criptogrfica.
34 CAPTULO 4
4 CERTIFICAO DIGITAL
A Certificao Digital um conjunto de tcnicas e processos que propiciam mais segurana s comunicaes e transaes eletrnicas, permitindo tambm a guarda segura de documentos [17].
4.1 Assinatura digital
O mesmo mtodo de autenticao dos algoritmos de criptografia de chave pblica operando em conjunto com um resumo da mensagem, tambm conhecido como funo de hash 8 , chamado de assinatura digital (figura 8) [16]. O resumo criptogrfico o resultado retornado por uma funo de hash. Este pode ser comparado a uma impresso digital, pois cada documento possui um valor nico de resumo e at mesmo uma pequena alterao no documento, como a insero de um espao em branco, resulta em um resumo completamente diferente.
Figura 8 - Esquema de assinatura digital. Fonte: [16].
A vantagem da utilizao de resumos criptogrficos no processo de autenticao o aumento de desempenho, pois os algoritmos de criptografia
8 A funo de hash uma funo que recebe um conjunto de bits que pode ter tamanho variado e devolve um conjunto de bits de tamanho fixo [37].
35 assimtrica so muito lentos. A submisso de resumos criptogrficos ao processo de ciframento com a chave privada reduz o tempo de operao para gerar uma assinatura por serem os resumos, em geral, muito menores que os documentos em si. Assim, consomem um tempo baixo e uniforme, independente do tamanho do documento a ser assinado. Na assinatura digital, o documento no sofre qualquer alterao e o hash cifrado com a chave privada anexado ao documento.
4.1.1 Propriedades da assinatura digital
So propriedades da assinatura digital [25]. 1. A assinatura autntica: 2. quando um usurio usa a chave pblica de A para verificar uma mensagem, ele confirma que foi A e somente A quem assinou a mensagem; A assinatura no pode ser forjada: 3. somente A conhece sua chave secreta; O documento assinado no pode ser alterado: 4. se houver qualquer alterao no texto criptografado este no poder ser restaurado com o uso da chave pblica de A; A assinatura no reutilizvel: 5. a assinatura uma funo do documento signatrio e no pode ser transferida para outro documento; A assinatura no pode ser repudiada:
o usurio B no precisa de nenhuma ajuda de A para verificar sua assinatura e A no pode negar ter assinado o documento. 4.1.2 Verificao da assinatura digital
Para comprovar uma assinatura digital necessrio realizar duas operaes: calcular o resumo da mensagem do documento e verificar a assinatura com a chave pblica do signatrio. Se forem iguais, a assinatura est correta, o que significa que foi gerada pela chave privada corresponde chave pblica utilizada na verificao e que o documento est ntegro. Caso sejam diferentes, a assinatura est incorreta, o que significa que pode ter havido alteraes no documento ou na assinatura pblica [16].
36 4.1.3 Validade jurdica da assinatura digital
A tcnica de assinatura digital uma forma eficaz de garantir autoria de documentos eletrnicos. Em agosto de 2001, a Medida Provisria (MP) 2.200 garantiu no Brasil a validade jurdica de documentos eletrnicos e a utilizao de certificados digitais para atribuir autenticidade e integridade aos documentos. Este fato tornou a assinatura digital um instrumento vlido juridicamente [16].
4.2 Infra-estrutura de chaves pblicas
Infra-estrutura de chaves pblicas (ICP) ou Public Key Infrastructures (PKI) um ambiente para prover aos negcios eletrnicos condies de viabilidade a fim de que tenham os mesmos resultados daqueles conferidos aos contratos fora da rede. Tal recurso viabiliza a autenticao oficial e a integridade do documento, assim como sua elaborao e a confidencialidade nas operaes e na assinatura digital, garantindo o valor jurdico e precavendo os envolvidos nas negociaes da recusa do que foi firmado anteriormente. Alm dos requisitos de segurana, a ICP conta com leis e decretos elaborados pelo governo federal que possibilitam a legitimidade do negcio digital, quebrando definitivamente o paradigma do uso da Internet para transaes financeiras entre empresas e/ou pessoas fsicas [31].
4.2.1 ICP-Brasil
o rgo que regula um conjunto de entidades governamentais ou de iniciativa privada que so responsveis por assegurar que determinado par de chaves, privada e pblica, pertence ao indivduo correto [37]. A ICP-Brasil foi instituda pela MP 2.200-2, de 24 de agosto de 2001, que cria o Comit Gestor da ICP-Brasil, a Autoridade Certificadora (AC) Raiz Brasileira e define as demais entidades que compem sua estrutura. A partir dessa MP foram elaborados os regulamentos que regem as atividades das entidades integrantes da ICP-Brasil: so as Resolues do Comit Gestor da ICP-Brasil, as Instrues Normativas e outros documentos, que podem ser consultados em legislao [13].
37 A utilizao da tecnologia de assinatura de digital e chave assimtrica pode ser utilizada sem a necessidade certificao, mas juridicamente ela s valida com a certificao de uma AC.
4.2.2 Autoridade Certificadora e Registradora
Uma AC uma entidade, pblica ou privada, que estabelece previamente a identidade do futuro portador do certificado digital (pessoa fsica ou jurdica), por meio dos documentos necessrios, e emite esse certificado. No mbito do Governo Federal, a AC, para ter seus certificados legalmente reconhecidos, o que obrigatrio para transaes com rgos pblicos, tem de ter sido certificada pela AC Raiz, ou seja, pelo Instituto Nacional de Tecnologia da Informao (ITI), que a autoridade responsvel por credenciar as demais ACs, supervisionar e fazer auditoria dos processos para garantir o cumprimento das exigncias de segurana. O estabelecimento prvio da identidade da pessoa e a aprovao da solicitao de certificado so feitos por uma Autoridade Registradora (AR), credenciada por uma AC. Cabe AC estabelecer e fazer cumprir, pelas ARs a ela vinculadas, as polticas de segurana necessrias para garantir a autenticidade da identificao feita, bem como emitir os certificados e public-los em repositrio pblico, ou ainda, renov-los e revog-los, conforme seja o caso [14].
4.2.3 Estrutura hierrquica da AC do Brasil
No topo da estrutura hierrquica encontra-se a AC Raiz (AC Raiz) e, abaixo dela, as diversas entidades (ACs de primeiro e segundo nvel e AR). Na ICP-Brasil, a AC Raiz o ITI, que responsvel tambm pela emisso de seu prprio par de chaves e pela superviso de todos os processos que envolvem a certificao (figura 9) [29]. Atualmente, a ICP Brasil tem credenciadas oito Autoridades Certificadoras de primeiro nvel (Presidncia da Repblica, Secretaria da Receita Federal, Serpro, Caixa Econmica Federal, AC J us, Certisign, Imprensa Oficial de So Paulo - Imesp e Serasa).
38
Figura 9 Estrutura Hierrquica da AC do Brasil. Fonte: [29].
4.3 Certificado digital
O certificado digital um arquivo eletrnico que contm dados de uma pessoa ou instituio, utilizados para comprovar sua identidade. Este arquivo pode estar armazenado em um computador ou em outra mdia, como um token ou um smartcard (figura 10) [7]. Um certificado digital tem dois objetivos: estabelece a identidade do proprietrio e torna disponvel a chave pblica do proprietrio [12].
39
Figura 10 - Token e Smartcard. Fonte: [6].
4.3.1 Padro X.509
Na certificao digital, os certificados seguem um padro internacional. A especificao X.509 um padro internacional que especifica o formato dos certificados digitais, de tal maneira que se possa amarrar firmemente um nome a uma chave pblica. Na ICP-Brasil utiliza-se certificados no padro X.509 v3 [7].
4.3.2 Estrutura de um certificado digital
Um certificado digital normalmente apresenta as seguintes informaes [16]: Nome da pessoa ou entidade a ser associada chave pblica; Perodo de validade do certificado; Chave pblica; Nome e assinatura da entidade que assinou o certificado e Nmero de srie.
A figura 11 apresenta a estrutura de um certificado digital:
40
Figura 11 - Certificado Digital. Fonte: O autor.
4.3.3 Aplicaes da certificao digital
Um exemplo do uso de certificados digitais o servio bancrio provido via internet. Os bancos possuem certificado para autenticar-se perante o cliente, assegurando que o acesso est realmente ocorrendo com o servidor do banco. E o cliente, ao solicitar um servio, como por exemplo, acesso ao saldo da conta corrente, pode utilizar o seu certificado para autenticar-se perante o banco. As dez mais populares aplicaes da certificao digital atualmente so [15]: 1 - A Receita Federal permite que o contribuinte acompanhe o andamento da declarao de Imposto de Renda pela rede, bem como verifique e regularize a situao fiscal, via web. 2 - Alguns cartrios brasileiros, por meio do sistema de certificao digital, permitem a solicitao remota de ofcios, certides de escrituras de imveis, contratos registrados, certides de nascimento, de casamento ou bito, garantindo a autenticidade, a integridade, a segurana e a eficcia jurdica de todos eles.
41 3 - Vrios bancos utilizam os certificados digitais para garantir mais segurana aos clientes e usurios dos servios. 4 - Diversas empresas e rgos pblicos usam certificados digitais para garantir que o stio que o internauta est acessando realmente o buscado, evitando, por exemplo, que o interessado negocie em um stio clonado. 5 - Com o uso do certificado, pode-se assinar digitalmente mensagem de e- mail, garantindo ao destinatrio a autoria do remetente e que o contedo no foi adulterado entre o envio e o recebimento. 6 - Processos judiciais foram acelerados com a criao da Autoridade Certificadora do J udicirio (AC-J US), que facilitou a utilizao da certificao digital nos tribunais, conferindo segurana e agilidade aos processos. 7 - O Sistema de Pagamentos Brasileiros (SPB) usa a certificao digital da ICP-Brasil. 8 - A Nota Fiscal Eletrnica (e-NF) j nasceu atrelada certificao digital. Essa iniciativa est sendo testada em grandes empresas e dever ser estendida a todas s pessoas jurdicas. Com isso, haver maior segurana na arrecadao, reduo de custos em todo o processo, alm da enorme economia de papel. 9 - No ProUni (Programa Universidade para Todos), cada entidade participante digitalmente autenticada. 10 - O INSS (Instituto Nacional de Seguridade Social), em novembro de 2006, anunciou que vai usar certificao digital nos escritrios para evitar fraudes.
42 CAPTULO 5
5 PROTOCOLOS CRIPTOGRFICOS
Qualquer sistema criptogrfico quando utilizado apenas para ciframento e deciframento tem uma utilidade limitada. Para obter uma soluo completa, deve haver a unio da tecnologia criptogrfica com outras que possibilite soluo para algum tipo de problema (como envio de mensagens com segurana, autenticao de usurios, etc.) [34]. Surgiu ento a necessidade de serem criados protocolos que solucionassem esses problemas. Um protocolo, na cincia da computao, nada mais que uma padronizao de procedimentos computacionais para haja uma comunicao entre dois ou mais computadores. Entende-se por protocolos criptogrficos, aqueles protocolos que se utilizam de criptografia em um ou mais de seus passos [34]. Tm por objetivo satisfazer requisitos de segurana e permitir que dois ou mais usurios possam trocar contedo eletrnico, sem que algum deles possa ter alguma vantagem ilegtima sobre os demais ou que terceiros consigam acessar indevidamente as informaes transmitidas entre as entidades [26].
5.1 Protocolo SSL
Secure Sockets Layer (SSL) um protocolo de comunicao que fornece confidencialidade e integridade na comunicao entre um cliente e um servidor, atravs do uso de criptografia [7].
Figura 12 Esquema sem e com SSL. Fonte: [35].
43 A Netscape Communications foi a desenvolvedora do SSL a verso inicial foi lanada em julho de 1994. Distribudo junto os navegadores Netscape e Internet Explorer e os servidores web mais comuns Apache, NCSA HTTPD, IIS, Netscape Server etc. [21]. O SSL um protocolo proprietrio, ou seja, seu cdigo fonte restrito ao desenvolvedor, por isso em 1997 foi criado um grupo de trabalho na internet Engineering Task Force (IETF), que uma organizao que desenvolve os padres da Internet, para construir um padro, aberto, que garanta conexes seguras na internet. Foi padronizado pela RFC2246 e RFC4346. O nome escolhido para esta verso foi Transport Layer Security (TLS) e baseado no SSL v3 da Netscape, a seguir algumas diferenas entre os protocolos [8]: TLS usa o algoritmo keyed-Hashing for Message Authentication Code (HMAC) enquanto o SSL apenas Message Authentication Code (MAC). O algoritmo HMAC produz hashes mais seguros que o algoritmo MAC; No TLS nem sempre necessrio recorrer raiz de uma AC para usar uma certificao. Pode ser usada uma autoridade intermediria; O TLS apresenta novas mensagens de alerta [8]; SSL ser o termo utilizado na continuao deste trabalho e aplicado para ambos os protocolos, exceto se comparados.
5.1.1 Objeti vos
Os objetivos do protocolo SSL, em ordem de prioridade, so [8]: 1. Segurana com criptografia: SSL deve ser usado para estabelecer uma conexo segura entre duas entidades. 2. Interoperabilidade: Programadores independentes devem conseguir desenvolver aplicaes utilizando SSL que possam trocar parmetros criptogrficos sem um conhecer o cdigo do outro. 3. Extensibilidade: SSL busca o fornecimento de uma estrutura (framework), em que novos mtodos de criptografia simtrica e assimtrica podem ser adicionados, sem a necessidade da implementao de uma nova biblioteca de segurana. 4. Eficincia Relativa: Operaes de criptografia, principalmente de chave pblica, exigem um alto processamento. Sendo assim, o protocolo SSL incorporou
44 um mecanismo de armazenamento para evitar que toda conexo ao ser estabelecida no precise processar operaes de criptografia. Com isso, reduz-se tambm a atividade da rede.
5.1.2 SSL e a pilha de protocolos TCP/IP
Como o prprio nome indica (Camada de Soquete Seguro), conexes SSL agem como soquetes conectados por TCP. Portanto, pode-se pensar a conexo SSL como conexes TCP seguras desde que o lugar do SSL na pilha de protocolos imediatamente acima do TCP e logo abaixo da camada de aplicao, como mostra a figura 13 [30].
Figura 13 - SSL e a pilha de protocolos TCP/IP. Fonte: [20].
O TLS/SSL possui trs subprotocolos que permitem s partes chegarem a um acordo sobre os parmetros de segurana que sero utilizados na camada de registro para autenticao, comunicao e para reportar condies de erro entre as partes.
45 5.1.3 Protocolo Handshake
O protocolo de Handshake responsvel pelos seguintes itens [8]: Identificador da sesso: uma seqncia de bytes escolhida pelo servidor para identificar uma sesso ativa ou uma sesso reinicivel. Mtodo de compresso: qual o mtodo de compresso que ser utilizado antes da criptografia dos dados. Cipher Spec: especifica qual o algoritmo de criptografia vai ser utilizado, por exemplo, DES. Qual algoritmo de MAC (MD5, SHA) que vai ser utilizado. E define alguns atributos criptogrficos como, por exemplo, o tamanho do hash. Chave Mestre (master key): chave secreta de 48 bytes que ser compartilhada entre o cliente e o servidor. Is Resumable: semforo que indica se a sesso pode ser utilizada para iniciar novas conexes. Com os itens acima so criados os parmetros de segurana para serem usados pela Camada de Registro para proteger os dados. Muitas conexes podem ser retomadas usando a mesma sesso, caso essa caracterstica seja suportada pela mesma. Isso evita que todos os parmetros de segurana tenham que ser novamente negociados.
5.1.4 Protocolo Change Cipher Spec
O protocolo Change Cipher Spec existe para sinalizar mudanas nas estratgias de criptografia que estavam sendo utilizadas. Este protocolo formado por apenas uma mensagem, a qual cifrada e comprimida com os parmetros que estavam previamente estabelecidos [8]. A mensagem Change Cipher Spec enviada por ambos, cliente e servidor, para que cada um deles passe a usar as novas regras de criptografia que foram negociadas. Um cuidado deve ser tomado ao fazer as alteraes nas estratgias de criptografia, pois existe a possibilidade de que o primeiro a receber a mensagem de troca de estratgia possa ainda estar computando uma mensagem que recebeu
46 anteriormente, j que os algoritmos de chave pblica demandam muito processamento. Para resolver isso, deve ser esperado um tempo antes de mandar essa mensagem para garantir que o outro lado no perder informaes.
5.1.5 Protocolo de Alerta
Um dos tipos de contedo suportado pela camada de registros do SSL o contedo de alerta [8]. As mensagens de alerta transportam a importncia do alerta e a descrio do alerta. Mensagens com importncia denominada fatal resultam imediatamente no encerramento da conexo. Nesse caso outras conexes correspondendo mesma sesso podem continuar, mas o identificador da sesso deve ser invalidado, prevenindo que essa sesso seja utilizada posteriormente para estabelecer novas conexes. Assim como as outras mensagens do SSL os alertas tambm so cifrados e comprimidos de acordo com os parmetros de segurana que esto ativos no momento em que a mensagem enviada. Tipos de mensagem de alerta: 1. Alertas de Encerramento: So utilizados para informar s partes que a conexo ser encerrada, evitando assim ataques por truncamento. Todos os dados recebidos aps o recebimento de uma mensagem de encerramento so descartados. 2. Alertas de Erro: O tratamento de erros pelo SSL Handshake Protocol muito simples. Quando um erro detectado, quem detectou o erro envia um alerta para o outro lado. Se for um alerta fatal, imediatamente ambos terminam a conexo. Clientes e servidores devem esquecer quaisquer identificadores de sesses e chaves secretas associados com uma conexo que falhou. Por conseguinte qualquer conexo que tenha sido encerrada por um alerta fatal no pode ser restabelecida. Exemplos de mensagem de erro so [5]: unexpected_message
: fatal, indica o recebimento de uma mensagem fora de ordem; close_ warning, sinaliza o fechamento de uma conexo SSL;
47 bad_record_mac
: fatal, indica que a verificao do MAC da mensagem recebida no coincidiu; decompression_failure
: fatal, indica que o processo de descompactao resultou num bloco maior que 214 bytes; handshake_failure
: fatal, indica algum problema na negociao das informaes de segurana; no_certificate
: indica que o cliente no possui nenhum certificado que coincida com os tipos pedidos; bad_certificate
: indica que o certificado recebido possui uma assinatura no vlida; unsupported_certificate
: indica recepo de certificado no suportado; certificate_revoked
: indica que o certificado foi revogado por quem o assinou; certificate_expired
: indica que a data de validez do certificado expirou ou, de que este ainda no esta vlido; certificate_unknown
: indica qualquer outro problema relacionado com falhas no certificado; illegal_parameter
: fatal, indica que algum campo de alguma mensagem trafegada durante o handshake est fora do seu intervalo ou incoerente com outro campo. 5.1.6 Camada de Registro
O SSL utiliza esta camada para encapsular todas as mensagens dos demais protocolos das camadas superiores, explicando a sua independncia com os protocolos de aplicao, facilitando o desenvolvimento de aplicaes que necessitam de conexes seguras [8]. Enquanto os protocolos handshaking realizam a negociao de parmetros de segurana, o protocolo de Registro quem realmente efetua as operaes necessrias para garantir a segurana da conexo. O protocolo de Registro recebe as mensagens para serem transmitidas, fragmenta os dados em blocos, opcionalmente realiza a compresso dos dados, aplica o MAC, cifra e transmite o resultado. Logicamente, com os dados recebidos, o protocolo de Registro realiza a decriptao, verificao da integridade, realiza descompresso, reagrupa os blocos e os entrega para as camadas superiores.
48 5.1.7 Como funciona o incio da conexo
O cliente envia uma hello message (figura 14) para a qual o servidor deve responder com uma outra hello message, caso contrrio um erro fatal ocorrer e a conexo falhar. O hello do cliente e o do servidor utilizado para estabelecer capacidades de segurana entre o cliente e o servidor [30]. Esses hello's estabelecem os seguintes atributos: verso do protocolo, identificao da sesso, conjunto de cifras e mtodos de compresso. Adicionalmente, dois valores randmicos so gerados e trocados: ClientHello.random e ServerHello.random. A seguir, o servidor enviar o seu certificado, se este for autenticado. Adicionalmente, uma mensagem de trocas de chave do servidor pode ser enviada, se necessrio (por exemplo, se o servidor no possuir certificado ou se o seu certificado for apenas para assinatura). Se o servidor est autenticado, ele pode solicitar um certificado do cliente. Agora o servidor enviar uma mensagem hello concludo, indicando que a fase hello message do handshake est completa. O servidor ir, ento, esperar por uma resposta do cliente. Se o servidor tiver enviado uma mensagem de solicitao de certificado, o cliente deve enviar o seu certificado ou uma mensagem de alerta de que no h certificado (no_certificate alert). A mensagem de troca de chaves do cliente , ento, enviada, e o contedo desta mensagem depender do algoritmo assimtrico escolhido durante o hello do cliente e o hello do servidor. Se o cliente enviou um certificado com possibilidade de assinatura, uma mensagem de verificao digital do certificado (digitally-signed cerfiticate verify message) enviada para verificar, explicitamente, o certificado. Nesse momento, uma mensagem de mudana de especificao da cifra enviada pelo cliente, e o cliente copia a Especificao de Cifra (Cipher Spec) da cifra pendente na Especificao atual. O cliente envia, ento, imediatamente a mensagem de finalizao, juntamente com os novos algoritmos, chaves e segredos.
49
Figura 14 - Conexo Inicial SSL. Fonte: [20].
Em resposta, o servidor enviar sua mensagem de mudana de Cipher Spec, transferindo a cifra pendente para a Especificao atual e envia sua mensagem de finalizao juntamente com a nova Cipher Spec.
50 Nesse momento, o handshake est completo e o cliente e o servidor podem comear a trocar dados na camada de aplicao.
5.1.8 Identificando um stio com SSL
Existem pelo menos dois itens que podem ser visualizados na janela do seu navegador, e que significam que os dados transmitidos entre o navegador e o stio visitado esto dentro de uma sesso segura: Na parte superior, na barra de endereos, pode se observar que o endereo digitado comea com HTTPS 9 Na parte inferior, na barra de status, deve aparecer o cadeado (figura 16); ao invs do HTTP (figura 15); Nos Browsers atuais, existem mais elementos que mostram o acesso a um stio seguro como a mudana de cor e a presena do cadeado na barra de endereos.
Figura 15 Barra de endereos com SSL. Fonte: O autor
Figura 16 Barra de status com SSL. Fonte: O autor
Ao clicar sobre o cadeado possvel visualizar as propriedades de segurana: identidade do stio, tipo de criptografia utilizada e o certificado de segurana (figura 17).
9 HTTPS a combinao do protocolo HTTP com o SSL. a maneira mais comum atualmente de trafegar documentos via HTTP de maneira segura. Prov cifragem de dados, autenticao de servidor, integridade de mensagem e autenticao de cliente [22].
51
Figura 17 Propriedades de segurana de um stio. Fonte: O autor
5.1.9 Certificado gerado pelo OpenSSL
O OpenSSL um kit de ferramentas que implementa os protocolos SSL e o TLS, alm de prover diversas ferramentas de criptografia. Apndice A apresenta como gerar certificados no OpenSSL. Na figura 18, apresentado um exemplo de um certificado criado no OpenSSL.
5.2 IPSec
O Internet Protocol Security (IPSec) define um conjunto de protocolos para implementao de servios de segurana na camada de rede. A figura 19 mostra a localizao deste protocolo na pilha do TCP/IP.
52
Figura 18 - Certificado gerado a partir do SSL. Fonte: O autor
HTTP POP FTP TCP IP/IPSEC
Figura 19 Localizao do IPSec na pilha de protocolo TCP/IP. Fonte: O autor.
Baseado em padres desenvolvidos pela IETF o IPSec busca garantir confidencialidade, integridade e autenticidade na comunicao entre dois
53 computadores, mesmo que as informaes trafeguem por um meio no seguro, como por exemplo, a internet [5].
5.2.1 Security Association
Para transferncias dos dados entre a origem e o destino, o IPSec trabalha com o conceito de Security Association (SA), trata-se de um tnel no qual sero enviadas as informaes entre os computadores ou gateways. As SA's so limitadas a um protocolo por conexo, logo no processo de comunicao entre duas entidades pode ter mais de uma SA. Para estabelecer as SA's o IPsec utiliza o protocolo Internet Key Exchange (IKE), que realiza a negociao entre as entidades e a troca das chaves criptogrficas, que sero utilizadas nas transaes.
5.2.2 Protocolos
Os servios de segurana oferecido pelo IPSec atravs de seus protocolos so: Estabelecer a conexo segura entre origem e destino; Controle de acesso; Autenticao da origem dos dados; No aceita pacotes repetidos; Criptografia dos pacotes.
Alm do protocolo IKE citado no item de SA, tem-se:
Protocolo AH
Authentication Header (AH) implementa os servios de integridade e autenticao dos dados, usando algoritmos de chave publica como MD5 e o SHA-1, com isso ataques do tipo homem-ao-meio 10
10 Homem-ao-Meio O atacante se coloca entre as duas entidades recebendo e falsificando a mensagens. so evitados. Uma desvantagem do
54 AH que ele no realiza a cifragem dos dados, essa desvantagem pode ser corrigida com o uso de outro protocolo o ESP. A figura 20 mostra os campos do AH [5].
Prximo Cabealho Tamanho do contedo AH Reservado Parmetros de Segurana Nmero de seqncia Dados de Autenticao
Figura 20 Protocolo AH. Fonte: O autor.
Protocolo ESP
Encapsulating Security Payload (ESP) implementa o servio de cifragem dos dados, confidencialidade, o que garante que somente o destinatrio ter acesso ao contedo da mensagem, porm o protocolo ESP no verifica a integridade do cabealho do pacote, j o protocolo AH faz essa checagem. A figura 21 mostra os campos do ESP.
Parmetros de Segurana Nmero de seqncia Dados de Carga Enchimento Tamanho do enchimento Prximo Cabealho Dados de Autenticao
Figura 21 Protocolo ESP. Fonte: O autor.
Para estabelecer uma conexo IPSec com maior segurana, pode-se implementar os dois protocolos, AH e ESP, mas como as SA's so simplex, ou seja, os dados s so transferidos em um sentido e suportando, apenas um protocolo, por
55 isso, deve ter uma SA para cada protocolo. Segue a figura 22 com uma ilustrao das SA's criadas em uma conexo IPSec.
5.2.3 Funcionamento do protocolo
O IPSec opera de duas formas: Transporte e Tnel. A diferena entre os modos de trabalho que, no modo transporte a SA estabelecida de host 11 para host, j o modo tnel a SA estabelecida entre os Gateways 12 de cada host. A figura 23 ilustra o funcionamento do IPSec das duas formas [4].
Figura 22 SA's criadas em conexo IPSec. Fonte: O autor
Figura 23 Formas de funcionamento do IPSec. Fonte: O autor
11 Host Computador conectado a rede. 12 Gateway Equipamento que interliga duas redes.
56 No modo de transporte, a mensagem cifrada, mas o cabealho IP no. A vantagem que como os dispositivos da rede pblica tem acesso nas informaes de origem e destino do pacote, processamentos sobre o pacote que viso melhorar o desempenho do trfego, podem ser implementados. A desvantagem que nesse modo um atacante pode analisar o trfego, mesmo ela estando cifrada. No modo de tnel todo o datagrama 13 5.2.4 Tecnologias de Criptografia , mensagem e cabealho so cifrados. O que permite que um dispositivo de rede, o gateway de origem, implemente a segurana do IPSec nos pacotes, realizando a cifragem no lugar dos hosts, e enviando, atravs da SA, ao gateway de destino que decifra e repassa ao host. A primeira vantagem que as entidades de destino no precisam ser modificadas para suportar o IPSec e a segunda proteger contra a anlise de trfego [28].
So tecnologias empregadas pelo IPSec para garantir a segurana [28]: Mecanismo de troca de chaves de Diffie-Hellman; Criptografia de chave pblica para assinar as trocas de chave de Diffie- Hellman, garantindo assim a identidade das duas partes e evitando ataques do tipo homen-ao-meio; Algoritmos simtricos para cifragem para grandes volumes de dados, como o DES; Algoritmos para clculo de hash com utilizao de chaves, com o HMAC, combinado com os algoritmos de hash tradicionais como o MD5 ou SHA, autenticando os pacotes; Certificados digitais assinados por uma autoridade certificadora, que agem como identidades digitais.
5.3 SET
O protocolo Secure Eletronic Transaction (SET), que em portugus significa transaes eletrnicas seguras, foi desenvolvido por um conjunto de empresa,
13 Datagrama bloco de informaes que trafega em uma rede.
57 dentre elas, Visa, Mastercard, IBM e Microsoft. Este protocolo oferece uma estrutura para proteger as transaes do comercio eletrnico, pois autentica os donos de cartes de crdito, comerciantes e bancos, define os protocolos e algoritmos para garantir a integridade e confidencialidade dos dados [24] [5]. O protocolo SET de fcil implementao e no demanda muitas alteraes nos sistemas das operadoras, bancos e clientes, o que facilita a aceitao no mercado [24].
5.3.1 Requisitos de negcio
Fornecer confidencialidade para as informaes de pagamento e pedido; Garantir a integridade dos dados transmitidos; Autenticar que o usurio do carto realmente dono da conta vinculada a ele; Montar a estrutura de autenticao entre o comerciante e a sua instituio financeira, para que o vendedor possa aceitar a transao de pagamento do cliente, via carto de crdito; Garantir o uso das melhores prticas e tcnicas de sistemas que protejam as transaes; Desenvolver um protocolo que no dependa de segurana no nvel de transporte e nem evite a utilizao; Facilitar e incentivar a interoperabilidade para adaptao de softwares e da rede de comunicao.
5.3.2 Recursos do protocolo
Os recursos necessrios para garantir os requisitos citados acima so: Confidencialidade garantida com o uso do algoritmo DES; Integridade garantida com uso de assinaturas digitais utilizando o algoritmo RSA; Autenticao do portador do carto realizada com assinaturas digitais e certificados X.509 v3; Interoperabilidade permite a utilizao do SET em diversas plataformas de hardware e software.
58 5.3.3 Entidades do protocolo
Emissor: Instituio financeira que fornece o carto para cliente, ele responsvel por realizar o pagamento das compras. Cliente: Pessoa autorizada a utilizar o carto, o protocolo SET fornece os servios de confidencialidade para as transaes on-line como os comerciantes. Comerciante: Qualquer entidade que venda produtos e ou servios via internet e para aceitar o pagamento eletrnico, o comerciante precisa de um banco. Banco do comerciante: Fornece os servios de processamentos dos pagamentos para o comerciante, de forma resumida, o banco paga o comerciante e o emissor paga o banco. Portal de Pagamento: Processam as mensagens de pagamento do comerciante, este papel pode ser desempenhado por um terceiro, porm em algum momento dever existir a interao entre o comerciante e seu banco [5]. A figura 24 ilustra as interaes das entidades do protocolo SET.
Figura 24 Interao SET. Fonte: O autor.
59 5.3.4 Assinatura dupla
Este conceito, tambm conhecido como assinatura dual, foi introduzido pelo protocolo SET, este tipo de assinatura permite que duas informaes sejam enviadas para duas entidades diferentes em uma mesma mensagem. Essa tcnica aplicada quando o cliente envia o pedido para o comerciante, junto com o pedido o cliente envia tambm as informaes de pagamento, que so destinadas ao portal de pagamento. Com isso o cliente no pode negar que fez um pedido e nem comerciante pode cobrar por produtos que no foram solicitados.
5.3.5 Certificados
Os certificados do SET so privados e apenas os sistemas que compatveis com SET podem interpret-los. Todas as entidades possuem um certificado, para utilizarem nas transaes. O SET define tambm que os certificados devem ser gerenciados por uma hierarquia, ilustrada na figura 25. Desta forma, as entidades podem checar os certificados entre si, utilizando para isso, a chave pblica emitida pela certificadora de raiz.
Autoridade Certificadora de Raiz
Figura 25 Hierarquia de certificados. Fonte: [5].
60 Com o SET as transaes on-line de compra pela internet ficaram mais seguras, pois a arquitetura utilizada implementa duas solues importantssimas: 1. Todas as mensagens do processo de compra entre as entidades esto criptografas, o que impede o acesso informao por elementos que no faam parte do processo. 2. Implementar a confiana na transao, ou seja, uma entidade ao receber uma informao pode confirmar a veracidade da mesma, graas ao esquema de assinaturas digitais.
61 CAPTULO 6
6 CONCLUSES
Ao longo da histria, o homem sempre necessitou ocultar informaes. Um exemplo so as guerras, onde as informaes no podem cair em mos inimigas. Surgiu-se ento a necessidade de garantir a segurana da informao. Uma tecnologia utilizada para este fim a criptografia, que transforma uma informao legvel a qualquer interessado, em uma informao cifrada. Com o surgimento dos computadores, desenvolveu-se a criptografia computacional, tendo em vista manter seguro as informaes geradas e armazenadas em computadores e assim possibilitar que os objetivos da segurana da informao sejam alcanados. A internet e a capacidade de processamento sempre crescente fizeram com que, a criptografia isoladamente no resolvesse todos os problemas com a segurana da informao. Impulsionado por esse problema, surgiram ento os protocolos criptogrficos. Assim, a internet tornou-se um canal seguro para uma diversa gama de servios. A certificao digital veio para garantir a autenticidade dos usurios na Internet e fez com que os protocolos precisassem de adequaes, tornando-os cada vez mais seguros. A criptografia um elemento essencial nos protocolos criptogrficos para garantir a confidencialidade dos dados durante o trfego na rede, sendo utilizada tanto a criptografia de chave pblica como a simtrica, assim como as funes de hash criptogrficos. H uma infinidade de protocolos criptogrficos. No h um melhor que o outro. Deve ser levada em considerao a aplicao a ser processada sobre ele. Nesse trabalho foram abordados os protocolos: SSL, IPSec e SET. Os trs, basicamente, tm o mesmo conceito, mas diferem em alguns aspectos mais especficos, tais como: O SSL situa-se entre a camada de aplicao e a de transporte e um software faz a sua implementao, j o IPSec est situado sob a camada de rede, ele permite o trfego de alguns tipos de dados que o SSL no permite e sua implementao realizada pelo sistema operacional.
62 No exemplo prtico apresentado nesta monografia, foi adotado o protocolo SSL, pois ele largamente utilizado por stios na internet. Foi utilizado a ferramenta OpenSSL para implementar o protocolo e o servidor web mais utilizado do mundo, o Apache. O Apndice A orienta na instalao e a configurao do Apache para suportar o SSL, visando apresentar uma maneira de ser instalado e configurado um servidor seguro para hospedar um stio seguro. O objetivo desse trabalho foi demonstrar como a internet, que um meio inseguro, pode tornar-se um ambiente seguro, o que possvel graas ao surgimento e aperfeioamento contnuo dos protocolos criptogrficos. Este trabalho teve uma limitao de aprofundamento tcnico devido complexidade do tema em relao ao curto espao de tempo disponvel e pela dificuldade de se encontrar exemplos reais e atuais de uso dos protocolos criptogrficos, devido confidencialidade que as empresas adotam em suas polticas de segurana da informao. Trabalhos futuros podero fazer uma abordagem mais prtica de determinado protocolo, a partir deste, no necessitando abordar toda a teoria envolvida e podendo assim se focar, por exemplo, em uma implementao em linguagem de programao, como: J ava, PHP ou .NET.
63 REFERNCIAS
[1] ALECRIM, Emerson. Ataques DoS (Denial of Service) e DDoS (Distributed DoS). Disponvel em: <http://www.infowester.com/col091004.php>. Acesso em: 15 mai. 2008.
[2] ALMEIDA, Andr L. de Souza; SILVA, J ussara R. Freitas. Chave de segurana. Trabalho de Concluso de Curso (Ps Graduao em Projeto, Suporte e Administrao de Rede de Computadores) Centro Universitrio de Volta Redonda, Volta Redonda.
[3] AMARO, George. Criptografia simtrica e criptografia de chave pblica: Vantagens e desvantagens. Disponvel em: <http://publica.fesppr.br/index.php/rnti/article/viewFile/33/20>. Acesso em: 06 mar. 2008.
[4] ASSIS, J oo Mrio de. Implementando VPN em Linux. 2003. 76 f. Monografia (Ps-graduao em Informtica) Universidade Federal de Lavras, Lavras, 2003.
[5] BURNETT, S.; PAINE, S. Criptografia e segurana O guia oficial RSA. 1. ed. Rio de J aneiro: Campus, 2002.
[10] FILHO, Antonio M. da Silva. Segurana da Informao: Sobre a necessidade de proteo de Sistemas de Informaes. Revista Espao Acadmico. n 42, nov. 2004.
[11] Histria e aplicao da Criptografia. Disponvel em: <http://www.absoluta.org/cripty/cripty_h.htm>. Acesso em: 14 mar. 2008.
[14] ______. O que uma autoridade certificadora. Disponvel em: <https://www.icpbrasil.gov.br/duvidas/faq/o-que-e-uma-autoridade-certificadora>. Acesso em: 28 mar. 2008.
[15] INTEL. Curso on-line de Certificao digital. Disponvel em: <http://www.nextg.com.br>. Acesso em: 31 mar. 2008.
[16] ITI (Brasil). O que certificao digital? Disponvel em: <http://www.iti.br/twiki/pub/Certificacao/CartilhasCd/brochura01.pdf>. Acesso em: 28 fev. 2008.
[18] KUNZ, Leonardo. Esteganografia em imagens usando codificao de Huffman. Disponvel em: <http://www.inf.ufrgs.br/~lkunz/cpd/>Acesso em: 29 fev. 2008.
65
[19] LAUREANO, Marcos A. Pchek. Gesto de Segurana da Informao. Disponvel em: <http://www.mlaureano.org/aulas_material/gst/apostila_versao_20.pdf>. Acesso em: 22 mar. 2008.
[20] MAJ , Artur. Apache 2 with SSL/TLS: Step-by-Step, Part 1. Disponvel em: <http://www.securityfocus.com/infocus/1818&h=778&w=576&sz=64&hl=pt- BR&start=2&um=1&tbnid=gJ YubZb34HfZeM:&tbnh=142>. Acesso em: 01 mai. 2008.
[21] MENDES, Hammurabi das Chagas. Uma implementao livre do protocolo SSL. 2003. Trabalho da disciplina Segurana de dados Universidade de Braslia, Braslia, 2003.
[23] PEREIRA, Samris Ramiro. O Sistema criptogrfico de Chave Pblica RSA. 2008. 222 f. Dissertao (Mestrado em Informtica) Universidade Catlica de Santos, Santos, 2008.
[24] PETRY, Hel. Protocolo SET: Uma soluo para segurana em comrcio eletrnico. Departamento de Informtica e estatistica Universidade Federal de Santa Catarina, Florianpolis.
[28] ______. IPSec Protocolo de segurana IP. Departamento de Engenharia Eletrnica e de Computao (DEL) - Escola Politcnica/Universidade Federal do Rio de J aneiro, Rio de J aneiro, 2003.
[29] RIBEIRO, Gisele. Como funciona o certificado digital? Disponvel em: <http://informatica.hsw.uol.com.br/certificado-digital3.htm>. Acesso em: 13 abr. 2008.
[30] SILVA, Andr T. Souza. Uma implementao SSL utilizando J SSE. 2004. Trabalho da disciplina Segurana de dados Universidade de Braslia, Braslia, 2004.
[31] SILVA, Lino Sarlo da. Public Key Infrastructure PKI. Novatec, 2004.
[32] SINGH, Simn. Los cdigos secretos El arte y la cincia de la criptografia, desde el antiguo Egipto a la era Internet. Disponvel em: <personal.telefonica.terra.es/web/jms32/cifra/codsecretos>. Acesso em: 22 mar. 2008.
[33] STREBE, Matthew; PERKINS, Charles. Firewall. 1. ed. So Paulo: Makron Books, 2002. 411 p.
[35] THOMAS, Stephen, SSL and TLS Essencials Securing the Web. Estados Unidos da Amrica: Wiley, 2000.
67 [36] VELOSO, Caio J . Martins. Criptologia Uma cincia fundamental para tratamento de informaes sigilosas. Disponvel em: <http://www.modulo.com.br/index.jsp?page=3&catid=17&objid=23&pagenumber=0&i diom=0>. Acesso em: 14 fev. 2008.
[37] VERISSIMO, Fernando. Um estudo sobre a ICP-Brasil. Rio de J aneiro, 2002. Disponvel em: <http://www.abc.org.br/~verissimo/textos/icpbrasil.pdf>. Acesso em: 26 mar. 2008.
[38] VILLELA, S. M.; CARVALHO, L. A. V. O resfriamento simulado no projeto timo de autmatos celulares para a gerao de chaves criptogrficas de fluxo. Disponvel em: <http://www.cos.ufrj.br/~ines/enia07_html/pdf/27815.pdf> Acesso em: 23 mar. 2008.
68 APNDICE A - Tutorial de instalao e configurao Apache+SSL em ambiente Windows
A.1 Introduo
Esse tutorial visa mostrar a configurao do servidor Apache, o qual o servidor HTTP mais utilizado no mundo, para trabalhar com o protocolo SSL. Para realizar a configurao, ser necessrio fazer o download dos arquivos de instalao do servidor Apache, OpenSSL, para gerar o certificado e as chaves que sero utilizadas e o mdulo SSL utilizado no Apache.
Aps realizado os downloads, o prximo passo ser instalar o Apache. 1. Execute o arquivo de instalao do Apache; 2. Leia e caso concorde com o termo de uso o aceite; 3. A seguir a um breve resumo sobre o Apache, avance para o prximo passo; 4. Configurar os parmetros iniciais do Apache (figura 26). Network Domain: Domnio do stio (Ex.: apache.org);
69 Server Name: Nome do servidor (Ex.: www.apache.org); Administrators E-mail Address: E-mail do administrador do stio (Ex.: admin@apache.org).
Figura 26 Tela de configurao inicial do servidor. Fonte: O autor
5. Escolha instalao tpica (instalao padro); 6. Escolha o diretrio a ser instalado; 7. Clique em instalar e aguarde o trmino.
OpenSSL
Da mesma forma aps realizado o download execute o arquivo de instalao do OpenSSL e siga os passos: 1. Leia e caso concorde com o termo de uso aceite-o; 2. Escolha o diretrio onde ser instalado; 3. Criao do atalho no menu iniciar, avance; 4. Clique em instalar e aguarde o trmino.
70 A.3 Criando Certificado SSL de teste
Antes de comear a configurao do SSL no Apache, necessrio criar um certificado de teste para a sesso segura. Este certificado no tem juridicamente nenhuma validade, pois ele no gerado por uma AC. Para ter validade ser necessrio adquirir um certificado SSL para servidor com uma AC. Abra o Prompt de comando, execute o comando para ir at o diretrio do OpenSSL: C:\Documents and Settings\Administrador>cd c:\OpenSSL\bin. Em seguida, crie o certificado que ser utilizado no servidor com seguinte comando: openssl req -config openssl.cnf -new -out cert_tcc.csr. O cert_tcc.csr pode ser substitudo pelo nome que voc deseja dar ao certificado. Aps a execuo do comando, ser gerada a chave privada. Em seguida ser pedida a criao de uma senha e a confirmao dela. O programa ir verificar e entrar automaticamente no prximo passo que o preenchimento das propriedades do certificado: Nome do pas (2 letras): BR; Nome do estado (nome completo): So Paulo; Nome da cidade: So Bernardo do Campo; Nome da organizao: TCC Protocolo Criptogrfico; Nome da unidade organizacional: Tutorial SSL; Nome comum: www.tccpc.com.br; Endereo de e-mail: admin@tccpc.com.br; Atributos extras: challenge pass: segredo; Nome opcional da companhia: tcc. Depois de gerado o certificado v at o diretrio /bin do OpenSSL, e apague um arquivo .rnd, porque tem a semente que foi utilizado para gerar a chave. Retornando ao prompt, execute o comando: openssl rsa -in privkey.pem -out tccpc.key, para remover a senha da chave (tccpc.key o nome da sua chave para o servidor, pode ser usado qualquer nome). Ser pedido a senha que foi utilizada na gerao da chave privada. Agora execute o comando: openssl x509 -in cert_tcc.csr -out cert_tcc.cert - req -signkey tccpc.key -days 365. Esse comando assina o certificado e configura o tempo de validade do certificado.
71 Aps esse comando, v na pasta /bin do OpenSSL e copie os arquivos tccpc.key e cert_tcc.cert para o diretrio /conf do Apache.
A.4 Configurando Apache para suportar o SSL
Aps gerar o certificado SSL de teste para o servidor, necessrio configurar o Apache para suportar o SSL. Antes de abrir o arquivo de configurao, copie para /modules do Apache o mdulo SSL mod_ssl.so que foi baixado. Abra o arquivo de configurao do Apache httpd.conf, que est dentro da pasta /Apache2.2/conf. Localize as linha #LoadModule ssl_module modules/mod_ssl.so e #Include conf/extra/httpd-ssl.conf e descomente as linha, ou seja, retire o caractere # no inicio das linhas. Verifique se no arquivo h o bloco de PRNG abaixo: <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule>
Salve o arquivo e v at o diretrio /conf/extra/ e abra o arquivo httpd- ssl.conf. Localize a linha SSLCertificateFile e troque o certificado padro pelo gerado anteriormente cert_tcc.cert". Localize a linha SSLCertificateKeyFile e troque a chave padro pela a gerada tccpc.key. Aps essa configurao salve o arquivo e reinicie o servio do Apache (utilize o Apache Service Monitor).
A.5 Testando o servidor Apache+SSL
Para testar se o servio foi configurado corretamente, abra o seu navegador e na barra de endereos digite: https://localhost.
72 Se o servidor estiver funcionando, ele dever abrir uma janela de Certificado de uma AC desconhecida (figura 27), j que o certificado gerado no tem valor legal. Nessa tela, tem a opo de visualizar o certificado antes de aceit-lo ou recus-lo. Clique em Examinar certificado. Dever aparecer o certificado conforme foi configurado na gerao dele (figura 28).
Figura 27 Alerta de certificado desconhecido. Fonte: O autor.
Figura 28 Certificado gerado para o servidor Apache. Fonte: O autor.
73 Voltando a tela de Certificado desconhecido, h as seguintes opes: Aceitar permanentemente, aceitar temporariamente e no aceitar o certificado. Escolha uma das opes de aceite, para iniciar a sesso segura. Dever aparecer em seguida outra janela de erro (figura 29). Esse erro devido ao Common Name (CN) ser diferente ao domnio do stio (www.tccpc.com.br diferente de localhost), clique em OK.
Figura 29 Erro de verificao de domnio. Fonte: O autor
Dever exibir a pgina padro do Apache com a mensagem It works. Pronto! O servidor Apache+SSL est funcionando e pronto para hospedar stios para operar em ambiente seguro.