Criptografia

Autora: Sabrina Aparecida Timofiecsyk

 

 

1. Definições

1.1. Criptografia

Criptografar é transformar uma informação qualquer em um código, de maneira que ninguém, a não ser o destinatário, seja capaz de acessar seu conteúdo. É através desse sistema, que as páginas seguras (shttp), como, por exemplo, as páginas de compras on-line e de home banking, funcionam [5].

A criptografia é antiga. Júlio César a utilizava para se comunicar em batalhas, em um algoritmo dos mais simples: o destinatário possuía um número. Quando Júlio César queria enviar alguma mensagem secreta, ele simplesmente deslocava as letras do alfabeto o número de vezes que o destinatário possuía, tanto em sentido positivo quanto negativo. Na verdade, a tecnologia de criptografia não mudou muito até a metade do século XX. Depois da Segunda Guerra Mundial, com a invenção do computador é que a área realmente cresceu, e algoritmos matemáticos complexos foram desenvolvidos.

A maioria das informações que transitam pela Internet são enviadas em forma de texto puro, como as mensagens em salas de chat, ICQ e e-mail. Essas informações passam por vários lugares antes de chegarem em seu destino. Se em algum desses lugares, houver uma pessoa mal intencionada, essa pessoa pode salvar as informações e fazer uso ilícito delas.

A criptografia é feita utilizando-se um algoritmo e uma chave, de forma que, somente com o mesmo algoritmo e a mesma chave você poderá obter a mensagem de volta. Acontece que não existe um mecanismo de cifragem 100% seguro. Pode-se tentar quebrar uma chave de várias maneiras:

- Força bruta: se dispõe de um exemplar de uma mesma mensagem original e cifrada, e o algoritmo é conhecido, basta tentar com todas as combinações possíveis de chaves até acertar;

- Cripto-análise diferencial: para usar esta técnica é necessário que se possa cifrar as mensagens que se pretende, em função de alterações nessas mensagens e resultados na mensagem cifrada.

- Cripto-análise linear: tenta definir a chave por aproximação linear em função da informação recolhida de pares (M,C).

O tempo necessário para se quebrar uma chave vai depender do número de chaves possíveis e do tempo de execução do algoritmo. Assim, por exemplo, uma chave de 40 bits poderia assumir 240 valores (1.099.511.627.776 tentativas). Como a capacidade de processamento dos equipamentos tem duplicado de 18 em 18 meses, de 18 em 18 meses é necessário aumentar um bit às chaves, para assim assegurar que as informações fiquem seguras.

Em 1883, Kerckhoffs definiu os seus requisitos de um sistema de encriptação, que ainda são úteis [2]:

- O sistema deverá ser, se não teoricamente inquebrável, inquebrável na prática;

- Caso os detalhes do sistema sejam comprometidos, a comunicação entre as partes não será comprometida;

- A chave deverá ser memorizável sem recorrer a notas e poderá ser facilmente alterada;

- O criptograma deverá ser transmissível telegraficamente;

- O mecanismo de encriptação deverá ser transportável e operável por uma só pessoa;

- O sistema deverá ser simples, não obrigando ao conhecimento de muitas regras nem elevado exercício mental.

1.2. Chaves

Os modernos algoritmos de criptográfia podem ser classificados de acordo com o tipo de chave que utiliza: os de chave simétrica e os de chave assimétrica [6].

Os algoritmos de chave simétrica, também conhecidos como algoritmos de chave única, caracterizam-se por utilizar a mesma chave tanto para a cifragem como para a decifragem dos dados, o exemplo mais difundido é o DES (Data Encryption Standard).

Os algoritmos de chave simétrica, também chamados de algoritmos de chave pública e privada, utilizam duas chaves: uma pública que pode ser divulgada e outra secreta conhecida somente por pessoas autorizadas, como o RSA. É um processo de codificação mais lento e é sujeito a ataques de atalho para uma pesquisa de chave de maneira eficiente.

O PGP é uma ferramenta que pode ser utilizada com qualquer uma das formas de criptografia. Mas a mais interessante é o método assimétrico. Pode ser utilizado apenas para se criptografar textos em disco, mas sua maior vantagem para a maioria das pessoas é facilitar o envio e recebimento de mensagens.

1.2.1 DES ("Data Encryption Standard")

O algoritmo DES é um algoritmo simétrico de uma cuidadosa e complexa combinação de 2 blocos fundamentais na criptografia: substituição e permutação (transposição). O algoritmo deriva sua força de aplicações repetidas dessas 2 técnicas, uma no topo da outra, para um total de 16 ciclos [6].

O algoritmo é derivado dos conceitos da teoria de Shannon de informação secreta, publicada em 1949. Shannon identificou 2 técnicas para informação oculta: confusão e difusão. Em confusão um pedaço de informação é mudado, então os bits de saída não possuem nenhuma relação óbvia com os bits de entrada. E a difusão tenta propagar os efeitos de um bit de texto simples para outros bits no texto cifrado.

As duas cifras do DES são substituições e permutações. As substituições providenciam confusão sistematicamente, substituindo algum bit padrão por outro. As transposições, chamadas permutações no DES, providenciam difusão, reordenando-se os bits. O texto simples é afetado por uma série de ciclos de substituição depois de uma permutação.

Embora complexo, o algoritmo é repetitivo, tornando-se adequado para implementação em um chip de propósito único. De fato, milhares de chips semelhantes estão disponíveis no mercado para uso como componentes básicos em dispositivos que usam criptografia DES em uma aplicação.

O DES tem fraquezas conhecidas, mas não se acredita que estas fraquezas limitem a efetividade do algoritmo seriamente.

1.2.2 - RSA

O RSA é um dos algoritmos assimétricos mais utilizados. A sua segurança está baseada na dificuldade de se determinar fatores primos de um número inteiro muito grande, que são os que gerarão as chaves [2].

Um estudo de poucos anos atrás nos deu a tabela abaixo mostrando alguns tempos estimados, assumindo que cada operação de fatoração requer um microsegundo:

Mesmo que a pesquisa em fatoração continuasse, nenhum algoritmo reduziria significativamente o tempo. Algoritmos turbinados e o uso de computadores super velozes fariam a fatoração provavelmente mais rápida, mas não significativamente menor para números muito grandes. O método da chave pública se torna, então, completamente seguro.

2. Assinatura Digital

O problema central da assinatura digital é o seguinte: Dada uma seqüência de zeros e uns, constituindo a representação digital de um documento, de que meios digitais poderá dispor seu autor para credibilizar a declaração de sua vontade ou autoria? [8]

Autor e leitor terão de se valer de algo que pode ser verificado na ausência de testemunhas. Declarações virtuais de vontade só poderão inspirar credibilidade por meio de algum processo autenticatório. A assinatura não terá suporte físico. Só haverá, para recebê-la como suporte, a própria seqüência de bits que representa o documento.

Um processo de autenticação baseado em assinatura só será eficaz se quem nele se engajar tiver meios para substanciar duas crenças:

- Ninguém, além do titular de uma chave de assinatura, a conhece.

- Alguém, com uma chave de verificação, deve poder identificar o titular de suas assinaturas.

Os sistemas de assinaturas digitais são estabelecidos por uma infra-estrutura de chave pública (PKI - public key infrastructure) que é mantida por uma autoridade certificadora. A autoridade certificadora é responsável por atribuir chaves e assegurar a validade dos certificados.

A utilização de assinaturas eletrônicas, tal como todos os sistemas, traz consigo vantagens e desvantagens. As principais vantagens prendem-se principalmente com a maior flexibilidade e segurança destes sistemas: [3]

- Maior facilidade e velocidade de transmissão;.

- Maior facilidade de confirmação da autenticidade e integridade do documento.

- Não repudiação, pois é possível o sistema emitir automaticamente uma prova de uso da chave pública.

As principais desvantagens estão essencialmente relacionadas com as limitações dos sistemas informáticos e com a juventude deste tipo de sistemas:

- A evolução do poder de processamento dos computadores vai tornando demasiado fácil a falsificação de assinaturas mais antigas, motivo pelo qual estas geralmente têm um prazo de validade.

- Possibilidade de roubo do código ou senha que permite assinar o documento.

- Legalmente ainda não tem aceitação universal.

3. Certificados Digitais

Na Internet, não apenas é necessário se garantir que o usuário seja quem diz ser, mas também o(s) site(s) deve(m) ser comprovado(s) que realmente seja(m) aquele(s) que o usuário está acessando, afinal, na Internet os sites são endereços virtuais. Uma possível solução para o caso é usar uma certificadora, que emite certificados digitais.

