Encriptação por padrão: como uma forma desenhada protege os seus ficheiros

Desenha um padrão com o dedo. O PBKDF2 transforma esse gesto numa chave de cofre, que desbloqueia uma chave aleatória separada que protege os seus ficheiros com AES-256-GCM. Nenhum campo de palavra-passe, nenhum PIN curto. Apenas o seu padrão e uma hierarquia de chaves deliberadamente em camadas.

O Vaultaire serializa uma forma desenhada numa grelha 5×5 e processa-a com PBKDF2-HMAC-SHA512, 600.000 iterações e um sal comum a todo o dispositivo, guardado no Keychain do iOS. O resultado de 256 bits é uma chave do cofre: encripta o índice do cofre e desembrulha a chave mestra aleatória separada que o AES-256-GCM usa para o conteúdo e os metadados dos ficheiros.

O que é a encriptação por padrão?

A maioria das aplicações de cofre esconde-se por detrás de um PIN ou de uma palavra-passe. Introduz quatro dígitos e as fotografias aparecem. Parece suficientemente seguro, certo?

O problema é este: um PIN de quatro dígitos tem exatamente 10 000 combinações possíveis. Um computador consegue tentar todas em menos de um segundo. Seis dígitos? Um milhão de combinações. Ainda trivialmente rápido para hardware moderno. Mesmo uma palavra-passe de oito caracteres, se usar apenas letras minúsculas, oferece cerca de 200 mil milhões de possibilidades. Parece muito, até perceber que um portátil normal consegue testar milhares de milhões de hashes de palavras-passe por segundo.

A encriptação por padrão adota uma abordagem fundamentalmente diferente. Em vez de escrever caracteres num campo, desenha uma forma geométrica numa grelha de pontos. O caminho que traça (que pontos toca, por que ordem, com que geometria) torna-se a entrada de uma função de derivação de chaves baseada em palavra-passe. O resultado não é apenas verificado pela interface: tem de desbloquear um índice encriptado autenticado e a chave mestra aleatória que ele contém.

A distinção é importante. Quando introduz um PIN em algumas aplicações, a aplicação apenas verifica se escreveu o número correto. Se sim, abre, mesmo que os ficheiros estejam protegidos sobretudo por controlo de acesso. O Vaultaire, pelo contrário, passa o padrão desenhado ao PBKDF2 para derivar uma chave do cofre de 256 bits. Essa chave tem de autenticar e desencriptar o índice do cofre antes de poder desembrulhar a chave mestra aleatória usada nos ficheiros. Um padrão não reconhecido é apresentado como um cofre vazio, mas a autenticação AES-GCM continua a distinguir uma chave correta de uma incorreta.

Diferença fundamental

Um controlo de acesso por PIN pode ser como uma porta trancada à frente de ficheiros que, de outra forma, seriam legíveis. O padrão do Vaultaire está mais próximo da combinação de um cofre-forte: deriva a chave que abre um índice encriptado, que por sua vez liberta a chave separada que protege o conteúdo. A interface não pode simplesmente ignorar essa cadeia criptográfica.

Como funciona passo a passo

Eis o que acontece desde o momento em que o seu dedo toca no ecrã até os seus ficheiros ficarem ilegíveis para toda a gente.

Passo 1: Desenha o padrão

O Vaultaire apresenta uma grelha de 5×5 pontos. Desenha um caminho contínuo que liga pelo menos 6 pontos, com pelo menos uma mudança de direção. A aplicação regista exatamente que pontos visitou e por que ordem. Esta sequência é o seu padrão.

Grelha de padrão 5×5

Ao contrário das grelhas 3×3 habituais nos ecrãs de bloqueio do Android, o Vaultaire usa uma grelha 5×5. Não é uma escolha cosmética. Vinte e cinco posições permitem muito mais caminhos, cruzamentos, saltos e mudanças de direção do que nove posições. O espaço teórico maior ajuda, mas a segurança real ainda depende da imprevisibilidade do caminho escolhido. Uma letra conhecida ou uma forma simples continua fácil de adivinhar, mesmo quando a grelha permite milhares de milhões de alternativas.

Passo 2: O padrão deriva uma chave do cofre

O padrão desenhado é serializado com o tamanho da grelha e passado ao PBKDF2 (Password-Based Key Derivation Function 2) com HMAC-SHA512, 600.000 iterações e um sal aleatório comum a todo o dispositivo. O sal é um valor não secreto guardado no Keychain do iOS como item WhenUnlockedThisDeviceOnly. Isto liga a derivação local ao dispositivo; o sal não é exclusivo de cada cofre e não acrescenta entropia a um padrão escolhido por uma pessoa.

