顯示具有 GnuPG 標籤的文章。 顯示所有文章
顯示具有 GnuPG 標籤的文章。 顯示所有文章

2013年8月5日 星期一

COSCUP 2013 第一天晚上的 Key Signing Party 之後要做的事情

大致上需要的工具在以前的文章就有提到了,所以先參考 利用 caff 來加速 GPG sign 的過程加入 GnuPG 的信任簽章進自己的金鑰圈裡 以及 利用 ssmtp 透過 Gmail 在文字模式下寄信

然後就是以下的四大步驟:

一、首先是簽署所有信任的簽章寄給對方
$ caff 3860D2A5 CEC6AD46 FEBFB7FE 3D058888 54D0F048 642EC1C5 24FF2AE5 0914A01A 03F4552D B6A93879 012596EC 3C728A5D 4A293CBD 35D0CEF2 206AFB69 F37883B4 E9D4AEB6 1478504E 524E09E7
二、然後是匯入所有人的簽章
$ gpg --recv-keys 3860D2A5 CEC6AD46 FEBFB7FE 3D058888 54D0F048 642EC1C5 24FF2AE5 0914A01A 03F4552D B6A93879 012596EC 3C728A5D 4A293CBD 35D0CEF2 206AFB69 F37883B4 E9D4AEB6 1478504E 524E09E7
三、再來是匯入別人對我簽署過的簽章

因為我用的是 Gmail 所以我是執行

$ gpg -d | gpg --import
然後從 Gmail 上面來一個一個的複製貼上 (過程中需要按下 Ctrl-D 產生一個 EOF 來完成)

四、最後就是將別人對我的信任簽章上傳到網路上
gpg --send-keys E9EC46F5A547F31E

最後的三跟四步驟就是等別人寄他的信任簽章過來,再不斷地重覆上傳到網路上。

2011年3月25日 星期五

加入 GnuPG 的信任簽章進自己的金鑰圈裡

在 Debian: 17 years of Free Software,"do-ocracy", and democracy 活動當中
跟現在的 Debian 計畫主持人 Stefano Zacchiroli 交換了金鑰指紋
後來收到了 zack 寄來的信件,如果沒有弄錯,應該也是使用之前提到的 caff 來弄的
因為我的 GnuPG 金鑰上面列了六個 Email 地址,所以我也收到了六封信件裡的附加檔案

0xE9EC46F5A547F31E.1.signed-by-0xD5CA9B04F2C423BC.asc
0xE9EC46F5A547F31E.2.signed-by-0xD5CA9B04F2C423BC.asc
0xE9EC46F5A547F31E.3.signed-by-0xD5CA9B04F2C423BC.asc
0xE9EC46F5A547F31E.4.signed-by-0xD5CA9B04F2C423BC.asc
0xE9EC46F5A547F31E.5.signed-by-0xD5CA9B04F2C423BC.asc
0xE9EC46F5A547F31E.6.signed-by-0xD5CA9B04F2C423BC.asc
然後下載 zack 的公鑰
$ gpg --recv-keys D5CA9B04F2C423BC
接者檢查 zack 的指紋是否跟我當天跟他交換的一致
$ gpg --fingerprint D5CA9B04F2C423BC
pub   1024D/F2C423BC 2000-03-06
      金鑰指紋 = 8156 FBF9 3EC1 D872 722D  3632 D5CA 9B04 F2C4 23BC
uid                  Stefano Zacchiroli <zack@upsilon.cc>
uid                  Stefano Zacchiroli <zack@debian.org>
uid                  Stefano Zacchiroli <zack@cs.unibo.it>
uid                  Stefano Zacchiroli <zack@pps.jussieu.fr>
sub   4096g/E5B57D13 2008-07-19
確認一致後就可以將 zack 對我的信任簽章加進自己的金鑰圈裡面
$ gpg --import < 0xE9EC46F5A547F31E.1.signed-by-0xD5CA9B04F2C423BC.asc
$ gpg --import < 0xE9EC46F5A547F31E.2.signed-by-0xD5CA9B04F2C423BC.asc
$ gpg --import < 0xE9EC46F5A547F31E.3.signed-by-0xD5CA9B04F2C423BC.asc
$ gpg --import < 0xE9EC46F5A547F31E.4.signed-by-0xD5CA9B04F2C423BC.asc
$ gpg --import < 0xE9EC46F5A547F31E.5.signed-by-0xD5CA9B04F2C423BC.asc
$ gpg --import < 0xE9EC46F5A547F31E.6.signed-by-0xD5CA9B04F2C423BC.asc
然後將 zack 對我的信任簽章上傳到金鑰伺服器 (讓其它人知道我的最新狀況)
$ gpg --send-keys E9EC46F5A547F31E

