在 Equifax 發生災難性外洩——1.43 億美國人的紀錄,後來上修至超過 1.45 億——以及 Yahoo 事件之後,安全工程師 Diogo Mónica 為他多年前建構的一套架構取了名字:「加密錨」。Mónica 與同事 Nathan McCauley 在 2015 年轉往企業軟體公司 Docker 之前,已先在支付公司 Square 部署了這套系統。

一般而言,網頁伺服器必須持有資料庫金鑰才能運作,因此誰劫持了伺服器,就一併繼承了金鑰——Equifax 的攻擊者據信大致就是這樣得手的。有了加密錨,金鑰只存在於強化的硬體安全模組上,由它依請求逐筆解密,並對自身限速。即使每天查詢一百萬次,要榨乾 Equifax 的社會安全號碼,也得持續潛伏超過六個月。雜湊也救不了傳統設計:可能的社會安全號碼不到十億組,被竊的雜湊值可以從容地在離線環境比對還原。

「核心概念是確保你的資料不僅經過加密,而且唯一能解密、存取或操作它的方式,在實體上就位於你的資料中心內,」Mónica 說。「如果有人攻破我的資料庫、如果它外洩了,除非他們身在我的網路裡,否則毫無用處。」安全公司 Thinkst 創辦人 Haroon Meer 點出其中吸引力:「你逼他們在你的地盤上行動,所以你就能看見他們來。」

這套做法在 2017 年還稱不上普及,但用在關鍵之處。除了 Square 的實作之外,Mónica 說 Facebook 與 Uber 的工程師曾私下告訴他,他們也運行類似的東西;約翰霍普金斯大學的密碼學家 Matthew Green 則說,他曾就這套做法的多種版本,為多家大型科技公司提供顧問——對安全設計者而言是「老掉牙」,但「從很少人真正去做這點來說,又是新的」。

你無法把入侵者擋在外面,那就控制他們離開時唯一需要的東西:讓每一次解密都必須實體經過一台由你設定速率的獨立裝置。

即時應用程式必須依需求解密,因此傳統加密會把金鑰放在攻擊者最先攻破的那台網頁伺服器上。

單靠雜湊無法對抗小鍵空間:社會安全號碼可以在離線環境被窮舉雜湊,再與被竊的雜湊值比對。

讓每一次解密都經由單一強化的 HSM,金鑰在實體上就無法被下載,資料外流速率也受硬體上限所限。

代價是每個請求多花百分之幾秒,換來的是以月計的外洩時鐘,而且全程都讓防禦方看得見。

要針對外洩來設計,而不只是針對入侵:速率是防禦方能掌控的資源。由你掌握的瓶頸,會把無聲的入侵變成緩慢而喧鬧的圍城。

到了 2017 年底,Mónica 聲稱「每一個真正優秀的安全工程團隊都在使用某種形式的這套做法」,並引述 Facebook 與 Uber 工程師的私下確認。HSM 廠商 Gemalto 與 Thales 多年來已讓這類部署可行,而雲端版本——Amazon 的 CloudHSM、Microsoft 的 Azure Key Vault——則把這些元件帶到一般企業可及的範圍。Mónica 無法保證加密錨能擋下 Equifax,因為其攻擊路徑當時仍不明朗,但他主張,這會拖慢攻擊者並縮小失竊的規模。

追溯依據

參考來源

  1. 'Crypto Anchors' Might Stop the Next Equifax-Style Megabreach WIRED · wired.com ·