paint-brush
Um guia simplificado para certificados TLS 📝por@jaypmedia
871 leituras
871 leituras

Um guia simplificado para certificados TLS 📝

por Jean-Paul Rustom8m2023/08/09
Read on Terminal Reader

Muito longo; Para ler

Para garantir a comunicação segura na Internet pública, a JayP precisa abordar questões de autenticação, confidencialidade e integridade. Os certificados digitais desempenham um papel vital na solução desses problemas. Eles verificam a identidade de sites como o YouTube e evitam ataques man-in-the-middle, confirmando a origem da chave pública. Autoridades Certificadoras (CAs) assinam certificados digitais, criando uma cadeia de confiança. Os sistemas operacionais incluem CAs raiz confiáveis e os sites obtêm certificados intermediários das CAs. O navegador verifica a autenticidade dos certificados por meio de hash e descriptografia, garantindo conexões seguras. Três tipos de certificados TLS são explicados: Domínio Único (para um domínio específico), Curinga (para domínio principal e subdomínios) e Multi-Domínio (SAN, para vários domínios não relacionados em um certificado).
featured image - Um guia simplificado para certificados TLS 📝
Jean-Paul Rustom HackerNoon profile picture
0-item

Digamos que JayP queira se conectar ao youtube.com pela Internet pública. Antes de qualquer comunicação ocorrer, algumas preocupações surgirão:


Como ele pode verificar se está realmente se comunicando com o youtube? (Autenticação)

Como JayP pode saber que ninguém interceptou sua mensagem? (Confidencialidade)

Além disso, como ele pode ter certeza de que ninguém alterou a mensagem? (Integridade)


Bem, vamos abordar cada problema separadamente. Em primeiro lugar, JayP deve verificar a identidade do Youtube . Para isso, ele precisa da chave pública do Youtube. A chave pública representa a identidade do youtube.


O problema

O problema é que os invasores criaram maneiras de interceptar uma solicitação de um computador para outro na Internet e lançar um ataque man-in-the-middle . Com esse tipo de ataque, nosso atacante Chady injetaria sua própria chave pública e faria JayP pensar que ele está se comunicando com o Youtube, quando na verdade ele está se comunicando com Chady.


Chady se esgueirando e enviando SUA chave pública


Chady entra sorrateiramente e envia SUA chave pública.


Agora você pode pensar, assustador, não é? Imagine o que poderia ser possível com esse tipo de ataque, desde o roubo de informações pessoais, como credenciais de login ou detalhes de cartão de crédito, até a distribuição de malware ou outros objetivos maliciosos. Como então JayP pode ter certeza de que a chave pública que ele recebeu vem realmente do Youtube? É aí que entram os certificados digitais. (TADAAA)


Exemplo de certificado TLS


Eles garantem que a chave pública realmente vem do Youtube, e não de um Chady malicioso. Na verdade, os certificados digitais podem ser usados não apenas para HTTPS, mas também para correio, IOT e VPN…


Informações Dentro do Certificado TLS

Um certificado digital conterá bastante informação, vamos explorar as mais importantes:


Certificado do Youtube conforme mostrado no navegador Chrome


  • O emissor é o terceiro que assinou este certificado, falaremos sobre isso daqui a pouco. Algumas informações básicas incluirão o nome comum, a organização e o país.

  • Obviamente, um certificado digital também incluirá sua Validade , com dois campos críticos, nem antes e nem depois

  • O Sujeito é o dono do certificado e seria o Youtube no nosso caso. O assunto conterá informações como nome comum, endereço e, o mais importante, a chave pública.

  • Por fim, um certificado digital inclui sua assinatura . Esta é a assinatura assinada pelo emissor que comprova que este certificado é autêntico.


    Autoridade Certificadora


Quem assina o certificado digital?

Os certificados digitais são assinados por entidades denominadas autoridades certificadoras (por exemplo, DigiCert, Comodo, Symantec, Google Trust Services).

Mas espere, o que são autoridades certificadoras?

Bem, em poucas palavras, as Autoridades Certificadoras são organizações terceirizadas confiáveis responsáveis pela emissão de certificados digitais.

Autoridade Certificadora


