Modelo de ameaças, configuração de criptografia em camadas, classificação de dados, e procedimentos de backup.
O vault contém dados financeiros pessoais, estratégias de internacionalização, e informações sobre ativos. As ameaças relevantes são:
| Ameaça | Vetor | Impacto | Mitigação |
|---|---|---|---|
| Acesso físico ao dispositivo | Roubo/perda do laptop | Exposição total | Full-disk encryption (LUKS/FileVault/BitLocker) |
| Acesso ao repositório remoto | Comprometimento do GitHub/GitLab | Exposição de notas | git-crypt (arquivos criptografados at rest no remote) |
| Interceptação em trânsito | Man-in-the-middle | Exposição parcial | SSH para git (não HTTPS), TLS para APIs |
| Vazamento via API de IA cloud | Envio de dados sensíveis para LLM | Exposição de dados financeiros | Ollama local para FIN e FLAG; cloud só para ENG/EDU/VIT |
| Perda da chave de criptografia | Falha de backup | Perda permanente do vault remoto | Backup da chave em 3 locais independentes |
| Comprometimento do Obsidian plugin | Plugin malicioso | Exfiltração de dados | Auditar plugins, mínimo necessário, verificar código-fonte |
| Domínio | Sensibilidade | Dados sensíveis típicos | IA permitida |
|---|---|---|---|
| FIN | Alta | Saldos, posições, CPF, contas bancárias, estratégia de alocação | Ollama local APENAS |
| FLAG | Alta | Dados de passaporte, números de conta offshore, planos de residência | Ollama local APENAS |
| ENG | Baixa | Código, artigos técnicos, anotações | Cloud via OpenRouter OK |
| EDU | Baixa | Notas de leitura, fichamentos | Cloud via OpenRouter OK |
| VIT | Baixa | Receitas, degustações, cotações públicas de metais | Cloud via OpenRouter OK |
Exceção para VIT: Notas sobre metais preciosos que contenham quantidades pessoais possuídas ou locais de armazenamento são reclassificadas como Alta sensibilidade.
Protege contra acesso físico ao dispositivo.
Linux:
# Verificar se LUKS está ativo
lsblk -f
# A partição deve mostrar "crypto_LUKS"
Mac:
# Verificar FileVault
fdesetup status
# Deve retornar "FileVault is On."
Windows:
# Verificar BitLocker
manage-bde -status
Protege os arquivos no GitHub/GitLab. Usa git-crypt com GPG.
Setup inicial (uma vez):
cd pke/
git init
git-crypt init
# Opção A: Chave simétrica (mais simples)
git-crypt export-key ~/pke-vault-key.bin
# BACKUP ESSA CHAVE IMEDIATAMENTE
# Opção B: GPG (recomendado — integra com commits assinados)
git-crypt add-gpg-user SEU_EMAIL@example.com
Arquivo .gitattributes:
# Criptografar conteúdo do vault
vault/**/*.md filter=git-crypt diff=git-crypt
vault/**/*.canvas filter=git-crypt diff=git-crypt
vault/**/*.png filter=git-crypt diff=git-crypt
vault/**/*.jpg filter=git-crypt diff=git-crypt
vault/**/*.pdf filter=git-crypt diff=git-crypt
# Criptografar configs com dados sensíveis
collector/sources.yaml filter=git-crypt diff=git-crypt
collector/db/*.db filter=git-crypt diff=git-crypt
# NÃO criptografar (precisam ser legíveis no remote)
README.md !filter !diff
CLAUDE.md !filter !diff
GUIDELINES.md !filter !diff
CONTRIBUTING.md !filter !diff
SECURITY.md !filter !diff
SOURCES.md !filter !diff
PUBLISHING.md !filter !diff
ARCHITECTURE.md !filter !diff
.gitattributes !filter !diff
.gitignore !filter !diff
collector/**/*.py !filter !diff
hugo-site/** !filter !diff
scripts/** !filter !diff
Verificar:
git-crypt status
# Todos os *.md do vault devem mostrar "encrypted"
# Docs do root devem mostrar "not encrypted"
Clonar em outro dispositivo:
git clone <repo-url> pke
cd pke
# Com chave simétrica:
git-crypt unlock /path/to/pke-vault-key.bin
# Com GPG (se a chave GPG está no keyring):
git-crypt unlock
Para dados extremamente sensíveis DENTRO de uma nota (números de conta, senhas, CPF).
Plugin: Obsidian Encrypt (meld-cp)
%%ENCRYPTED%%...%%Plugin: Cryptsidian (vault inteiro)
A chave do git-crypt é o ponto único de falha. Procedimento de backup:
| Local | Método | Acesso |
|---|---|---|
| Pendrive criptografado | Arquivo .bin em pendrive com VeraCrypt |
Físico, guardado em local seguro |
| Password manager | Upload da chave como “secure note” no Bitwarden/1Password | Cloud, protegido por master password + 2FA |
| Cópia offline | Impresso como QR code ou base64 em papel, guardado em cofre | Físico, disaster recovery |
Teste de recovery (fazer periodicamente):
# Em uma máquina limpa ou VM:
git clone <repo-url> pke-test
cd pke-test
git-crypt unlock /path/to/backup-key.bin
# Verificar que os .md estão legíveis
cat vault/01-financas/_index.md
Regras para instalação de plugins:
# Obsidian internos (não precisam de sync)
vault/.obsidian/workspace.json
vault/.obsidian/workspace-mobile.json
vault/.obsidian/cache/
# Sistema
.DS_Store
Thumbs.db
*.swp
*.swo
# Chaves (NUNCA commitar)
*.bin
*.key
*.pem
# SQLite WAL (transiente)
collector/db/*.db-wal
collector/db/*.db-shm
# Hugo build output
hugo-site/public/
hugo-site/resources/
# Python
__pycache__/
*.pyc
.venv/