A Internet é um canal de comunicação não confiável. Quando você envia ou recebe informações de um antigo site http http: //www.exemplo.com No seu navegador, muitas coisas podem acontecer no meio dos seus pacotes.
Os dois primeiros problemas podem ser resolvidos criptografando a mensagem antes de ser enviada pela Internet para o servidor. Ou seja, mudando para https. No entanto, o último problema, o problema da identidade é onde uma autoridade de certificado entra em jogo.
Iniciando sessões http criptografadas
O principal problema da comunicação criptografada sobre um canal inseguro é “Como começamos?”
O primeiro passo envolveria as duas partes, seu navegador e o servidor, para trocar as chaves de criptografia a serem trocadas pelo canal inseguro. Se você não estiver familiarizado com o termo chaves, pense nelas como uma senha realmente gerada aleatoriamente com a qual seus dados serão criptografados antes de serem enviados sobre o canal inseguro.
Bem, se as chaves estiverem sendo enviadas sobre um canal inseguro, qualquer um poderá ouvir sobre isso e comprometer a segurança da sua sessão HTTPS no futuro. Além disso, como podemos confiar que a chave sendo enviada por um servidor que afirma ser www.exemplo.com é de fato o verdadeiro proprietário desse nome de domínio? Podemos ter uma comunicação criptografada com uma festa maliciosa disfarçada como um site legítimo e não saber a diferença.
Portanto, o problema de garantir a identidade é importante se desejarmos garantir a troca de chaves seguras.
Autoridades de certificação
Você deve ter ouvido falar de LetSencrypt, Digicert, Comodo e alguns outros serviços que oferecem certificados TLS para seu nome de domínio. Você pode escolher o que atenda à sua necessidade. Agora, a pessoa/organização que possui o domínio precisa provar de alguma forma para sua autoridade de certificação que eles realmente têm controle sobre o domínio. Isso pode ser feito criando um registro DNS com um valor exclusivo, conforme solicitado pela autoridade de certificado, ou você pode adicionar um arquivo ao seu servidor da Web, com conteúdo especificado pela autoridade de certificado, a CA pode ler este arquivo e confirme que você é o proprietário válido do domínio.
Em seguida, você negocia um certificado TLS com a CA, e isso resulta em uma chave privada e um certificado TLS público emitido para seu domínio. As mensagens criptografadas por sua chave privada podem ser descriptografadas pelo Cert Public e vice -versa. Isso é conhecido como criptografia assimétrica
Os navegadores do cliente, como Firefox e Chrome (às vezes até o sistema operacional) têm o conhecimento das autoridades de certificação. Esta informação é assada no navegador/dispositivo desde o início (ou seja, quando eles são instalados) para que eles saibam que podem confiar em determinados casos. Agora, quando eles tentam se conectar a www.exemplo.com https e veja um certificado emitido por, digamos Digicert, o navegador pode realmente verificar se o uso das teclas armazenadas localmente localmente. Na verdade, existem mais algumas etapas intermediárias, mas essa é uma boa visão simplificada do que está acontecendo.
Agora que o certificado fornecido pela www.exemplo.com pode ser confiável, isso é usado para negociar uma chave de criptografia simétrica única que é usada entre o cliente e o servidor para o restante de sua sessão. Na criptografia simétrica, uma chave é usada para criptografar, bem como descriptografia, e geralmente é muito mais rápido que sua contraparte assimétrica.
Nuances
Se a idéia de TLS e segurança da Internet atrair você, você poderá procurar mais neste tópico cavando LetSencrypt e seu TLS gratuito CA. Há muito mais minutiado em todo esse rigmarole do que o indicado acima.
Outros recursos que eu posso recomendar para aprender mais sobre o TLS são o blog de Troy Hunt e o trabalho realizado pela eft como https em todos os lugares e certbot. Todos os recursos são gratuitos para acessar e realmente baratos para implementar (você só precisa pagar pelo registro de nomes de domínio e cobranças por hora VPS) e obter uma experiência prática.