Шифрование информации в Linux

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

С зарождением цивилизации появилась необходимость передачи информации между людьми. При чём таким способом, чтобы эта информация не стала доступной третьим лицам.

С течением времени технологии развивались, количество информации увеличивалось, а методы её перехвата усложнялись.

В настоящее время происходит активное внедрение цифровых технологий в различные сферы человеческой жизни, поэтому вопрос защиты информации при её хранении и передаче является особенно актуальным.

Я расскажу о том, как сохранить конфиденциальность своей информации с помощью инструмента GPG.

GnuPG (Gnu Privacy Guard) — свободная программа для шифрования информации и создания электронных цифровых подписей. Разработана как альтернатива коммерческой программе PGP. GnuPG полностью совместима со стандартом IETF OpenPGP.

Инструмент командной строки для GnuPG называется GPG. Им я и буду пользоваться. В данной публикации все манипуляции будут выполняться в операционной системе Linux. В ней уже установлено программное обеспечение GnuPG.

Если вы используете macOS, то вам нужно установить GPG-Suite, или воспользоваться командой brew install gnupg2. Если вы пользователь Windows, то советую вам установить GPG4Win.

Шифрование файла с помощью пароля

Далее речь пойдёт о симметричном шифровании. Методе шифрования, при котором для шифрования и дешифрования применяется один и тот криптографический ключ.

1.     Создание текстового файла для шифрования

Создать пустой файл через терминал можно с помощью команды: cat > имя_файла

Файл будет создан в вашей домашней папке.

В данном случае:

Запишем в файл стихотворение Евгения Евтушенко.

  1. Шифрование файла

Вводим следующую команду: gpg -c message.txt

Опция -с (или --symmetric) означает шифрование только симметричным шифром. Далее нужно будет ввести фразу-пароль, которая станет ключом.

В итоге в директории с исходным файлом появится файл с расширением gpg. Это зашифрованный файл.

Если попытаетесь его открыть как обычный файл, то увидите примерно следующее:

  1. Дешифрование

Для расшифровки этого файла следует ввести в терминале следующую команду: gpg --decrypt message.txt.gpg. Утилита запросит фразу-пароль. Если был введён верный пароль, то на экране отобразится исходный текст.

Для записи дешифрованной информации в отдельный файл добавьте опцию --output и после укажите название файла.

Шифрование файла с помощью ключей

Шифрование с помощью пары ключей – это уже ассиметричное шифрование. Данный метод является более надёжным. Шифрование осуществляется с помощью публичного ключа, а дешифровка - с использованием приватного ключа. Без приватного ключа вы не сможете выяснить что содержалось в исходном файле.

1.     Создание ключей

Для создания пары ключей наберите следующую команду в терминале: gpg --full-generate-key.

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

Идентификатор пользователя будет использован в качестве идентификатора ключа.

В конце нужно будет подтвердить корректность введённой информации и придумать фразу-пароль для защиты нового ключа.

В документации также указана команда gpg –gen-key, но при её использовании ряд параметров такие, как тип, размер ключа будут взяты по умолчанию. Срок действия ключа будет 2 года.

В скрытой директории ~./gnupg появятся файлы с ключами. В файле pubring.gpg публичный ключ, а в secring.gpg - приватный.

Также все свои доступные ключи можно увидеть с помощью команды: gpg –list-keys.

На скриншоте два ключа: первый был создан с помощью команды gpg –gen-key, второй – с помощью gpg –full-generate-key с параметрами, указанными ранее.

  1. Шифрование

Для шифрования введите следующую команду: gpg -e -r идентификатор_пользователя имя_файла

В качестве идентификатора пользователя я указал просто Dmitry, поэтому утилита выбрала первый по порядку ключ. Чтобы зашифровать информацию с помощью второго ключа, нужно было ввести идентификатор однозначно определяющий второй ключ. Например, ‘Dmitry Alekseev (best key)’.

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

  1. Дешифрование

Команда для дешифровки: gpg -d имя_файла.gpg

Необходимо ввести фразу-пароль.

После в терминале отобразится дешифрованная информация.

Использование цифровой подписи для файла

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

1.     Создание цифровой подписи

Вы можете подписать файл с помощью команды: gpg -sign имя_файла.

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

Опять же в директории с исходным файлом появится файл с расширением gpg

Также вы можете создать подпись в отдельном файле: gpg -b имя_файла

В директоре появится файл с расширением sig.

  1. Проверка подлинности файла

Введите следующую команду: gpg --verify имя_файла.sig имя_файла.

Если файл не был изменён, то вы увидите следующее.

Если файл был изменён, то при проверке на экране появится следующее сообщение.

Вывод:

Мы с вами познакомились с таким популярным инструментом шифрования как GPG. Эта утилита обладает большими возможностями по защите информации, мы с вами рассмотрели только часть. Посмотреть документацию по ней можно с помощью команды gpg - h.

Источник: https://habr.com/ru/post/659755/


Интересные статьи

Интересные статьи

Часто при разговорах с клиентами мы спрашиваем, как они ведут учет различных данных и используют ли они CRM-систему? Популярный ответ — мы работаем с Excel-файлами, а пот...
Что быстрее — ASP.NET Core-приложение, развёрнутое в Docker-контейнере на Linux, или такая же программа, но запущенная на Windows-сервере, учитывая то, что всё это работает в службе прило...
Раньше последовательные порты были буквально повсюду. И они, в каком-то смысле, никуда и не делись, так как многое, что подключается к компьютеру по USB, на самом деле, выглядит для систе...
LXD — это системный менеджер контейнеров следующего поколения, так гласит источник. Он предлагает пользовательский интерфейс, похожий на виртуальные машины, но использующий вместо этого контейн...
Загорелся желанием поставить себе на десктопную версию Slack тёмную тему, т.к. много времени провожу в нём в тёмное время суток и хочется комфортно работать в однородной тёмной среде. Так ка...