Шифрование PGP без командной строки

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

Перестаньте вставлять закрытые ключи в чат-боты

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

Есть вторая проблема, тише первой: ответ может быть неверным. Языковые модели отклоняют некоторые запросы на работу с ключами, обрезают длинные бронированные блоки и могут с полной уверенностью назвать отпечаток или ID ключа, неверно прочитав его середину. Криптография не прощает почти-попаданий. Альтернатива — не командная строка сама по себе; это выполнение работы локально, там, где материал никогда не путешествует. Для этого и существует набор PGP на этом сайте: создание ключей, шифрование, расшифровка, подпись и проверка выполняются во вкладке браузера, и ничего не загружается на сервер.

Что PGP даёт вам на самом деле

PGP — в его современной форме, стандарт OpenPGP, реализованный GnuPG и другими инструментами, — это две операции, построенные на одной паре ключей. Открытым ключом можно делиться с кем угодно, печатать его, отправлять по почте или публиковать. Закрытый ключ хранится в секрете, защищённый парольной фразой. Всё, что зашифровано открытым ключом, можно расшифровать только соответствующим закрытым ключом. В этом весь механизм конфиденциальности: никакого общего секрета, которым нужно обмениваться заранее, никакого пароля, который нужно согласовывать в том же канале, который вы пытаетесь защитить.

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

Создайте пару, а затем шифруйте ключом другого человека

Создавайте пару ключей на машине, которой доверяете, и с первой минуты обращайтесь с двумя половинами по-разному. Открытая половина — это визитная карточка: экспортируйте её, давайте её всем, кто может вам написать, размещайте там, где корреспонденты могут её найти. Закрытая половина — это главный ключ ко всем сообщениям, когда-либо зашифрованным для вас, и её место — офлайн: на машине, которая расшифровывает, с зашифрованной резервной копией на отдельном носителе, не в облачных заметках, не в почтовом ящике, не в чате. При создании выберите парольную фразу, которую вы нигде не используете повторно; генератор паролей на этом сайте может создать длинную фразу локально, что лучше, чем выдумывать её под давлением.

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

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

Расшифровывайте то, что приходит, подписывайте то, что отправляете, проверяйте то, что получаете

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

Подпись и проверка — это пара, и проверка — та половина, которую люди пропускают. Подпись, которую вы создаёте, говорит получателям: это исходит от владельца этого ключа, без изменений. Подпись, которую вы проверяете, говорит вам то же самое о том, что пришло, — но только если вы действительно проверяете, и только по открытому ключу, который, как вы уверены, принадлежит отправителю. Неудачная проверка — это не предупреждение, которое можно прокликать. Она означает одно из трёх: содержимое изменилось после подписи, подпись повреждена, или подписавший ключ — не тот, который вы ожидали. Все три заканчиваются одинаково: не действуйте на основании этого содержимого и спросите отправителя по другому каналу, что произошло.

Гигиена ключей — это и есть безопасность в большинство дней

Сбои PGP в реальном мире редко связаны со сломанной математикой. Это закрытый ключ без резервной копии, потерянный вместе с ноутбуком. Парольная фраза, повторно использованная с учётной записи на форуме. Ключ, истекший посреди переписки, из-за чего корреспонденты тихо возвращаются к открытому тексту. Установите срок действия, который вы действительно будете поддерживать, — от одного до двух лет — обычный и разумный выбор — и впишите дату продления в календарь в тот день, когда создаёте ключ, а не на той неделе, когда он истечёт.

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

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

Честные ограничения и когда использовать что-то другое

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

Для повседневного общения Signal — лучший инструмент: ключи управляются за вас, обработка метаданных сильнее, и никому не нужно сравнивать отпечаток перед ужином. Для шифрования файла для хранения или передачи age проще PGP и его труднее использовать неправильно. Для подписи релиза или документа, когда всё, что вам нужно, — это подпись, minisign меньше и яснее. Оставшаяся территория PGP реальна — почта, которая должна оставаться читаемой годами, подписи внутри существующей инфраструктуры, совместимость между инструментами и десятилетиями — и на этой территории здешний набор PGP убирает командную строку из работы, не убирая заботы, которую эта работа требует.

Часто задаваемые вопросы

Безопасен ли PGP в браузере?

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

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

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

Как узнать, что открытый ключ действительно принадлежит человеку?

Сравните отпечаток по второму каналу: прочитайте его вслух во время звонка, сверьте с карточкой, которую человек вам вручил, или со страницей, которую он контролирует. Отпечаток — это полный хэш открытого ключа; если он совпадает с обеих сторон, у вас тот же ключ, что и у него. Серверы ключей ничего не удостоверяют — любой может загрузить ключ, утверждающий любое имя и адрес почты, и присутствие в списке — не проверка. Ключ, скачанный откуда угодно и подтверждённый отпечатком где-то ещё, — это стандарт, к которому стоит стремиться.