As autoridades certificadoras têm suas próprias chaves públicas e privadas. A partir disso, vamos explicar como são feitas as assinaturas.


As informações mencionadas anteriormente contidas em um certificado digital serão hash usando um algoritmo SHA-256 , por exemplo. Depois que o hash é gerado, a autoridade de certificação criptografa o hash usando sua chave privada usando criptografia de chave assimétrica RSA. Esse hash criptografado é a assinatura de um certificado e só pode ser descriptografado usando a chave pública da autoridade de certificação. Qualquer pessoa com a chave pública da autoridade de certificação que assinou este certificado pode descriptografar e verificar se o certificado é autêntico e não foi adulterado.


Quando o navegador receber o certificado, ele fará o hash de todas as informações do seu lado usando o mesmo algoritmo de hash, neste exemplo, SHA-256. Em seguida, ele descriptografa a assinatura usando a chave pública da autoridade de certificação para receber o hash da autoridade de certificação. Se ambos os hashes corresponderem, o navegador poderá confirmar que esse certificado é realmente proveniente da autoridade de certificação reivindicada.


Hierarquias para autoridades de certificação

Existem hierarquias para autoridades de certificação - a autoridade de certificação raiz e a autoridade de certificação intermediária.



Autoridade de certificação raiz e intermediária



Na verdade, essas CAs raiz não emitem diretamente nenhum certificado digital para servidores. Apenas emite certificados digitais para CAs intermediárias que atuam em seu nome. As CAs intermediárias podem emitir certificados digitais para outra CA intermediária ou para um servidor diretamente.



Portanto, existe uma cadeia de confiança, da CA raiz ao servidor.

Os sistemas operacionais vêm com um armazenamento confiável, que é uma lista de autoridades de certificação raiz confiáveis. Esta lista é mantida pelas empresas que fabricam sistemas operacionais, como Apple e Microsoft. Todos eles exigem que uma autoridade de certificação raiz passe por uma ou mais auditorias que comprovem sua confiabilidade e validade.


Como tudo isso se encaixa na imagem?

Vamos visualizar todo o processo desde o início.

Em primeiro lugar, vamos supor que o youtube.com seja uma startup totalmente nova. Entendendo a necessidade de estar seguro em uma internet disponível publicamente, o Youtube teria que possuir um certificado digital confiável e apresentá-lo aos seus visitantes.



Passo 1: Youtube vai comprar um certificado digital

Em primeiro lugar, o Youtube procura uma autoridade de certificação intermediária. Lembre-se de que as autoridades de certificação intermediárias são intermediárias entre os servidores e as autoridades de certificação raiz. No caso do Youtube, o Google tem sua própria autoridade de certificação chamada Google Trust Services.



Depois de escolher uma CA intermediária, o Youtube faz uma solicitação de assinatura de certificado. A solicitação de assinatura do certificado conterá informações que serão incluídas no certificado digital do Youtube, como nome comum, organização e, principalmente, a chave pública do Youtube. O Youtube enviará a solicitação de assinatura do certificado para a CA intermediária.



A autoridade de certificação intermediária verificará o CSR contendo informações sobre o proprietário, também conhecido como assunto. Em seguida, ele adiciona campos como informações do emissor, que são informações sobre o certificado intermediário e a validade, e assina todas essas informações conforme explicado anteriormente no processo de assinatura. Após a assinatura, a autoridade de certificação intermediária enviará de volta o certificado digital para o youtube.


O Youtube agora pode anexar seu certificado digital recém-adquirido a seus servidores da web.


Etapa 2: JayP se conecta ao youtube.com para assistir a vídeos de condicionamento físico


