Armory

在 Ubuntu 上驗證離線比特幣捆綁包

  • February 2, 2015

我在 GPG 驗證我的 Ubuntu 離線軍械庫安裝程序時遇到了困難,使用建議的步驟:

$ cd Downloads # the directory containing the *.deb
$ gpg --recv-keys --keyserver keyserver.ubuntu.com 98832223
$ sudo apt-get install dpkg-sig
$ dpkg-sig --verify *.deb

前三個步驟有效,因為我可以驗證標準的 Ubuntu 安裝程序:

ubuntu@ubuntu:~/Downloads$ dpkg-sig –verify *.deb 處理 armoury_0.92.3_ubuntu-32bit.deb… GOODSIG _gpgbuilder 821F122936BDD565366AC36A4AB16AEA98832223 1412393663

但是對於離線捆綁包,我得到了這個:

ubuntu@ubuntu:~/Downloads$ dpkg-sig --verify *.deb
E: Cannot find *.deb: no such file
ubuntu@ubuntu:~/Downloads$ ls
Alan-C.-Reiner-Offline-Signing-Key-alan@bitcoinarmory.com-0x98832223-pub.asc
armory_0.92.3_offline_ubuntu_12.04-32.tar.gz

所以我提取了 .tar.gz 和 cd OfflineBundle,它給了我這些文件:

ubuntu@ubuntu:~/Downloads/OfflineBundle$ ls
Alan-C.-Reiner-Offline-Signing-Key-alan@bitcoinarmory.com-0x98832223-pub.asc
armory_0.92.3_ubuntu-32bit.deb      
dpkg-sig_0.13.1_all.deb
Install_DoubleClick_RunInTerminal.sh
libqt4-designer_4.8.1-0ubuntu4.8_i386.deb
libqt4-help_4.8.1-0ubuntu4.8_i386.deb
libqt4-scripttools_4.8.1-0ubuntu4.8_i386.deb
libqt4-test_4.8.1-0ubuntu4.8_i386.deb
libqtassistantclient4_4.6.3-3ubuntu2_i386.deb
libqtwebkit4_2.2.1-1ubuntu4_i386.deb
python-psutil_0.4.1-1ubuntu1_i386.deb
python-pyasn1_0.0.11a-1ubuntu1_all.deb
python-qt4_4.9.1-2ubuntu1_i386.deb
python-sip_4.13.2-1_i386.deb
python-twisted_11.1.0-1ubuntu2_all.deb
python-twisted-conch_11.1.0-1_all.deb
python-twisted-lore_11.1.0-1_all.deb
python-twisted-mail_11.1.0-1_all.deb
python-twisted-news_11.1.0-1_all.deb
python-twisted-runner_11.1.0-1_i386.deb
python-twisted-words_11.1.0-1_all.deb

我很確定它是 armoury_0.92.3_ubuntu-32bit.deb 那個應該有 GOODSIG 的文件,但是當我執行 dpkg-sig –verify *.deb 時,我得到了這個:

Processing armory_0.92.3_ubuntu-32bit.deb...
Processing dpkg-sig_0.13.1_all.deb...
Processing libqt4-designer_4.8.1-0ubuntu4.8_i386.deb...
Processing libqt4-help_4.8.1-0ubuntu4.8_i386.deb...
Processing libqt4-scripttools_4.8.1-0ubuntu4.8_i386.deb...
Processing libqt4-test_4.8.1-0ubuntu4.8_i386.deb...
Processing libqtassistantclient4_4.6.3-3ubuntu2_i386.deb...
Processing libqtwebkit4_2.2.1-1ubuntu4_i386.deb...
Processing python-psutil_0.4.1-1ubuntu1_i386.deb...
Processing python-pyasn1_0.0.11a-1ubuntu1_all.deb...
Processing python-qt4_4.9.1-2ubuntu1_i386.deb...
Processing python-sip_4.13.2-1_i386.deb...
Processing python-twisted_11.1.0-1ubuntu2_all.deb...
Processing python-twisted-conch_11.1.0-1_all.deb...
Processing python-twisted-lore_11.1.0-1_all.deb...
Processing python-twisted-mail_11.1.0-1_all.deb...
Processing python-twisted-news_11.1.0-1_all.deb...
Processing python-twisted-runner_11.1.0-1_i386.deb...
Processing python-twisted-words_11.1.0-1_all.deb...

我錯過了什麼嗎?我該怎麼辦?我幾乎很想用標準軍械庫安裝程序附帶的文件替換離線包中的 armary_0.92.3_ubuntu-32bit.deb 文件,但我擔心 OfflineBundle 中的其余文件可能有也被篡改過。

離線包實際上在 deb 文件中沒有簽名。您可以通過像以前那樣提取捆綁包來看到這一點:

$ tar xvzf armory_0.92.3_offline_ubuntu_12.04-32.tar.gz

現在您可以檢查 .deb 文件的內容

$ cd OfflineBundle
$ ar vx armory_0.92.3_ubuntu-32bit.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz

如果直接下載armory_0.92.3_ubuntu-32.deb文件,可以看到有點不一樣

$ wget https://s3.amazonaws.com/bitcoinarmory-releases/armory_0.92.3_ubuntu-32bit.deb
$ ar vx armory_0.92.3_ubuntu-32bit.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
x - _gpgbuilder
$ dpkg-sig --verify armory_0.92.3_ubuntu-32bit.deb 
Processing armory_0.92.3_ubuntu-32bit.deb...
GOODSIG _gpgbuilder 821F122936BDD565366AC36A4AB16AEA98832223 1412393663

dpkg-sig需要該_gpgbuilder文件根據包的內容檢查簽名。離線包沒有這個文件,而直接下載有。

如果您擔心某種中間人攻擊,我建議您在驗證簽名後直接下載並將該文件放在 OfflineBundle 目錄中。

引用自:https://bitcoin.stackexchange.com/questions/35840