第二十三章:零信任架构
“永不信任,始终验证 — 这不是偏执,而是现代安全的基本原则。”
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 更安全、更细粒度、更好的用户体验
零信任实施是渐进式的,从身份统一开始,逐步深入