如何验证 Bitcoin Core 软件签名

来自 简书

btc address: 1FmWXNJT3jVKaHBQs2gAs6PLGVWx1zPPHf

eth address: 0xd91c747b4a76B8013Aa336Cbc52FD95a7a9BD3D9

有多重要

了解下 Electrum钱包的钓鱼事件

GPG介绍

1991年,程序员Phil Zimmermann开发了加密软件PGP,被用来加密邮件。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。

签名:是为了接收方能够确认信息确实来自信息所声称的发送方,并且没有在传递过程中被第三方修改。在签名操作中,OpenPGP 首先对信息进行取散列值的操作,然后使用信息发送者的私钥加密这个散列值,获得一个数字签名,并将签名和原信息一同发送。接收方的 OpenPGP 软件也根据协议计算信息的散列值,并用信息发送者的公钥解密数字签名中的散列值信息,能解密就说明信息的发送者确实是预想的发送方,而两个散列值比对,就能确定信息并未被篡改。

安装

sudo apt-get install gnupg

发现key

下载文件 bitcoin.org/bin/bitcoin…

文件内容是这样的

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

5659c436ca92eed8ef42d5b2d162ff6283feba220748f9a373a5a53968975e34  bitcoin-0.17.1-aarch64-linux-gnu.tar.gz
aab3c1fb92e47734fadded1d3f9ccf0ac5a59e3cdc28c43a52fcab9f0cb395bc  bitcoin-0.17.1-arm-linux-gnueabihf.tar.gz
b1e1dcf8265521fef9021a9d49d8661833e3f844ca9a410a9dd12a617553dda1  bitcoin-0.17.1-i686-pc-linux-gnu.tar.gz
6aa567381b95a20ac96b0b949701b04729a0c5796c320481bfa1db22da25efdb  bitcoin-0.17.1-osx64.tar.gz
e3d785d800b71d277959d15b2c2b33d44dd72c1288e559928a40488dd935c949  bitcoin-0.17.1-osx.dmg
3e564fb5cf832f39e930e19c83ea53e09cfe6f93a663294ed83a32e194bda42a  bitcoin-0.17.1.tar.gz
e9245e682126ef9fa4998eabbbdd1c3959df811dc10df60be626a5e5ffba9b78  bitcoin-0.17.1-win32-setup.exe
6464aa2d338f3697950613bb88124e58d6ce78ead5e9ecacb5ba79d1e86a4e30  bitcoin-0.17.1-win32.zip
fa1e80c5e4ecc705549a8061e5e7e0aa6b2d26967f99681b5989d9bd938d8467  bitcoin-0.17.1-win64-setup.exe
1abbe6aa170ce7d8263d262f8cb0ae2a5bb3993aacd2f0c7e5316ae595fe81d7  bitcoin-0.17.1-win64.zip
53ffca45809127c9ba33ce0080558634101ec49de5224b2998c489b6d0fc2b17  bitcoin-0.17.1-x86_64-linux-gnu.tar.gz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBCAAGBQJcIeQ5AAoJEJDIAZ42wulk0NoQAIunIBT06bd2IhhxV/48NUvf
sgTto4qYrKuX5Vkn+kfGuMBvNpmILi5CiVtnucWo7fKM6k5IPMyBQuE9iDVDzT9i
YemA9Au8Xy2aIGmVriuQoXxk8b17wAMS9uw362A3nXCz3kA+BWMDuMfBp3P3NPM/
PeOg6n04Q7seO/zNdT5i/ysaFB/XA8szrQxCRukSrXeGMUpv79UbcWOu3+nfGit9
yYo/F2yO57Yacv597rKILlg29QxEVTqa5+slMdwuU7NP5AdAcQV4EtFqoCOqM7C7
JL/zZWYnTywK3l0hOuCBJiY86izutWME5xgm7Eh3ORj+K6ZYT4iXw2JIkTdumeuS
X0WDE3ShH4rb35IaQX75FJLp5R7hLTXiNgng7b8Xhy/62bJ75Ob4HVVSLG1Lkhps
vtml10br+78qXiofzk8zaAW6KaG7G9nbBa0hfDjUEsYzA6P5iWA+53ykupc82HNa
ZT2gk+wWhNhZOd/ANheriM0eqm/ZlK7oydYRRtf9Tamk+XJgREU1x8cWlMZcCPEE
uIUzb7/REvYSjwcwArYLCq/eFPfjQe7jcG2WexnpxxkKJBvu2v4zVw9LLUPll094
BAmfk34iJKhN2cGVhvjO0Q9GKk0B2HzvhD5xn1Hnlp+NbXVNbKonYvkB71D3GY4W
t/eRyv7Erfi4dhHf+8oQ
=UEoM
-----END PGP SIGNATURE-----
复制代码
gpg --verify SHA256SUMS.asc

# gpg: Signature made 2018/12/25 using RSA key ID 36C2E964
# gpg: Can't check signature: public key not found
复制代码

发现关键信息 RSA key ID 36C2E964

导入public key

gpg --keyserver hkp://keys.gnupg.net/ --recv-keys 36C2E964

# gpg: requesting key 36C2E964 from hkp server keys.gnupg.net
# gpg: key 36C2E964: "Wladimir J. van der Laan (Bitcoin Core binary release signing key) " not changed
# gpg: Total number processed: 1
# gpg:              unchanged: 1
复制代码

验证

gpg --verify SHA256SUMS.asc

gpg: Signature made Tue 25 Dec 2018 04:03:05 PM CST using RSA key ID 36C2E964
gpg: Good signature from "Wladimir J. van der Laan (Bitcoin Core binary release signing key) "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 01EA 5486 DE18 A882 D4C2  6845 90C8 019E 36C2 E964
复制代码

Good signature from ... 说明这个文件是由 Wladimir J. van der Laan 签发。

这只是验证了 SHA256SUMS.asc 文件是由 Wladimir签发的,我们还要验证Bitcoin Core的签名。

验证Bitcoin Core软件

Bitcoin Core软件是由sha256算法签名的

sha256sum bitcoin-0.17.1-x86_64-linux-gnu.tar.gz
# 53ffca45809127c9ba33ce0080558634101ec49de5224b2998c489b6d0fc2b17  
复制代码

把得到的结果与 SHA256SUMS.asc做对比,如果结果吻合,可以放心使用

还有另一种方式

sha256sum -c SHA256SUMS.asc
# bitcoin-0.17.1-x86_64-linux-gnu.tar.gz: OK
复制代码

删除 public key

gpg --list-keys
gpg --delete-key 36C2E964
复制代码

Don’t Trust, Verify

大家应该有意识并且学会验证 Bitcoin Core 软件,当然还有其他的软件,未被恶意修改。

Don’t Trust, Verify —— 不要相信它,去验证它


参考:

zhuanlan.zhihu.com/p/21267738

www.ruanyifeng.com/blog/2013/0…

pool.sks-keyservers.net

linux.cn/article-437…

superuser.com/a/999312

转载于:https://juejin.im/post/5c9e0ba0f265da30dc7abb96

你可能感兴趣的:(如何验证 Bitcoin Core 软件签名)