Я хотел бы использовать USB-диск в формате MSDOS для безопасной передачи данных между ними. Поэтому я хочу легко расшифровать и зашифровать все файлы в папке (и подпапках), возможно, с помощью скрипта Python или команды bash.

  • Я не хочу зашифровывать всю флешку, так как это, вероятно, невозможно при форматировании в MSDOS.
  • Я не могу использовать формат Linux/MacOS, так как хочу иметь возможность использовать флешку с ними обоими.
  • Я хочу использовать однострочную команду для шифрования всех файлов в папке и подпапке, указав пароль!
  • Я хочу использовать однострочную команду для расшифровки всех этих файлов, указав правильный пароль.
  • Это должно быть сделано быстро (около 1000 файлов)

Есть ли способ сделать это легко? Есть ли инструмент Python? Или команда Linux?

2 ответа2

1

Вот несколько возможных решений.

Судя по вашему вопросу, я предполагаю, что вы не очень хорошо разбираетесь в шифровании и пытаетесь защитить свои данные от посторонних глаз, пока они находятся в пути (флешка) между двумя компьютерами, и что вы не имеете дело с чрезвычайно чувствительными данные (например, когда жизнь некоторых людей зависит от их секретности).

Вы можете упаковать свои данные в архив и зашифровать их с помощью GnuPG.

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

Вам будет предложено ввести ключевую фразу, и будет создан зашифрованный файл archive.tar.gpg. На другом конце делай

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

расшифровать и распаковать.

Это очень быстрое и грязное решение, которое не очень хорошо масштабируется. Более надежным решением является использование EncFS.

Создайте или смонтируйте зашифрованный каталог на USB-накопителе.

 $ encfs path_USB/.encrypted_directory path_machine/transparent_directory

Теперь, когда вы помещаете свои файлы в transparent_directory они будут на лету зашифрованы в .encrypted_directory . Размонтировать transparent_directory

 $ fusermount -u path_to_transparent_directory

Пути в приведенных выше командах должны быть полными путями (а не относительными путями).

Подход EncFS более удобен и масштабируется лучше, чем предыдущий. Однако обратите внимание, что кто-то, имеющий доступ к зашифрованным данным, будет знать, сколько файлов находится в каталоге, и, в зависимости от его / его ресурсов, может также определить размер файлов и длину имен файлов. Атаки с подтверждением могут также выполняться на самих именах файлов.

0

Я действительно наткнулся на то, что делает то, что я хочу. И вместо того, чтобы писать ерунду или ничего, я хочу поделиться ею, чтобы она могла помочь кому-то еще.

Инструмент находится в github: https://github.com/jlinoff/lock_files

Это один (!) скрипт Python, который может использоваться для шифрования, например, всех файлов в каталоге (рекурсивно). Команда будет

python lock_files.py -r --lock myfiles/

и расшифровать файлы, которые вы используете

python lock_files.py -r --unlock myfiles/

В этом простом случае вас попросят ввести пароль в командной строке. Я храню папку с файлами и репозиторием github на USB-накопителе, чтобы я мог использовать его на любом компьютере, который я использую (данный python установлен и, возможно, некоторые необходимые пакеты). Это также достаточно быстро ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .