金融数据安全-Chap.4


Chap.4 访问控制技术

4.1 数据分级分类

在信息业发展过程中, 信息的地位逐渐从信息化资产转变为生产要素, 同时金融行业的影响范围逐渐从行业内扩大至行业之间. 因此, 根据相关法律法规规定, 需要对金融信息进行合理的分级分类, 进而加强对其的有序管理.

4.1.1 数据安全定级

数据安全定级旨在对数据资产进行全面梳理并确立适当的分级制度, 是建立统一完善的保护制度的基础工作.

定级原则如下:

  • 合法合规
  • 可执行性: 定级不应当过于复杂
  • 时效性: 有一定时效期限并及时调整
  • 自主性: 金融业机构结合自身情况自主确定安全级别
  • 差异性: 数据应当被离散的划分至不同的级别中
  • 客观性: 通过数据自身的属性和定级规则应当可以判定数据的级别

定级需要考虑的最重要的三个要素即:

  • 保密性
  • 完整性
  • 可用性

就是信息安全的CIA三元组.

4.1.2 金融数据安全定级

金融数据安全被按照上述原则分为5级:

  • 5级: 重要数据, 被核心节点类业务使用, 破坏后会对国家安全造成影响.
  • 4级: 重要数据, 被核心节点类业务使用, 破坏后对公众权益或个人隐私造成破坏, 但不影响国家安全.
  • 3级: 用于金融业的关键机构和业务使用, 破坏后对个人隐私和企业利益造成一般影响, 不影响国家安全.
  • 2级: 用于金融业一般业务使用, 破坏后对个人隐私和企业利益造成轻微影响, 不影响国家安全, 公众权益.
  • 1级: 数据可公开, 可被公众获知, 使用. 破坏后几乎不造成影响.

金融数据定级规则

4.2 早期访问控制技术

4.2.1 访问控制技术的基本概念

  • 主体: 能对资源发出访问请求的实体
  • 客体: 能被访问的资源
  • 操作: 主体对客体的访问方式, 读 / 写 / 执行等
  • 访问权限: 客体与其对应操作形成的二元组, <操作, 客体>

早期访问控制技术建立在 引用监控机(Reference Monitor, RM) 的基础上, 它就是系统中监控主体与客体访问关系的部件, 类似于一个 管理员 .

引用监控机模型

4.2.2 访问控制技术的分类

访问控制技术随发展产生了四类:

  • 自主访问控制模型
  • 强制访问控制模型
  • 基于角色的访问控制模型
  • 基于属性的访问控制模型

自主访问控制 的思路是让客体的归属者来决定别的主体对于它的访问权限. 其可以用一个 (S, O, A)三元组来表示, 即 <主体, 客体, 访问权限> .

访问控制矩阵

在访问控制矩阵中, 行代表主体, 列代表客体, 对应的格内代表访问权限.
这样的问题是矩阵过于稀疏了, 因此出现了 访问控制表(ACL)能力权证 / 能力表(CL) , 它们分别将访问矩阵按照 行 / 列分解, 形成一个类似于图论中 邻接表 的数据结构.


强制访问控制 基于分类的思想得来, 其将主体和客体均进行分级, 并根据其级别对应关系来决定主体能否访问客体.

对于安全级别(level), 通常分以下几类:

  • 公开(UC)
  • 秘密(S)
  • 机密(C)
  • 绝密(TS)

也可能简单的分为以下两类(三类):

  • 高(High)
  • 低(Low)
  • 中(Medium)

这种访问控制有两个很经典的模型: BLPBiba

BLP模型 是为了保障数据的机密性而得来的, 其核心原则是 不上读, 不下写 . 下层人员无法读到更高密级的信息, 而上层人员无法把信息向低密级的资源中写入.
Biba模型 是为了保障数据的完整性而得来, 核心原则是 不下读, 不上写 . 这是为了保证高密级信息不会收到低密级信息的污染.

