system: [SYSTEM]

user: 3. TRABAC模型 3.1. 相关知识 定义1 RBAC模型可用一个元组表示 ( U ， R ， P ， U R ， R P ， R H ) ，提供了用户、角色、权限以及对象或资源之间的关系。 1) U、R、P分别代表用户集Users、角色集Roles、权限集Permissions。 2) 用户角色映射关系 U R ：形式化描述为 U → R ，表示用户U被赋予角色R，描述了用户与角色间多对多的映射关系。即 U R ⊆ U s e r s × R o l e s 。 3) 角色权限映射关系 R P ：形式化描述为 R → P ，表示角色R被赋予权限P，描述了角色与权限间多对多的映射关系。即 R P ⊆ R o l e s × P e r m i s s i o n s 。 定义2 用户角色过滤策略 p o l i c y 1 = { U ' ， R ， U A T T ， R A T T ， E n v } 可抽象表示为一个布尔表达式： U s e r s ' × R o l e s × 2 U A T T × 2 R A T T × 2 E n v → { T ， F } 。其中 U s e r ' 表示筛选后的可信用户， U A T T 表示用户属性， R A T T 表示角色属性， E n v 表示环境属性值。 定义3 角色权限过滤策略 p o l i c y 2 = { U ' ， R ' ， P ， R A T T ' ， O A T T ， E n v } 可抽象表示为一个布尔表达式： U s e r s ' × R o l e s ' × P e r m i s s i o n s × 2 R A T T ' × 2 O A T T × 2 E N V → { T ， F } 。其中 R o l e s ' 表示过滤后的角色集， R A T T ' 表示角色属性， O A T T 表示对象属性， E n v 表示环境属性值。 定义4 Jaccard相似系数(Jaccard similarity coefficient) [ 20 ] 用于比较有限样本集之间的相似性与差异性。给定两个集合A，B，若两者Jaccard系数值越大，则相似度越高。可由下式来计算： J ( A ， B ) = | A ∩ B | | A ∪ B | (1) 3.2. 基本思想 TRABAC模型的基本思想主要包括信任管理和RBAC与ABAC的结合，即利用RBAC模型静态管理用户与权限之间的关系、ABAC模型动态管理用户与权限之间的关系。如图1所示。 图1. TRABAC模型 1) 信任管理 信任管理模块主要通过信任值的计算对用户进行信任评估来判断用户的可信度。用户的综合信任值是基于用户属性、用户行为反馈和用户信誉计算的，然后根据综合信任值与设置的阈值之间的关系来判断用户是否可信，决定是否接受其用户请求资源访问并为其分配角色。 用户属性主要包括用户的访问IP地址、访问时间、访问时长、访问状态。通过量化用户的属性因子并分配相应的权重计算用户属性信任值。计算公式如下： (2) T l e n g t h = t a c c e s s t t o t a l (3) T s t a t e = a a + b (4) 其中T Atrust 指基于用户属性的信任值。T IP 指用户的IP地址，不同的网段信任值不同。若用户的IP地址在安全网段内，则T IP 的取值为0.5 ≤ T IP < 1。若不在安全网段内，则T IP 的取值为0 ≤ T IP < 0.5。T time 指用户请求资源服务的访问时间段，不同的访问时间段信任值不同。若用户访问时间在资源服务时间内，则T time 的取值为0.5 ≤ T tine < 1。若不在资源服务时间内，则T time 的取值为0 ≤T tine < 0.5。T length 为访问时长，t access 为用户请求资源服务的时间，t total 为总访问时间。T state 为访问状态，a为用户请求资源服务成功状态 的次数，b为用户请求资源服务失败状态的次数。 ϖ i ( i = 1 ， 2 ， 3 ， 4 ) 为每个属性因子的权重，且 ∑ i = 1 4 ϖ i = 1 。 用户行为反馈是指用户之前请求访问过该资源，并根据用户请求资源访问的交互历史次数计算用户的行为反馈信任值。计算公式如下： T B t r u s t = α + 1 α + β + 2 (5) 其中T Btrust 指基于用户行为反馈的信任值。α是指在用户请求访问资源总次数中良性访问的次数，β指用户请求访问资源总次数中恶性访问的次数。 用户信誉是指其他用户对该目标用户请求资源访问时的一个信任值评价，通过Jaccard相似系数法计算用户间共同请求访问资源的个数占总请求服务个数的比重，得到用户请求资源访问的相似度表示其他用户对该目标用户的信誉值，能够对目标用户首次访问进行较好的处理。计算公式如下： T R t r u s t = | S ( u ) ∩ S ( u ' ) | | S ( u ) ∪ S ( u ' ) | (6) 其中T Rtrust 指基于用户信誉的信任值。S(u)表示目标用户请求访问的资源集合，S(u ' )表示其他用户请求的资源集合。 综合上述三个方面的信任值计算用户的综合信任值： T = ϖ 1 T A t r u s t + ϖ 2 T B t r u s t + ϖ 3 T R t r u s t (7) 其中 ϖ 1 、 ϖ 2 、 ϖ 3 分别为用户属性信任值、用户行为反馈信任值、用户信誉信任值的权重，且 ϖ 1 + ϖ 2 + ϖ 3 =1 。式(7)中的T Atrust 、T Btrust 、T Rtrust 分别由式(2)、式(5)、式(6)得到。 根据用户历史访问的信任值进行历史平均信任值的计算并以此作为阈值 ε ，假设当前用户前n次的 信任值分别为 T n ， T n − 1 ， ⋯ ， T 1 ，由于信任值的时间相关性，其中n的取值越大表示距离本次信任值越近，对信任评估的影响也越大。因此引入一个时间参数 a i = 1 1 + ( m − k ) / ρ ( 0 < ρ < 1 ， 1 ≤ k ≤ m ， i = 1 ， 2 ， ⋯ ， k ) 满足 a i > a i − 1 > ⋯ > a 1 ，且 ∑ i = 1 k a i = 1 。其中m表示最近一次交互产生信任值的时刻，k表示第k次交互产生信任值的时刻， ρ 表示时间衰减因子。 阈值计算公式如下： ε = ∑ i = 1 n a i ⋅ T i n ( i = 1 ， 2 ， ⋯ ， n ) (8) 其中a i 为时间参数，T i 为用户第i次历史访问的信任值。 通过将请求资源访问的用户综合信任值T与阈值 ε 进行比较判断用户的可信度，若 ，则用户是可信的。反之，用户是不可信的。 2) RBAC和ABAC的结合 通过信任管理进行用户可信度的判断后，在用户集 U s e r s 中筛选出不可信用户实现第一次访问控制机制，得到可信用户集 U ' 并接受其可信用户请求资源访问。在此基础上，再结合RBAC和ABAC模型进一步执行访问控制机制。流程图如图2所示。 图2. TRABAC模型流程图 1) 使用RBAC模型确定可信用户–角色映射关系，即 U ' → R 。 2) 使用ABAC模型根据用户–角色过滤策略 p o l i c y 1 = { U ' ， R ， U A T T ， R A T T ， E n v } 实现动态角色的过滤，从 U ' → R 映射关系中删除违反上述用户角色策略的映射关系，形成新的用户–角色映射关系，即 U ' → R ' ，其中 。图3给出了具体的伪代码实现。 图3. 动态缩减用户–角色映射关系算法 3) 使用RBAC模型确定角色–权限映射关系，即 R ' → P 。并将用户属性(U ATT )与角色属性(R ATT )结合 形成新的角色属性 ( R A T T ' ) ，其中 R A T T ' = U A T T ∪ R A T T 。 4) 使用ABAC模型根据角色–权限过滤策略 p o l i c y 2 = { U ' ， R ' ， P ， R A T T ' ， O A T T ， E n v } 实现动态权限的过滤， 从 R ' → P 映射关系中删除违反上述角色权限策略的角色权限关系，得到新的角色–权限映射关系，即 R ' → P ' 。其中 ( R ' → P ' ⊆ R ' → P ) 。图4给出了具体的伪代码实现。 图4. 动态缩减角色–权限映射关系算法 5)通过上述动态缩减用户–角色映射关系和角色–权限映射关系的步骤进一步达到缩减用户–权限关系 的目的，得到用户确定的最小权限关系，即 U ' → P ' ，其中 ( U ' → P ' ⊆ U → P ) 。