# 访问控制

> CIE A-Level 计算机科学 · 9618 (2024-2026)
> 来源: https://www.owlsprep.com/zh/study/cie-9618-u6-access-control/

本模块涵盖CIE 9618 A-Level计算机科学的所有核心访问控制概念，包括核心定义、访问控制矩阵、常见访问控制模型，以及针对考试场景题的方案推荐方法。

**先修:** [掌握计算机系统安全性的基础知识](https://www.owlsprep.com/zh/study/cie-9618-u6-introduction-to-security/)

## 学习目标

- 区分身份验证与授权
- 描述访问控制矩阵的结构和用途
- 比较常见访问控制模型及其应用场景
- 针对给定场景推荐合适的访问控制方案

## 核心概念：身份验证 vs 授权

访问控制是将系统资源的访问权限限制在仅允许的实体范围内的过程。它依赖于两个连续的核心步骤，这也是CIE考试的常规考点。

**身份验证** — 验证实体（用户、进程、设备）身份与其声明一致的过程

*例:* 检查用户输入的密码是否与对应用户名的存储哈希值匹配

**授权** — 确定已通过身份验证的实体拥有哪些访问或修改资源权限的过程

*例:* 允许教师修改学生成绩，但仅允许学生查看自己的成绩

**例题:** 用户登录银行手机应用时，哪一步是身份验证，哪一步是授权？步骤1：用户扫描指纹登录。步骤2：用户仅能查看自己的账户，无法查看其他客户的账户。

1. 步骤1（指纹扫描）验证了用户是账户所有者，符合其声明的身份，因此这是身份验证。
2. 步骤2在登录成功后限制用户仅能访问自己的账户，它定义了用户可以做什么，因此这是授权。

> **tip**
>
> 请务必记住顺序：**先身份验证，后授权**。你无法为未通过身份验证的用户授权。

## 访问控制矩阵

访问控制矩阵是表示系统中访问权限的标准方式，在CIE 9618考试中常以补全题形式考查。

**访问控制矩阵** — 一种表格模型，其中行代表主体（请求访问的实体），列代表对象（被访问的资源），每个单元格存储该主体-对象对对应的允许访问权限集合。

| 主体 | 读：员工手册 | 写：员工手册 | 读：工资表 | 写：工资表 |
| --- | --- | --- | --- | --- |
| 普通员工 | ✅ | ❌ | ❌ | ❌ |
| HR经理 | ✅ | ✅ | ✅ | ✅ |
| 系统管理员 | ✅ | ❌ | ✅ | ✅ |

**例题:** 为大学系统构建访问控制矩阵，包含3个主体：学生、讲师、管理员，3个对象：讲义、课程作业、学生记录。权限要求：学生可以读取讲义、写入课程作业，无法访问学生记录。讲师可以读写讲义、读取课程作业，无法访问学生记录。管理员对所有对象拥有完全访问权限。

1. 1. 按照标准约定，行对应三个主体，列对应三个对象构建表格框架。
2. 2. 填充学生行：讲义=读取，课程作业=写入，学生记录=无访问权限。
3. 3. 填充讲师行：讲义=读写，课程作业=读取，学生记录=无访问权限。
4. 4. 填充管理员行：所有对象均为读写权限，完成矩阵。

> **考试提示:** 请务必记住：行 = 主体，列 = 对象。交换两者位置会在考试中失分。

## 核心访问控制模型

CIE 9618要求你比较三种核心访问控制模型的特性和适用场景。

**方法对比**

下表对比了三种核心模型：

- **自主访问控制 (DAC)** — 访问权限由资源所有者控制，所有者可以向其他用户授予/撤销访问权限。
  - 优点: 小型系统中灵活性好; 易于实现
  - 缺点: 无集中控制; 意外未授权访问风险高

- **强制访问控制 (MAC)** — 访问权限由系统根据主体和对象的安全标签设置，用户无法修改权限。
  - 优点: 安全性极高; 访问执行严格
  - 缺点: 灵活性差; 维护管理成本高

- **基于角色的访问控制 (RBAC)** — 权限分配给工作岗位角色，而非单个用户。用户通过加入角色继承权限。
  - 优点: 适合大型组织扩展; 简化权限管理; 与工作职能匹配
  - 缺点: 存在权限膨胀风险; 不适合需要细粒度访问的场景

**例题:** 某政府部门需要管控机密文档的访问，严格执行安全许可要求，哪种访问控制模型最合适？

1. 1. 明确需求：基于固定安全级别的严格、不可修改的访问执行。
2. 2. 评估选项：DAC灵活性过高，RBAC无法提供足够严格的强制访问执行。
3. 3. 结论：MAC是正确选择，因为它基于系统分配的安全标签强制执行访问，用户无法修改权限来授予未授权访问。

> **考试提示:** 要获得满分，请务必将你选择的模型与场景中给出的具体需求关联起来。

## 其他访问控制方案

- **基于规则的访问控制**: 访问根据管理员定义的全系统规则决定允许或拒绝。示例：工作日早9点至晚5点之外拒绝访问内部网络。
- **基于属性的访问控制 (ABAC)**: 访问根据用户属性、对象属性和环境属性的组合决定是否允许。示例：仅允许从公司IP地址连接的全职员工访问。支持非常细粒度的访问控制。

**例题:** 某零售企业希望禁止员工在门店营业时间之外访问内部财务系统，哪种访问控制方案最合适？

1. 1. 需求是一条适用于所有员工的全系统规则，基于访问时间判断。
2. 2. 基于规则的访问控制就是为这类场景设计的：只需要创建一条规则，即可自动对所有用户生效，禁止营业时间外的访问。
3. 3. 这种方式比更新单个角色或权限高效得多，因此基于规则的访问控制是正确选择。

## 常见错误

- **错误做法:** 混淆身份验证和授权，声称授权用于验证身份
  - 原因: 出题人经常考查这个区别，混淆术语会导致本题不得分
  - 正确做法: 记住：身份验证 = *你是谁*，授权 = *你能做什么*
- **错误做法:** 交换访问控制矩阵的行和列，将对象放在行
  - 原因: 标准定义明确要求行对应主体，列对应对象，交换会失分
  - 正确做法: 记住：**R = 行（Rows）= 主体（请求者，Subjects）**，C = 列（Columns）= 对象（资源，Objects）
- **错误做法:** 混淆基于角色的访问控制和基于规则的访问控制
  - 原因: 名称相似导致考试回答中经常混淆
  - 正确做法: RBAC = *角色（Role）*（工作职能），基于规则 = *规则（Rules）*（全系统访问条件）
- **错误做法:** 声称MAC是大多数商业企业的最佳模型
  - 原因: MAC仅适用于高安全需求场景，对大多数企业来说灵活性太差
  - 正确做法: RBAC是大多数大型商业组织最合适的模型

## 速查表

| 概念 | 核心定义 |
| --- | --- |
| 身份验证 | 验证你是谁 |
| 授权 | 验证你能做什么 |
| 访问控制矩阵 | 行=主体，列=对象，单元格=权限 |
| DAC | 资源所有者控制访问，灵活 |
| MAC | 系统强制执行访问，高安全性，不灵活 |
| RBAC | 权限与工作岗位绑定，企业最常用 |
| 基于规则的访问控制 | 根据全系统规则授予访问权限 |
| ABAC | 基于用户/对象/环境属性授予访问权限 |

## 下一步

访问控制是所有系统安全的核心基础，关于访问控制模型的场景题在CIE 9618的试卷1和试卷2中都经常出现。理解访问控制的工作原理有助于你评估不同系统设计的安全性，并针对特定用例证明推荐方案的合理性，这是考试取得成功的关键技能。接下来，你可以进一步深入学习身份验证方法，了解计算机系统的常见威胁，或者学习访问控制如何融入更广泛的网络安全架构。

- [数据完整性](https://www.owlsprep.com/zh/study/cie-9618-u6-data-integrity/)
- [隐私问题](https://www.owlsprep.com/zh/study/cie-9618-u6-privacy-issues/)
- [备份与恢复](https://www.owlsprep.com/zh/study/cie-9618-u6-backup-and-recovery/)

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/cie-9618-u6-access-control/
