谷歌基礎設施中應用層服務到服務通信的防護方式,及其用于數據防護的系統,如今終于公開了。
該技術名為應用層傳輸安全(ALTS),用于驗證谷歌服務之間的通信,保證傳輸中數據的安全。數據發往谷歌時,是用安全通信協議防護的,如傳輸層安全(TLS)。
該Web搜索巨頭稱,ALTS的研發始于2007年,當時TLS與其他不能滿足該公司最低安全標準的支持協議捆綁在一起。因此,該公司認為,設計自己的安全解決方案,比修補已有系統更合適。
因為比TLS更安全,谷歌將ALTS描述為“高度可靠的可信系統,可為內部遠程過程調用(RPC)通信提供身份驗證和安全”,確保該公司基礎設施內的安全。
谷歌解釋稱,該系統僅需服務自身最低限度的參與,因為數據默認受到保護。所有生產工作負載發出或收到的RPC,都默認受ALTS保護,只要它們處于谷歌控制的物理邊界之內。
該公司還表示:
ALTS配置對應用層透明;
ALTS使用的所有加密原語和協議,都隨當前已知攻擊更新;
ALTS主要根據身份而非主機名進行身份驗證;
該系統依賴每個工作負載擁有一個身份——以一組憑證表示;
初始ALTS握手之后,連接會被保持更長時間以提升系統整體性能;
因為谷歌控制了客戶端和服務器,ALTS比TLS簡單得多。
ALTS帶來的好處還包括更精確的安全。谷歌在描述該系統的白皮書中解釋稱,同一臺機器上執行的工作負載,可以各自的身份,而非該主機的身份進行驗證。潛在加密操作的高昂開銷,也能經由ALTS的使用而得到大幅削減。
ALTS還提供了更好的可擴展性,內置于其握手協議中的高效恢復機制所帶來的優雅簡潔。該系統還能適應大量RPC的身份驗證和加密需求。谷歌生產系統中的服務發出的RPC請求,在每秒10^10級別。
該系統還包含一系列為確保安全和可擴展性而設計的功能,并重點突出適合網上不同類型實體的靈活信任模型。
谷歌基礎設施內,所有預定生產工作負載,都由安全分發的證書進行初始化,并驗證其身份。遠端身份和證書,在工作負載參與到ALTS握手是予以驗證。證書的有效期相對較短。
ALTS使用基于 Diffie-Hellman (DH) 的身份驗證密鑰交換協議進行握手,并為應用提供經驗證的遠端身份,用于在應用層進行細粒度的授權。
握手完成后,客戶端和服務器協商所需的共享秘密,ALTS通過強制完整性,和采用該協商共享秘密的可選加密,來保護RPC流量。我們支持多協議以保障完整性,比如128位密鑰的AES-GMAC和AES-VMAC。
當流量離開谷歌治下的物理邊界,協議便會自動降級,以確保加密和完整性。這種情況下,會使用128位密鑰的 AES-GCM 和 AES-VCM 協議。
ALTS白皮書:
https://cloud.google.com/security/encryption-in-transit/application-layer-transport-security/