5. O Handshake Protocol

Os parâmetros criptográficos do estado da sessão são produzidos pelo Handshake Protocol, que opera no topo da Record Layer. Quando um cliente e um servidor SSL iniciam uma comunicação eles inicialmente acordam sobre uma versao de protocolo, selecionam algorimos criptográficos, opcionalmente autenticam-se mutuamente e usam técnicas de chaves públicas de encriptação para gerar segredos comuns.

Estes processos sao executados no protocolo de Handshake, que pode ser descrito da seguinte forma:

  1. O Cliente envia uma Client Hello Message ao servidor
  2. O servidor responde com uma Server Hello Message
  3. Servidor envia seu Certificate
  4. Servidor envia Server Key Exchange Message
  5. Servidor solicita Certificate do cliente
  6. Servidor envia Server Hello Done Message
  7. Cliente manda Certificate Message ou No Certificate Alert
  8. Cliente manda Client Key Exchange Message
  9. Cliente manda Change Cipher Spec Message
  10. Cliente manda Finished Message
  11. Servidor manda Change Cipher Spec Message
  12. Servidor manda Finished Message
  13. Fim de Handshake. Inicio do protocolo de aplicação.

O SSL HANDSHAKE PROTOCOL permite ao servidor e ao cliente autenticarem-se mutuamente, negociarem um algoritmo de encriptação e chaves criptográficas antes do protocolo de aplicação transmitir ou receber os primeiros dados. Todas as mensagens de 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.

As mensagens Client Hello e Server Hello, estabelecem os seguintes atributos: Versão de Protocolo, Identificação de Sessão. Cipher Suite e Método de Compressão. Adicionalmente, dois valores randômicos são gerados e intercambiados entre cliente e servidor.

Exercicio