本文档全面概述了现代软件架构中的安全系统与实践。它涵盖了身份验证机制、数据保护技术、网络安全组件、API 安全以及安全系统设计原则。旨在为在系统架构的各个层面实施强大的安全性提供技术基础。
有关特定 API 安全实现的更多信息,请参阅 API 和 Web 开发。有关特定于云的安全配置,请参阅 云和分布式系统。
身份验证和身份管理构成了现代系统访问控制的基础。本节将介绍验证用户身份和管理身份验证状态的机制、协议和最佳实践。
身份验证可以通过多种机制实现,每种机制都具有不同的安全属性和用户体验权衡。
| 机制 | 描述 | 安全级别 | 用例 |
|---|---|---|---|
| 基于密码 | 传统的用户名/密码验证 | 基本(取决于密码复杂度) | 通用 Web 应用程序 |
| 多因素 (MFA) | 结合多种验证方法 | 高 | 金融服务、企业应用程序 |
| 基于证书 | 使用数字证书进行身份验证 | 高 | 企业环境、物联网设备 |
| 生物识别 | 使用物理特征(指纹、面部) | 高 | 移动应用程序、物理访问 |
| 基于令牌 | 使用安全令牌(JWT、PASETO) | 中高 | 现代 Web 应用程序、API |
| OAuth/OIDC | 委托授权 | 高 | 第三方集成 |
来源:README.md:411, README.md:416-418, README.md:431-432
JSON Web 令牌 (JWT) 提供了一种无状态的身份验证机制,广泛用于现代应用程序,尤其是在微服务架构中。
来源:README.md:417, README.md:431
来源:README.md:407-408, README.md:416, README.md:420, README.md:430
用于生态系统访问和跨应用程序身份管理的身份验证。
来源:README.md:426, README.md:428, README.md:432
本节涵盖了保护静态数据和传输中数据的技术和方法。
来源:README.md:414-415, README.md:429
妥善存储密码对于保护用户凭据至关重要,即使在发生数据泄露的情况下也是如此。
来源:README.md:400
来源:README.md:414, README.md:418, README.md:429
本节涵盖了保护网络基础设施和通信的组件和实践。
防火墙通过根据预设的安全规则控制和监控流量,充当网络安全的第一道防线。
来源:README.md:404, README.md:410
VPN(虚拟专用网络)通过隧道和加密在公共网络上建立安全连接。
来源:README.md:422, README.md:424
SSH(安全外壳)通过加密通道提供对系统的安全远程访问。
来源:README.md:421
本节介绍了保护 API 和 Web 应用程序的实践,这些应用程序是现代架构中常见的攻击向量。
来源:README.md:57, README.md:68, README.md:71
来源:README.md:401, README.md:409
来源:README.md:57, README.md:409, README.md:414, README.md:419
本节涵盖了构建安全系统的架构方法和设计原则。
来源:README.md:409, README.md:419
来源:README.md:398
来源:README.md:413
安全是现代系统设计中的一个关键方面,需要采取多层方法。通过实施本文档概述的安全系统和实践,组织可以更好地保护其应用程序、API、数据和基础设施免受不断演变的威胁。安全性应贯穿整个开发生命周期,而不是事后添加,遵循“设计即安全”的原则。
有关 OAuth、JWT 或加密算法等特定安全技术的实现细节,请参阅 System Design 101 存储库中的相应指南。