Você está na página 1de 7

Criptografia e Protocolo SSL

Criptografia

O conhecimento dessa metodologia é antigo. Com o advento dos computadores ela


se tornou uma parte indispensável da segurança moderna, sendo empregada no ambiente
computacional para proteção dos dados de pessoas não autorizadas.

O que é criptografar?

Criptografia vem da palavra grega kryptos = ”escondida”e graphia = ”escrever”.


Criptografar significa transformar uma mensagem em outra (”escodendo”a mensagem
original), usando para isso, funções matemáticas e uma senha especial, chamada chave.

Categorias

Os métodos de criptografia têm sido divididos em duas categorias: as cifras de subs-


tituição e as de cifras de transposição.

Cifras de Substituição

Cada letra ou grupo de letras é substituı́da por outra letra ou grupo de letras.

Exemplo:
Vejamos um exemplo bem simples, só para se entender a idéia.
Cada uma das 26 letras do alfabeto tem seu correspondente em outra letra.
abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm

Esse sistema é conhecido como substituição monoalfabética, sendo a chave o string


de 26 letras correspondente ao alfabeto. Substituindo as letras da palavra ”atacar”pela
correspondente resultaria em ”qzqeqk”.

Todavia em um texto pequeno, a cifra poderia ser descoberta facilmente. Pois o


intruso começaria contando as letras mais frequentes do texto cifrado e depois disso ele
atribuiria a letra ”a”a letra mais comum. Em seguida ele poderia verificar os trigamas e
encontrar um no formato gXi, o que poderia sugerir que X poderia ser ”u”.

Embora a criptografia moderna utilize as mesma idéias básicas da substituição tradi-


cional, sua ênfase atual é diferente, ela tem como objetivo tornar o algoritmo complexo e
emaranhado para que o intruso não seja capaz de obter qualquer sentido da mensagem.

Cifras de Transposição

Muda a ordem das letras.

Por exemplo:
Para cifrar o texto ”transferir um mil”

A cifra se baseia em uma chave que é uma palavra ou frase. No exemplo é ”disco”.
A chave servirá de apoio para enumerar as colunas.

Palavra chave = ”d i s c o”
.................................(2 3 5 1 4)

A mensagem é escrita abaixo da chave , de 5 em 5 letras (que é a mesma quantidade


de letras da chave).

Palavra chave = ”d i s c o”

2 3 5 1 4
t r a n s
f e r i r
u m m i l

O texto é lido na vertical, conforme a ordem dessas colunas. Resultando em ”niitfu-


remsrlarm”.

Chave

A chave consiste em um string que pode ser alterada sempre que necessário. Desse
modo o algoritmo de criptografia pode ser conhecido. Quando o algoritmo se torna
público, vários especialistas tentam decodificar o sistema. Se após alguns anos nenhum
deles conseguirem a proeza, significa que o algoritmo é bom.

Tamanho da chave

O fator de trabalho para decodificar o método através de uma pesquisa no espaço da


chave é exponencial em relação ao tamanho da chave. Por exemplo, uma chave com um
tamanho de dois dı́gitos significa que existem cem possibilidades, e um tamanho de chave
de seis dı́gitos significa um milhão de possibilidades, portanto quanto maior for a chave,
maior será o fator de trabalho com que o intruso terá de lidar.

Tipo

O tipo de chave usada depende do tipo da criptografia usada. Existem dois tipos de
criptografia:

• Criptografia simétrica, que usa uma chave privada.

• Criptografia de chave pública, que usa um par de chaves, conhecida com chaves
publica e privada.

Criptografia Simétrica

Uma única chave criptografa e decriptografa os dados. Ela é relativamente pequena


e rápida, contudo como desvantagem, não só o transmissor deve conhecer a chave como
também o receptor. Além disso, o volume total dos dados transmitidos é limitado pelo
tamanho da chave.

É mais frequentemente usada:

• Nas comunicações entre duas máquinas.

• No armazenamento da informação em um disco rı́gido.

Exemplos resumidos de algoritmos que usam criptografia simétrica:

• Crypt - Programa de criptografia original do Unix. O método se baseia em uma


chave de variável de comprimento.
• IDEA (International Data Encrypton Algorithm) - O método se baseia na utilização
de uma chave de 128 bits, onde blocos de texto da mensagem de entrada são alterados
em uma sequência de interações, produzindo blocos de saı́da.

• DES (Data Encrypton Standard) - Por ser um algoritmo muito adotado na in-
formática para uso em produtos de segurança, veremos maiores detalhes sobre ele.

Algoritmo DES - O DES é basicamente uma cifra de substituição que utiliza um


caracter de 64 bits. Ele possui uma chave de 56 bits e seu algoritmo tem 19 estágios.

O DES executa uma série de transposições, substituições, e operações de recombinação


em blocos de dados de 64 bits. Inicialmente, os 64 bits de entrada sofrem uma transposição
e são colocados em uma função usando tabelas estáticas de transposição e substituição
(conhecidas como caixas-P e caixas-S).

Exemplo do funcionamento de uma caixa-P:


