轉貼:完美遠期保密
阿恆
原文網址:完美遠期保密 (原文網站已關閉)
完美遠期保密 (Perfect Forward Secrecy) 是在 HTTPS 基礎上進一步保護用戶與伺服器之間的通訊,在 HTTPS 通訊協定下,所有數據都被加密才送進網絡,但是萬一伺服器的 SSL 密鑰 (private key) 因某些原因泄漏,HTTPS 的加密的鑰匙便會被破解,過去和將來的通訊統統暴露在陽光之下。完美遠期保密使用的卻是一次性的加密鑰匙,不能從伺服器的 SSL 密鑰推算出來。
HTTPS 的問題
HTTPS 使用的 SSL/TLS 安全技術,要求用戶與伺服器使用一條共同的加密鑰匙 (對稱密鑰) 為兩者之間的通訊加密,儘管每次會話 (session) 的加密鑰匙都不同,不過只要收集在建立 HTTPS 通訊時雙方交換的資料,加上伺服器的 SSL 密鑰 (private key),這條加密鑰匙是可以被推算出來的。若果伺服器不幸被入侵,SSL 密鑰被盜取,或者被政府機關勒令交出,伺服器與用戶之間的通訊便再無秘密可言。
斯諾等的泄密文件揭露美國國家安全局 (NSA) 曾經竊聽 HTTPS 通訊,並把內容儲存下來,這些加密了的通訊當時可能無法解讀,但日後取得伺服器的 SSL 密鑰便可以把以前儲存下來的加密通訊解密,往後的通訊同樣全無秘密可言。電子郵件服務商 Lavabit 就是因為受到政府壓力交出伺服器的 SSL 密鑰而決定關閉業務,創辦人 Ladar Levison 此舉實屬難能可貴,但肯定有更多公司為了延續生命,甘願把 SSL 密鑰雙手奉上。所以使用 HTTPS 只能防範一般的黑客,對國家級的專業黑客是毫無防守之力的。
完美遠期保密
採用完美遠期保密的 HTTPS 通訊,加密鑰匙只是短暫性的,而且不能從伺服器的 SSL 密鑰推算出來,這樣即使 SSL 密鑰日後被盜取,過去和將來的 HTTPS 通訊仍然安全,竊聽者始終無法解讀通訊的內容。
哪些網站支援完美遠期保密?
不太多,但數量正在增加,已經支援完美遠期保密的著名網站包括 Google、Facebook、Dropbox 等等,Amazon 和 Apple 根本沒有這方面的計劃,Yahoo 更可憐,他們仍然努力為伺服器添加 HTTPS 功能而努力,完美遠期保密當然連樓梯的響聲也未聽到。
如何得知連線是否完美遠期保密?
使用 HTTPS 連線的話,在網址欄上 URL 旁邊通常都有一個掛鎖標誌,點擊一下這個掛鎖可以看到這個連線和網站證書的詳細資料,在有關安全性的資料中,查看現在使用甚麼加密機制。下圖是美國銀行網站的連線資料:
紅色框的部分就是加密機制的資料,只有支援 ephemeral Diffie-Hellman 的加密法才算是完美遠期保密,其中兩個最常見的是 ECDHE_RSA_RC4_SHA 和 DHE_RSA。上圖可見美國銀行的網站儘管支援 HTTPS,但並不支援完美遠期保密。
我們看看推動網絡人權和隱私的 EFF 網站的連線資料:
注意紅色框內的加密機制包含 ECDHE,那是 Elliptical Curve, Diffie-Hellman, Ephemeral signed 的縮寫,表示它支援完美遠期保密。
不是完美遠期保密的 HTTPS 仍然可用嗎?
可以的,只要你不要使用這種連線傳送報和個人資料和隱私。上面我們看到美國銀行網站的 HTTPS 不是完美遠期保密,所以使用該銀行的網上服務,資料泄漏的風險便與該銀行的 SSL 密鑰的安全性掛鉤,銀行的伺服器或許保安嚴密,SSL 密鑰被盜取得可能性甚低,但政府機關要求它交出 SSL 密鑰又如何呢?美國銀行會像 Lavabit 那樣寧可關閉業務也不妥協嗎?我不敢斷言,你自己判斷好了。
使用了完美遠期保密,我的資料從此高枕無憂嗎?
當然不是,HTTPS 和完美遠期保密只保護網絡中的數據,當數據進入伺服器後,這兩項技術再無用武之地。伺服器如何儲存你的資料?有否加密以至即使資料被黑客盜取仍然無法解讀?加密的機制如何?怎樣管理密鑰?伺服器管理員會否出賣你的資料圖利?這些都是影響資料安全性的因素。