保持交易與客戶資料隱密性
Google Certificate Transparency憑證透明度說明
以往常常看到發生SSL憑證的一些漏洞,不管是流程面或者技術面的問題,都造成一些嚴重的影響,google為了要讓這樣的情形可以減少,就擬定了一個憑證透明度的計畫(Google's Certificate Transparency project),用來改善原本https連接上結構性的缺陷,使以往常常發生的憑證偽冒,中間人攻擊..等詐騙行為能減少,我們來了解一下其中的細節!
SSL憑證的發行,提供瀏覽器在溝通上的一個加密機制,但是!從以前到現在經常發生造假,入侵或者盜用等等的一些破壞行為,導致SSL憑證的信任度受到質疑,進而牽連到瀏覽器廠商或者憑證的發證商...等等,而主要的問題,就是在SSL憑證本身沒有很透明的機制進行確認,讓駭客有機會利用這漏洞進行非法行為, google發現這樣的偽造憑證問題必須要改善,因此就建立了一個機制就做憑證透明度(Certificate Transparency),簡稱CT,讓加入此計畫的憑證發證商,他們的憑證可以透明化(任何人都可以查詢狀態),來達成改善SSL憑證結構性的缺陷!
憑證透明度是一個公開的架構,主要有三個部分
1.Certificate logs(證書日誌)
2.Certificate monitors(證書的監視)
3.Certificate auditors(證書的稽核)
-------------------------------------------------------------------------------
1.Certificate logs(證書日誌):
提供一個日誌的集中控管中心,任何人都可以提交日誌到此處,不過大部分都是CA廠商或者營運商會提交,整個流程待會會說明,任何人也可到此日誌去查詢憑證的資料,例如您到一個網站時,瀏覽器會先去查詢一下這網站的憑證是否有效,是誰發的或者憑證內相關訊息
理想情況下,證書日誌將保持發出的所有SSL證書的記錄(您可以從日誌的下拉式選單看到); 目前部署僅限於EV證書,為何需要多個日誌存在,主要原因有四點
a.備用:在某個日誌失敗的情況下,多個記錄可以互相備用,
b.驗證不中斷:如果一個日誌或日誌操作者受到損害,證書可以仍然進行驗證;
c.無法刪除:不能刪除發行的所有日誌的證據;
d.串通混淆:多個獨立的日誌意味著CA和登錄運營商不能串通混淆。
日誌提供三個功能
a.They’re append-only : 憑證只能增加, 不能刪除或竄改
b.They’re cryptographically assured:日誌使用一種加密機制(Merkle Tree Hashes)來防止被竄改
c.They’re publicly auditable:任何人都可以查詢此日誌,來驗證證書是否合法的被加入到日誌當中 同時每個證書日誌必須公開宣傳其URL和公共密鑰!已便讓人查詢!
2.Certificate monitors(證書的監視):
監視器可以通過使用HTTP GET命令取得日誌信息。每個客戶可以作為自己的日誌監控服務,也可以委託該給另一方
3.Certificate auditors(證書的稽核):
證書審計員檢查日誌來確認日誌與其他日誌一致,確認新增加的日誌,以及是否有被人修改,刪除或者破壞,這樣的機制可能會在瀏覽器中自動審查!
我們來看一下整個流程是如何運作的
以往的憑證發放流程如下圖
1.首先申請者跟CA廠商購買憑證
2.CA廠商驗證一下申請者的資格
3.CA廠商發出證書給申請者,申請者安裝好SSL憑證
4.用戶使用瀏覽器打開申請者網站時,瀏覽器進行TLS的交握(handshake)認證
5.瀏覽器交握任證完成後,建立連結
6.SSL憑證加密所有的Client與server資料
加入CT的憑證發放流程如下圖
1.首先申請者跟CA廠商購買憑證
2.CA廠商驗證一下申請者的資格
3.CA廠商產生一個叫做precertificate的東西
4.CA廠商把precertificate記錄到日誌主機,此日誌主機會回傳一個簽章過的時戳signed certificate timestamp (SCT).
5.CA廠商發出證書(證書中可包含SCT)給申請者,申請者安裝好SSL憑證
6.用戶使用瀏覽器打開申請者網站時,瀏覽器驗證SCT(透過TLS handshake,OCSP stapling,TLS extension或者憑證中崁入的相關資訊)
7.瀏覽器交握任證完成後,建立連結
8.SSL憑證加密所有的Client與server資料
所以您可以知道,後者的驗證方式多了兩個步驟,加強了把關的機制,這種方式就可以即時去確認網站的憑證安全性!
那我們如何知道您安裝的SSL憑證是否有加入CT呢? 您可以從google chrome中看到!
1.未加入的https網站您點擊憑證資訊,會看到如下圖所示!
2.有加入的https網站您點擊憑證資訊,會看到如下圖所示!
您如果點選資訊公開情形,會看到已下公開資料,您可以點選已嵌入驗證完成的下拉式選單,看到不同的公開記錄!
目前國外各大CA(2015年開始)已經開始慢慢導入CT的機制,建議您在購買憑證的時候可以詢問您的廠商是否有提供此項服務,這樣是更具保障的!
目前此項服務只有針對EV的SSL憑證,將應該會來會慢慢加入OV或DV的SSL憑證
至於要如何加入CT的技術資訊,您可以參考http://www.certificate-transparency.org/相關說明!
值得一提:Digicert是第一家導入CT機制的CA商,2013年就導入囉!
後記:
證書透明度的技術已經存在了一段時間,google率先推出,那firefox與IE呢? firefox也將會推出同樣的機制(https://wiki.mozilla.org/PKI:CT),IE目前是沒有看到相關資料!不過我想這樣的技術將來應該會是各大瀏覽器都會支援!到時候變成必備的功能!對於資安的幫助將會是很大的!