Day21-01|4.6.1 访问控制技术:让正确的主体在正确的范围内访问正确的资源

本文对应《系统架构设计师教程(第2版)》第4章“信息安全技术基础知识”4.6.1“访问控制技术”。访问控制是信息系统安全的核心技术之一,解决的基本问题是:谁可以访问什么资源、执行什么操作、在什么条件下访问,以及如何记录和撤销这种权限。

一、学习目标

完成本节后,应能够:

  1. 区分身份认证、授权和审计;
  2. 理解访问控制模型及其适用场景;
  3. 掌握自主访问控制、强制访问控制、基于角色和基于属性访问控制;
  4. 设计最小权限、职责分离、会话管理和特权访问方案;
  5. 在案例和论文中把访问控制落实到用户、服务、数据、接口和运维全过程。

二、访问控制解决什么问题

访问控制是在主体提出访问请求时,根据安全策略判断主体是否可以对客体执行指定操作。主体可以是用户、服务、设备、进程或管理员;客体可以是文件、数据库记录、接口、菜单、流程、设备或密钥;操作可以是读取、创建、修改、删除、执行、导出和授权。

主体 + 请求动作 + 目标资源 + 环境条件 → 策略判断 → 允许、拒绝或转人工

概念 要回答的问题 示例
身份认证 你是谁 员工使用账号、多因素和证书登录
授权 你能做什么 财务人员可查看本法人账务
访问控制 请求是否满足策略 该用户能否导出当前报表
审计 你做了什么 记录访问人、时间、对象和结果
身份生命周期 权限何时变化 转岗撤销旧角色,离职禁用账号

认证成功不等于授权成功。一个用户可以成功登录系统,但只能访问职责范围内的菜单、数据和操作。访问控制也不等于审计,系统允许访问后仍需记录主体、对象、动作、时间和结果。

三、访问控制的安全目标

访问控制首先保护机密性,阻止无权主体读取敏感信息;其次保护完整性,阻止无权主体修改、删除或执行关键动作;同时也保护可用性,避免恶意用户耗尽资源或锁死服务;此外还要支持责任追踪和职责分离。

访问控制策略应遵循最小权限、默认拒绝、职责分离、权限复核、权限期限和安全失败原则。最小权限要求主体只获得完成任务所需的最小资源和操作;默认拒绝要求未明确授权的请求被拒绝;职责分离防止一人独立完成高风险全过程;权限复核确保长期授权仍然合理;权限期限减少临时访问的残留;安全失败要求控制组件异常时不能无条件放开访问。

四、自主访问控制(DAC)

自主访问控制由资源拥有者决定谁能访问资源。文件所有者可以授予、修改或撤销其他用户的权限,常见于传统操作系统文件权限和部分数据库授权。

DAC灵活、易于部署,适合个人或小团队共享,但权限容易传播。获得读取权限的用户可能把文件复制到另一个位置,再授予其他人;资源所有者可能缺乏安全意识,误授予过大权限;组织很难统一检查所有资源的授权关系。

在企业系统中使用DAC时,应配合权限上限、共享审批、数据密级、外链有效期、下载审计和定期复核。个人可以管理自己的草稿,但正式合同、财务数据和患者记录不能完全依赖个人决定。

五、强制访问控制(MAC)

强制访问控制由系统根据统一安全策略决定访问,资源和主体带有安全级别或安全标签,用户不能随意改变。访问判断可以基于主体等级、资源等级、组织隔离和信息流规则。

MAC适合军事、政务、金融核心、工业控制和高敏感环境。它能够统一约束信息流,降低用户误授权风险,但管理和配置复杂,业务变化时需要专业维护。若标签错误或策略过于严格,可能造成业务阻塞。

实施MAC需要建立标签体系、分级标准、策略管理员、变更审批和异常处理。标签不能只写在界面上,数据库、文件、消息、缓存和备份中的标签也要保持一致。高敏感数据不能通过复制、导出、截屏或接口绕过强制策略。

六、基于角色的访问控制(RBAC)

RBAC将权限授予角色,再把角色授予用户。角色通常对应岗位或职责,例如采购员、采购主管、财务审核员、系统管理员和审计员。用户的访问权限随岗位角色变化,不需要逐项修改大量资源授权。

