Как стать автором
Обновить

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

Время на прочтение4 мин
Количество просмотров21K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для расшифровки этого файла следует ввести в терминале следующую команду: 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 с параметрами, указанными ранее.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод:

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

Теги:
Хабы:
Всего голосов 12: ↑10 и ↓2+8
Комментарии27

Публикации

Истории

Работа

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург