Как проверить Bitcoin Core: верификация контрольной суммы (checksum) и подписи выпуска (release signatures)
Тема этой статьи навеяна сообщением нашего подписчика: «Я загрузил Bitcoin Core с официального сайта bitcoin.org и никогда ранее не проверял ключи и не проверял подписи релизов. Нужно ли мне проверять программное обеспечение? Как проверить основное программное обеспечение Биткойн (Bitcoin Core)?».
Должен ли я проверить Bitcoin Core?
Не только Bitcoin Core! Вы должны проверять каждое программное обеспечение, прежде чем устанавливать его на свой компьютер. Особенно, если это ваш основной компьютер, который содержит кошелек, секретные ключи и другую личную информацию.
Зачем проверять Bitcoin Core?
Проверка загруженных файлов не является обязательной, но настоятельно рекомендуется. Проверяя двоичные файлы Bitcoin Core, вы убедитесь, что вы не загрузили вредоносную или поддельную версию кошелька Bitcoin, что может привести к потере средств.
Независимо от того, загружаете ли вы Bitcoin Core с веб-сайта bitcoin.org или с веб-сайта bitcoincore.org, вам необходимо проверить клиент перед установкой. Потому что злоумышленник может изменить файлы, загруженные с официального сайта Биткойн, несколькими способами.
Например: злоумышленник может скомпрометировать сайт bitcoincore.org или bitcoin.org и изменить информацию, размещенную на этой странице, в своих интересах. Они могут запустить поддельный фишинговый веб-сайт и провести атаку «man-in-the-middle» на людей, которые посещают исходный веб-сайт Bitcoin.
Каким-то образом злоумышленник может обманом заставить вас загрузить поддельный биткойн-клиент, по сути, клон биткойн-кошелька, содержащий вредоносную ошибку.
При загрузке ничего не происходит, проблема возникает только при установке и запуске программы. Вредоносная программа может украсть все ваши монеты, может стереть ваш компьютер и даже может установить ошибку на вашем компьютере, которая запускает атаки на сеть Биткойн или действует как инструмент наблюдения.
Проверка применяется к загруженному файлу, и вам необходимо выполнить проверку, прежде чем устанавливать его на свой компьютер. Как только вы установите его, будет слишком поздно пользоваться проверкой: если программное обеспечение, которое вы установили, было скомпрометированной версией, оно могло уже нанести ущерб.
Поэтому независимо от того, устанавливаете ли вы Bitcoin Core в первый раз или обновляете программное обеспечение до последней версии, настоятельно рекомендуется проверить программное обеспечение после загрузки. Приступайте к установке только после успешной проверки.
Так как же проверить основное программное обеспечение Биткойн? Необходимо провести проверку контрольной суммы (checksum) и проверка ключей подписи (release signing keys) Bitcoin Core.
Проверка двоичных файлов Bitcoin Core - Binaries Bitcoin Core
Не все предпочитают использовать Bitcoin Core. Это один из первых кошельков, и в основном те, кто запускает полный узел, используют основное программное обеспечение Биткойн.
Поскольку это проект с открытым исходным кодом, исходный код доступен для ознакомления любому. Однако важно убедиться, что код, который вы используете, не был подделан или изменен каким-либо образом. Один из способов сделать это — проверить цифровые подписи официальных двоичных файлов Bitcoin Core.
В этой статье мы объясним, как проверить подпись двоичных файлов Bitcoin Core, а также как убедиться, что подпись действительна.
Как скачать и проверить кошелек Bitcoin Core
Вы можете скачать Bitcoin Core со следующих сайтов:
Официальный сайт Bitcoin: https://bitcoin.org/en/download
Или
Сайт Bitcoin Core: https://bitcoincore.org/en/download/
По какой-то причине сайт bitcoin.org не обновился до последней версии. Он по-прежнему отображает Bitcoin Core 22.0. Последняя версия Bitcoin Core 24.0.1 теперь доступна по адресу: https://bitcoincore.org/en/download/
Эта последняя версия включает в себя новые функции, различные исправления ошибок и улучшения производительности. Программное обеспечение доступно для Windows, Mac и Linux. Однако следующее руководство предназначено для Windows. В любом случае шаги по проверке подписи программного обеспечения Биткойн одинаковы как для Linux, так и для MacOS.
Выберите свою ОС и загрузите файл .exe или zip-файл.
Наряду с этим также загрузите следующее в то же место, где вы загрузили Bitcoin Core:
- Бинарные хэши (двоичные хэши) SHA256
- Хэш-подписи SHA256
Вы должны скачать файл bitcoin-<version>-<architecture>.<tar.gz|zip|exe>, SHA256SUMS.asc и SHA256SUMS из официального источника.
Теперь у вас есть все файлы, необходимые для проверки программного обеспечения.
Начнем с проверки хэша контрольной суммы загруженного файла. Файл SHA256SUMS содержит хэши контрольных сумм двоичных файлов, которые являются уникальным значением, представляющим содержимое файла. Щелкните правой кнопкой мыши по файлу SHA256SUMS и откройте его в текстовом редакторе или блокноте++. Вы увидите строки, подобные этой:
537e066b952b35b169259b6c4061bb59fa65034415d4b308a5f39b83e8a49b02 bitcoin-24.0.1-aarch64-linux-gnu-debug.tar.gz
0b48b9e69b30037b41a1e6b78fb7cbcc48c7ad627908c99686e81f3802454609 bitcoin-24.0.1-aarch64-linux-gnu.tar.gz
a45ea04386b93f3cf168e6740a265b69312081ebd834e10dc2f7fc974da71711 bitcoin-24.0.1-arm-linux-gnueabihf-debug.tar.gz
37d7660f0277301744e96426bbb001d2206b8d4505385dfdeedf50c09aaaef60 bitcoin-24.0.1-arm-linux-gnueabihf.tar.gz
4cc2fe2e2f5e6068ecbf922564f2356a5388e4d00d8f852062f589b9577a21de bitcoin-24.0.1-arm64-apple-darwin.dmg
490db50df212edf26d08523a5515ecd3ebb3580b671ee5e7c039f04e065f2e4c bitcoin-24.0.1-arm64-apple-darwin-unsigned.dmg
52c2bbf4cb67f4a0e68891844f605f12ff09b3b414985614f7c886561a3887cb bitcoin-24.0.1-arm64-apple-darwin-unsigned.tar.gz
90ed59e86bfda1256f4b4cad8cc1dd77ee0efec2492bcb5af61402709288b62c bitcoin-24.0.1-arm64-apple-darwin.tar.gz
68c0e5bd44e5e6ab2e1e0fe3dff2f8707cbce0c7c480c195c8ec484f65efa3d7 bitcoin-24.0.1-codesignatures-24.0.1.tar.gz
12d4ad6dfab4767d460d73307e56d13c72997e114fad4f274650f95560f5f2ff bitcoin-24.0.1.tar.gz
91c2c7e1721e7e49b2000c748d8da856635e8bff517a4da10ab099a9f1c2dcbb bitcoin-24.0.1-powerpc64-linux-gnu-debug.tar.gz
7590645e8676f8b5fda62dc20174474c4ac8fd0defc83a19ed908ebf2e94dc11 bitcoin-24.0.1-powerpc64-linux-gnu.tar.gz
097d847e24a0245483b803dbca84cbf97cdf71d3bdafdd42747437e6ca394523 bitcoin-24.0.1-powerpc64le-linux-gnu-debug.tar.gz
79e89a101f23ff87816675b98769cd1ee91059f95c5277f38f48f21a9f7f8509 bitcoin-24.0.1-powerpc64le-linux-gnu.tar.gz
8addb8f638891af3d82602def0036916cfdc137a7cfaf876536d0ff79a95eb11 bitcoin-24.0.1-riscv64-linux-gnu-debug.tar.gz
6b163cef7de4beb07b8cb3347095e0d76a584019b1891135cd1268a1f05b9d88 bitcoin-24.0.1-riscv64-linux-gnu.tar.gz
0c3359c6700b30d0973cb6baa3dd93933e772ab56ed5eebcf509249d6c9f8b34 bitcoin-24.0.1-x86_64-apple-darwin.dmg
695adfe105f3e34989c5a5c19aa15a39ebcd288e0ae0ea9f4650d32cea0a2ead bitcoin-24.0.1-x86_64-apple-darwin-unsigned.dmg
31c272a5c4c6d5ee14cdcc3cf8e45e5319efdcdf57de62be59a7dd724265154d bitcoin-24.0.1-x86_64-apple-darwin-unsigned.tar.gz
e2f751512f3c0f00eb68ba946d9c829e6cf99422a61e8f5e0a7c109c318674d0 bitcoin-24.0.1-x86_64-apple-darwin.tar.gz
10358db0e478f88d7c43de9fb6651e052164d0055fddcf32fb7d3e82ef63f0da bitcoin-24.0.1-x86_64-linux-gnu-debug.tar.gz
49df6e444515d457ea0b885d66f521f2a26ca92ccf73d5296082e633544253bf bitcoin-24.0.1-x86_64-linux-gnu.tar.gz
be3f8bcbe5998209acfca8e1f253b58b5b74b2ca47515d3966b50de5078feec7 bitcoin-24.0.1-win64-setup.exe
0b7a829f8f768b60494818040f64fec525f93928b71404d76d04a216ebed1f28 bitcoin-24.0.1-win64-debug.zip
ebd8643c3e6ee1d6f09f792351b8557b826d1ebb9ecc07b8eeabf0b2ab2ab197 bitcoin-24.0.1-win64-setup-unsigned.exe
9a81222ac1c925ccc008014d41f7e5962a49b57a34cd7d203c896a489abe064f bitcoin-24.0.1-win64-unsigned.tar.gz
8784ce304f22c495392d3adfd7fc2c645d093db9bd4d42666c41adf540539fff bitcoin-24.0.1-win64.zip
Теперь вам нужно вычислить контрольную сумму загруженного файла и сравнить ее со значением, показанным в файле SHA256SUMS. Если он совпадает, то проверка контрольной суммы прошла успешно.
В Интернете есть несколько утилит MD5 и sha256sum для вычисления контрольной суммы файла. Мы не будем вдаваться в это. Вместо этого проведем простую проверку с использованием командной строки, которую вы можете ввести в оболочке Windows Power.
Сначала перейдите в папку, в которую вы скачали файлы. Shift + Щелкните правой кнопкой мыши и выберите «Открыть окно PowerShell», чтобы открыть Windows PowerShell.
Теперь все, что вам нужно сделать, это ввести
CertUtil -hashfile name-of-the-bitcoin-file sha256
Например, это должно выглядеть так:
CertUtil -hashfile bitcoin-24.0.1-win64-setup.exe sha256
Нажмите Enter, и он отобразит результат хеширования:
Вот и все! Теперь скопируйте хэш и проверьте, соответствует ли этот хеш показанному в файле SHA256SUMS. Обратите внимание, что следующий файл содержит хэши контрольных сумм всех двоичных файлов. Убедитесь, что хэш контрольной суммы, созданный в окне командной строки «be3f8bcbe5998209acfca8e1f253b58b5b74b2ca47515d3966b50de5078feec7», совпадает с хэшем, указанным в файле контрольной суммы. Убедитесь, что это точно такое же имя файла. В данном случае это «bitcoin-24.0.1-win64-setup.exe».
Вот и все! Если файл, который вы скачали, попадает в список уже проверенных хэшей, то файл действителен.
Но подождите! Пока не устанавливайте загруженный файл. У нас есть еще один шаг. До сих пор мы только проверяли контрольную сумму, чтобы увидеть, совпадает ли хэш. Но мы до сих пор не знаем, заслуживают ли доверия хэши. Только после проверки можно считать, что сам файл заслуживает доверия и безопасен в использовании.
Файл SHA256SUMS содержит хэши контрольных сумм двоичных файлов. Файл SHA256SUMS на веб-сайте Bitcoincore.org проверен и криптографически подписан несколькими ключевыми подписантами. Подписи тех, кто подписал файл SHA256SUMS, хранятся в файле SHA256SUMS.asc. Чтобы завершить проверку файла, который вы загрузили, вам необходимо проверить подпись, то есть вам необходимо проверить SHA256SUMS с файлом SHA256SUMS.asc.
Зачем проверять подписи?
Проверка хэша файла в порядке. В случае, если злоумышленник заменил исполняемый файл вредоносным, проверка хэша завершится неудачно, и вы узнаете, что файл был подделан. Но что, если злоумышленник скомпрометировал веб-сайт, получил доступ к хостингу веб-сайта и сумел заменить как файл установщика, так и файл контрольной суммы?
Чтобы убедиться, что вы используете безопасное программное обеспечение, и что это не плохая версия, замененная каким-то злоумышленником, также рекомендуется проверять подписи в дополнение к проверке хэша.
Проверка подписи PGP является дополнительной защитой. Проверяя подписи, вы можете быть уверены, что файл контрольной суммы является исходным файлом, а ключи в нем не подделаны каким-то самозванцем. Подписи тех, кто подписал файл SHA256SUMS, хранятся в файле SHA256SUMS.asc. Мы надеемся, что у вас также загружен файл SHA256SUMS.asc.
Чтобы проверить подписи, которые должны подтвердить целостность Bitcoin Core с помощью PGP, вам понадобится GNU Privacy Guard (GPG), установленный на вашем компьютере. GPG — это бесплатная реализация стандарта OpenPGP с открытым исходным кодом для шифрования и подписи данных.
GnuPG
Для Windows рекомендуем скачать Gpg4win https://www.gpg4win.org/
Загрузите Gpg4win на свой компьютер. (необязательно) Проверьте целостность загруженного установщика Gpg4win. После этого установите gpg4win.
Как работает проверка подписи?
После установки Gpg4win перейдите в Program Files >> Gpg4win >> bin и откройте kleopatra.exe.
Теперь, чтобы проверить ключи подписи выпуска Bitcoin Core, мы импортируем публичный ключ подписавшего в программное обеспечение GPG и используем его для проверки файла подписи. Если подпись действительна, то kleopatra выдаст сообщение о том, что подпись верная и сделана указанным ключом. Если подпись недействительна, будет выведено сообщение об ошибке.
Раньше был только один подписывающий. Все релизы Биткойн подписаны ключом релизов Владимира Дж. ван дер Лаана (Wladimir J. van der Laan) с отпечатком пальца (fingerprint):
01EA 5486 DE18 A882 D4C2 6845 90C8 019E 36C2 E964
Срок действия этого сертификата истек, что означает, что разработчик Владимир Дж. ван дер Лаан больше не использует этот отпечаток пальца для подписи выпуска Bitcoin Core. Фактически, начиная с версии Bitcoin Core 22.0 процедура проверки подписи изменилась. Вместо одного подписывающего лица теперь существует несколько лиц, каждый из которых имеет уникальный публичный ключ.
Вот список ключей подписантов:
- 0xb10c@gmail.com: 0CCBAAFD76A2ECE2CCD3141DE2FFD5B1D88CA97D
- Andrew Chow achow101@gmail.com: 152812300785C96444D3334D17565732E08E5E41
- Ben Carman benthecarman@live.com: 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8
- Antoine Poinsot darosior@protonmail.com: 590B7292695AFFA5B672CBB2E13FC145CD3F4304
- Duncan Dean duncangleeddean@gmail.com: 28F5900B1BB5D1A4B6B6D1A9ED357015286A333D
- Stephan Oeste stephan@oeste.de: 637DB1E23370F84AFF88CCE03152347D07DA627C
- Michael Ford fanquake@gmail.com: CFB16E21C950F67FA95E558F2EEB9F5CC09526C1
- Oliver Gugger gugger@gmail.com: 6E01EEC9656903B0542B8F1003DB6322267C373B
- Hennadii Stepanov hebasto@gmail.com: D1DBF2C4B96F2DEBF4C16654410108112E7EA81F
- Jon Atack jon@atack.com: 82921A4B88FD454B7EB8CE3C796C4109063D4EAF
- Wladimir J. van der Laan laanwj@gmail.com: 9DEAE0DC7063249FB05474681E4AED62986CD25D
- Willy Ko willyk@syscoin.org: 79D00BAC68B56D422F945A8F8E3A8F3247DBCBBF
- vertion vertion@protonmail.com: 28E72909F1717FE9607754F8A7BEB2621678D37D
- Sjors Provoost sjors@sprovoost.nl: ED9BDF7AD6A55E232E84524257FF9BDBCC301009
- Pieter Wuille pieter@wuille.net: 3EB0DEE6004A13BE5A0CC758BF2978B068054311
- jackielove4u jackielove4u@hotmail.com: 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499
- Oliver Gugger gugger@gmail.com: F4FC70F07310028424EFC20A8E4256593F177720
- unknown: 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C
- Will Clark will8clark@gmail.com: 74E2DEF5D77260B98BC19438099BAD163C70FBFA
Ключи подписантов можно проверить здесь, они перечислены в репозитории Bitcoin: https://github.com/bitcoin/bitcoin/blob/master/contrib/builder-keys/keys.txt.
Это все публичные ключи разработчика, которые подписали файл контрольных сумм.
Чтобы проверить подпись файла, вам не нужно загружать все эти публичные ключи в базу данных ключей GPG.
Вы можете импортировать ключ только одного из разработчиков Bitcoin Core, которому вы доверяете, но лучше выбрать несколько человек из списка. Мы будем использовать их ключи для проверки подписи, подтверждающей достоверность файла контрольной суммы, который вы ранее использовали для проверки двоичных файлов.
Шаги для проверки подписи — Проверка правильности подписи
Теперь, прежде чем мы импортируем ключи, откройте kleopatra, нажмите расшифровать/проверить, перейдите в папку загрузки и откройте файл SHA256SUMS.
После открытия он начнет проверять SHA256SUMS с помощью SHA256SUMS.asc.
После завершения проверки вы увидите следующий результат:
Verified ‘SHA256SUMS’ with ‘SHA256SUMS.asc’: 12 signatures could not be verified.
Это означает, что файл был проверен, но подписи не могут быть проверены. Вам необходимо импортировать любой из ключей разработчика. Вы можете найти сертификат на сервере ключей или импортировать его из файла.
Если проверка не удалась, в результате вы получите следующее:
Verified ‘SHA256SUMS’ with ‘SHA256SUMS.asc’: Verification failed
Это означает, что файл был подделан и не следует продолжать установку.
Нажмите «Поиск» на любом из отпечатков пальцев (fingerprint), показанных справа. Он начнет поиск на сервере. Как только поиск будет завершен, он отобразит их имя, адрес электронной почты и другую информацию. Выберите его и нажмите импорт.
Перед импортом убедитесь, что публичный ключ, который вы импортируете, действительно принадлежит основной команде Bitcoin.
Ключи перечислены в репозитории Bitcoin на Github: https://github.com/bitcoin/bitcoin/blob/master/contrib/builder-keys/keys.txt.
А также они доступны на сайте Bitcoin.org. Убедитесь, что отпечаток пальца, который вы импортируете, совпадает с отпечатком, указанным на веб-сайте.
Также рекомендуется проверять подписи и хэши двоичных файлов из нескольких источников и подписи разработчиков. Вместо того, чтобы импортировать только один ключ, импортируйте ключи нескольких разработчиков Bitcoin, которым вы доверяете.
После импорта сертификата вы получите сообщение «Вы импортировали новый сертификат (открытый ключ).
Перевод скрина:
Чтобы пометить сертификат как действительный (зеленый), его необходимо сертифицировать. Сертификация означает, что вы проверяете отпечаток.
Вот несколько советов, как это сделать:
Телефонный звонок этому человеку.
Используя визитную карточку.
Подтвердив это на надежном веб-сайте.
Вы хотите начать этот процесс сейчас?
Нажмите пока «отменить». Мы проверим сертификат позже.
Программа по-прежнему будет импортировать сертификат. Только он еще не сертифицирован. Если вы сейчас проверите файлы SHA256SUMS с помощью SHA256SUMS.asc, вы получите следующий результат:
Verified ‘SHA256SUMS’ with ‘SHA256SUMS.asc’: 12 signatures could not be verified.
Signature created on Wednesday, December 07, 2022 10:00:36 PM
With certificate:
Andrew Chow <andrew@achow101.com> (1756 5732 E08E 5E41)
The used key is not certified by you or any trusted person.
Не беспокойтесь о предупреждении «Используемый ключ не сертифицирован вами или каким-либо доверенным лицом».
GnuPG в основном говорит вам, что подпись соответствует этому приватному ключу (ваш файл имеет действительную подпись и не был подделан), однако он еще не знает, заслуживает ли этот приватный ключ доверия.
Это означает, что у вас еще нет доверенной подписи. Все, что вы сделали, это скачали подпись из интернета (из репозитория Bitcoin/ Github), и вы не знаете человека лично, и он не передал вам свой отпечаток пальца.
В любом случае, поскольку вы можете проверить ключи как на веб-сайте Биткойн, так и на Github https://github.com/bitcoin/bitcoin/blob/master/contrib/builder-keys/keys.txt, вы можете им доверять.
На данный момент мы закончили проверку подписи. Следующий шаг не является обязательным.
Подтвердить сертификат
Чтобы сертифицировать другие сертификаты, вам сначала нужно создать сертификат OpenPGP для себя.
Откройте kleopatra, перейдите в файл >> Новая пара ключей Open PGP. Введите свое имя, адрес электронной почты, нажмите «Дополнительные настройки», выберите «Срок действия не истекает никогда» и нажмите «ОК».
Вы создали для себя сертификат OpenPGP, который можете использовать для сертификации других сертификатов, шифрования файлов и т. д.
После создания сертификата вы получите сообщение об успешном завершении «Новый открытый сертификат PGP был успешно создан» вместе с отпечатком вашего нового сертификата. Нажмите «ОК».
Теперь перейдите на вкладку сертификаты и выберите сертификат разработчика Bitcoin, который вы импортировали, но еще не сертифицировали. Щелкните правой кнопкой мыши и выберите «сертифицировать». Он покажет отпечаток разработчика. Проверьте отпечаток пальца и подтвердите свое удостоверение личности.
Теперь, если вы расшифруете/проверите SHA256SUMS с помощью SHA256SUMS.asc, вы получите следующий результат:
Verified ‘SHA256SUMS’ with ‘SHA256SUMS.asc’: 12 valid signatures.
Signature created on Wednesday, December 07, 2022 10:00:36 PM
With certificate:
Andrew Chow <andrew@achow101.com> (1756 5732 E08E 5E41)
The signature is valid and the certificate's validity is fully trusted
Даже если вы импортировали только один сертификат, он будет отображаться как 12 действительных подписей.
Нажмите показать журнал аудита для получения дополнительной информации:
Вы должны увидеть строку, которая гласит:
Signature made 07-Dec-22 10:00:36 PM
gpg: using RSA key 152812300785C96444D3334D17565732E08E5E41 (primary key fingerprint)
gpg: issuer "andrew@achow101.com"
Good signature from "Andrew Chow <andrew@achow101.com>"
Вот и все! Мы успешно проверили, что файл контрольной суммы подписан PGP одним из ключей подписи выпуска. Теперь вы можете быть уверены, что используемый вами двоичный файл Bitcoin Core не был подделан и безопасен для использования. Для обеспечения безопасности и целостности сети Bitcoin важно проверять подпись всякий раз, когда вы загружаете новую версию.
Итоги (кратко)
Что мы в основном сделали, так это скачали файл установщика, файл контрольной суммы и файл подписи.
Файл подписи SHA256SUMS.asc содержит информацию о ключах, которые использовались для подписи файла SHA256SUMS.
Файл SHA256SUMS содержит набор хэшей для каждого бинарного файла, выпущенного разработчиками Bitcoin. Все эти хэши криптографически подписаны разработчиками.
Сначала мы вычислили хэш SHA256 загруженного вами биткойн-файла и убедились, что вычисленный хэш совпадает с хэшем, указанным в файле SHA256SUMS.
Затем, чтобы убедиться, что текстовый файл контрольной суммы, который является SHA256SUMS, не подделан, мы дополнительно выполнили проверку подписи этого файла, чтобы мы могли доверять этим хэшам в файле.
Мы проверили целостность Bitcoin Core с помощью PGP. Мы использовали PGP для проверки подписи и убедились, что файл является законным.
Теперь, когда процесс проверки завершен, вы можете безопасно установить Bitcoin Core на свой компьютер.