Shufflecake, uma ferramenta para criar volumes ocultos

bolo aleatório

Shufflecake é uma ferramenta para Linux que permite a criação de múltiplos volumes ocultos em um dispositivo de armazenamento de forma que é muito difícil, mesmo sob inspeção forense, provar a existência de tais volumes.

A empresa de auditoria de segurança Kudelski Security revelou conjunto de ferramentas Shufflecake, que permite criar sistemas de arquivos ocultos que são distribuídos no espaço livre disponível nas partições existentes e são indistinguíveis de dados residuais aleatórios. As seções são criadas de forma que, sem conhecer a chave de acesso, é problemático provar sua existência mesmo ao realizar perícias.

O projeto está posicionado como uma solução mais avançada do que Truecrypt e Veracrypt para ocultar dados confidenciais, que possui suporte nativo para a plataforma Linux e permite colocar até 15 partições ocultas no dispositivo, aninhadas umas nas outras para ofuscar a análise de sua existência.

As partições ocultas criadas, a critério do usuário, pode ser formatado para caber em qualquer sistema de arquivos, por exemplo, ext4, xfs ou btrfs. Cada partição é tratada como um dispositivo de bloqueio virtual separado com sua própria chave de desbloqueio.

Para ofuscar os vestígios, é proposto o modelo de comportamento de «negação plausível», cuja essência é que os dados valiosos estão ocultos como camadas adicionais em seções criptografadas com dados menos valiosos, formando uma espécie de hierarquia oculta de seções. Em caso de pressão, o proprietário do dispositivo pode revelar a chave para a seção criptografada, mas outras seções (até 15 níveis aninhados) podem ser ocultadas nesta seção e é problemático determinar sua presença e provar sua existência.

Shufflecake e o módulo do kernel só foram testados em Debian e Ubuntu com kernels 5.13 e 5.15 (Ubuntu 22.04 é suportado). Deve-se notar que o projeto ainda deve ser considerado como um protótipo funcional, que não deve ser usado para armazenar dados importantes.

No futuro, planejamos fazer otimizações adicionais para desempenho, confiabilidade e segurança, bem como fornecer a capacidade de inicializar a partir de partições Shufflecake.

Sobre Shufflecake

a ocultação é obtido formando cada partição como um conjunto de segmentos criptografados colocados em posições aleatórias no dispositivo de armazenamento. Cada fatia é criada dinamicamente quando a partição precisa de espaço de armazenamento adicional. Para complicar a análise, intercalam-se cortes de diferentes seções.

As seções do Shufflecake não estão vinculadas a regiões contíguas e as porções de todas as seções são misturadas. As informações sobre as porções usadas e gratuitas são armazenadas no mapa de localização anexado a cada seção, que é referenciado pelo cabeçalho criptografado. Os cartões e o cabeçalho são criptografados e, sem saber a chave de acesso, são indistinguíveis dos dados aleatórios.

O cabeçalho é dividido em espaços, cada um desses define sua própria seção e seus setores associados. Os slots no cabeçalho são empilhados e vinculados recursivamente: o slot atual contém a chave para descriptografar os parâmetros da seção anterior (menos oculta) na hierarquia, permitindo que uma única senha seja usada para descriptografar todas as seções menos ocultas associadas ao cabeçalho . selecionado. Cada seção menos oculta trata partes das seções aninhadas como livres.

Por padrão, todas as seções aninhadas do Shufflecake têm o mesmo tamanho visível do que a seção de nível superior. Por exemplo, se três partições forem usadas em um dispositivo de 1 GB, cada partição ficará visível para o sistema como uma partição de 1 GB e o espaço total em disco disponível será compartilhado entre todas as partições, se a quantidade total de dados salvos exceder o tamanho real do dispositivo, ele começará a gerar um erro de E/S.

As seções aninhadas não abertas não participam da alocação de espaço, ou seja, tentar preencher uma seção de nível superior substituirá os dados nas seções aninhadas, mas não revelará sua presença por meio da análise do tamanho dos dados que pode ser colocado na seção antes que um erro seja lançado (seções superiores são consideradas como contendo dados imutáveis) dados por distração e nunca separadamente não são usados, e o trabalho regular é sempre feito com a seção aninhada mais recente, o próprio esquema implica que o principal é manter o segredo da existência dos dados, mesmo ao custo de perdê-los).

A implementação de Shufflecake tem um desempenho bastante alto, mas devido à presença de custos indiretos, tem desempenho duas vezes menor em comparação com a criptografia de disco baseada no subsistema LUKS. O uso do Shufflecake também incorre em custos adicionais de RAM e espaço para armazenar dados de serviço em disco. Os custos de memória são estimados em 60 MB por partição e o espaço em disco é estimado em 1% do tamanho total. Para efeito de comparação, a técnica WORAM de finalidade semelhante leva a uma desaceleração de 5 a 200 vezes com perda de 75% do espaço em disco utilizável.

O código dos utilitários (shufflecake-userland) e do módulo do kernel do Linux (dm-sflc) é escrito em C e lançado sob a licença GPLv3, o que impossibilita a inclusão do módulo do kernel publicado no kernel principal do Linux. sob a licença GPLv2 sob a qual o kernel é distribuído.

Se você estiver interessado em saber mais sobre isso, você pode consultar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.