《TBAC:Transaction-Based Access Control on Blockchain for Resource Sharing with Cryptographically Decentralized Authorization》(TBAC:基于交易的区块链的访问控制和加密分散授权的资源共享)中设计了一个集成了ABAC模型和区块链系统的访问控制系统。
ABAC(attribute-based access control)访问控制模型。ABAC是通过动态计算一个或一组属性来是否满足某种条件来进行授权判断(可以编写简单的逻辑)。属性通常来说分为四类:用户属性(如用户年龄),环境属性(如当前时间),操作属性(如读取)和对象属性(如一篇文章,又称资源属性),所以理论上能够实现非常灵活的权限控制,几乎能满足所有类型的需求。
由PEP接受访问请求并转发给PDP,PDP根据PAP中的访问策略和主体属性和PIP中的环境做出访问决定并发送给PEP执行。
TBAC模型设计
- DDS中存储Owner上传的客体并且作为共享对象;
- ASU响应主体对受保护客体的访问请求,评估并执行访问决策;
- PDS管理访问规则,根据用户请求生成访问策略;
- AGU在进行策略评估时获取属性值。
在TBAC中定义了4种交易类型,用以执行细粒度访问控制策略。
- Subject Registration Transaction(SRT)主体注册交易
记录主体信息,必须由AGU进行签名。 - Object Escrow Transaction(OET)客体上传交易
声明客体的所有者,并记录客体信息。必须由实际保管者DDS签发。 - Access Request Transaction(ART)访问请求交易
以交易日志的形式记录访问过程。它包含了PEP生成访问请求的所有必要信息,这些信息将在后续的访问请求决策中使用。 - Access Granted Transaction(AGT)访问授权交易
AGT是所有空签名完成后的ART最终形式,一旦所有签名都经过区块生成器验证,它将作为访问日志存储到区块链中。