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
UP!
...by Cloudy