Qual cifra de criptografia é usada ao usar zip -e?
Estou procurando uma maneira de plataforma cruzada para criptografar credenciais que preciso enviar a um cliente.
Eu sei que arquivos zip criptografados vazam metadados e podem ser adulterados, mas quão forte é a cifra de criptografia?
zip -ejr "/path/to/folder.zip" "/path/to/folder"
Respostas
O formato zip pode usar um método de criptografia fraco e antigo e criptografia AES (chaves de 128, 192 ou 256 bits).
Você pode ler a especificação de criptografia AES para obter os detalhes.
O cliente zip da linha de comando quase certamente usa a criptografia zip tradicional, que você não deseja usar.
Eu gosto da solução, quando viso usuários não técnicos de envio de arquivos criptografados AES, uma vez que:
- Geralmente, os usuários já usaram arquivos zip no passado e estão familiarizados com eles. Você não está "insistindo em usar um formato estranho".
- Você pode forçar a criptografia segura (AES) ao seu lado (isso pode ser um problema se eles também precisarem enviar de volta um zip criptografado).
- Se eles usarem um cliente sem suporte para criptografia AES, a mensagem de erro dirá claramente "Você precisa de uma versão mais recente para abrir arquivos zip no formato XY". Isso indica ao usuário um problema com o software, não ao remetente.
Como forma de criar um arquivo zip usando criptografia AES, você pode usar o 7-zip ( você deseja pelo menos a versão 19.00 ), a partir da linha de comando que seria:
7z a -p -mem = aes256 -tzip "/path/to/folder.zip" "/ caminho / para / pasta"
Você pode criar um script de shell simples para isso:
#!/bin/sh
7z a -p -mem=aes256 -tzip "$@"
Limitações:
Obviamente, você estará vazando metadados, como nomes de arquivos, tamanhos de arquivos (antes e depois da compactação), carimbos de data / hora ... Se sua única preocupação for compartilhar algumas credenciais, eu recomendaria não compactar o conteúdo (método de armazenamento), para evitar BEAST - como vazamentos de informações, mas esses problemas não parecem muito problemáticos. No entanto, você ainda precisa compartilhar com o cliente a senha zip com segurança. E eu não ficaria surpreso se eles salvassem o arquivo extraído com as credenciais de texto simples em sua área de trabalho.
Você escreveu: "Estou procurando uma maneira de plataforma cruzada para criptografar credenciais que preciso enviar a um cliente."
Você não define o que entende por "plataforma cruzada". Sua melhor solução é * não usar o zip .
Se "plataforma cruzada" significa "Windows e Mac", sua melhor solução é usar a criptografia do Microsoft Word ou do Adobe Acrobat. Ambos os sistemas usam AES em sua encarnação mais recente.
Se "plataforma cruzada" significa "Windows, Mac e Linux", use o Acrobat.
Em qualquer caso, você precisará trocar uma chave de criptografia de alta entropia para o documento com seu cliente. Ou seja, você precisará trocar uma senha para trocar sua chave de criptografia. Claro, se você pode fazer isso, você pode simplesmente enviar as credenciais usando esse mecanismo fora de banda, não?
Portanto, o que você realmente deseja fazer é usar criptografia de chave pública. Ou seja, provavelmente será melhor que seu cliente crie um certificado S / MIME e envie uma mensagem criptografada de cliente usando Apple Mail ou Microsoft Outlook ou Thunderbird ou qualquer outra abordagem de plataforma cruzada para usar S / MIME. Você encontrará detalhes em NIST SP800-177, "Email confiável."
Outras pessoas irão sugerir que você use PGP. Não vou, porque é muito difícil de usar. Mas se você quiser usar PGP, experimente!
Se tudo isso parecer muito trabalhoso, você pode usar baixa tecnologia e colocar as credenciais em um envelope, assinar seu nome no verso do envelope, colocá-lo em um segundo envelope e enviá-lo ao seu cliente pelo correio .