身份认证、访问控制技术、SSO单点登录技术、特权访问管理、身份治理与管理——数据安全守护者
文章目录
- 一、身份认证机制
- 1.1 基于密码的认证
- 1.2 多因素认证(MFA)
- 1.3 生物特征认证
- 1.4 基于证书的认证
- 1.5 FIDO2/WebAuthn无密码认证
- 二、访问控制模型
- 2.1 自主访问控制(DAC)
- 2.2 强制访问控制(MAC)
- 2.3 基于角色的访问控制(RBAC)
- 2.4 基于属性的访问控制(ABAC)
- 2.5 基于风险的自适应访问控制(RAAC)
- 三、单点登录技术
- 3.1 OAuth 2.1
- 3.2 OpenID Connect
- 3.3 SAML 2.0
- 3.4 Kerberos
- 四、特权访问管理(PAM)
- 4.1 最小权限原则实现
- 4.2 特权会话管理与记录
- 4.3 特权账户密码保险库
- 4.4 即时特权提升(JIT)
- 五、身份治理与管理
- 5.1 身份生命周期管理
- 5.2 自动化供应与解除供应
- 5.3 身份认证与授权中心化
- 5.4 零信任身份验证框架
一、身份认证机制
身份认证是确保访问者"你是你所声称的人"的基本安全控制措施,是数据安全的第一道防线。
1.1 基于密码的认证
密码认证虽是最传统的方式,但仍然是当今最广泛使用的身份认证机制。
安全密码存储原则
密码绝不应以明文形式存储,而应采用以下技术保护:
- 加盐哈希(Salted Hash):为每个密码生成随机盐值(Salt),与密码结合后再进行哈希运算,防止彩虹表攻击。盐值应至少16字节长,使用加密安全的随机数生成器产生。
- 哈希算法选择:应使用专为密码设计的现代哈希算法,如Argon2id(推荐首选)、bcrypt、PBKDF2或scrypt,而非MD5或SHA1等普通哈希函数。
- 密钥拉伸(Key Stretching):通过多次迭代哈希函数(如PBKDF2中的迭代次数设为10,000以上)增加破解难度,对抗暴力攻击。
- 工作因子(Work Factor):定期评估并增加工作因子(如bcrypt的cost参数),以抵消计算能力增长带来的风险。
实现工具:
- 用于Java的库:Spring Security的PasswordEncoder,jBCrypt
- 用于Python的库:passlib,Werkzeug
- 用于PHP的库:password_hash()内置函数
- 用于.NET的库:ASP.NET Identity的PasswordHasher
强密码策略
- 复杂性要求:强制使用大小写字母、数字和特殊字符的组合。
- 最小长度:至少12-16个字符,随着计算能力提升应定期调整。
- 密码历史:防止重复使用近期密码(如禁止使用最近12个密码)。
- 定期轮换:每90-180天要求更换密码,但需注意过于频繁可能导致不安全行为(如写在便利贴上)。
- 密码黑名单:禁止使用常见密码、字典词和个人信息。
实现工具:
- 企业级密码策略管理:Microsoft Active Directory,Okta,OneLogin
- 密码强度评估库:zxcvbn(Dropbox开发),haveibeenpwned API
前几篇博客:
- 对称加密算法(AES、ChaCha20和SM4)Python实现——密码学基础(Python出现No module named “Crypto” 解决方案)
- 非对称加密算法(RSA、ECC、SM2)——密码学基础
- 哈希函数详解(SHA-2系列、SHA-3系列、SM3国密)案例:构建简单的区块链——密码学基础
- 对比表格:数字签名方案、密钥交换协议、密码学协议、后量子密码学——密码学基础
1.2 多因素认证(MFA)
多因素认证通过结合多种不同类型的认证因素提高安全性,这些因素通常包括:
- 你知道的(密码、PIN码)
- 你拥有的(手机、令牌、智能卡)
- 你是什么(生物特征)
- 你在哪里(位置信息)
- 你做什么(行为特征)
基于时间的一次性密码(TOTP)
TOTP算法(RFC 6238)基于共享密钥和当前时间生成临时验证码:
- 原理:TOTP = HMAC(密钥, 时间戳 ÷ 时间步长),再截取为6-8位数字
- 时间步长:通常为30秒,这是验证码的有效期
- 实现标准:基于HMAC-SHA-1、SHA-256或SHA-512
- 同步机制:允许±1个时间步长的偏差,处理服务器与设备间的时间差
实现工具:
- 开源库:Google Authenticator PAM模块,pyotp(Python),otplib(Node.js)
- SaaS解决方案:Duo Security,Authy,LastPass Authenticator
- 硬件方案:YubiKey,RSA SecurID
基于HMAC的一次性密码(HOTP)
HOTP算法(RFC 4226)使用递增计数器代替时间戳:
- 原理:HOTP = HMAC(密钥, 计数器),再转换为6-8位数字
- 计数器同步:服务器和客户端各自维护计数器,每次验证成功后递增
- 查找窗口:设置一个合理范围(如10)来尝试匹配未同步的计数器值
HOTP相比TOTP的主要优势是不依赖准确的时钟同步,但需要额外的计数器管理。
推送认证
- 工作流程:用户尝试登录→服务器发送推送通知→用户在已注册设备上确认→认证完成
- 安全增强:可添加设备解锁确认(如生物识别、PIN码)
- 离线风险缓解:应提供备用认证方式(如TOTP)
实现工具:
- 商业解决方案:Duo Push,Okta Verify,Microsoft Authenticator
1.3 生物特征认证
生物特征认证基于人体独特的物理或行为特征进行身份验证。
主要生物特征技术
- 指纹识别:基于指纹的脊线模式与细节点(minutiae)比对
- 面部识别:分析面部特征及其相对位置关系
- 虹膜识别:捕捉并分析虹膜纹理的细微差异,准确度极高
- 声纹识别:分析语音的频率特征和发音模式
- 行为生物特征:键盘敲击模式、行走姿态、签名动态等
性能评估指标
- 错误接受率(FAR):系统错误接受未授权用户的概率,反映安全性
- 错误拒绝率(FRR):系统错误拒绝合法用户的概率,反映可用性
- 等错误率(EER):FAR=FRR时的错误率,用于整体系统评估
- 失败注册率(FTE):无法完成初始注册的用户比例
- 失败获取率(FTA):系统无法获取可用生物特征的比例
不同生物特征技术的性能比较:
生物特征类型 | 典型FAR | 典型FRR | 抗欺骗能力 | 用户接受度 |
---|---|---|---|---|
指纹识别 | 0.01-0.1% | 0.5-1% | 中等 | 高 |
面部识别 | 0.1-1% | 2-5% | 低到中等 | 很高 |
虹膜识别 | 0.0001-0.01% | 0.5-1% | 高 | 中等 |
声纹识别 | 1-5% | 5-10% | 低 | 高 |
生物特征数据保护
- 模板保护:应用单向变换存储特征模板,而非原始生物数据
- 可撤销生物特征:采用可重新生成的转换函数,允许在泄露时"重置"
- 偏差管理:设计算法考虑不同人口统计群体间的准确性差异
实现工具:
- 开发框架:BioAPI(ISO/IEC 19784),NIST生物特征评估工具包
- 硬件方案:指纹传感器(Fingerprint SDK),虹膜扫描仪(EyeLock)
- 商业集成平台:Aware Biometrics,Neurotechnology MegaMatcher
1.4 基于证书的认证
基于证书的认证利用公钥基础设施(PKI)验证身份,广泛用于企业和Web安全。
X.509证书结构
X.509证书是数字签名的数据结构,包含:
- 版本号:标识X.509版本(通常为v3)
- 序列号:证书颁发机构(CA)分配的唯一标识符
- 签名算法:用于签署证书的算法(如RSA-SHA256)
- 颁发者信息:颁发CA的可分辨名称(DN)
- 有效期:证书的开始和结束日期
- 主体信息:证书持有者的可分辨名称
- 公钥信息:持有者的公钥及算法标识符
- 颁发者唯一标识符:可选,用于标识颁发者
- 主体唯一标识符:可选,用于标识持有者
- 扩展信息:可选,包含额外属性如用途限制、分发点等
- 证书签名:CA对证书内容的数字签名
PKI组件与流程
PKI系统的核心组件:
- 证书颁发机构(CA):签发并验证证书的可信第三方
- 注册机构(RA):验证申请者身份并处理证书请求
- 证书存储库:存储和分发有效证书
- 证书吊销列表(CRL):发布已吊销证书的列表
- 在线证书状态协议(OCSP):实时查询证书有效性
- 时间戳服务:提供可信的时间证明
证书生命周期管理:
- 申请:生成密钥对,提交公钥和身份信息
- 验证:RA验证申请者身份
- 签发:CA签发证书并返回给申请者
- 分发:将证书发布到目录服务或直接使用
- 更新:在证书到期前续期
- 吊销:在密钥泄露或身份变更时撤销证书
实现工具:
- CA软件:OpenSSL,Microsoft Active Directory Certificate Services,Let’s Encrypt
- HSM(硬件安全模块):用于保护CA私钥,如Thales nShield,Utimaco SafeGuard
- PKI管理平台:Entrust PKI,DigiCert PKI Platform
1.5 FIDO2/WebAuthn无密码认证
FIDO2是一套开放标准,旨在用公钥加密替代传统密码,由WebAuthn(Web认证)和CTAP(客户端到认证器协议)组成。
核心原理
- 基于公钥加密:每个服务生成独立的密钥对,私钥安全存储在用户设备中
- 去中心化:凭证仅在特定服务上有效,消除集中式身份提供商风险
- 抵抗网络钓鱼:认证绑定到原始域名,防止凭证在欺诈网站使用
- 多因素集成:可结合生物特征或PIN码进行本地验证
WebAuthn认证流程
-
注册阶段:
- 服务器生成挑战(challenge)并确定接受的认证器类型
- 客户端请求用户同意并激活认证器(authenticator)
- 认证器生成新密钥对和凭证ID
- 公钥和元数据返回给服务器并与用户账户关联
-
认证阶段:
- 服务器发送包含随机挑战的认证请求
- 认证器使用私钥对挑战签名
- 服务器使用存储的公钥验证签名
认证器类型
- 平台认证器:内置于设备的认证机制,如手机的指纹传感器、Windows Hello
- 跨平台认证器:可在多个设备间使用的外部认证器,如YubiKey、Feitian
- 第一因素认证器:可直接替代密码的认证器
- 第二因素认证器:需与其他认证方式配合使用的认证器
实现工具:
- 服务器库:Duo WebAuthn,SimpleWebAuthn(Node.js),webauthn4j(Java)
- 客户端库:WebAuthn.io,@simplewebauthn/browser
- 硬件认证器:YubiKey,Google Titan,Feitian BioPass
二、访问控制模型
访问控制确保只有授权用户才能访问特定资源,是数据安全的核心机制。
2.1 自主访问控制(DAC)
自主访问控制允许资源所有者自行决定谁可以访问其资源,是最常见的模型之一。
DAC特性与原理
- 所有权中心:每个对象都有明确的所有者,通常是创建该对象的用户
- 委派权限:所有者可决定将访问权分配给其他用户
- 访问控制矩阵:理论上用矩阵表示主体(用户)对客体(资源)的权限
- 实现方式:通常通过访问控制列表(ACL)或访问能力列表实现
访问控制列表(ACL)
ACL为每个受保护对象维护一个权限列表:
- 结构:<主体, 权限列表>的序列
- 优势:直观管理单一资源的访问权限
- 劣势:难以查看单一用户的所有权限;管理大量用户时权限爆炸
- 权限传播:支持显式拒绝和继承机制
实现工具:
- 文件系统ACL:NTFS ACL,POSIX ACL
- 云服务ACL:AWS IAM Policy,Azure RBAC,GCP IAM
能力列表(Capability Lists)
与ACL相反,能力列表关联每个主体可访问的对象:
- 结构:<对象, 权限列表>的序列
- 表现形式:如访问令牌、Cookie、能力URL
- 优势:容易检查用户权限;支持权限委托
- 劣势:撤销权限较为复杂;需要保护能力不被盗用
实现示例:
- 基于令牌的系统:OAuth 2.0访问令牌
- 操作系统:KeyKOS,EROS
2.2 强制访问控制(MAC)
强制访问控制基于系统强制执行的安全策略,用户无法自行修改权限分配。
多级安全模型(MLS)
MLS使用安全标签控制信息流动:
- 安全级别:如绝密(Top Secret)、机密(Secret)、可公开(Unclassified)
- 安全分类:如军事、财务、人事等信息领域
- 标签组成:敏感度级别+零个或多个分类
- BLP模型:Bell-LaPadula模型确保机密性
- 无读上(No Read Up):主体不能读取高于自身级别的对象
- 无写下(No Write Down):主体不能写入低于自身级别的对象
- Biba模型:确保数据完整性
- 无读下(No Read Down):主体不能读取低于自身级别的对象
- 无写上(No Write Up):主体不能写入高于自身级别的对象
类别安全模型
除级别外,还通过专门的类别控制访问:
- 隔间化(Compartmentalization):将信息划分为相互独立的区域
- 需要知道原则:用户只能访问执行任务所必需的信息
- 访问规则:用户必须拥有对象所有类别的访问权限
实现工具:
- 操作系统级MAC:SELinux,AppArmor,Trusted Solaris
- 大数据平台:Apache Ranger,Cloudera Sentry
- 容器安全:Kubernetes Pod Security Policies
2.3 基于角色的访问控制(RBAC)
RBAC通过预定义角色分配权限,是企业环境中最广泛使用的模型。
RBAC核心组件
- 用户(User):系统的活动主体
- 角色(Role):职责或工作功能的集合
- 权限(Permission):对特定资源执行操作的授权
- 会话(Session):用户临时激活角色的环境
RBAC模型家族
- 核心RBAC:基本用户-角色-权限结构
- 层次化RBAC:增加角色继承关系
- 约束RBAC:添加职责分离等约束条件
- 静态分离(SSD):用户不能同时被分配冲突角色
- 动态分离(DSD):用户不能同时激活冲突角色
RBAC实施策略
- 基于任务的设计:根据工作职能定义角色
- 最小权限原则:角色仅包含必要权限
- 角色工程:系统性方法确定最佳角色集
- 自上而下:从业务流程分解职能
- 自下而上:从用户权限模式挖掘角色
- 混合方法:结合两种方法优势
实现工具:
- 身份管理系统:Microsoft Identity Manager,SailPoint IdentityIQ
- 云平台RBAC:AWS IAM Roles,Azure RBAC,Kubernetes RBAC
- 应用框架:Spring Security,ASP.NET Identity
2.4 基于属性的访问控制(ABAC)
ABAC使用属性集合做出访问决策,提供比RBAC更细粒度、更灵活的控制。
ABAC核心属性类别
- 主体属性:用户ID、角色、部门、职位、安全级别等
- 对象属性:资源类型、创建者、分类标签、敏感度等
- 操作属性:功能类型、预期影响等
- 环境属性:时间、位置、威胁级别、网络安全状态等
ABAC策略评估
- 策略语言:通常基于条件逻辑表达式
- 策略评估点(PEP):拦截访问请求并获取授权决策
- 策略决策点(PDP):评估策略并做出授权决定
- 策略管理点(PAP):定义和管理策略
- 策略信息点(PIP):提供评估所需的额外属性
XACML标准
可扩展访问控制标记语言(XACML)是ABAC实现的行业标准:
- 标准化:提供访问控制策略语言的通用模型
- 策略结构:策略集(PolicySet)包含策略(Policy),策略包含规则(Rule)
- 决策组合:定义如何处理多规则冲突(如Deny-Override)
- 上下文处理:将请求翻译为XACML上下文
实现工具:
- XACML引擎:WSO2 Balana,Axiomatics Policy Server
- 云原生解决方案:Open Policy Agent(OPA),AWS ABAC
- 商业平台:NextLabs Control Center,PlainID
2.5 基于风险的自适应访问控制(RAAC)
RAAC根据实时计算的风险分数动态调整访问决策,是最前沿的访问控制范式。
风险评估因素
- 用户行为特征:登录时间、位置、设备、数据访问模式
- 资源敏感度:分类级别、业务价值、法规要求
- 上下文情境:组织安全状态、外部威胁情报
- 历史模式:用户正常行为基准、偏差检测
自适应响应机制
- 阈值响应:基于风险分数触发不同安全措施
- 渐进式认证:根据风险增加认证要求(如添加MFA)
- 会话控制:动态调整会话权限和监控级别
- 持续评估:在整个会话期间持续重新计算风险
RAAC实施框架
- 风险引擎:整合和分析风险信号
- 策略定义:设置基于风险的决策规则
- 实时监控:持续观察用户行为
- 执行机制:实施访问决策
- 反馈循环:学习并改进风险模型
实现工具:
- 用户行为分析(UBA):Microsoft Defender for Identity,Splunk UBA
- 平台集成:Microsoft Conditional Access,Okta ThreatInsight
- 风险引擎框架:RAdAC参考架构,NIST SP 800-207零信任架构
三、单点登录技术
单点登录(SSO)允许用户使用单一凭证访问多个相关系统,提高用户体验同时增强安全性。
3.1 OAuth 2.1
OAuth 2.1是一种授权框架,允许第三方应用代表资源所有者有限访问资源。
OAuth 2.1核心角色
- 资源所有者:能够授予对受保护资源的访问权限的用户
- 客户端:请求访问的应用程序
- 授权服务器:验证身份并颁发令牌
- 资源服务器:托管受保护资源,接受并验证访问令牌
令牌类型
- 访问令牌(Access Token):用于访问受保护资源的凭证
- 刷新令牌(Refresh Token):用于获取新访问令牌,通常寿命更长
- 授权码(Authorization Code):短期凭证,用于获取访问令牌
授权流程
-
授权码流程:最完整安全的流程
- 客户端重定向用户到授权服务器
- 用户认证并同意授权
- 授权服务器重定向回客户端,提供授权码
- 客户端使用授权码交换访问令牌
- 适用场景:服务器端Web应用
-
客户端凭证流程:
- 客户端直接向授权服务器验证自身
- 授权服务器颁发访问令牌
- 适用场景:服务器到服务器通信
-
设备授权流程:
- 为输入受限设备设计
- 设备显示用户码和验证URL
- 用户在另一设备上输入码并授权
- 适用场景:智能电视、IoT设备等
OAuth 2.1与2.0的区别
OAuth 2.1合并了最佳安全实践:
- 强制使用PKCE(Proof Key for Code Exchange)
- 移除隐式授权流程
- 要求严格的重定向URI匹配
- 禁止密码授权流程
实现工具:
- 服务器库:Spring Security OAuth,IdentityServer,OpenID Connect Provider
- 客户端库:AppAuth(移动),oauth2-client(Node.js)
- 开源授权服务器:Keycloak,Hydra,Auth0
3.2 OpenID Connect
OpenID Connect(OIDC)是构建在OAuth 2.0之上的身份认证层,提供标准化的用户身份信息。
核心组件
- ID令牌:包含用户身份信息的JWT(JSON Web Token)
- UserInfo端点:提供额外用户属性
- 动态客户端注册:允许客户端自动注册
- 会话管理:支持单点登出功能
JWT结构
JWT由三部分组成,以点分隔:
- Header:声明令牌类型和签名算法
- Payload:包含声明(Claims)的JSON对象
- 注册声明:预定义的标准字段(如iss、sub、exp等)
- 公开声明:应用自定义但非敏感信息
- 私有声明:参与方共同定义的信息
- Signature:确保令牌完整性的签名
认证流程
-
授权码流程:
- 遵循OAuth 2.0授权码流程
- 额外返回ID令牌
- 支持使用OpenID scope请求特定用户信息
-
隐式流程:(不推荐使用)
- 前端应用直接获取ID令牌
- 安全性较低,已被PKCE流程取代
-
混合流程:
- 结合授权码和隐式流程
- 同时在前端和后端处理令牌
实现工具:
- 提供商:Auth0,Okta,KeyCloak,Microsoft Entra ID
- 客户端库:oidc-client-js,passport-openidconnect
- 开发工具:JWT.io(令牌解码)
3.3 SAML 2.0
安全断言标记语言(SAML)是一个基于XML的开放标准,用于在身份提供商和服务提供商之间交换身份认证和授权数据。
SAML核心概念
- 身份提供商(IdP):验证用户身份并生成SAML断言
- 服务提供商(SP):依赖身份提供商验证用户身份
- 断言(Assertion):包含用户认证和属性信息的XML文档
- 元数据:描述提供商能力和要求的配置信息
SAML断言类型
- 认证断言:声明主体已在特定时间点通过特定方式认证
- 属性断言:包含关于主体的额外属性信息
- 授权决策断言:指明主体是否被授权执行特定操作
主要SAML流程
-
SP发起的SSO:
- 用户访问服务提供商
- SP生成认证请求并重定向到IdP
- 用户在IdP认证
- IdP返回SAML断言
- SP验证断言并建立会话
-
IdP发起的SSO:
- 用户首先在IdP认证
- 用户选择要访问的服务
- IdP生成断言并将用户重定向到SP
- SP验证断言并建立会话
安全考虑
- 断言签名:所有SAML断言必须使用XML签名保护
- 消息加密:敏感属性应使用XML加密保护
- 受众限制:断言应明确指定预期接收者
- 时间有效性:包含NotBefore和NotOnOrAfter条件
- 重放防护:实现断言ID唯一性检查和有效期限制
实现工具:
- 服务端库:Spring Security SAML,OneLogin SAML PHP,PySAML2
- IdP软件:Shibboleth,SimpleSAMLphp,ADFS
- 测试工具:SAML Tracer(Firefox插件),SAML Developer Tools
3.4 Kerberos
Kerberos是一种基于票据的网络认证协议,设计用于在不安全网络上提供强认证。
关键组件
- 密钥分发中心(KDC):包含两个主要服务
- 认证服务(AS):验证用户身份并颁发TGT
- 票据授予服务(TGS):根据TGT颁发服务票据
- 票据授予票据(TGT):证明用户已认证的凭证
- 服务票据:用于访问特定服务的凭证
- 领域(Realm):Kerberos管理的一组系统
认证流程
-
AS交换:
- 客户端发送用户ID到AS
- AS返回使用用户密钥加密的包含TGT和会话密钥的消息
- 客户端使用用户密码派生密钥解密消息
-
TGS交换:
- 客户端发送包含TGT和服务ID的请求到TGS
- TGS验证TGT并返回服务票据和服务会话密钥
-
CS交换:
- 客户端向服务发送服务票据和认证者
- 服务验证票据和认证者,建立会话
Kerberos特性与限制
-
优势:
- 无需传输密码
- 相互认证支持
- 有限时间窗口减少重放攻击风险
- 集中凭证管理
-
限制:
- 时钟同步要求(通常±5分钟)
- KDC成为单点故障
- 密码仍需保护(抵御字典攻击)
- 初始票据暴露风险
实现工具:
- MIT Kerberos:最常见的开源实现
- Microsoft Active Directory:集成Kerberos的企业目录服务
- 跨平台客户端:Heimdal Kerberos,SSPI/GSS-API
四、特权访问管理(PAM)
特权访问管理专注于保护、控制和监控拥有提升访问权限的账户使用情况。
4.1 最小权限原则实现
最小权限原则要求用户只获得执行特定任务所需的最低权限。
特权分类与分级
- 超级用户权限:全系统完全访问权(如root、Administrator)
- 系统管理权限:特定系统区域的管理权限
- 应用管理权限:特定应用程序的管理功能
- 数据访问权限:数据库或敏感数据的特殊访问
- 网络管理权限:网络基础设施的配置控制
职责分离(SoD)实施
- 静态职责分离:不同角色在组织上由不同人员担任
- 动态职责分离:同一人不能在同一事务中执行冲突操作
- 双人控制:关键操作需要两人协作完成
- 四眼原则:一人执行,另一人审查批准
权限发现与整合
- 权限发现工具:自动识别系统中过度权限
- 权限分析:比对实际使用与分配权限的差距
- 特权账户整合:减少特权账户总数
- 特权访问模型:建立适合组织的特权访问框架
实现工具:
- 特权发现:BeyondTrust Discovery,CyberArk Discovery & Audit
- 特权智能:Securonix Privilege Analytics,Thycotic Privilege Behavior Analytics
4.2 特权会话管理与记录
特权会话管理确保所有特权访问都经过集中监控、记录和审计。
会话代理技术
- 透明代理:无需客户端修改的中间会话管理
- 协议代理:特定于RDP、SSH、数据库等协议的代理
- 适配器/连接器:支持遗留系统集成的连接组件
- 跳板机:用于集中访问多个目标系统的强化堡垒主机
会话监控与审计
- 实时监控:主动观察特权会话,发现可疑活动
- 命令过滤:禁止或警告特定敏感命令的执行
- 视频录制:捕获全程会话屏幕活动
- 键盘日志:记录所有命令和输入操作
- 生物特征监控:分析输入模式识别潜在用户切换
取证级记录要求
- 时间戳与用户绑定:精确记录每个操作的时间与执行者
- 防篡改机制:数字签名或区块链确保日志完整性
- 链式证据:维护完整审计链,无中断点
- 独立存储:日志存储与被审计系统分离
- 长期保留:符合法规要求的记录保留策略
实现工具:
- 会话代理:CyberArk PSM,BeyondTrust Privileged Remote Access
- 特权监控:Centrify Privilege Audit,Ironsphere Session Manager
- 取证工具:Splunk Security,Symantec Information Centric Analytics
4.3 特权账户密码保险库
密码保险库集中管理特权账户凭证,实施自动轮换并控制访问。
保险库架构与技术
- 安全存储:使用强加密存储凭证
- 分布式架构:高可用性设计避免单点故障
- 访问控制:精细权限控制谁可检索特定凭证
- 硬件安全模块(HSM):专用密码管理硬件增强保护
- 挂起恢复机制:应急情况下的凭证恢复流程
密码轮换策略
- 自动定期轮换:按照预设时间表自动更改密码
- 使用后轮换:一次性使用后立即更改密码
- 异常检测轮换:发现可疑活动时强制更改
- 不同复杂度策略:根据账户重要性设置不同策略
- 密码生成器:确保生成的密码符合复杂度要求
应用程序身份集成
- 应用程序对应用程序凭证管理:管理系统间身份验证
- API密钥与证书管理:集中存储和更新API密钥和证书
- 凭证提取API:应用程序以编程方式获取凭证
- 嵌入式SDK:直接集成到应用程序代码中
实现工具:
- 企业级保险库:HashiCorp Vault,CyberArk Enterprise Password Vault,Thycotic Secret Server
- 开源方案:Passbolt,Passwordstate,KeePass Enterprise
4.4 即时特权提升(JIT)
JIT提供按需临时特权访问,减少持久特权和相关风险。
JIT授权模型
- 零常驻权限:用户默认无特权,需要时才申请
- 基于时间的访问:特权具有严格的时间限制
- 基于任务的访问:特权限于特定任务范围
- 自动审批工作流:基于预定条件自动批准常规请求
- 多级审批:高风险访问需多人审批
上下文感知授权
- 风险评分:基于多因素计算访问风险
- 异常检测:比对历史模式识别异常请求
- 环境敏感性:考虑时间、位置、设备等因素
- 请求理由评估:分析访问理由的合理性
- 与CMDB集成:验证请求与变更管理记录匹配
权限提升机制
- 突破口账户:用于初始访问的受限账户
- sudo/RunAs:临时执行特定命令的提升权限
- 一次性令牌:临时授权标记
- 特权代理:通过受控中间层执行特权操作
- 特权容器:在隔离环境中提供特权访问
实现工具:
- JIT平台:BeyondTrust Privilege Management,CyberArk JIT Access
- 高级特权管理:Saviynt PAM+,Centrify Privileged Access Service
- 云JIT:AWS IAM Access Analyzer,Azure PIM,GCP IAP
五、身份治理与管理
身份治理与管理(IGA)关注用户身份全生命周期管理和治理。
5.1 身份生命周期管理
身份生命周期管理自动化用户身份从创建到退出的全过程。
身份来源与主账户
- 权威来源:人力资源系统作为人员信息主数据源
- 主账户和派生账户:主身份用于生成各系统账户
- 全局唯一标识符:持久标识用户的不变ID
- 元目录:维护账户关系映射的中央存储
- 身份关联:连接不同系统中同一用户的账户
生命周期事件触发
- 入职流程:新员工自动创建所需账户和权限
- 内部流动:部门调动自动调整权限
- 休假管理:临时休假期间的账户暂停
- 外部人员管理:承包商、合作伙伴账户的特殊生命周期
- 离职流程:员工离开时自动撤销所有访问权限
集成框架与技术
- 事件驱动架构:通过事件总线传播身份变更
- API网关:统一接口促进系统集成
- 批处理同步:定期同步身份信息
- 连接器:预构建的集成组件连接常见系统
- SCIM标准:跨域身份管理系统标准接口
实现工具:
- 企业级IGA:SailPoint IdentityIQ,Saviynt Identity Governance
- 云原生IGA:Okta Lifecycle Management,Azure Identity Governance
- 开源方案:Keycloak,Apache Syncope
5.2 自动化供应与解除供应
自动化供应确保用户资源访问权限的及时分配和撤销。
供应流程设计
- 访问请求门户:用户自助服务请求访问
- 基于规则的供应:基于预定义规则自动分配权限
- 基于角色的供应:根据职能角色分配权限集
- 基于属性的供应:根据用户属性动态分配权限
- 批量供应:处理大规模权限变更
工作流自动化
- 多级审批流程:逐级上报审批复杂请求
- 基于委托的审批:支持审批代理和转发
- 动态路由:基于请求内容智能选择审批人
- 条件逻辑:根据多种因素决定流程路径
- SLA监控:跟踪审批时效并进行升级
供应连接器与标准
- 具备API的目标系统:通过API实现自动化
- 无API系统:通过RPA、脚本或代理实现自动化
- 云应用连接器:基于SCIM或特定API的云服务集成
- 直接数据库集成:特殊情况下的数据库级别集成
- 供应协议:SPML、SCIM等标准化接口
实现工具:
- 供应引擎:Microsoft Identity Manager,Oracle Identity Governance
- 服务自动化:ServiceNow Identity,Ivanti Identity Director
- RPA工具:UiPath,Automation Anywhere(针对遗留系统)
5.3 身份认证与授权中心化
中心化身份服务提供统一的认证和授权控制点。
5.3.1 身份联合架构
- 身份提供商(IdP):集中管理用户身份与认证
- 服务提供商(SP):依赖IdP验证用户身份
- 联合网关:桥接不同身份标准和协议
- 多域信任:建立跨组织身份信任关系
- 联合元数据:描述联合实体能力的配置信息
混合身份架构
- 云身份同步:本地目录与云身份同步
- 密码哈希同步:安全地复制密码哈希到云服务
- 直通认证:通过本地代理验证本地存储的凭证
- 条件访问策略:基于设备、位置、风险应用访问策略
- 多云身份统一:跨多个云提供商的一致身份体验
API安全网关
- API密钥管理:集中分发和撤销API凭证
- JWT验证:验证令牌有效性和声明
- 范围验证:确保客户端仅请求授权范围
- 速率限制:防止API滥用的流量控制
- 请求转换:在客户端和后端之间转换请求格式
实现工具:
- 企业IdP:Ping Identity,ForgeRock Identity Platform
- 混合身份:Microsoft Entra ID,Okta Workforce Identity
- API网关:Apigee,Kong,AWS API Gateway
5.4 零信任身份验证框架
零信任模型假设网络已被入侵,要求对每个访问请求进行严格验证。
零信任核心原则
- 永不信任,始终验证:验证每个访问请求,无论来源
- 最小权限访问:仅授予完成任务所需的最小权限
- 假设入侵:设计防御假定攻击者已在网络内部
- 明确验证:基于身份、设备健康和行为进行验证
- 持续监控:实时监控所有资源访问
零信任身份验证组件
- 强身份验证:多因素和自适应认证机制
- 设备信任:验证设备符合安全标准
- 动态策略引擎:根据风险和上下文评估访问请求
- 微分段:精细网络隔离减少横向移动
- 加密通信:所有通信默认加密
零信任身份验证流程
- 请求访问:用户/设备请求访问特定资源
- 收集信号:系统收集身份、设备、行为和环境数据
- 评估风险:策略引擎根据收集的数据计算风险分数
- 应用策略:基于风险分数和策略决定允许/拒绝访问
- 限制会话:批准的访问限于特定资源和时间
- 持续验证:在整个会话期间不断重新评估访问权限
实现工具:
- 零信任访问:Zscaler Private Access,Palo Alto Prisma Access
- 零信任平台:Google BeyondCorp,Cisco Zero Trust
- 微分段方案:VMware NSX,Illumio Core