Fluxo de encriptação
O seu padrão
Caminho na grelha 5×5
→
PBKDF2 + sal
Derivação de chave
→
Chave do cofre de 256 bits
Índice + envolvimento da chave
→
Chave mestra aleatória
Ficheiros AES-256-GCM

O processo de derivação da chave é deliberadamente dispendioso. O PBKDF2 executa 600.000 iterações de HMAC-SHA512 para cada padrão candidato, o que aumenta o custo de um ataque por tentativas. Isto não transforma um padrão de baixa entropia em 256 bits de segurança, e o tempo do ataque depende do hardware do atacante. O objetivo é mais restrito e mensurável: tornar cada tentativa muito mais cara do que um simples hash.

Passo 3: Os seus ficheiros são encriptados

Quando o cofre é criado pela primeira vez, o Vaultaire gera uma chave mestra aleatória de 256 bits. A chave do cofre derivada do padrão encripta o índice e envolve essa chave mestra; não encripta diretamente todos os ficheiros. A chave mestra é usada com AES-256-GCM para cabeçalhos de ficheiros, conteúdo, miniaturas e metadados relacionados. Nonces novos garantem que texto simples repetido não produz texto cifrado repetido com a mesma chave.

O modo GCM adiciona uma camada importante: autenticação. Não só baralha os seus dados, como também gera uma etiqueta que deteta qualquer manipulação. Se um único bit de um ficheiro encriptado for modificado, a desencriptação falha. Ninguém consegue alterar os seus ficheiros sem que saiba.

Passo 4: O estado da chave ativa é apagado

Quando o Vaultaire bloqueia, limpa o estado do cofre ativo e da chave mestra e exige novo desbloqueio antes de voltar a mostrar os ficheiros. Enquanto o cofre está aberto, esses bytes de chave simétrica existem necessariamente no processo da aplicação, para que o CryptoKit possa executar operações AES-GCM. O Vaultaire também guarda informação de recuperação, incluindo o padrão e o envelope de recuperação encriptado com a frase, numa base de dados encriptada com AES-GCM no Keychain do iOS. Isto é muito diferente de afirmar que o padrão e todas as cópias da chave não ficam guardados em lado nenhum.

A matemática por detrás (em linguagem simples)

Não precisa de um curso de informática para perceber porque funciona. A segurança assenta em três números: quantos padrões são possíveis, quanto tempo demora cada tentativa e quantas tentativas um atacante consegue fazer.

2256
Espaço de chaves AES
5×5
Tamanho da grelha
Milhares de milhões
Padrões possíveis

Entropia: a medida da imprevisibilidade

Entropia é outra forma de dizer “quão difícil é adivinhar”. Lançar uma moeda tem 1 bit de entropia (dois resultados). Um PIN de quatro dígitos tem cerca de 13 bits de entropia (10 000 resultados). Um padrão bem escolhido numa grelha 5×5 que liga 8 ou mais pontos pode superar 30 bits de entropia, ou seja, mais de mil milhões de padrões possíveis.

A entropia do padrão define o teto de um ataque por tentativas. O PBKDF2 não consegue criar entropia que o gesto não contém, mas pode tornar muito mais caro testar cada candidato.

Derivação de chave: tentativas dispendiosas

O PBKDF2 pega no padrão serializado e executa 600.000 iterações de HMAC-SHA512. As estimativas de ataque devem usar o custo medido no hardware que faz as tentativas: a exatamente 1 ms por candidato completo, 1.000.000.000 de candidatos levariam 1.000.000 s, ou cerca de 11,6 dias, num único processo. Um custo medido mais lento aumenta esse tempo; hardware em paralelo reduz-no. O comprimento de 256 bits da saída não altera o tamanho do espaço de procura de padrões.

O sal comum a todo o dispositivo fica guardado no Keychain e não foi concebido para ser secreto. O Keychain e a Proteção de dados do iOS podem dificultar a extração num cenário de apreensão do dispositivo, mas a análise criptográfica tem de presumir que um examinador que obtenha os ficheiros encriptados também pode obter o sal. O sal impede cálculos prévios entre dispositivos; não substitui um padrão forte.

AES-256: uma norma pública e bem estudada