RBAC的基本关系包括用户—角色、角色—权限和角色继承。角色可以按层级继承,例如部门负责人继承普通员工查看权限,再增加审批权限;也可以按组织和业务拆分,避免角色过于庞大。

RBAC适合组织结构相对稳定、岗位职责明确的系统,如ERP、OA和政务平台。但如果只按角色授权而不考虑数据范围,容易出现“财务人员可以查看全部法人数据”的问题。因此,RBAC通常需要与组织、数据、字段和环境条件结合。

七、基于属性的访问控制(ABAC)

ABAC根据主体、资源、动作和环境属性动态判断访问。主体属性可以包括部门、岗位、职级、资质和风险等级;资源属性可以包括数据密级、所属组织、项目和地域;环境属性可以包括时间、设备、网络位置、地点和行为风险。

例如,允许“本院在岗医生在诊疗期间通过可信终端查看其负责患者的病历”,这比“医生角色可以查看病历”更细粒度。ABAC适合多组织、动态授权、跨地域和高敏感场景,但策略设计、测试和解释复杂,需要良好的属性数据质量。

ABAC依赖可信属性源。部门和岗位来自组织系统,设备可信来自终端管理,数据密级来自数据治理,风险等级来自安全分析。属性过期、同步延迟或来源被篡改都会影响授权结果。策略应有版本、优先级、冲突处理和模拟测试能力。

八、身份认证与多因素认证

访问控制的前提是可靠身份。认证因素通常分为“你知道的”密码或PIN、“你拥有的”令牌、证书或手机,以及“你是谁”的生物特征。多因素认证要求使用两个或多个不同类别因素,降低单一密码泄露后的风险。

认证系统要保护密码、令牌、会话和恢复流程。密码应安全存储,不能明文保存;令牌应短期有效、可撤销和防重放;登录失败要限速和告警;找回密码不能成为绕过多因素的弱入口;高风险操作可以重新认证。

单点登录减少重复登录和密码管理成本,但身份中心成为关键依赖,需要高可用、审计、故障恢复和受控应急账号。服务间认证可以使用证书、短期令牌或工作负载身份,不能依赖固定共享密码。

九、最小权限与职责分离

最小权限要同时控制功能、数据、字段、时间、来源设备和操作方式。用户能查看不代表能导出,能创建不代表能审批,能审批不代表能付款。服务能读订单不代表能修改支付结果,管理员能维护配置不代表能删除审计日志。

职责分离用于降低高风险流程中的内部滥用。采购申请、审批、收货、付款和记账应由不同主体承担;代码提交、发布审批和生产部署可以分离;密钥生成、使用、审计和销毁可以分权。紧急情况可以允许临时合并,但必须有双人复核、时间窗和事后审计。

十、数据级、字段级和操作级控制

菜单隐藏不能替代真正授权。数据级控制限制用户能看到哪些记录,例如只能查看本部门或本法人的客户;字段级控制限制能看到哪些字段,例如普通人员只能看手机号后四位;操作级控制限制能做什么,例如可以查看但不能导出、可以提交但不能批准。

应用服务端需要在每次敏感操作时校验身份、资源归属、状态和权限。数据库可以配合视图、行级安全和列级权限,但核心业务规则仍要在领域服务中实施。缓存、搜索索引、报表导出和接口响应必须继承原有数据权限,不能因为换了访问渠道而越权。

十一、特权访问管理

系统管理员、数据库管理员、云平台管理员和安全管理员拥有高权限,是重点保护对象。特权账号应使用独立身份、专用终端或堡垒机,采用工单授权、临时密码、双因素认证、会话录制、命令审计和高风险动作拦截。

共享管理员账号会导致责任不清和权限无法回收。应为每个运维人员建立独立账号,必要时由特权管理平台代管真实密码,使用后自动轮换。紧急账号要封存、审批和监控,不能成为长期绕过流程的后门。

十二、会话、令牌与权限撤销

认证后系统通常建立会话或发放令牌。会话应设置有效期、空闲超时、并发限制、设备绑定和异常终止;令牌应区分访问和刷新用途,限制范围和时间;注销、改密、离职、风险升级和权限变化时应能撤销或失效相关令牌。

