Шифрование в Linux: использование GnuPG

gnupg как пользоваться

В Linux универсальным инструментом шифрования является пакет Вернера Коха [Werner Koch] Gnu Privacy Guard (GnuPG). Команда его основного приложения (gpg) воскрешает память о Pretty Good Privacy (PGP), инструменте шифрования, выпущенном в 1991 г. Филом Циммерманом [Phil Zimmermann]. Более подробнее о GPG вы узнаете в статье «Шифрование GPG».

Ныне OpenPGP является стандартом, определяющим способы хранения шифрованных сообщений и связанных с ними битов, и GnuPG в полной мере реализует этот стандарт.

GnuPG работает из командной строки и имеет репутацию сложного и неудобного инструмента. Он предоставляет пользователю все современные алгоритмы приватного и публичного ключа, а также разнообразные рычажки управления, которые вы можете крутить как угодно.

В результате у вас имеется огромное количество опций командной строки и man-страниц для долгого чтения. В большинстве дистрибутивов GnuPG установлен по умолчанию, так что в рамках этой инструкции нам не придется заниматься установкой.

Как пользоваться GnuPG в Linux

Традиционное симметричное шифрование (когда две стороны делят секретный ключ или пароль) — это хорошо, но оно предполагает, что общающиеся стороны сперва поделились ключом через безопасный канал. Как правило, это предполагает крамольную встречу на темной парковке, возможно, обмен портфелями, и в идеале — уничтожение любой записи с ключом или паролем. Никто не знает, что или кто скрывается во мраке в подобных местах, и лучше бы вообще избегать подобных ситуаций. Поэтому давайте создадим пару ключей и посмотрим, как работает шифрование с публичным ключом.

Создание ключей в GnuPG

Введите

$ gpg -full-gen-key

На первые три вопроса примите настройки по умолчанию. Мы создадим 2048-битный RSA-ключ с RSA-подключом, и этот ключ не будет иметь срока годности.

Затем на вопрос «Верно ли это [Is this correct?]?» надо ответить «Да [Yes]».

gnupg pgp
Как пользоваться GnuPG

У вас спросят имя и адрес электронной почты. Эта информация будет храниться с публичным ключом, и хорошей практикой является сделать этот ключ как можно шире известным — поэтому не используйте своего настоящего имении основного адреса электронной почты, если не хотите сделать эти данные общественным достоянием. Используемый здесь адрес электронной почты не должен обязательно совпадать с тем адресом, с которого вы будете отправлять свои зашифрованные сообщения.

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

После этого можете проверить, что все сделано, с помощью

gpg --list-keys

GnuPG надежно хранит все сгенерированные ключи в наборе ключей. При необходимости их можно импортировать и экспортировать; но, перемещая приватный ключ, следует соблюдать крайнюю осторожность.

Поскольку своим публичным ключом вам надо делиться, экспортируйте ключ с помощью

$ gpg --output lxfpublic.key --armor --export

заменив на адрес электронной почты, использованный при создании ключа.

Полученный в результате файл можно отправить вашим товарищам по конспирации, и они смогут импортировать его с помощью

$ gpg --import lxfpublic.key

В качестве альтернативы, его можно загрузить на сервер ключей, чтобы вас мог найти любой.

Использование GnuPG

Чтобы отправить вам шифрованное сообщение, скажем, instructions.txt, ваш коллега должен ввести

$ gpg --recipient  --encrypt instructions.txt

и отправить вам полученный файл instructions.txt.gpg.

Ему также следует удалить исходный файл (например, с помощью shred) — как и вам после его получения.

И это было очень краткое введение в GPG на Linux, не такое уж мучительное. Однако если вы предпочитаете графический интерфейс, для вас есть GPA (Gnu Privacy Assistant), а также отличный плагин Enigmail для Thunderbird.

GPA Linux
Как пользоваться GnuPG: GPA

Сеть Доверия и стороны, подписывающие ключ

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

Проблема в том, что если только вы не обменивались ключами лично, то нет никакой гарантии, что публичный ключ взаправду принадлежит тому, кому он, по вашему мнению, должен принадлежать: с тем же успехом он может принадлежать и самозванцу. Поэтому стоит как можно больше рекламировать свой ключ: разместите его на нескольких серверах ключей, на вашем сайте, в вашей подписи электронной почты. И наоборот: прежде чем поверить случайному публичному ключу, сделайте фоновую проверку. Все эти вещи потенциально можно взломать, так что есть и другой путь. Если вы встречали человека лично или по иной причине уверены в подлинности его публичного ключа, можете его подписать.

Можно создать эти отношения для создания централизованной структуры, известной как Сеть Доверия. Со временем люди увидят, чьи ключи вы подписали, и если они доверяют вам, то станут доверять и этим ключам.

Чтобы положить некое начало этому процессу, можно устроить вечеринку подписи ключей, где участники — помимо прочего веселья — встретятся лично, удостоверят ID фото и подпишут ключи и сертификаты. Вымышленная вечеринка подписи ключей в романе Кори Доктороу «Младший брат» проходит на пляже в Калифорнии — а где будет проходить ваша?

Вас также может заинтересовать обзор лучших анонимных Linux дистрибутивов.

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *