Capítulo 2 — Criptografia e serviços de confiança: fronteira da pesquisa
Mapa da aula
Aula 02 publicada. Mapa, exemplo, EX008.
flowchart TD
N0["2.1 O que está resolvido"]
N1["Laboratório — Risco de colisão de nonces aleatórios"]
N2["2.3 Ler a curva"]
N3["2.4 Trabalhos sobre resistência a uso indevido e usa"]
N4["2.5 Posicionar a contribuição"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX008"]
Desenho lógico
flowchart LR
N0["2.1 O que está resolvido"]
N1["Laboratório — Risco de colisão de nonces aleatórios"]
N2["2.3 Ler a curva"]
N3["2.4 Trabalhos sobre resistência a uso indevido e usa"]
N4["2.5 Posicionar a contribuição"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX008"]
[2.1 O que está resolvido]
|
v
[Laboratório — Risco de colisão de nonces aleatórios]
|
v
[2.3 Ler a curva]
|
v
[2.4 Trabalhos sobre resistência a uso indevido e usa]
|
v
[2.5 Posicionar a contribuição]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX008]
Objetivos de aprendizagem
Você vai (1) mapear a fronteira da pesquisa sobre criptografia usável e resistente a uso indevido; (2) quantificar um risco de uso indevido a partir do limite declarado numa norma; (3) posicionar uma questão original em relação ao que as normas já resolvem.
2.1 O que está resolvido
A segurança das primitivas, em grande parte, não é a questão de Nadia. O AES é especificado no FIPS 197, o SHA-2 no FIPS 180-4, o HMAC no FIPS 198-1 e as assinaturas digitais no FIPS 186-5 e na RFC 8032. Boneh e Shoup apresentam as provas por redução que tornam essas escolhas defensáveis, e Katz e Lindell mostram como a cifração autenticada compõe confidencialidade e integridade. Uma tese que voltasse a litigar esses resultados acrescentaria pouco. O que continua em aberto é a distância entre uma primitiva provada e o código que a chama: parâmetros, nonces, armazenamento de chaves e a cola dos protocolos. É nessa distância que as auditorias da Meridian continuam encontrando problemas, e é ali que Nadia situa sua contribuição.
2.2 Limites de nonce como risco mensurável
As normas muitas vezes expressam o risco de uso indevido como um limite de uso. O SP 800-38D exige que, quando nonces de 96 bits do GCM são gerados aleatoriamente, uma única chave cifre no máximo 2^32 mensagens, porque nonces aleatórios acabam colidindo, e uma colisão expõe o XOR de dois textos claros e permite a falsificação da tag de autenticação. A aproximação do aniversário dá a chance de pelo menos uma repetição entre q sorteios aleatórios de 2^96 valores como aproximadamente q²/2^97. O laboratório calcula essa probabilidade para três volumes sintéticos, para mostrar por que a política de rotação, e não a cifra, é a variável controlável.
Laboratório — Risco de colisão de nonces aleatórios
"""Birthday-bound estimate for random 96-bit AES-GCM nonces under one key (synthetic volumes)."""
import math
def p_collision(q, bits=96):
# P(at least one repeat among q uniform draws from 2**bits values) ~ 1 - exp(-q(q-1)/2^(bits+1))
return -math.expm1(-q * (q - 1) / 2 ** (bits + 1))
def main():
for label, q in [("pilot service, 1e6 msgs", 10**6), ("busy queue, 2^32 msgs", 2**32),
("unrotated key, 2^40 msgs", 2**40)]:
print(f"{label:<26} P(repeat) = {p_collision(q):.3e}")
q = 2**32
print(f"2^32 limit -> about 1 in {1 / p_collision(q):,.0f}")
if __name__ == "__main__":
main()
Execute com python3 lab_nonce.py. Saída verificada:
pilot service, 1e6 msgs P(repeat) = 6.311e-18
busy queue, 2^32 msgs P(repeat) = 1.164e-10
unrotated key, 2^40 msgs P(repeat) = 7.629e-06
2^32 limit -> about 1 in 8,589,934,594
2.3 Ler a curva
Com um milhão de mensagens, a probabilidade de repetição é de cerca de 6 × 10^-18, desprezível. No limite de 2^32, é de cerca de 1,2 × 10^-10, aproximadamente uma chance em 8,6 bilhões, que a norma trata como o teto aceitável. Uma fila sintética que nunca rotaciona sua chave e chega a 2^40 mensagens sobe para cerca de 7,6 × 10^-6, um risco que nenhum regulador de pagamentos aceitaria para uma única chave. Nadia tira a lição para a pesquisa: a cifra era a mesma nas três linhas. A diferença veio da disciplina operacional, isto é, contar as invocações e rotacionar as chaves, que é exatamente o comportamento que um checklist e uma etapa de lint poderiam plausivelmente mudar.
2.4 Trabalhos sobre resistência a uso indevido e usabilidade
A fronteira inclui duas respostas ao uso indevido. Uma projeta primitivas que falham de forma mais suave, como os modos resistentes ao uso indevido de nonce (nonce-misuse-resistant), de modo que um nonce repetido vaze apenas a igualdade das mensagens, em vez de quebrar a autenticidade. A outra estuda os desenvolvedores e as ferramentas, perguntando se as interfaces das bibliotecas, a documentação ou os auxílios à revisão mudam o comportamento. O estudo de Nadia pertence à segunda linha. Na revisão de literatura, ela tem o cuidado de citar apenas trabalhos que leu e verificou, e de registrar para cada artigo sua população, sua medida de uso indevido e se mediu código entregue ou tarefas de laboratório, porque essas escolhas limitam a comparação.
2.5 Posicionar a contribuição
A partir da revisão da fronteira, Nadia escreve um parágrafo de posicionamento. Estudos de laboratório mostram que os desenvolvedores usam mal as bibliotecas sob pressão de tempo, mas poucos medem o uso indevido confirmado em mudanças de produção entregues, com atribuição aleatória. Sua contribuição é um estudo de campo randomizado dentro de uma organização, medido por uma contagem auditada a cada dez mudanças integradas, com um livro de códigos e um arquivo de análise públicos. Ela também declara o que não vai afirmar: não vai afirmar que o checklist impede todo uso indevido, nem que os resultados se transferem para empresas sem bibliotecas avaliadas. Dizer o que está fora do escopo mantém os examinadores concentrados nas evidências que ela consegue produzir.
Exemplo resolvido
Nadia tabula as três linhas de volume de nonces, liga o limite de 2^32 ao SP 800-38D e argumenta que a disciplina de rotação é o comportamento que sua intervenção visa.
Caso sintético. Os volumes de mensagens pertencem a uma fila inventada; o limite de 2^32 é a regra real do SP 800-38D.
Erros e limites
A fórmula do aniversário é uma aproximação válida apenas para nonces aleatórios; nonces baseados em contador têm outros modos de falha, principalmente a perda de estado após reinicializações. Nunca trate uma probabilidade minúscula como permissão para pular a rotação.
Exercícios
-
EX008 — Terreno resolvido. Que questões Nadia trata como resolvidas, e que lacuna aberta ela estuda? Rubrica: 3 = segurança das primitivas (FIPS 197, 180-4, 186-5) resolvida; a distância entre a primitiva e o código que a chama, aberta;; 2 = só a lacuna;; 1 = "nova cifra";; 0 = nenhuma.
-
EX009 — Teto de uso do GCM. Que limite de uso o SP 800-38D fixa para nonces aleatórios de 96 bits, e por quê? Rubrica: 3 = no máximo 2^32 mensagens por chave, porque colisões vazam o XOR dos textos claros e permitem falsificação;; 2 = só o limite;; 1 = "rotacionar sempre";; 0 = nenhuma.
-
EX010 — Probabilidade no teto. Que probabilidade de repetição o laboratório relatou em 2^32 mensagens? Rubrica: 3 = cerca de 1,164e-10, cerca de 1 em 8,6 bilhões;; 2 = ordem de grandeza;; 1 = outra linha;; 0 = nenhuma.
-
EX011 — Fila sem rotação. O que a linha de 2^40 mostrou, e que lição decorre dela? Rubrica: 3 = cerca de 7,6e-6; a rotação operacional, e não a cifra, determina o risco;; 2 = só o número;; 1 = só a lição;; 0 = nenhuma.
-
EX012 — Duas respostas da fronteira. Cite as duas respostas da pesquisa ao uso indevido e diga a qual Nadia se junta. Rubrica: 3 = primitivas resistentes a uso indevido vs estudos de desenvolvedores/ferramentas; ela se junta às ferramentas;; 2 = as duas citadas;; 1 = uma;; 0 = nenhuma.
-
EX013 — Registro da literatura. Que três fatos Nadia registra para cada artigo que revisa? Rubrica: 3 = população, medida de uso indevido, código entregue vs tarefa de laboratório;; 2 = dois;; 1 = um;; 0 = nenhuma.
-
EX014 — Afirmação de escopo. Dê uma afirmação que Nadia explicitamente se recusa a fazer. Rubrica: 3 = que o checklist impede todo uso indevido, ou que os resultados se transferem para empresas sem bibliotecas avaliadas;; 2 = limite vago;; 1 = sem relação;; 0 = nenhuma.
Síntese
A fronteira não está em novas primitivas, mas no comportamento medido em torno delas; os limites de uso das normas transformam esse comportamento em números que um estudo de campo pode testar.
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.