Есть ли инструмент для шифрования файла или каталога?


66

Какой самый популярный способ шифрования отдельных файлов или папок?


Вопрос немного неясен. Хотите вручную зашифровать и расшифровать файлы или на лету?
psusi

4
Вместо «самого популярного» может оказаться полезным подгонка решения под ваши требования (согласно вопросу psusi). Вы ищете комбинацию простого, надежного, собственного, безопасного, быстрого, открытого кода? Все или некоторые из них?
belacqua

7
Я хотел бы добавить замечание, что вопреки утверждениям некоторых ответов, TrueCrypt не считается свободным программным обеспечением или открытым исходным кодом в Debian / Ubuntu / Fedora / Red Hat / Arch Linux / OpenSuse / Gentoo / и т.д.
JanC

Ответы:


46

GnuPG (GPG) может использовать асимметричное и симметричное шифрование. Асимметричная криптография включает в себя два ключа: открытый ключ для шифрования и закрытый ключ для дешифрования. См. Djeikyb ответ на этой странице для использования асимметричного ключа.

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

Описание KDF GnuPG см. В этом посте об обмене Crypto Stack Exchange . Пример использования симметричного шифрования:

gpg --symmetric < unencrypted_file > encrypted_file

Дешифрирование:

gpg --decrypt < encrypted_file > decrypted_file

Обратите внимание, что gpgпо умолчанию кешируется symkey (документированное поведение). Чтобы избежать этого, используйте --no-symkey-cacheопцию, как описано в соответствующем ответе .

Страница руководства по gpg .


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

Для отдельных файлов opensslэто очень полезно, особенно при отправке файла по незащищенному каналу (например, по электронной почте). Это бесплатно (в деньгах и в свободе), в отличие от Truecrypt, который только бесплатно в деньгах.

ПРИМЕЧАНИЕ : введенный здесь пароль будет обработан за одну итерацию MD5 1 . Если вы выбрали пароль «123456», то у вас будет очень мало безопасности.

Шифрование:

openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file

Вам будет предложено ввести пароль, который вы должны ввести дважды.

Расшифровать:

openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file

Страница руководства для программы enc .

1 openssl enc использует функцию дайджеста, определенную -mdпараметром (по умолчанию md5), и вызывает функцию EVP_BytesToKey()с количеством итераций 1. Это можно найти в источнике openssl по адресу apps/enc.c.


Есть ли способ сделать это без пароля?
Ассаф Лави

@Assaf Lavie: OpenSSL не поддерживает ключевые файлы, если вы имели это в виду, хотя он может прочитать пароль из первой строки файла. Прочтите страницу руководства по openssl, раздел «Аргументы парольной фразы» .
Лекенштейн

Кроме того, вы можете использовать флаг «-a», который позволяет копировать зашифрованный текст, например: «openssl aes-256-cbc -a -salt -in unencrypted_file -out encrypted_file»
v2r

@ v2r Чтобы добавить для дальнейших читателей: -abase64-кодирует ввод (псевдоним -base64), чтобы расшифровать его, вы также должны добавить -aопцию.
Лекенстейн

1
@Lucio aes-256это псевдоним для aes-256-cbc, нет никакой разницы. CBC - это режим работы блочных шифров. Обратитесь к странице справочника enc(1)за списком поддерживаемых шифров.
Лекенштейн

30

Я использую Seahorse для этого. Это интерфейс Gnome для GnuPG и хорошо интегрируется с nautilus:Интеграция наутилус

Чтобы получить интеграцию с nautilus, установите пакет seahorse-nautilusиз Центра программного обеспечения: seahorse-nautilus Установить морской конек-наутилус


3
это работает, только если у вас есть ключи GPG, созданные в вашей системе ...
hhlp

3
@hhlp: ответ djeikyb объясняет, как это сделать.
idbrii

1
Я хочу зашифровать свой ключ GPG.
KI4JGT

19

