Как шифровать файлы в Linux с помощью GPG, Ccrypt, Bcrypt и 7-Zip
В системе Linux есть несколько различных утилит командной строки, которые могут зашифровывать и расшифровывать файлы с использованием пароля, задаваемого пользователем. Такие средства шифрования можно применять во многих случаях, в том числе для шифрования файлов, подготавливаемых для безопасной отправки через интернет, с тем, чтобы не беспокоиться о том, что кто-то третий получит доступ к файлам в случае, если передача данных будет перехвачена.
Прежде чем рассматривать отдельные инструментальные средства, вам нужно убедиться в том, что установлены все соответствующие пакеты. В Ubuntu, вы для установки программ должны использовать следующую команду:
Пакет GNU Privacy Guard (GPG) является инструментальным средством, предназначенным в первую очередь для шифрования и подписи данных с использованием криптографии с открытым ключом. Тем не менее в нем также есть также возможность выполнять шифрования данных просто с использованием пароля, введенного пользователем, и в нем поддерживаются различные криптографические алгоритмы.
Чтобы с помощью gpg зашифровать файл, в данном случае файл big.txt, введите следующую команду:
Вам будет предложено ввести пароль (дважды). В процессе шифрования создается новый файл, который называется 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
Тогда полная команда будет иметь следующий вид:
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 также есть шифрование AES. Чтобы создать зашифрованный архив используйте в команде 7z параметр -p :
Вам будет предложено ввести пароль (дважды). Затем файл будет сжат и зашифрован. Исходный файл останется, точно также, как и с командой gpg, поэтому вам нужно удалить его в случае, если вы хотите сохранить только зашифрованную копию. Преимуществом использования пакета 7-Zip является то, что в одном архиве можно сохранять и зашифровывать несколько файлов и папок.
Заключение
С помощью этих методов сжатия можно зашифровать конфиденциальные данные с достаточной стойкостью с тем, чтобы даже агентства, спонсируемые правительствами, не смогли получить доступ к файлам. Как и во всех случаях использования паролей (используемых в сети или вне сети), применение более длинных паролей обеспечивает лучшую безопасность, чем при использовании коротких паролей.
Источник
Как зашифровать файлы в Linux
В некоторых случаях хочется быть уверенным в том, что важные данные никто больше не прочитает, даже самые подготовленные специалисты или спецслужбы. Для этого достаточно зашифровать файлы с помощью утилиты GnuPG в Linux. Для более высокой надежности лучше всего использовать AES-256.
Если вы хотите более подробно ознакомиться с утилитой GnuPG, то здесь отличный мануал от разработчиков. А в этой статье мы рассмотрим простое симметричное шифрование файлов. В этом случае для того, чтобы зашифровать или расшифровать файл нужно вводить пароль.
Проверим установлена ли GnuGP
Почти во всех популярных дистрибутивах Linux утилита GnuPG установлена по-умолчанию, поэтому достаточно открыть терминал и ввести нужные команды. Для того, чтобы проверить установлена ли утилита на ваш дистрибутив, откройте терминал и введите:
Если утилита установлена, то вы получите вот такой вывод, в котором будет указана версия и поддерживаемые алгоритмы шифрования.
Шифрование
Зашифруем файл
Подготовим среду для того, чтобы было безопасно «поковырять» утилиту и не задеть важные файлы:
Если вы все сделали правильно, то у вас все должно быть примерно так:
А теперь зашифруем наш тестовый файл алгоритмом по-умолчанию:
После ввода команды, нужно задать пароль два раза в поле Passphrase. В Debian 9 это выглядит так, в других дистрибутивах это поле ввода может выглядеть иначе.
После ввода пароля рядом с тестовым файлом file.txt должна появиться его зашифрованная версия file.txt.gpg
Чтобы увидеть какой алгоритм используется по умолчанию, то нужно добавить опцию -vv перед файлом.
И после двукратного ввода пароля мы увидим алгоритм по дефолту. В данном случае об этом говорит строка: gpg: using cipher AES256
Если требуется указать алгоритм шифрования AES256 явно, нужно добавить опцию —cipher-algo AES256 перед файлом:
Как видите, зашифровать файлы в Linux не так уж и сложно. Вероятно это даже проще, чем в Windows.
Зашифруем папку
Что делать, если нужно зашифровать папку в Linux? Тут тоже есть довольно простое решение: перед шифрованием поместить папку в архив. Для этого мы будем использовать архиватор tar, который так же есть по-умолчанию почти во всех дистрибутивах.
Подготовим тестовую папку для шифрования:
Если все идет по плану, то у вас должно быть вот так:
Теперь поместим папку в архив с помощью утилиты tar.
Проверим наличие архива folder.tar с помощью команды ls
И так, архив с секретной папкой внутри создан. Теперь осталось зашифровать его как обычный файл.
И в результате должна появиться зашифрованная версия файла folder.tar , под именем folder.tar.gpg :
Теперь можно смело закидывать шифрованные файлы с расширением .gpg на облако, не боясь, что кто-то кроме вас прочитает эти файлы. Но перед этим было бы неплохо убедиться, что вы можете их расшифровать в будущем.
Дешифрование
Расшифруем файл
Есть два способа, по которым можно расшифровать наш gpg файл. Один максимально короткий, при котором мы надеемся, что GnuPG «поймет» что нам от нее нужно:
В этом случае скорее всего вы увидите похожий результат после ввода пароля:
Это значит, что файл расшифрован и сохранен под именем file.txt . Ниже мы проверили наличие файла командой ls и его содержимое командой cat .
Если укороченной версией расшифровать не получилось, тогда следует прописать все параметры явно:
В данном случае опция -o указывает как должен называться расшифрованный файл, а опция -d указывает какой файл надо расшифровать.
Расшифруем папку
И так, файл расшифрован, но что делать с ранее зашифрованной папкой в архиве? Тут тоже ничего сложного, сначала расшифруем архив как обычный файл, а потом достаем папку из архива. Перед этим, для чистоты эксперимента лучше удалить ранее созданную оригинальную папку folder и архив folder.tar , чтобы убедиться в том, что мы точно расшифровали и достали из архива то, что нужно.
Теперь расшифруем архивный файл folder.tar.gpg
Рядом с folder.tar.gpg должна появиться его расшифрованная версия folder.tar
Распакуем расшифрованный архив folder.tar:
После этого среди всех файлов должна появиться папка folder, которую мы зашифровали в конце прошлого раздела.
Шифровать файлы в Linux очень просто, при этом не требуется установки каких-то дополнительных программ. Достаточно воспользоваться утилитами по дефолту и они будут не менее надежными. Очевидно, что нужно использовать сложный пароль, который будет содержать цифры, большие и маленькие символы, а также специальные символы (#, %, & и тд).
Здесь вы можете почитать об остальных опциях GnuPG.
Здесь более подробный мануал от разработчиков.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Kleopatra: GnuPG в графической оболочке
Программы семейства GPG (GNU Privacy Guard) / PGP (Pretty Good Privacy) позволяют «прозрачно» подписывать и зашифровывать все типы цифровой информации. По своей сути, названные инструменты являются лишь удобной обёрткой, упрощающей практическое использование открытых алгоритмов асимметричной криптографии.
Несколько лет ведется полемика об актуальности использования GPG, в рамках которой высказывается много скептицизма о громоздкости и устаревании этого криптографического продукта. Высокий порог вхождения очевиден при соответствующем поисковом запросе, который выдает много сложной информации и инструкции по работе с утилитой GPG в терминале Linux.
В этой статье рассмотрим приложение с открытым исходным кодом для работы с инструментарием GPG в графической оболочке — находка для новичков и тех, кто просто избегает загадочного черного окна командной строки. Благодаря кроссплатформенности Клеопатры, статья одинаково полезна для пользователей Windows, Linux и FreeBSD.
Установка
Во многих unix-like операционных системах Клеопатра имеется в репозиториях по умолчанию. В Debian установка выглядит так: sudo apt-get install kleopatra .
Для Windows программа распространяется в пакете GPG4Win, объединяющем в себе несколько полезных инструментов: непосредственно Kleopatra, GpgEX — удобный плагин для проводника Windows, который добавляет в контекстное меню пункты «Зашифровать», «Подписать», «Расшифровать», «Проверить контрольные суммы» и некоторые другие, GPA — еще один более простой на вид и менее функциональный менеджер ключей, GpgOL — плагин для почтового клиента Outlook).
Первый шаг в использовании GPG — создание своей пары ключей. Публичный ключ предоставляется всем желающим, а секретный хранится в надежном месте и служит для подписания информации от лица его владельца и расшифровки адресованной ему информации.
Создание пары ключей
На выбор предлагаются типы ключей X.509 (практически применяется в корпоративной среде) и OpenPGP. Выбираем OpenPGP. Вводим контактые данные, которые будут отображаться у всех владельцев нашего открытого ключа. Вместо настоящего имени можно указать никнейм. В дальнейшем некоторую информацию ключа будет возможно изменить.
По умолчанию используется шифрование RSA с длиной ключа в 2048 бит (2048 нулей и единиц машинного кода). С учетом развития квантовых технологий, данное шифрование всё менее и менее кажется надежным. В настоящее время себя хорошо зарекомендовало использование криптографии на эллиптических кривых. Подобные алгоритмы имеют невероятную криптостойкость и хорошую производительность, благодаря небольшой длине ключа.
Чтобы создать пару ключей на эллиптических кривых, переходим в дополнительные параметры. Пункт ECDSA/EdDSA — то, что нам надо. Дополнительный чекбокс (галочка) «+ECDH» даст ключу возможность шифровать, без нее сертификат можно будет использовать только для подписи и идентификации, так как ECDSA/EdDSA — алгоритмы подписи, а не шифрования. В выпадающих списках предлагается выбрать один из алгоритмов: ed25519, brainpool и NIST.
ed25519 (Curve25519) — эталонная и непатентованной реализация криптографии на эллиптической кривой, имеет 128-битную длину. Является ключом EdDSA — самым актуальным алгоритмом цифровой подписи (считается, что без закладок от силовых структур каких-либо стран).
brainpool — алгоритм, разработанный немецким сообществом криптографоф, в число которых входят университеты, государственные ведомства и коммерческие организации, например, компания Bosch. Поддерживает длины в 256, 384 и 512 бит. При подписи использует несколько устаревший алгоритм ECDSA.
NIST — американский алгоритм, разработанный Национальным Институтом Стандартов и Технологий. Рекомендован для использования государственными органами США. Поддерживает длины в 256, 384 и 521 бит. По оценке некоторых специалистов, NIST лучше brainpool по производительности. При подписи использует несколько устаревший алгоритм ECDSA.
Для примера в обоих случаях используется алгоритм brainpool с максимальной длиной ключа. По умолчанию ключ создается со сроком годности в два года. Этот параметр можно изменить, либо вовсе отключить, тогда ключ будет бессрочным.
На следующем шаге задается пароль, который является последним рубежом защиты секретного ключа. Не следует передавать кому-то секретный ключ, но если так все-таки вышло, будет лучше, когда вы задали очень надежный пароль. Рекомендуется использовать специальные знаки (символы пунктуации и прочее) для надежной защиты от брутфорса. Лучшим вариантом будет длинный пароль, полученный из генератора случайных символов, однако не забывайте про золотую середину между использованием и безопасностью. Например, вводить на телефоне очень длинный и сложный пароль с символами из расширенной таблицы ASCII, не имея возможности его скопировать из менеджера паролей, будет весьма проблематично.
Итак, пара ключей создана! Обратите внимание на отпечаток, это уникальный идентификатор вашего ключа. Даже если кто-то захочет представиться вами, создав ключ с такими же именем и электронной почтой, его отпечаток будет отличаться. Именно поэтому важно сверять отпечатки получаемых ключей.
Клеопатра предлагает сделать резервную копию ключей, что по факту является экспортом закрытого ключа. Эту операцию в дальнейшем можно произвести в любой момент.
Открыв экспортированный ключ в текстовом редакторе, мы увидим специфичный фрагмент текста, начинающийся словами «BEGIN PGP PRIVATE KEY BLOCK». Будьте внимательны, не отправьте его кому-то по ошибке! Открытые ключи, предназначенные для передачи вторым лицам, начинаются со слов «BEGIN PGP PUBLIC KEY BLOCK».
Большое преимущество GPG перед другими средствами идентификации заключается в легкой переносимости ключа. Например, его можно распечатать на бумаге или выучить наизусть. Хранить можно только приватный ключ, так как при необходимости кому-то передать публичный, мы всегда можем экспортировать его из секретного (выводится математическим путём).
Экспорт и импорт
Для операций с ключом, щелкните по нему правой кнопкой мыши.
Для импорта ключей (нашего уже существующего на новом устройстве или полученного публичного), воспользуемся кнопкой «Импорт». Также можно использовать двойной клик по файлу ключа, это автоматически откроет Клеопатру и импортирует выбранный ключ. GPG-файлы встречаются с расширениями *.asc, *.pgp и *.gpg. Это не имеет большого значения, так как расширение нужно больше для удобства пользователя и лишь немного — приложений. Файл будет корректно прочитан и в случае, когда специальное расширение изменено или удалено.
Очень часто ключи распространяются в виде текстового блока. В таком случае, скопировав ключ, можно импортировать его через меню операций с буфером обмена.
Программа попросит удостовериться в подлинности ключа. В настоящее время самым простым и эффективным способом является сравнение отпечатка, поэтому его публикуют вместе с ключом. Если отпечаток совпадает с заявленным, заверяем сертификат.
Теперь мы можем проверять подпись владельца нового ключа и шифровать для него информацию.
Шифрование и подпись
Чтобы зашифровать и подписать файл, воспользуемся соответствующим пунктом меню на верхней панели.
После выбора файла, предлагается выбрать нужные операции. Подпись позволяет получателю убедиться в авторстве файла. Эта функция очень полезна: расшифровав архив, мы точно знаем, что архив был зашифрован владельцем обозначенного ключа, а не кем-то другим, кто просто располагает нашим публичным ключом. Использовать подпись — полезная привычка в большинстве случаев.
Распространненым способом безопасного хранения данных на облачном хранилище является GPG-шифрование файлов «для себя». В таком случае расшифровать информацию можно будет только нашим ключом.
Также возможна подпись без шифрования. Чаще всего применимо к текстовой информации. Механизм подписания строится на хеш-сумме: позволяет сравнить актуальное состояние информации с тем, какой она была, когда ее подписывал отправитель. Для примера откроем «блокнот».
Назначив отсутствие шифрования для кого-либо, оставляем только подпись и нажимаем кнопку «Подписать».
После ввода пароля от ключа, видим, что к фразе «Отличная работа» добавился дополнительный текстовый блок с хеш-суммой SHA512.
Если сейчас проверить подпись, она будет верна, но если изменить хотя бы один символ или добавить пробел, проверка выявит недействительную для данного текста подпись. Это связано с тем, что хеш-сумма данного массива информации абсолютна отлична от той, когда вместо буквы «Я» стояла «я».
В случае подписи файла без шифрования, в директории файла создается сигнатура с расширением *.sig, которую следует передавать вместе с исходным файлом. Если в файле изменится хотя бы один бит, проверка подписи выдаст ошибку.
Постскриптум
Все локальные ключи централизованно хранятся на устройстве в специальной папке. Все программы, взаимодействующие с GPG, будут их видеть. Для общения по протоколу XMPP (Jabber), защищенного GPG-шифрованием, можно использовать Gajim, который также является кроссплатформенным. Для ведения защищенной почтовой переписки удобно использовать этичный клиент Thunderbird, в который необходимо будет импортировать секретный ключ, так как он имеет свое изолированное хранилище ключей. Об использовании Thunderbird написано тут.
В статье опущено много технических нюансов, так как она рассчитана на широкий круг пользователей, которые в том числе имеют низкий уровень познаний в криптографии и ищут стартовую позицию для знакомства с действительно надеждным сквозным шифрованием.
Источник