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

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

Helvio Junior

Helvio Junior

Gerente de Infraestrutura de TI e Telecomunicações em Fael, uma empresa do grupo Apollo Global
Especialista em redes e segurança de sistemas pela PUC-PR, consultor de redes e segurança da informação. CEO e CTO da SafeTrend, com um produto de single sign-on e gestão de identidades e acessos. Especialista em Segurança da Informação, Controle de Acesso, ambientes e ferramentas de segurança, telefonia VoIP com Asterisk, administração de redes em ambientes híbridos e realização de penetration test (pentest).
Helvio Junior

Últimos posts por Helvio Junior (exibir todos)

1 responder
  1. Manasses Moraes
    Manasses Moraes says:

    Oi Helvio

    Primeira vez aqui no site.
    Instalamos recentemente em nossos sites o certificado SSL, e como não gosto de ficar de fora, comecei a pesquisar pra saber o que é isso realmente, para entender melhor o que foi feito em nossos sites. Já li sobre isso em vários sites, mas aqui sanei todas as dúvidas.

    Obrigado :-)

    Responder

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *