Sie sind auf Seite 1von 10

WEP - Wired Equivalent Privacy: o objetivo do uso do WEP garantir a confidencialidade e a integridade das informaes na rede Wireless.

. o protoloco original de autenticao e criptografia definido pelo IEEE 802.11, sua chave varia de 40 e 128 bits (opcional). Possui um vetor de inicializao de 24 bits e transmitido em texto claro, isso diminui consideravelmente a fora do algoritmo. Existem ferramentas que ficam capturando os vetores de inicializao dos quadros e dessa forma conseguem decifrar a chave. Utiliza o protocolo RC4 para cifrar os dados. AS chaves so configuradas manualmente nos pontos de acesso e seus clientes, no existe uma gerncia de chaves. TKIP - Temporal Key Integrity Protocol: foi criado com o propsito de contornar os problemas do WEP. Usa chave de 128 bits, o vetor de incializao 48 bits e tambm utiliza o protocolo RC4 para cifrar os dados. Utiliza uma chave por pacote (per-packet key mixing). Cada estao combina a sua chave com seu endereo MAC para criar uma chave de criptografia que unica. A chave compartilhada entre o ponto de acesso e os clientes wireless so trocadas periodicamente. Esse o motivo pela qual falamos que o TKIP utiliza chaves dinmicas de criptografia. Dessa forma fica mais difcil para um atacante quebrar a chave, mesmo que ele consiga, a vida til da chave ser pequena. WPA - Wi-Fi Protected Access: Em 2001 a IEEE comeou o desenvolvimento do padro IEEE 802.11i com intuito de prover maior segurana em redes Wireless. Em 2002 a Wi-Fi Alliance optou por usar o que j estava pronto desse padro, nesse momento ainda no estava completo o IEEE 802.11i. Assim sugiu o WPA que representa o pre-IEEE 802.11i. O WPA utiliza o TKIP para criptografia dos dados e padro 802.1x(EAP) para autenticao. Existe tambem a possibilidade de utilizar o WPA-PSK que traz as vantagens do WPA sem a necessidade de um servidor RADIUS. A autenticao ocorre com uma chave compartilhada, parecido com o WEP. Depois que acontece a autenticao deriva-se outra chave para a criptografia dos quadros. WPA2 ou IEEE 802.11i: podemos considerar o estado da arte em segurana para redes Wireless. Agregou vrios itens do WPA, como o uso do IEEE 802.1x/EAP e adicionou novidades, como a utilizao do algoritmo forte de criptografia, o AES (Advanced Encryption Standard).

