字體:小 中 大 | |
|
|
2020/01/31 01:58:47瀏覽1253|回應2|推薦4 | |
電子郵件現在已經是大眾的基本通信手段了,然而,對電子郵件的安全性,多數人都不甚了解。如果你還沒有使用Protonmail, 那麽你基本是處於裸泳狀態。
很多人都用gmail, 也有人用MS的outlook, 或者 yahoo mail. 然而,Snowden 和 PRISM 卻爆出美國的大公司和CIA, NSA等有很深的合作關系。參考閱讀:“Google向川普表態效忠美軍”。在包括前述的絕大多數電郵系統中,你的郵件內容和聯絡簿都是以明文形式存在服務器上的,你的隱私被暴露無遺。
本次臺灣大選,藍營之所以輸掉,還有一個重要原因,那就是美國已經不持中立立場了。美國要遏制中國,必定偏向最反中的民進黨,明裏暗裏的幫助民進黨。這種情況下,完全的信任美國的服務,很有問題。
我為藍營人士推薦的組合:電子郵件,使用Protonmail 取代gmail ,即時通訊用 Line (如果涉及大陸政治),微信(如果涉及台灣政治)。
你們知道Hilary Clinton為何輸掉了大選? DNC的大量email被川普夥同俄國間諜偷去,Clinton本人又被爆出使用私人email server.
你們知道川普為什麽要狠命的打壓華為?華為是做手机和通讯网路的!
看看歷史就知道了,二戰期間,美國人破譯日本人的密碼,直接派飛機攔截了三本五十六的座機,一舉將其幹掉。英國人破解德國人的密碼機,讓德國人吃了大虧。
再說最近的事情,美國人狙殺伊朗蘇萊馬尼, 靠的也是精準的情報。
還有孟晚舟的遭遇,會不會是她用的iphone出賣了她?
信息時代,信息安全的重要性無論如何強調,都不過分。
所以,我這裏隆重的為大家介紹Protonmail。以下簡稱PM.
1. 華人物理學家 Andy Yen ( CERN Researcher, 哈佛 Ph.D)創立的同名公司制作。
2. 使用天才的設計,和現代的數字密碼技術,全面的為用戶考慮,告別裸泳。
3. 免費,匿名,有中文界面,當然,該公司鼓勵大家捐款或購買付費升級服務,畢竟也要生存麽。
4. 兼容OpenPGP協議
把象牙塔中高級安全加密技術帶給普通大眾。OpenPGP通常是geek, hacker的特權,因為有學習難度,一般民眾都不用。但是,PM把所有的難處都隱藏起來,你就是傻瓜也能用,完全和使用普通的郵件系統,沒有什麽區別。
5. 端到端的加密,你的郵件內容,只有你自己能看到,即使PM都無法看到。
作為對比,你們知道,你用gmail發的任何東西,google都會掃描,存檔在google的服務器上。然後,或許...
端到端的加密概念,你或許在line上也遇到過.
據我所知,即使CIA, 想要破譯用現代密碼學保護起來的內容,也是不可能的。
所謂端到端的加密,是指,郵件只有在你(發送者)和接受者的電腦上的時候,是以明文呈現的,在其他任何時候,包括在PM的服務器上,都是以密文形式存在的。
另外很重要的一點,你的登錄密碼,PM也不保存,它只保存密碼的一個單向函數值,所謂單向是說,從這個函數值,是無法反推出原始密碼的。
為了保持端到端的加密的完整性,對方必須也使用PM, 或者OpenPGP.
如果對方不使用上述,那麽保密性就只剩下一半了。
信息監視,除了CIA幹以外,共產黨和民進黨幹沒幹?
6.當接受方不使用PM和OpenPGP時,PM還提供了另一種保密方式,稱為預設密碼方式,這時,你在發送郵件時,可以設一個密碼,然後,PM用該密碼加密郵件。這時,你可以用其他渠道,比如電話,或者預先約定,把密碼通知收信人。收信人收到的郵件含有一個web連接,這個web連接是在PM的服務器上,瀏覽這個連接,裏面會有提示,讓收信人輸入密碼,這時郵件內容就會被解密。註意,解密的內容也只存在於收件人的電腦上,不會發到任何地方。
7. PM的客戶端代碼是Open Source, 在github上,一搜即得。任何人都可以檢查。這也是為了增加用戶對PM的信賴感。
8. 公司位於中立國瑞士
9. 有web和移動app兩個入口
關於web, Protonmail不推薦使用google chrome, 推薦使用brave, firefox 等open source 軟體。
到此,普通讀者可以止步了,下面介紹一點更深入,也更難懂的PM的技術細節。
心動不如行動,現在立刻體驗: https://www.protonmail.com
如果你是我的朋友,並在那裏註冊了賬戶,不妨用本站的悄悄話留言告訴我你的protonmail賬號,以後我們可以一起使用這個好東西。
**************************
PM使用了RSA算法和 Diffie–Hellman key exchange
對每一用戶,PM生成一個Public/Private key pair。
private key 會被用戶密碼加密後保存,如果用戶密碼是p, 那麽,
計算 P= pwd_derive(p, loop, salt, user_name)
然後 en_private_key = En(P, private_key)
public_key, en_private_key會和user_name一起保存在服務器上。
所有發給用戶的信件的內容都會用public_key加密後保存。
當用戶登錄時,客戶端會得到用戶的用戶密碼,然後解密出private_key,用這個
private_key就可以解密所有的信件內容。注意,這個解密只發生在客戶端。
用戶登錄與驗證機制。 PM使用的是 SRP Authentication and Key Exchange System
(https://tools.ietf.org/html/rfc2945 ,https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol). 該機制計算一個用戶密碼的單向函數值v,這個v被和用戶名一起保存在服務器上, 從這個v是無法得到原始用戶密碼的。所以,PM本身也無法獲得用戶密碼。
以下是符號說明:
q and N = 2q + 1 are chosen such that both are prime (which makes q a Sophie Germain prime and N a safe prime). N must be large enough so that computing discrete logarithms modulo N is infeasible.
All arithmetic is performed in the ring of integers modulo N. This means that g^x should be read as g^x mod N.
g is a generator of the multiplicative group Zn.
H() is a hash function; e.g., SHA-256.
k = H(N, g).
s is a salt.
I is an username.
p is the users password.
v is the hosts password verifier, v = g^x where x = H(s | H ( I | ":" | p) ).
這裡需要注意的是, 這裡的salt或 函數 H,應當與pwd_derive中使用的salt或hash 函數不同。
a and b are random one time ephemeral keys of the user and host respectively.
然後,以下是用戶登錄時的驗證步驟:
user to server: send I and A = g^a
server to user: send s and B = kv + g^b
Both: u = H(A, B)
user: Suser = (B − kg^x)^(a + ux) = (kv + g^b − kg^x)^(a + ux) = g^b(a + ux)
shared password by user: Kuser = H(Suser)
shared password by server: Sserver = (A*v^u)^b = (g^a * v^u)^b = (g^a* g^x^u)^b = (g^(a + u^x)^b = (g^b)^(a + ux),
So, Kserver = H(Sserver) = Kuser = K
K 就是 shared session key.
為了彼此驗證對方,
user to server: M1 = H[H(N) XOR H(g) | H(I) | s | A | B | Kuser].
服務器用Kserver代替上式中的Kuser,如果計算結果於M1同,則可驗證用戶。
server to user: M2 = H(A | M1 | Kserver).
用戶用Kuser代替上式中的Kserver,如果計算結果於M2同,則可驗證服務器。
至此,雙方互相驗證。
All Rights Reserved by UDN/武二郎
|
|
( 知識學習|科學百科 ) |