1.一种基于区块链技术的认证和分级访问控制一体化方法,包括:初始化阶段:所有服务器组成区块链网络,所有的服务器共同协商系统参数;
用户注册阶段:用户在向任意服务器缴纳费用,并在该服务器上完成注册,服务器给用户颁发凭证,并将用户信息储存到区块链的公有账本中;
认证阶段:用户与服务器进行双向认证,服务器认证用户能够访问的权限,用户认证服务器的正确性;
资金结算阶段,组成区块链网络的所有服务器周期性结算费用;
访问权限更新阶段:已经注册的用户在任意服务器更新权限信息。
2.根据权利要求1所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:在初始化阶段:所有的服务器组成MSP, MSP包括服务器S1…服务器Sj…服务器Sm,其中,任意一个服务器记作服务器Sj;
对于除开任意一个服务器Sj的服务器,其余的服务器记作服务器Sk,k∈[1,j‑1]∪[j+
1,m],对于每个服务器Sj,都生成有对应的身份SIDj;
对于每个访问MSP的用户,记作用户U1、用户U2、…用户Ui…用户Ut,其中任意一个用户为用户Ui;
1
所有的服务器协商选择一个q阶循环群G,一个哈希函数H:{0,1}→{0,1} ,以及群G的两个生成元g和h,其中l表示哈希函数输出的比特位数,然后每个服务器Sj生成公私钥对,SKSj* SKSj *∈Zq ,PKSj=g ,SKSj为服务器Sj生成的私钥,PKsj为服务器Sj生成的公钥,Zq 为q阶循环生成元。
3.根据权利要求2所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:用户注册阶段包括如下步骤:步骤21:用户生成唯一的身份标识,通过公钥生成动态假名,并根据自身在各个服务器上所要求的权限,生成各个服务器所要求的权限总和和权限三元组;然后生成包括动态假名、身份标识、用户的公钥、在各个服务器上所要求的权限总和、权限三元组、证明私钥的零知识协议、注册请求、注册签名,以及注册时间的注册信息;
步骤22:服务器在接收到注册信息之后,对注册信息中的动态假名、用户的公钥、在各个服务器上所要求的权限总和、权限三元组、证明私钥的零知识协议、注册签名,以及注册时间进行验证,如果验证成功则向其余的服务器发送验证请求;
步骤23:其余的服务器在接收到验证请求,并达成共识之后,用户注册成功,服务器向用户返还注册时间和凭证,服务器将用户的动态假名、公钥、在各个服务器上所要求的权限总和以及权限三元组上传到公有账本中,同时各个服务器将用户的身份标识和在自身上的权限记录到自身的私有账本中;
用户储存自身的动态假名、身份标识、公钥、私钥。
4.根据权利要求3所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:步骤21中,注册信息的生成步骤为:步骤211:用户Ui生成唯一的身份标识PIDi和私钥SKUi,SKUi∈Zq*,并通过私钥SKUi生成SKUi动态假名DIDi和公钥PKUi,PKUi= g ,DIDi=H(PKUi);其中,身份标识PIDi是一串随机生成的数字,H(PKUi)是PKUi的哈希值;
*
步骤212:用户Ui为每个服务器Sj都选择第一随机数rij和第二随机数 , ∈Zq ,rij∈Zq*,其中rij满足条件, ;
定义 ,用户Ui根据在服务器Sj上的申请权限定义 , 表示用户Ui在服务器服务器Sj上的权限;
用户Ui在所有服务器上的权限总和为Pi, ; ,步骤213:用户Ui计算 ;
用户Ui计算对 的承诺,用于确定用户Ui在服务器Sj上所要求的权限;
用户Ui定义 和Lij={commij,Xij,Mij};
其中,
Mij为用户Ui在注册的服务器Sj上的第一权限参数;
commij为用户Ui在注册的服务器Sj上的第二权限参数;
Xij为用户Ui在注册的服务器Sj上的第三权限参数;
Lij是用户Ui在服务器Sj上的权限三元组;
‖为连接符,⊕为异或符号, 是 的哈希值;
步骤214:用户Ui运行零知识证明协议 证明他的临时秘钥SKUi,,NIZK表示零知识证明协议的验证方法;
步骤215:用户Ui生成注册签名SUi,SUi=SigUi(SKUi,DIDi‖PKUi‖SIDj‖Pi‖Li1‖…Lim‖T1i), 然后通过安全信道发送包括注册请求的注册信息给服务器Sj,注册信息为:,
T1i是执行步骤215的当前时间,T1i为注册时间,reg是注册请求。
5.根据权利要求3所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:接收注册信息的服务器验证注册信息包括如下步骤:步骤221:服务器Sj验证注册时间T1i,如果当前的系统时间与注册时间T1i超过阈值,则验证失败,注册信息失效,反之则执行步骤222;
步骤222:服务器Sj验证零知识证明 ,如果验证失败,则注册信息失效,反之则执行步骤223;
步骤223:服务器Sj验证Ver(PKUi,SUi,DIDi‖PKUi‖SIDj‖Pi‖Li1‖…‖Lim‖T1i)是否等于1,如果不等于1,则验证失败,注册信息失效,反之则执行步骤224;其中,Ver为第一验证参数;
步骤224:服务器Sj验证
是否成立,如果不成立,则验证失败,注册信息失效,反之则执行步骤225, 是的哈希值;
步骤225:服务器Sj验证私有账本上是否已经注册了用户Ui,如果已经注册,则验证失败,注册信息失效,反之则执行步骤226;
步骤226:服务器Sj验证 ,是否成立,如果不成立,则验证失败,注册信Pi
息失效,反之则执行步骤227;g 为第二验证参数;
步骤227:服务器Sj计算 ,然后验证 是否成立,如果不成立则验证失败,注册信息失效,反之则执行步骤228, 为第三验证参数;
步骤228:服务器验证用户Ui是否支付了正确的费用,如果支付的费用不对,则验证失败,注册信息失效,反之则执行步骤229;
步骤229:服务器Sj计算验证签名SSj,SSj=Sigsj(SKSj,DIDi‖PKUi‖Pi‖Li1‖Li2‖…Lim‖T2),然后服务器Sj生成验证请求,验证请求为{DIDi,PKUi,Pi,Li1,Li2,…Lim,SUi,SSj,T2},T2为步骤
229执行的当前时间,T2表示验证签名的生成时间,并将验证请求广播给区块链上其他服务器SK,K∈[1,j‑1]∪[j+1,m]。
6.根据权利要求3所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:其余服务器接收到验证请求,并进行验证,以使得用户注册成功的步骤为:步骤231:服务器Sk各自计算 和 ,
判断 与验证请求中的commik是否相等,若相等,则所有服务器达成共识,同意将该注册信息上传到区块链,服务器Sj上传{DIDi,PKUi,SIDj,Pi,Li1,Li2,…Lim,SUi,SSj,T2}到区块链的公有账验证请求本,同时各个服务器将(PIDi, )存入到自己的私有账本;
其中, 为用户Ui在服务器Sk上申请的权限;
对于任意一个服务器Sj,用户Ui都给其选择了第一随机数rij,则rik是用户Ui为服务器Sk选择的第一随机数;
Mik是用户Ui在服务器SK上的第一权限参数;
commik是用户Ui在服务器SK上的第二权限参数;
Xik是用户Ui在服务器SK上的第三权限参数,根据公式 计算得到;
是用户Ui为服务器Sk选择的第二随机数;
是 的哈希值,SKSk是服务器Sk的私钥;
步骤232:服务器Sj颁发凭证和T2给用户Ui,表示注册成功,用户Ui储存PIDi,DIDi,PKUi,SKUi。
7.根据权利要求2所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:认证阶段包括如下步骤:y
步骤31:用户Ui选择y∈Zq*,并通过y计算得Y,Y=g ,计算 ,用户Ui生成认证签名S,S=SigUi(SKUi,DIDi‖Y‖T3),用户Ui通过公开信道发送认证请求{C,Y,T3,S}给服务器Sj,其中,T3是步骤31执行的当前时间,T3表示认证签名的生成时间,y为第一认证随机数,在用户认证阶段随机生成,Y为第二认证随机数,通过第一认证随机数y生成,C为认证参数;
步骤32:服务器Sj根据DIDi,查询区块链上的公有账本,找到用户Ui在注册阶段对应的公钥PKUi、Lij以及注册时间T1i,服务器Sj再根据私有账本中的 ,判断是否满足[T4‑T1i]<,其中,T4为步骤32执行的当前时间,如不满足,则说明用户的VIP已过期,用户只被允许访问免费的资源,T1i为用户Ui的注册时间;
SKSj
步骤33:服务器Sj返还验证信息V,V=H(Y ‖DIDi)给用户Ui,用户Ui计算验证参数V’,,验证V’与V是否相等,相等则说明用户成功验证服务器,否则验证失败。
8.根据权利要求3所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:资金结算阶段包括如下步骤:步骤41:服务器Sj计算 ,得到每条交易中自己授权给用户的天数 , 乘以单价即可得到每条交易中自己应得到的服务费;
步骤42:每个服务器Sj计算其余服务器Sk注册的用户中,服务器Sj应当收取的服务费,k∈[1,j‑1]∪[j+1,m];
服务器Sj计算出所有用户在服务器Sk处注册的服务器Sj上的授权天数 ,以及对应的第一随机数之和rjk,服务器Sj乘以ajk的单价,得到在服务器Sk处的服务费,其中:;
;
ajk是所有用户在服务器Sk处注册的服务器Sj上的授权天数的总和;rjk是所有用户在服务器Sk处注册时,给服务器Sj设置的第一随机数rij的总和;
计算服务器Sk处注册交易中的承诺的同态加是对ajk的承诺,;
commajk是所有用户在服务器Sk处注册时,在服务器Sj设置的第二权限参数的乘积;
服务器Sj公开ajk和对应的第一随机数之和rjk;
步骤43:验证每个服务器Sj发布的服务费是否正确,如果每个服务器Sj发布的服务费正确,则给所有的服务器结算服务费,如果存在发布的服务费不正确的服务器,则找到发布的服务费是错误的服务器,并给其余的服务器结算服务费。
9.根据权利要求8所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:步骤43包括:步骤431:预设智能合约Settlement(),智能合约Settlement()在收集到所有服务器发送的ajk和rjk时,智能合约被触发,j∈[1,m],k∈[1,j‑1]∪[j+1,m];
步骤432:智能合约Settlement()计算出所有服务器注册的总天数payk,乘以单价即可达到对应服务器应该支付的总金额;
步骤433:智能合约Settlement()验证payk与 是否相等,k∈[1,j‑1]∪[j+1,m],若相等,则说明没有服务器撒谎,给所有的服务器结算相应的服务费,如果不相等则对每个服务器所提供的ajk和rjk进行验证,以找到撒谎的服务器;
步骤434:智能合约Settlement()依次对每个服务器Sj提供的 以及 ,验证与 是否相等,若相等,表明ajk正确,服务器Sj未撒谎,反之则说明服务器撒谎,
ajk rjk
g 为第一结算参数,h 为第二结算参数, 为第三结算参数,为所有用户在服务器Sk上的commij的乘积。
10.根据权利要求2所述的一种基于区块链技术的认证和分级访问控制一体化方法,其特征在于:权限更新阶段包括如下步骤:
步骤51:用户重新生成新的公私钥对和动态假名,并根据新申请所要求的权限,向距离最近的任意服务器发送权限更新信息;
步骤52:服务器接收到权限更新信息之后,对权限更新信息中的动态假名、用户的公钥、在各个服务器上所要求的权限总和、权限三元组、证明私钥的零知识协议、权限更新签名,以及注册时间进行验证,最后再验证权限总和与收到的钱是否对应,如果上述内容均验证成功,则服务器生成权限更新请求,并广播至其余的服务器;
步骤53:其余的服务器在接收到权限更新请求之后,对权限更新请求进行验证,在所有的服务器均对权限更新请求验证完毕,并都验证通过之后,将用户提交的权限更新信息上传到区块链的公有账本中;每个服务器更新自身的私有账本,并向用户返还权限更新时间和权限更新凭证。