terça-feira, 17 de maio de 2011

Criptografia em Redes Wireless - Parte II


Nesta segunda parte do artigo sobre criptografia em redes wireless veremos o conceito de criptografia, além de alguns algoritmos criptográficos.



3 O QUE É CRIPTOGRAFIA?

 A palavra criptografia surgiu da fusão das palavras gregas que significam “Escritas Secretas” (TANENBAUM, 2003). É conjunto de conceitos e técnicas que tem como objetivo codificar uma informação de forma que somente o remetente e o destinatário possam acessá-la, não permitindo que um invasor consiga interpretá-la. Para tanto, inúmeras técnicas são usadas. (KUROSE E ROSS, 2005).


Segundo Tanenbaum (2003), os militares têm uma importância essencial para a historia da criptografia, pois foram os mesmos que definiram as bases para a tecnologia. Nas organizações militares, as mensagens a serem criptografadas eram entregues a auxiliares mal remunerados que tinham a função de criptografá-las e transmiti-las, o alto fluxo de mensagens impedia que o trabalho fosse feito por poucos especialistas. Como exemplo de uso militar, o código mais bem sucedido da historia foi utilizado pelas forças armadas americanas durante a 2ª guerra mundial no Pacifico. Eles levaram alguns índios navajos que utilizavam Dialeto nativo pra codificar as mensagens, esse dialeto é extremamente complexo e não tem forma escrita, dessa maneira os americanos conseguiam proteger os códigos e ainda decifravam os códigos japoneses.

Para realizar as criptografias, existem os algoritmos criptográficos, entre eles os mais simples que são os de chave simétrica que utilizam a mesma chave para criptografar e decriptografar a informação, ou algoritmo de chaves pública que são mais complexos, pois usam duas chaves uma publica e outra privada.

3.1 Chave Simétrica

Esse tipo de criptografia usa uma única chave compartilhada entre o remetente e o receptor para codificar e decodificar as mensagens. Tendo em conta que esse tipo é o mais antigo, e o mais simples, atualmente existem vários algoritmos de chaves simétricas: DES, AES, IDEA, Red Pike, RC2, RC4, RC5, Twofish, entre outros.

Um método criptográfico muito conhecido foi utilizado pelo o Imperador Julio César, é conhecido como cifra de César (Caesar Cipher). Funciona da seguinte maneira: cada letra do texto original é substituída por outra letra, o A se torna D o B se torna E o C se torna F, e assim por diante, quando chega ao final, o mesmo retorna ao inicio, por exemplo, Z torna-se C, podemos notar neste tipo de padrão que a letra original esta sendo substituída pela k-ésima letra do alfabeto, sendo k = 3, uma ligeira mudança permitia que k receba qualquer valor.

Um melhoramento da cifra de César é a chamada Substituição monoalfabética (ou cifra monoalfabética), não segue nenhum padrão regular, qualquer letra pode ser substituída por outra letra, mas cada letra pode possuir apenas uma única substituta e vice-versa.
Por exemplo:

Texto Simples: a b c d e f g h i j k l m n o p q r s t u v w x y z
Texto Cifrado: QWERTYUIASDEFGHJKLZXCVBNM
    
3.1.1 DES

No Final da década de 70, o governo americano adotou uma cifra criptográfica desenvolvida pela IBM como seu padrão oficial para uso de informações não-confidenciais, essa Cifra, DES (Data Encryption Standard – Padrão de criptografia de dados), foi extensamente adotada pelo setor de informática para uso em produtos de segurança.

O DES funciona da seguinte maneira: codifica-se o texto aberto em porções de 64 bits usando uma chave de 64 bits. Na realidade, oito desses 64 Bits da chave são bits de paridade ímpar (existe um bit de paridade para cada um dos oito bits), de modo que a chave DES tem efetivamente 56 bits de comprimentos (KUROSE E ROSS, 2005).

O National Institute of Standarts and Technology estabelece desta forma o objetivo da DES: “O objetivo é embaralhar completamente os dados e a chave, de modo que todos os bits de texto cifrado dependam de todos os bits de dados e de todos os bits da chave (...) com um bom algoritmo, não haverá nenhuma correlação entre o texto cifrado e os dados originais e a chave” (NIST, 1999; apud KUROSE E ROSS, 2005).

Durante os anos 90, percebeu-se que o tamanho de 56 bits não seria suficiente (o poder computacional aumentou consideravelmente) e idealizou-se uma maneira de melhorá-lo, criando o DES Triplo (3DES), que não era nada mais do que uma tripla codificação, ou seja, utilizar três vezes o DES. A utilização proposta não teria de necessariamente utilizar três chaves e sim poderia ter duas, da seguinte forma codificava-se a mensagem com a primeira chave, o texto obtido era decodificado com a segunda chave e finalmente o resultado era novamente codificado com a primeira chave, para se obter o texto claro o processo era o inverso.

3.1.2 AES