另外在這次有用到指令,但不是必要的指令:

同步金鑰伺服器上的金鑰 (不然就不會知道其它人金鑰狀態的最新狀況)

$ gpg --refresh-keys
然後查看自己目前的信任圈的狀態
$ gpg --list-sigs E9EC46F5A547F31E

P.S. E9EC46F5A547F31E 是四元的金鑰指紋 D5CA9B04F2C423BC 是 zack 的金鑰指紋,使用時要自己代換成其它金鑰指紋,不可照抄執行。

參考資料:http://wiki.debian.org.tw/index.php/GnuPG

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

2009年8月22日 星期六

利用 caff 來加速 GPG sign 的過程

Debian Birthday Party 2009 in Taiwan 上面 PaulLiu 介紹了 GPG 簽章的過程
當中提到了為了防止有人偽造他人的 Email 所以我們在得到對方的 Finger Print 之後
進行簽署的過程當中的最後不應該直接把簽好的金鑰上傳到伺服器上面
反而是要使用對方的公鑰加密寄到對方的 Email 信箱當中
由對方去上傳你/妳已經簽署過的金鑰
而這之間的冗長又重覆的動作可以透過 signing-party 套件當中的 caff 來簡化這些動作
$ sudo apt-get install signing-party
例如你/妳拿到 $4 的金鑰的 Finger Print 後
D51B 8601 C9AE 0E87 A0BE  7795 BCB0 2784 A55D A068
然後執行
$ caff A55DA068
這樣就會自動從網路上面取得 $4 的公鑰, 然後進入 gpg command mode
Command> sign
Command> save
就會自動直接將加密好的文章跟簽署過的金鑰寄給我
(前提是你/妳已經設定好文字模式下的寄信方法, 像是上一篇 "利用 ssmtp 透過 Gmail 在文字模式下寄信" 所提的)

2009年8月2日 星期日

使用 GnuPG/GPG 來簽署別人的 GPG Key

關於 GPG 的觀念請先參考 Tetralet 寫的 用 GPG 來保護您的郵件!(一)
以下只是筆記金鑰簽署過程的指令操作與步驟
  1. 首先要實際見過面並且透過身份證或是護照確認對方的身份
  2. 抄下對方的金鑰指紋, 例如: D51B 8601 C9AE 0E87 A0BE  7795 BCB0 2784 A55D A068
    (同時也將自己的金鑰指紋給對方, 也是要檢查過身份證或是護照, 對外國人最好準備好護照)
  3. 去金鑰伺服器取回對方的公鑰
    $ gpg --recv-keys A55DA068
  4. 然後比對金鑰指紋是否相符
    $ gpg --fingerprint A55DA068
  5. 進行簽署動作
    $ gpg --sign-key A55DA068
  6. 檢查簽署結果
    $ gpg --check-sigs A55DA068
  7. 將簽署結果更新至伺服器
    $ gpg --send-keys A55DA068
  8. 然後寫一封信通知對方已經簽署過對方的金鑰了
    Hi $4,
    我已經簽署過你的金鑰並且上傳至伺服器 subkeys.pgp.net
    然後使用明碼簽章
    $ gpg --clearsign email.log
    產生一個 email.log.asc
    就可以將 email.log.asc 寄給對方了
    對方收到後可以使用
    $ gpg --verify-files email.log.asc
    透過你當初給對方抄的金鑰指紋來驗證這封 Email