Какое хорошее решение для шифрования некоторых файлов в unix? [закрыто]

Я ищу утилиту для шифрования определенных каталогов в Linux. Я не ищу никаких сервисов полного шифрования диска, а просто зашифрую несколько каталогов для хранения файлов в облаке. Получив их, мне придется расшифровать их, прежде чем к ним можно будет получить доступ. Собираемся сделать это для пары каталогов (размером несколько сотен ГБ). Любые идеи? Желательно на основе CLI.

44
задан 19 March 2013 в 09:32
7 ответов

Я использую только GnuPG для этой задачи. Папки сначала упаковываются в архив TAR-GZ:

tar czf files.tar.gz /path/to/my/files

Если это еще не сделано, вам нужно сначала создать пару закрытых / открытых ключей GPG:

gpg --gen-key

Следуйте инструкциям. Значений по умолчанию должно хватить для первого теста. Появится что-то вроде этого:

gpg (GnuPG) 2.0.18; Copyright (C) 2011 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: File Encryption Key
Email address: admin@company.org
Comment: File Encryption Key
You selected this USER-ID:
    "File Encryption Key (File Encryption Key) "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o

Вам будет предложено ввести кодовую фразу для ключа. Настоятельно рекомендуется использовать более сильный. В любом случае он не нужен для шифрования файлов, поэтому не беспокойтесь о пакетном использовании позже.

Если все будет сделано, на вашем экране появится что-то вроде этого:

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key FE53C811 marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   *****/******** 2013-03-19
      Key fingerprint = **** **** **** **** **** **** **** **** **** ****
uid                  File Encryption Key (File Encryption Key) 
sub   *****/******** 2013-03-19

Теперь вам может понадобиться экспортировать файл открытого ключа для импорта на другие машины:

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

Ключ шифрования файла - это имя, которое я ввел во время процедуры генерации ключа.

Теперь я использую GnuPG на вновь созданном архив:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

Теперь у вас есть файл files.tar.gz.gpg , который зашифрован.

Вы можете расшифровать его с помощью следующей команды (вам будет предложено ввести кодовую фразу):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

Это вся магия.

Убедитесь, что вы сделали резервную копию вашего ключа! И никогда не забывайте свой пароль! Если резервное копирование не выполнено или не забыто, у вас есть гигабайты нежелательной информации!

Создайте резервную копию вашего закрытого ключа с помощью этой команды:

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

Преимущества

  • Ни одному из шифровальщиков не требуется знать конфиденциальную информацию о шифровании - шифрование выполняется с помощью открытый ключ. (Вы можете создать пару ключей на своей локальной рабочей станции и передавать только открытый ключ на свои серверы)
  • Никакие пароли не будут появляться в файлах сценариев или заданиях
  • Вы можете иметь столько шифровальщиков в любой системе, сколько захотите
  • Если вы храните секретный ключ и кодовую фразу в секрете, все в порядке и очень-очень сложно взломать
  • Вы можете расшифровать закрытым ключом на платформах Unix, Windows и Linux, используя конкретную реализацию PGP / GPG
  • Нет необходимости в особых привилегиях в системах шифрования и дешифрования, без монтирования, без контейнеров и специальных файловых систем
51
ответ дан 28 November 2019 в 19:41

Со своей стороны, я в основном использую два метода:

Первый метод: tar и openssl

Tar the directory

tar cvf backup.tar /path/to/folder

Вы можете удалить переключатель [v] из команды tar для отключения подробного режима.

Encrypt

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

Вы можете изменить aes-128-cbc на любой другой метод шифрования, поддерживаемый openssl (openssl --help).

Decrypt

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

Он запросит пароль.

Второй метод: зашифрованный zip

zip -r -0 -e backup.zip /path/to/folder

Запрашивает пароль.

  • -r означает рекурсивно (все дерево папок)
  • -0 означает только сохранение (не сжимается, быстрее)
  • - e означает шифрование архива

Одно из преимуществ этого: он лучше работает с системой на базе Windows.

28
ответ дан 28 November 2019 в 19:41

Вы можете использовать truecrypt очень простое и красивое решение. У него есть пакет только для консольного использования. Его очень просто изучить и использовать. http: //www.truecrypt. org

2
ответ дан 28 November 2019 в 19:41

Для этой цели я бы предложил шифрование FUSE (например, encfs ) - для небольших данных я бы использовал gpg.

Это fs, реализованное в пространстве пользователя, поэтому вы не нужны особые привилегии.

2
ответ дан 28 November 2019 в 19:41

Есть несколько файловых систем Linux, предназначенных для шифрования данных. Вы уже думали о LUX например?

1
ответ дан 28 November 2019 в 19:41

Если вы не хотите шифровать файлы с помощью общедоступной / private key и используйте вместо этого просто симметричное шифрование с парольной фразой, используйте следующую команду:

gpg --symmetric --cipher-algo aes256 files.tar.gz

Вам будет предложено ввести парольную фразу. После этого создается зашифрованный файл с именем files.tar.gz.gpg .

Для расшифровки используйте команду

gpg --decrypt files.tar.gz.gpg > files.tar.gz
22
ответ дан 28 November 2019 в 19:41

Очень простой способ зашифровать один файл:

gpg -c filename.ext

Дважды будет запрошена парольная фраза, и gpg создаст filename.ext.gpg. Загрузите зашифрованный файл в свой облачный сервис. Для восстановления файла используйте:

gpg filename.ext.gpg

Который воссоздает filename.ext.ext. Обратите внимание, что файлы unencrypted не являются безопасными, и соответствующие данные останутся на вашем носителе данных даже после удаления. В безопасности находится только контейнер gpg. EncFS является более практичной альтернативой облачному шифрованию на уровне файлов.

.
1
ответ дан 28 November 2019 в 19:41

Теги

Похожие вопросы