À medida que o DES começou a ficar obsoleta, mesmo com o DES triplo, o NIST(National Institute of Standarts Technology), o órgão do departamento de comércio dos Estados Unidos encarregado de aprovar padrões para o governo federal dos Estados Unidos, decidiu que precisavam de um novo padrão criptográfico para uso não-confidencial. Eles estavam cientes de todos os problemas que cercavam o DES e sabia muito bem que, ao anunciar um novo padrão, todos que soubessem algo sobre criptografia tomariam a conclusão que a NSA havia criado uma porta dos fundos no DES. Talvez sob essas condições ninguém utilizaria mais o padrão e o mais natural seria seu desaparecimento.  

Desta forma o NIST tomou uma atitude inesperada para um órgão governamental, patrocinou um concurso de criptografia. Em janeiro de 1997, diversos pesquisadores de todo o mundo a submeter suas teorias para o novo padrão a ser chamada AES (Advanced Encryption Standard), As regras do Concurso eram as seguintes:

  1. O algoritmo teria de ser um cifra de bloco Simétrico.
  2. Todo o Projeto teria de ser público.
  3. Deveriam ser admitidos tamanhos de chaves iguais 128, 192,256 bits.
  4. Teriam de ser possíveis implementações de software e hardware
  5. O algoritmo teria de ser público ou licenciado em termos não discriminatórios
O Algoritmo de Rijndael se tornou o campeão informal com um total de 86 votos, em outubro de 2000 o NIST anunciou que também votou no Rijndael, e em novembro de 2001, ele se tornou o padrão do governo dos Estados Unidos (TANENBAUM, 2003).

Admite-se nesse algoritmo, tamanhos de chaves e tamanhos de blocos desde 128,192 ou 256 em intervalos de 32 bits. O comprimento da chave e o bloco podem ser escolhidos independentemente. Entretanto, o AES especifica que o tamanho tem de ser de 128 bits e o seu comprimento da chave de ser de 128, 192, ou 256 bits. É pouco usual admitir que alguém utilize chaves de 192 bits; assim, de fato, o AES tem duas versões: um bloco de 128 bits com uma chave de 128 bits e um bloco de 128 bits com uma chave de 256 bits.
Como o DES, o Rijndael utiliza substituições e permutações e também vários rodadas. O número de rodadas depende do tamanho da chave do tamanho do bloco, sendo 10 para chaves de 128 bits com blocos de 128 bits, passando para 14 no caso da maior chave ou do maior bloco. No entanto, diferente do DES, todas as operações envolvem bytes inteiros, a fim de permitem implementações eficientes tanto em hardware quanto em software.(TANENBAUM, 2003).

3.1.3 RC4

 O RC4 (ron’s cipher 4) foi criado por Ronal Rivest em 1987, e foi mantido em segredo. O algoritmo era propriedade da RSA Security. Em 1994, alguém enviou, anonimamente, para uma lista de discussão da Internet, um algoritmo, que afirmava que era o RC4. Este fato foi confirmado de modo não-oficial, e o que era segredo industrial virou domínio publico, da noite para o dia. Felizmente, como um bom algoritmo criptográfico, o RC4 é seguro independente de seu algoritmo ser publico ou não.

O RC4 é uma maneira de se gerar bytes aleatórios, a partir de uma chave de tamanhos variável. Estes bytes serão usados para encriptar uma mensagem através da operação lógica XOR. O destinatário executará o RC4 como remetente obtendo os mesmos bytes aleatórios, podendo assim desencriptar a mensagem.

A principal vantagem do RC4 é que ele é chamado de algoritmo de fluxo, pois, ele concatena a string gerada com a mensagem pura, assim que a última é gerada.

3.2 Chave Pública

Ao longo do tempo, o problema da distribuição de chaves sempre foi o elo mais fraco da maioria dos sistemas criptográficos. Independente se de quanto um sistema de criptografia fosse sólido, se um invasor, conseguisse roubar a chave, o sistema acabava sendo inútil. Como todos os cientistas em criptografia sempre presumem que a chave de criptografia e decriptografia, são iguais (ou facilmente derivadas da outra) porque a chave é distribuída a todos os usuários do sistema, tem-se a impressão de que havia um problema inerente ao sistema: as chaves tinham de ser protegidas contra roubos, mas também tinham de ser distribuídas; portanto não podia ser trancadas no caixa-forte do banco.

Talvez seja interessante fazer uma observação com a terminologia. A criptografia de chave pública exige que cada usuário tenha das chaves: uma chave pública, usadas pelo mundo inteiro para criptografar as mensagens a serem enviadas para esse usuário, e uma chave privada, que o usuário utiliza para descriptografar mensagens. Faremos referência a essas chaves como chave publica e chave privada, respectivamente, e vamos distingui-las, das chaves secretas (também chamadas chaves simétricas) usadas na criptografia de chave simétrica convencional. (TANENBAUM, 2003).


Na próxima parte veremos os protocolos de segurança wireless.

Fique ligado no GeTec Blog!

Caso você esteja chegando agora veja o artigo anterior:


Nenhum comentário:

Postar um comentário