从应用层到传输层 谷歌披露如何保护数据安全

2017-12-21 11:50:54 nana 安全牛

谷歌基础设施中应用层服务到服务通信的防护方式,及其用于数据防护的系统,如今终于公开了。



该技术名为应用层传输安全(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/