五月 30, 2011

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 我真的不喜歡 Facebook

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

因為對它的隱私權政策並不滿意,再加上我對社群網站的喜好不高,所以我不玩 facebook.com 。話雖如此,我還是申請了一個帳號,因為我怕被別人佔用。

但申請了那個帳號,怎麼讓別人知道那個帳號的確是我的,而不是有其他相同姓名或是其他搗蛋鬼所創建的呢? 又或者 是被 facebook.com 的工程師,纂改了那個帳號的信箱,假裝那是「何岳峰」的帳號呢?

最簡單的方法就是使用 PGP 來證明那是我(何岳峰 hoamon@hoamon.info)所開設的 fb 帳號( http://www.facebook.com/profile.php?id=1633143675 )。只要在我發表的文章內,加上 fb 的 account id 及 login account ,並整個用 244E7AEB 的私錀作簽章。那所發表的文章就的的確確可以證明是擁有 244E7AEB 私錀的人所發表的,而我又把 244E7AEB 的公錀資訊放在我的名片上,並發放給其他有見過面的朋友。這樣我的朋友用我的公錀就能驗證這篇文章。

PS http://www.facebook.com/profile.php?id=1633143675 這個塗鴉牆上的文章不能被我的公錀驗證,乃是因為 fb 網站破壞了該簽章文的純文字內容。但還好各位可點進名片檔的那張圖檔中,從那邊驗證。
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Use GnuPG with Firefox : http://getfiregpg.org (Version: 0.8)

iEYEARECAAYFAk0fVZAACgkQmNBN3SROeutO2QCggkqlp9Jv+J27bJKEgJVBusMx
CZkAoNL+PUfXri+1SUnlEoV1VoKUnHjp
=4HXa
-----END PGP SIGNATURE-----

BTW 我的 fb 帳號,及我的其他 PGP 文章

== 後記 ==

來到這裡的朋友們,你們怎麼知道這裡的facebook帳戶( www.facebook.com/amon.ho )真的是「何岳峰」所開設的,我放了相片,也寫一些個人資訊,但難到不會是騙人的嗎?從相片及個人資訊就可真的確認是同一人嗎?試想一個狀況,一個「何岳峰」的朋友,他可以拿到「何岳峰」的相片,也知道「何岳峰」從小到大的教育歷程及工作經歷。那他可不可以開設「何岳峰」的facebook呢? 現在的facebook又不驗證身份證號。你會想,這世界不會有人這麼無聊吧! 事實上就是有,而且他的目的,就是搞社交工程。所以為了證明,這個帳號的確是唸「四育國中、台中二中、中興大學土木系」的何岳峰所擁有。我用私錀來簽章本段文句
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.10 (GNU/Linux)

owFlU01PE1EUHVCMkJhITIw7q3GhG/wHsjAxRoMrNya6AKIxGqg7jKtpQZgyLdNK
KdROKF+FIpZWRmGc0urCxIXGmGjUjYmRd9+biTEu3ZjgeR1oCGwm792595xzz70v
fmif0tg68bHj+6krD341vPO6lI5P73+z6iBpJU9Nu7PT4vEAN3UydFITf9ajrDKF
A1dHPGddZHNeaLSedquz+2ZXMHiXbItrq6cDfX19bduxtu5gz9nOnmBv2+1g4Iww
sxJ2orihAnCMViyyShtqjEdUL6W7+QL+gotrCZ6sMmdQZGwRGZLsL7NUXGK2ypwM
qTpzHNcacvPDNWGDXmYWspkd42Y/wL18GgmAovGRdqpO+ihkDO+spNIzMoq+IDHj
uE9iqKR4tMbhyEp3cZ73W7ijTOgqt0KSrXbdJb9ulUwop4DLyjmuv4KovZk7e/KN
3JUDxVQyUEtzCxJ5LO2GV3hhTeR12cNajlVMsTqKyIYa9sKzW4x2zOf1jdzLW59S
YqY9IIwqmfkd0ddBMjRgeIvjbiHiOkusXJGHdBYkmL10tt+Cakyd2SkxFt2y24zA
LgTlWgxMu6Fhii+cCDBHp+I8s6XN8BVZKHWhyU5Cbs2FZX/WWwnxSTGHic+hPfQJ
TqwEmhFhB2sAIXxixCeH+9gz6PLnJoeWtNEtZTKwiUyd2Wg+RAb2ocCcqH/F19U0
GEoFm8wsR+9W2felbhMY+WgIUiW7lhDJvFgIeVEVj0KUKmIJHjzlyy94CquUa9Eu
7FdaG5UDTY3y4SgtzYe3X9OHf8rkuYZv14+me+7/vXrp4Ge68fPLZtMRZerrjzuX
r232Hn947+SjN8fOP6e3zRf/Aw==
=zwEg
-----END PGP MESSAGE-----
因應帳號ID改成專屬網址 www.facebook.com/amon.ho 所作的新簽章。

一月 17, 2010

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 民運人士必備良藥

據稱中國谷歌解散乃是因為 Gmail 程式被「幹」走,原因是某國家要研究 Gmail 程式碼的目的乃是想找出程式漏洞好能入侵部份民運人士的 Gmail 帳號。

誠如我在日前所 po 的「千萬不要相信任何一個網頁系統(包含 Google),除非你用了公私錀(如 PGP)加密」一文中,提到不要相信任何一個網頁系統乃是因為他們的部份系統管理員(或是全部)可以檢查你的資料,但是我漏了一個原因:「就是該網頁系統也有可能是遭人入侵而洩漏隱私。」


所以如果你真的想要將有隱私性的信件內文(如:起義革命的地點及時間)作『真正』的保護,還是使用容易且功能強大的 PGP 來幫助你吧! 這是任何一個民運人士都必備的。

讓我們再複習一下如何使用 PGP (Linux/Mac/Windows 皆適用)來加解密及簽章驗證

然後記得以多方管道散佈你的 PGP 公錀的 key id 及指紋碼,我的其中一種管道就是印在名片上,如下圖:



讓別人可以用『正確」的公錀加密訊息來寄送給你。

五月 5, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 使用 PGP 來建立人際信任網

當我們可以使用自己生成的 PGP 公私錀來作加解密及簽章驗證的工作後,事實上,我們還能將 PGP 運用得更淋離盡致: 我們把整個人際關係展現在我們的公錀上。

當你把公錀四處發放的時候,實際上,你正在宣告這個世界,這把公錀可以代表你的身份,用這把公錀所加密的訊息只有你才看得到。而只要相信了「這把公錀就是對應著你的身份」這個關係後,也代表「這把公錀」所驗證成功的某個訊息,必定是由「你」所發佈的。

以上,就是 PGP 信任網的基礎: 一把公錀代表一個人。

所以,如果有一個 A 用他的私錀 Sa,為另一個 B 的公錀 Pb 作簽章而得到 Pb'(這也就是為什麼一把公錀生成後,會有變動發生的原因),那麼我們可以透過 Pa 來作 Pb' 的驗證,驗證成功後,我們將了解到 A 這個人完全為 B 的新公錀 Pb' 負責,因為 Pb' 是 A 所簽章過的。也就是,我們可以合理地相信 A 這個人一定認識 B 這個人,而且他也同意 Pb' 是屬於 B 這個人的公錀

所以,本來我們可能只認識 A ,相信 Pa 是 A 的代表,但是透過 Sa 對 Pb' 的簽章,我們間接地相信 Pb' 是 B 的代表,就算原本我們根本不曉得 B 是何許人也,就算 B 也沒告知我們他的公錀編號,但我們可以透過 A 來相信 Pb' 代表 B 了。

簡單地講,你可以使用個人私錀為「認識(信任)的人的公錀」作簽章 *1,簽章後,別人就會知道你一定認識這些人。

註1: PGP 信任網中,所謂的信任並不指的是一般的信任,並不是說你簽章了某個人的公錀,就表示你相信這個人是「好人」,這裡的信任,指的是你「確認」該公錀的確是這個人所擁有的。

這麼作的好處是什麼? 如果你想要寫一封信給歐巴馬(想當然耳,你一定不認識他),又希望你的內容只有他看得見且連他的幕僚也無法事先閱讀,那麼你就可以先下載他的公錀,用他的公錀來加密。但在加密前,得先確認他的公錀有沒有經過你認識的人作過簽章,如果有,則表示這把公錀的確是歐巴馬所擁有。

有沒有可能你不直接認識歐巴馬,但卻透過你的朋友的朋友來認識到歐巴馬呢? 因為他的公錀被 A 簽章過,而 A 的公錀又被 B 簽章過,而 B 的公錀又被 U 簽章過,最後湊巧你認識 U 這個人。這真的是有可能的,請參考六度分離理論 *2。

註2: 六度分離理論告訴我們,地球上的任二個人,他們之間只被 6 個人隔離,也就是你必定能透過某人的朋友去認識某人的朋友再去認識某人的朋友再去認識某人的朋友再去認識某人的朋友去認識某人的朋友來認識地球上的任何一個人。

了解了 PGP 這麼偉大的信任網概念,那麼該如何實現呢? 很簡單,你只要為你所認識的人的公錀所簽章,那麼就能協助體現 PGP 信任網了。

一樣來到「金錀管理程式」的介面。(不知道如何叫出嗎? 請參考如何使用 PGP (Linux/Mac/Windows 皆適用)來加解密及簽章驗證)



選擇一把欲簽章的公錀並按下[簽章],然後再按下[Sign this key]並選擇使用那一把私錀來簽章。完成後,你就會看到該公錀下出現你金錀的資訊,這代表已簽章成功。



** 在為某些公錀簽章時,可能會出現失敗訊息,原因可能是 FireGPG 尚未支援該公錀的額外資訊簽章,如:相片資訊(是的! 公錀也可以放相片。要看別人公錀中的相片請打 gpg --list-options show-photos --list-keys {XXX})。

所以這時候,可以使用命令列來作,如下指令:


# gpg --sign-key {XXX}

並回答它所提出的問題即可。{XXX}代該公錀編號。
**

接下來把該簽章後的公錀匯出至伺服器,並告知該公錀的擁有者:「你已經確認了這把公錀就是代表他這個人,請他可以更新自己的公錀」。

那如果是別人簽章了你的公錀後,請務必記得:「如果你認識這個人且確認他的公錀是那一把的情況下,絕對要用你的私錀去簽章他的公錀,因為這是禮貌」。當然啦, PGP 並沒有強迫你一定要這麼作,但如果你這麼作了, PGP 信任網會更完備。

在簽章他人公錀時,請務必記得:「這個簽章不是恩惠,是一種信任,唯有你認識的人才作簽章。不認識的人請不要簽章。」

除了用自己的私錀去簽章他人公錀外,我建議各位也可以利用 PGP 信任網的概念,為自己的私錀買保險。

什麼是買保險? 之前我提過,如果私錀搞丟了,是不是之前別人用它對應公錀所加密的內文,你完全就看不到了。沒錯,的確是完全看不到了。但是逝者已矣,來者可追,你還是得繼續用 PGP 來過你未來的生活呀! 但是如果你原本的公錀已經有 200 個人為它作過簽章了,那麼你的新公錀難道要重新再去找這些人作一次簽章嗎? 是的,你必須再麻煩當初的 200 個人為你重新再簽章一次。但那些人如何確認你的新公錀的確可以代表你呢! 你勢必得再經歷 200 次由第三方管道(面對面確認、電話確認等非網路形式的確認)提供公錀編號讓對方知道你的新公錀的確代表你的動作,嘩! 這會累死人。

所以,我建議各位多生幾把金錀,並彼此互相簽章,如下圖:



amornose@gmail.com 這把金錀已被 hoamon@hoamon.info, hoamon@gmail.com ... 等金錀給簽章過了。所以如果我的主要使用金錀 HOamon@hoAmon.iNfo 不小心搞丟了,那麼我就用 AmOnroSe@Gmail.Com 的信箱寄信給那 200 個人,並告知我的公錀必須更換為 AmoNrosE@GmaiL.com 了,因為早在之前 amoONrose@gmail.com 已被 hoamon@hoamon.info 所確認過了,所以,那 200 個人可以很容易地相信我這個人已把 hoamon@hoamon.info 公錀更換成 amonrose@gmail.com 了。這就是買保險的意思。

最後,再提醒各位一次,私錀搞丟了,的確是很麻煩的一件事,請慎重保管呀!


五月 4, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 如何使用 PGP (Linux/Mac/Windows 皆適用)來加解密及簽章驗證

最簡單的方式就是安裝 GnuPG, Firefox, FireGPG但為什麼要用 PGP 呢?

GnuPG: 是作業系統上的應用程式,其功能是以 PGP 公私錀作文章或檔案的加解密及簽章之用。其操作介面為命令列模式。
FireGPG: 是 Firefox 的外掛套件,它的功能是提供操作 GnuPG 程式的圖形介面。
Firefox: 不用說了吧! 現在還有人不知道 Firefox 是幹什麼的嗎?

上面程式都安裝好後,請打開 Firefox > 工具列 > 工具 > FireGPG > 金錀管理程式,如下圖:



我已經有一些金錀(有些是公錀,有些是私錀,但一律顯示公錀編號)了,綠色框是名稱及註釋、黑色框是 email 、黃色框是金錀編號、紅色框是信任程度。

如果是自己產生的金錀,則同時擁有公私錀,如果是別人給的金錀,則只有公錀。我們都是拿公錀來加密,然後用私錀來解密的,或是用私錀來簽章,再用公錀來驗證。

如果你還沒有金錀,請按下[New Key],然後填寫

  1. Name(最好是別人認得出你的名字)
  2. Email(必須吻合你使用的email,否則使用你公錀的人會誤會這把公錀的真實使用者是誰?)
  3. 註釋(可簡單說明你是誰)
  4. 密碼(這是用來鎖住私錀的,以防止你的私錀不小心落入別人手上,如果沒有這個密碼,別人也無法拿這把私錀來作解密的動作。同樣地,如果你忘了這個密碼,那麼你的公錀也就無用,且過去別人用該公錀加密的內容,你也解不開了,請慎重。)
  5. 建議點選金錀永遠不失效(Never Expire)。
再來就是按下[產生金錀]了。請耐心等候一段時間。並在此時胡亂開啟你的程式,亂打一些指令或文句,讓這把金錀不致於與別人的金錀重複。

成功產生後,要測試加解密的功能,可打開 Firefox > 工具列 > 工具 > FireGPG > 文字編輯器。

請在文字編輯器中,鍵入文句,完成後請點選加密,此時會詢問你用那把公錀,可以 Ctrl 鍵作複選,完成後,該文句就會變成一堆奇怪的亂碼,此亂碼只有你當初選定的那些公錀所對應的私錀才能作解密的動作。

再按下解密鈕, FireGPG 即會找尋該密文所對應的私錀作解密,如果你的私錀當初有設定密碼,此時,會先詢問你密碼為何! 正確鍵入後,它即為你解密。

接下來,測試作簽章及驗證,一樣打開 Firefox > 工具列 > 工具 > FireGPG > 文字編輯器。

請在文字編輯器中,鍵入文句,完成後請點選簽章,此時會詢問你用那把私錀(只能選定一把),完成後,該文句後面會出現一段奇怪的驗證碼,此驗證碼只有你當初選定私錀所對應的公錀才能作驗證的動作。

再按下驗證鈕, FireGPG 即會找尋該驗證碼所對應的公錀作驗證,驗證成功後,會顯示私錀的公開資訊(名稱、註釋、email、公錀編號)及簽章時間。

上面的工作都可正確使用後,接下來,就是把公錀傳給其他人。有二種方式,一種是[匯出至檔案],一種是[匯出至伺服器]。

匯出至檔案後,你可以透過第三方管道(像是隨身碟、email、放在blog 上)把公錀傳遞給其他人,這樣別人在收到公錀後檢查它的 fingerprint 或是公錀編號是否與你真實公錀相同,相同時就可確定這把公錀的確是你所屬的。但此法的缺點是不容易更新公錀內容(什麼,公錀不是一開始產生後,就一直用下去嗎? 為什麼會有變動。欲知詳請,請待下篇分解)。

另一種方式[匯出至伺服器],則是把公錀上傳至某一伺服器( FireGPG 的預設值是 subkeys.pgp.net ),然後跟其他人告知你的公錀編號及 fingerprint ,讓其他人到 subkeys.pgp.net 去下載。此法在使用上比較便利,省去了自行傳檔的功夫,一律要求其他人到公錀伺服器上抓取。

當你把公錀上傳至伺服器後,你就要廣為宣傳你的公錀編號、email,慎重一點的,還可以註明 fingerprint 。像我的處理方式就是放在 http://hoamon.blogspot.com/http://www.hoamon.info/#AboutMe 中,以及我在實體名片及信件簽名檔上都放了公錀編號、 email 及 fingerprint 。方便其他人比對公錀的真實性。但請注意一點,如果你是用網路形式來比對公錀編號的話,它會有一定程度的不可信,因為你不知道你的閘道器管理員有沒有動過手腳,最好的確認方式是與公錀主人面對面比對 *1,再次之是電話比對(已經有風險了),其他方法的風險就更高了。

註1: 如果你看過天龍特攻隊的話,或許你就會知道「面對面比對」也是有風險的,因為你不知道對方是不是「小白」。

當大家都擁有你的公錀時,就能寄送加密文本給你,如此一來,絕對可以保證,發文者與收文者之間沒有人可以破解此一加密文本。

不過,以上兩種匯出方法,所匯出的都只是公錀,如果想要匯出私錀來作備份的話,就必須打指令了,記得公錀不用作備份,它是可以從私錀中產生的。但其實也非常簡單,指令如下(Windows 用戶請到你的 GnuPG 安裝位置中打該指令):

# gpg -a --export-secret-keys {XXX} > private_key.txt

{XXX} 可以是 email 位置,也可以是公錀編號。匯出後,私錀內容就存在 private_key.txt 中。請慎重保管此檔。

又如果你想要把某個檔案作加密,也是得使用命令列來達到,如下(可用多把公錀加密):

# gpg -r {XXX} -r {YYY} -e {some_filename_you_want_to_encrypt}

解密則直接下

# gpg -d {some_fileame} > new_filename


» 千萬不要相信任何一個網頁系統(包含 Google),除非你用了公私錀(如 PGP)加密

當我們在作業系統(尤其是 Linux)中使用 Open Source 軟體時,我們有一定的信心認為程式作者不會呼隆我們。因為只要有心,我們看得到程式碼。

但對於任何一個網頁系統而言,基本上,你必須將它們都視為壞人,它們絕對拿得到你所上傳的資料,包含密碼 *1。就算它標榜著 Open Source 出品,也不能保證它放置網頁伺服器上的程式碼與 Open Source 版本是一模一樣的。

事實上,在使用網頁系統時,請保持著一種信念:「若要人不知,除非己莫為」。放到網站上的資料,除了你,別人(閘道器管理員、系統管理員、程式設計師甚至是客服小妹)絕對有辦法打開看,除非你使用公錀加密內文。這一點,就連 Google 網站也不例外。

所以,當我看到無名網站上提供一種「密碼保護文章/相簿」的功能時,我覺得很好笑,看看它在 html form 上所設計的方式,完全是以明碼形式將密碼傳至沒有 https 的網址,這樣何謂「密碼保護」! 無名站上工程師絕對有能力看得到你所保護的內文以及密碼。甚至有可能那些性愛相簿外流的原因中,有部份就是離職員工搞的鬼,但是誰知道呢? 當你用明文形式傳遞密碼時,理論上,它就不叫「密碼」了,當你用明文形式上傳文章或相片時,它們也不會是「有保護」的。

要真正上傳儲存「有保護」的內容,以目前技術來說,最簡單的就是 PGP 加密了。像是下面的密文,你看得出我寫的是什麼了嗎? 雖然,我大方地 po 在 blogger 上,但沒有私錀的人就是看不到。

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Use GnuPG with Firefox : http://getfiregpg.org (Version: 0.7.5)

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
ZvAf4PfWSCxGoarWUY+BGaGXCNUNifob+g==
=8e3M
-----END PGP MESSAGE-----

上面的密文,我用了三把公錀作加密,理論上,只有我、我老婆及 django-pgpauth 的私錀能解開。如果各位有興趣的話,我把 django-pgpauth 的私錀(我並未設定密碼)就放在 comment 中,請自取用。

如果你真的覺得要放在網站上的資料是需要隱私的,請不要相信該站所提供的密碼保護功能,用自己的比較安心。

至於如何使用 PGP (Linux/Mac/Windows 皆適用)來加解密及簽章驗證,請參考此篇

註1: 除非它們在認證網頁上,先用 One-Way Function(如: md5, sha-1) 先將明文密碼轉換過。

四月 25, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 用 PGP 作網站認證

剛剛在用 firegpg 為 Gmail 信件加密時,忽然靈機一動,如果使用 PGP 作網站認證豈不是方便。

我們在作 Linux 系統管理時,在遠端登入上,是使用公私錀作登入的方式,並不是用帳號/密碼,這好處是加密強度大得多,且不用打一堆不對稱的文字(我的密碼的確如此)。

那麼在網站登入上,為什麼不這麼作呢? 在註冊使用者時,就要求他把公錀上傳至網站伺服器中,以後要登入時,在登入頁面上會出現隨機字串要求用私錀來作簽署,那麼網站伺服器以公錀驗證成功後,就可確認你是那一位使用者了,這不是非常方便,不用打帳號/密碼,安全強度又高。如果再改一下 firegpg 的行為,還可以讓它自動作簽署的動作,那又更方便了。

嗯~ 惟一的問題是 Windows 多半不會預裝 GnuPG ,而一般用戶也多半不會使用 PGP 。

哈哈~ 我一定要寫一個強迫大家用 PGP 登入的網站。

== 後記 ==
寫了一個實驗性質的網站(https://pgpauth.hoamon.info/)來展現這個概念。相關程式請上 Google Code: http://code.google.com/p/django-pgpauth/ 了解。

四月 19, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» Web System Logining By PGP key!!

I designed an experimental web site with Django Framework to show the concept of web logining by PGP key. You can take a draft on the past article.

I hosted this project(`django-pgpauth') on Google Code. If anyone interested, just checkout or submit an issue to me.

<< Translate the above to tranditional-chinese >>

我設計了一個實驗性質網站來示範 PGP 認證如何應用在網頁系統登入上,其採用Django框架。各位可以從我之前的文章中得到初步概念。

我在Google Code上開立了 `django-pgpauth' 專案。 如果任何人有興趣的話,請直接 checkout 或是寫個 issue 給我。

三月 14, 2009

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» Google 在不久的將來會推出 Google Voice

相關新聞請見: http://www.zdnet.com.tw/news/web/0,2000085679,20136833,00.htmhttp://www.ithome.com.tw/itadm/article.php?c=53945http://tech.chinatimes.com/2007Cti/2007Cti-News/Inc/2007cti-news-Tech-inc/Tech-Content/0,4703,130509+132009031301011,00.html

這個服務其中有一個非常重要的功能:「語言轉文字」。為什麼 Google Voice 為推出這個功能呢! 除了它實際對用戶是有幫助的外,它最大的一個目的是把不容易分析的語言轉成容易儲存及解析的文字後,方便作資料挖掘(Data Mining)。那 Google 要對這東西作 Data Mining 是要幹什麼? 請看我之前所寫的「給 google 的建議(構想篇)」。

當 Google 提供的服務愈來愈多,你會不會害怕自己的隱私權愈來愈小呢? 別害怕,這世界上,有一個叫 PGP 的玩意,有空了解一下吧!
Link

二月 16, 2008

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» hoamon _Atˍ hoamon.info's PGP public key(ID: 0x244E7AEB)

pub 1024D/244E7AEB 2008-02-04
uid hoamon (hoamon.blogspot.com)


-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.6 (GNU/Linux)

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
w3w1ZQ==
=lcDA
-----END PGP PUBLIC KEY BLOCK-----

二月 15, 2008

hoamon's sandbox
hoamon
hoamon's sandbox is about »

tag cloud

» 我開始使用 PGP 作郵件的簽章及加解密了

如果你也想使用 PGP 作郵件的簽章、加解密的話,可先參照下列幾個連結

或是 google:// pgp key

我的作法是在 Ubuntu 7.10 上使用 Firefox + FireGPG(firefox extension) + GnuPG 來完成 Gmail 信件的簽章、加解密。

安裝步驟如下:
  • 確定你的電腦裡有 gnupg ,沒有的話,請使用 # apt-get install gnupg 來安裝
  • 產生自己的公私錀: # gpg --gen-key
  • 將公錀上傳到伺服器,0x244E7AEB 是我的公錀 ID ,請不要照用: # gpg --server subkeys.pgp.net --send-key 0x244E7AEB
  • 匯出公錀並放到他人容易下載的空間(我的是放在0x244E7AEB): # gpg -a --export 0x244E7AEB > hoamon.public.asc
  • 下載 firegpg 程式: # svn co svn://svn.tuxfamily.org/svnroot/firegpg/firegpg
  • 編譯 firegpg 程式: # cd firegpg; ./build.sh
  • 安裝 firegpg 程式: 打開你的 firefox 瀏覽器,選擇安裝擴充套件 firegpg.xpi 。並重新啟動 firefox 。

使用方法:
  • 先下載它人的公錀(0xB1E55D7E這是我老婆的公錀): # gpg --server subkeys.pgp.net --recv-keys 0xB1E55D7E
  • 進到 Gmail 信箱中,開新信,然後寫下內容,待寫畢,點選上面的「加密」按鈕,這時候會要求你選擇用那一把公錀加密,選完後,信件內文就會變成下面這個樣子了。

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: http://firegpg.tuxfamily.org

hQQOAyQbH/dVXCNHEA/7B2AfasQx9MDO+bXi48fn9YoEuQwNkpKsayxXNhEg9Kom
KDYWk6nXr0tbYZuyxYdjY4e42AxuOZ28Ym59OtyOHikZ2TQoqGkjroiVtP+QgcnJ
QEUe3YhTadKr7OCmgIcd94SkOI45KjOgB29VtG3qYQm0rXMM38h9x/zMdbRl51T2
oTCvYeuwJECHg4H+NZNL/XM5ISndIzyuqfescsPbAv/dp6vV7UyB3uQU0RUJ2SwN
vX2W8mPJRklFOzStB0WZNGrGdWnokOeO+iqcbH8eyBeD78t2cm8DNs4W/bjQXLXU
s77CqWYG8jbuV3uNuhdBYw4DD+EOPYuCXZJkQus4dk6eAB3osn4fcP3GjIu7Ln79
rEZ2fBgOT/XJNkvia6jhexsdIodaEYLPYEb64UBYkLZbYZYC1yh2iUGZVdIg1MZJ
YuVLafBfvTn6/d5qpLPc0SmPaj68mDnxrGzNU2G1yUx5Z32xqB5Hp1J+j3EihlAB
R8/yB0ygmZZL3bR/TAqSjenaOj4xcOXZqxeHnaUrWfWstTp72G06w+pLdJ2RRMx3
EPidkHval8uf7SfOaPO2n2jJBNZd6uxycorWPXjTZ4kerg2npuYBu3rStI8bCHi9
Y6xElo0cs8zFcvKoyFA4zSZvfrysaqK9uFfH4VscBoK0lKoKwJb3QOYDAeVVIKsQ
ANaDqdQK5LiP0gWittEkgNVWeHWSldf5F062p+XVsGsrT5bo8IGdeTMeN5BPTMSZ
m/QfTprdEOgsditzO0gHoKioPgyFm7Cu3f+zl9sCyG73oW4/G8dQwCXm5ltElidX
rOcA+6mWfmcnCQChtRrKtVNrJ1DrtItgbzPIYqSV+6VrTo7tlOJPNagvTEUWHyGk
hWW9PwU8x0JMrfGGMzFqiy/mQqO8G6MJvYsYYYWZUkT4wtsbWQArEE2d8qdN0qq3
47oXc1YBIk9A/zEpeCq56+G48qvIBGbFXqylbn7thv3FhC5WYMGumpCZ8gAAyrEm
EdEuU9dVp3gb0GJqLkxlvyjby+Cnp4bvFXfX3teOcfejQ9JS4u84Pu1Zdo7kn3Xo
uii/ZkOWkQoPMjV/Uca/AicQLmMLDEkxJClqf6vgLKDCjh6yzzzyJWkjMQa0HY11
bQrqoxRASzcTPo+VGF8yLaD+xshKW9BZF5uhAbjWdyTUKceEp5PkSpEyAdB4ki+Y
FWc3Qc/DL8dqQrAyFBt2IovqMVzHhHR5vZc0By+qkS2c51aD2Wx/jjELNfqDAidP
c42zB+DRJMxubSFymKD7azf2fDJI7Pmu/k7Ku1ShpwKkMhK3mFHBTVYRNap9hb2e
FN+7kFz2c+rNN0/Hl3frSsxBaPdpW0n+rlh0RFNq+wVs0mABG8lUqL98yElXHbxL
6Ft5rxyJ1Js8/gU61MVJytGAxCnTQVBnPNyy2AmZR1FrYXZ636qa80KbUmf46Gg0
bbx1pNf1dd3WYE/xBcG6SYGXNMpPiO8u3FqhqlrcWyAcMCc=
=iaH4
-----END PGP MESSAGE-----

上面的內容,只有我老婆的私錀才可以解開。其他人一定不會知道內容是「我愛你」。就連我自己也不能再看到它的原始內容了,因為我沒有老婆的私錀。

有一個觀念很重要:「私錀是用來簽章及解密,而公錀用來加密」。因為我的公錀是所有人都可以下載的。如果拿私錀來加密信件的話,那麼我的網路管理員,只要知道信件是我發的,就可以拿我的公錀來解密了。

biggo.com.tw

A Django site.