Iniciante Criptografia

Certificados digitais e PKI

Um certificado digital é um documento eletrônico que associa uma chave pública a uma identidade. A PKI (Public Key Infrastructure) é o sistema que gerencia a emissão, validação e revogação desses certificados.

Estrutura de um certificado X.509

Versão: 3
Número de série: 0A:BC:12:...
Algoritmo de assinatura: sha256WithRSAEncryption
Emissor (Issuer): CN=Let's Encrypt R3, O=Let's Encrypt
Validade:
  Não antes de: 2025-01-01
  Não depois de: 2025-04-01
Sujeito (Subject): CN=example.com
Chave pública: RSA 2048 bits
SAN: DNS:example.com, DNS:www.example.com
Assinatura da CA: [bytes]
# Inspecionar um certificado
openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -text

Cadeia de confiança

Nenhum servidor usa a Root CA diretamente. A cadeia é:

Root CA (autoassinada, armazenada no SO/browser)
  └── Intermediate CA (assinada pela Root)
        └── Certificado do servidor (assinado pela Intermediate)

Essa hierarquia isola a Root CA — ela fica offline. Comprometer a Intermediate não quebra toda a PKI.

Tipos de certificado

TipoValidaçãoUso
DVDomínioSites comuns
OVOrganizaçãoEmpresas
EVEstendidaBancos, e-commerce
WildcardDomínio*.example.com

Revogação: CRL e OCSP

Certificados podem ser revogados antes de expirar (chave comprometida, mudança de dono).

CRL (Certificate Revocation List): lista publicada pela CA com seriais revogados. Pesada, atualizada periodicamente.

OCSP (Online Certificate Status Protocol): consulta em tempo real ao servidor da CA.

# Verificar status OCSP de um certificado
openssl ocsp -issuer chain.pem -cert server.pem \
  -url http://ocsp.example.com -resp_text

OCSP Stapling: o servidor faz a consulta OCSP e inclui a resposta assinada no handshake TLS, evitando que o cliente consulte a CA diretamente (mais rápido e preserva privacidade).

ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 valid=60s;

Certificate Transparency (CT)

Logs públicos e auditáveis onde todas as emissões de certificados são registradas. Navegadores modernos exigem SCTs (Signed Certificate Timestamps) no certificado para aceitá-lo.

Permite detectar emissões fraudulentas rapidamente.