It Security Transport Layer Security (TLS) e Secure Sockets Layer (SSL)
Post
Cancel

Transport Layer Security (TLS) e Secure Sockets Layer (SSL)

O TLS/SSL é utilizado para garantir a confidencialidade e autenticidade de servidores e clientes na internet, o seu uso é mais comum em protocolos como HTTP e SMTP comumente chamados de HTTPS e SMTPS.

O que é TLS/SSL?

O Transport Layer Security - TLS (Segurança da Camada de Transporte) e o seu predecessor, Secure Sockets Layer - SSL (Protocolo de Camada de Sockets Segura), são protocolos criptográficos que conferem segurança de comunicação na Internet para serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de transferência de dados. Há algumas pequenas diferenças entre o SSL 3.0 e o TLS 1.0, mas o protocolo permanece substancialmente o mesmo. O termo "SSL" usado aqui aplica-se a ambos os protocolos.

O SSL é um protocolo que se utiliza de dois tipos de criptografia (Assimétrica e Simétrica). Onde inicialmente estabelece a conexão com uma criptografia assimétrica e através desta conexão segura realiza a troca de chave da criptografia simétrica e por fim continua a comunicação dos dados com uma criptografia simétrica.

Este fluxo resolve diversos problemas que se tem utilizando os modelos de criptografia simétrica/assimétrica separadamente:

  • Criptografia simétrica
    • Rápido;
    • Uma só chave para cifrar e decifrar;
    • Problema para a troca de chaves (pois o cliente e servidor precisam conhecer a chave).
  • Criptografia assimétrica
    • Lento;
    • Usa um par de chaves. Onde uma chave cifra e outra decifra;
    • O cliente precisa apenas conhecer a chave pública para cifrar e enviar os dados ao servidor, que por sua vez consegue decifrar a informação com a chave privada.

Para maiores detalhes sobre criptografia verifique o post Certificação digital

O SSL foi criado como um protocolo separado para segurança, sendo considerado como uma nova camada na arquitetura TCP/IP conforme demonstrado na figura abaixo:

 

Esta metodologia permite que o SSL seja utilizado para outras aplicações que não sejam o HTTP, como por exemplo, o FTP, POP3 e SMTP.

 

Sem a utilização do SLL uma conexão é estabelecida com o seguinte fluxo:

  1. Handshake TCP
  2. O cliente e o servidor iniciam o processo normal definido pelo protocolo de camada de aplicação (HTTP, SMTP, FTP, POP3 e outros)

Com a utilização do SSL a conexão é estabelecida com o seguinte fluxo:

  1. Handshake TCP
  2. Processo de autenticação e encriptação (descritos detalhadamente no próximo item)
  3. O cliente e o servidor iniciam o processo normal definido pelo protocolo de camada de aplicação (HTTP, SMTP, FTP, POP3 e outros)

Observe que a conexão com o SSL adicionou um passo antes que o protocolo de aplicação fosse iniciado.

Estabelecimento de uma conexão segura

A figura abaixo demonstra de forma sintetizada os passos do processo de negociação para que se estabeleça uma conexão segura.

 

Passo

Ação

1O Cliente envia a mensagem ClientHello propondo uma conexão segura com as opções SSL
2O servidor responde com uma mensagem ServerHello  selecionando a opção SSL
3O servidor envia seu certificado de chave pública (certificado X.509) na mensagem Certificate.
4O servidor conclui essa parte da negociação com a mensagem ServerHelloDone
5O cliente envia a chave de sessão (encriptado com a chave pública do servidor) na mensagem ClientKeyExchange
6O Cliente envia a mensagem ChangeCipherSpec para ativar as opções previamente negociadas para as próximas mensagens enviadas
7O Cliente envia a mensagem Finished para que o servidor verifique as opções recentemente ativadas
8O servidor envia a mensagem ChangeCipherSpec para ativar as opções previamente negociadas para as próximas mensagens enviadas
9O Servidor envia a mensagem Finished para que o cliente as opções recentemente ativadas

Referencias bibliográficas

THOMAS, Stephen A, SLL & TLS Essential: Securing the Web. Ed. New York: Elsevier, 2000.

Importando certificado X.509 no Windows

Instalando autoridade certificadora raiz (CA Root) com OpenSSL

Comments powered by Disqus.