◇ OpenCyber Academy
Mestrado · Capítulo 2 · Português

Capítulo 2 — Criptografia e serviços de confiança: seminário avançado

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

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

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.