Quando ele se conectar ao Youtube, o Youtube enviará seu próprio certificado e certificados de autoridades certificadoras intermediárias. A autoridade de certificação raiz não será enviada porque está disponível no sistema operacional do JayP. O certificado do Youtube incluirá as informações do emissor, que é a autoridade de certificação intermediária. O navegador, portanto, saberá que este certificado é assinado pela autoridade de certificação intermediária do Google Trust Services e terá seu certificado. Qualquer certificado digital conterá informações e uma assinatura, conforme explicado anteriormente. O navegador fará o hash de todas as informações para obter seu valor de hash. Em seguida, ele irá descriptografar a assinatura usando a chave pública do emissor, ou seja, a chave pública da autoridade certificadora intermediária. Novamente, lembre-se de que a assinatura só pode ser descriptografada usando a chave pública do emissor. Depois disso, o navegador comparará os dois valores de hash, se forem iguais, essa parte da cadeia será verificada e o navegador passará a verificar a autoridade de certificação intermediária porque, conforme explicado, as autoridades de certificação intermediárias não são confiáveis diretamente por os sistemas operacionais.



Pronto, agora o navegador irá verificar o certificado da Google Trust Intermediate Certificate Authority. Este certificado intermediário é assinado pela autoridade de certificação raiz do Google Trust Services. Observe que, antes desta etapa, poderíamos ter muitas autoridades certificadoras intermediárias entre o certificado final e o certificado raiz e, para cada parte da cadeia, o mesmo processo de verificação acontecerá.



Em nosso exemplo, vamos nos ater apenas a um. A assinatura do certificado da autoridade certificadora intermediária será verificada com a chave pública da autoridade certificadora raiz, conforme informado anteriormente. Ao atingir a autoridade de certificação raiz, é aí que a cadeia termina. A autoridade de certificação raiz, que é autoassinada, estará disponível no armazenamento confiável do sistema operacional do JayPee.




É isso! O navegador, após essa verificação, exibirá um ícone de cadeado bonito, como o do seu navegador. Agora é garantido que a comunicação é realmente com o Youtube e que é segura (HOORAY)


Três tipos de Certificados de Domínio

Antes de encerrarmos, explicaremos brevemente três tipos principais de certificados TLS.


1) Certificado de Domínio Único

Um único certificado de domínio é projetado para proteger um único nome de domínio totalmente qualificado. Isso significa que o certificado é válido apenas para um domínio específico e não abrange nenhum subdomínio ou domínio adicional. Por exemplo, para o domínio "www.youtube.com", um único certificado de domínio protegeria apenas esse domínio e nenhuma outra variação como "academy.youtube.com" ou "blog.youtube.com"

Casos de uso: certificados de domínio único são ideais quando você tem um único site ou aplicativo da Web que não requer subdomínios adicionais. Eles são a opção mais direta e econômica para proteger um domínio específico.


2) Certificado Curinga


Em seguida, temos um certificado curinga, que é um tipo de certificado TLS emitido para um domínio principal e todos os seus subdomínios usando um único certificado. O asterisco do caractere curinga é usado no campo Nome Comum (CN) ou no campo Nome Alternativo do Assunto (SAN) para indicar que qualquer subdomínio sob o domínio especificado é coberto. Por exemplo, se você tiver um certificado curinga para " .youtube.com", ele protegerá "youtube.com", "academy.youtube.com" , blog.youtube.com" e assim por diante.


Casos de uso: certificados curinga evitam que você precise gerenciar e renovar certificados individuais para cada subdomínio. No entanto, é essencial observar que os certificados curinga cobrem apenas um nível de subdomínios. Por exemplo, um certificado curinga para "*.youtube.com" não cobriria "academia.blog.youtube.com".


3) Certificado Multi-Domínio (SAN)


Um certificado de vários domínios, também conhecido como certificado de nome alternativo da entidade, permite que você proteja vários domínios não relacionados em um único certificado. Cada domínio ou subdomínio a ser protegido é listado na extensão Subject Alternative Name (SAN) do certificado.


Por exemplo, o Google e outras grandes empresas usariam esses certificados de vários domínios. Um dos principais benefícios seria o gerenciamento simplificado de certificados: o Google opera muitos serviços e aplicativos da web, cada um com seu próprio domínio ou subdomínio. O uso de certificados de vários domínios permite consolidar o gerenciamento de certificados para vários domínios ou subdomínios em um único certificado. Isso agiliza o processo de emissão, renovação e monitoramento de certificados.



E é isso. Reserve algum tempo para assistir à aula animada.

Em meu próximo artigo, discutirei a criptografia com TLS.


Também publicado aqui.