Arquitetura de segurança do Cryptile, camada por camada
O Cryptile criptografa cada arquivo, miniatura e índice com AES-256-GCM, usando chaves criadas no seu celular a partir do padrão que você desenha. Não há conta nem servidor, e o desenvolvedor nunca guarda chaves.
O resumo simples está na página de segurança.
O que preciso saber?
- O seu padrão é a origem de todas as chaves. Nada legível é guardado sem ele.
- Tamanhos e número de cofres ficam disfarçados. Os arquivos são preenchidos e espaços de isca ocultam quantos cofres existem.
- Você pode conferir. O núcleo de criptografia é publicado para qualquer pessoa auditar (código-fonte disponível), com modelo de ameaças e vetores de teste: github.com/jasonbrelsford/cryptile-core.
Como um padrão vira uma chave?
- O padrão é escrito como o tamanho da grade seguido dos pontos que você tocou, em ordem.
- Ele é misturado a um segredo de dispositivo de 32 bytes guardado no Chaveiro do iPhone, só para este dispositivo.
- O PBKDF2-HMAC-SHA512 roda 600.000 vezes sobre ele. Cada tentativa custa esse trabalho todo.
- O HKDF-SHA256 divide o resultado numa chave de localização e numa chave de envelope.
- A chave de localização dá nome ao arquivo de índice do cofre. A chave de envelope o abre.
Dentro do índice fica a chave mestra aleatória de 256 bits do cofre. O HKDF deriva dela subchaves separadas para arquivos, miniaturas e o índice. Nenhuma chave é usada para duas finalidades.
Como os arquivos são criptografados?
Itens pequenos, como miniaturas e o índice, são selados de uma vez com AES-256-GCM e um nonce aleatório.
Arquivos grandes usam um formato STREAM em blocos de 1 MB. Cada bloco tem o próprio nonce e registra a sua posição e se é o último. Cortar, reordenar ou trocar blocos faz a descriptografia falhar.
O GCM também autentica cada cabeçalho, então um arquivo alterado é rejeitado em vez de ser mostrado.
Como tamanhos e número de cofres ficam ocultos?
Cada bloco pequeno de dados e cada bloco final de arquivo é preenchido até um múltiplo de 64 KiB. Quem copia vê tamanhos aproximados, não exatos.
Não existe lista de cofres. O app mantém pelo menos 8 espaços com formato de índice, reais e isca, e sorteia de novo as iscas a cada gravação. Um padrão que não corresponde a nenhum espaço abre um cofre vazio.
Como funciona a recuperação?
Cada cofre recebe uma frase de recuperação de 9 palavras, que equivale a 96 bits de aleatoriedade. Ela abre uma cópia de recuperação separada do cofre, selada com uma chave criada a partir da frase.
O backup no iCloud espelha os arquivos criptografados como estão. O segredo do dispositivo não vai nele por padrão, então um backup sozinho não serve para tentar adivinhar padrões.
O que é criptografado e o que não é?
Criptografado: fotos, vídeos, arquivos, notas, miniaturas, nomes, pastas, favoritos, texto reconhecido e localizações das fotos. O pequeno arquivo que acompanha as iscas e as contagens do plano gratuito é selado com uma chave do dispositivo.
Não criptografado pelo Cryptile:
- Ajustes. O tempo do bloqueio automático, a ordenação e o botão do backup não guardam segredos.
- Itens compartilhados esperando para entrar. Ficam sob a proteção de arquivos do iOS até você abrir um cofre.
- O tamanho total do contêiner e os horários de gravação. Um cofre de 10 GB não parece ter 10 MB.
- Tudo o que você exporta. Uma cópia salva no Fotos ou no Arquivos fica fora do cofre.
Contra o que isso protege?
- Alguém que copia os arquivos do app sem o seu Chaveiro. A pessoa recebe texto cifrado e não consegue testar padrões.
- A Apple, ou um vazamento na Apple. O iCloud guarda texto cifrado e nenhuma chave.
- Adulteração. Dados alterados ou reordenados não são descriptografados.
- Nós. Não temos servidor nem chaves, então não conseguimos redefinir o acesso.
Contra o que isso não protege?
- Padrões curtos. Um padrão é mais fraco que uma frase-senha. Com os seus arquivos e o seu Chaveiro, um padrão de 6 pontos numa grade 4×4 cai em minutos numa GPU. Use 8 pontos ou mais.
- Malware num celular desbloqueado. Um código que lê a memória enquanto um cofre está aberto está além do alcance de qualquer app.
- Alguém vendo você desenhar. Desenhe onde ninguém veja a sua mão.
- Perder o celular e a frase. O cofre se perde. Não há redefinição.
O padrão de pânico do Plus destrói o segredo do dispositivo, então nenhum cofre do celular abre até ser restaurado.