今年 COSCUP 2013 時候,總於又開始辦 Key Signing Party。其實過去幾年在 Debian Birthday Party 時,常常也會非正式的交換簽章。這是第一次比較正式的用 The ‘Sassaman-Efficient’ Method 進行。總共二十人參與,成效還不錯!

IMG_3787 gpg-20130808

過程中收到幾個朋友來信詢問問題,特地整理幾個 FAQ

金鑰過期時間 (Expire day) 是否要設定,要設定多久?
你應該養成設定過期時間的習慣。你不用擔心過期要重新建立新的金鑰,你可以延長過期時間後,重新送到 key server 上。這樣別人就會取得你新的金鑰。若你金鑰遺失或忘記密碼也弄丟 revocation certificate 的時候,過期時間可以告訴你的朋友這把金鑰已經不能夠相信了。請找你聯絡換把新的。至於過期時間,則看你有多頻繁使用 PGP,我個人設定六個月,純屬偏好。

記得生成 revocation certificate
revocation certificate 是當你的金鑰遺失或被竊走得時候,你可以宣告這個金鑰失效。所以請生一份出來藏好,然後千萬不要被別人偷走。
gpg --output revoke.asc --gen-revoke <keyid>
如何簽署金鑰?
若你使用 Debian 或 Ubuntu, 請安裝 signing-party, 其中有一個工具叫做 caff(1). 他會以提問方式將你所選擇的金鑰簽署之後,以郵件加密寄給該金鑰收件人。這麼做的目的是,我們當場於會場認證對方的姓名,但是無法驗證他的電子郵件。經由加密寄送的方式,可以確保他使用該郵件系統。

因此你不應該把簽署過金鑰直接送到 key server 上,而是加密寄給他。這樣就不會造成他可能冒用別人的郵件信箱。

如何接收簽名?
請將每個人寄給你的信件解密,取出新的金鑰簽章,匯入你自己的 GPG Keyring,然後把新的金鑰上傳到 keyserver. 如果你沒有上傳,其他人是無法知道你已取得簽章。

姓名識別
交換的過程,最常見就是大家都只使用音譯,但是一般的中文證件上不會顯示英譯。所以你必須攜帶護照,才能讓對方驗證你的名字。你也可以在產生新簽章的時候,在註解 (comment) 輸入中文姓名 (請使用 UTF-8),這樣會比較容易進行驗證。但是不要在 comment 寫一些亂七八糟,無益辨識的資訊

另外,臺灣的護照容許你使用 Alias Name, 不彷把常用的英文名字加入。例如我的護照上即有 “Rex” 為別名。

使用金鑰包裝套件的技巧
你若常常需要包裝套件,不妨新增一把 subkey。一般而言,你必須十分小心的藏好的你的金鑰,例如存在其他人無法存取的離線媒體上。但是身為一個 Debian / Ubuntu 開發者,你每天都需要簽署並上傳新的套件。金鑰藏在離線媒體其實非常不便利。

Subkey 容許你在沒有主金鑰 (Master key) 的狀況下簽名或加密,也可以隨時取消或更改 subkey. 因此你可以安全的把金鑰藏在某個無人知曉的地方,把新的 subkey 專門拿來簽署用。萬一出了狀況,只要註銷這把子金鑰即可,不用大費周章的重生一把新的金鑰。

利用 COSCUP 2013 的會後時間,舉辦 Key signing party[1][2]!

由於開放原碼社羣十分分散,難得有機會面對面,為了方便合作以及增強遠距聯絡的可靠性,我們可以利用實體聚會的機會交換並簽署 PGP 金鑰,以建立 Web of Trust[3]。這組金鑰除了便利確認身份,也可於通訊中加密訊息,避免各國官方政府日漸加強的網絡監視。

參加活動

產生一組 RSA 4096 bits 以上的金鑰[4],並將該金鑰送到 pgp.mit.edu.
請在 8/2 日前於表單[5]中提供你的電子郵件 (UID)、Fingerprint. 請你於 8/3 準時到達現場,並攜帶可信賴的有照證件以及一枝筆。

報名網址: http://bit.ly/16r2qJc

活動時間

請於 2013/08/03 第一日最後一場演講 17:20 結束後,於一樓東大門大廳 (鳳凰雕塑) 會面。
請跟主持人索取金鑰列表,檢查你的個人資訊,並依照對照表的次序排成隊伍。

其他注意事項

請勿簽署你未曾謀面的人的金鑰,請仔細檢查對方的身份證件以及個人簽章後才正式簽署。
請勿攜帶電腦於現場進行簽署。

