С зарождением цивилизации появилась необходимость передачи информации между людьми. При чём таким способом, чтобы эта информация не стала доступной третьим лицам.
С течением времени технологии развивались, количество информации увеличивалось, а методы её перехвата усложнялись.
В настоящее время происходит активное внедрение цифровых технологий в различные сферы человеческой жизни, поэтому вопрос защиты информации при её хранении и передаче является особенно актуальным.
Я расскажу о том, как сохранить конфиденциальность своей информации с помощью инструмента GPG.
GnuPG (Gnu Privacy Guard) — свободная программа для шифрования информации и создания электронных цифровых подписей. Разработана как альтернатива коммерческой программе PGP. GnuPG полностью совместима со стандартом IETF OpenPGP.
Инструмент командной строки для GnuPG называется GPG. Им я и буду пользоваться. В данной публикации все манипуляции будут выполняться в операционной системе Linux. В ней уже установлено программное обеспечение GnuPG.
Если вы используете macOS, то вам нужно установить GPG-Suite, или воспользоваться командой brew install gnupg2. Если вы пользователь Windows, то советую вам установить GPG4Win.
Шифрование файла с помощью пароля
Далее речь пойдёт о симметричном шифровании. Методе шифрования, при котором для шифрования и дешифрования применяется один и тот криптографический ключ.
1. Создание текстового файла для шифрования
Создать пустой файл через терминал можно с помощью команды: cat > имя_файла
Файл будет создан в вашей домашней папке.
В данном случае:
Запишем в файл стихотворение Евгения Евтушенко.
Шифрование файла
Вводим следующую команду: gpg -c message.txt
Опция -с (или --symmetric) означает шифрование только симметричным шифром. Далее нужно будет ввести фразу-пароль, которая станет ключом.
В итоге в директории с исходным файлом появится файл с расширением gpg. Это зашифрованный файл.
Если попытаетесь его открыть как обычный файл, то увидите примерно следующее:
Дешифрование
Для расшифровки этого файла следует ввести в терминале следующую команду: 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 с параметрами, указанными ранее.
Шифрование
Для шифрования введите следующую команду: gpg -e -r идентификатор_пользователя имя_файла
В качестве идентификатора пользователя я указал просто Dmitry, поэтому утилита выбрала первый по порядку ключ. Чтобы зашифровать информацию с помощью второго ключа, нужно было ввести идентификатор однозначно определяющий второй ключ. Например, ‘Dmitry Alekseev (best key)’.
Опять же в директории с исходным файлом будет создан файл с расширением gpg.
Дешифрование
Команда для дешифровки: gpg -d имя_файла.gpg
Необходимо ввести фразу-пароль.
После в терминале отобразится дешифрованная информация.
Использование цифровой подписи для файла
Цифровая подпись позволяет подтвердить авторство электронного документа. На основе файла и ключа создаётся отпечаток, который записывается в файл. Если файл будет изменён, то отпечаток уже не совпадёт.
1. Создание цифровой подписи
Вы можете подписать файл с помощью команды: gpg -sign имя_файла.
Для создания подписи будет использован ранее созданный секретный ключ, поэтому нужно будет снова ввести фразу-пароль.
Опять же в директории с исходным файлом появится файл с расширением gpg
Также вы можете создать подпись в отдельном файле: gpg -b имя_файла
В директоре появится файл с расширением sig.
Проверка подлинности файла
Введите следующую команду: gpg --verify имя_файла.sig имя_файла.
Если файл не был изменён, то вы увидите следующее.
Если файл был изменён, то при проверке на экране появится следующее сообщение.
Вывод:
Мы с вами познакомились с таким популярным инструментом шифрования как GPG. Эта утилита обладает большими возможностями по защите информации, мы с вами рассмотрели только часть. Посмотреть документацию по ней можно с помощью команды gpg - h.