Introdução
Quando falamos de informação e
transportamos este conceito para o meio digital, particularmente na utilização
das redes públicas de computação como a internet, e diversos são os serviços
realizados é relevante ao ser humano à credibilidade nos sistemas
computacionais, estes que inseridos nos fundamentos da segurança da informação,
são definidos pela disponibilidade, integridade, controle de acesso,
autenticidade, não-repudiação e finalmente a privacidade, os quais devem ser de
livre compreensão e facilmente perceptíveis ao se efetuar transações
computacionais:
·
Disponibilidade
- garantir que uma informação estará disponível para acesso no momento
desejado.
·
Integridade
- garantir que o conteúdo da mensagem não foi alterado.
·
Controle
de acesso - garantir que o conteúdo da mensagem somente será acessado por
pessoas autorizadas.
·
Autenticidade
- garantir a identidade de quem está enviando a mensagem.
·
Não-repudiação
- prevenir que alguém negue o envio e/ou recebimento de uma mensagem.
·
Privacidade
- impedir que pessoas não autorizadas tenham acesso ao conteúdo da mensagem,
garantindo que apenas a origem e o destino tenham conhecimento.
O exemplo clássico é uma compra pela
internet, todos os requisitos são encontrados neste processo de troca de
informações: A informação que permite a transação - valor e descrição do
produto - precisa estar disponível no dia e na hora que o cliente desejar
efetuá-la (disponibilidade), o valor da transação não pode ser alterado
(integridade), somente o cliente que está comprando e o comerciante devem ter
acesso à transação (controle de acesso), o cliente que está comprando deve ser
realmente quem diz ser (autenticidade), o cliente tem como provar o pagamento e
o comerciante não têm como negar o recebimento (não-repúdio) e o conhecimento
do conteúdo da transação fica restrito aos envolvidos (privacidade).
Assim é fundamental que técnicas
computacionais sejam empregadas para que os requisitos de proteção da
informação sejam atendidos. Neste cenário apresentam-se os dois tipos básicos
de criptografia: a simétrica ou chave privada, e a assimétrica ou chave
pública.
O que é criptografia?
O termo criptografia surgiu da fusão
das palavras gregas "kryptós" e "gráphein", que significam
"oculto" e "escrever", respectivamente. Trata-se de um
conjunto de conceitos e técnicas que visa codificar uma informação de forma que
somente o emissor e o receptor possam acessá-la, evitando que um intruso
consiga interpretá-la. Para isso, uma série de técnicas são usadas e muitas
outras surgem com o passar do tempo.
Na computação, as técnicas mais
conhecidas envolvem o conceito de chaves, as chamadas chaves criptográficas. Trata-se
de um conjunto de bits baseado em um determinado algoritmo capaz de codificar e
de decodificar informações. Se o receptor da mensagem usar uma chave
incompatível com a chave do emissor, não conseguirá extrair a informação.
Os primeiros métodos criptográficos
existentes usavam apenas um algoritmo de codificação. Assim, bastava que o
receptor da informação conhecesse esse algoritmo para poder extraí-la. No
entanto, se um intruso tivesse posse desse algoritmo, também poderia efetuar um
processo de decifragem, caso capturasse os dados criptografados. Há ainda outro
problema: imagine que a pessoa A tivesse que enviar uma informação
criptografada à pessoa B. Esta última teria que conhecer o algoritmo usado.
Imagine agora que uma pessoa C também precisasse receber uma informação da
pessoa A, porém a pessoa C não poderia descobrir qual é a informação a ser
enviada à pessoa B. Se a pessoa C capturasse a informação enviada à pessoa B,
também conseguiria decifrá-la, pois quando a pessoa A enviou sua informação, a
pessoa C também teve que conhecer o algoritmo usado. Para a pessoa A evitar
esse problema, a única solução seria utilizar um algoritmo diferente para cada
receptor.
Com o uso de chaves, um emissor pode
usar o mesmo algoritmo (o mesmo método) para vários receptores. Basta que cada
um receba uma chave diferente. Além disso, caso um receptor perca ou exponha
determinada chave, é possível trocá-la, mantendo-se o mesmo algoritmo.
Você já deve ter ouvido falar de
chave de 64 bits, chave de 128 bits e assim por diante. Esses valores expressam
o tamanho de uma determinada chave. Quanto mais bits forem utilizados, mais
segura será a criptografia. Explica-se: caso um algoritmo use chaves de 8 bits,
por exemplo, apenas 256 chaves poderão ser usadas na decodificação, pois 2
elevado a 8 é 256. Isso deixa claro que 8 bits é inseguro, pois até uma pessoa
é capaz de gerar as 256 combinações (embora demore), imagine então um
computador! Porém, se forem usados 128 ou mais bits para chaves (faça 2 elevado
a 128 para ver o que acontece), teremos uma quantidade extremamente grande de
combinações, deixando a informação criptografada bem mais segura.
Chaves simétricas e
assimétricas
Há dois tipos de chaves
criptográficas: chaves simétricas e chaves assimétricas. Ambas são abordadas a
seguir:
Chave simétrica
Esse é um tipo de chave mais
simples, onde o emissor e o receptor fazem uso da mesma chave, isto é, uma
única chave é usada na codificação e na decodificação da informação. Existem
vários algoritmos que usam chaves simétricas, como o DES, o IDEA, e o RC:
- DES (Data
Encryption Standard): criado pela IBM em 1977, faz uso de chaves de 56 bits.
Isso corresponde a 72 quatrilhões de combinações. É um valor absurdamente alto,
mas não para um computador potente. Em 1997, esse algoritmo foi quebrado por
técnicas de "força bruta" (tentativa e erro) em um desafio promovido
na internet;
- IDEA (International
Data Encryption Algorithm): criado em 1991 por James Massey e Xuejia Lai, o
IDEA é um algoritmo que faz uso de chaves de 128 bits e que tem uma estrutura
semelhante ao DES. Sua implementação em software é mais fácil do que a
implementação deste último;
- RC (Ron's Code ou
Rivest Cipher): criado por Ron Rivest na empresa RSA Data Security, esse
algoritmo é muito utilizado em e-mails e faz uso de chaves que vão de 8 a 1024
bits. Possui várias versões: RC2, RC4, RC5 e RC6. Essencialmente, cada versão
difere da outra por trabalhar com chaves maiores.
Há ainda outros algoritmos
conhecidos, como o AES (Advanced Encryption Standard) - que é baseado no DES -
, o 3DES, o Twofish e sua variante Blowfish, entre outros.
O uso de chaves simétricas tem
algumas desvantagens, fazendo com que sua utilização não seja adequada em
situações onde a informação é muito valiosa. Para começar, é necessário usar
uma grande quantidade de chaves caso muitas pessoas ou entidades estejam
envolvidas. Ainda, há o fato de que tanto o emissor quanto o receptor precisam
conhecer a mesma chave. A transmissão dessa chave de um para o outro pode não
ser tão segura e cair em "mãos erradas".
Chave assimétrica
Também conhecida como "chave
pública", a chave assimétrica trabalha com duas chaves: uma denominada
privada e outra denominada pública. Neste método, um emissor deve criar uma
chave de codificação e enviá-la ao receptor. Essa é a chave pública. Uma outra
chave deve ser criada para a decodificação. Esta, a chave privada, é secreta.
Para melhor compreensão, visualize a
tabela abaixo:
O InfoWester criou uma chave pública
e a enviou a vários outros sites. Quando qualquer desses sites quiser enviar
uma informação criptografada ao InfoWester deverá utilizar a chave pública
deste. Quando o InfoWester receber essa informação, apenas será possível
extraí-la com o uso da chave privada, que só o InfoWester tem. Caso o
InfoWester queira enviar uma informação criptografada a outro site, deverá
obter uma chave pública fornecida por este.
Entre os algoritmos que usam chaves
assimétricas, têm-se o RSA (o mais conhecido) e o Diffie-Hellman:
- RSA (Rivest, Shamir
and Adleman): criado em 1977 por Ron Rivest, Adi Shamir e Len Adleman nos
laboratórios do MIT (Massachusetts Institute of Technology), é um dos
algoritmos de chave assimétrica mais usados. Nele, números primos (número primo
é aquele que só pode ser dividido por 1 e por ele mesmo) são utilizados da
seguinte forma: dois números primos são multiplicados para se obter um terceiro
valor. Porém, descobrir os dois primeiros números a partir do terceiro (ou
seja, fazer uma fatoração) é muito trabalhoso. Se dois números primos grandes
(realmente grandes) forem usados na multiplicação, será necessário usar muito
processamento para descobrí-los, tornando essa tarefa praticamente inviável.
Basicamente, a chave privada no RSA são os números multiplicados e a chave
pública é o valor obtido;
- ElGamal: criado por
Taher ElGamal, esse algoritmo faz uso de um problema matemático conhecido por
"logaritmo discreto" para se tornar seguro. Sua utilização é
freqüente em assinaturas digitais.
Existem ainda outros algoritmos,
como o DSA (Digital Signature Algorithm), o Schnorr (praticamente usado apenas
em assinaturas digitais) e Diffie-Hellman.
Certificação digital
Com um sistema de chave pública, o
gerenciamento de chaves passa a ter dois novos aspectos: primeiro, deve-se
previamente localizar a chave pública de qualquer pessoa com quem se deseja
comunicar e, segundo, deve-se obter uma garantia de que a chave pública
encontrada seja proveniente daquela pessoa. Sem esta garantia, um intruso pode
convencer os interlocutores de que chaves públicas falsas pertencem a eles.
Estabelecendo um processo de confiança entre os interlocutores, o intruso pode
fazer-se passar por ambos. Deste modo, quando um emissor enviar uma mensagem ao
receptor solicitando sua chave pública, o intruso poderá interceptá-la e
devolver-lhe uma chave pública forjada por ele. Ele também pode fazer o mesmo
com o receptor, fazendo com que cada lado pense que está se comunicando com o
outro, quando na verdade estão sendo interceptados pelo intruso, então este
pode decifrar todas as mensagens, cifrá-las novamente ou, se preferir, até
substituí-las por outras mensagens. Através deste ataque, um intruso pode
causar tantos danos ou até mais do que causaria se conseguisse quebrar o
algoritmo de ciframento empregado pelos interlocutores.
A garantia para evitar este tipo de
ataque é representada pelos certificados de chave pública, comumente chamados
de certificado digital, tais certificados consistem em chaves públicas
assinadas por uma pessoa de confiança. Servem para evitar tentativas de
substituição de uma chave pública por outra. O certificado contém algo mais do
que sua chave pública, ele apresenta informações sobre o nome, endereço e
outros dados pessoais, e é assinado por alguém em quem o proprietário deposita
sua confiança, uma autoridade de certificação (certification authority - CA).
Assim, um certificado digital pode ser definido como um documento eletrônico,
assinado digitalmente por uma terceira parte confiável.
No Brasil, o órgão da autoridade
certificadora raiz é o ICP-Brasil (AC-Raiz), ele é o executor das políticas de
certificados e normas técnicas e operacionais aprovadas pelo Comitê Gestor da
ICP-Brasil. São autoridades certificadoras no país: Serpro (AC-SERPRO), Caixa
Econômica Federal (AC-CAIXA), Serasa Experian (AC-SERASA), Receita Federal do
Brasil 6 (AC-RFB), Certsing (AC-Certisign), Imprensa Oficial do Estado de São
Paulo (AC-IOSP), Autoridade Certificadora da Justiça (AC-JUS), Autoridade
Certificadora da Presidência da República (AC-PR) e Casa da Moeda do Brasil
(AC-CMB).
Assim, a AC-Raiz tem
autoridade de emitir, expedir, distribuir, revogar e gerenciar os certificados
das autoridades certificadoras de nível imediatamente subsequente ao seu, sendo
também encarregada de emitir a lista de certificados revogados e de fiscalizar
e auditar as autoridades certificadoras, autoridades de registro e demais
prestadores de serviço habilitados na ICP-Brasil. Além disso, verifica se as
autoridades certificadoras (ACs) estão atuando em conformidade com as
diretrizes e normas técnicas estabelecidas pelo Comitê Gestor.
PGP
PGP é a sigla para Pretty Good
Privacy. Trata-se de um software de criptografia criado por Philip Zimmermman
em 1991. A intenção de Zimmermman foi a de ajudar na defesa da liberdade
individual nos Estados Unidos e no mundo inteiro, uma vez que ele percebeu que
o uso do computador seria algo cada vez maior e que o direito à privacidade
deveria ser mantido nesse meio. Por ser disponibilizado de forma gratuita, o
PGP acabou se tornando uns dos meios de criptografia mais conhecidos,
principalmente na troca de e-mails.
No PGP, chaves assimétricas são
usadas. Além disso, para reforçar a segurança, o software pode realizar um
segundo tipo de criptografia através de um método conhecido como "chave de
sessão" que, na verdade, é um tipo de chave simétrica.
Referência
Bibliográfica:
COSTA, Celso José da
e FIGUEIREDO, Luiz Manoel Silva de. Criptografia Geral. 2 ed. Rio de Janeiro :
UFF / CEP - EB, 2006. 192p. – (Curso de Criptografia e Segurança em Redes).
FIGUEIREDO, Luiz
Manoel Silva de. Números primos e criptografia de chave pública. Rio de Janeiro
: UFF / CEP - EB, 2006. 180p. – (Curso de Criptografia e Segurança em Redes).
ALUNOS: Alex Roberto Sales, Vinicius Lucas Bota, Wesley Macedo Fernandes
muito interessante, gostei da matéria, muito obrigado
ResponderExcluir