Como funciona o SSL? | Certificados SSL e TLS

O SSL, também conhecido como TLS, usa criptografia para manter os dados do usuário seguros, autenticar a identidade dos sites e impedir que invasores adulterem as comunicações na internet.

Objetivos de aprendizado

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

  • Entenda o que significa SSL/TLS
  • Explique como o SSL/TLS mantém as comunicações pela internet seguras
  • Saiba como obter um certificado SSL e como os certificados SSL mantêm os dados do usuário seguros

Copiar o link do artigo

O que é SSL?

SSL significa Secure Sockets Layer, e se refere a um protocolo para criptografar e proteger as comunicações que ocorrem na internet. Embora o SSL tenha sido substituído por um protocolo atualizado chamado TLS (Transport Layer Security) há algum tempo, "SSL" ainda é um termo comumente usado para esta tecnologia.

O principal caso de uso para o SSL/TLS é a segurança das comunicações entre um cliente e um servidor, mas ele também pode proteger o e-mail, VoIP e outras comunicações em redes inseguras.

Como funciona o SSL/TLS?

Estes são os princípios essenciais a serem apreendidos para entender como funciona o SSL/TLS:

  • A comunicação segura começa com um handshake TLS, em que as duas partes que se comunicam iniciam uma conexão segura e trocam a chave pública
  • Durante o handshake TLS, as duas partes geram chaves de sessão, e as chaves de sessão criptografam e descriptografam todas as comunicações realizadas após o handshake TLS
  • Diferentes chaves de sessão são usadas para criptografar as comunicações a cada nova sessão
  • O TLS garante que a parte do lado do servidor, ou do site com o qual o usuário está interagindo, é realmente quem afirma ser
  • O TLS também garante que os dados não foram alterados, uma vez que um código de autenticação de mensagem (MAC) é incluído nas transmissões

Com o TLS, tanto os dados HTTP que os usuários enviam a um site (clicando, preenchendo formulários, etc.) quanto os dados HTTP que os sites enviam aos usuários são criptografados. Os dados criptografados precisam ser descriptografados pelo destinatário mediante o uso de uma chave.

o Handshake TLS

As sessões de comunicação TLS começam com um handshake TLS. Um handshake TLS usa algo chamado criptografia assimétrica, o que significa que duas chaves diferentes são usadas nas duas pontas da conversa. Isto é possível devido a uma técnica chamada criptografia de chave pública.

Na criptografia de chave pública, são utilizadas duas chaves: uma chave pública, que o servidor disponibiliza publicamente, e uma chave privada, que é mantida em segredo e utilizada apenas no lado do servidor. Os dados criptografados com a chave pública só podem ser descriptografados com a chave privada, e vice-versa.

Durante o handshake TLS, o cliente e o servidor usam as chaves públicas e privadas para trocar dados gerados aleatoriamente, e esses dados aleatórios são usados para criar novas chaves para criptografia, chamadas chaves de sessão.

Criptografia simétrica com chaves de sessão

Ao contrário da criptografia assimétrica, na criptografia simétrica as duas partes de uma conversa utilizam a mesma chave. Após o handshake TLS, ambos os lados usam a mesma chave de sessão para a criptografia. Depois que as chaves de sessão estão em uso, as chaves públicas e privadas não são mais usadas. As chaves de sessão são chaves temporárias que não são usadas novamente quando a sessão é encerrada. Um novo conjunto aleatório de chaves de sessão será criado para a próxima sessão.

Criptografia assimétrica Criptografia simétrica

Autenticação do servidor de origem

As comunicações TLS do servidor incluem um código de autenticação de mensagem, ou MAC, que é uma assinatura digital que confirma que a comunicação teve origem no site verdadeiro. Isto autentica o servidor, evitando ataques on-path e falsificação de domínio. O MAC também garante que os dados não foram alterados em trânsito.

O que é certificado SSL?

Um certificado SSL é um arquivo instalado no servidor de origem de um site. É simplesmente um arquivo de dados contendo a chave pública e a identidade do proprietário do site, juntamente com outras informações. Sem um certificado SSL, o tráfego de um site não pode ser criptografado com TLS.

Tecnicamente, qualquer proprietário de um site pode criar seu próprio certificado SSL, e esses certificados são chamados de certificados autoassinados. Entretanto, os navegadores não consideram os certificados autoassinados tão confiáveis quanto os certificados SSL emitidos por uma autoridade certificadora.

Como um site obtém um certificado SSL?

Os proprietários de sites precisam obter um certificado SSL junto a uma autoridade certificadora e depois instalá-lo em seu servidor web (muitas vezes um host da web pode cuidar desse processo). Uma autoridade certificadora é uma parte externa que pode confirmar que o proprietário do site é quem ele diz ser. Eles guardam uma cópia dos certificados que emitem.

É possível obter um certificado SSL gratuito?

Muitas autoridades certificadoras cobram pelos certificados SSL. Para ajudar a tornar a Internet mais segura, a Cloudflare oferece certificados SSL gratuitos. A Cloudflare foi a primeira empresa de segurança e desempenho da internet a fazê-lo. A Cloudflare também trabalhou para otimizar o desempenho do SSL/TLS para que os sites que migram do HTTP para o HTTPS não tenham seu desempenho afetado. Para obter mais informações sobre as opções SSL com a Cloudflare, consulte nossa Documentação do desenvolvedor .

Qual é a diferença entre HTTP e HTTPS?

O S em "HTTPS" significa "seguro." HTTPS é apenas um HTTP com SSL/TLS. Um site com um endereço HTTPS tem um certificado SSL legítimo emitido por uma autoridade certificadora, e o tráfego de e para esse site é autenticado e criptografado com o protocolo SSL/TLS.

Para incentivar a internet como um todo a migrar para o HTTPS, que é mais seguro, muitos navegadores web começaram a marcar sites HTTP como "não seguros" ou "inseguros." Assim, não só o HTTPS é essencial para manter os usuários seguros e os dados dos usuários protegidos, como também se tornou essencial para proporcionar confiança aos usuários. Faça um teste com um site para verificar problemas de SSL/HTTPS.