Gpg шифрование файлов linux
Библиотека сайта rus-linux.net
big.txt.gpg . Исходный файл также останется, так что вам потребуется его удалить в случае, если вы намереваетесь сохранить только зашифрованную копию. Если сравнивать размеры исходного и зашифрованный файлов, то вы увидите, что зашифрованный файл будет по размеру меньше. Это происходит потому, что команда gpg сжимает файл во время шифрования. Если файл уже сжат (например, файл .zip или файл .tgz), то зашифрованный файл может, на самом деле, оказаться несколько большим.
Чтобы расшифровать файл, используйте команду:
По умолчанию файлы, зашифрованные с помощью gpg, будут использовать алгоритм шифрования cast5 , который одобрен национальным криптологическим агентством правительства Канады. Однако в утилите gpg также поддерживает ряд других встроенных алгоритмов шифрования, в том числе Triple DES (3DES), который используется в индустрии электронных платежей; Advanced Encryption Standard (AES) — технология шифрования, одобренная Американским национальным институтом стандартов и технологии (NIST); и Camellia — шифр совместно разработанный фирмами Mitsubishi и NTT, который одобрен Европейским союзом и Японией.
Чтобы увидеть список доступных алгоритмов, наберите:
Список доступных алгоритмов приведен в выданных данных в разделе «Supported algorithms» («Поддерживаемые алгоритмы») ниже тега «Cipher» («Шифр»). Чтобы использовать другой алгоритм, добавьте параметр -crypto-algo , за которым укажите алгоритм, который вы хотите использовать, например, -crypto-algo=3DES
Тогда полная команда будет иметь следующий вид:
gpg -c -crypto-algo=3DES big.txt
bcrypt и ccrypt
Пакет gpg — это не единственный инструмент шифрования, доступный в системе Linux. В оригинальных системах Unix, была команда под названием crypt, однако уровень безопасности, который она обеспечивала, был очень низким. По аналогии с ней были созданы некоторые другие команды, которыми ее можно заменить, в том числе bcrypt и ccryrpt.
В команде bcrypt используется алгоритм blowfish, в то время как команда ccrypt базируется на шифре Rijndael, который является алгоритмом, используемый для AES. Многие криптоаналитики не рекомендуют далее использовать алгоритм blowfish, т. к. опубликованы некоторые теоретические описания атак, которые его ослабляют, однако для повседневного шифрования, для которого не требуется обеспечить шифрование уровня государственной безопасности (NSA, MI5, FSA), он все еще полезен.
Для шифрования с использованием команды bcrypt:
В отличие от команды gpg, команда bcrypt заменит оригинальный файл зашифрованным файлом и добавит в конце имени файла .bfe. Точно также, как и в случае с командой gpg, полученный файл также сжимается и поэтому для несжатых файлов размер файла должен быть значительно меньше. Сжатие может быть отключено с помощью параметра -c .
Для расшифровки файла используйте:
Файл .bfe будет заменен исходным незашифрованным файлом.
Есть два возможных способа вызова команды ccrypt:
- непосредственный вызов команды ccrypt с параметрами -e или -d
- использовать для шифрования и дешифровки команды ccencrypt и ccdecrypt , соответственно.
Чтобы зашифровать файл введите:
Исходный файл будет заменен файлом big.txt.cpt . В отличие от gpg и bcrypt, выходной файл сжат не будет. Если сжатие необходимо, то можно использовать такие инструменты, как gzip. Предлагаемые расширения для сжатых и зашифрованных файлов — .gz.cpt или .gzc.
Для расшифровки файла используйте:
7-Zip
В архиваторе 7-Zip также есть шифрование AES. Чтобы создать зашифрованный архив используйте в команде 7z параметр -p :
Вам будет предложено ввести пароль (дважды). Затем файл будет сжат и зашифрован. Исходный файл останется, точно также, как и с командой gpg, поэтому вам нужно удалить его в случае, если вы хотите сохранить только зашифрованную копию. Преимуществом использования пакета 7-Zip является то, что в одном архиве можно сохранять и зашифровывать несколько файлов и папок.
Заключение
С помощью этих методов сжатия можно зашифровать конфиденциальные данные с достаточной стойкостью с тем, чтобы даже агентства, спонсируемые правительствами, не смогли получить доступ к файлам. Как и во всех случаях использования паролей (используемых в сети или вне сети), применение более длинных паролей обеспечивает лучшую безопасность, чем при использовании коротких паролей.
Шифрование файлов и папок в Linux
В современном мире каждый аспект нашей личной жизни записывается на компьютеры. Один из способов защиты наиболее важной информации — шифрование файлов и каталогов. Во время шифрования содержимое файлов перемешивается с избыточными данными в соответствии с установленным алгоритмом, таким образом, что расшифровать его можно только имея специальный пароль или ключ.
В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов — GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.
Утилита GPG
Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:
$ gpg опции файл параметры
Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:
- -h — вывести справку по утилите;
- -s, —sign — создать цифровую подпись, эта опция используется вместе с другими опциями для шифрования;
- —clearsign — подписать незашифрованный текст;
- -e, —encrypt — зашифровать данные, с помощью ключа;
- -с, —symmetric — зашифровать данные, с помощью пароля;
- -d, —decrypt — расшифровать данные, зашифрованные с помощью ключа или пароля;
- —verify — проверить подпись;
- -k, —list-keys — вывести доступные ключи;
- —list-sigs — вывести доступные подписи;
- —fingerprint — вывести все ключи вместе с их отпечатками;
- —delete-key — удалить ключ;
- —delete-secret-key — удалить секретный ключ;
- —export — экспортировать все ключи;
- —export-secret-keys — экспортировать все секретные ключи;
- —import — импортировать ключи;
- —send-keys — отправить ключи на сервер, должен быть указан сервер ключей;
- —recv-keys — получить ключи от сервера ключей;
- —keyserver — указать сервер ключей;
- —fetch-keys — скачать ключи;
- —gen-key — создать ключ;
- —sign-key — подписать ключ;
- —passwd — изменить пароль для ключа.
А теперь рассмотрим по порядку, что нам нужно для того, чтобы выполнять шифрование файлов Linux.
Шифрование файлов с помощью пароля
Симметричный шифр — самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:
Утилита создаст файл с расширением gpg. Для расшифровки используйте:
Шифрование с использованием ключей
Асимметричный шифр более надежный так как для шифрования используется два ключа — публичный, собственно для шифрования, которым может воспользоваться любой, и приватный — для расшифровки. Причем файл можно расшифровать только с помощью приватного ключа, даже если вы зашифровали файл, без приватного ключа вы его не расшифруете.
Сначала необходимо настроить gpg, создать пару ключей, для этого наберите:
Программа задаст ряд вопросов для настройки ключа:
Выберите требуемый тип ключа.
Выберите нужный размер для ключа, обычно 2048 будет достаточно.
Выберите строк действия для ключа.
Проверьте все ли правильно.
Введите имя нового ключа, фактически, это имя пользователя, но вы будете использовать его чтобы зашифровать файл linux, поэтому выбирайте обдумано.
Описание ключа, если нужно.
Финальная проверка, затем нажмите O для завершения.
Процесс генерации может занять некоторое время. Когда все будет готово в каталоге ~./gnupg появятся два файла. В файле pubring.gpg публичный ключ, а в secring.gpg приватный.
Также вы можете посмотреть список доступных ключей:
Если вы собираетесь шифровать файлы на другом компьютере необходимо экспортировать публичный ключ, для этого есть опция -а:
gpg -a -o gpgkey.asc —export имя_ключа
Затем передаем файл на целевое устройство и импортируем ключ:
После импорта ключа уровень доверия к нему по умолчанию будет неизвестным поэтому при каждом шифровании gpg будет спрашивать действительно ли вы доверяете этому ключу. Чтобы этого избежать нужно указать уровень доверия. Для этого воспользуйтесь редактором ключей:
Для выбора уровня доверия введите команду trust:
Для своих ключей можно использовать пункт абсолютно доверяю с номером 5, вы же знаете что это именно ваш ключ.
Теперь можно переходить к шифрованию. Для того чтобы зашифровать файл linux используйте команду:
gpg -e -r ид_пользователя имя_файла
Ид пользователя нужно указывать тот что вы использовали при создании ключа. Для расшифровки используйте:
Для каталогов действия аналогичны только сначала нужно создать архив с помощью tar:
tar -cf — каталог | gpg -e -r ид_пользователя
gpg -d каталог.gpg | tar -xvf
Подписи и шифрование
Для проверки подлинности файлов может использоваться не шифрование, а подпись. Тогда на основе файла и ключа создается отпечаток, который записывается в файл. Если файл будет изменен, то отпечаток уже не совпадет.
Вы можете подписать файл с помощью опции —sign:
Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:
Тогда в каталоге, рядом с файлом появиться файл .sig с подписью. Дальше, чтобы проверить достаточно использовать команду verify:
gpg —verify textfile.sig textfile
Если файл был изменен, то вы увидите, что подпись не сходиться.
Выводы
В этой статье мы рассмотрели как выполняется шифрование файла linux, а также настройка утилиты gpg. Шифрование gpg linux используется людьми для хранения важных данных, а механизм подписей популярен среди разработчиков дистрибутивов. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение отличное видео о том, как работает асимметричный алгоритм шифрования:
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.