
Tenho ideias erradas sobre certificados CA (Autoridade de Certificação). Não importa quantas coisas eu leia, ainda não está totalmente claro.
Vejamos um exemplo: Bob acessa um site. Para que ocorra uma comunicação confiável e criptografada entre Bob e o site, o site primeiro emite para Bob um certificado digital, que contém uma chave pública e outras informações.
Bob usará então essa chave pública para criptografar os dados que enviará ao site, e o site usará a chave privada correspondente para descriptografá-los. (Apenas considerando a comunicação unilateral aqui)
Um intermediário poderia fingir ser o site e fornecer a Bob o que ele acredita ser um certificado digital válido e então as coisas dariam terrivelmente errado.
Se o site usa uma CA para este problema para validar ou gerar seu próprio certificado, qual das minhas afirmações está correta ou ambas estão parcialmente corretas? :
1) Bob simplesmente compara o certificado digital recebido do site com o da CA, portanto nenhuma descriptografia é realizada, apenas comparação? Nesse caso, todos os certificados de CA do mundo estão armazenados no computador local de Bob para comparação? Como isso acontece.
2) Bob possui apenas um certificado CA especial que é usado para descriptografar certificados de sites. A CA criptografou previamente o certificado digital do site que Bob deseja usar com a chave privada da CA. Bob então obtém o certificado do site e o descriptografa com a chave pública da CA do certificado da CA. Se o certificado não puder ser descriptografado, é óbvio que a CA não o criptografou e, portanto, é inválido.
Desde já, obrigado.
Responder1
Você tem um mal-entendido. Na verdade, ambos os cenários estão errados.
Primeiro, um certificado digital é emitido por uma Autoridade de Certificação (CA) e contém a chave pública para assinatura digital e especifica a identidade do signatário. O certificado é usado para confirmar que a chave pública pertence ao signatário, onde a CA atua como fiadora.
O certificado é verificado frente à CA via Internet e não localmente, no que diz respeito à validade do certificado, recuperando da CA a chave pública no processo.
A chave pública é utilizada para verificar, por meio de um algoritmo hash, se o objeto assinado foi realmente aquele assinado e não foi alterado de forma alguma.
Como uma imagem vale mais que mil palavras:
Responder2
Em primeiro lugar, existemdois passospara verificar um certificado emitido por uma CA:
- Esta CA específica é confiável para emitir certificados?
- Este certificado foi realmente emitido pela CA que afirma ser?
Ambas as suas descrições estão quase certas parauma metadede todo o processo, mas ignoramos completamente a outra metade. Combine os dois e você estará no caminho certo.
Mas o segundo ponto:A criptografia não é usadanesta situação, e certificados (contendo chaves públicas) podem ser usados para criptografar dados, masnãopara descriptografá-lo. O que é realizado éverificação de assinatura.
(Suspeito que parte da sua confusão seja causada por ter lido em algum lugar que, por exemplo, "em RSA, criptografia e assinatura são iguais". Esqueça isso. Embora seja correto no sentido matemático, é incrivelmente enganoso na prática, como ointençãoé completamente oposto entre os dois. Então, quando você estiver lendo um documento que fala sobre assinar algo,nãosuponha que isso signifique o mesmo que criptografá-lo.)
"O certificado deste site foi realmente emitido pela CA que afirma ser?"
A variante nº 2 está quase correta sobre esta. Há pelo menos dois certificados envolvidos – um que representa o site (o "certificado do servidor") e outro que representa a própria CA (chamado de "certificado CA" ou certificado raiz).
O certificado próprio do site énão criptografadocom a chave privada da CA; isso éassinadocom a chave privada da CA. Se a assinatura não puder ser verificada, é óbvio que a CA não assinou realmente o que é reivindicado.
(Na prática, a cadeia é geralmente um pouco mais longa, consistindo em pelo menos três certificados – mas o mecanismo ainda é o mesmo; cada um assina o próximo na cadeia.)
Mas onde Bob consegue esse "certificado CA especial"? Veja abaixo.
"Esta CA é confiável para emitir certificados em geral?"
O certificado CA recebido é comparado com uma lista de "raízes confiáveis" armazenadas no computador local.
Agora, isso é semelhante ao que você descreve na variante 1, exceto que o computador não armazena todos os certificadospublicadopor CAs – em vez disso, armazena apenas os certificados pertencentes a CAseles mesmos, ou seja, os "certificados CA especiais" na sua variante nº 1.
Existem aproximadamente50–100“certificados raiz” instalados na maioria dos sistemas – não exatamente “todas as CA do mundo”, mas abrangem muitas empresas maiores e menores. (Custa bastante ser incluído na lista.)