O AES-256 é uma cifra forte e normalizada, publicada pelo NIST como FIPS 197. O “256” refere-se ao comprimento da chave em bits. Uma chave de 256 bits tem 2256 valores possíveis, demasiados para tentar por força bruta. Por isso, um atacante ataca antes o padrão, e é por essa razão que o Vaultaire o reforça com 600.000 iterações de PBKDF2.

A segurança do AES-256 não depende de manter o algoritmo secreto. Mas o sistema completo não é protegido apenas pelo espaço de chaves do AES: o limite prático de um ataque por tentativas vem da entropia do padrão, do fator de trabalho do PBKDF2 e da proteção à volta do sal do dispositivo e do armazenamento encriptado. O AES-256-GCM oferece encriptação autenticada forte depois de desbloqueada a chave mestra aleatória correta.

O que um ataque teria de ultrapassar

Vejamos as principais formas de alguém tentar aceder aos seus ficheiros encriptados, o que o Vaultaire faz para aumentar o custo e onde ficam os limites.

Força bruta: tentar cada padrão

O PBKDF2 obriga cada padrão candidato a pagar 600.000 iterações de HMAC-SHA512. É uma defesa significativa, mas não promete um número fixo de anos: o resultado depende da escolha do padrão, da velocidade de derivação medida, do paralelismo e de o examinador ter ou não recuperado o sal do dispositivo. Caminhos mais longos e menos previsíveis são importantes porque o PBKDF2 aumenta o custo de adivinhar em vez de criar nova entropia.

Ataque por marcas: ler o seu ecrã

Numa grelha 3×3, as marcas no ecrã podem reduzir significativamente os padrões possíveis. Numa grelha 5×5, o padrão de marcas revela quais os pontos tocados, mas não a ordem, a direção nem as ligações entre eles. A explosão combinatória torna esta abordagem impraticável.

Observação por cima do ombro: ver o padrão a ser desenhado

Os padrões desenhados depressa num ecrã pequeno de telemóvel são extremamente difíceis de memorizar por observação, sobretudo numa grelha 5×5. A investigação mostra que os observadores têm muito mais dificuldade em reproduzir padrões complexos do que em reter um PIN ou uma palavra-passe ditos em voz alta.

Apreensão do dispositivo: levar o seu telemóvel

Se alguém levar o seu telemóvel, o conteúdo e os índices dos ficheiros do Vaultaire continuam a ser texto cifrado AES-GCM até as chaves necessárias estarem disponíveis. A aplicação não guarda um registo convencional de verificação de palavra-passe, mas isso não impede a verificação offline. O nome de cada ficheiro de índice de cofre encriptado contém um hash truncado da chave do cofre, e a desencriptação autenticada AES-GCM também tem êxito ou falha para uma chave candidata. A proteção do dispositivo e a força do padrão continuam, por isso, a fazer parte do modelo de ameaça.

Verificação autenticada

Não é preciso um hash de palavra-passe separado para testar uma tentativa contra texto cifrado autenticado. As etiquetas AES-GCM do Vaultaire dão um resultado de êxito ou falha muito fiável, e o nome do ficheiro de índice permite uma verificação preliminar mais barata. A defesa está no custo e na imprevisibilidade da credencial, mais a proteção do iOS sobre o material local, e não na ausência de um oráculo de verificação.

Escolher um padrão forte

A encriptação só é tão forte quanto o padrão que escolher. Veja como maximizar a segurança com o mínimo de esforço.

O que torna um padrão forte

  • Use mais pontos. Ligue pelo menos 8 dos 25 pontos disponíveis. Cada ponto adicional multiplica o número de padrões possíveis.
  • Cruze o seu próprio caminho. Padrões que voltam atrás, saltam pontos ou mudam de direção inesperadamente são muito mais difíceis de reproduzir de memória ou por observação.
  • Evite formas óbvias. Letras (L, Z, S), formas geométricas simples (quadrados, triângulos) e linhas retas são as primeiras coisas que um atacante tentaria.
  • Use toda a grelha. Padrões que ficam num canto ou ao longo de uma só margem desperdiçam a entropia disponível. Distribua o padrão pela grelha.

O que evitar

  • Padrões de comprimento mínimo. O Vaultaire exige pelo menos 6 pontos e uma mudança de direção, mas cumprir o mínimo não torna o caminho imprevisível. Use mais da grelha e mude de direção várias vezes, se conseguir memorizar o resultado com segurança.
  • Formas geométricas simples. Um L, uma linha em zigue-zague ou uma diagonal direta são o equivalente em padrões da palavra-passe “password123”.
  • Começar sempre no mesmo canto. A investigação sobre padrões Android mostra que a maioria das pessoas começa no ponto superior esquerdo. Os atacantes sabem isso.

