Capítulo 30 — Laboratório II
Mapa da aula
Aula 30 publicada. Mapa, exemplo, EX059.
flowchart TD
N0["30.1 Por que os bytes importam para a autenticação"]
N1["30.2 Atividade prática — Laboratório B"]
N2["30.3 Efeitos na rede"]
N3["30.4 Relato"]
N4["30.7 Enxugando a cadeia"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX059"]
Desenho lógico
flowchart LR
N0["30.1 Por que os bytes importam para a autenticação"]
N1["30.2 Atividade prática — Laboratório B"]
N2["30.3 Efeitos na rede"]
N3["30.4 Relato"]
N4["30.7 Enxugando a cadeia"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX059"]
[30.1 Por que os bytes importam para a autenticação]
|
v
[30.2 Atividade prática — Laboratório B]
|
v
[30.3 Efeitos na rede]
|
v
[30.4 Relato]
|
v
[30.7 Enxugando a cadeia]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX059]
Objetivos de aprendizagem
Você vai (1) estimar os bytes do handshake para cadeias de certificados pós-quânticos; (2) comparar quantitativamente as opções de assinatura; (3) relacionar a contagem de bytes com o comportamento da rede; e (4) relatar os resultados com as hipóteses.
30.1 Por que os bytes importam para a autenticação
A troca de chaves híbrida acrescenta cerca de 2,3 kB por handshake TLS. A autenticação pós-quântica acrescenta mais: cada certificado contém uma chave pública e uma assinatura, e o handshake inclui uma assinatura CertificateVerify e, muitas vezes, carimbos de tempo de certificado assinados (SCTs). Com o ML-DSA, cada um desses elementos cresce.
Como uma cadeia leva vários desses elementos, o crescimento se multiplica, em vez de se somar. Um servidor pode enviar dois certificados, cada um com uma chave e uma assinatura ML-DSA, mais o CertificateVerify e duas assinaturas de SCT, então os bytes de autenticação podem superar várias vezes os bytes da troca de chaves. É por isso que a HCU trata os certificados como uma decisão de migração separada da troca de chaves.
30.2 Atividade prática — Laboratório B
# Lab B (ch 30): bytes of authentication in a TLS handshake for different signature choices.
# Sizes in bytes: (public key, signature). ML-DSA from FIPS 204; SLH-DSA-128s from FIPS 205.
algs = {"ECDSA P-256": (65, 72), "RSA-2048": (270, 256), "ML-DSA-44": (1312, 2420),
"ML-DSA-65": (1952, 3309), "SLH-DSA-SHA2-128s": (32, 7856)}
def chain_bytes(alg, depth=2, scts=2):
pk, sig = algs[alg]
certs = depth * (pk + sig + 400) # leaf + intermediate: key + CA signature + ~400 B fields
return certs + sig + scts * sig # + CertificateVerify + embedded SCT signatures
for a in algs:
print(f"{a:20s} ~{chain_bytes(a):6d} bytes of certificates and signatures")
Saída esperada:
ECDSA P-256 ~ 1290 bytes of certificates and signatures
RSA-2048 ~ 2620 bytes of certificates and signatures
ML-DSA-44 ~ 15524 bytes of certificates and signatures
ML-DSA-65 ~ 21249 bytes of certificates and signatures
SLH-DSA-SHA2-128s ~ 40144 bytes of certificates and signatures
O modelo supõe uma cadeia de dois certificados, ~400 bytes de outros campos por certificado e dois SCTs; as cadeias reais variam. O ML-DSA-44 aumenta os bytes de autenticação cerca de doze vezes em relação ao ECDSA; o SLH-DSA-128s, mais de trinta vezes.
A contagem é deliberadamente simples: cada certificado leva a sua própria chave pública e uma assinatura do emissor, e o handshake acrescenta uma assinatura CertificateVerify mais uma assinatura por SCT. O SLH-DSA tem uma chave pública minúscula, mas assinaturas muito grandes, então é o mais atingido pelo número de assinaturas na cadeia. Mudar a profundidade ou a quantidade de SCTs no laboratório mostra qual alavanca importa mais para cada esquema.
30.3 Efeitos na rede
A janela de congestionamento inicial do TCP costuma permitir cerca de dez segmentos (~14 kB) antes de esperar uma confirmação. Um voo do servidor que a exceda custa uma ida e volta extra — pequena num enlace de data center, perceptível num caminho móvel ou de satélite de 150 ms. A compressão de certificados (RFC 8879) ajuda pouco com chaves e assinaturas de alta entropia. As respostas de engenharia incluem cadeias mais curtas, menos SCTs e uma escolha cuidadosa dos conjuntos de parâmetros.
Para os usuários móveis da HCU, essa ida e volta extra nos enlaces celulares é a principal preocupação.
30.4 Relato
Relate os resultados com as hipóteses: profundidade da cadeia, tamanhos dos campos, número de SCTs, janela inicial. Declare que o modelo estima bytes, e não latência, e que a latência precisa ser medida.
As comparações só são válidas quando todos os esquemas rodam com as mesmas hipóteses. A HCU anexa os parâmetros do Laboratório B ao seu relatório sobre as opções de certificados, para que um revisor possa mudar uma hipótese, como o número de SCTs, e ver o efeito. A latência medida nos enlaces emulados é relatada separadamente da estimativa de bytes.
30.5 Exemplo resolvido
O aplicativo móvel da HCU fala com o gateway por enlaces celulares com idas e voltas de 80 ms. O Laboratório B sugere ~15,5 kB de autenticação com o ML-DSA-44, um pouco acima de uma janela inicial típica. O plano da HCU: manter os certificados ECDSA enquanto monitora o suporte no ecossistema, testar cadeias ML-DSA-44 no laboratório com um SCT e medir a latência em enlaces celulares emulados antes de qualquer mudança.
A decisão será revista quando os navegadores e as bibliotecas cliente suportarem amplamente os certificados ML-DSA. Os associados em enlaces lentos notariam o atraso primeiro, então os testes emulados usam as piores condições de agência e móveis que a HCU registrou, e não a média.
30.6 Erros comuns e limites
- Igualar bytes a latência.
- Ignorar os SCTs e os certificados intermediários.
- Comparar esquemas de assinatura apenas pelo tamanho da assinatura, e não pela chave pública mais a assinatura.
- Supor que a compressão de certificados vai compensar a diferença.
- Testar apenas em redes rápidas de laboratório, onde uma ida e volta extra é invisível.
- Escolher um conjunto de parâmetros maior do que a política exige, acrescentando bytes sem benefício.
- Relatar um único número de bytes sem a profundidade da cadeia e a quantidade de SCTs por trás dele.
Cada um desses faz o custo da autenticação pós-quântica parecer diferente do que os usuários de fato vivenciam.
30.7 Enxugando a cadeia
Quando os bytes importam, os engenheiros têm várias alavancas antes de escolher outro algoritmo: remover intermediários desnecessários, reduzir o número de SCTs embutidos onde a política permitir, evitar enviar um certificado raiz em que o cliente já confia e preferir o ML-DSA-44 aos conjuntos de parâmetros maiores onde a categoria 2 atender à política. Cada alavanca tem um custo de política ou de compatibilidade, então registre quais foram usadas e por quê. Rode de novo o Laboratório B com a configuração enxugada e guarde os dois resultados no registro de laboratório.
Anote qualquer cliente que falhe com a cadeia enxugada.
Exercícios
- EX059 — Recalcular. Usando a fórmula do Laboratório B, calcule os bytes do ML-DSA-65 com um SCT em vez de dois. Rubrica: 3 = 21.249 − 3.309 = 17.940 bytes.
- EX060 — Lista de hipóteses. Liste quatro hipóteses por trás do Laboratório B e como cada uma poderia mudar o resultado. Rubrica: 3 = quatro hipóteses com a direção do efeito.
Síntese
A autenticação pós-quântica multiplica os bytes do handshake; modelos simples com hipóteses declaradas orientam onde medir a latência e como enxugar as cadeias.
Continue estudando — capítulo 30 de 40
← Capítulo 29 · Índice de capítulos do curso · Capítulo 31 →
Siga para a próxima lição escrita.