3. O protocolo SSL
É um protocolo aberto que foi submetido à consideração
do comitê de segurança do grupo de trabalho W3C
para tornar-se um padrão para a segurança para browsers e
servidores na World Wide Web. Sua especificação está
proposta no documento DRAFT
disponivel no IETF
O objetivo principal do protocolo SSL é prover privacidade e
confiabilidade entre dois programas aplicativos que se comunicam entre
si, e seu projeto leva em conta a existência de diversos programas
de aplicação e diversas plataformas com diferentes sistemas
operacionais e busca estabelecer um processo de negociação
e emprego de funções de autenticação mútua,
encriptação de dados e integridade para transações
seguras entre aplicações na Internet, de forma mais simples
e transparente quanto posível
No processo de autenticação mútua, é estabelecida
a confiança ente cliente e servidor, por mecanismos de identificação.
A encriptação dos dados, por sua vez adiciona privacidade
e confidencialidade na comunicação pela a aplicação
de diversos algoritmos que podem se suportados pelo protocolo, conforme
as necessidades da aplicação. E a integridade dos dados assegura
que os dados nao sejam adulterado, intencionalmente ou nao.
O protocolo é composto de duas camadas: No nível inferior,
suportado por um protocolo de transporte, tal como o TCP, está o
SSL RECORD PROTOCOL, usado para encapsular os diversos protocolos
de nível superior e prover os serviços de fragmentação,
compressão, autenticação de mensagem e encriptação.
No nível superior alem do protocolo de aplicação
propriamente dito sao inseridos protocolos auxiliares para prover os recursos
de segurança, quais sejam:
- O SSL HANDSHAKE PROTOCOL, que 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.
- O CHANGE CIPHER SPEC PROTOCOL, que serve para sinalizar transições
nas estratégias de cifragem. Consiste de uma única mensagem
que é encriptada sob a especificação corrente de cifragem.
Pode ser transmitida pelo cliente e pelo servidor para notificar à
outra parte que o registro subseqüente será protegido por chaves
de encriptação recém negociadas
- O ALERT PROTOCOL supervisiona erros na camada do Record Protocol
e provê troca de mensagens de alerta para sinalizar erros de sequência
de mensagens, erros de certificação e de encriptação.
- O APLICATION PROTOCOL especifica que as mensagens de dados das aplicações
são transportadas pela Record Layer, e são fragmentadas comprimidas
e encriptadas com base no estado de conexão corrente. As mensagens
são tratadas como dados transparentes pela Record Layer.
O protocolo SSL provê segurança de conexão com três
propriedades básicas:
- A conexão é privada. O mecanismo de encriptação
é utilizado depois de uma negociação inicial (handshake)
com a finalidade de definir uma chave secreta. Durante esta fase é
utilizado a criptografia simétrica para a encriptação
dos dados, tal como DES (RFC1423)
ou RC4.
- A identidade do cliente e do servidor pode ser autenticada usando algoritmo
de criptografia com chave assimétrica ou pública, tal como
RSA (RFC1423)ou DSS,
por exemplo.
- A conexão é confiável. O transporte de mensagens
inclui um mecanismo de checagem da integridade da mensagem usando MAC
(message authentication code) com as hash functions SHA, MD5, etc.
Exercicio