Как проверить клиент при обновлении новой технологии Биткойн? Многие люди не знают, как проверить клиент. Надеюсь, эта статья окажется для вас полезной. .
Чтобы убедиться, что установленный вами биткойн-клиент безопасен, необходимо выполнить три важных шага:
Проверьте ключ OpenPGP;
Проверить подпись;
Проверить сам документ;
Обратите внимание, что, например, я буду проверять свою собственную подпись в клиенте Bitcoin Knots v0.19.0.1.knots20200104 для ppc64le Linux, тогда как для проверки чужой подписи или других файлов вам нужно будет изменить командную строку на «Использовать это». отпечаток пальца или имя файла.
Шаг 0. Установите программное обеспечение для шифрования GNU Privacy Guard (GPG).
Прежде чем начать, вам необходимо убедиться, что у вас установлен инструмент GNU Privacy Guard (GPG), который необходим для проверки шифрования файлов.
Если вы используете систему на базе Linux, которая обычно устанавливается через поставщика операционной системы (в последнее время она обычно устанавливается по умолчанию), вы можете проверить это, запустив gpg –version. Если нет, попробуйте установить его с помощью одной из следующих команд (если это не помогло, перейдите к следующей):
apt-get установить gnupg
dnf установить gnupg2
ням, установи gnupg2
выйти из приложения-crypt/gnupg
pacman -S gnupg
apk добавить gnupg
Если вам не повезло и вы используете операционную систему Windows или macOS, вы можете скачать GnuPG с официального сайта, но я не знаю какого-либо безопасного способа проверить такую загрузку, и, конечно, они предоставляют подпись, но вот в чем загвоздка. Проблема с яйцом: вы не сможете проверить эти подписи, пока не установите хорошую копию!
Шаг 1. Проверьте ключ OpenPGP
Этот шаг, возможно, является самой сложной частью процесса проверки: вам необходимо подтвердить, что ключ, который вы на самом деле используете, является правильным и выдан тем, кому вы доверяете. Если вы не будете осторожны, вы можете получить поддельный ключ «Люк Дашджр»!
Каждый ключ OpenPGP имеет «отпечаток пальца», состоящий из 40 шестнадцатеричных символов (цифры 0–9 и aF), с пробелами, которые иногда отображаются для облегчения чтения. Вы знаете, что у вас правильный ключ, если убедитесь, что отпечаток ключа, который вы используете, совпадает с отпечатком доверенного подписывающего лица.
Получите ключ или отпечаток пальца
Самый безопасный способ проверить ключ — встретиться лично и подтвердить «отпечаток пальца» ключа. Почти никто не помнит отпечаток своего ключа, поэтому нам, возможно, придется искать его на своем ноутбуке или телефоне, а иногда (обычно на конференции) может присутствовать «ключ, подписывающий ключ», группа людей на конференции, подтверждающая другие отпечатки пальцев, каждый участник либо читал вслух свой отпечаток пальца, либо вручную подтверждал, что то, что все видели или слышали, было правильным. Если вы когда-нибудь будете участвовать в подобных встречах, это хороший способ проверить сразу несколько ключей.
Если вы не заинтересованы или у вас нет возможности встретиться лично, в идеале вам следует проверить ключ из нескольких источников. Иногда на конференциях публикуются презентационные видеоролики, в слайдах которых может присутствовать ключевой отпечаток. Конечно, из-за существования новых технологий, таких как «дипфейки», имейте в виду, что слайдами в видео можно легко манипулировать.
Разработчики обычно публикуют свои ключи или отпечатки пальцев на своем веб-сайте, а может быть и каким-либо другим способом (например, мой ключ или отпечаток пальца находится на моем личном сайте bitcoinknots.org, bitcoin.org и GitHub).
Если вы установили копию программного обеспечения, которому доверяете, иногда она будет содержать ключи, необходимые для проверки обновлений (в настоящее время Bitcoin Core содержит только исходный код).
Проверьте отпечаток ключевого файла
Чтобы просмотреть отпечаток файла ключа, вы можете использовать следующую команду:
gpg –import-options show-only –import –with-fingerprint luke-jr.asc
Это выведет много информации о файле ключа, соответствующая информация находится вверху:
pub rsa8192 23 марта 2012 г. [SC] [срок действия истекает: 09 июня 2020 г.]
Э463 А93Ф 5Ф31 17ЭЭ ДЭ6К 7316 БД02 9424 21Ф4 889Ф
В этом примере мой отпечаток ключа — E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F.
ПРИМЕЧАНИЕ. Если GPG сообщает, что срок действия ключа истек, возможно, это нормально! На шаге 2 вы обновитесь до последней версии того же ключа, что обычно продлевает срок действия.
Импортировать проверенные ключи
Независимо от того, как вы проверяете ключ, вы должны помнить, какой ключ вы использовали, чтобы будущие обновления могли подтвердить, что использовался тот же ключ. Даже если вы пропустите этап проверки ключа (который небезопасен), по крайней мере, это гарантирует, что ваши обновления будут иметь одну и ту же подпись.
Когда вы уверены, что у вас правильный ключ, вы можете импортировать его следующим образом (замените luke-jr.asc на имя файла, содержащего нужный ключ):
gpg –import < luke-jr.asc
Или, если у вас есть только отпечатки пальцев, вот так (введите отпечаток ключа, который хотите использовать!):
gpg –keyserver hkp://keyserver.ubuntu.com –recv-key E463A93F5F3117EEDE6C7316BD02942421F4889F
Шаг 2. Проверьте подпись
Теперь, когда вы знаете, какой ключ использовать для проверки, следующим шагом будет проверка правильности подписи.
Прежде чем приступить к этому шагу, вы должны убедиться, что ваша копия ключа подписывающего лица обновлена. Если вы этого не сделаете, вы можете получить сообщение о том, что срок действия ключа истек. Запустите (используя нужный отпечаток пальца):
gpg –keyserver hkp://keyserver.ubuntu.com –refresh-key E463A93F5F3117EEDE6C7316BD02942421F4889F
Далее (помимо проверяемого файла программы) вам понадобятся два файла: файл «.assert», содержащий список отпечатков файлов, и файл «.assert.sig», содержащий подписи этого списка. Это связано с тем, что мы не подписываем сами файлы программы, а снимаем отпечатки пальцев со всех файлов и затем подписываем этот список. Поэтому вам нужны оба файла.
Пара файлов «утверждения» Bitcoin Core размещена здесь: https://github.com/Bitcoin-Core/gitian.sigs/find/master;
Пары файлов «утверждения» для биткойн-узлов размещены здесь: https://github.com/bitconinkots/gitian.sigs/find/Knots.
Обратите внимание, что для каждого подписывающего лица существует отдельная пара файлов. Если вы проверяете, подписали ли ваш файл несколько человек (что вам следует сделать), вам необходимо проверить каждую пару файлов. Кроме того, вам необходимо убедиться, что вы получаете ту версию файла, которую хотите проверить!
Найдя нужный файл в списке, щелкните ссылку, чтобы открыть файл в браузере, затем щелкните правой кнопкой мыши кнопку «Raw» или «Загрузить» и выберите «Сохранить ссылку как».
Если у вас есть эти два файла «утверждения», вы можете проверить подпись, запустив (измените имя файла на конкретный .assert.sig)
gpg –verify bitcoin-core-linux-0.19-build.assert.sig
Если этот шаг пройдет успешно, вы получите следующий результат:
gpg: Подпись сделана Вс, 19 января 2020 г., 03:47:15 UTC
gpg: используя ключ RSA E463A93F5F3117EEDE6C7316BD02942421F4889F
gpg: Хорошая подпись от «Люка Дашджара» [окончательное]
Обратите внимание, что отпечаток ключа выделен жирным шрифтом. Отпечаток пальца должен совпадать с ключом, который вы подтвердили на шаге 1, иначе он может быть подписан кем-то другим! Часть о «хорошей подписи» также важна, тогда как имя и адрес электронной почты не важны, поскольку оба они могут быть поддельными, если отпечаток пальца неправильный.
Предполагая, что все прошло хорошо, теперь вы знаете, что файл «.assert» гарантирован контроллером указанного ключа, и можете приступить к проверке того, что ваш фактический файл программы соответствует тому, который указан в этом файле «.assert».
Шаг 3. Проверьте сам файл.
Чтобы аутентифицировать программный файл, его сначала необходимо криптографически хешировать (по сути, извлечь его отпечаток).
Это делается с помощью простой команды (будьте осторожны и замените фактическое имя файла, который вы проверяете!):
Linux: sha256sum bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
Windows: certUtil -hashfile bitcoin-0.19.0.1.knots20200104-win64.zip SHA256
macOS: shasum -a 256 bitcoin-0.19.0.1.knots20200104-osx-unsigned.dmg
Это выведет что-то вроде этого:
d370692590c4546ac0de250da91c6c288d9ee5252f1a4b857a5b80c4e3d81149 bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
Это отпечаток содержимого файла, за которым следует указанное имя файла.
Теперь откройте файл «.assert» в любом текстовом редакторе или средстве просмотра и найдите отпечаток пальца. Он должен находиться в разделе «out_manifest» вверху. Если вы дойдете до «in_manifest» или «base_manifests», значит, вы зашли слишком далеко.
Если вы найдете его в файле «.assert», значит, вы подтвердили, что у вас есть тот же файл, за который поручилась подписывающая сторона (вы увидите его в файле «.assert» справа от отпечатка пальца, имя которого соответствует имени файла). , который может быть таким же, как ваш).
А если он отсутствует в файле «.assert», это может означать, что вы используете неправильный файл «.assert» или что ваш файл не соответствует (в этом случае вы увидите рядом с ожидаемым именем файла другое имя). отпечаток пальца). Если файл указан в списке, но имеет другой отпечаток, не открывайте его, а сохраните (мы можем попросить вас предоставить копию) и свяжитесь со службой безопасности соответствующего проекта.