Pular para o conteúdo

Engenharia de privacidade · 19/09/2026

Método explícito.
Evidência verificável.

Regras brasileiras, políticas de tratamento e auditoria cifrada em operação. Detecção neural ampliada em avaliação, com métricas, dados sintéticos e referências abertas.

01 / Base em operação

Uma política aplicada antes do próximo destino.

  1. DetectarPadrões, contexto textual e dígitos verificadores.
  2. Aplicar a políticaMarcadores, remoção ou bloqueio conforme autorização.
  3. Entregar e auditarResultado tratado, metadados e arquivo cifrado.

Regras determinísticas

O motor rules-v1 percorre valores de texto em objetos e arrays JSON. Expressões regulares identificam e-mail, telefone, endereço e identificadores com contexto. Chaves de objetos e valores numéricos não são examinados como texto.

CPF e CNPJ numérico passam por módulo 11, comparação dos dois dígitos verificadores e rejeição de sequências repetidas. Isso verifica a estrutura, sem consultar cadastro ou comprovar titularidade. CNPJ alfanumérico não é coberto por esse detector.

CNS, CRM, prontuário, convênio e datas clínicas usam padrões e palavras de contexto; não recebem a mesma validação matemática de CPF/CNPJ. Nomes na base determinística dependem de uma lista configurada, sem reconhecimento geral de pessoas.

Políticas com efeito definido

placeholder substitui ocorrências por marcadores e reaproveita o marcador de um valor normalizado na mesma categoria e requisição. O mapa é efêmero, sem tabela persistente de restauração.

redact troca o trecho por [REMOVIDO]. Em /v1/privacy/clean, block interrompe a limpeza com HTTP 422 quando encontra dados pessoais, sem devolver o texto bloqueado.

Na API de inferência, monitor observa e registra ocorrências, mas preserva o texto. O endpoint de limpeza não aceita essa política. A organização limita as opções permitidas; instruções dentro do texto não alteram a autorização.

Como calculamos os dígitos verificadores?

Após remover a pontuação, CPF exige 11 dígitos e CNPJ numérico exige 14. Para cada dígito verificador, calculamos a soma ponderada, seu resto por 11 e o dígito esperado. O segundo cálculo inclui o primeiro dígito calculado.

