If you're seeing this message, it means we're having trouble loading external resources on our website.

Se você está atrás de um filtro da Web, certifique-se que os domínios *.kastatic.org e *.kasandbox.org estão desbloqueados.

Conteúdo principal

Segurança da Camada de Transporte (TLS)

Os computadores enviam pacotes de dados pela internet. Esses pacotes são como cartas em um envelope: um bisbilhoteiro pode facilmente ler os dados que estão dentro deles. Se esses dados forem uma informação pública, como uma notícia, isso não será um problema. Mas se esses dados forem uma senha, o número de um cartão de crédito ou um e-mail confidencial, então é arriscado deixar qualquer um vê-los.
O protocolo de Segurança da Camada de Transporte (TLS, do inglês "Transport Layer Security") adiciona uma camada de segurança sobre os protocolos de transporte TCP/IP. O TLS usa criptografia simétrica e criptografia de chave pública para enviar dados privados com segurança e acrescenta funcionalidades extras de segurança, como autenticação e detecção de adulteração de mensagens.
O TLS adiciona mais etapas ao processo de envio de dados com TCP/IP, portanto ele aumenta a
nas comunicações pela internet. Contudo, os benefícios de segurança geralmente compensam a latência extra.
(Observe que o TLS substituiu um protocolo antigo chamado SSL, portanto os termos TLS e SSL são frequentemente usados de forma intercambiável.)

Do início ao fim

Vamos passar pelas etapas do processo de envio seguro de dados com TLS de um computador para outro. Para isso, chamaremos o computador remetente de cliente e o computador destinatário de servidor.

Handshake TCP

Como o TLS é construído sobre TCP/IP, o cliente deve primeiro completar o handshake TCP de 3 vias com o servidor.
Diagrama de dois computadores com setas entre eles. O computador à direita é um servidor identificado com o endereço de IP da khanacademy.org. Uma única seta vai do notebook para o servidor com uma caixa acima dela contendo o texto: "ClientHello, ProtocolVersion: TLS 1.3, CipherSuites: TLS_RSA_WITH_RC4_128_SHA".
  • Uma seta vai do notebook até o servidor com uma identificação "SYN".
  • Uma seta vai do servidor até o notebook com uma identificação "ACK SYN".
  • Uma seta vai do notebook até o servidor com uma identificação "ACK".

Iniciação TLS

O cliente deve notificar o servidor de que deseja fazer uma conexão TLS em vez da conexão não segura padrão, então ele envia uma mensagem que descreve qual versão do protocolo TLS e quais técnicas de criptografia ele gostaria de usar.
Diagrama de dois computadores com setas entre eles. O computador à esquerda é um notebook que mostra uma tela de login da khanacademy.org. O computador à direita é um servidor identificado com o endereço de IP da khanacademy.org. Uma única seta vai do notebook para o servidor com uma caixa acima contendo o texto: "ClientHello, ProtocolVersion: TLS 1.3, CipherSuites: TLS_RSA_WITH_RC4_128_SHA".

Confirmação do protocolo pelo servidor

Se o servidor não suportar as tecnologias solicitadas pelo cliente, ele vai cancelar a conexão. Isso pode acontecer se um cliente moderno estiver tentando se comunicar com um servidor antigo.
Contanto que o servidor tenha suporte para a versão do protocolo TLS solicitada e outras opções, ele vai responder com uma confirmação e um certificado digital que contém sua chave pública.
Diagrama de dois computadores com setas entre eles. O computador à esquerda é um notebook que mostra uma tela de login da khanacademy.org. O computador à direita é um servidor identificado com o endereço de IP da khanacademy.org. Uma única seta vai do servidor para o notebook com uma caixa acima dela que diz "ServerHello, ProtocolVersion: TLS 1.3, CipherSuite: TLS_RSA_WITH_RC4_128_SHA, Certificate, ServerHelloDone".

Verificação do certificado

O certificado digital do servidor é a forma de ele dizer "Sim, eu realmente sou quem você pensa que eu sou". Se o cliente não acreditar que o certificado é legítimo, ele vai cancelar a conexão, afinal ele não quer enviar dados privados para um impostor.
Caso contrário, se o cliente conseguir verificar o certificado, ele vai continuar e ir para a próxima etapa.
Diagrama de verificação do cliente. Um notebook tem um balão de pensamento que sai dele e no qual está escrito "Certificate = khanacademy.org?".

