第二十三章:零信任架构

“永不信任,始终验证 — 这不是偏执,而是现代安全的基本原则。”

        mindmap
  root((零信任架构))
    核心原则
      永不信任
      假设入侵
      最小权限
      显式验证
    NIST 架构
      PE 策略引擎
      PA 策略管理
      PEP 执行点
    五大支柱
      身份
      设备
      网络
      应用
      数据
    实践
      BeyondCorp
      ZTNA
      成熟度模型
    

23.1 零信任的起源

2010 年,Forrester 的 John Kindervag 提出零信任模型,核心洞察:

传统的”内网可信、外网不可信”的假设已经过时。

传统模型(城堡与护城河):
┌─────────────────────────────┐
│  内网 = 可信 ✅              │
│  ┌────┐ ┌────┐ ┌────┐     │
│  │ DB │ │ App│ │ API│     │  ← 一旦进入内网
│  └────┘ └────┘ └────┘     │     可以横向移动
│                             │
└──────────┬──────────────────┘
           │ 防火墙
    外网 = 不可信 ❌

零信任模型:
  每个请求都需要验证,无论来自哪里
  ┌────┐    验证    ┌────┐    验证    ┌────┐
  │ DB │◀──────────│ App│◀──────────│ API│
  └────┘   mTLS    └────┘   mTLS    └────┘
           AuthZ            AuthZ

23.2 核心原则

原则

含义

实践

Never Trust, Always Verify

不因位置或网络信任任何请求

每次请求都验证身份和权限

Assume Breach

假设攻击者已在网络内部

微分段、最小权限、监控

Least Privilege

只授予完成任务所需的最小权限

RBAC/ABAC、短期凭证

Verify Explicitly

基于所有可用数据做决策

身份+设备+位置+行为

23.3 NIST SP 800-207 架构

┌─────────────────────────────────────────────────────┐
│                  零信任架构                           │
│                                                      │
│  ┌──────────┐    ┌──────────────┐    ┌───────────┐  │
│  │  主体     │───▶│     PEP      │───▶│  企业资源  │  │
│  │(用户/设备/│    │ 策略执行点    │    │(应用/数据) │  │
│  │ 工作负载) │    │ (Gateway/    │    │           │  │
│  └──────────┘    │  Sidecar)    │    └───────────┘  │
│                  └──────┬───────┘                    │
│                         │                            │
│                  ┌──────▼───────┐                    │
│                  │     PA       │                    │
│                  │ 策略管理员    │                    │
│                  │ (建立/断开   │                    │
│                  │  通信路径)   │                    │
│                  └──────┬───────┘                    │
│                         │                            │
│                  ┌──────▼───────┐                    │
│                  │     PE       │                    │
│                  │ 策略引擎     │◀─── 数据源:       │
│                  │ (做出决策)   │     • 身份系统      │
│                  │             │     • 设备状态      │
│                  │             │     • 威胁情报      │
│                  │             │     • 行为分析      │
│                  └─────────────┘     • 合规要求      │
└─────────────────────────────────────────────────────┘

23.4 零信任五大支柱

身份(Identity)

人类身份:OIDC + MFA + Passkey
工作负载身份:SPIFFE/SPIRE
设备身份:MDM + 设备证书

持续验证:
登录时验证 → 每次请求验证 → 异常行为重新验证

设备(Device)

信任等级

条件

允许访问

完全信任

公司设备 + 合规 + 最新补丁

所有资源

部分信任

公司设备 + 部分合规

非敏感资源

低信任

个人设备 + MDM

公开资源

不信任

未知设备

仅公开信息

网络(Network)

传统网络:
┌─────────────────────────────┐
│  扁平网络,所有服务互通       │
│  Service A ←→ Service B     │
│  Service A ←→ Database      │
│  Service B ←→ Database      │
└─────────────────────────────┘

微分段网络:
┌──────────┐    ┌──────────┐
│ Service A │    │ Service B │
│ 只能访问  │    │ 只能访问  │
│ Service B │    │ Database  │
└─────┬────┘    └─────┬────┘
      │ mTLS          │ mTLS
      ▼               ▼
┌──────────┐    ┌──────────┐
│ Service B │    │ Database  │
└──────────┘    └──────────┘

23.5 BeyondCorp — Google 的零信任实践

传统 VPN 模式:
员工 ──▶ VPN ──▶ 内网 ──▶ 所有资源 ✅

BeyondCorp 模式:
员工 ──▶ Access Proxy ──▶ 策略引擎 ──▶ 特定资源
         │                  │
         │ 检查:            │ 决策依据:
         │ • 用户身份        │ • 用户角色
         │ • 设备状态        │ • 设备信任等级
         │ • 网络位置        │ • 资源敏感度
         │ • 请求上下文      │ • 时间/行为

23.6 ZTNA vs VPN

维度

传统 VPN

ZTNA

信任模型

连接后信任整个网络

每次请求验证

访问粒度

网络级(IP/端口)

应用级

攻击面

大(整个内网暴露)

小(仅授权的应用)

用户体验

需要客户端、延迟高

透明、低延迟

横向移动

容易

困难

可见性

高(每次访问都有日志)

23.7 零信任成熟度模型

┌─────────────────────────────────────────────────┐
│  Level 4: 最优                                   │
│  • 自动化响应、AI 驱动的风险评估                  │
│  • 持续验证、实时策略调整                         │
├─────────────────────────────────────────────────┤
│  Level 3: 高级                                   │
│  • 微分段、ABAC、行为分析                        │
│  • 工作负载身份(SPIFFE)、自动 mTLS             │
├─────────────────────────────────────────────────┤
│  Level 2: 初级                                   │
│  • MFA、SSO、基本 RBAC                          │
│  • 网络分段、日志集中                            │
├─────────────────────────────────────────────────┤
│  Level 1: 传统                                   │
│  • 边界防御、VPN、密码认证                       │
│  • 内网信任、粗粒度访问控制                      │
└─────────────────────────────────────────────────┘

23.8 零信任实施路线图

第一步:身份统一(3-6个月)
├── 部署 OIDC IdP(Keycloak)
├── 全面启用 MFA
├── 部署 SPIFFE/SPIRE(工作负载身份)
└── 统一身份目录

第二步:微分段(6-12个月)
├── 部署 Service Mesh(Istio)
├── 启用自动 mTLS
├── 实施 Network Policy
└── 最小权限网络策略

第三步:持续验证(12-18个月)
├── 部署细粒度授权(OpenFGA + OPA)
├── 设备信任评估
├── 行为分析和异常检测
└── 自适应认证

第四步:自动化响应(18-24个月)
├── SOAR 自动化响应
├── AI 驱动的风险评估
├── 实时策略调整
└── 持续合规监控

23.9 小结

  • 零信任 的核心是”永不信任,始终验证”

  • NIST SP 800-207 定义了标准的零信任架构(PE/PA/PEP)

  • 零信任有五大支柱:身份、设备、网络、应用、数据

  • BeyondCorp 是 Google 的零信任实践,用 Access Proxy 替代 VPN

  • ZTNA 比 VPN 更安全、更细粒度、更好的用户体验

  • 零信任实施是渐进式的,从身份统一开始,逐步深入