2010年4月23日 星期五

使用 GnuPG 驗證 Ubuntu 10.04 LTS RC 安裝光碟 ISO 檔

首先到台灣的 Mirror Site 上面下載相關的檔案回來
$ wget http://tw.releases.ubuntu.com/10.04/SHA1SUMS
$ wget http://tw.releases.ubuntu.com/10.04/SHA1SUMS.gpg
$ wget http://tw.releases.ubuntu.com/10.04/ubuntu-10.04-rc-desktop-i386.iso
利用 SHA1SUMS.gpg 來檢查 SHA1SUMS 是否為 Ubuntu 官方釋出的檔案 (有可能是經過偽造的)
$ gpg --verify SHA1SUMS.gpg SHA1SUMS
gpg: 由 2010年04月22日 (週四) 21時22分58秒 CST 建立的簽章, 使用 DSA 金鑰 ID FBB75451
gpg: 無法檢查簽章: 找不到公鑰
在 Ubuntu 系統上一開始檢查一定會找不到,不過可以透過 apt-key list 找到公鑰
$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
pub   1024D/437D05B5 2004-09-12
uid                  Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>
sub   2048g/79164387 2004-09-12

pub   1024D/FBB75451 2004-12-30
uid                  Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>
那麼就可以使用 apt-key export 取出公鑰
$ sudo apt-key export FBB75451 > cdimage.gpg
接下來在匯入 GnuPG 的金鑰鑰匙圈裡
$ gpg --import cdimage.gpg
gpg: 金鑰 FBB75451: 公鑰 "Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>" 已匯入
gpg: 處理總量: 1
gpg:               已匯入: 1
gpg: 3 個勉強信任以及 1 個完全信任是 classic 信任模型的最小需求
gpg: 深度: 0  有效:   3  已簽署:  18  信任: 0-, 0q, 0n, 0m, 0f, 3u
gpg: 深度: 1  有效:  18  已簽署:  12  信任: 5-, 0q, 0n, 13m, 0f, 0u
gpg: 深度: 2  有效:   2  已簽署:   2  信任: 2-, 0q, 0n, 0m, 0f, 0u
gpg: 下次信任資料庫檢查將於 2012-07-13 進行
這時候再重新執行前面第一行指令
$ gpg --verify SHA1SUMS.gpg SHA1SUMS
gpg: 由 2010年04月22日 (週四) 21時22分58秒 CST 建立的簽章, 使用 DSA 金鑰 ID FBB75451
gpg: 完好的簽章來自於 "Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>"
gpg: 警告: 這把金鑰並非以受信任的簽章所認證!
gpg:          沒有證據指出這個簽章屬於這個持有者.
主鑰指紋: C598 6B4F 1257 FFA8 6632  CBA7 4618 1433 FBB7 5451
出現這個警告的原因是因為還沒有將 FBB75451 這把公鑰加進自己的信任小圈圈裡面
不過不要緊,假設我們能夠信任 Ubuntu 系統裡面本來就有的公鑰 (如果不能信任的話,那就不應該繼續使用你的 Ubuntu 系統了 :P)
所以現在可以相信 SHA1SUMS 這個檔案真的是 Ubuntu 官方釋放出來的
於是就可以使用指令 sha1sum 來檢查 ubuntu-10.04-rc-desktop-i386.iso 這個檔案的完整性了
$ grep ubuntu-10.04-rc-desktop-i386.iso SHA1SUMS
66227f4fb31a25a22614666cd4ab538cc8f60956 *ubuntu-10.04-rc-desktop-i386.iso
$ sha1sum ubuntu-10.04-rc-desktop-i386.iso
66227f4fb31a25a22614666cd4ab538cc8f60956  ubuntu-10.04-rc-desktop-i386.iso
嗯~ 沒錯我下載的 ISO 真的是 Ubuntu 官方釋出的版本~ :D

參考資料:http://wiki.debian.org.tw/index.php/GnuPG
張貼留言