CloudFlare是一家專門提供分散式網路名稱伺服器(DNS)及內容遞送網路服務(CDN)的業者,2012年大型銀行紛紛遭受伊朗駭客的DDoS攻擊時,CloudFlare為幫助客戶解決相關問題發現,雖然雲端服務是為這些銀行舒解DDoS攻擊的良好對策,但基於政策銀行無法交出私密金鑰,因此CloudFlare開始苦思,要如何讓客戶不需分享出私密金鑰?

經過兩年的研究,CloudFlare宣布加入一種新型態的加密傳輸技術Keyless SSL。Keyless SSL並不要求業者提交用來確認網站身份的私密金鑰給雲端業者,因此得以保障私鑰的安全性,CloudFlare並將Keyless SSL的主要部份以開放源碼釋出。

 詳細的技術說明看這裡

TLS /SSL協定主要用來保障網路傳輸的安全,連線時要求網站向瀏覽器證明自己的身份,並透過加密來保障資料的交換。網站使用憑證來向瀏覽器證明自己的身份時除了需要公開金鑰,還得證明它擁有相關的私鑰,才能斷定它是該憑證的持有者。此外,瀏覽器必須評估該憑證是否來自可靠的憑證機構,且憑證必須含有該站的網域名稱。由於私鑰是用來確認網站的身份之用,因此一旦遭竊,就有可能出現偽造的網站,進而導致使用者受駭。

簡而言之,瀏覽器與網站之間的保密與認證是藉由建立一個共享的金鑰以及驗證憑證的持有者而達成,這一系列的訊息交換程序稱為handshake,中文譯為「握手」或「交握」。

CloudFlare說明,標準的CloudFlare SSL服務要求客戶分享該站的SSL金鑰,雖然CloudFlare會盡力保護客戶的金鑰安全,但有些客戶因政策或技術障礙而無法分享金鑰。然而,全新的Keyless SSL允許客戶保留金鑰控制權,同時能夠藉由CloudFlare網路引導加密流量。

CloudFlare執行長Matthew Prince表示,他們會發展此一技術起源於2012年的秋天,當時有多家大型銀行遭受伊朗駭客的DDoS攻擊,某家銀行高層請他們協助解決問題,隨後即發現銀行的硬體設備已不足以承受人為的流量攻擊,而雲端服務是降低DDoS攻擊的良方之一,只是,銀行無法將私有金鑰交給第三方,因為遺失金鑰對銀行而言是非常嚴重的事,甚至必須向美國聯邦儲備銀行報告。

CloudFlare安全工程團隊負責人Nick Sullivan則說明,該公司的作法是在握手程序中僅需存取一次的私鑰,這允許它們拆開SSL握手程序的地理位置,讓大多數的握手程序發生在CloudFlare,並將私鑰的運作轉移到遠端金鑰伺服器上,此一伺服器可以被放置在網站客戶的架構中,讓網站握有私鑰的獨家存取權。

Sullivan指出,iSEC Partners與Matasano Security等資安業者的稽核皆發現,Keyless SSL的安全性相當於就地部署的SSL,目前學術界也正就Keyless SSL的安全性與效能進行研究。

Sullivan說,該技術初期將會應用在採用大型企業方案的CloudFlare客戶上,這代表全球組織不必將SSL的私密金鑰交給第三方的雲端供應商,還可利用類似CloudFlare等彈性且可無限擴充的服務享受諸如減緩DDoS攻擊、平衡負載或WAN最佳化等雲端服務的好處。

金鑰伺服器可建基在Linux、UNIX或Windows Server等平台上,未來也可望被整併到硬體安全模組供應商的產品或是金鑰解決方案中,以方便客戶於自己的架構中管理金鑰。至於Keyless SSL則支援不同的金鑰伺服器,透過相互驗證的SSL來進行CloudFlare與金鑰伺服器之間的安全連結。

由於Keyless SSL必須額外連結一次金鑰伺服器,因此理論上啟用Keyless SSL的傳輸會慢一些,不過,Sullivan說明,由於CloudFlare的資料中心遍及全球20個國家,而且皆座落在可覆蓋95%網路活躍人口的地區,讓網站造訪者可就近連結CloudFlare伺服器,唯一較遠的連結只有金鑰伺服器,幾乎感覺不到延遲。

CloudFlare已釋出Keyless SSL主要部份的原始碼,有些被併至NGINX反向代理伺服器開放源碼專案中,有些則開放在GitHub上。(編譯/陳曉莉)

 

熱門新聞

Advertisement