Como rapidamente criptografar / descriptografar arquivos em pasta com python / bash no Ubuntu e Mac?

0

Eu gostaria de usar um disco USB formatado para MSDOS para poder transferir dados com segurança entre eles. Portanto, eu quero descriptografar e criptografar facilmente todos os arquivos em uma pasta (e subpastas), possivelmente com um script python ou um comando bash.

  • Eu não quero criptografar o pendrive inteiro, pois isso provavelmente não é possível quando formatado com o MSDOS.
  • Não consigo usar um formato Linux / MacOS, pois quero poder usar o pendrive com os dois.
  • Eu quero ter um comando de linha única para criptografar todos os arquivos na pasta e na subpasta, fornecendo uma senha!
  • Eu quero ter um comando de linha única para descriptografar todos esses arquivos, fornecendo a senha correta.
  • Deve ser feito rapidamente (por cerca de 1000 arquivos)

Existe alguma maneira de fazer isso facilmente? Existe uma ferramenta python? Ou um comando do Linux?

    
por Alex 29.07.2018 / 15:00

2 respostas

1

Aqui estão algumas soluções possíveis.

A julgar pela sua pergunta, presumo que você não seja muito versado em criptografia e esteja apenas tentando proteger seus dados de olhares indiscretos enquanto está em trânsito (pendrive) entre as duas máquinas, e que você não está lidando com isso. com dados extremamente sensíveis (como quando a vida de algumas pessoas depende do seu sigilo).

Você pode empacotar seus dados em um tarball e criptografá-los com o GnuPG.

$ tar -cvf archive.tar directory_with_data
$ gpg --symmetric archive.tar

Você será solicitado a inserir uma frase secreta e o arquivo criptografado archive.tar.gpg será gerado. No outro extremo, faça

$ gpg --decrypt archive.tar.gpg > archive.tar
$ tar -xvf archive.tar

para descriptografar e descompactar.

Esta é uma solução muito rápida e suja que não escala muito bem. Uma solução mais robusta é usar o EncFS.

Crie ou monte um diretório ecrypted no pendrive.

 $ encfs path_USB/.encrypted_directory path_machine/transparent_directory

Agora, quando você colocar seus arquivos em transparent_directory , eles serão criptografados on-the-fly no .encrypted_directory . Para desmontar o transparent_directory

 $ fusermount -u path_to_transparent_directory

Os caminhos nos comandos acima devem ser caminhos completos (nunca caminhos relativos).

A abordagem EncFS é mais conveniente e melhor que a anterior. No entanto, observe que alguém com acesso aos dados criptografados saberia quantos arquivos estão no diretório e, dependendo de seus recursos, também pode deduzir o tamanho dos arquivos, bem como o tamanho dos nomes dos arquivos. Os ataques de confirmação também podem ser executados nos próprios nomes de arquivo.

    
por 30.07.2018 / 11:27
0

Eu realmente encontrei algo que faz o que eu quero. E, em vez de escrever bobagens ou nada, quero compartilhá-lo para ajudar alguém.

A ferramenta está no github: link

É um único script (!) python que pode ser usado para criptografar, por exemplo, todos os arquivos dentro de um diretório (recursivamente). O comando seria

python lock_files.py -r --lock myfiles/

e para descriptografar os arquivos que você usa

python lock_files.py -r --unlock myfiles/

Nesse caso simples, você é solicitado a fornecer a senha na linha de comando. Eu armazeno a pasta com os arquivos E o repo do github no pendrive USB para que eu possa usá-lo em qualquer computador que eu usar (dado que python está instalado e talvez alguns pacotes necessários). Também é razoavelmente rápido ...

    
por 30.07.2018 / 13:04