[发明专利]一种基于零信任和机密计算的统一身份认证平台有效
申请号: | 202110986874.9 | 申请日: | 2021-08-26 |
公开(公告)号: | CN113849815B | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 刘忻;彭博;杨晶晶;李恩熠;焦文静 | 申请(专利权)人: | 兰州大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/32;G06F21/44;G06F21/45 |
代理公司: | 武汉知产时代知识产权代理有限公司 42238 | 代理人: | 金慧君 |
地址: | 730000 甘肃*** | 国省代码: | 甘肃;62 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 信任 机密 计算 统一 身份 认证 平台 | ||
1.一种基于零信任和机密计算的统一身份认证平台,其特征在于:包括四个阶段,分别为:通信建立阶段、用户注册阶段、功能平台注册阶段和登陆与密钥协商阶段;
其中,通信建立阶段用于对称密钥SK的协商,在用户和统一身份认证平台间建立可靠通信;
用户注册阶段和功能平台注册阶段实现经由统一身份认证平台以及机密计算安全区验证的注册功能,构建匿名认证关系表的功能,得到合法用户和合法功能平台;
登录和密钥协商阶段实现在合法用户和合法功能平台之间协商对称会话密钥的功能,该对称会话密钥将用于后续传输的隐私数据的加密;
所述通信建立阶段,具体流程如下:
S11:在用户端生成随机数r1,并获取当前时间戳TS1;
S12:用户端将m1={r1,TS1}以POST请求方式发送给统一身份认证平台;
S13:统一身份认证平台接收到m1后,验证时间戳TS1是否有效,若无效则拒绝建立通信,若有效则生成随机数r2并获取当前时间戳TS2,获取统一身份认证平台的SM2公钥kp;其中时间戳有效,具体指:当前时间戳与待验证的时间戳之差小于通信传播的最大时间传输延迟;
S14:统一身份认证平台将m2={r2,kp,TS2}以POST请求方式返回给用户端;
S15:用户端接收到m2后,验证时间戳TS2是否有效,若无效则再次发送通信请求,并返回步骤S11,若有效则生成随机数r3并获取当前时间戳TS3,使用获取到的m2中的公钥kp将r3,TS3加密成ER,将m3={ER,TS3}以POST请求方式发送给统一身份认证平台;
S16:用户端进行r1||r2||r3操作,并将操作结果进行单向哈希,将哈希结果作为对称密钥SK保存在用户端;其中||表示按位连接;
S17:统一身份认证平台接收到m3后,验证时间戳TS3是否有效,若无效则拒绝建立通信,若有效则使用RSA私钥kv对ER进行解密,解密结果记作r3,TS3’;检验TS3’是否等于TS3,若不相等,则报错;若相等,则进行r1||r2||r3操作,并将操作结果进行单向哈希,将哈希结果作为对称密钥SK保存在用户端;
所述用户注册阶段,具体流程为:
S21:用户输入IDi及PWi,并由前端确定输入符合规范后进行IDi||PWi操作,将操作后得到的结果进行哈希并存储到用户匿名标识UIDi中;获取当前时间戳TS1,根据通信建立阶段计算出的对称密钥SK对UIDi和TS1进行加密并保存到EIDi中;其中,EIDi是用户匿名标识和时间戳的加密结果,用于保证传输信息的安全和时间有效;
S22:将m1={EIDi,TS1}以POST请求方式发送给统一身份认证平台;
S23:统一身份认证平台在接收到用户端发来的m1后验证时间戳TS1是否有效;若无效则拒绝用户注册请求;若有效则根据对称密钥SK将接收到的m1进行解密,解密后的EIDi和TS1对应保存到UIDi和TS1’中;
验证TS1’和TS1是否相等,若不相等则拒绝用户注册请求,相等则将UIDi通过机密计算环境的非信任区对外接口发送到非信任区中;
调用安全区ecall函数在安全区内部将UIDi和统一身份认证平台的主密钥KUCP进行拼接并进行单向哈希,哈希的结果保存在用户的假名PIDi中,并通过对外非信任接口返回;
验证返回的PIDi其是否是已注册的用户的列表PIDlist中的元素;若属于则拒绝用户的再次注册请求,若不属于则将该PIDi添加到PIDlist中;
获取统一身份认证平台的标识IDUCP,并产生最新的时间戳TS2,使用对称密钥SK对TS2进行加密,保存到应答序列号ACKUCP中,通过可靠通信信道将m2={ACKUCP,TS2}发送给用户端;
进行IDUCP||PIDi操作,将操作得到的结果进行哈希后保存到验证信息PIDi中,将键值对{PIDi,V}进行保存;
S24:用户端在接收到m2后检查TS2是否有效,若失效则返回第一步再次发送注册请求,若有效则使用SK对接收到的应答序列号ACKUCP进行解密,将解密结果保存到TS2'中,之后验证TS2'是否等于TS2,若不相等则返回S21再次发送注册请求,若相等则用户端确定注册阶段完成,注册成功;
所述功能平台注册阶段,具体流程为:
S31:功能平台端获取其唯一身份标识IDj,并获取最新时间戳TS1;
S32:功能平台端在可靠环境内将m1={IDj,TS1}发送给统一身份认证平台;
S33:统一认证平台在接收到m1后,首先检查时间戳TS1是否有效,若无效则拒绝功能平台注册请求,若有效则获取统一身份认证平台唯一身份标识IDUCP,之后产生随机数Rj;
执行IDj||Rj操作,并将结果进行哈希后存储到TCj中;其中,TCj是功能平台IDj和注册时生成的随机数Rj的哈希结果,用于功能平台验证认证平台的身份;
进行IDj||IDUCP操作,并将操作结果进行哈希后存储到UIDj中;将TCj和UIDj进行异或,结果保存到PTCj中;其中,UIDj是功能平台标识IDj和认证平台标识IDUCP的哈希结果,用于隐藏TCj为PTCj;
统一身份认证平台获取最新时间戳TS2并在可靠环境内将m2={PTCj,TS2}发送给发出注册请求的功能平台;
统一身份认证平台通过机密计算环境的非信任区对外接口将IDj发送到非信任区中,调用ecall函数在信任区内执行IDj||KUCP操作,将连接结果进行哈希保存到PIDj中;
将PIDj从信任区中返回,并对之前生成的随机数Rj和IDUCP进行异或操作,结果保存到PRj中;并将键值对{PIDj-PRj}进行保存;
S34:功能平台端在接收到m2后检查TS2是否有效,若无效则返回S31继续发送注册请求;若有效则将PTCj进行保存;
所述登陆与密钥协商阶段,具体流程为:
S41:用户端输入身份标识IDi,口令PWi以及访问目标功能平台身份标识IDj;生成随机数Ni,获取当前时间戳TS1,执行IDi||PWi操作,将操作结果哈希后保存在变量UIDi中;
用户端使用在通信建立阶段协商的对称密钥SK,分别对UIDi,IDj,Ni,TS1加密并将加密结果保存为EIDi;
S42:将m1={EIDi,TS1}以POST请求方式发送给统一身份认证平台;
S43:统一身份认证平台接收到m1,验证TS1的有效性,若无效则拒绝登录请求,若有效则使用统一身份认证平台持有的在通信建立阶段协商的对称密钥SK对EIDi解密以获取UIDi,IDj,Ni,TS1’;
检验TS1’,TS1是否相等,若不相等则拒绝登录请求,若相等则将UIDi通过机密计算环境非信任区对外接口传送到非信任区中;
在非信任区通过调用ecall函数在安全区内执行UIDi||KUCP操作并对其结果进行单向哈希,结果保存在PIDi并通过非信任区对外接口传送给统一身份认证平台;
统一身份认证平台通过验证返回的PIDi是否是PIDlist的元素,确定用户是否已注册;若用户未注册,则拒绝登录请求;若用户已注册,则凭借PIDi获取认证平台端标识IDUCP和验证信息V;
执行IDUCP||PIDi操作并对其结果哈希,将哈希结果V’和V比对,若不相等则表明用户口令更改,若相等则将IDj通过机密计算环境非信任区对外接口传送到非信任区中,执行IDj||KUCP操作并对其结果哈希,将哈希结果作为PIDj并通过非信任区对外接口传送给统一身份认证平台;
统一身份认证平台凭借PIDj查找PRj,将PRj和IDUCP做异或,结果保存在Rj中;
执行IDj||Rj操作,并对其进行哈希,结果保存在TCj中;
执行IDj||IDUCP操作,将对其哈希的结果保存在UIDj中;
获取当前时间戳TS2,执行TCj||IDj||TS2操作,并对操作结果进行哈希,哈希结果和Ni异或后存储为TRN1;
执行TRN1||TCj||UIDj||TS2操作,使用Ni作为密钥生成上述操作结果的消息认证码q1;
S44:将m2={UIDj,TRN1,q1,TS2}以POST请求方式发送给功能注册平台;
S45:功能注册平台收到m2后,验证时间戳TS2的有效性;若无效,则拒绝认证平台端的访问,若有效,则功能平台获取自身的IDj以及对应的PTCj;
将PTCj与UIDj进行异或,异或的结果保存到TCj中;
进行TCj||IDj||TS2操作,将操作得到的结果哈希后与TRN1进行异或并将结果保存到Ni中;
根据验证函数验证q1是否等于TRN1||TCj||UIDj||TS2,若不相等则拒绝认证平台端的访问;若相等则生成随机数Nj并获取最新时间戳TS3;
进行Ni||TCj||IDj||TS3操作,将操作结果进行哈希并和Nj进行异或,将结果保存到TRN2中;
进行TRN2||Ni||TCj||UIDj||TS3,并使用Nj作为密钥生成上述操作结果的消息认证码q2;
通过可靠通信信道将m3={TRN2,q2,TS3}发送给统一身份认证平台;
进行Ni||Nj操作,并将结果进行哈希作为对称密钥KEYij用于后续反馈用户请求;
S46:统一身份认证平台在接收到m3后验证TS3是否有效,若无效则再次发送m2,有效则进行Ni||TCj||IDj||TS3并将结果进行哈希后与TRN2进行异或并保存到Nj中;
通过验证函数验证TRN2||Ni||TCj||UIDj||TS3是否等于q2,若不相等则向功能注册平台再次发送m2,若相等则获取最新时间戳TS4,并通过对称密钥SK对Nj和TS4进行加密,加密后的结果保存到ENj中;
统一身份认证平台将m4={ENj,TS4}发送至用户端;
用户端在接收到m4后首先验证TS4是否有效,若无效则返回S41再次发送m1,若有效则根据SK对m4进行解密,得到解密后的时间戳TS4’以及统一身份认证平台生成的随机数Nj;
验证TS4’是否等于TS4,若不相等则返回S41再次发送m1,若相等则进行Ni||Nj操作,并将得到的结果进行哈希得到对称密钥KEYij。
2.如权利要求1所述的一种基于零信任和机密计算的统一身份认证平台,其特征在于:在用户登录状态阶段和登录与密钥协商阶段进行时,还通过策略引擎进行评估,实现零信任架构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于兰州大学,未经兰州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110986874.9/1.html,转载请声明来源钻瓜专利网。