pgp ключ на гидре что это такое и как
Шифрование PGP: что это такое и как пользоваться
Пока речь идет о торговле криптовалютами, об инвестициях и блокчейне, для среднестатистического потребителя все понятно, но к чему здесь шифрование PGP? Само название не слишком понятно для рядового пользователя, далекого от программных штучек. Техническое звучание может даже отпугнуть. А очень зря! Понимание простейших принципов криптографии дает определенную базу для дальнейшего вникания в популярные нынче технологии.
Если говорить просто, то PGP шифрование — это способ защитить свою информацию. Так, чтобы никто посторонний не мог ее просмотреть или изменить. Это работа с ключами и цифровыми подписями, позволяющими подтвердить право собственности на данные или уберечь их от посторонних глаз.
В статье мы рассмотрим, как это работает, где можно применить криптографический инструмент, как пользоваться с PGP-приложениями.
Как работает PGP шифрование
Pretty Good Privacy, он же PGP — это криптографическая программа, которая позволяет зашифровать информацию таким образом, чтобы никто посторонний не мог ни прочитать, ни изменить данные. В сущности, это надежный способ передачи файлов, гарантирующий полную и совершенную секретность. Если вы ведете частную переписку, не предназначенную для глаз приятелей, сотрудников, правительства, злобных шпионов (нужное подчеркнуть), это решение поможет обезопасить каждую букву в сообщении.
Еще одна вкусная функция криптографии — подтверждение права собственности. Допустим, вы предоставили документ в общественный доступ, но хотите быть уверенными, что никто не присвоит себе ваш труд. PGP сгодится и для этого.
Чтобы понять, как именно это происходит, разложим сложное на простые составляющие.
А ларчик просто открывался: ключи для секретных замков
Как сделать так, чтобы информация от персонажа А попала к персонажу Б, но не досталась прочим буквам алфавита? Все довольно просто: нужно запаковать сообщение в сейф, код к которому знают двое. Функцию такого кода в PGP выполняют ключи.
Ключ — это большое число. Это ОЧЕНЬ большое число, которое занимает 1024 бита. Чем больше в нем символов, тем сложнее подобрать аналог, то есть взломать.
Схема проста: вы создаете сообщение, которое отображается для посторонних как строка непонятных символов. Но тот, кто имеет ключ, может расшифровать данные, и понять, что именно вы хотели сказать набором чисел. Другой вопрос: если вашу переписку могут перехватить, где гарантия, что не будет перехвачен и переданный ключ?
И это вопрос правильный, позволяющий продвинуться дальше и рассмотреть виды и применения ключей. Итак, наш «секретный пароль» при PGP-кодировании может иметь две формы:
Как происходит это жонглирование ключами? Технически — сложно, а по сути элементарно. Допустим, в сети выложен открытый ключ, и вы хотите отправить сообщение его создателю. Используя кодирующую программу, вы отправляете зашифрованное послание. Расшифровать его может только тот, у кого есть закрытый ключ. Все остальные, кто, как и вы, владеют только открытым — увидят все тот же невнятный набор знаков.
Кстати, вы тоже уже не можете прочитать то, что только что отправили — сообщение уже зашифровано, и без закрытого ключа вам его не просмотреть.
Цифровая подпись: железное доказательство
Теперь давайте об аутентификации, в которой тоже замешаны ключи. Главное усвоить такую штуку:
То, что закодировано открытым ключом, может расшифровать только владелец закрытого, и наоборот — то, что закодировано закрытым ключом, доступно владельцам открытых.
Следовательно, если персонаж А пишет, например, крутое рыночное исследование и делится им с владельцами открытых ключей, все будут точно знать, кому принадлежит текст.
Точно так же действует цифровая подпись в реальном мире (по крайней мере это пытаются применять, например, в цифровых налоговых декларациях). Она подтверждает авторство и защищает документ (материал) от повторного использования от чужого имени, редактуры и присвоения.
Подпись, как вы понимаете, привязана к закрытому ключу. И если проверяющий/изучающий материал хочет удостовериться в авторстве, он может убедиться в подлинности документа при помощи открытого ключа.
Ключевая пара: что может пойти не так
Главное правило, которое нужно выучить для безопасного использования PGP звучит так: ХРАНИ ЗАКРЫТЫЙ КЛЮЧ В НАДЕЖНОМ МЕСТЕ. Таковым, как вы понимаете, не является ни одно третье лицо, облачное хранилище или нечто, вам не принадлежащее. Если ключ существует в одном экземпляре — на вашем ПК — никто не сможет забрать его без конфискации самого компьютера (хотя, конечно, не стоит забывать о вероятности взлома). Так что, если вы хотите использовать криптографические программы и быть уверенными в своей безопасности — перенесите ключ на физический носитель, например, блокнот, который хранится в верхнем ящике стола.
Раз за разом вводить ключи для того, чтобы прочитать сообщение — невероятно скучный процесс, но такова цена безопасности. Согласитесь, не слишком высокая, чтобы отказываться ее заплатить.
Ладно, на самом деле можно поступить проще. Закрытый ключ защищается дополнительной парольной фразой. Это набор слов, который вы вводите, чтобы подтвердить право пользоваться ключом. Чем длиннее ваша фраза, тем лучше, а в идеале — используйте разных регистры и знаки препинания. Такой код легко запомнить (например, если использовать любимую цитату или строчку из песни) и сложно взломать.
Но что делать, если ключ таки «увели»? PGP-программы позволяют отозвать ключ и сообщить о том, что ему больше нельзя доверять. Но это слабое утешение для тех, кто пользуется цифровыми подписями и постоянно контактирует с аудиторией.
Почему прекрасным PGP не пользуются поголовно все
Если PGP-кодирование настолько прекрасно и полезно, почему им не пользуются все? — спросите вы. На самом деле ответ очевиден. Для того, чтобы зашифровать что-нибудь, необходимо установить приложение, разобраться с его использованием, найти людей, которые будут заниматься примерно тем же и смогут эту информацию расшифровать.
Сегодня крутая технология остается где-то в зоне обитания гиков хотя бы потому, что интерфейс нельзя назвать user-friendly. Команды отдаются вручную, прописываются в командной строке, их нужно запоминать или всегда хранить гайд перед глазами. Написание скриптов необходимо для:
Немного не то, к чему привык пользователь Windows или MacOS.
Кстати, нечто подобное удерживает многих «рядовых» пользователей от использования криптовалюты. Там нужно что-то понимать в циферках, буквочках и командах. Отлично, если крипто-кошелек предлагает понятный интерфейс и любой процесс автоматизирован. А если нет? Мало кто полезет в эти дебри. Так же с и PGP — если бы нужно было нажать кнопочку «зашифровать» перед отправкой послания, и «раскодировать» в момент получения, приложение (и все его аналоги) набрало бы значительно большую популярность.
Где шифрование применяется сегодня и где станет применяться в будущем
Как уже и было упомянуть, PGP шифрованием сегодня пользуются в основном частные лица, знакомые с программированием, и корпорации для сохранения информации внутри компании. Но учитывая актуализацию вопроса цифровой безопасности, криптография в скором времени будет применяться более широко и, вероятно, автоматизировано.
Уже сейчас некоторые сервисы электронной почты (например, Mozilla Thunderbird) используют дополнительную защиту сообщений. Правда, для этого все равно приходится устанавливать приложения и всячески их настраивать. Но при дальнейшей оптимизации мы просто не будем замечать, как происходит кодирование.
Да, да, мы все — избалованные пользователи, которые не слишком заморачиваются вопросами «как и почему работает так или иная штука». В действительности нам важно, чтобы оно просто работало — эффективно и безопасно.
С распространением крипто-технологий и расширением географии их принятия вероятность получить новые стандарты безопасности в Интернете существенно повышается. Об этом стоит помнить, улавливая суть, спрятанную за современным крипто-хайпом.
Крипто — это не только про валюты и инвестиции. Это — про функционал, безопасность, подтверждение собственности, свободу от посредников и многое другое.
Безопасность и анонимность = TOR+VPN+2FA+PGP
DronVR
Безопасность и анонимность = TOR+VPN+2FA+PGP
Почему интернет не безопасен?
Когда пользователь заходит на сайт или ищет информацию через стандартные браузеры (Google Chrome, Firefox и другие) без дополнительных средств, запрос сначала направляется провайдеру, который раздаёт интернет. Провайдер подчиняется законам страны, поэтому заблокированные правительством сайты не открываются через обычные браузеры. То есть, запрос поступает провайдеру, а он обязан отказать пользователю в доступе на запрещённый ресурс.
Но главная опасность в другом: интернет и анонимность постепенно перестают быть синонимами. Серверы по всей стране значительно расширились, чтобы соответствовать требованиям по хранению персональных данных пользователей, как этого требует Федеральный закон №242 от 21 июля 2014 года (вступил в силу в 2016 году, текст закона по ссылке). Это значит, что вся информация о наших действиях в интернете хранится у провайдера в течение года. Органам даже не требуется решение суда, чтобы оперативно получить эти данные от провайдера.
Трафик от мессенджеров (WhatsApp, Viber, Telegram и другие) также хранится у провайдеров. Однако переписка в них зашифрована, и предполагается, что прочитать её не могут те, кому не положено. В связи с этим уже стало понятно, какие из них готовы выдавать своих пользователей, а какие нет. Некоторые мессенджеры небезопасны с этой точки зрения.
Из наиболее популярных в СНГ мессенджеров Telegram вызывает максимальное доверие. Данные из обычных чатов Телеграма хранятся на серверах и могут быть расшифрованы сотрудниками мессенджера, но разработчик Павел Дуров заверяет, что мессенджер ни при каких обстоятельствах не выдаст данные кому бы то ни было. Шифрование секретных чатов написано таким образом, что никто, включая самих разработчиков, не может расшифровать сообщения (а если бы даже и могли, — добавляет разработчик Павел Дуров — всё равно бы не стали).
VPN
Верная помощь для доступа к заблокированным сайтам и защита передаваемой информации при подключении к интернету.
ВПН-сервер — это бесплатный (за счёт рекламы) или платный сервис, который за 100-500 рублей в месяц даёт вам подключаться к интернету через него.
Во-первых, провайдер не видит, куда вы ходите в интернете, потому что теперь ваш компьютер не обращается к сайтам напрямую, но просит это делать ВПН-сервер. Поэтому вы имеете доступ к сайтам, заблокированным провайдером (торрент-трекеры, бесплатные книги, «экстремистские материалы», информация о веществах).
Во-вторых, всё, что вы передаёте ВПН-серверу (и всё, что он приносит вам из интернета) — зашифровано, поэтому никто посередине цепочки не может прочитать: что вы пишете, читаете, куда заходите, что скачиваете, ваши логины / пароли и данные банковских карт — теперь это может увидеть только тот, от кого / кому это было отправлено (сайт, где вы сидите) и сам ВПН-сервис.
Под VPN ваши данные и реальное местоположение скрыты надёжно, однако есть угрозы: 1) сам ВПН-сервис (может читать ваши данные и знает кто вы) и 2) хакер, подключившийся к соединению где-то между вами и сайтом, который вы посещаете, может делать вид, что он и есть этот сайт.
По пункту №1: Не пользуйтесь ВПН, находящимся в РФ. Лучше — ВПН из стран вроде Панамы, Коста-Рики, Белиза.
По пункту №2: Просто обращайте внимание на предупреждение браузера про устаревший / несоответсвующий / отсутсвующий сертификат — это может означать, что вместо сайта с вами «общается» злоумышленник.
Не используйте ВПН с протоколом PPTP (он уязвим к хакерским атакам), ваш выбор — OpenVPN или L2TP/IPSec. Чтобы начать, забейте в поиске «купить впн».
Подробная инструкция по подключению ВПН и правильному использованию: Windows Android iOS Mac OSX на роутере
Tor Browser
Это специальный браузер, который для использования нужно лишь скачать. Он тоже обеспечивает как вашу анонимность (нельзя связать вашу деятельность в сети и реальный компьютер), а также шифрует данные — но есть отличия.
Трафик тоже шифруется и идёт в сеть не через один промежуточный сервер, а через три. Провайдер и первый узел (сервер) знают лишь, что с вашего IP-адреса используют ТОР, и больше ничего. Второй узел вообще ничего не знает, а вот третий (на выходе из сети ТОР) знает, на какой сайт заходите и что там делаете (пароли, что пишете и смотрите и т.п.) — и сам сайт тоже знает, но они не знают, кто вы такой.
Преимущество по сравнению с ВПН — вашу анонимность раскрыть сложнее, а вот украсть личные данные (что смотрите и пишете, пароли и пр.) — легче. Владельцы ВПН знают и кто вы, и что делаете, а выходные узлы ТОР, провайдер в регионе того узла и нужный вам сайт — только что делаете. Т.е. в сравнении с ВПН, больше людей могут смотреть то, что вы отправляете нужному сайту, а он шлёт вам: выходной узел ТОР или провайдер в его стране могут оказаться недобросовестными — они могут использовать ваши логины / пароли, например (узлы ТОР в этом смысле надёжнее провайдеров — создатели ТОРа постоянно инспектируют их).
Кстати, ваш местный провайдер не знает, что вы делаете, но знает, что вы используете ТОР — и может пытаться заблокировать его работу.
[Как обойти блокировку ТОР: Tor Browser iOS]
2FA и PGP
Об этих способах защиты у нас есть отдельные статьи, поэтому остановимся на них совсем кратко.
2FA (двухфакторная аутентификация) — дополнение к вашему паролю для входа на ресурс, поддерживается многих сайтах, в том числе на Гидре.
По сути вам надо ввести помимо капчи, логина и пароля актуальный код, который постоянно обновляется в специальном приложении на смартфоне или планшете. Это позволяет защитить аккаунт двойным способом: даже если кто-то уведёт ваши данные, он не сможет авторизоваться без доступа к вашему телефону/планшету. Из минусов — в случае кражи/потери устройства, восстановить доступ к аккаунту будет невозможно. Однако есть при этом у вас в аккаунте указан публичный PGP-ключ, восстановить доступ получится с его помощью.
Двухфакторная аутентификация может быть не только в виде дополнительного кода, но также в виде ключа PGP (можно выбрать оба способа сразу или только один из них). Принцип работы PGP-ключа рассказан в статьях Дополнительная безопасность при общении и Безопасность: как пользоваться PGP-ключом.
Вкратце это программа для шифрования / расшифрования, с помощью неё можно готовить сообщения, которые способен прочитать только тот, кому адресовано сообщение и у кого тоже есть программа. Зашифрованное сообщение можно спокойно пересылать любым способом. Чтобы зашифровать сообщение, необходимо знать публичный ключ собеседника, а чтобы расшифровать — воспользоваться своим ключом для расшифровки публичного ключа. В указанных статьях очень подробная инструкция по установке и использованию.
Важно напомнить, что указанный вами на Гидре в личном кабинете публичный ключ pgp невозможно поменять! Поэтому не теряйте пароль от приложения gpg4usb, ведь тогда в случае 2FA с помощью PGP вы не сможете восстановить доступ к аккаунту. Это сделано для нашей безопасности, чтобы никто не смог обманом получить данные.
Вывод по безопасности
VPN очень хорош для безопасного сёрфинга в обычном интернете, а TOR для посещения даркнета. Чтобы ваши данные не угоняли, когда вы используете Тор, включите функцию «https повсюду» (тогда данные для большинства сайтов будут шифроваться), а на ресурсах без поддержки https важную информацию шифруйте PGP (настаивайте на его использовании, когда даёте продавцам ваш адрес!); на сайтах кроме легко угоняемых паролей используйте 2FA.
Безопасность — достижима. VPN и TOR не идеальны, но усилия, нужные для вычисления пользователя довольно велики, и если вы — не очень интересная личность, их вполне достаточно.
Как настроить PGP ключ?
Как установить публичный PGP ключ?
Как начать использовать PGP
Как создать свой GPG ключ?
Что такое PGP ключ на гидре?
На HYDRA ключ PGP используется не только для защиты переписки, но и для защиты аккаунта в целом (двухфакторная аутентификация возможна через PGP), а также с помощью ключа можно восстановить пароль.
Как работать с PGP?
PGP часто используется для отправки зашифрованных сообщений между двумя людьми. Он работает путем шифрования сообщения с использованием открытого ключа, связанного с конкретным пользователем; когда пользователь получает сообщение, он использует секретный ключ, известный только им, для его расшифровки.
Как открыть PGP ключ?
Как настроить PGP?
3. Основные шаги в использовании PGP
Как создать PGP диск?
Как создать новый PGP диск.
Как расшифровать файл PGP?
Как расшифровать полученное сообщение
Выделить полученный зашифрованный текст, скопировать его в буфер Windows clipboard, зайти мышкой в меню PGP через панель задач Windows и выбрать команду decrypt and verify clipboard. Появляется окно программы PGP, в которое необходимо ввести пароль и нажать на OK.
Что такое GPG ключ?
GNU Privacy Guard (GnuPG, GPG) — свободная программа для шифрования информации и создания электронных цифровых подписей. Разработана как альтернатива PGP и выпущена под свободной лицензией GNU General Public License. GnuPG полностью совместима со стандартом IETF OpenPGP.
Что такое PGP верификация?
Pretty Good Privacy, он же PGP — это криптографическая программа, которая позволяет зашифровать информацию таким образом, чтобы никто посторонний не мог ни прочитать, ни изменить данные. В сущности, это надежный способ передачи файлов, гарантирующий полную и совершенную секретность.
Как открыть файл с расширением GPG?
Как открыть файл GPG?
Что такое ключ Hydra?
Hydra — это программное обеспечение с открытым исходным кодом для перебора паролей в реальном времени от различных онлайн сервисов, веб-приложений, FTP, SSH и других протоколов.
Можно ли восстановить аккаунт на гидре?
Если с забаненного аккаунта написать не получится, то Вы можете написать с другого аккаунта. К сожалению, в настоящее время это единственный вариант восстановиться на гидре.
Проблема PGP
Криптоинженеры уже несколько десятилетий кричат о недостатках PGP. Когда это слышат обычные разработчики, то бывают крайне удивлены. Как, PGP никуда не годится? Зачем же тогда его советуют использовать? Ответ в том, PGP действительно никуда не годится, и никому никогда не следует его рекомендовать. Он должен исчезнуть.
Как вы скоро увидите, у PGP много проблем. Если не вдаваться в подробности, основная причина в том, что программа разработана в 90-е годы, до появления серьёзной современной криптографии. Ни один компетентный криптоинженер сегодня не станет разрабатывать систему в таком виде и не потерпит большинства её дефектов ни в какой другой системе. Серьёзные криптографы в основном отказались от PGP и больше не тратят на неё времени (за некоторыми заметными исключениями). Поэтому хорошо известные проблемы в PGP остаются нерешёнными более десяти лет.
Два небольших примечания. Во-первых, статья написана для инженеров, а не для юристов и активистов. Во-вторых, “PGP” может означать множество вещей, от стандарта OpenPGP до эталонной реализации в GnuPG. Мы используем термин “PGP” для всего этого.
Проблемы
Абсурдная сложность
И это только кодировка. Реальная система гораздо сложнее. Есть ключи и подключи. Идентификаторы ключей, серверы ключей и подписи ключей. Ключи только для подписи и только для шифрования. Многочисленные «связки ключей». Аннулирование сертификатов. Три различных формата сжатия. Это мы ещё не добрались до поддержки смарт-карт.
Дизайн швейцарского армейского ножа
Если вы заблудились в лесу и… не знаю, например, вам нужно обрезать отвороты на джинсах — да, очень удобно, что на вашем ножике есть ножницы. Но для серьёзной работы никто не будет регулярно использовать такие ножнички.
Еще в эпоху MC Hammer, когда появился PGP, «шифрование» было особой вещью в себе; был один инструмент для отправки файлов, резервного копирования, для шифрования и подписи файлов. Современная криптография так не работает, нам нужны специализированные инструменты. Криптография для безопасного обмена сообщениями отличается от криптографии для резервного копирования или подписи пакетов.
Болото обратной совместимости
PGP предшествует современной криптографии и сильно устарел за это время. Если вам повезёт, у вашего GnuPG по умолчанию будет установлен 2048-битный ключ RSA, 64-битный шифр CAST5 в CFB и контрольная сумма OpenPGP MDC (о которой позже). Если шифрование производится паролем, а не открытым ключом, протокол OpenPGP установит для PGP алгоритм формирования ключа S2K. Мягко говоря, это не те примитивы, которые криптоинженер выберет для современной системы.
Мы многому научились с тех пор, как ботан Стив Уркель украсил прайм-тайм в эфире ABC. Мы узнали, что зашифрованные тексты следует аутентифицировать (и избегать режима CFB), что 64-битные блочные шифры плохи, что RSA не идеален, что сочетание сжатия и шифрования опасно и что KDF’ы должны строго генерироваться и по времени, и по памяти.
Что бы ни говорил OpenPGP RFC, вероятно, вы не делаете ничего из этого списка, если используете PGP, и невозможно сказать, когда рекомендации начнут выполняться. Возьмите шифры AEAD: Sequoia PGP на языке Rust по умолчанию перешла в режим AES-EAX AEAD. Это здорово. Но теперь никто не может прочитать их сообщения, потому что большинство версий PGP не знает, что такое режим EAX, и это не очень здорово. В каждой плохой криптосистеме в конечном итоге вырастает расширение RFC, которое поддерживает эллиптические кривые или AEAD, так что его сторонники могут кричать на форумах, что они поддерживают современную криптографию. RFC не имеет значения: только реальные установки. Мы изобрели аутентифицированное шифрование 20 лет назад, а PGP скоро на пенсию; хватит оправданий.
Или у вас обратная совместимость с программой 90-х годов, или у вас хорошая криптография; нельзя получить и то, и другое.
Неприятный UX
Трудно сформулировать это лучше, чем Тед Унангст:
Несколько лет назад было проведено исследование юзабилити PGP, в котором группу технических специалистов поместили в комнату с компьютером и попросили настроить PGP. Через два часа никто из них ещё не отозвался.
Если вам нужны собственные эмпирические данные, чтобы подтвердить это, вот эксперимент, который вы можете провести: найдите какого-нибудь далёкого от компьютеров юриста и по телефону помогите ему установить Signal. Наверное, он справится без истерики. А теперь попробуйте сделать это с PGP.
Долговременные секреты
PGP просит пользователей практически навсегда сохранять корневой ключ, привязанный к их личности. Генерации и обмен ключами обременительны с этими «вечеринками подписи ключей» и «сетью доверия», где ключи зависят от других ключей.
Долговременные ключи почти всегда неудобны. Если вы продолжаете использовать ключ, он в конечном итоге становится открытым. С точки зрения грамотного дизайна системы нужно минимизировать ущерб и гарантировать, что пользователь не будет ни секунды колебаться при мысли о генерации нового ключа, если есть хоть какие-то опасения по поводу безопасности текущего.
Фанаты PGP сразу ответят: «Вот почему нужно держать ключи на Yubikey». Но по беглой приблизительной оценке, почти никто в мире не использует дорогие Yubikey, и вряд ли это изменится в будущем (мы едва можем развернуть U2F, а те ключи одноразовые). Мы не можем принимать плохие криптосистемы только для того, чтобы ботанам Unix было приятнее играться со своими игрушками.
Сломанная аутентификация
Подробнее об архаичных примитивах PGP: ещё в 2000 году рабочая группа OpenPGP поняла, что нужно аутентифицировать зашифрованный текст и что подписи PGP этого не делают. Поэтому OpenPGP изобрела систему MDC: сообщения PGP с MDC присоединяют SHA-1 открытого текста к самому открытому тексту, который затем шифруется (как обычно) в режиме CFB.
Если вам интересно, как PGP справляется с этим, когда современные системы используют относительно сложные схемы AEAD (поскольку не могут просто прикрепить SHA-1 к открытому тексту), то это хороший вопрос. Как бы вам описать эту карикатуру? PGP MDC можно очистить от сообщений — он закодирован таким образом, что достаточно просто отрезать последние 22 байта зашифрованного текста. Чтобы сохранить обратную совместимость с небезопасными старыми сообщениями, PGP ввёл новый тип пакета, который сигнализирует о необходимости проверки MDC. Если вы используете неправильный тип, то MDC не проверяется. Даже если вы это сделаете, новый формат пакета SEIP достаточно близок к небезопасному формату SE, которым потенциально можно обмануть получателя с понижением шифра; Тревор Перрин свёл SEIP всего к 16 битам безопасности.
Наконец, даже если всё пойдёт правильно, эталонная реализация PGP выдаст по запросу неаутентифицированный открытый текст, даже если MDC не совпадает.
Непоследовательные идентити
PGP — это и приложение, и набор интеграций с другими приложениями, и формат файла, и социальная сеть, и субкультура.
PGP выдвигает понятие криптографической идентичности (identity). Вы создаёте ключ, сохраняете его в связке ключей, печатаете его фингерпринт на визитке и публикуете на сервере ключей. Вы подписываете чужие ключи. Они, в свою очередь, могут полагаться или не полагаться на ваши подписи для проверки других ключей. Некоторые люди стараются встретиться с другими пользователями PGP лично, чтобы обменяться ключами и более надёжно прописаться в этой «сети доверия». Другие организуют «вечеринки подписи ключей». Если представить всю эту активность, то становится понятно, как трудно преданным фанатам PGP переключиться на новые технологии.
Но вся эта система не работает на практике. Ни сеть доверия с подписями ключей, ни серверы ключей, ни вечеринки. Обычные люди будут доверять всему, что выглядит как ключ PGP, независимо от того, откуда он взялся — как они могут не доверять, если даже эксперту трудно сформулировать, как оценить ключ? Эксперты не доверяют ключам, которые не получили лично. Все остальные полагаются на централизованные сервисы для распространения ключей. Механизмы распространения ключей PGP — это цирк.
Утечки метаданных
На секунду забудьте о фиаско с электронной почтой (вернёмся к этому позже). PGP сам по себе допускает утечку метаданных. При обычном использовании сообщения напрямую связаны с идентификаторами ключей, которые по всей сети доверия PGP связаны с идентификатором пользователя. Кроме того, довольно большая часть пользователей PGP использует серверы ключей, которые сами выдают в сеть, какие пользователи PGP обмениваются сообщениями друг с другом.
Нет прямой секретности
Наглядный пример: криптография для безопасного обмена сообщениями требует прямой секретности (forward secrecy). Прямая секретность означает, что если злоумышленник получит ваш ключ, то всё равно не сможет прочитать предыдущие сообщения. В современной криптографии мы предполагаем, что противник записывает всё в бесконечное хранилище. Заявленные противники PGP включают мировые правительства. Безусловно, некоторые из них делают это. Против серьёзных противников взлом криптографии без прямой секретности — лишь вопрос времени.
Чтобы на практике обеспечить прямую секретность, вы обычно храните два секретных ключа: краткосрочный сеансовый ключ и долгосрочный доверенный ключ. Ключ сеанса эфемерен (обычно продукт обмена DH), и доверенный ключ подписывает его, так что человек посередине не может применить собственный ключ. Теоретически, прямую секретность можно реализовать инструментами PGP. Конечно, почти никто этого не делает.
Топорные ключи
Открытый ключ OpenBSD signify — это строка Base64, достаточно короткая, чтобы поместиться в середине предложения в электронном письме; закрытый ключ, который не является форматом обмена, — просто строка или около того. А открытый ключ PGP — это целый гигантский документ Base64; если вы часто их использовали, вы, вероятно, уже привыкли прикреплять их в аттаче, а не вставлять в сообщения, чтобы не повредить. Ключ signify сгенерирован передовым алгоритмом Ed25519, а PGP — более слабым RSA.
Вы можете подумать, что это не имеет значения, но это важно; на порядки больше людей используют SSH и управляют SSH-ключами, чем PGP. Ключи SSH тривиальны для обработки; PGP — нет.
Согласование
PGP поддерживает ElGamal, RSA, p-кривые NIST, Brainpool, Curve25519, SHA-1, SHA-2, RIPEMD160, IDEA, 3DES, CAST5, AES. Это не полный список того, что поддерживает PGP.
Если за последние 20 лет мы узнали три важные вещи о криптографии, по крайней мере, две из них, это то, что согласование и совместимость — зло. Как правило, недостатки криптосистем появляются в реализациях, а не примитивах, и экспансивная криптосовместимость увеличивает количество реализаций. Современные протоколы, такие как TLS 1.3, стремятся избавиться от обратной совместимости с архаизмами вроде RSA, а не добавляют её. Новые системы поддерживают только один набор примитивов и простой номер версии. Если один из этих примитивов проваливается, вы избавляетесь от этой версии и бросаете сразу весь старый протокол.
Если нам не повезёт и через 20 лет люди всё ещё будут использовать PGP, он останется единственной причиной, по которой хоть где-то применяется стандарт CAST5. Мы не можем сказать это яснее, и это нужно многократно повторять: или у вас обратная совместимость с программой 90-х годов, или у вас хорошая криптография; нельзя получить и то, и другое.
Мусорный код
Де-факто стандартной реализацией PGP является GnuPG. Эта программа не очень аккуратно написана. Там обширная кодовая база на C — языка с дублированием функциональности (например, в описании недавней атаки типа «отказ в обслуживании» на парсинг SKS сказано, что у него есть несколько парсеров ключей) с длинным послужным списком CVE, начиная от повреждения памяти до криптографической атаки по сторонним каналам. Иногда можно было удалить из сообщений аутентификацию, а GnuPG не замечал этого. Можно было скормить ему ключи без правильного отпечатка. В 2018 году уязвимость Efail была вызвана тем, что GnuPG по запросу отдавал неаутентифицированный открытый текст. GnuPG — не есть хорошо.
GnuPG является и эталонной реализацией для PGP, и основой для большинства других инструментов, интегрирующих криптографию PGP. Он никуда не денется. Полагаться на PGP — значит, полагаться на GPG.
Ответы
Чтобы убедить человека отказаться от PGP, важно объяснить ему, что PGP нечем заменить, и это нормально. Альтернативный инструмент зависит от задачи.
Разговоры
Используйте Signal. Или Wire, или WhatsApp, или какой-то другой безопасный мессенджер на основе протокола Signal.
Современные безопасные мессенджеры созданы специально для обмена сообщениями. Они используют сохраняющие конфиденциальность аутентификационные рукопожатия, аннуляцию сообщений, криптографические храповики (ratchets), которые выдают ключ на каждый обмен сообщениями, и, конечно же, современные примитивы шифрования. Мессенджеры тривиально просты в использовании, никакой суеты с ключами и подключами. Если вы используете Signal, вы получаете даже больше: вы получаете систему, настолько параноидальную насчёт сохранения приватных метаданных с серверов, что она даже туннелирует поисковые запросы Giphy, чтобы избежать атак с анализом трафика, и до недавнего времени даже не поддерживала профили пользователей.
Шифрование электронной почты
Электронная почта не безопасна. Даже с PGP это открытый текст по умолчанию, то есть даже если вы всё делаете правильно, какой-то совершенно разумный получатель письма, делая абсолютно разумные вещи, обязательно процитирует открытый текст вашего зашифрованного сообщения кому-то другому в CC (мы не знаем пользователя электронной почты PGP, который с этим не сталкивался). В электронной почте PGP отсутствует прямая секретность. Метаданные электронной почты, включая тему (которая буквально является содержимым сообщения), всегда передаются открытым текстом.
Это никогда не исправят. Чтобы сделать реально безопасную электронную почту, вам придётся туннелировать по электронной почте другой протокол (вы всё равно будете уязвимы для атаки с анализом трафика). В том-то и дело, зачем прикидываться?
Шифровать электронную почту — это кликать беду. Рекомендовать пользователям шифровать электронную почту, если им что-то угрожает, — исключительная халатность. Любой, кто говорит вам о безопасности общения по электронной почте с PGP-шифрованием, ставит свои странные предпочтения выше вашей безопасности.
Отправка файлов
Используйте Magic Wormhole. Клиенты Wormhole используют одноразовый обмен ключами с парольной аутентификацией (PAKE) для шифрования файлов. Это легко (по крайней мере, для ботаников), безопасно и весело: всякий, кому мы показывали «кротовую нору», сразу начинал пропускать через неё все файлы подряд, как это делаем мы.
Кто-то сразу запускает инсталлятор под Windows на Rust или Go, это слишком классная программа, чтобы ею не пользоваться.
Если вы общаетесь с юристами, а не с инженерами, Signal отлично справляется с передачей файлов. Для получения отчётов об ошибках публикуйте номер Signal, а не ключ PGP.
Шифрование бэкапов
Используйте Tarsnap. Колин объяснит, как Tarsnap оптимизирован для защиты резервных копий. Или действительно, возьмите любой другой инструмент шифрования бэкапов; он не будет так хорош, как Tarsnap, но всё равно будет лучше PGP.
Нужны офлайновые бэкапы? Используйте шифрование образов дисков; оно встроено в современные версии Windows, Linux и macOS. Полное шифрование диска не очень хорошо, но отлично справляется с этой задачей, и оно проще и безопаснее, чем PGP.
Подпись пакетов
Шифрование данных приложений
Используйте libsodium: это универсальная библиотека с интерфейсом, в котором трудно допустить ошибку, а для работы не нужен бинарник.
Шифрование файлов
Это действительно проблема. Если у вас /не/ бэкап, /не/ архив для долгосрочного хранения в офлайне, /не/ шифрование файла для передачи и /не/ шифрование виртуальных дисков, которые вы монтируете/отмонтируете по мере необходимости, то нет ни одного хорошего инструмента, чтобы зашифровать файлы. Для других целей Филиппо Вальсорда разрабатывает инструмент age, он кажется многообещающим, но пока не готов.
Надеюсь, ясно, что это довольно узкий случай использования. Мы работаем в области безопасности программного обеспечения и обрабатываем конфиденциальные данные, включая отчёты об ошибках (ещё один очень распространённый случай, когда кричат «Нам нужен PGP!»), но почти никогда не используем PGP.