TrueCrypt : прекращено, небезопасное бесплатное программное обеспечение шифрования диска, доступное из исходного кода.


2
+1, encfs - с или без GUI - очень полезен и достаточно для большинства целей.
loevborg

3
Cryptkeeper потрясающий - простой, мощный и простой в настройке с Dropbox ( askubuntu.com/questions/19613/… ).
Scaine

TrueCrypt не поставляется в Ubuntu (или в любых других основных дистрибутивах) для целей лицензирования.
MagicFab

2
TrueCrypt не является открытым исходным кодом. en.wikipedia.org/wiki/…
юрик

4
«ПРЕДУПРЕЖДЕНИЕ. Использование TrueCrypt небезопасно» - TrueCrypt
user457015

16

Cli-метод - это GnuPG и, возможно, tar. Это краткое руководство для справки, вы действительно должны прочитать документацию.

Первый запуск gpg --gen-key. Следуйте инструкциям, чтобы сгенерировать вашу пару открытых / закрытых ключей. Теперь вы можете шифровать файлы: gpg -e foo.txt. Это создаст файл с именем foo.txt.gpg. GnuPG не удаляет исходный незашифрованный файл, это зависит от вас, хотите ли вы, чтобы он висел рядом. Чтобы расшифровать foo.txt.gpg, запустите gpg foo.txt.gpg. Расшифровка предложит вам перед перезаписью существующих файлов.

Если вам нужно зашифровать каталог, сначала смонтируйте его:

tar -cf foo.tar foo/
gpg -e foo.tar

Вы можете переименовать зашифрованный файл как хотите. При расшифровке исходное имя файла сохраняется.


2
Преимущества этого метода: во-первых, он не требует установки дополнительных пакетов; Во-вторых, он не требует root-доступа. Я бы добавил сжатие к команде tar (xz или gz).
Пантера

12

Также есть eCryptfs , который Ubuntu использует для шифрования домашних каталогов.

Вы можете выбрать шифрование домашнего каталога при установке или настроить отдельный каталог $HOME/Privateпо умолчанию с помощью утилиты ecryptfs-setup-private . Эту папку можно настроить для автоматического монтирования при входе в систему и размонтирования при выходе из системы. Каждый отдельный файл и папка внутри $HOME/Private, рекурсивно, будут зашифрованы.


К сожалению, eCryptfs ОЧЕНЬ медленный. Также есть несколько ошибок в последней версии
ruX

Наоборот, если что-нибудь eCryptfs быстрее, чем gpg; по умолчанию gpg пытается сжать перед шифрованием. И eCryptfs теперь также используется большинством Android
Xen2050

2

Вы также можете использовать «Академическую подпись» для использования криптографии на эллиптических кривых с графическим интерфейсом wxWidgets. Это открытый исходный код, но не в репозиториях. В основном это ECC асимметричное шифрование, подписи и временные метки. Но инструмент также имеет пункт меню для вызова Gnupg (RSA) и прямой доступ к симметричному шифрованию / дешифрованию файлов, предлагающих AES и другие алгоритмы. Его домашняя страница находится здесь: https://www.academic-signature.org

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


1

Я взял некоторые другие предложения и создал простую оболочку сценария оболочки (для ленивых)

https://github.com/orionM/ssl-crypt-tools

наслаждаться


1
хм, bash скрипт использует openssl aes-256-cbc ...Знаете, вместо того, чтобы использовать, if [ $? -ne 0 ] ; then... fiвы можете просто использовать ||? И есть некоторые люди, которые думают, что OpenSSL "* имел несколько серьезных недостатков безопасности в прошлом году [ Heartbleed ], в то время как документы Snowden показывают, что GPG является одной из немногих программ, которые могут ввести NSA в заблуждение при правильном использовании. Код OpenSSL также полная выгребная яма и ужасный тестовый охват. (Раскрытие: [он] работает над проектом "OpenSSL отстой; давайте исправим".) - jbarlow * "
Xen2050
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.