Um certificado digital é um conjunto de informações criptográficas que permite identificar partes (usuários, sites, etc.) no mundo digital. É composto de um conjunto de chaves criptográficas que pertencem ao usuário, um outro conjunto de chaves criptográficas que pertencem à certificadora, informações de controle de certificado, e assinatura digital da certificadora para o certificado. Assim sendo, é a certificadora que vai garantir a autenticidade do certificado.

As autoridades/entidades certificadoras podem ser comparadas aos cartórios do mundo real. São elas as responsáveis por administrar as chaves públicas, e conseqüentemente, são capazes de emitir certificados digitais. Os certificados digitais são emitidos mediante a criptografia assimétrica. Para imprimir uma assinatura digital a um documento, usa-se uma algoritmo que se baseia no conteúdo do arquivo e na chave pública do emissor. O resultado é anexado ao documento e enviado ao seu destino. Para verificar a integridade do documento contra possíveis alterações e para garantir a legitimidade da origem, o destinatário utiliza um algoritmo complementar com a chave pública do emissor, que somente surtirá efeito caso as chaves corretas tenham sido usadas e o documento não tenha sido alterado.

Assim, quando o usuário visita um site "seguro", o site apresenta ao navegador o seu certificado, que confere a autenticidade do site através da assinatura da certificadora. Para facilidade dos usuários, os navegadores já vêm com alguns certificados instalados de fábricas, isto é, o navegador já confia nessas certificadoras e já conhece a assinatura delas. Quando algum usuário ou site apresenta um certificado assinado por estas certificadoras, o navegador é capaz de verificar automaticamente a validade e a autenticidade do certificado.

Mas, e se a certificadora não estiver no navegador, no caso de uma nova certificadora ter sido criada? Que acontece? Aí várias telas aparecem advertindo dos perigos de se confiar em uma certificadora sem se ter certeza do que se está fazendo.

Para acionar o mecanismo de certificação digital, utiliza-se o protocolo HTTPS. Devido à queda de desempenho necessária para executar as funções de segurança, só as partes mais sensíveis do site são protegidas pelo https. As demais continuam sobre o protocolo http. Assim, durante o protocolo https os hackers são incapazes de capturar dados durante a transmissão, já que a comunicação entre o usuário e o site está criptografada.

Dessa maneira os certificados digitais podem garantir privacidade, autenticidade, integridade e não repúdio (não permite que o autor negue o envio nem o conteúdo da mensagem). [9]

3.1. ICP

Uma ICP trata de mecanismos autenticatórios digitais para representar a vontade humana em documentos eletrônicos.

Uma ICP pública precisa prover mecanismos de identificação em circunstâncias adversas, que permitam a autenticação com verificação aberta, obedecendo a critérios sobre riscos.

Como o implementador retém o conhecimento das portas de fundo para a falsificação perfeita de assinaturas, ou para a invalidação a posteriori de provas documentais, teríamos a possibilidade de manipulação da Justiça. A datação eletrônica só será segura, então, se ancorada em auditabilidade externa, uma infra-estrutura necessária.

Aqui no Brasil, quem rege as normas e a relação de aspectos que devem ser observados, é a A ICP-Brasil. O detalhamento das Políticas de Segurança da Informação específicas de cada entidade participante é de responsabilidade do Comitê Gestor da ICP-Brasil [7].

4. Protocolos

Um protocolo é uma seqüência ordenada de passos onde duas ou mais partes executam alguma tarefa. Cada um que usa um protocolo deve concordar com o mesmo antes de usá-lo.

4.1. Alguns Tipos de Protocolos

4.1.1. SSL - Secure Socket Layer

O SSL tem como proposta permitir a autenticação de servidores, encriptação de dados, integridade de mensagens e, como opção, a autenticação do cliente, de forma transparente e independente da plataforma [8].

É a atual norma para as transações eletrônicas, mais simples que o SET, mas também menos segura. Como este padrão é aberto, vários desenvolvedores podem aprimorá-lo, inclusive complementar com novas características e funções.

4.1.2. TLS - Transport Layer Security

O objetivo principal do TLS é providenciar privacidade e integridade. O protocolo é composto do registro de protocolo e do protocolo de comunicação [1].

O registro de protocolo é usado para encapsulamento de vários protocolos de alto nível. O protocolo de comunicação permite ao servidor e cliente autenticar um ao outro e negociar o algoritmo e as chaves de criptografia antes de transmitir os protocolos de aplicações, ou de receber seu primeiro byte de dados.

4.1.3. SHTTP

O Secure HTTP provê serviços de aplicações de segurança independentes para transações confidenciais, autenticidade, integridade e não rejeição da origem.

O protocolo enfatiza o máximo de flexibilidade na escolha de mecanismos de gerenciamento de chaves, políticas de segurança e algoritmos criptográficos, por suporte à opção de negociação entre as partes de cada transação. Nem todos os browsers web e servidores suportam o SHTTP.

4.1.4. WTLS - Wireless Transport Layer Security

O WTLS foi desenvolvido para prover segurança no ambiente de aplicação sem fio. Sua base foi o conhecido TLS v1.0, acrescido de mudanças necessárias devidas à natureza das redes sem fio. Sendo a camada de segurança do WAP, sua meta primária é providenciar privacidade, integridade e autenticação. Apesar da circulação no ar ser criptografada em milhares de redes móveis, a completa segurança ponta-a-ponta não é providenciada pela rede móvel. Esta é a razão porque o WTLS é necessário. [4]

4.1.5. SET - Secure Electronic Transaction

O SET é um padrão para e-commerce seguro desenvolvido pela Visa e a MasterCard, e empresas de tecnologia como Microsoft, IBM, Netscape, SAIC, GTE, RSA, Terisa Systems e VeriSign. Está baseado na distribuição de certificados digitais que são usados para autenticar todas as partes envolvidas (o portador da carteira eletrônica, o estabelecimento, as instituições financeiras e a empresa de cartão de crédito) antes da transação se realizar. Site e consumidor recebem certificados, para que ambas as partes estejam certas de que estão se relacionando comercialmente com partes reais e idôneas. Criptografados, os dados do cartão não circulam livremente pela rede em nenhum momento.

Entre os mecanismos de segurança podemos destacar a autenticação, a criptografia, as assinaturas digitais e a utilização de envelopes digitais (combinação de cifragem simétrica/assimétrica) que garante que somente a entidade destinatária é capaz de aceder às mensagens que lhe são enviadas.

O SET não especifica a forma como o cliente efetua a sua compra, apenas descreve o conjunto de mensagens trocadas entre o cliente e o vendedor, tendo em vista o pagamento da transação realizada.

5. Referências

[1] DIERKS, T.; ALLEN, C. The TLS Protocol: version 1.0. Disponível em: <ftp://ftp.isi.edu/in-notes/rfc2246.txt>. Acesso em: Mar. 2002.

[2] DOMIGUES, L. F. F. F. Cryptanalist. Universidade Atlântica, ano letivo 1999/2000. Disponível em: <http://www.cryptanalyst.com/crypt/seguranca.htm >. Acesso em: Jan. 2002.

[3] DUARTE, M.; FONTE, S. Como produzir uma assinatura eletrônica segura? Disponível em: <http://mcduarte.planetaclix.pt/assinaturadigital.html >. Acesso em: Jan. 2002.

[4] JORMALAINEN, S.; LAIN, J. Security in the WTLS. Disponível em: <http://www.hut.fi/~jtlaine2/wtls/>. Acesso em: Mar. 2002.

[5] MOREIRA, A. Criptografia. Disponível em:

<http://www.dei.isep.ipp.pt/~andre/documentos /criptografia.html>. Acesso em: Jan. 2002.

[6] PFLEEGER, C. P. Security in Computing. 2. ed. Upper Saddle River : Prentice Hall, 1997.

[7] POLÍTICA de segurança da ICP - Brasil: parte III. Disponível em: <http://www.planalto.gov.br/ccivil_03/consulta_publica/PDF/PoliticadeSeguranca.pdf >. Acesso em: Fev. 2002.

[8] REZENDE, P. A. D. Certificados digitais, chaves púbicas e assinaturas: o que são, como funcionam e como não funcionam. Brasília: UnB. Disponível em: <http://www.cic.unb.br/docentes/pedro/segdadtop.htm >. Acesso em: Jul.2000.

[9] ZABEU, S. B. Certificação digital. PC World, n. 113, p. 58-65, nov. 2001.