◇ OpenCyber Academy
Pesquisa doutoral · Capítulo 2 · Português

Capítulo 2 — Criptografia e serviços de confiança: fronteira da pesquisa

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: 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

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.