SSL/TLS
São
protocolos da camada de transporte
padrão do TCP criptográficos que provê comunicação segura na internet para serviços
da camada de aplicação. TLS
está na versão 1 e o SSL na versão 3. O
protocolo SSL provê privacidade e a integridade de dados entre duas
aplicações.
O
SSL/TLS oferece confidencialidade
usando criptografia simétrica
e integridade de mensagens usando um código
de autenticação de mensagens.
O
SSL/TLS inclui mecanismos de protocolo para permitir que dois usuários TCP determinem
os mecanismos e os serviços de segurança que eles usarão. A
autenticação no SSL normalmente é UNILATERAL
(apenas o servidor seja autenticado – Segundo Tanenbaum), mas é OPCIONAL. Entretanto,
o protocolo permite a autenticação bilateral
entre os hosts.
A
comunicação entre os hosts no SSL são
FIM-a-FIM, e cada conexão está relacionado ao estabelecimento de uma segurança que envolve três fases:
1.
Negociação pelos algoritmos a serem usados.
2.
Troca de chaves de comunicação e autenticação dos
pares.
3.
Criptografia e autenticação das mensagens.
Utiliza
protocolo HANDSHAK
1.
O cliente se conecta com servidor SSL solicitando uma
conexão segura, apresenta a lista de algoritmos de cifração e HASH suportado.
2.
O servidor verifica os algoritmos que ele suporta da
lista, escolhe os algoritmos mais fortes, e notifica o cliente.
3.
O servidor se identifica para o cliente, enviando seu
certificado digital.
4.
Troca de chaves
O
SSL para troca de chaves e autenticação durante o estabelecimento da sessão
utiliza chave assimétrica, depois de estabelecido usa chave simétrica para
troca de mensagens.
SSL
(TLS) pode usar os seguintes algoritmos:
Para troca de
chaves: RSA, DIFFIE-HELLMAN, curvas elípticas.
Autenticação do
usuário: RSA, DSA.
Criptografia simétrica
da mensagem: RC4, 3-DES, AES, IDEA, DES.
Como HASH: MD5 ou
SHA.