Negação plausível em aplicações: o que é e porque é importante
A negação plausível na encriptação é uma propriedade do armazenamento que permite ao utilizador revelar um conjunto de dados sem deixar um artefacto estrutural que prove a existência de outro conjunto de dados. A afirmação deve indicar o seu modelo de ameaça: uma imagem estática de um armazenamento encriptado corretamente preenchido é diferente de um dispositivo ativo e comprometido, de metadados de um serviço na nuvem ou de cópias guardadas noutro lugar. Isto é mais do que uma funcionalidade de ocultação. Depende de a encriptação, a organização do armazenamento, o preenchimento e o desenho operacional funcionarem em conjunto.
Este guia explica como a negação plausível em aplicações funciona, qual a diferença entre negação criptográfica real e modos de distração cosméticos, cenários reais onde isto é relevante, e como avaliar afirmações de negação plausível.
O que significa negação plausível em encriptação
Na linguagem corrente, negação plausível significa poder negar algo de forma credível. Na encriptação de armazenamento, o objetivo útil é mais restrito: quem examina o armazenamento encriptado não deve conseguir distinguir o conteúdo oculto do espaço preenchido não utilizado, dentro do modelo de ameaça declarado. Nenhuma aplicação pode estender essa promessa a um cofre já aberto, a introduções gravadas, a cópias externas nem a qualquer forma de comprometimento do dispositivo.
O conceito surgiu na encriptação de discos. O TrueCrypt (e o seu sucessor VeraCrypt) introduziu o volume oculto: um volume encriptado dentro de outro volume encriptado. Uma palavra-passe revela o volume exterior com conteúdo inocente. Uma palavra-passe diferente revela o volume interior oculto com ficheiros sensíveis. Um perito forense não consegue determinar se o volume oculto existe, porque o espaço não utilizado no volume exterior é preenchido com dados aleatórios indistinguíveis de dados encriptados.
Para aplicações, a negação plausível significa que credenciais diferentes (palavras-passe, PINs, padrões) abrem conjuntos de dados diferentes e não existem metadados, registos, sinalizadores de configuração nem artefactos estruturais que revelem a existência de conjuntos de dados adicionais.
Negação real vs. modo de distração cosmético
Esta é a distinção fundamental que a maioria das aplicações resolve mal.
Modo de distração cosmético (não é negação real)
Muitas aplicações cofre oferecem uma funcionalidade de "distração" ou "PIN falso". Define-se um PIN secundário que abre um espaço separado com outras fotografias. O problema: estas aplicações tipicamente armazenam um sinalizador booleano, um registo de base de dados ou um ficheiro de configuração que diz que o modo de distração existe e está configurado.
Um perito forense familiarizado com a aplicação encontra esse sinalizador. Encontrar um modo de distração configurado prova que existem dados ocultos. A negação é cosmética, funciona contra curiosos superficiais mas falha sob exame forense.
Sinais de negação cosmética:
- A aplicação tem um botão "modo de distração" nas definições
- Um ficheiro de configuração armazena se o modo de distração está ativo
- Uma tabela de base de dados contém uma lista de IDs de cofres com indicadores de tipo (primário/distração)
- A estrutura de armazenamento da aplicação muda quando o modo de distração está ativo
- Desinstalar e reinstalar a aplicação revela comportamento diferente se o modo de distração estava configurado
Negação criptográfica real
A negação real é uma propriedade arquitetural, não um botão de funcionalidade. O armazenamento encriptado deve ser concebido de forma a que:
As credenciais alternativas divulgam apenas o seu próprio conjunto de dados. O sistema não mantém um sinalizador chamariz separado que identifique uma credencial como camuflagem. Credenciais inválidas podem falhar, mas essa falha não deve revelar se existe um conjunto de dados não divulgado.
Não existe nenhum registo de cofres. A aplicação não consegue calcular quantos cofres existem. Não há contagem, índice nem lista de IDs de cofres. Um perito forense que examine o armazenamento da aplicação encontra um conjunto indiferenciado de dados encriptados.
Nenhum sinalizador de configuração revela cofres ocultos. Não existe nenhum booleano, registo de base de dados nem ficheiro de preferências que indique se existem cofres adicionais.
O armazenamento está preenchido com dados de enchimento. A capacidade total utilizada não muda com o número de cofres ou ficheiros. Sem enchimento, um perito poderia estimar o número de cofres pelo volume total de dados encriptados em comparação com o conteúdo visível.
Os dados encriptados são indistinguíveis de ruído aleatório. Não existem limites de ficheiros, cabeçalhos nem marcadores estruturais que revelem onde os dados de um cofre terminam e os de outro começam.
| Propriedade | Distração cosmética | Negação real |
|---|---|---|
| Dados separados por credencial | Sim | Sim |
| Sem registo de cofres | Não (base de dados regista cofres) | Sim |
| Sem sinalizadores de configuração | Não (botão de distração é armazenado) | Sim |
| Dados de enchimento no armazenamento | Raramente | Sim |
| Oculta armazenamento alternativo numa imagem estática | Não | Sim, dentro do modelo de ameaça de armazenamento declarado |
| Arquitetura vs. funcionalidade | Botão de funcionalidade | Propriedade arquitetural |
Cenários reais onde isto é relevante
A negação plausível não é uma questão teórica. Resolve situações reais documentadas e recorrentes.
Passagens de fronteira
Numa passagem de fronteira, um examinador pode inspecionar um dispositivo e pedir credenciais. Se um desenho oferecer realmente negação ao nível do armazenamento, uma credencial pode revelar um conjunto de dados inócuo, enquanto uma imagem estática não tem nenhum marcador estrutural que distinga o conteúdo oculto do preenchimento. A organização atual do Vaultaire permite a um examinador com acesso ao contentor da aplicação estimar o número de cofres, por isso não dá essa garantia.
Violência doméstica e relações coercivas
Alguém numa relação abusiva pode precisar de armazenar provas (fotografias de lesões, mensagens ameaçadoras, documentos legais) num dispositivo que o agressor monitoriza. Se o agressor exigir acesso ao cofre, o utilizador pode abrir um cofre com conteúdo não sensível. Sem negação real, o sinalizador de "modo de distração" na configuração da aplicação revelaria a existência de conteúdo oculto.
Roubo do dispositivo
Um ladrão com conhecimentos técnicos pode tentar extrair dados de um telemóvel roubado. Um armazenamento negável corretamente preenchido procura ocultar quantos conjuntos de dados ocupam o espaço comum, embora a alocação total, o estado do dispositivo, as cópias de segurança e os vestígios operacionais continuem a fazer parte do modelo de ameaça. Atualmente, o Vaultaire encripta o conteúdo, mas o número de arenas de armazenamento continua a limitar quantos cofres contêm ficheiros.
Proteção legal e jornalística
Jornalistas a proteger fontes, advogados a proteger processos de clientes e ativistas em regimes autoritários enfrentam situações onde o conteúdo do dispositivo pode ser coagido. A negação plausível real fornece credibilidade para negar o acesso a dados.
O que o Vaultaire implementa hoje
O Vaultaire implementa acesso separado por padrão e uma interface normal sem lista de cofres visível. Estas propriedades ajudam durante a utilização normal da aplicação, mas não cumprem todos os requisitos da lista de verificação de negação real acima.
Os padrões configurados abrem cofres encriptados separados. O PBKDF2 deriva uma chave de cofre a partir do padrão e de um sal comum a todo o dispositivo. Uma chave configurada autentica o seu índice encriptado e desembrulha uma chave mestra aleatória. Um padrão não configurado mostra um estado vazio em vez de uma mensagem de "padrão incorreto".
O formato local ainda permite estimar o número de cofres. O Vaultaire guarda um ficheiro raiz vault_index_<fingerprint>.bin por cofre, num conjunto de 64 ou mais com ficheiros de cobertura. As páginas e as arenas de armazenamento de todos os cofres ficam numa pasta partilhada com nomes aleatórios. Os nomes não revelam o padrão, o nome do cofre nem a que cofre pertence cada ficheiro, mas quem tiver acesso ao contentor da aplicação consegue, ainda assim, estimar quantos cofres contêm ficheiros, porque o número de arenas o limita. A autenticação AES-GCM e o nome de ficheiro determinístico também oferecem um teste offline para chaves de cofre candidatas.
O armazenamento local não tem tamanho constante. O conteúdo e os metadados dos ficheiros são encriptados, e os blocos da cópia de segurança na nuvem usam preenchimento de tamanho e registos falsos. Os ficheiros raiz ficam num conjunto com ficheiros de cobertura, e as arenas de cobertura mantêm o número de arenas dentro de uma faixa, mas o número de arenas, o número de páginas do catálogo, as datas dos ficheiros e o armazenamento total continuam a expor a estrutura.
Existe estado de recuperação e de coação. O Vaultaire guarda informação de recuperação numa base de dados do Keychain encriptada com AES-GCM. O modo de coação (Pro) elimina os índices, as páginas e as arenas de armazenamento dos outros cofres neste dispositivo (remoção simples dos ficheiros, sem sobrescrita), apaga os dados de recuperação e isola esse dispositivo da sincronização. Não apaga as cópias de segurança na nuvem nem as cópias noutros dispositivos, e o tempo de conclusão depende do trabalho local executado.
Assim, o Vaultaire oferece compartimentação da interface e armazenamento encriptado, e não uma prova, no sentido da teoria da informação, de que não existe nenhum cofre adicional. O formato de armazenamento lançado na versão 1.0.17 oculta a que cofre pertence cada ficheiro, mas o número de arenas ainda dá a uma imagem offline do contentor da aplicação um limite para o número de cofres.
Como avaliar afirmações de negação plausível
Se uma aplicação afirma ter negação plausível, pergunte:
- A aplicação tem um botão "modo de distração"? Se sim, é cosmético. Um perito forense consegue encontrar o botão.
- A aplicação tem uma lista ou base de dados de cofres? Se sim, a existência de cofres pode ser provada.
- As tentativas podem ser verificadas offline? O texto cifrado autenticado pode validar uma chave candidata sem um hash de palavra-passe separado. Pergunte o que limita o custo de adivinhar e se a organização do armazenamento oferece alguma impressão digital de chave mais barata.
- O consumo de armazenamento muda com o número de cofres? Se sim, a análise de disco pode estimar o número de cofres.
- A aplicação consegue listar os cofres? Se a aplicação consegue mostrar uma lista dos seus cofres, essa lista existe no dispositivo e é descobrível.
Perguntas frequentes
A negação plausível em encriptação é legal?
Usar encriptação com negação plausível é legal na maioria dos países democráticos. Não existe lei que proíba ter no dispositivo dados encriptados cuja existência não pode ser provada. Em algumas jurisdições as autoridades podem exigir chaves de encriptação (p.ex. Reino Unido sob a RIPA ou Austrália sob o Assistance and Access Act). A questão legal sobre se se pode impor a partilha de chaves para dados cuja existência não pode ser provada permanece aberta e em evolução.
As ferramentas forenses conseguem detetar negação plausível?
Um examinador que obtenha o contentor da aplicação Vaultaire pode detetar armazenamento encriptado. Os ficheiros raiz vault_index_*.bin ficam num conjunto de 64 ou mais com ficheiros de cobertura, e as páginas e as arenas de armazenamento de todos os cofres ficam numa pasta partilhada com nomes aleatórios. Os nomes dos ficheiros não mostram a que cofre pertence cada ficheiro, mas o número de arenas limita quantos cofres contêm ficheiros, por isso um examinador consegue, ainda assim, estimar quantos cofres tem. Os ficheiros não revelam nomes de cofres nem conteúdos em texto simples. Por isso, o desenho atual oculta os cofres da navegação normal, e não de toda a inspeção forense do armazenamento.
A negação plausível funciona contra um agente estatal determinado?
O AES-256-GCM oferece uma fronteira forte de encriptação do conteúdo quando as chaves, os nonces e a implementação são sólidos. Isso não torna a organização atual do armazenamento do Vaultaire negável perante um examinador estatal: um examinador consegue, ainda assim, estimar o número de cofres locais, e um comprometimento em tempo real pode visar padrões, chaves, pré-visualizações ou exportações enquanto um cofre está aberto. A funcionalidade atual separa na interface os diferentes padrões abertos; não promete que um examinador determinado não consiga provar a existência de índices locais adicionais.
Qual a diferença entre negação plausível e cofres ocultos?
Cofres ocultos são cofres que não são visíveis na interface normal da aplicação. A negação criptográfica forte é a propriedade distinta de os dados ocultos não poderem ser distinguidos do armazenamento preenchido não utilizado. Atualmente, o Vaultaire oferece a primeira propriedade. O seu formato de armazenamento atual ainda permite a um examinador com acesso ao contentor da aplicação estimar o número de cofres, por isso não oferece a segunda.
A negação plausível pode ser usada com cópias de segurança na nuvem?
O Vaultaire grava manifestos de cópia de segurança encriptados e blocos de ficheiros encriptados e preenchidos na base de dados privada do CloudKit do utilizador. Nomes aleatórios para registos de dados, preenchimento em blocos de 10 MB e registos chamariz reduzem a exposição direta do conteúdo. O número de registos, o volume total, o momento e os padrões de atualização continuam a ser metadados visíveis do serviço, por isso a cópia de segurança na nuvem não cria um armazenamento de tamanho constante e negável no sentido da teoria da informação.
Conclusão
A negação forte ao nível do armazenamento procura impedir que um perito distinga dados ocultos de espaço livre preenchido num armazenamento encriptado estático. A maioria das aplicações que afirma ter esta funcionalidade oferece modos de distração cosméticos, com sinalizadores de configuração que se podem descobrir. Cumprir a definição mais exigente requer um modelo de ameaças preciso, nenhum registo de cofres que se possa contar, nenhum sinalizador de configuração revelador, preenchimento estável e registos encriptados que não mostrem que posições são reais.
O Vaultaire usa padrões configurados para separar cofres encriptados e mantém os nomes e o conteúdo dos cofres fora da interface bloqueada. A organização atual do armazenamento continua a permitir que quem inspecionar o contentor da aplicação estime o número de cofres. Trate isto como ocultação ao nível da interface, apoiada por encriptação autenticada, e não como prova de que não existe nenhum cofre adicional.