Geração da chave compartilhada

Agora, o cliente sabe a chave pública do servidor, então ele teoricamente pode usar a criptografia de chave pública para criptografar os dados que o servidor pode depois descriptografar com a chave privada correspondente.
Contudo, a criptografia de chave pública demanda muito mais tempo de execução do que a criptografia simétrica devido às operações aritméticas mais difíceis envolvidas no processo. Assim, quando possível, os computadores preferem usar criptografia simétrica para economizar tempo.
E, felizmente, eles podem fazer isso! Os computadores podem primeiramente usar a criptografia de chave pública para gerar uma chave compartilhada de forma privada e depois usar criptografia simétrica com essa chave em mensagens futuras.
O cliente inicia esse processo enviando uma mensagem para o servidor com uma pré-chave mestra, criptografada com a chave pública do servidor. O cliente computa a chave compartilhada com base nessa pré-chave mestra (já que isso é mais seguro do que enviar a verdadeira chave compartilhada) e memoriza a chave compartilhada localmente.
O cliente também envia uma mensagem de "Concluído", cujo conteúdo está criptografado com a chave compartilhada.
Diagrama de dois computadores com setas entre eles. O computador à esquerda é um notebook que mostra uma tela de login da khanacademy.org. O computador à direita é um servidor identificado com o endereço de IP da khanacademy.org. Uma única seta vai do notebook para o servidor com uma caixa acima dela que diz: "ClientKeyExchange (PreMasterSecret: c3ac534f4d919a0e92b966795e), ChangeCipherSpec, Finished (21c124d28a548559f0f8abd4b)".

Confirmação da chave compartilhada pelo servidor

O servidor agora pode computar a chave compartilhada com base na pré-chave mestra e tentar descriptografar a mensagem de "Concluído" com essa chave. Se isso não funcionar, ele cancelará a conexão.
Contanto que o servidor consiga descriptografar a mensagem do cliente com a chave compartilhada, ele vai enviar uma confirmação e sua própria mensagem de "Concluído" com os conteúdos criptografados.
Diagrama de dois computadores com setas entre eles. O computador à esquerda é um notebook que mostra uma tela de login da khanacademy.org. O computador à direita é um servidor identificado com o endereço de IP da khanacademy.org. Uma única seta vai do servidor para o notebook com uma caixa acima dela que diz: "ChangeCipherSpec, Finished (c49fe482d338760807c3c278f)".

Envio seguro de dados

Por fim, o cliente envia com segurança os dados privados para o servidor usando criptografia simétrica e a chave compartilhada.
Diagrama de dois computadores com setas entre eles. O computador à esquerda é um notebook que mostra uma tela de login da khanacademy.org. O computador à direita é um servidor identificado com o endereço de IP da khanacademy.org. Uma única seta vai do notebook para o servidor com uma caixa acima dela que tem uma string de dados criptografados.
Muitas vezes, o mesmo cliente precisa enviar dados para um servidor diversas vezes, como quando um usuário preenche formulários em diversas páginas de um site. Nesse caso, os computadores podem usar um processo abreviado para estabelecer a conexão segura.
Teste seus conhecimentos
Como você viu, os dois computadores precisam passar por diversas etapas para estabelecer uma comunicação segura com TLS.
Complete a lista de etapas abaixo:
  1. O cliente e o servidor completam o handshake TCP
  2. O cliente envia os dados criptografados com a chave compartilhada

TLS por toda parte

O TLS é usado para diversas formas de comunicação segura na internet, como envio seguro de e-mails e transferência segura de arquivos. Contudo, ele é mais conhecido por seu uso na navegação segura em sites (HTTPS).
Por usar tanto criptografia de chave pública quanto criptografia simétrica, o TLS fornece uma camada de segurança sobre o TCP/IP, e torna-se cada vez mais necessário para manter seguros os dados privados que trafegam pela internet.

🙋🏽🙋🏻‍♀️🙋🏿‍♂️Você ficou com alguma dúvida sobre esse tópico? Adoraríamos responder! Basta nos perguntar na área de dúvidas abaixo!

Quer participar da conversa?

Nenhuma postagem por enquanto.
Você entende inglês? Clique aqui para ver mais debates na versão em inglês do site da Khan Academy.