O que é o TLS (Transport Layer Security)?

O TLS é um protocolo de segurança que oferece privacidade e integridade de dados em comunicações pela internet. Implementar o TLS é uma prática padrão para criar apps da web seguros.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir o Transport Layer Security (TLS)
  • Explicar como o TLS funciona
  • Diferenciar entre o TLS e o SSL
  • Entender como o TLS afeta a performance
  • Descrever como implementar o TLS

Copiar o link do artigo

O que é o Transport Layer Security (TLS)?

O Transport Layer Security, ou TLS, é um protocolo de segurança amplamente utilizado, criado para aumentar a privacidade e a segurança dos dados em comunicações pela internet. Um dos principais casos de uso do TLS é a criptografia da comunicação entre aplicativos web e servidores, como quando um navegador carrega um site. O TLS também pode ser usado para criptografar outras comunicações, como e-mails, mensagens e voz sobre IP (VoIP). Neste artigo, vamos falar sobre o papel do TLS na segurança de aplicativos web.

O TLS foi proposto pela Internet Engineering Task Force (IETF), uma organização internacional de normas, e a primeira versão do protocolo foi publicada em 1999. A mais recente é a TLS 1.3, publicada em 2018.

Qual é a diferença entre TLS e SSL?

O TLS evoluiu de um protocolo de criptografia anterior, chamado Secure Sockets Layer (SSL), desenvolvido pela Netscape. A versão 1.0 do TLS na verdade começou com o desenvolvimento da versão 3.1 do SSL, mas o nome do protocolo foi alterado antes da publicação a fim de indicar que ele já não estava mais associado com a Netscape. Por causa disso, muitas vezes os termos TLS e SSL são usados de forma intercambiável.

Qual é a diferença entre TLS e HTTPS?

O HTTPS é uma implementação da criptografia TLS sobre o protocolo HTTP, que é usado por todos os sites e por alguns serviços web. Todo site que usa o HTTPS, portanto, usa criptografia TLS.

Por que as empresas e os aplicativos web usam o protocolo TLS?

A criptografia TLS ajuda a proteger os aplicativos web de invasões de dados e outros ataques. Além disso, o HTTPS protegido por TLS está rapidamente se tornando uma prática padrão para sites. Por exemplo, o navegador Google Chrome está coibindo sites sem HTTPS e, todos os dias, usuários da internet estão cada vez mais atentos a sites que não exibem o ícone de cadeado do HTTPS.

O que o TLS faz?

O protocolo TLS tem três funções principais: Criptografia, Autenticação e Integridade.

  • Criptografia: oculta os dados transferidos por terceiros.
  • Autenticação: garante que as partes que estão trocando informações são autênticas.
  • Integridade: verifica se os dados não foram falsificados ou adulterados.

Como funciona o TLS?

Para usar o TLS, um site ou aplicativo precisa ter um certificado TLS instalado no servidor de origem (esse certificado também é conhecido como certificado SSL, por causa da confusão na nomenclatura descrita anteriormente). O certificado TLS é emitido por uma autoridade de certificação para a pessoa ou empresa dona de um domínio. O certificado contém dados importantes sobre quem é o proprietário do domínio, bem como a chave pública do servidor, duas informações essenciais para validar a identidade do servidor.

Uma conexão TLS é iniciada por uma sequência chamada de handshake TLS. Quando um usuário navega até um site que usa TLS, o handshake começa entre o dispositivo (também conhecido como dispositivo cliente) e o servidor web.

Durante o handshake TLS, o dispositivo do usuário e o servidor web:

  • Especificam qual versão do TLS (TLS 1.0, 1.2, 1.3, etc.) serão usadas
  • Decidem que suítes de cifras (ver abaixo) usarão
  • Autenticam a identidade do servidor por meio do certificado TLS
  • Geram chaves de sessão para criptografar mensagens após o handshake

O handshake TLS define um pacote de codificação para cada sessão de comunicação. O pacote de codificação é um conjunto de algoritmos que informa, por exemplo, quais chaves de criptografia ou chaves de sessão compartilhadas serão usadas em uma sessão específica. O TLS define as chaves de sessão correspondentes em um canal não criptografado, graças a uma tecnologia conhecida como criptografia de chave pública.

O handshake também faz a autenticação, processo em que o servidor prova sua identidade ao cliente. Isso é feito com chaves públicas. Chaves públicas são chaves de criptografia que usam criptografia unidirecional, ou seja, qualquer pessoa com a chave pública pode reordenar os dados criptografados com a chave privada do servidor para garantir sua autenticidade, mas somente o remetente original pode criptografar dados com a chave privada. A chave pública do servidor é parte do certificado TLS.

Após a criptografia e a autenticação, os dados são assinados com um autenticador de mensagem (MAC). Assim, o destinatário pode verificar o MAC para garantir a integridade dos dados. É como um lacre, pois, quando está intacto, o consumidor sabe que ninguém mexeu no produto.

Como o TLS afeta a performance do aplicativo web?

As versões mais recentes do TLS quase não afetam a performance de aplicativos web.

Mas como o processo de configuração de uma conexão TLS é complexo, você gasta tempo de carregamento e capacidade de computação. O cliente e o servidor precisam se comunicar entre si diversas vezes antes da transmissão de dados, e isso consome valiosos milissegundos do tempo de carregamento de aplicativos web, bem como parte da memória do cliente e do servidor.

No entanto, existem tecnologias que ajudam a mitigar a possível latência criada pelo handshake TLS. Uma delas é o TLS False Start, em que o servidor e o cliente começam a transmitir dados antes da conclusão do handshake TLS. Outra tecnologia que acelera o TLS é a TLS Session Resumption, em que clientes e servidores que já se comunicaram anteriormente usam um handshake abreviado.

Essas melhorias ajudaram o TLS a se tornar um protocolo muito rápido, que não afeta de forma significativa o tempo de carregamento. Quanto aos custos de computação do TLS, são quase insignificantes nos padrões de hoje.

O TLS 1.3, lançado em 2018, acelerou ainda mais o TLS. No TLS 1.3, os handshakes só precisam de uma viagem de ida e volta (ou comunicação completa) em vez de duas, o que encurta o processo em alguns milissegundos. Quando o usuário já se conectou a um site antes, o handshake TLS não faz nenhuma viagem de ida e volta, e fica ainda mais rápido.

Como começar a implementar o TLS em um site

A Cloudflare oferece certificados TLS/SSL grátis para todos os usuários. Quem não usa a Cloudflare precisa adquirir um certificado SSL de uma autoridade de certificação, geralmente pago, e instalá-lo nos servidores de origem.

Para saber mais sobre como os certificados TLS/SSL funcionam, confira o artigo O que é um certificado SSL?. Visite a Central de Diagnósticos da Cloudflare para saber se um site usa criptografia TLS.