在 Linux 中加密郵件
如果你一直在考慮如何加密電子郵件,那麼在眾多的郵件服務和郵件客戶端中挑來挑去一定是件頭痛的事情.可以考慮兩種加密方法:SSL或TLS加密會保護髮送到郵件伺服器的登錄名和密碼.Gunpg是一款標準的、強大的Linux加密工具,可以加密和認證消息.如果你可以管理自己的GPG加密,並不考慮第三方工具,那它就夠了,其它的我們將在稍後討論.
即便加密了消息,你仍然會暴露在流量分析中,因為消息頭部必須是明文形式.所以需要另一款比如Tor network來隱藏你在互聯網上的足跡.我們會看看各種郵件服務和客戶端,以及其中的利弊.
忘掉Web郵件
如果你使用過GMail, Yahoo,Hotmail或者其它Web郵件提供商的郵件服務,那就忘掉它們吧.你在Web瀏覽器里輸入的任何信息都會暴露在JavaScript攻擊中,而且無論服務提供商提供什麼保障都是過眼雲煙(譯者注:此說法靠譜否?).GMail,Yahoo和Hotmail均提供SSL/TLS加密來防止消息被竊聽.但是它們不會提供任何保護來阻礙它們自己的數據挖掘,因此並不會提供端到端的加密.Yahoo和Google都聲稱將在明年推出端到端的加密.對此我持懷疑態度,因為如果一旦它們的核心業務數據挖掘受到干預,它們就什麼都幹不了了.
市面上也有各式各樣的聲稱可以為所有類型的電子郵件都能提供安全加密的第三方郵件加密服務,比如Virtru和SafeMess.對此我依舊錶示懷疑,因為無論是誰,只要持有加密秘鑰就可以訪問你的消息,所以你還是要依賴於對他們的信任而不是技術.
對等消息可以避免許多使用集中化服務中的缺陷.RetroShare和Bitmessage是兩種流行的範例.我不知道它們是否如實所述,但這麼說肯定有其可取之處.
那Anddroid和iOS又如何呢?假設大部分的Android和iOS應用都沒有許可權獲取你的消息的話,那就是最安全的.不要照搬我說的 -- 在應用將要安裝到你的設備上時麻煩讀讀相關的服務條款並檢查所要求的許可權.即便在初次安裝時它們的條款是可接受的,也記得單方面的條款改變是行業的標準,所以做最壞的打算是最安全的.
零知識(Zero Knowledge)
Proton Mail是一款全新的郵件服務,聲稱採用零知識就可以實現消息加密.認證和消息加密分為兩個單獨的步驟,Proton遵照Swiss隱私條款,它們不會通過日誌記錄用戶的活動.零知識加密提供真正的安全.這代表只有你擁有你的加密秘鑰,如果你丟了它們,你的消息就無法恢復了.
也有許多加密電子郵件服務聲稱可以保護你的隱私.認真閱讀細則,查看紅色標註的地方,比如受限的用戶數據採集,與好友分享,與執法部門的合作等.這些條款暗示它們會收集和共享用戶數據,擁有許可權獲取你的加密秘鑰,並讀取你的消息.
Linux郵件客戶端
一款獨立的開源郵件客戶端,比如, Mutt, Claws, Evolution, Sylpheed和Alpine,可建立你自己控制的GnuPG秘鑰,給你大部分的保護.(建立更安全的電子郵件和Web瀏覽的最容易的方式是運行TAILS live的Linux發行版.詳情查看通過 Tor、TAILS 和 Debian 在網上保護你自己。)
無論你使用的是TAILS還是一款標準Linux發行版,管理GnuPG的方法是相同的,所以下面來學習如何使用GnuPG加密消息.
使用GnuPG
首先,熟悉一下相關術語。OpenPGP是一種開放的電子郵件加密和認證協議,基於菲利普·齊默曼的Pretty Good Privacy (PGP)。GNU Privacy Guard (GnuPG or GPG)是OpenPGP的GPL實現。GnuPG使用對稱公鑰加密演算法,也就是說會生成一對密鑰:一個任何人都可以用來加密發送給你的消息的公鑰和一個只有你自己擁有用來解密消息的的私鑰。GnuPG執行兩個分開的函數:數字化簽名消息以證明消息來自你和加密消息。任何人都可以讀到你的數字簽名消息,但只有那些與你交換密鑰的人才可以讀取加密消息。切記千萬不要與他人分享你的密鑰!只能分享公鑰。
Seahorse是GnuPG對應的GNOME圖形化前端,KGpg是KDE圖形化的GnuPG工具。
Kgpg為了創建了管理加密秘鑰提供了一個很好的GUI界面.
現在我們執行生成和管理GunPG密鑰的基本步驟。這個命令生成一個新的密鑰:
$ gpg --gen-key
這個過程有許多步驟;對於大部分人來說,只需要回答所有的問題,遵循默認設置就好。當你生成你的密鑰時,記下來並將其保存在一個安全的地方,因為如果你丟掉了它,你就不能解密任何消息了。任何關於不要寫下密碼的建議都是錯誤的。我們中的大部分人要記住許多登錄名和密碼,包括那些我們幾乎從來不會用到的,所以全部記住它們是不現實的。你知道當人們不寫下他們的密碼時會發生什麼嗎?他們會選擇生成簡單的密碼並不斷重複使用。你存儲在電腦里的任何東西都潛在地會被攻擊竊取;一個保存在上鎖的柜子里的小本是無法通過滲透獲取的,除了物理的入侵,當然入侵者要知道如何去尋找它。
我必須叮囑你們去弄清楚如何使用新密鑰去配置郵件客戶端,因為每一個都不同。你可以按照如下操作列出你的密鑰:
$ gpg --list-keys
/home/carla/.gnupg/pubring.gpg
---------------------------pub 2048R/587DD0F5 2014-08-13
uid Carla Schroder (my gpg key)
sub 2048R/AE05E1E4 2014-08-13
這能快速地獲知像密鑰的位置、名稱(也就是UID)等必要信息。假設你想要把公鑰上傳到密鑰伺服器,可以參考實例操作:
$ gpg --send-keys 'Carla Schroder' --keyserver http://example.com
當你生成了一個新的密鑰要上傳到公鑰伺服器,你也應該生成一個撤銷證書。不要推遲到以後做———當你生成新密鑰時就生成它。你可以給它取任意的名稱,比如使用一個像mycodeproject.asc的描述性名稱來代替revoke.asc:
$ gpg --output revoke.asc --gen-revoke 'Carla Schroder'
如果你的密鑰變得不可靠了,你可以通過向keyring導入撤銷證書來撤銷它:
$ gpg --import ~/.gnupg/revoke.asc
然後生成並上傳一個新的密鑰來取代它。當它們更新到密鑰資料庫時,所有使用舊密鑰的用戶都會被通知。
你必須像保護私鑰一樣保護撤銷證書。將它拷貝到CD或USB存儲器中,並加鎖,然後從電腦中刪除。這是明文密鑰,所以你甚至可以將它列印出來。
如果你需要一份複製粘貼的密鑰,比如在允許將密鑰粘貼到網頁表格中的公用keyring中,或者是想將公鑰發布到個人站點上,那麼你必須生成一份公鑰的ASCII-armored版本:
$ gpg --output carla-pubkey.asc --export -a 'Carla Schroder'
這會生成可見的明文公鑰,就像下面這個小例子:
-----BEGIN PGP PUBLIC KEY BLOCK--Version: GnuPG v1
mQENBFPrn4gBCADeEXKdrDOV3AFXL7QQQ+i61rMOZKwFTxlJlNbAVczpawkWRC3l
IrWeeJiy2VyoMQ2ZXpBLDwGEjVQ5H7/UyjUsP8h2ufIJt01NO1pQJMwaOMcS5yTS
[...]
I+LNrbP23HEvgAdNSBWqa8MaZGUWBietQP7JsKjmE+ukalm8jY8mdWDyS4nMhZY=
=QL65
-----END PGP PUBLIC KEY BLOCK--
相信上面的教程應該使你學會如何使用GnuPG。如果不夠,The GnuPG manuals上有使用GnuPG和相關全部配置的詳細信息。
via: http://www.linux.com/learn/tutorials/784165-how-to-encrypt-email-in-linux
作者:Carla Schroder 譯者:KayGuoWhu 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive