Cifragem, códigos de recuperação, backups, migração — as respostas ao que te importa, aqui.
Sim, mesmo. O CosmosBox é desenhado com zero contas: os dados vivem apenas no teu dispositivo por defeito, processados pelos algoritmos mais fortes reconhecidos — a tua palavra-passe passa por Argon2id (usa 128MB de memória; força bruta com GPU é praticamente impossível) para derivar uma chave-mestra, e cada ficheiro é depois cifrado com a sua própria chave aleatória independente AES-256-GCM. A chave (mestra) existe só em memória enquanto está desbloqueada e é apagada ao bloquear; as chaves de dados são guardadas pelo chip de segurança do sistema (Android Keystore / iOS Keychain).
Sem conta, não existe o elo “o servidor guarda a tua palavra-passe” — a superfície de fuga da palavra-passe é zero. A contrapartida: se esqueceres a palavra-passe, só o código de recuperação pode trazer os teus dados de volta.
Para isso existe a “recuperação de palavra-passe” (o sistema de código de recuperação). Ao ativá-la, a app gera um código de recuperação (dividível em 5 partes; quaisquer 3 restauram o acesso): guarda 1-2 partes tu e entrega o resto a pessoas de confiança. Quando esqueceres a palavra-passe, inserir o código repõe-na e restaura todos os dados — sem qualquer intervenção de servidor.
Se esqueceste a palavra-passe, nunca ativaste a recuperação e não tens backup — os dados não podem ser recuperados. Essa é a fronteira física da cifragem sem contas, por isso recomendamos vivamente: ativa a recuperação de palavra-passe logo depois de a definires.
O código de recuperação = um número aleatório real de 32 bytes (32 × 8 = 256 bits de entropia), gerado com a fonte aleatória segura do sistema (Random.secure()) — cada bit é o resultado de um lançamento de moeda independente. Parti-lo significa encontrar o correto entre 2²⁵⁶ possibilidades.
Quão grande é 2²⁵⁶? Algumas comparações intuitivas:
Então “matematicamente inquebrável” significa com precisão: não absolutamente impossível, mas impossível dentro da potência de cálculo que a física permite — não é “difícil”, é “fisicamente impossível”.
Os computadores quânticos também não te salvam: o algoritmo de Grover reduz para metade a busca de chaves simétricas: 256 bits → 2¹²⁸ tentativas. Mas 2¹²⁸ continua a superar o número de átomos do universo — os computadores quânticos estão igualmente atascados. O AES-256-GCM do código é precisamente o nível que resiste à busca quântica.
Porque são diferentes as palavras-passe humanas?
| Palavra-passe humana | Código de recuperação | |
|---|---|---|
| Fonte de entropia | A tua memória — previsível (palavras comuns, aniversários, padrões de teclado) | Gerador de números aleatórios reais |
| Entropia real | 12 caracteres aleatórios ≈ 78 bits; as comuns costumam ter < 30 bits | 256 bits |
| Custo de rutura | 30 bits ≈ 10⁹ tentativas, umas horas numa GPU | 2²⁵⁶ tentativas, fisicamente impossível |
A distância entre 30 bits e 256 bits não é 8× mas 2²²⁶ ≈ 10⁶⁸× — é por isso que “um KDF forte (Argon2id) protege palavras-passe humanas, mas com uma chave aleatória de 256 bits é apenas o enfeite”: o código de recuperação nem precisa do abrandamento do KDF — já é uma chave de entropia completa.
A fronteira honesta: “matematicamente inquebrável” protege apenas a chave. O que de facto vence um código de recuperação nunca é a força bruta, mas o elo humano — um papel fotografado, uma nota num telemóvel com root, uma captura enviada a ti mesmo para a nuvem. Uma chave, por mais forte que seja, não vale nada uma vez vazada. Regras de ferro: escreve-o em papel e guarda-o à chave / guarda-o num gestor de palavras-passe (também com palavra-passe mestra forte) — sem fotos, sem nuvem, não o envies a ninguém. As partes de amigos são fragmentos da partilha Shamir; uma única parte é inútil, por isso partilhar é seguro.
Níveis de cifragem de armazenamento (câmara cifrada, notas cifradas e ferramentas semelhantes), do mais fraco ao mais forte:
| Nível | Ficheiro | Segurança | Dispositivo novo |
|---|---|---|---|
| Texto simples | sem cifragem | quem o tiver pode lê-lo | basta copiar |
| Portátil | cifrado, sal no ficheiro | exige palavra-passe | inserir a palavra-passe |
| Sal separado (cifrado) | cifrado, sal no dispositivo | exige palavra-passe + sal do dispositivo | exige código de recuperação |
| Troca de sal (exportação mais forte) | cifrado, sal trocado offline | palavra-passe + sal, dois fatores | exige o sal da outra parte |
Regra fácil: texto simples → portátil → sal separado, a segurança sobe e também a fricção. O “seguir global” por defeito serve para quase tudo; quanto mais sensível o ficheiro, mais alto o nível escolhido.
Fluxo padrão: backup no telemóvel antigo (local ou nuvem WebDAV) → restaurar no novo → inserir a palavra-passe do backup.
Recuperar as chaves antigas no dispositivo novo: o backup traz a configuração de recuperação automaticamente — após restaurar, insere o código de recuperação e a chave-mestra do dispositivo antigo é restaurada, com todos os dados cifrados imediatamente legíveis.
Partilha de ficheiro único: ferramentas como os cartões de personagem suportam exportação — o formato portátil só precisa da palavra-passe de exportação no dispositivo novo; o formato “troca de sal offline” exige trocar o sal primeiro (mais seguro, ideal para ficheiros sensíveis).
Porque um backup não é uma mera cópia do texto cifrado. Um backup tem de te permitir reconstruir tudo num dispositivo novo, por isso o pacote contém não só texto cifrado mas também dados estruturais em claro (alguns dados de ferramentas) e material de chaves (sal, somas de verificação, configuração de recuperação) — tudo isto tem de ser novamente bloqueado como um todo com a palavra-passe própria do backup. A cifragem do dispositivo defende contra “fugas de ficheiros”; a palavra-passe do backup contra “fugas do ficheiro de backup” — duas camadas independentes. Esqueceste a palavra-passe do backup? Precisarias do código de recuperação para restaurar a chave-mestra e voltar a fazer o backup.
Os backups cifrados são carregados automaticamente para a tua própria nuvem / nuvem privada (Jianguoyun, NextCloud, Synology ou qualquer servidor WebDAV) — nenhum terceiro no meio. Os ficheiros de backup vão cifrados (.encbak), a palavra-passe vive no Keystore e as transferências passam por HTTPS. Backups automáticos diários/semanais executados no arranque — mesmo um dispositivo perdido é recuperado a partir da nuvem.
Sal perdido: um backup com sal separado (o ficheiro não leva sal) já não pode ser decifrado — nem por ti. Por isso, ao ativá-lo, a app lembra repetidamente: exporta o sal do backup e guarda-o offline (pen / impressão / gestor de palavras-passe).
Sal vazado: todos os backups com sal separado anteriores à fuga estão comprometidos (irrecuperáveis — considera apagar os backups antigos da nuvem); após regenerar o sal do backup, os novos backups usam automaticamente o sal novo e voltam a estar seguros. Os backups antigos continuam restauravéis enquanto o sal antigo estiver na biblioteca de sais.
Se não quiseres carregar com o encargo de guardar um sal, o backup “portátil” por defeito chega — leva o sal, restaura num dispositivo novo só com a palavra-passe e já é muito seguro.
Não. Uma versão antiga tinha um defeito grave: as importações de ficheiros externos sobrescreviam os dados existentes; corrigido em versões posteriores: quando o dispositivo já tem dados, abrir um backup externamente passa pela importação por fusão após desbloquear (dados existentes + novos, deduplicados por id); só um dispositivo totalmente vazio (primeiro uso) faz uma importação de um passo. Certifica-te de que usas a versão mais recente.
Se for um backup exportado por uma versão antiga: as fotos internas ainda estão cifradas com as chaves do dispositivo de origem, que o destino não consegue decifrar — volta a exportar com uma versão nova (as exportações novas recifram as fotos com a palavra-passe de exportação; no dispositivo novo basta inseri-la).
Se for uma exportação nova: confirma que inseriste a palavra-passe de exportação; o formato “troca de sal offline” exige ainda importar primeiro o sal do remetente.
Os dois problemas históricos estão corrigidos: ① o destino da partilha costumava fundir-se na pilha de tarefas desta app e causava “ficar preso no ecrã do WeChat” — agora a partilha abre numa tarefa independente e voltar traz-te diretamente; ② os crashes do FileProvider em dispositivos Huawei (causados pela ofuscação R8) derrubavam as exportações — corrigido conservando org.xmlpull.v1. Se ainda tiveres problemas, diz-nos o modelo e a versão do sistema via feedback.
As exportações cifradas exigem uma palavra-passe forte: pelo menos 8 caracteres, com letras e números, e nem só numérica nem só alfabética — as fracas não podem ser confirmadas. Como no formato portátil o sal viaja com o ficheiro, a palavra-passe é a única chave do ficheiro — quanto mais forte, mais seguro; combinada com exportações de “troca de sal offline”, nem uma palavra-passe + ficheiro vazados abrem nada.