如何驗證 Bitcoin Core 軟體簽名

shooter發表於2019-03-29

GPG logo

來自 簡書

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) <laanwj@gmail.com>" 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) <laanwj@gmail.com>"
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

相關文章