此活動非 COSCUP 團隊發起,請聯絡主辦人: Rex Tsai

[1] https://en.wikipedia.org/wiki/Key_signing_party
[2] http://linuxreviews.org/howtos/gnupg/signingparty/
[3] https://en.wikipedia.org/wiki/Web_of_trust
[4] http://wiki.debian.org/Keysigning
[5] http://bit.ly/16r2qJc

I should replace my key long time ago, after there are security flaws has been identified in SHA-1. The US NIST also suggested to transit to stronger SHA-2 hash functions.

I followed the key replacement rules of Debian and Apache and created the new key. If you have validated my old key, Here is my transition statement for the new new 4096 bit RSA key –

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1,SHA512


I am transitioning GPG keys from an old 1024-bit DSA key to a new
4096-bit RSA key. The old key will continue to be valid for some
time, but I prefer all new correspondence to be encrypted in the
new key, and will be making all signatures going forward with the
new key.

This transition document is signed with both keys to validate the
transition.

If you have signed my old key, I would appreciate signatures on my new
key as well, provided that your signing policy permits that without
reauthenticating me.

The old key, which I am transitional away from, is:

pub   1024D/DC76FEB9 2004-09-18 Rex Tsai 
 Primary key fingerprint: 1700 7040 CBD7 5DB4 4956  959B 3A5E 166D DC76 FEB9

The new key, to which I am transitioning, is:

pub   4096R/3860D2A5 2011-05-20 Rex Tsai (蔡志展) 
 Primary key fingerprint: CDC8 966D A547 6B1F CEB8  6D49 86A6 03D4 3860 D2A5

To fetch the full new key from a public key server using GnuPG, run:

  gpg --keyserver keys.gnupg.net --recv-key 3860D2A5

If you have already validated my old key, you can then validate that the
new key is signed by my old key:

  gpg --check-sigs 3860D2A5

If you are satisfied that you've got the right key, and the UIDs match
what you expect, I'd appreciate it if you would sign my new key.

If you then want to sign my new key, a simple and safe way to do that is
by using caff (shipped in Debian as part of the "signing-party" package)
as follows:

  caff 3860D2A5

In the other way, you can sign the key and send it to me as following 
commands:

gpg --sign-key 3860D2A5
gpg --armor --export 3860D2A5 | mail -s 'OpenPGP Signatures' \
        [email protected]
gpg --keyserver pgp.mit.edu --send-key 3860D2A5

Please contact me via e-mail at  if you have
any questions about this document or this transition.

Thanks.

Regards
Rex Tsai, 2011-05-21
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk3WnNEACgkQOl4Wbdx2/rnujQCbBV+TSHWapsMrd5d06RKxkgT3
csUAnRpDr6obff4Fuj/P530f6pVT5WTXiQIcBAEBCgAGBQJN1pzRAAoJEIamA9Q4
YNKldvgP/2ej6EDhrGj/1dNkIdkWmKNXsj4OMWKcvDP6M+VnlkWtFaDQxYBb73Ea
vBhAgDZL7MhUwVbn9zydVInFpA9vtdsBwd6Hr3+rp+iv076TennKYP+qo7YDX5Ga
7s73Tim8Tn6AwYdBhyhFPJPZ/fEUknKNOWILu7eUjeQ+C7ndPNEe6VRvCJvJaHwa
aJ6b8kpeRG6UYQFGw/o2e0XGtEpek8dRiqk2sVnOVR/d0C6/u+2oQuGRVtX/uKd1
2E3HYPh/Y1RTqENYrCd39v8nA6NUzuw8kOpIx8MZ51iN4DB+YfusV8mtzhZIkVQP
y2BZ0jL2C2xFlCER7Cxlp8VpsKcz/tEixytciC0aOuoUoER7LQvfkQGs+pcTj8Fl
PQLmwgnqIM4PPQ4cSyhsFgmSkbFcDyxtStVLMEtJKKAJ0dOuqa13R0MKuRkg5WMP
u07EKBITk50QlqzXrJwM7I8FszIigbdWWQD2qNbXLpHcZNo5m5CshOVgTCy+t7E4
Z0gQ3DnZAsy+tclCjCeb6MdjRqF27C9LdWjNwHHcw71X2yqRXqEN8fb1JcXBSU5a
7AgiIMnDgw3BAm1QLQ/eEk8J7KuKvsFFK+hFpSs4mahYLUtExzSsEN7RbCQptSIc
4FfZUXS3bg+by4zF/2eSGI+FeMq7CIz4aX1JdfucBiFCNUCRhFPT
=kr5F
-----END PGP SIGNATURE-----