Capítulo 5 — Estudo principal e validação independente
Mapa da aula
Aula 05 publicada. Mapa, exemplo, EX027.
flowchart TD
N0["5.1 O modelo de ataque"]
N1["5.2 Resultados"]
N2["5.3 Pseudonimização não é anonimização"]
N3["5.4 Validação independente"]
N4["Laboratório — Ataque de vinculação a três tipos de p"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5
N5 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX027"]
Desenho lógico
flowchart LR
N0["5.1 O modelo de ataque"]
N1["5.2 Resultados"]
N2["5.3 Pseudonimização não é anonimização"]
N3["5.4 Validação independente"]
N4["Laboratório — Ataque de vinculação a três tipos de p"]
N5["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX027"]
[5.1 O modelo de ataque]
|
v
[5.2 Resultados]
|
v
[5.3 Pseudonimização não é anonimização]
|
v
[5.4 Validação independente]
|
v
[Laboratório — Ataque de vinculação a três tipos de p]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX027]
Objetivos de aprendizagem
Você vai (1) executar um ataque de vinculação sobre publicações sintéticas; (2) comparar o risco entre métodos de publicação; (3) validar os resultados com uma equipe independente.
5.1 O modelo de ataque
Ines define um atacante que conhece a zona de residência, a zona de trabalho e o ano de nascimento de 500 passageiros-alvo, obtidos talvez de uma rede social ou de um diretório de funcionários de uma empresa. Contra os microdados pseudonimizados, em que os nomes são substituídos mas os valores exatos permanecem, o atacante procura uma linha que corresponda exatamente a cada alvo. Contra o arquivo k-anonimizado, o atacante encontra a classe correspondente e escolhe uma linha ao acaso. Contra as contagens diferencialmente privadas, não há linhas a vincular. Definir o atacante com precisão importa porque o NISTIR 8053 adverte que as estimativas de reidentificação dependem do conhecimento presumido, que deve ser declarado abertamente.
5.2 Resultados
O laboratório mostra que a pseudonimização, sozinha, permite ao atacante reidentificar com certeza 415 dos 500 alvos, 83,0%. O arquivo k-anonimizado impede qualquer correspondência certa; o palpite aleatório dentro das classes rende cerca de 4,4 acertos esperados, 0,9% dos alvos. As contagens diferencialmente privadas não dão ao atacante nenhum registro a vincular, e o risco passa a ser limitado pelo épsilon. H1 é sustentada quanto à direção, mas a comparação não é entre iguais: o arquivo k-anônimo vaza pouco sob este ataque, e seu risco restante vem de ataques que Ines ainda não testou, como a combinação de viagens.
5.3 Pseudonimização não é anonimização
O número de 83,0% torna concreto um ponto jurídico. O GDPR define a pseudonimização no artigo 4(5) como o tratamento que faz com que os dados não possam mais ser atribuídos a uma pessoa sem informações adicionais mantidas separadamente, e trata os dados pseudonimizados como dados pessoais. A LGPD usa uma definição muito próxima no art. 13, § 4º: o dado perde a possibilidade de associação a um indivíduo, senão pelo uso de informação adicional mantida separadamente pelo controlador em ambiente controlado e seguro. O plano original da Valemont era trocar os números dos cartões por tokens aleatórios e chamar o arquivo de anônimo. O resultado de Ines mostra por que isso estaria errado: os tokens escondem os nomes, mas os atributos restantes identificam a maioria dos passageiros. Ela redige essa constatação como uma recomendação que a autoridade pode adotar de imediato, independentemente do restante da tese.
5.4 Validação independente
Ines pede a uma equipe de outra universidade que execute o ataque sobre os arquivos que ela publicou, sem ver o seu código. A equipe recebe a população sintética, as publicações e a descrição do ataque, e informa suas próprias taxas de reidentificação. Os resultados diferem dos dela em menos de um ponto percentual. Ela também pede que tentem um ataque que ela não desenhou, combinando dois dias de viagens; a equipe descobre que o arquivo k-anônimo vaza mais sob esse ataque. Ines informa os dois resultados, porque a validação independente só tem valor se puder encontrar problemas no estudo principal.
Laboratório — Ataque de vinculação a três tipos de publicação
# Linkage attack: an adversary knows home zone, work zone and birth year of 500 targets.
import random
from collections import Counter
r = random.Random(7)
riders = [(r.randrange(40), r.randrange(40), r.randrange(1940, 2008)) for _ in range(20000)]
targets = r.sample(range(20000), 500)
raw = Counter(riders)
hit_raw = sum(1 for t in targets if raw[riders[t]] == 1)
g = lambda x: (x[0] // 8, x[1] // 8, x[2] // 10)
gen = Counter(g(x) for x in riders)
kept = [t for t in targets if gen[g(riders[t])] >= 5]
exp = sum(1 / gen[g(riders[t])] for t in kept)
print(f"pseudonymised microdata: {hit_raw} of 500 targets re-identified with certainty ({hit_raw/5:.1f}%)")
print(f"k-anonymised (k>=5): 0 certain; expected correct guesses {exp:.1f} ({exp/5:.1f}%)")
print("differentially private counts: no record-level rows to link; risk bounded by epsilon instead")
Execute com python3 lab_link.py. Saída verificada:
pseudonymised microdata: 415 of 500 targets re-identified with certainty (83.0%)
k-anonymised (k>=5): 0 certain; expected correct guesses 4.4 (0.9%)
differentially private counts: no record-level rows to link; risk bounded by epsilon instead
Exemplo resolvido
Ines encontra 83,0% de reidentificação certa nos dados pseudonimizados, 0,9% de acertos esperados para k = 5 e nenhuma linha vinculável nas contagens diferencialmente privadas; uma equipe independente confirma os números e encontra uma fraqueza adicional com vários dias de viagens.
Caso sintético. O atacante, os alvos e as publicações são sintéticos; o artigo 4(5) do GDPR, o art. 13, § 4º, da LGPD e o NISTIR 8053 são reais.
Erros e limites
Um único modelo de atacante não representa todos os atacantes. A privacidade diferencial elimina a vinculação, mas sua proteção real depende da contabilidade de épsilon escolhida.
Exercícios
- EX027 — Conhecimento do atacante. O que o atacante de Ines conhece, e por que declarar isso? Rubrica: 3 = zona de residência, zona de trabalho e ano de nascimento dos alvos; as estimativas de risco dependem do conhecimento presumido;; 2 = lista só o conhecimento;; 1 = omite;; 0 = nenhuma.
- EX028 — Resultado pseudonimizado. Quantos alvos foram reidentificados no arquivo pseudonimizado? Rubrica: 3 = 415 de 500, 83,0%;; 2 = cerca de quatro em cinco;; 1 = errado;; 0 = nenhuma.
- EX029 — Artigo 4(5). Por que dados pseudonimizados continuam sendo dados pessoais pelo GDPR? Rubrica: 3 = pelo artigo 4(5), os dados podem ser reatribuídos com informações adicionais, então continuam no escopo;; 2 = menciona a reatribuição;; 1 = diz que são anônimos;; 0 = nenhuma.
- EX030 — Comparação entre iguais. Por que a comparação de H1 "não é entre iguais"? Rubrica: 3 = tipos diferentes de publicação enfrentam ataques diferentes; o risco residual do k-anonimato está em ataques ainda não testados;; 2 = menciona saídas diferentes;; 1 = aceita H1 sem ressalvas;; 0 = nenhuma.
- EX031 — Validação às cegas. Por que a equipe de validação trabalha sem o código de Ines? Rubrica: 3 = para que erros do código dela não sejam copiados e a verificação seja independente;; 2 = menciona independência;; 1 = diz que é mais rápido;; 0 = nenhuma.
- EX032 — Ataque não planejado. Por que informar o ataque adicional de vários dias que enfraqueceu o k-anonimato? Rubrica: 3 = a validação precisa poder encontrar problemas; escondê-lo enviesaria a tese;; 2 = menciona honestidade;; 1 = omite;; 0 = nenhuma.
Síntese
O capítulo 5 mede o risco sob um ataque declarado e o valida de forma independente. O capítulo 6 enfrenta a crítica dos pares e revisa as afirmações.
Continue estudando — aula 05 (capítulo 05 de 08)
← Capítulo 04 · Índice das aulas · Capítulo 06 →
Continue para a próxima aula já escrita.