分布式系统中,权限撤销可能存在缓存延迟。高风险权限不能只依赖长时间缓存,应支持主动失效、短期令牌、版本号或策略实时检查。用户被禁用后,已有会话、API密钥、移动设备和共享链接都要同步处理。

十三、访问控制审计与验证

审计日志至少应包含主体、身份来源、资源、操作、时间、结果、客户端、策略版本和关联业务。对于拒绝请求,也要记录原因类别,帮助发现攻击和误配置。敏感数据内容不应直接写入日志,日志本身要加密、限权、防篡改和合理保留。

访问控制要通过测试验证。测试包括越权读取、越权修改、水平越权、垂直越权、过期权限、撤销延迟、接口绕过、缓存绕过、导出绕过和管理员滥用。权限矩阵、策略模拟和历史审计可以帮助验证授权是否符合业务要求。

十四、案例分析:医疗平台访问控制

某医疗平台包含患者、医生、护士、药师、财务和科研人员。系统目前只按“登录用户”控制访问,所有医生都能查看全部患者记录,科研人员可以下载完整病历,管理员共用一个账号。

改进方案:建立个人、岗位、科室、诊疗关系和设备可信属性;采用RBAC管理岗位基础权限,用ABAC限制患者、科室、时间和终端范围;医生只能查看授权诊疗关系内的病历,护士只能查看护理所需字段,药师只能查看处方相关信息,财务不能查看诊疗内容;科研使用脱敏、聚合或经审批的数据集,禁止直接导出完整病历;高敏感查询和导出需要二次认证、审批和水印;管理员使用独立特权账号,通过堡垒机访问生产系统,记录会话和命令;离职、转岗和诊疗关系结束时撤销权限和令牌;数据库、缓存、搜索和报表继承数据权限;审计记录访问主体、患者、字段、时间、设备、用途和结果;对越权、异常批量查询和共享账号进行告警。

十五、综合知识练习

选择题1

RBAC的基本思想是( )。

A. 权限直接授予所有用户 B. 权限授予角色,再由角色授予用户 C. 取消角色管理 D. 只按IP地址授权

答案:B。解析:RBAC通过角色承载权限,便于按岗位和职责管理。

选择题2

“本部门员工在工作时间通过可信设备查看本部门数据”更适合使用( )。

A. 仅DAC B. ABAC C. 随机授权 D. 无控制

答案:B。解析:该策略同时涉及主体、资源、时间和设备属性,适合属性驱动授权。

选择题3

下列最符合最小权限原则的是( )。

A. 所有开发人员拥有生产管理员权限 B. 用户只拥有完成职责所需的功能和数据范围 C. 所有人共用账号 D. 权限永久有效

答案:B。解析:最小权限要求功能、数据和有效期均限制在必要范围。

简答题

请区分身份认证、授权和审计。

参考答案:身份认证确认访问主体是谁,例如密码、多因素或证书;授权根据安全策略判断主体能否对指定资源执行指定操作;审计记录主体的访问请求、操作、时间、对象和结果,用于追踪、检测和责任认定。三者分别解决身份确认、权限判断和事后监督问题,不能互相替代。

十六、论文素材与今日复盘

论文可写:“在访问控制设计中,我将认证、授权和审计分离,采用统一身份、多因素认证、RBAC与ABAC结合的策略。通过角色管理岗位基础权限,再依据组织、资源密级、诊疗或项目关系、设备、时间和风险动态限制数据范围;对敏感字段、批量导出、权限提升和生产运维实施最小权限、职责分离、临时授权和双人复核;会话和令牌短期化并支持主动撤销,数据库、缓存、搜索和报表统一执行数据权限,所有关键访问和策略变更纳入不可篡改审计。”

今日复盘:访问控制不是登录控制,而是主体、资源、动作和条件的策略判断;DAC灵活但易传播,MAC统一但复杂,RBAC适合岗位授权,ABAC适合动态细粒度授权;最小权限、职责分离、特权管理、权限撤销和审计是高级题高频要点。下一篇进入 4.6.2 数字签名。