{"name":"认证与授权","id":"计算机网络-网络安全-认证与授权","content":"# 认证与授权\n\n> 安全的本质不是技术堆砌，而是对\"信任\"的工程化建模。\n> 认证与授权，就是在网络世界中构建信任关系的核心机制。\n\n---\n\n## 一、安全控制的第一性原理\n\n在计算机安全领域，一切访问控制都可以被抽象为三个最基本的问题：\n\n1. **你是谁？** —— 认证（Authentication）\n2. **你能做什么？** —— 授权（Authorization）\n3. **你如何证明？** —— 凭证（Credential）\n\n这三者构成了安全体系的最小闭环：\n\n```\n认证 → 生成凭证 → 授权决策\n```\n\n无论是：\n\n* HTTP Basic\n* CAS\n* OAuth\n* JWT\n* RBAC\n\n本质上都在回答这三个问题，只是解决场景与边界不同。\n\n---\n\n## 二、认证的本质\n\n### 2.1 认证的目标\n\n认证的本质是：\n\n> 在不可信的网络环境中，建立\"主体身份\"与\"真实个体\"的可信映射。\n\n认证并不是单纯的\"登录\"，而是一种信任建立过程。\n\n---\n\n### 2.2 认证的基本模式\n\n所有认证方式，都可以归为三类：\n\n| 类别   | 本质              |\n| ---- | --------------- |\n| 知识认证 | 你知道什么（密码、密钥）    |\n| 持有认证 | 你拥有什么（Token、证书） |\n| 特征认证 | 你是什么（指纹、人脸）     |\n\n---\n\n## 三、认证机制的演进路径\n\n认证技术的发展，本质是为了解决三个核心矛盾：\n\n1. 用户体验\n2. 安全性\n3. 系统复杂度\n\n---\n\n### 3.1 本地认证：HTTP 认证\n\n最早的认证发生在单系统场景：\n\nHTTP 协议层提供了标准化的认证框架：\n\n```\nWWW-Authenticate → Authorization\n```\n\n流程模型：\n\n```\n客户端 → 服务端：请求资源\n服务端 → 客户端：需要认证\n客户端 → 服务端：携带凭证\n服务端 → 客户端：允许或拒绝\n```\n\n这代表的是一种**最原始的挑战-响应模型**。\n\n---\n\n### 3.2 应用层认证：表单认证\n\n由于 HTTP 认证灵活性不足，大部分系统转向了：\n\n> 表单认证\n\n其本质是：\n\n* 将认证逻辑上移到应用层\n* 由业务系统自行控制认证过程\n\n这带来了更大的灵活性，但也意味着：\n\n> 认证从\"协议标准\"变成了\"工程问题\"\n\n---\n\n### 3.3 跨系统认证：SSO\n\n当系统从单体走向多系统，新的问题出现：\n\n> 如何避免用户在多个系统中反复登录？\n\n这催生了一个目标：\n\n### SSO —— 单点登录\n\nSSO 的本质不是技术，而是一种目标：\n\n> 一次认证，多处信任\n\n---\n\n#### SSO 的核心思想\n\n```\n统一认证中心 + 分散业务系统\n```\n\n* 身份只在一个地方确认\n* 结果在多个系统中共享\n\n---\n\n### 3.4 SSO 的实现：CAS\n\nCAS 是一种典型的 SSO 实现框架。\n\n其核心机制是：\n\n* Ticket\n* 重定向\n* 认证中心\n\n三个核心对象：\n\n| 概念  | 本质         |\n| --- | ---------- |\n| TGT | 身份凭证       |\n| TGC | 客户端 Cookie |\n| ST  | 一次性票据      |\n\nCAS 的本质：\n\n> 用中心化的票据机制，实现跨系统身份传递\n\n---\n\n### 3.5 现代化认证：OIDC\n\n当互联网规模进一步扩大，需要跨组织认证时：\n\n* CAS 已不够通用\n* 需要标准化协议\n\n于是出现：\n\n> OIDC = 认证标准化\n\nOIDC 的本质：\n\n* 在 OAuth2 之上增加\"身份认证层\"\n* 通过 ID Token 标准化身份信息\n\n---\n\n## 四、授权的本质\n\n如果说认证解决：\n\n> \"你是谁\"\n\n那么授权解决：\n\n> \"你能做什么\"\n\n---\n\n### 4.1 授权的核心模型\n\n授权本质上是一个三元关系：\n\n```\n主体（Subject）\n   ↓\n权限（Permission）\n   ↓\n资源（Resource）\n```\n\n---\n\n### 4.2 授权模型的分类\n\n#### DAC：自主访问控制\n\n* 由资源所有者决定\n* 强调\"所有权\"\n\n典型代表：Linux 文件权限\n\n本质：\n\n> 权限属于资源，而非系统\n\n---\n\n#### RBAC：基于角色的访问控制\n\n核心思想：\n\n```\n用户 → 角色 → 权限 → 资源\n```\n\nRBAC 的本质创新：\n\n> 用\"角色\"解耦用户与权限\n\n这是目前企业系统中最常见的模型。\n\n---\n\n#### Rule-BAC / ABAC\n\n基于规则或属性的访问控制：\n\n* 不再只看\"你是谁\"\n* 还看：\n\n  * 时间\n  * IP\n  * 行为\n  * 上下文\n\n本质：\n\n> 从静态权限走向动态决策\n\n---\n\n#### MAC：强制访问控制\n\n强调：\n\n* 安全等级\n* 强制策略\n\n常见于高安全领域。\n\n---\n\n## 五、凭证：认证与授权的载体\n\n认证和授权的结果，需要一种载体来传递：\n\n> 这就是凭证（Credential）\n\n---\n\n### 5.1 Cookie-Session 模型\n\n最经典的状态模型：\n\n```\n客户端 Cookie → 服务端 Session\n```\n\n优点：\n\n* 安全\n* 简单\n\n缺点：\n\n* 有状态\n* 不适合分布式\n\n---\n\n### 5.2 JWT：无状态凭证\n\nJWT 的本质：\n\n> 将状态\"自包含化\"\n\n它解决的问题是：\n\n* 分布式场景下的认证状态传递\n\n---\n\n#### JWT 的设计哲学\n\n* 不依赖服务端存储\n* 信息自解释\n* 可验证但不可篡改\n\n优点：\n\n* 天然适合微服务\n* 可扩展\n\n缺点：\n\n* 难以撤销\n* 长度较大\n\n---\n\n## 六、OAuth2：授权的标准化\n\nOAuth2 并不是认证协议，而是：\n\n> 授权协议\n\n它解决的问题是：\n\n> 第三方应用如何安全地访问用户资源\n\n---\n\n### 6.1 OAuth2 的核心抽象\n\n四个角色：\n\n* 资源所有者\n* 客户端\n* 授权服务器\n* 资源服务器\n\n本质：\n\n> 将\"用户授权\"工程化\n\n---\n\n### 6.2 四种授权模式\n\n| 模式    | 本质    |\n| ----- | ----- |\n| 授权码模式 | 最安全   |\n| 隐式模式  | 纯前端场景 |\n| 密码模式  | 高信任场景 |\n| 客户端模式 | 无用户场景 |\n\n---\n\n### 6.3 OAuth2 的设计原则\n\n* 最小权限\n* 临时令牌\n* 可撤销\n* 明确边界\n\n---\n\n## 七、保密工程：安全的基础\n\n认证与授权的底层，是密码学。\n\n---\n\n### 7.1 客户端加密的意义\n\n客户端加密的本质不是传输安全，而是：\n\n> 防止服务端被动暴露明文\n\n---\n\n### 7.2 密码存储的工程原则\n\n* 永远不存明文\n* 永远加盐\n* 使用慢哈希\n\n---\n\n#### Bcrypt 的哲学\n\nBcrypt 的设计思想：\n\n* 自带盐\n* 自带成本因子\n* 可随硬件升级\n\n本质：\n\n> 通过时间成本对抗算力进步\n\n---\n\n## 八、开放平台与边界信任\n\n当系统从\"内部系统\"变为\"开放平台\"，安全模型发生变化：\n\n* 从默认信任\n* 变为零信任\n\n---\n\n### 8.1 开放平台安全模型\n\n核心要素：\n\n* HTTPS\n* 签名校验\n* OAuth2\n* API 网关\n* 白名单 / 黑名单\n\n本质：\n\n> 构建受控的信任边界\n\n---\n\n## 九、服务间认证的本质\n\n在微服务中，认证问题转化为：\n\n> 服务与服务之间的信任问题\n\n常见策略：\n\n* mTLS\n* API Key\n* Token\n* 证书\n\n核心原则：\n\n> 边界内信任，边界外验证\n\n---\n\n# 十、统一认知模型\n\n最后，将所有内容抽象为一个统一框架：\n\n```\n安全体系\n├─ 认证\n│   ├─ 本地认证\n│   ├─ 联邦认证\n│   └─ SSO\n├─ 授权\n│   ├─ DAC\n│   ├─ RBAC\n│   ├─ ABAC\n│   └─ MAC\n├─ 凭证\n│   ├─ Session\n│   ├─ Token\n│   └─ JWT\n└─ 协议\n    ├─ OAuth2\n    └─ OIDC\n```\n\n---\n\n# 十一、设计哲学总结\n\n### 认证与授权的根本原则：\n\n1. 最小权限原则\n2. 信任边界原则\n3. 零信任思想\n4. 纵深防御\n5. 可审计性\n\n## 关联内容（自动生成）\n\n- [/计算机网络/网络安全/安全性.md](/计算机网络/网络安全/安全性.md) 网关的安全防护能力与网络安全体系密切相关，包括认证、授权、安全策略执行、安全协议等方面的内容\n- [/计算机网络/网络安全/安全架构.md](/计算机网络/网络安全/安全架构.md) 涉及网关在整体安全架构中的作用，包括边界安全、访问控制、安全策略执行等方面\n- [/操作系统/安全.md](/操作系统/安全.md) 操作系统安全与网络安全在C.I.A安全基本原则、安全控制、安全评估方法等方面有共通之处，共同构建完整的安全防护体系\n- [/计算机网络/网络安全/业务安全.md](/计算机网络/网络安全/业务安全.md) 业务安全的底层基于操作系统安全，操作系统的认证机制、保护域、访问控制等概念对业务安全身份体系建设有重要参考价值\n- [/计算机网络/网络安全/Web安全.md](/计算机网络/网络安全/Web安全.md) Web安全与操作系统安全都涉及访问控制、权限管理、认证授权等概念，Web应用的安全最终需要操作系统的底层支持\n- [/计算机网络/网络安全/网络安全技术.md](/计算机网络/网络安全/网络安全技术.md) 网络安全技术中的访问控制、权限管理与操作系统安全在安全模型、隔离技术等方面有共通之处，两者结合可构建端到端的安全防护体系\n- [/计算机网络/网络安全/密码学/密码学.md](/计算机网络/网络安全/密码学/密码学.md) 密码学是认证与授权机制的基础，提供了身份认证、数据完整性保护、密钥管理等安全保障\n- [/计算机网络/网络安全/渗透测试.md](/计算机网络/网络安全/渗透测试.md) 渗透测试中常关注认证与授权机制的弱点，涉及身份验证和权限管理的安全验证\n- [/数据技术/合规与安全.md](/数据技术/合规与安全.md) 数据安全与操作系统安全在访问控制、权限管理、安全审计等方面有密切关联，操作系统安全是数据安全的基础保障\n- [/计算机网络/网络安全/网络安全隔离技术.md](/计算机网络/网络安全/网络安全隔离技术.md) 网络隔离技术与操作系统安全在访问控制、权限管理、隔离等方面有共通之处，两者结合可构建端到端的安全防护体系\n","metadata":"tags: ['安全']","hasMoreCommit":true,"totalCommits":13,"commitList":[{"date":"2026-02-12T14:07:03+08:00","author":"MY","message":"doc: 整理标签","hash":"290b3e8ad18f48832ac282290238d020fc030a88"},{"date":"2026-01-15T17:59:41+08:00","author":"MY","message":"docs(网络安全): 更新认证与授权文档内容并优化结构","hash":"476ac064c3a2ebc389197221ea95d509e7d23130"},{"date":"2025-09-22T14:03:02+08:00","author":"MY","message":"docs(network-security): 删除过时的CAS架构图","hash":"9ce270a7cefe8f5c526e130bf360dfcd6ef01017"},{"date":"2025-09-19T10:26:00+08:00","author":"MY","message":"docs(architecture): 更新 SSO 单点登录架构图","hash":"f5c6a960f8bb5c59d5b892b54a8c70b31eb98e48"},{"date":"2024-11-22T16:07:50+08:00","author":"MY","message":"📦微服务安全","hash":"ca39b7f6d17be76d43f19cd7b533d5976cf00ee0"},{"date":"2024-11-12T18:27:42+08:00","author":"MY","message":"📦网络安全","hash":"db44b92d02443bd3bd78d520b9daaa427d4010f4"},{"date":"2024-04-07T20:13:06+08:00","author":"MY","message":"✏数据库","hash":"b70250450dbf97a0ac40b13beeb18faa45a81baf"},{"date":"2023-03-22T15:32:44+08:00","author":"MY","message":"更新 认证与授权","hash":"5bc454548ac91a86cda622469819d62e497f1b91"},{"date":"2023-03-21T17:45:08+08:00","author":"MY","message":"更新 认证与授权","hash":"2c7f5d5c8eda8e05c358851eddd5d16368cacece"},{"date":"2023-03-13T09:44:21+08:00","author":"MY","message":"📦认证与授权","hash":"57a9789308a89ab5e72e3eb6cf3ae9991d06c2ab"}],"createTime":"2020-11-16T15:58:17+08:00"}