Capítulo 2 — Criptografia e serviços de confiança: seminário avançado
Mapa da aula
Aula 02 publicada. Mapa, exemplo, EX008.
flowchart TD
N0["2.1 O que um certificado afirma"]
N1["2.2 Certificados no TLS 1.3"]
N2["2.3 Por que as validades continuam encolhendo"]
N3["Laboratório — Leitura do inventário"]
N4["2.4 Ler o inventário"]
N5["2.5 Do seminário ao estudo"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX008"]
Desenho lógico
flowchart LR
N0["2.1 O que um certificado afirma"]
N1["2.2 Certificados no TLS 1.3"]
N2["2.3 Por que as validades continuam encolhendo"]
N3["Laboratório — Leitura do inventário"]
N4["2.4 Ler o inventário"]
N5["2.5 Do seminário ao estudo"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX008"]
[2.1 O que um certificado afirma]
|
v
[2.2 Certificados no TLS 1.3]
|
v
[2.3 Por que as validades continuam encolhendo]
|
v
[Laboratório — Leitura do inventário]
|
v
[2.4 Ler o inventário]
|
v
[2.5 Do seminário ao estudo]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX008]
Objetivos de aprendizagem
Você vai (1) explicar como um certificado X.509 vincula uma chave pública a um nome; (2) descrever onde os certificados entram no handshake do TLS 1.3; (3) ler um inventário de certificados e identificar riscos de ciclo de vida.
2.1 O que um certificado afirma
Um certificado é uma declaração assinada por uma autoridade emissora de que uma chave pública pertence a um titular, válida entre notBefore e notAfter. A RFC 5280 define o perfil dos campos: titular e nomes alternativos do titular, emissor, número de série, validade, uso da chave e extensões. A assinatura digital, feita com um algoritmo como o ECDSA ou o RSA do FIPS 186-5, permite que um cliente confira a declaração usando a chave pública do emissor, subindo por uma cadeia até uma raiz em que já confia. Katz e Lindell descrevem isso como transferir a confiança de muitas chaves para poucas raízes. A janela de validade faz parte da declaração assinada, então um certificado expirado não pode ser estendido sem uma nova assinatura.
2.2 Certificados no TLS 1.3
Num handshake do TLS 1.3, definido na RFC 8446, cliente e servidor primeiro combinam os compartilhamentos de chave, em geral usando o X25519 da RFC 7748, e derivam as chaves do handshake com o HKDF da RFC 5869. Em seguida, o servidor envia sua cadeia de certificados e uma mensagem CertificateVerify, uma assinatura sobre a transcrição do handshake feita com a chave privada do certificado. O cliente valida a cadeia, os nomes e o período de validade. Se o certificado expirou, um cliente configurado corretamente aborta o handshake. Foi esse o comportamento que os profissionais da Briarwood viveram: a criptografia funcionou exatamente como projetada e recusou uma afirmação vencida.
2.3 Por que as validades continuam encolhendo
Validades curtas limitam por quanto tempo uma chave roubada ou um certificado emitido por engano continua útil e reduzem a dependência da revogação, que os clientes conferem de forma irregular. O custo é operacional: mais renovações, cada uma uma chance de falhar. O Certificate Transparency, especificado na RFC 6962, acrescenta logs públicos para que os donos de domínios possam ver todo certificado emitido para os seus nomes. O SP 800-57 Part 1 enquadra a mesma tensão para todas as chaves: os criptoperíodos devem ser limitados, mas toda rotação precisa ser planejada. O artigo de seminário de Felipe argumenta que a automação é a única resposta escalável para validades cada vez mais curtas, o que seu estudo vai testar, em vez de pressupor.
Laboratório — Leitura do inventário
"""Days to expiry for a synthetic certificate inventory, as of a fixed audit date."""
from datetime import date
AUDIT = date(2026, 3, 1)
CERTS = [("h-portal", "acme", date(2026, 4, 20)), ("h-labres", "manual", date(2026, 3, 9)),
("h-pacs", "manual", date(2026, 2, 25)), ("h-api", "acme", date(2026, 4, 2)),
("h-vpn", "manual", date(2027, 1, 15)), ("h-mail", "manual", date(2026, 3, 20)),
("h-sched", "acme", date(2026, 5, 1)), ("h-hr", "manual", date(2026, 3, 27))]
def main():
for name, how, exp in sorted(CERTS, key=lambda c: c[2]):
d = (exp - AUDIT).days
flag = "EXPIRED" if d < 0 else ("<30d" if d < 30 else "")
print(f"{name:<9} {how:<7} {exp} {d:>4} d {flag}")
urgent = [c for c in CERTS if (c[2] - AUDIT).days < 30]
print(f"urgent {len(urgent)}/{len(CERTS)}, all manual: {all(c[1] == 'manual' for c in urgent)}")
if __name__ == "__main__":
main()
Execute com python3 lab_inventory.py. Saída verificada:
h-pacs manual 2026-02-25 -4 d EXPIRED
h-labres manual 2026-03-09 8 d <30d
h-mail manual 2026-03-20 19 d <30d
h-hr manual 2026-03-27 26 d <30d
h-api acme 2026-04-02 32 d
h-portal acme 2026-04-20 50 d
h-sched acme 2026-05-01 61 d
h-vpn manual 2027-01-15 320 d
urgent 4/8, all manual: True
2.4 Ler o inventário
Na data sintética da auditoria, 1º de março de 2026, um dos oito certificados amostrados, h-pacs, já expirou há quatro dias, e mais três expiram em até trinta dias: h-labres em 8 dias, h-mail em 19 e h-hr em 26. Os quatro certificados urgentes são renovados manualmente, enquanto os três certificados ACME estão entre 32 e 61 dias, o que é coerente com clientes que renovam por volta de um terço da validade antes da expiração. Um certificado manual, h-vpn, tem 320 dias restantes. Felipe observa que um certificado manual de vida longa também não é seguro: ele vai expirar muito depois que a pessoa que o instalou tiver mudado de função.
2.5 Do seminário ao estudo
O seminário deixa Felipe com três hipóteses operacionais. Os certificados manuais se concentram perto da expiração porque a renovação depende de uma pessoa se lembrar. Os certificados automatizados ainda podem falhar quando o cliente ACME quebra em silêncio, por exemplo depois que uma mudança de firewall bloqueia o desafio de validação. E os certificados sem um dono registrado falham qualquer que seja o método de renovação, porque ninguém recebe os avisos nem age sobre eles. A terceira hipótese concorre com sua pergunta principal e voltará no capítulo 4. Ele as escreve agora para que a análise posterior teste ideias que ele tinha antes de ver os dados de desfecho.
Exemplo resolvido
Felipe explica como um certificado expirado faz um cliente TLS 1.3 abortar e depois lê uma amostra de oito certificados em que os quatro itens urgentes são manuais.
Caso sintético. Os oito hosts e as datas são inventados; a RFC 5280, a RFC 8446 e a RFC 6962 são reais.
Erros e limites
Uma amostra de oito linhas ilustra; ela não estima uma taxa. As datas de validade, sozinhas, não conseguem mostrar se um cliente ACME está de fato saudável.
Exercícios
-
EX008 — Afirmação do certificado. O que um certificado X.509 afirma, e o que o torna verificável? Rubrica: 3 = vínculo, assinado pelo emissor, entre a chave pública e o titular dentro da janela de validade; verificado com a chave do emissor subindo pela cadeia até uma raiz confiável;; 2 = só o vínculo;; 1 = "cifra o tráfego";; 0 = nenhuma.
-
EX009 — Papel no handshake. Em que ponto do TLS 1.3 o servidor prova que possui a chave do certificado? Rubrica: 3 = CertificateVerify, uma assinatura sobre a transcrição;; 2 = "durante a mensagem de certificado";; 1 = compartilhamento de chave;; 0 = nenhuma.
-
EX010 — Validades curtas. Dê um benefício e um custo de validades de certificado mais curtas. Rubrica: 3 = limita a janela de uma chave roubada/menos dependência da revogação; mais renovações que podem falhar;; 2 = um lado;; 1 = vago;; 0 = nenhuma.
-
EX011 — Certificados urgentes. Que certificados amostrados estavam expirados ou com menos de 30 dias, e como eram renovados? Rubrica: 3 = h-pacs expirado; h-labres, h-mail, h-hr com menos de 30 dias, todos manuais;; 2 = contagem e modo;; 1 = só a contagem;; 0 = nenhuma.
-
EX012 — Certificado manual longo. Por que h-vpn, com 320 dias, ainda é um risco? Rubrica: 3 = expira depois que quem o instalou talvez tenha saído, então ninguém se lembra;; 2 = continua manual;; 1 = seguro;; 0 = nenhuma.
-
EX013 — Falha silenciosa do ACME. Como um certificado automatizado ainda pode expirar? Rubrica: 3 = o cliente ACME quebra em silêncio, p. ex. o firewall bloqueia o desafio de validação;; 2 = falha do cliente;; 1 = nunca;; 0 = nenhuma.
-
EX014 — Hipótese concorrente. Que hipótese do seminário concorre com a pergunta principal? Rubrica: 3 = certificados sem dono registrado falham qualquer que seja o modo de renovação;; 2 = propriedade;; 1 = algoritmo;; 0 = nenhuma.
Síntese
Os certificados são afirmações assinadas e limitadas no tempo que o TLS impõe com rigor; são as operações do ciclo de vida, e não a criptografia, que decidem se eles continuam válidos.
Continue estudando — aula 02 (capítulo 02 de 08)
← Capítulo 01 · Índice das aulas · Capítulo 03 →
Continue para a próxima aula já escrita.