[论文分享]基于区块链技术的服务端资源权限控制系统设计与实现
前情
这几年对区块链进行了学习,也算是有些感悟,想以类似论文的形式将一些想法表现出来(这也能严谨一些,文章组织也更有条理),分享给大家,希望能与大家多交流。在我来看,区块链是一项技术,在某一点上往往难以量化其优点和贡献的,这就更需要去深入详细的思考,了解其特性可以带来的变革。
0.引言
随着区块链技术的兴起,互联网浪潮逐渐从web1.0、web2.0向web3.0转变。去中心化浪潮使得用户由信息的接收者、沟通者转为信息的提供者及制造者。数据逐渐由传统的寡头公司转移到用户手中,随之而来的则是用户对身份主权、数据主权的回收与支配,最终实现价值的普惠流动。这个去中心化既是计算上的去中心,也是存储上的去中心化。然而就当前而言,web3.0也不可避免地过于理想化,治理挑战、技术挑战、监管挑战都对其大规模落地带来影响。在很长一段时间内,网络上都将会出现中心化与去中心化并存的情形,中心化服务提供商基于基于去中心化技术支撑,对网络上的用户提供服务。在此背景下原本中心化的服务端应当处理好中心化与去中心化的权衡,在其中更要做好权限管理工作。
用户的权限控制是个敏感的话题,涉及到用户与服务提供商之间的信任问题。传统的权限控制系统由用户发出操作申请,由服务器程序在后端完成并存储,整个过程存在权限、数据的中心化问题,无法保证用户权限分发控制的不可篡改性及公开可追溯性,且用户并未全程参与,信任问题尚未解决。此外,用户的权限分发也对权限控制提出了更高的要求,基于信息管理的传统权限控制方法往往难以满足。因此,实现可信、可追溯的权限管理控制具有重要的工程意义和应用价值。本文基于区块链技术,设计了一种服务端资源权限控制系统,包括资源权限分发转移机制及基于权限的资源控制方法,有效地解决了Web3.0趋势下权限控制难、中心化的问题,具有一定的工程价值及研究意义。
1. 背景介绍
近年来,随着互联网技术的不断进步,互联网用户与服务提供商的角色也发生悄然转变。Web1.0时代,网站是信息及数据的提供者,用户参与信息的浏览和使用。Web2.0时代,用户逐渐参与到资源、数据的创建中来,基于中心化服务进行交换、沟通,但数据、权限控制等仍为网站所持有。2020年来,Web3.0概念逐渐兴起,在去中心化浪潮下,用户逐渐走向舞台的中心,对资源、数据、权限的控制权逐渐回到用户手中,凭借身份凭证,用户逐步可以实现对数据、权限的自主控制。因此,在此转变趋势下,服务端的权限控制方法也应随之发生改变。
传统RBAC(Role-Based Access Control)
传统的权限控制方法是基于资源,数据作为资源存储在社区的服务端,而权限则通过数据库中用户-角色-权限的数据表标识,用户如要访问资源,服务端则会首先对用户在受访问资源上的权限进行校验,最终给出授权与否的判断。 国内外对此进行过一些研究:早在1995年,D Ferraiolo及 J Cugini等人就对基于角色的准入控制进行了研究,从此RBAC(Role-Based Access Control)逐渐进入国内外学者的视野。2002年,清华大学的林磊等人对授权的行为模型展开了研究,并在RBAC的基础上提出了一套使用于MIS系统的权限控制应用模型。2012年,北京工商大学的李双提出了一种扩展的RBAC模型(ERBAC),不仅继承了传统RBAC的所有优势,同时可以不做修改的嵌入到工作流系统中并实现动态访问控制。武汉理工大学的向奎在2013年设计了一个可接口集成,数据集成,流程集成的基于角色访问控制的通用用户权限管理系统,实现了用户和权限的逻辑分离,能够动态的为用户分配权权限。2016年及2020年,同济大学的邵剑雨等人及河南师范大学的张荣荣分别实现了基于动态信任值的访问控制方法及具有可维性的三位权限控制模块:前者通过动态调整用户信任值克服了当前访问控制在移动互联网环境下安全性不足的缺点并有效控制用户在不同状态下对不同资源的访问权限,后者在RBAC的基础上加入组织和角色组以实现权限体系的可复用及可扩展。尽管研究卓有成效,但传统的权限控制方法原生地存在局限性:权限本身也作为数据字段存储在服务端,而用户对权限的控制本质上是请求对服务端数据的更改,这将不可避免地带来中心化问题,用户难以确保自己对权限的排它性、准入性,同时也难以保证用户权限分发控制的不可篡改性及公开可追溯性,导致用户与服务端间的信任问题。
区块链与权限的结合
意识到传统权限控制方法的局限性,国内外学者结合了新兴的区块链技术,对此做出了一些改进,具体包括以下: