访问控制:如何选取一个合适的数据保护方案?
常用的单点登录方式包括** CAS 流程、JWT、OAuth 和 OpenID**。
通过身份认证,我们只能够确认用户的身份,而对用户的操作和访问行为的把控,就是授权和审计的任务了。
“授权”和“访问控制”是允许或者禁止某个用户做某件事情。
访问控制模型
在用户去读取文件的过程中,用户是主体,读取这个操作是请求,文件是客体。
- 主体:请求的发起者。主体可以是用户,也可以是进程、应用、设备等任何发起访问请求的来源。
- 客体:请求的接收方,一般是某种资源。比如某个文件、数据库,也可以是进程、设备等接受指令的实体。
- 请求:主体对客体进行的操作。常规的是读、写和执行,也可以进一步细分为删除、追加等粒度更细的操作。
常见的访问控制机制
常见的访问控制机制有 4 种:DAC、role-BAC、rule-BAC、MAC。
第 1 种,DAC(Discretionary Access Control,自主访问控制)。
DAC 就是让客体的所有者来定义访问控制规则。
第 2 种是 role-BAC(role Based Access Control,基于角色的访问控制)。
role-BAC 就是将主体划分为不同的角色,然后对每个角色的权限进行定义。
第 3 种是 rule-BAC(rule Based Access Control,基于规则的访问控制)。
rule-BAC 就是制定某种规则,将主体、请求和客体的信息结合起来进行判定。
DAC 是所有者对客体制定的访问控制策略,role-BAC 是管理员对主体制定的访问控制策略,而 rule-BAC 可以说是针对请求本身制定的访问控制策略。
最后一种是 MAC(Mandatory Access Control,强制访问控制)。
MAC 是一种基于安全级别标签的访问控制策略。
为了保证机密性,MAC 不允许低级别的主体读取高级别的客体、不允许高级别的主体写入低级别的客体;为了保证完整性,MAC 不允许高级别的主体读取低级别的客体,不允许低级别的主体写入高级别的客体。
机密性不能低读、高写;完整性不能高读、低写。
威胁评估的步骤
在安全方案实际落地的过程中,我们首先要考虑的是:目前存在哪些安全威胁。
威胁评估主要有三个步骤:识别数据、识别攻击、识别漏洞。
总结
4 种常见的访问控制机制:DAC、role-BAC、rule-BAC 和 MAC。它们的特点分别是:自主访问控制、基于角色的访问控制、基于规则的访问控制和基于标签的访问控制。
它们的使用场景:DAC 适合面向用户;role-BAC 适合集中管理使用;rule-BAC 适合复杂场景;MAC 安全性最高,一般只出现在政府系统中。在实际的工作中,我们往往需要把它们进行组合使用。