Criptografia e Secrets
Como chaves de API sao protegidas e nunca armazenadas em disco.
Principio Zero-Disk
API keys NUNCA sao salvas em disco no container. O principio e simples: se alguem acessar o servidor fisicamente, nao encontra nenhuma chave.
Esse principio se aplica a todas as chaves sensíveis: tokens de provedores de IA (Anthropic, OpenAI, Google, OpenRouter), tokens de canais de mensagem (Telegram, Discord, WhatsApp) e quaisquer outras credenciais do usuario.
O sistema foi arquitetado para que chaves existam apenas em dois lugares seguros: criptografadas no banco de dados (pgcrypto) e em memoria RAM durante a execucao do container.
Fluxo de uma API Key
Quando voce insere uma API key no dashboard, ela percorre o seguinte caminho seguro:
Usuario insere a chave no dashboard
Na tab Secrets & API Keys do agente, voce cola sua API key. A comunicacao entre o navegador e o Supabase e protegida por HTTPS/TLS.
Criptografada com pgcrypto no banco
A chave e criptografada usando a extensao pgcrypto do PostgreSQL antes de ser armazenada. O texto plano nunca e persistido — apenas o hash criptografado existe no banco de dados.
Container inicia e chama o API Proxy
Quando o container do agente inicia, o script qc-init.sh faz uma requisicao HTTP para o API Proxy em GET /secrets na porta 3100 (localhost, nunca exposta externamente).
Proxy busca no banco e decripta em memoria
O API Proxy autentica a requisicao, busca a chave criptografada no Supabase, decripta em memoria usando pgcrypto e prepara a resposta. A chave decriptada nunca toca disco neste processo.
Entrega ao container via HTTP interno
A chave decriptada e enviada via HTTP pela rede interna (localhost:3100). Como a comunicacao e dentro da mesma maquina, nao sai para a internet.
Container armazena apenas em memoria RAM
O container recebe a chave e a armazena exclusivamente como variavel de ambiente (ex: ANTHROPIC_API_KEY, TELEGRAM_BOT_TOKEN). Variaveis de ambiente existem apenas na memoria RAM do processo — se o container for parado, a chave desaparece.
Criptografia em transito
Todas as comunicacoes externas sao protegidas por criptografia:
- Frontend para Supabase: HTTPS/TLS obrigatorio. O navegador se comunica com o Supabase via conexao criptografada.
- Edge Functions para VPS: HTTPS/TLS para chamadas de ativacao, desativacao e gerenciamento de bots.
- Comunicacao interna na VPS: Feita via
localhost(loopback), nunca exposta externamente. O trafego entre Agent Manager, API Proxy e containers permanece dentro da maquina.
Criptografia em repouso
Dados sensíveis sao protegidos mesmo quando armazenados:
- Supabase: O banco de dados PostgreSQL gerenciado pelo Supabase possui criptografia transparente de disco (encryption at rest) ativada por padrao.
- pgcrypto (camada adicional): API keys recebem uma camada extra de criptografia via extensao
pgcrypto. Mesmo que alguem acesse o banco diretamente, as chaves estarao criptografadas. - Senhas: Hasheadas com
bcrypt— irreversiveis por design. Ninguem consegue recuperar a senha original a partir do hash.
Rotacao de chaves
Voce pode rotacionar suas API keys a qualquer momento pela tab Secrets & API Keys no dashboard do agente:
- Atualizacao imediata: Ao inserir uma nova chave, a antiga e substituida no banco de dados instantaneamente.
- Propagacao automatica: Se o container estiver em execucao, a nova chave e propagada automaticamente — nao e necessario reiniciar o agente manualmente.
- Sem downtime: A troca de chave acontece de forma transparente. O agente continua funcionando durante a rotacao.
Recomendamos rotacionar suas chaves periodicamente ou imediatamente se suspeitar que alguma chave foi comprometida.
Nunca compartilhe suas API keys
Nunca compartilhe suas API keys com ninguem. O suporte do QuickClaw NUNCA pedira sua chave de API. Se alguem solicitar sua chave alegando ser do suporte, trata-se de uma tentativa de fraude.