Если вы новичок в проектах с открытым кодом (биткоин — один из них), то вы, вероятно, не слышали о GPG (PGP — это оригинальное проприетарное программное обеспечение, GPG — это реализация PGP с открытым кодом). GPG — это ПО, используемое для создания цифровых подписей openPGP, которые разработчики биткоина используют при публикации программного обеспечения. GPG соответствует духу биткоина, поскольку не требуют посредничества третьих сторон. Однако Windows и macOS не поддерживают проверку подписей PGP; вы должны загрузить программное обеспечение GPG и выполнить проверку самостоятельно.
Ниже приведено руководство по проверке подписей PGP на примере популярного биткоин-кошелька Electrum. Руководство показывает, как убедиться в том, что загруженный вами файл был действительно опубликован разработчиком Electrum Томасом Вётлином. Для этого требуется:
- Подлинный отпечаток ключа PGP, который мы можем увидеть на презентации разработчика биткоина и участника Web of Trust Грегори Максвелла;
- Веб-сайт для анализа взаимосвязанных подписей PGP (https://pgp.cs.uu.nl);
- Программное обеспечение GPG, которое проверяет корректность подписей.
Процесс состоит из трёх этапов:
- Импорта открытого ключа, который используется в качестве подписи на загрузочной странице Electrum;
- Проверки подлинности открытого ключа;
- Проверки загруженного файла с использованием GPG.
1. Импортируйте открытый ключ, используемый в качестве подписи на загрузочной странице Electrum
Нужно импортировать ключ PGP на загрузочной странице electrum.org в GnuPG (GPGTools для macOS; пользователи Windows используют gpg4win). Получить информацию об этом ключе можно запустив в командной строке gpg --fingerprint 0x7F9470E6 (для Windows) или терминале (для macOS). В результате мы увидим отпечаток ключа — 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6, шестнадцатеричное число из 40 символов.
Теперь нужно определить отношение этого ключа к ключу доверенного человека. В данном случае мы будем определять это отношение к ключу Грегори Максвелла.
2. Проверка подлинности открытого ключа
Мы знаем ключ Грегори Максвелла — DE47 BC9E 6D2D A6B0 2DC6 10B1 AC85 9362 B041 3BFA, потому что он был включен в видеопрезентацию, которая, как мы предполагаем, не подделана. Я доверяю ему потому, что его ключ относится только к ключам доверенных людей (см. Web of Trust).
Мы вводим оба отпечатка пальца на веб-сайте PGP pathfinder & key statistics, чтобы узнать, являются ли они участниками Web of Trust. В результате мы должны получить этот список.
Мы видим, что между двумя ключами PGP существует как минимум восемь путей доверия. Путь доверия — это цепочка подписей, где A подтверждает, что личность B является доверенной, B подтверждает, что C является доверенной, C подтверждает D и так далее. Согласно этим результатам, существует 8 таких путей между ключом PGP Грегори Максвелла и ключом Томаса Вётлин, который в свою очередь связан с сайтом electrum.org. Поэтому я делаю вывод, что ключ PGP, загруженный с веб-сайта https://www.electrum.org/, контролируется настоящим Томасом Вётлином.
Важное примечание: в идеале вы должны вручную импортировать ключи в ПО GPG. Если вы укажете своему ПО доверять ключу Максвелла, тогда ваше программное обеспечение предоставит ту же информацию, что была указана выше. Веб-сайт https://pgp.cs.uu.nl просто выполняет эту работу для вас. Если вы хотите хранить много биткоинов на кошельке, вам не следует использовать только https://pgp.cs.uu.nl.
Таким образом, мы проверили подлинность ключа PGP Томаса Вётлина.
3. Используйте GPG для проверки загруженных файлов
Теперь, когда мы определили, что ключ PGP с отпечатком 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6 является ключом Томаса Вётлина, мы можем проверить, что файлы, доступные для загрузки по адресу https://electrum.org/#download, были подписаны Томасом.
Загрузите инсталлятор и связанный файл подписи .asc в ту же папку. Для Windows выберите файл electrum-3.3.4-setup.exe и electrum-3.3.4-setup.exe.asc. Для macOS выберите electrum-3.3.4.dmg и electrum-3.3.4.dmg.asc.
Используйте GPG для проверки файла .asc. Для этого в gpg4win (для пользователей Windows) нужно щелкнуть правой кнопкой мыши на файле .asc и выбрать дополнительные параметры GpgEX > Verify. В GPGTools (пользователи macOS) нужно щелкнуть правой кнопкой мыши файл .asc и выбрать Services > OpenPGP: Verify Signature of File.
В Windows программа Kleopatra должна открыть диалоговое окно, в котором говорится:
Signature created on 2019-03-06 23:36:08 With certificate: 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6 The used key is not certified by you or any trusted person.
Kleopatra обнаружила, что файл был подписан ключом PGP с отпечатком 6694 D8DE 7BE8 EE56 31BE D950 2BD5 824B 7F94 70E6, тем же отпечатком, который, как мы знаем, принадлежит настоящему Томасу Вётлину. Такой отпечаток чрезвычайно сложно подделать.
В macOS должно появиться окно, в котором сказано:
electrum-3.3.4.dmg Signed by: Thomas Voegtlin (https://electrum.org) (7F9470E6) - undefined trust
Примечание: если у вас есть проблемы с проверкой подписи, потому что ваше ПО GPG говорит, что подпись была сгенерирована с использованием отпечатка, который отличается от того, который вы ожидали увидеть, тогда возможно, что для подписи использовался подключ. Ключ PGP может иметь «подключ», предназначенный для подписи файлов вместо первичного ключа. Ищите отпечатки подраздела в деталях ключа, который вы импортировали (в Kleopatra (Windows) или GPG Keychain (macOS)). Отпечаток первичного ключа и подключа представляют собой шестнадцатеричные числа из 40 символов.
Мы убедились, что файлы, загруженные с https://electrum.org, подписаны Томасом Вётлином, разработчиком Electrum, исходя из следующих предположений:
- Отпечаток ключа Грегори Максвелла в этом видео правильный.
- Веб-сайт https://pgp.cs.uu.nl предоставил правильную информацию о путях доверия.
- Программа GPG корректно проверила подпись.
В идеальном мире мы бы присутствовали на "вечеринке по верификации ключей" с разработчиками биткоина (Грегори Максвеллом, Люка Дашжраом, Томасом Вётлином, Владимиром ван дер Лааном, Питером Тоддом и так далее). Тогда мы бы были полностью уверенны в подлинности загружаемого программного обеспечения биткоина. Но на практике это пока самый простой метод проверки, поскольку он требует лишь предположения о том, что отпечаток ключа PGP в видео Грегори Максвелла является реальным ключом реального Грегори Максвелла.
Этот метод также применяется для проверки подписей в других кошельках, в том числе Bitcoin Core.