P significa ”permuta”, então se forem designados 8 bits de entrada ”01234567”será efe-
tuada uma transposição (que irá mudar a ordem dos números ) . A saida dessa caixa-P
será ”36071245”.

Exemplo do funcionamento de uma caixa-S:


S representa a substituição dos números por outros números. Supondo que o número 0
seja substituido por 2, o 1 por 4, o 2 por 5, o 3 por 0, o 4 por 6, o 5 por 7, o 6 por 1 e o
7 por 3.
Para a entrada ”01234567”a substituição resultaria em ”24506713”.

Os estágios são parametrizados por diferentes funções da chave. A função consiste em


4 etapas, que são executadas em sequência:

• Primeiro é feita uma transposição de 64 bits dos dados.

• Os 16 estágios restantes (ver figura como iteração) são parametrizados por diferentes
funções da chave.

• O penútimo estágio troca os 32 bits da esquerda pelos 32 bits da direita (os 32 bits
representam uma divisão dos 64 bits)

• O útimo estágio é o inverso da primeira transposição.

Em cada uma das 16 iterações, é utilizada uma chave especı́fica. Antes de se iniciar
o algoritmo, uma transposição de 56 bits é aplicada a chave. Antes de cada iteração, a
chave é particionada em duas unidades de 28 bits, sendo que cada uma delas é roteada
para a esquerda por um determinado número de bits. Em cada rodada, um subconjunto
de 48 bits dos 56 bits é extraı́do e permutado. O algoritmo então executa a transposição
final e gera 64 bits.

Figura 1: Estrutura simplificada do algoritmo de criptografia de chave simétrica DES

Este algoritmo é estruturado de uma maneira que a mudança de qualquer bit de


entrada surta um efeito maior em quase todos os bits de saı́da.

Criptografia de chave pública

Nesse método as chaves de criptografia e decriptografia são diferentes. Quando uma


chave criptografa um dado, a outra pode decriptografá-lo.

O usuário tem duas chaves, uma chave pública que é usada por todo mundo que
queira enviar mensagens a ele, e a chave privada que o usuário utiliza para decriptografar
as mensagens recebidas. Aqui o usuário divulga sua chave publica para os outros, e
mantém a sua chave privada em sigilo. Poderia também ser ao contrário, criptografar com
chave privada e decriptografar com chave pública. Nesse caso, não existe uma questão de
segurança, mas de identificação, certificando a origem do dado.

Algumas desvantagens são que esse método é lento, volumoso, e as chaves não podem
ser facilmente divididas.

É mais frequentemente usada para certificar a origem do dado e integridade.

Exemplos resumidos de algoritmos que usam criptografia assimétrica:

• Diffie-Hellman - É um método para desenvolver e trocar uma chave compartilhada


sobre um canal de comunicação público utilizando transformações matemáticas.

• ElGamal - É um método baseado na exponenciação e aritmética modular.

• RSA (Rivest, Shamir, Adleman) - O RSA é um algoritmo largamente usado, por


isso vamos entrar em maiores detalhes sobre ele.

Algoritmo RSA - Este algoritmo leva a inicial do nome dos seus criadores Rivest,
Shamir e Adleman.

O RSA usa duas chaves criptográficas, uma chave pública e uma privada. A chave
pública é usada para criptografar a mensagem e a chave privada é usada para decripto-
grafar a mensagem (pode ser vice-versa).

A segurança desse método se baseia na dificuldade de fatorar números extensos. Se-


gundo seus pesquisadores, a fatoração de um número de 200 dı́gitos requer 4 milhões de
anos para ser processada; fatorar um número de 500 dı́gitos exige 1025 anos. Mesmo que
os computadores se tornem mais velozes, muito tempo irá passar até que seja possı́vel
fatorar um número de 500 dı́gitos, e até lá poderão escolher a fatoração de um número
ainda maior.

Vantagens da Criptografia Proteger a informação armazenada em trânsito, deter


alterações de dados e identificar pessoas.

Desvantagens da Criptografia Não há como prevenir que um intruso apague todos
os seus dados, estando eles criptografados ou não.

SSL

É um protocolo para garantir a segurança de dados em trânsito na Internet, desde


que o cliente e o servidor o apoiem.
Caracterı́sticas

• Versão 2.0 desenvolvido pela Netscape e a versão 3.0 foi projetada com revisão
pública e ”input”da indústria.

• É um protocolo não proprietário.

• Executa uma negociação do protocolo para estabelecer a conexão

• Usa criptografia e é baseado em uma tecnologia de criptografia desenvolvida pela


RSA.

• Provê privacidade e confiança na comunicação, evitando espionagem ou falsificação.

• Executa a negociação do protocolo para estabelecer uma conexão segura ao nı́vel do


socket. Os serviços de segurança são transparentes ao utilizador e à aplicação.

• Como o SSL é uma camada API de sockets de segurança (Secure Sockets Layer) ele
pode ser usado com qualquer porta TCP. Por exemplo, FTP, TELNET, WWW.

• No transporte da mensagem inclui uma mensagem de checagem de integridade.

• Programadores podem desenvolver aplicações utilizando o SSL que podem trocar


parâmetros criptográficos, com sucesso, sem um conhecer o código do outro.