Fazer contêineres de compactação criptografada como compactação ZIP e 7-Zip ou criptografar primeiro?

7

A discussão de " comprime e criptografa, ou vice-versa " levou-me a refletir sobre a seguinte pergunta: muitos contêineres de compactação, como ZIP , 7z e rar , suportam a criptografia desses contêineres. Por exemplo, ao criar um arquivo 7z em 7-Zip , o programa permite inserir uma senha de criptografia.

Para esses tipos de arquivo, os arquivos são compactados e, em seguida, criptografados, conforme recomendado na pergunta acima, ou o inverso? Ou existe alguma maneira de compactar e criptografar os dados ao mesmo tempo?

Quando eu crio um arquivo 7z criptografado, posso ver os nomes dos arquivos dentro do arquivo criptografado, mas não consigo visualizar o conteúdo desses arquivos sem inserir a frase secreta. Como isso é possível? Como um aparte, existe alguma maneira de criptografar um 7z ou arquivo similar de tal forma que os nomes de arquivos e a estrutura de diretórios não sejam visíveis sem usar a frase secreta?

Eu preferiria respostas com fontes / referências definitivas, não apenas especulação . Todos nós podemos adivinhar isso, mas se alguém puder me mostrar documentação provando que funciona de uma maneira ou de outra, isso seria ideal.

    
por nhinkle 22.03.2011 / 05:01

3 respostas

10

Eu diria que o 7-Zip e outras ferramentas de arquivamento compactam antes de serem criptografadas, pelas razões declaradas na postagem do blog vinculada. Mas não consegui encontrar nenhuma documentação que confirme isso, nem posso verificar imediatamente se você está olhando para o 7- Código fonte do Zip .

No entanto, posso explicar por que os nomes de arquivos não são criptografados. Como você deve saber, o formato 7z contém um cabeçalho com as informações do arquivo e outros metadados. O 7-Zip não criptografará esse cabeçalho, a menos que você o habilite explicitamente. Você pode fazer isso marcando a caixa Criptografar nomes de arquivos na parte inferior do segmento Criptografia da tela de criação de arquivos no Windows, destacada em vermelho abaixo.

No Linux e em outros sistemas operacionais semelhantes a Unix (e presumivelmente na ferramenta de linha de comando 7-Zip no Windows), é possível ativar a criptografia de cabeçalho adicionando uma opção -mhe=on ao comando 7z .

    
por 22.03.2011 / 06:04
8

I would prefer answers with definitive sources/references, not just speculation.

Oh, você pode fazer muito melhor que isso. Você pode tentar por si mesmo e basear sua conclusão em lógica e fatos. Não há necessidade de especular aqui.

Todos esses programas são compactados primeiro e, em seguida, criptografados, e isso é um fato que você pode facilmente verificar sozinho.

Obtenha dados compactáveis, como um grande número de arquivos de texto .txt (digamos, arquivos de texto ASCII).

  1. Somente compacte esses arquivos .txt e observe o tamanho do arquivo resultante.

  2. Agora, comprima e criptografe os arquivos .txt usando o programado acima e observe o tamanho do arquivo.

  3. Agora criptografe primeiro os arquivos .txt e tente "compactar" o arquivo criptografado e observe o tamanho do arquivo.

O que essa experiência mostra? 1 & 2 terá basicamente o mesmo tamanho, enquanto 3 terão o mesmo tamanho que seus dados não compactados.

Porque uma das garantias oferecidas pelos algoritmos de criptografia é que os dados criptografados parecerão aleatórios (se isso não acontecer, seu algoritmo de criptografia está quebrado e isso também é um fato).

E você não pode compactar a aleatoriedade.

Isso é ainda melhor do que referências: é o "experimente e veja por si mesmo".

Fato 1: bons algoritmos de criptografia produzem dados aparentemente aleatórios

Fato 2: dados aleatórios não podem ser compactados

Portanto, é óbvio que, se você tiver um tamanho de arquivo menor que o tamanho total de todos os arquivos, a compactação ocorreu antes da criptografia.

Além disso, é totalmente óbvio que se você "compactar e criptografar" um conjunto de arquivos compactáveis e não obtiver um ganho de tamanho, seu software "compactar e criptografar" será interrompido além do reparo e poderá ser descartado com segurança como lixo escrito por pessoas sem noção; )

Essa é a coisa divertida com os fatos: você não pode argumentar com fatos e não pode estar errado ao declarar fatos.

P.S: Não tente isso com arquivos já compactados, como, digamos, um conjunto de arquivos .png, que não funcionariam

    
por 22.03.2011 / 09:47
1

For these file types, are the files compressed and then encrypted, as recommended in the aforementioned question, or the reverse? Or, is there some way that these can compress and encrypt the data at the same time?

Minha primeira pergunta é por que, mas isso é algo que você gostaria de acessar os documentos técnicos (código-fonte, patentes ou algo semelhante). A ideia por trás do software zip é que eles resolvem o problema e você não precisa pensar sobre isso.

When I create an encrypted 7z file, I can view the filenames inside of the encrypted archive, but cannot view the contents of those files without entering the passphrase. How is this possible?

O conteúdo dos arquivos é criptografado, mas o diretório (a listagem de nomes de arquivos, os locais relativos dos dados do arquivo criptografado e os atributos do arquivo) não é.

As an aside, is there any way to encrypt a 7z or similar archive such that the file names and directory structure within are not visible without using the passphrase?

Claro. Use qualquer outro software de criptografia de arquivos. Truecrypt, várias ferramentas do OpenSSL, etc.

    
por 22.03.2011 / 06:10