OpenCyber Academy
Graduação · Capítulo 17 · Português
Código do curso: OCA-112Capítulo 17: OCA-112-C017

Capítulo 17 — Conceitos de criptografia

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 17 publicada. Mapa, exemplo, EX049.

flowchart TD
  N0["17.1 Primitivas básicas"]
  N1["17.2 Proteção de artefatos de IA"]
  N2["17.3 O que a criptografia não pode fazer"]
  N3["17.4 Chaves"]
  N4["17.6b Verificação de assinaturas na prática"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX049"]

Desenho lógico

flowchart LR
  N0["17.1 Primitivas básicas"]
  N1["17.2 Proteção de artefatos de IA"]
  N2["17.3 O que a criptografia não pode fazer"]
  N3["17.4 Chaves"]
  N4["17.6b Verificação de assinaturas na prática"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX049"]
[17.1 Primitivas básicas]
    |
    v
[17.2 Proteção de artefatos de IA]
    |
    v
[17.3 O que a criptografia não pode fazer]
    |
    v
[17.4 Chaves]
    |
    v
[17.6b Verificação de assinaturas na prática]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX049]

Objetivos de aprendizagem

Você vai (1) explicar hashing, criptografia simétrica e de chave pública e assinaturas digitais; (2) aplicá-los para proteger artefatos e dados de IA; (3) explicar o que a criptografia não pode fazer pela segurança de IA; e (4) verificar a integridade de modelos com manifestos assinados.

17.1 Primitivas básicas

Funções de hash (como a SHA-256) mapeiam dados para um resumo curto; mudar um bit muda o resumo. A criptografia simétrica (como o AES) protege dados com uma chave compartilhada. A criptografia de chave pública permite que qualquer pessoa cifre para o detentor de uma chave, ou verifique assinaturas dele. Assinaturas digitais provam quem criou os dados e que eles não foram alterados. Nos sistemas da LCH, hashes verificam os arquivos de modelo, a criptografia simétrica protege os logs de conversas armazenados, a criptografia de chave pública protege o TLS até o provedor do modelo, e assinaturas provam que as versões do DocSort vêm do fornecedor. Cada primitiva responde a uma pergunta diferente, e usar a errada deixa uma lacuna: um hash sozinho mostra que um arquivo não mudou, mas não quem o produziu.

17.2 Proteção de artefatos de IA

Cifre dados de treinamento e pesos de modelos em repouso; use TLS em trânsito. Publique os resumos SHA-256 dos arquivos de modelo num manifesto e assine o manifesto, para que os destinatários possam verificar a integridade e a origem antes de carregar. Isso trata riscos da cadeia de suprimentos (OWASP LLM03), como modelos adulterados ou com backdoor (Gu et al., arXiv:1708.06733).

"""Lab H: integrity of model artefacts with SHA-256 manifests (stdlib only).
Creates synthetic 'artefact' bytes, records a manifest, then detects a
one-byte tampering and a swapped file. No real models are involved."""
import hashlib, json
files = {"model.bin": bytes(range(256)) * 40, "tokenizer.json": b'{"vocab": ["a", "b"]}',
         "config.yaml": b"layers: 4\nheads: 8\n"}
manifest = {n: hashlib.sha256(b).hexdigest() for n, b in files.items()}
print(json.dumps({k: v[:16] for k, v in manifest.items()}, indent=1))
received = dict(files)
tampered = bytearray(received["model.bin"]); tampered[5000] ^= 1
received["model.bin"] = bytes(tampered)
received["config.yaml"] = b"layers: 4\nheads: 8\ntrust_remote_code: true\n"
for n, b in sorted(received.items()):
    ok = hashlib.sha256(b).hexdigest() == manifest[n]
    print(f"{n:15s} {'OK' if ok else 'MISMATCH'}")

Saída esperada:

{
 "model.bin": "e96760a87768717b",
 "tokenizer.json": "f63d2ddabc61f2d9",
 "config.yaml": "e5bbb570ca0fcb87"
}
config.yaml     MISMATCH
model.bin       MISMATCH
tokenizer.json  OK

O Lab H verifica a integridade, mas não a origem, porque um atacante capaz de alterar os arquivos também poderia alterar um manifesto não assinado. A assinatura fecha essa lacuna, já que a chave não está no servidor.

17.3 O que a criptografia não pode fazer

A cifragem não impede que uma consulta autorizada extraia informação de um modelo, não previne a injeção de prompt e não torna limpo um conjunto de dados envenenado — apenas prova que os dados envenenados são os dados que você assinou. A criptografia protege dados e artefatos; o comportamento precisa de outros controles. No Ask Lumen, toda mensagem trafega cifrada e todo arquivo de modelo é verificado, e ainda assim um paciente pode digitar uma injeção e um documento de parceiro pode carregar texto hostil. Esses riscos exigem o ponto de política, a rotulagem e o monitoramento. A nota de arquitetura de Rina lista quais ameaças cada camada trata, para que ninguém suponha que a cifragem cobre mais do que cobre.

17.4 Chaves

A segurança depende das chaves: guarde-as em serviços de gerenciamento de chaves, restrinja o acesso, faça sua rotação e nunca as coloque em prompts ou em repositórios de código. A chave de API do provedor de modelo da LCH é um exemplo claro: quem a possui pode executar consultas cobradas da LCH e possivelmente ler logs. A LCH a guarda no serviço de gerenciamento de chaves da nuvem, dá acesso apenas ao servidor de aplicação, faz sua rotação a cada trimestre e varre os repositórios em busca de commits acidentais. Uma chave vazada é primeiro revogada, depois investigada, e os logs são revisados.

17.5 Exemplo resolvido (caso sintético da LCH)

O fornecedor do DocSort passou a assinar suas versões. Rina configurou o script de implantação para buscar a chave pública do fornecedor no repositório confiável da própria LCH (e não no servidor de versões), verificar a assinatura do manifesto e depois verificar o resumo de cada arquivo. Uma versão de teste com um arquivo modificado foi rejeitada. Buscar a chave no repositório da própria LCH importa porque, do contrário, um atacante que controlasse o servidor de versões poderia fornecer tanto um arquivo malicioso quanto uma chave correspondente. A versão de teste rejeitada confirma que a verificação funciona de ponta a ponta.

17.6 Erros e limites

Três erros são comuns: buscar resumos e chaves no mesmo lugar que os arquivos; supor que a cifragem impede o vazamento pelo modelo; e chaves no código-fonte. Buscar resumos e chaves no mesmo lugar que os arquivos significa que um único comprometimento derrota a verificação, e é por isso que a LCH guarda a chave do DocSort em seu próprio repositório. A cifragem não impede que um modelo revele dados de treinamento por meio de suas respostas. Chaves no código-fonte acabam em repositórios e backups que muitas pessoas podem ler, por isso são procuradas e trocadas quando encontradas.

17.6b Verificação de assinaturas na prática

Assinar o arquivo de modelo do DocSort só ajuda se o carregador verificar a assinatura toda vez e se recusar a iniciar em caso de falha. A LCH testou isso carregando uma cópia com um byte alterado: o serviço recusou, registrou o evento e continuou executando a versão verificada anterior. Manter a versão verificada anterior em execução evitou uma indisponibilidade enquanto o problema era investigado, o que tornou a recusa segura. O fornecedor então reemitiu uma versão corretamente assinada. Os funcionários não notaram nenhuma mudança no DocSort enquanto a versão antiga continuava classificando os documentos.

Exercícios

Síntese

A criptografia torna os artefatos e dados de IA verificáveis e confidenciais, mas não consegue fazer um modelo se comportar; é uma camada entre muitas.

Continue estudando — capítulo 17 de 40

← Capítulo 16 (rascunho) · Índice de capítulos do curso · Capítulo 18 (rascunho) →

Respostas comentadas

EX049. Integridade de um arquivo: hash. Origem de um manifesto: assinatura digital. Confidencialidade de dados armazenados: cifragem.

EX050. Se a chave viesse do servidor de versões, um atacante que controlasse esse servidor poderia substituir juntos arquivos, manifesto e chave; uma chave vinda do repositório confiável da própria LCH não pode ser trocada dessa forma.

EX051. Injeção de prompt; extração de modelo ou inferência de pertencimento por meio de consultas legítimas (também: envenenamento de dados que depois foram assinados; evasão).