Cryptile

Arquitetura de segurança do Cryptile, camada por camada

Atualizado

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.

Baixe o Cryptile na App Store

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?

  1. O padrão é escrito como o tamanho da grade seguido dos pontos que você tocou, em ordem.
  2. Ele é misturado a um segredo de dispositivo de 32 bytes guardado no Chaveiro do iPhone, só para este dispositivo.
  3. O PBKDF2-HMAC-SHA512 roda 600.000 vezes sobre ele. Cada tentativa custa esse trabalho todo.
  4. O HKDF-SHA256 divide o resultado numa chave de localização e numa chave de envelope.
  5. 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.

Baixe o Cryptile na App Store