Handshake com SSL

Iniciado por HadeS, 14 de Junho , 2006, 10:19:34 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

HadeS

Vou explicar aqui como a conexão atravéz do protocolo SSL acontece (Handshake).

Primeiro o cliente e o servidor entram em um acordo, definem a versão do protocolo, selecionam o algoritmo de criptografia, trocam as chaves públicas, para depois o Handshake acontecer.

Vou descrever aqui o Shandshake básico e perfeito de uma conexão SSL. Vamos por passos:

1- O cliente envia uma solicitação de conexão (Client Hello Message)
2- O servidor responde com uma aceitação (Server Hello Message)
3- Servidor envia seu Certificado (Certificate)
4- Servidor envia sua chave (Server Key Exchange Message)
5- Sercidor solicita o Certificado (Certificate) do Cliente
6- ClienteObservação¹: envia seu certificado (Certificate) ou um alerta avisando que não possue Certificado (No Certificate Alert)
7- Cliente envia sua chave (Client Key Exchange Message)
8- Cliente manda Change Cipher Spec Message
9- Cliente envia uma mensagem dizendo que terminou o processo (Finished Message)
10- Servidor manda Change Cipher Spec Message
11- Servidor envia uma mensagem dizendo que terminou o processo (Finished Message)
12- O Handshake está completo. A conexão foi estabalecida.

Observação¹: As mensagens Client Hello e Server Hello (Respectivamente, passos 1 e 2), possuem os seguintes atributos: Versão de Protocolo, Identificação de Sessão, Cipher Suite, Método de Compressão, e cada uma possue um campo com um número de indentificação aleatório, para garantir a autenticidade dos pacotes.

Observação²: Todas as mensagens do handshake são trocadas usando MAC (Message Authentication Code) para dar segurança desde o início do processo. A ordem das mensagens obedece a uma seqüência absoluta, e as mensagens de negociação são criadas nesta camada e manuseadas pela Record Layer.


HadeS

Cloudy

"You have to be trusted by the people tou lied to, so when they turn their back on you, you have the chance to the put the knife in." (Roger Waters)

...by Cloudy