零信任网络架构的研究由来已久,Google 的这篇 BeyondCorp 论文让这个概念广为认知,毕竟 Google 名气太大。这篇工程实践论文可读性很好,对企业办公网络的安全设计实操非常有帮助,总结一下关键点:

  1. 办公用途没有特权网络,设备凭证加用户凭证决定认证,总是做完整授权,不区分来源网络,不依赖VPN。
  2. 安全的识别设备:访问办公网的设备必须是被企业管理的,客户端证书安装在设备的 Trusted Platform Module里,不能随便放在文件系统上,这个客户端证书被用于标志设备,并被用于 TLS 客户端认证。
  3. 安全的识别用户:存在一个集中的用户和组数据库,并与人力部门的流程结合,使用这个数据库以及一个 SSO 系统认证用户,使用多因子认证,认证通过后用户拿到一个短期有效的 token。
  4. 专门划分的一个非特权网络作为办公用途,通过认证的办公设备都在这个网络里。除了采用内网网段、可以连到内部DHCP,DNS,NTP,Puppet等基础设施服务,其它待遇跟互联网没区别。这个非特权网络与 Google 其它网络有严格的ACL控制。
  5. 使用 RADIUS 服务基于 802.1x 协议认证有线和无线接入的设备,由 RADIUS server认证设备后动态分配 VLAN,而不是依赖交换机端口(意味着也不依赖无线网SSID)。认证过程使用内置在受管理设备里的客户端证书。没有通过认证的设备被分配在 guest network。
  6. 所有企业应用前面有一个面向互联网的统一访问代理,这个代理负责网络通讯加密、负载均衡、服务健康检查、授权控制。
  7. 所有企业应用都使用公网 CNAME 域名,指向访问代理。
  8. 设备的状态,比如有没有打最新补丁,设备型号,用户从一个新位置访问,都会动态影响其访问权限级别。
  9. 访问代理里的访问控制引擎会对每一个请求判断用户名、组名、设备客户端证书、设备型号、设备状态、用户状态(比如是否全职,location)等以决定授权,授权细到服务API级别(不排除服务内部再进一步做访问控制)。
  10. 有一个 job pipeline 持续收集各种信息来更新访问控制引擎里的规则。