O ponto ideal

Um padrão que liga 8 a 12 pontos com várias mudanças de direção é mais difícil de adivinhar e continua fácil de recordar graças à memória muscular. Não precisa de o decorar como uma palavra-passe: a sua mão lembra-se do movimento, tal como se lembra de fazer a sua assinatura.

Porque se pode sentir seguro

A encriptação por padrão do Vaultaire não é apenas um teclado de PIN mais bonito. O gesto é processado por uma verdadeira função de derivação de chaves e tem de desbloquear dados encriptados autenticados. A sua força continua a depender do gesto que escolher, por isso o Vaultaire combina a grelha maior com um fator de trabalho elevado do PBKDF2, em vez de apresentar os 256 bits de saída como 256 bits de entropia secreta humana.

O seu padrão e a chave local do cofre não são enviados ao Vaultaire. Com a cópia de segurança ativa, que é a predefinição, uma chave de cópia de segurança separada, derivada do padrão, encripta os registos do CloudKit, e um manifesto de recuperação encriptado permite que a frase de recuperação restaure as chaves do cofre e da cópia de segurança. O Vaultaire não detém nenhuma chave de fornecedor que desencripte esses registos, mas o dispositivo e as credenciais de recuperação continuam a ser partes críticas da segurança do sistema.

Desenha uma forma. Essa forma protege os seus ficheiros. A matemática faz o resto.

Perguntas frequentes

O que acontece se esquecer o padrão?

Quando cria um cofre, o Vaultaire gera uma frase de recuperação personalizada com nove palavras. O PBKDF2 deriva dessa frase uma chave de recuperação, que abre um envelope encriptado com a chave do cofre. Se perder o padrão e a frase de recuperação, o Vaultaire não tem nenhuma chave no servidor que possa restaurar o cofre.

Um padrão é realmente mais seguro do que uma palavra-passe?

Um padrão bem escolhido numa grelha 5×5 pode igualar ou superar a entropia de uma palavra-passe típica. A vantagem está na usabilidade: as pessoas escolhem palavras-passe fracas porque as fortes são difíceis de memorizar. Os padrões usam a memória muscular, por isso um padrão complexo torna-se natural sem memorização consciente.

Alguém pode fazer uma captura de ecrã ou gravação do meu padrão?

O Vaultaire aplica à grelha do padrão uma proteção contra capturas de ecrã, dentro do possível, e reage quando o iOS indica uma captura de ecrã ativa. O iOS não oferece um sinalizador público de ecrã seguro para conteúdo arbitrário das aplicações, por isso estes controlos reduzem capturas acidentais, mas não garantem que todos os métodos de captura fiquem bloqueados.

Que algoritmo de encriptação usa o Vaultaire?

O Vaultaire usa PBKDF2-HMAC-SHA512 com 600.000 iterações para derivar uma chave do cofre a partir do padrão e de um sal guardado no Keychain. Essa chave do cofre encripta o índice do cofre e envolve uma chave mestra aleatória de 256 bits. O AES-256-GCM, com a chave mestra, protege o conteúdo dos ficheiros, os cabeçalhos, os metadados e as miniaturas com encriptação autenticada.

O padrão fica guardado no meu dispositivo?

O Vaultaire guarda informação de recuperação, incluindo o padrão, numa base de dados de recuperação encriptada com AES-GCM, mantida no Keychain do iOS. O padrão não é enviado ao Vaultaire nem guardado em ficheiros de texto simples. Enquanto um cofre está aberto, existem bytes de chave no processo da aplicação; o bloqueio apaga o estado da chave ativa do Vaultaire.

O Vaultaire consegue aceder aos meus ficheiros encriptados?

O Vaultaire não opera um serviço que receba o seu padrão, a frase de recuperação, chaves de desencriptação ou conteúdo legível do cofre. As cópias de segurança encriptadas em iCloud ficam na sua base de dados CloudKit privada. Este limite do fornecedor não protege um cofre aberto contra uma versão da aplicação, um sistema operativo ou um dispositivo comprometidos.

Experimente a encriptação por padrão

Desenhe o primeiro padrão e descubra como é ter ficheiros verdadeiramente protegidos.

Descarregar o Vaultaire gratuitamente