CPF DV1:  [10, 9, 8, 7, 6, 5, 4, 3, 2]
CPF DV2:  [11, 10, 9, 8, 7, 6, 5, 4, 3, 2]
CNPJ DV1: [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
CNPJ DV2: [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]

r = sum(digit[i] * weight[i]) % 11
dv = r < 2 ? 0 : 11 - r

Uma sequência rejeitada pelo checksum ainda pode coincidir com outro padrão, como telefone. A classificação é por categoria, não uma garantia de que todo número inválido permanecerá intacto.

Stack e fronteiras de dados

Gateway em TypeScript sobre Cloudflare Workers; páginas estáticas; D1 para metadados e R2 para o arquivo de auditoria. O fluxo de mídia extrai ou transcreve o conteúdo antes de aplicar a barreira textual. Erros de OCR ou transcrição podem reduzir a cobertura.

A auditoria usa AES-256-GCM, IV aleatório de 96 bits e dados associados autenticados. Quando habilitada, pode reter o conteúdo original e tratado de forma cifrada, com acesso restrito e expiração. Os logs operacionais não devem conter o texto bruto. Criptografia protege o arquivo; não corrige uma falha de detecção.

NIST SP 800-38D — fundamento do GCM

02 / Detecção ampliada em avaliação

Do token à posição exata no texto.

O candidato rn-privacy-0.2.0 não atende tráfego de clientes. Os exemplos da página inicial são resultados pré-calculados. A avaliação médica em shadow, quando habilitada, é outro fluxo e não substitui as regras que produzem a saída.

Classificação de tokens

Um detector baseado em MiniLM e um reconhecedor multilíngue de pessoas baseado em DistilBERT classificam tokens em contexto. Usamos pesos já treinados: a RN não treinou esses modelos-base nem ajustou os pesos aos nomes dos testes.

A adaptação parte do Rampart 0.1.3. O modelo geral tem seis camadas e dimensão 384, em Q4; o especialista tem seis camadas e dimensão 768, em INT8. A execução é CPU, com ONNX Runtime 1.21.0 e pesos locais fixados por revisão e SHA-256.

O orçamento de janela é de 500 tokens, com sobreposição pretendida de 64, ajustada aos segmentos. Os limiares de entrada são 0,40 para o detector geral e 0,50 para o especialista. Escores do classificador não são probabilidades calibradas de anonimização.

Unicode, alinhamento e fusão

A premáscara isola achados determinísticos. A projeção por grafemas aplica NFKC e mantém um mapa para as posições originais em UTF-16. Emoji, acentos decompostos, apóstrofos tipográficos e controles invisíveis não podem deslocar silenciosamente um nome.

WordPiece é alinhado ao texto; divergência gera erro. A agregação BIO encerra uma entidade ao encontrar O. Fragmentos de pessoas são completados apenas dentro da palavra já selecionada. Spans sobrepostos são unidos sem perder caracteres cobertos.

Uma localidade com escore ≥0,90 pode rejeitar um falso positivo de pessoa totalmente contido nela, desde que não exista evidência independente de pessoa. Sobreposições parciais permanecem protegidas. Essa arbitragem também precisa de validação em novos domínios.

Qual é o contrato e como uma falha é tratada?

O handler experimental aceita até 16 textos e 8.192 bytes UTF-8 no total. Devolve somente posições, categorias e escores, sem os valores encontrados. Offset inválido, falha de inicialização ou expiração impede uma resposta de sucesso.

{"version":1,"texts":["..."]}
→ {"version":1,"engine":"rn-privacy-0.2.0","results":[
    {"index":0,"spans":[{"start":0,"end":5,"label":"GIVEN_NAME","score":0.99}]}
  ]}

start/end: UTF-16; [start, end)
bytes: UTF-8; maximum total = 8192

O consumidor deve validar a resposta completa e bloquear o encaminhamento quando o detector for obrigatório e falhar. Essa integração ainda não está ativa. Os classificadores ficam em cache; texto, entidades e mapas de coordenadas não são caches entre requisições.

Normalização e segmentação seguem os conceitos de Unicode UAX #15 e UAX #29. As adaptações de alinhamento, contrato e políticas são engenharia da RN; os modelos e runtimes mantêm autoria e licenças próprias.

03 / Medição publicada · 19/09/2026

Resultados com denominador, método e limites.

Os dois conjuntos medem o candidato isolado, sem a composição com as regras brasileiras da API. São 46 textos sintéticos em português. O conjunto adicional também ajudou a revelar falhas de alinhamento; não é uma avaliação cega ou independente.

Detecção por caracteres alfanuméricos e marcas diacríticas
ConjuntoTP / FP / FNRecallPrecisãoNomes integrais
Original · 16 textos 263 / 9 / 6 97.8% 96.7% 13/13
Adicional · 30 textos 431 / 22 / 1 99.8% 95.1% 21/22

O que cada métrica mede

TP são posições sensíveis corretamente cobertas; FP são posições não anotadas que foram marcadas; FN são posições sensíveis que ficaram descobertas. Contamos letras, números e marcas diacríticas por offset, sem espaços e pontuação.

recall    = TP / (TP + FN)
precision = TP / (TP + FP)

“Nome integral” exige cobertura de todos os caracteres contabilizados da entidade. Isso não é F1 de spans, acurácia de classificação nem probabilidade de impedir reidentificação. Os números não estimam o desempenho em produção.

Erros que continuam visíveis

No conjunto original, seis caracteres de um CNPJ ficaram descobertos no candidato isolado. As regras brasileiras são obrigatórias na composição. No adicional, faltou a conjunção “e” de um sobrenome: por isso o resultado estrito é 21/22 nomes integrais.

Também ocorreram falsos positivos em palavras públicas. A primeira versão cobria apenas 5/13 nomes originais; após correções de Unicode, limites e reconhecimento, passou a 13/13. Esse avanço não equivale a cobertura universal.

Quais critérios impedem uma promoção prematura?

Recall de caracteres ≥95%, precisão ≥90%, zero falhas de execução e cobertura integral dos 13 nomes originais. Uma regressão não é compensada por uma média alta. O empacotamento verifica os hashes dos pesos e exige relatórios aprovados vinculados aos arquivos da avaliação.

Uma regressão médica separada usa oito textos e 31 valores: nenhum valor completo permaneceu após regras e candidato. Esse teste de presença não prova remoção integral de todos os caracteres. O caso negativo clínico permaneceu inalterado.

A execução foi verificada em Linux x86-64, Node.js 22, sem rede, limitada a uma CPU e 1 GiB. Isso não mede cold start AWS, latência de rede, throughput concorrente ou SLA. Promoção depende de validação representativa, piloto e observação.

Dados e cálculos para conferir.

O JSON contém os 46 textos fictícios, anotações, spans previstos e hashes de proveniência. O script usa somente Node.js para recalcular as métricas dessas previsões; não executa os modelos.

node score-privacy-benchmark.mjs privacy-benchmark.json

04 / Fundamentos e autoria

Papers, padrões e componentes.

As referências explicam as técnicas utilizadas. Resultados dos autores em outros datasets não são resultados da RN, certificação do produto ou endosso dos pesquisadores.

  1. BERT · Devlin et al., 2018

    Representações contextuais bidirecionais, WordPiece e classificação por token. É uma base conceitual da família de modelos, não um terceiro detector executado pela RN.

  2. MiniLM · Wang et al., 2020

    Destilação de atenção para modelos menores. Fundamenta a arquitetura do detector geral; seus resultados publicados não medem a detecção de PII desta implementação.

  3. DistilBERT · Sanh et al., 2019

    Destilação de modelos BERT. A variante multilíngue de NER usada na avaliação complementa nomes de pessoas; não foi treinada pela RN.

  4. Rampart · National Design Studio

    Componente adaptado na avaliação, com modelo geral e heurísticas. A RN acrescenta correções de posições, contrato limitado, combinação de classificadores e gates próprios. Atribuição CC BY 4.0 preservada.

  5. ONNX Runtime · Quantization

    Referência de execução e quantização. Q4 e INT8 reduzem o tamanho dos pesos; precisão e memória efetiva precisam ser medidas com cada artefato.

  6. Unicode UAX #15 · Unicode UAX #29

    Normalização de texto e limites de grafemas, usados para relacionar o texto normalizado às posições originais.

  7. NIST SP 800-38D · GCM

    Criptografia autenticada com dados associados, fundamento do formato cifrado de auditoria.

O especialista multilíngue de NER é de Davlan / David Ifeoluwa Adelani, com conversão ONNX de Xenova / Joshua Lochner e licença AFL-3.0 declarada pelo autor. ONNX Runtime usa licença MIT. A seleção e adaptação desses componentes não transfere sua autoria para a RN.

Da evidência ao seu caso de uso.

Compare os exemplos, consulte o contrato da API e defina um piloto com dados representativos. A adequação depende do domínio, da qualidade do texto e da política escolhida.