注意
这里其实还涉及到一些数学上的关系.
除了我们的安全级别之外, 还有一个概念叫 范畴(category) , 它是一个类别信息构成的集合, 比如{中国, 军事, 科技}.
因此, 会给每一个可能标识一个安全标记二元组 <安全级别(level), 范畴(category)>, 比如 <机密, {中国, 军事, 科技}>
我们所说的不上读, 不下写这种含义, 从数学上严格来说是跟一种叫 支配关系(dom) 的概念相关的.

对于两个安全标记 A <L1, C1> , B <L2, C2> , 只有L1 > L2 且 C1 $ \supseteq $ C2时, 才能说 A dom B.
有点抽象, 啥意思呢, 就是A的信息范围比B广, 并且A的密级比B高, 才能说A支配B.

支配偏序图

在强制访问控制中, 会为每个主体和客体都分配这样一个安全标记(也就是上面的这个二元组).

对于BLP, 我们说的不上读不下写, 保证机密性, 可以翻译为:

  • 仅当 (label S) dom (label O)时, 主体S才能读O(不上读)
  • 仅当 (label O) dom (label S)时, 主体S才能写O(不下写)

对于Biba, 我们说的不下读不上写, 保证完整性, 可以翻译为:

  • 仅当 (label O) dom (label S)时, 主体S才能读O(不下读)
  • 仅当 (label S) dom (label O)时, 主体S才能写O(不上写)

4.2.3 基于角色的访问控制

基于角色的访问控制希望通过一个个预设好的角色对主体的访问权限进行划分. 它按照功能的完善与否分为了四个类别:

  • $ RBAC_0 $ : 用户通过一个个角色间接的获取访问权限
  • $ RBAC_1 $ : 引入 角色继承 的概念, 有点类似于Java / Cpp 中的子类
  • $ RBAC_2 $ : 增加了角色之间的约束条件, 比如互斥 / 角色最大数量等
  • $ RBAC_3 $ : 是1和2的结合(角色继承 + 约束条件)

4.2.4 基于属性的访问控制

基于属性的访问控制像是RBAC的进一步细分. 它将用户的一个个属性单独拆出来, 并作为一个个的衡量标准.

对于每个客体, 都有一套专门的访问策略(即所需要满足的属性要求), 当系统收到访问请求时, 会根据其属性情况进行策略判别, 只有访问主体满足对应的访问策略, 才能获取到对应的访问权限.

这种访问控制策略通常是最灵活的, 因为它将一个个子属性拆了出来, 但是与之相对的, 对属性的标识也是一个十分繁重的工作, 它的维护成本也是最高的.

4.3 基于数据分析的访问控制技术

此前的访问控制技术, 如果用的好, 自然是很完善的模型, 但是它们太过于依赖安全管理员对于系统的筹划. 而在当代这个信息爆炸的年代, 安全管理员有时已经无法胜任如此繁重的工作.

因此, 新的模型被提出. 希望采用数据挖掘技术 从系统的访问控制信息中获取角色的定义 , 这个过程也被称为 角色挖掘(Role Mining) . 当前的角色挖掘主要分以下两类:

  • 基于层次聚类的角色挖掘方法
  • 生成式角色挖掘方法

4.3.1 基于层次聚类的角色挖掘

这种情形下, 系统已经有一些 样本 , 代表着已经存在了一个基础的访问控制矩阵. 我们需要从这些样本中挖掘出角色的定义.

我们先从一个二维平面上的点来搞明白层次聚类的基础思路: 假设平面上有5个点:

$$
A(2, 2) \\
B(3, 3) \\
C(6, 6) \\
D(8, 8) \\
E(3, 4)
$$

我们需要进行 聚类 的操作, 其实就是把相近的点分成一类, 合并它们, 随后继续这一过程.
考虑初始距离矩阵:

$$ d(i, j) = \sqrt{(x_i-x_j)^2 + (y_i - y_j)^2} $$

层次聚类-初始距离矩阵

找到矩阵中最小的数字?
d(B, E)对吧. 合并.
更新这个矩阵.

这里会碰到一个问题, {B, E}是一个点簇, 怎么判定别的点跟它们的距离呢?
符合直觉, 距离这个点簇中哪个点最近就用哪个.

层次聚类-更新距离矩阵(1)

随后重复这个过程, 我们就直接上图了, 不再重复叙述了哈~

层次聚类-更新距离矩阵(2)

层次聚类-更新距离矩阵(3)

最终我们合并仅剩的两个点簇, 得到层次聚类的结果:

层次聚类-最终分类结果

上面这一整个过程叫做 凝聚式层次聚类 .
现在的问题就简单了, 只需要将不同实体之间的差别抽象成距离即可.
在具体实操中, 这个距离由:

  • 它们之间的共同用户数量
  • 它们所包含的共同权限数量

来决定.

凝聚式角色挖掘算法

注意
除了凝聚式, 还有一种叫 分裂式层次聚类 , 它是自顶向下分配的, 这里就不详细叙述了.


层次聚类的方式基本上介绍完了, 但其还有几个缺点:

  • 聚类分析过程中会产生较多噪声.
  • 凝聚式会产生很多包含很多权限的超级类簇, 分裂式则会产生很多很小的权限集合.
  • 挖掘结果质量往往比较依赖已有权限分配的质量.

4.3.2 生成式角色挖掘

这种方式换了一种思路, 将 角色的挖掘问题映射为文本分析问题 . 它从权限使用的历史数据来获得用户的权限使用模式, 进而产生角色.

生成式角色挖掘

4.4 基于风险量化的访问控制

这种访问控制显得更加高端一点, 它直接面向结果.
它尝试量化用户做出对应访问控制行为的风险值, 随后划定某个阈值, 风险值超过此阈值则映射为拒绝访问, 否则允许访问.

其中, 风险量化有如下两种方式:

  • 基于概率论: $ Quantified \space Risk = (Probability \space of \space Damage)×(Value \space of \space Damage) $ , 即 风险量化值 = 危害发生可能性 * 危害值
  • 基于协同过滤: 利用系统中用户的历史访问来构建正常的用户画像, 随后对本次访问构建偏差值, 如果偏差值越大, 则风险量化值越大.

基于风险量化的访问控制

这种访问控制方法通常会与传统访问控制一并使用.

4.5 基于密码学的访问控制技术

这种访问控制技术使用了些比较高级的密码学原理内容. 当前分两种:

  • 基于密钥管理的访问控制技术
    • 基于单发送者广播加密的访问控制
    • 基于公钥广播加密的访问控制
  • 基于属性加密的访问控制技术

4.5.1 基于密钥管理的访问控制技术

首先是 单发送者广播加密 , 啥意思呢, 这东西跟 密钥树 有关.
数据所有者通常知道一整棵密钥树, 而树的每个叶子节点都是一个用户, 用有自己的对应的子密钥.

只有拥有者通过对应的 子密钥或者其父节点密钥 对信息进行加密时, 子密钥对应的用户才能成功解密这个信息.

基于单发送者广播加密的访问控制

假如数据所有者利用红色节点的三个密钥来加密并广播这条消息, 那么U7就无法解密这条消息, 也就是说U7是未授权用户.


随后是 基于公钥广播加密 , 它的想法跟非对称加密是一脉相承的, 即数据所有者广播的信息是用授权用户公钥来加密过的信息, 这意味着非授权用户没有这个私钥, 也自然无法得到这条消息的具体内容.

注意
这里可以有一个公钥服务器来专门负责给用户分组, 让多个用户公用同一组公私钥.
这能提高发送效率(不用每个消息都加密很多很多次了)

4.5.2 基于属性加密的访问控制

这里的想法更像对称加密, 数据发送者以 属性集合 作为密钥对消息进行加密. 只有满足对应属性集合的用户才能解密数据.

本质上是 基于属性的访问控制 的进一步延申.


文章作者: MUG-chen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 MUG-chen !
  目录
加载中...