Em criptografia, RC4 (ou ARC4) o algoritmo de criptografia de fluxo mais usado no software e utilizado nos protocolos mais conhecidos, como Secure Socket Layers (SSL) (para proteger o trfego Internet) e WEP (para a segurana de redes sem fios.RC4 no considerado um dos melhores sistemas criptogrficos pelos adeptos da criptografia, e em algumas aplicaes podem converter-se em sistemas muito inseguros. No entanto, alguns sistemas baseados em RC4 so seguros o bastante num contexto prtico.

Histria Em 1987 Ronald Rivest desenvolveu o algoritmo RC4 para a empresa RSA Data Security, Inc., lder mundial em algoritmos de criptografia. Foi, durante tempos, um segredo comercial muito bem guardado, muito popular, e utilizado largamente em software, como Lotus Notes, Apple Computers AOCE, Oracle Secure SQL, Internet Explorer, Netscape e Adobe Acrobat. Sete anos depois, surge numa mailing list dedicada criptografia (Cypherpunks) cdigo alegadamente equivalente ao RC4. Utilizadores com cpias legais puderam confirmar a compatibilidade. de realar, no entanto, que esta no a implementao comercial, e, como tal, habitualmente referida como ARC4 (Alleged RC4). As transformaes neste algoritmo so lineares, no so necessrios clculos complexos, j que o sistema funciona basicamente por permutaes e somas de valores inteiros, o que torna este algoritmo muito simples e rpido. Um raro exemplo de Barato, Rpido e Bom. De uma forma geral, o algoritmo consiste em utilizar um array que a cada utilizao tem os seus valores permutados, e misturados com a chave, o que provoca que seja muito dependente desta. Esta chave, utilizada na inicializao do array, pode ter at 256 bytes (2048 bits), embora o algoritmo seja mais eficiente quando menor, pois a perturbao aleatria induzida no array superior.
[editar]Algoritmo [editar]KSA

O algoritmo key-scheduling usado para inicializar a permutao no array S. K.Length definido como o nmero de bytes na chave e pode variar entre 1 e 256, tipicamente entre 5 e 16 correspondendo ao tamanho de chave de 40-128 bits. Primeiro, o array S inicializado de tamanho 256. Na primeira repetio: 1. O array S preenchido com os valores de 0 255. Na segunda repetio:

1. somado o valor de j, o valor de S apontado por i e o valor de K (chave) apontado por i e armazenado na varivel j. 2. Troca os valores entre S[i] e S[j].
[editar]C# byte[] S = new byte[256]; for (int i = 0; i < 256; i++) { S[i] = (byte)i; } int j = 0; for (int i = 0; i < 256; i++) { j = (j + S[i] + K[i % K.Length]) % 256; Troca(ref S[i], ref S[j]); } [editar]PRGA

Para todas repeties necessrias, o PRGA modifica o estado e a sada do byte resultante. Em cada repetio: 1. O PRGA incrementa em 1 a varivel i. 2. Adiciona o valor de S apontado por i com j e armazena o resultado em j. 3. Troca os valores entre S[i] e S[j]. 4. A sada ento calculada fazendo-se a operao XOR (ver em Lgica binria) entre o valor de S apontado por S[i] + S[j] e a mensagem original apontado por k.
[editar]C# int i = 0, j = 0; // a mensagem original est armazenada na varivel "input". byte[] result = new byte[input.Length]; for (int k = 0; k < input.Length; k++) { i = (i + 1) % 256; j = (j + S[i]) % 256; Swap(ref S[i], ref S[j]); result[k] = (byte)(S[(S[i] + S[j]) % 256] ^ input[k]); }

return result;

O algoritmo usado para trocar os valores das variveis (ver Algoritmo Xor Swap).
static void Swap(ref byte val1, ref byte val2) { val1 = (byte)(val1 ^ val2); // val1 XOR val2 val2 = (byte)(val1 ^ val2); val1 = (byte)(val1 ^ val2); } [editar]Exemplo

Considere a mensagem input = "Texto", convertido em bytes (ver Ascii), input = { 84, 101, 120, 116, 111 }. Adoptemos a chave K = "chave", que convertido em bytes, K = { 99, 104, 97, 118, 101 }. Em cada repetio:
k=0 i = (i + 1) % 256; i=1 j = (j + S[i]) % 256; j = (0 + S[1]) % 256 j = 229 Swap(ref S[i], ref S[j]); S[229] = 204 S[1] = 229 result[k] = (byte)(S[(S[i] + S[j]) % 256] ^ input[k]); result[0] = S[(229 + 204) % 256] ^ 84 result[0] = S[177] ^ 84 result[0] = 104 ^ 84 result[0] = 60 k=1 i = (i + 1) % 256; i=2 j = (j + S[i]) % 256; j = (229 + S[2]) % 256 j = 20 Swap(ref S[i], ref S[j]); S[20] = 68 S[2] = 47 result[k] = (byte)(S[(S[i] + S[j]) % 256] ^ input[k]); result[1] = S[(47 + 68) % 256] ^ 101 result[1] = S[115] ^ 101 result[1] = 125 ^ 101 result[1] = 24 k=2 i = (i + 1) % 256; i=3 j = (j + S[i]) % 256; j = (20 + S[3]) % 256 j = 188 Swap(ref S[i], ref S[j]); S[188] = 92 S[3] = 168 result[k] = (byte)(S[(S[i] + S[j]) % 256] ^ input[k]); result[2] = S[(168 + 92) % 256] ^ 120 result[2] = S[4] ^ 120 result[2] = 17 ^ 120 result[2] = 105

k=3 i = (i + 1) % 256; i=4 j = (j + S[i]) % 256; j = (188 + S[4]) % 256 j = 205 Swap(ref S[i], ref S[j]); S[205] = 42 S[4] = 17 result[k] = (byte)(S[(S[i] + S[j]) % 256] ^ input[k]); result[3] = S[(17 + 42) % 256] ^ 116 result[3] = S[59] ^ 116 result[3] = 160 ^ 116 result[3] = 212

k=4 i = (i + 1) % 256; i=5 j = (j + S[i]) % 256; j = (205 + S[5]) % 256 j = 70 Swap(ref S[i], ref S[j]); S[70] = 153 S[5] = 121 result[k] = (byte)(S[(S[i] + S[j]) % 256] ^ input[k]); result[4] = S[(121 + 153) % 256] ^ 111 result[4] = S[18] ^ 111 result[4] = 85 ^ 111 result[4] = 58

Ou seja, o texto cifrado result = { 60, 24, 105, 212, 58 }. Aplicando o mesmo algoritmo em result, com a mesma chave consegue-se recuperar a mensagem original input.
[editar]Implementao em C #include <stdio.h> #include <stdlib.h> #include <string.h>

//================================================== unsigned char chave[256]; unsigned char entrada[256]; unsigned char *resultado; unsigned char s[256]; unsigned int i, j, tamanho_chave, tamanho_entrada; //================================================== void troca() { unsigned char aux; aux=s[i]; s[i]=s[j]; s[j]=aux; }

//==================================================== void ksa () { for (i = 0; i < 256; i++) { s[i]=i; } j=0; for (i = 0; i < 256; i++) { j = (j + s[i] + chave[i % tamanho_chave]) % 256; troca(s, i, j); } i=0; j=0; } //==================================================== void prga () { unsigned int aux; unsigned char result[tamanho_entrada-1]; for (aux=0; aux < tamanho_entrada; aux++) { i = (i + 1) % 256; j = (j + s[i]) % 256; troca(s,i,j); result[aux]=(s[(s[i] + s[j]) % 256])^entrada[aux]; } resultado=(unsigned char*)malloc((tamanho_entrada-1)*(sizeof(unsigned char))); strcpy(resultado, result); } //====================================================

int main () { unsigned char confirma[256]; int confirm; printf ("Escreva a Frase a ser Criptografada:"); scanf ("%[^\n]", entrada); tamanho_entrada=strlen(entrada); fflush(stdin); printf ("\nChave:"); scanf ("%[^\n]", chave); tamanho_chave=strlen(chave); system("pause"); ksa ();

prga (); printf ("\nResultado Gerado: %s\n", resultado); system("pause"); fflush(stdin); printf ("\n\nPara Desfazer, confirme a chave: "); TENTA: scanf ("%[^\n]", confirma); confirm=strcmp(confirma, chave); if (confirm==0) { printf ("\nDesfazendo....\n"); strcpy(entrada, resultado); ksa(); prga (); printf ("\nFrase Original: %s\n", resultado); fflush(stdin); system("pause"); } else { fflush(stdin); printf ("Chave nao confere, por favor insira a chave correta:\n"); goto TENTA; } return 0; }

O Wikisource contm fontes primrias relacionadas com este artigo: RC4

[editar]

Advanced Encryption Standard


Origem: Wikipdia, a enciclopdia livre.

(Redirecionado de AES)

Nota: Se procura pela empresa multinacional AES, veja AES Corporation.

Advanced Encryption Standard - AES

Em Criptografia, o Advanced Encryption Standard (AES, ou Padro de Criptografia Avanada, em portugus), tambm conhecido por Rijndael, uma cifra de bloco adotada como padro de criptografia pelo governo dos Estados Unidos. Espera-se que seja utilizado em todo o mundo e analisada extensivamente, assim como foi seu predecessor, o Data Encryption Standard(DES). O AES foi anunciado pelo NIST (Instituto Nacional de Padres e Tecnologia dos EUA) como U.S. FIPS PUB (FIPS 197) em 26 de Novembro de 2001, depois de 5 anos de um processo de padronizao. Tornou-se um padro efetivo em 26 de Maio de 2002. Em 2006, o AES j um dos algoritmos mais populares usados para criptografia de chave simtrica.

[editar]O Concurso AES


Em 1997 o governo americano, atravs do NIST (National Institute of Standards and Technology), lanou um processo de seleo que definiria um novo algoritmo de chave simtrica para proteger informaes do governo federal. Este novo algoritmo criptogrfico substituiu o DES (Data Encryption Standard), que havia sido quebrado pela mquina DES Cracker, construda pela ONG Electronic Frontier Foundation com apenas 250 mil dlares. Em setembro de 1997 o NIST indicou as condies necessrias para a candidatura de algoritmos para substituir o DES: divulgao pblica, direitos autorais livres, e os algoritmos deveriam ser de chave privada (simtricos) e suportar blocos de 128 bits e chaves de 128, 192 e 256 bits. Em agosto de 1998, na Primeira Conferncia dos Candidatos ao AES, apresentaram-se 15 candidatos: Cast256, Crypton, Deal, DFC, E2, Frog, HPC, LOKI97, Magenta, MARS, RC6, Rijndael, Safer+, Ser pent e Twofish. O NIST solicitou aos membros da comunidade criptogrfica mundial uma anlise dos algoritmos candidatos. Em 1999, na Segunda Conferncia dos Candidatos AES, atravs da anlise obtida foram selecionados 5 finalistas: MARS, RC6, Rijndael, Serpent e Twofish. Posteriormente esses 5 algoritmos sofreram novas anlises e seus criadores participaram de debates, fruns, etc. Trs anos e meio aps o incio do concurso, o NIST chega escolha do vencedor: Rijndael. O nome uma fuso de Vincent Rijmen e Joan Daemen, os dois belgas criadores do algoritmo. Segundo o NIST, ele combina as caractersticas de segurana, desempenho, facilidade de implementao e flexibilidade. O Rijndael apresenta alta resistncia a ataques como "power

attack" e "timing attack" e exige pouca memria, o que o torna adequado para operar em ambientes restritos como "smart cards", PDAs e telefones celulares.

[editar]Desenvolvimento
O Rijndael era um refinamento do Square, um projeto anterior de Daemen e Rijmen. O Square, por sua vez, evoluiu do Shark. Ao contrrio do seu predecessor DES, o Rijndael uma rede de permutao-substituio, no uma rede de Feistel. O AES rpido tanto em software quanto em hardware, relativamente fcil de executar e requer pouca memria. Apesar de ser um padro novo de criptografia, est sendo atualmente implantado em grande escala.

[editar]Descrio de Cifra
Estritamente falando, o AES no exatamente o Rijndael (embora na prtica possam ser permutados) j que o Rijndael suporta uma maior gama de tamanhos do bloco e da chave. O AES tem um tamanho de bloco fixo em 128 bits e uma chave com tamanho de 128, 192 ou 256 bits, enquanto o Rijndael pode ser especificado com chaves e tamanhos de bloco de qualquer mltiplo de 32 bits, com um mnimo de 128 bits e um mximo de 256 bits. A chave expandida usando-se o escalonamento de chaves do Rijndael. A maioria dos clculos do AES feita em um corpo finito prprio. O AES opera sobre um arranjo bidimensional de bytes com 4x4 posies, denominado de estado (as verses do Rijndael com um tamanho de bloco maior tm colunas adicionais no estado). Para criptografar, cada turno do AES (exceto o ltimo) consiste em quatro estgios: 1. AddRoundKey- cada byte do estado combinado com a subchave prpria do turno (RoundKey); cada subchave derivada da chave principal usando o algoritmo de escalonamento de chaves. 2. SubBytes- uma etapa de substituio no linear onde cada byte substitudo por outro de acordo com uma tabela de referncia. 3. ShiftRows- uma etapa de transposio onde cada fileira do estado deslocada de um determinado nmero de posies. 4. MixColumns- uma operao de mescla que opera nas colunas do estado e combina os quatro bytes de cada coluna usando uma transformao linear. O turno final substitui o estgio de MixColumns por um novo estgio de AddRoundKey.

Servidor radius

Servidor RADIUS: o host que validar o pedido do NAS. A resposta do pedido de autenticao pode ser positiva (Access-Accept) acompanhada da tabela de parmetros de resposta ou negativa (Access-Reject) sem nenhum parmetro.

Nas respostas positivas (Access-Accept) os parmetros de resposta so usados para orientar o NAS de como tratar o cliente. Numa rede wireless, nos parmetros podem constar por exemplo, o tempo mximo de conexo permitida, ou a chave de criptografia que dever ser usada no canal de comunicao entre o cliente e o NAS.

O servio RADIUS amplamente usado em provedores de acesso a internet. No Brasil por exemplo, a Oi (empresa de telecomunicaes) usa RADIUS no seu produto ADSL chamado Velox. No sistema Velox, o cliente inicia um pedido de conexo via protocolo PPPoE, um roteador Cisco srie 7000 atende o pedido e envia o nome de usurio e senha para o servidor RADIUS (localizado num datacenter no Rio de Janeiro), o RADIUS por sua vez confere as crednciais em seu banco de dados e retorna para o roteador se o cliente pode se conectar ou no. Se a resposta for positiva, o cliente receber um IP pblico e poder navegar, caso a resposta seja negativa, o acesso negado.

Das könnte Ihnen auch gefallen