发明内容
为解决上述技术问题,本申请实施例提供一种基于区块链的跨域分布式身份认证方法及系统,以达到实现用户跨部门的身份数据的共享,并保证用户所属部门的原有数据身份的隐私性的目的,技术方案如下:
一种基于区块链的跨域分布式身份认证方法,包括:
第一分布式身份客户端在其所属部门的用户进行跨域注册时,生成所述用户的跨域分布式身份标识符和跨域公私钥对,所述跨域分布式身份标识符与所述用户在其所属部门的原有身份认证系统中已注册身份标识符具有差异;
所述第一分布式身份客户端利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名,并将包含所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公私钥对中跨域公钥的跨域注册请求发送至第一分布式公证人客户端;
所述第一分布式公证人客户端将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点;
所述第一公证人服务节点将所述跨域分布式身份标识符和所述跨域公钥注册到区块链分布式跨域公证身份账本上;
所述第一分布式公证人客户端生成身份令牌,并将所述身份令牌发送给所述第一分布式身份客户端,所述身份令牌包含所述用户所属部门的信息、生成身份令牌的公证人标识符、所述跨域分布式身份标识符、有效期、各交叉业务部门的公证人签名信息;
所述第一分布式身份客户端保存所述身份令牌,并向第二分布式公证人客户端出示所述身份令牌,所述第二分布式公证人客户端与所述第一分布式公证人客户端属于不同部门;
所述第二分布式公证人客户端根据公证人组运行机制验证所述身份令牌,在验证通过后,根据跨域身份凭证颁发运行机制生成跨域身份凭证,并将所述跨域身份凭证发送给所述第一分布式身份客户端;
所述第一分布式身份客户端保存所述跨域身份凭证,并在所述用户需要操作被访问设备时,向第三分布式公证人客户端出示所述身份令牌和所述跨域身份凭证,所述第三分布式公证人客户端为被访问设备的分布式公证人客户端;
所述第三分布式公证人客户端按照身份认证运行机制验证所述身份令牌和所述跨域身份凭证,在验证通过后,给予所述用户访问所述被访问设备的权限。
可选的,所述第一分布式公证人客户端将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点,包括:
所述第一分布式公证人客户端解析所述跨域注册请求,获得所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公钥;
所述第一分布式公证人客户端在所述第一分布式公证人客户端所属部门的原有身份认证系统中查询所述已注册身份标识符,若查询到,则确认所述用户的身份合法;
所述第一分布式公证人客户端利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第一分布式公证人客户端所属公证人组中其它分布式公证人客户端广播所述跨域注册请求;
所述第一分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述跨域公钥、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名,并利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则利用其私钥对所述跨域注册请求进行签名,生成跨域注册请求签名,并将所述跨域注册请求签名发送给所述第一分布式公证人客户端;
所述第一分布式公证人客户端在接收到所述跨域注册请求签名时,通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询其接收到的跨域注册请求签名所属分布式公证人客户端的公钥,并利用查询到的公钥对所述跨域注册请求签名进行验签,若验签通过,则将所述跨域注册请求签名标记为有效;
所述第一分布式公证人客户端在标记为有效的跨域注册请求签名的个数达到第一设定个数时,将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点。
可选的,所述第一分布式公证人客户端生成身份令牌,包括:
所述第一分布式公证人客户端根据各个有效的所述跨域注册请求签名生成所述用户的身份令牌;
所述第一分布式身份客户端保存所述身份令牌,包括:
所述第一分布式身份客户端通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询各个有效的所述跨域注册请求签名所属公证人的公钥,并利用查询到的公钥对有效的所述跨域注册请求签名进行验签,若验签通过,则将所述身份令牌保存在其内置的身份密包中,且将所述跨域分布式身份标识符和所述跨域公私钥对保存在其内置的身份密包中。
可选的,所述向第二分布式公证人客户端出示身份令牌,包括:
利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名,并向第二分布式公证人客户端发送包含身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名的跨域身份凭证颁发请求;
所述第二分布式公证人客户端根据公证人组运行机制验证所述身份令牌,包括:
所述第二分布式公证人客户端从所述跨域身份凭证颁发请求中解析出所述身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名;
所述第二分布式公证人客户端通过其所属部门的第二公证人服务节点在所述区块链分布式跨域公证身份账本中查询所述用户的跨域公钥,并利用查询到的所述用户的跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第二分布式公证人客户端所属公证人组中其它分布式公证人客户端广播包含所述身份令牌。
可选的,所述根据跨域身份凭证颁发运行机制生成跨域身份凭证,并将所述跨域身份凭证发送给所述第一分布式身份客户端,包括:
所述第二分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述身份令牌,并从所述身份令牌中解析出自身的跨域注册请求签名,并利用其公钥对所述自身的跨域注册请求签名进行验签,若验签通过且同意颁发,则利用其私钥对所述验签通过且同意颁发的结果进行签名,生成结果签名,并将所述结果签名发送给所述第一分布式公证人客户端;
所述第二分布式公证人客户端接收来自于其它各个分布式公证人客户端的结果签名,并在所述区块链分布式跨域公证身份账本上查询其它各个分布式公证人客户端的公钥,并利用查询到的公钥对所述结果签名进行验签,在验签通过后,将所述结果签名标记为有效;
所述第二分布式公证人客户端在标记为有效的结果签名的个数达到第二设定个数时,生成跨域身份凭证,并将所述跨域身份凭证发送给所述第一分布式身份客户端。
可选的,所述第一分布式身份客户端保存所述跨域身份凭证,包括:
所述第一分布式身份客户端在接收到所述跨域身份凭证时,在所述区块链分布式跨域公证身份账本上查询所述第二分布式公证人客户端的公钥,并通过查询到的公钥对所述跨域身份凭证进行验证,若验证通过,则将所述跨域身份凭证保存在其身份密包中。
可选的,所述所述第三分布式公证人客户端按照身份认证运行机制验证所述身份令牌和所述跨域身份凭证,在验证通过后,给予所述用户访问所述被访问设备的权限,包括:
所述第三分布式公证人客户端通过所述第二公证人服务节点在所述区块链分布式跨域公证身份账本上查询其所属部门的公证人的公钥和跨域身份凭证定义,并接收所述第二公证人服务节点查询到的公钥和跨域身份凭证定义,并利用查询到的公钥和跨域身份凭证定义对所述跨域身份凭证进行验签,若验签通过且所述跨域身份凭证在有效期内,则将所述身份令牌广播给其所属公证人组中其它公证人分布式公证人客户端;
所述第三分布式公证人客户端所属公证人组中其它公证人分布式公证人客户端解析所述身份令牌,得到其在所述身份令牌的签名信息,并利用其公钥对其在所述身份令牌的签名信息进行验签,若验签通过且所述身份令牌在有效期内,则将验签通过结果发送给所述第二分布式公证人客户端;
所述第三分布式公证人客户端若接收到其所属公证人组中其它各个分布式公证人客户端返回的验签结果均为通过,则确定所述身份令牌有效,并确定所述用户为合法用户,给予所述用户访问所述被访问设备的权限。
一种基于区块链的跨域分布式身份认证系统,包括:区块链分布式跨域公证身份账本、多个部门的分布式身份客户端、分布式公证人客户端及公证人服务节点;
第一分布式身份客户端,用于在其所属部门的用户进行跨域注册时,生成所述用户的跨域分布式身份标识符和跨域公私钥对,所述跨域分布式身份标识符与所述用户在其所属部门的原有身份认证系统中已注册身份标识符具有差异,所述第一分布式身份客户端为所述基于区块链的跨域分布式身份认证系统中的其中一个部门的分布式身份客户端;
所述第一分布式身份客户端,还用于利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名,并将包含所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公私钥对中跨域公钥的跨域注册请求发送至第一分布式公证人客户端;
所述第一分布式公证人客户端,用于将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点,所述第一分布式公证人客户端为所述第一分布式身份客户端所属部门的分布式公证人客户端;
所述第一公证人服务节点,用于将所述跨域分布式身份标识符和所述跨域公钥注册到区块链分布式跨域公证身份账本上;
所述第一分布式公证人客户端,还用于生成身份令牌,并将所述身份令牌发送给所述第一分布式身份客户端,所述身份令牌包含所述用户所属部门的信息、生成身份令牌的公证人标识符、所述跨域分布式身份标识符、有效期、各交叉业务部门的公证人签名信息;
所述第一分布式身份客户端,还用于保存所述身份令牌,并向第二分布式公证人客户端出示所述身份令牌,所述第二分布式公证人客户端与所述第一分布式公证人客户端属于不同部门;
所述第二分布式公证人客户端,用于根据公证人组运行机制验证所述身份令牌,在验证通过后,根据跨域身份凭证颁发运行机制生成跨域身份凭证,并将所述跨域身份凭证发送给所述第一分布式身份客户端;
所述第一分布式身份客户端,还用于保存所述跨域身份凭证,并在所述用户需要操作被访问设备时,向第三分布式公证人客户端出示所述身份令牌和所述跨域身份凭证,所述第三分布式公证人客户端为被访问设备的分布式公证人客户端;
所述第三分布式公证人客户端,用于按照身份认证运行机制验证所述身份令牌和所述跨域身份凭证,在验证通过后,给予所述用户访问所述被访问设备的权限。
可选的,所述第一分布式公证人客户端,具体用于:
解析所述跨域注册请求,获得所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公钥;
在所述第一分布式公证人客户端所属部门的原有身份认证系统中查询所述已注册身份标识符,若查询到,则确认所述用户的身份合法;
利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第一分布式公证人客户端所属公证人组中其它分布式公证人客户端广播所述跨域注册请求,以使所述第一分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述跨域公钥、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名,并利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则利用其私钥对所述跨域注册请求进行签名,生成跨域注册请求签名,并将所述跨域注册请求签名发送给所述第一分布式公证人客户端;
在接收到所述跨域注册请求签名时,通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询其接收到的跨域注册请求签名所属分布式公证人客户端的公钥,并利用查询到的公钥对所述跨域注册请求签名进行验签,若验签通过,则将所述跨域注册请求签名标记为有效;
在标记为有效的跨域注册请求签名的个数达到第一设定个数时,将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点。
可选的,所述第一分布式公证人客户端,具体用于:
所述第一分布式公证人客户端根据各个有效的所述跨域注册请求签名生成所述用户的身份令牌;
所述第一分布式身份客户端,具体用于:
所述第一分布式身份客户端通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询各个有效的所述跨域注册请求签名所属公证人的公钥,并利用查询到的公钥对有效的所述跨域注册请求签名进行验签,若验签通过,则将所述身份令牌保存在其内置的身份密包中,且将所述跨域分布式身份标识符和所述跨域公私钥对保存在其内置的身份密包中。
可选的,所述第一分布式身份客户端,具体用于:
利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名,并向第二分布式公证人客户端发送包含身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名的跨域身份凭证颁发请求;
所述第二分布式公证人客户端,具体用于:
从所述跨域身份凭证颁发请求中解析出所述身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名;
通过其所属部门的第二公证人服务节点在所述区块链分布式跨域公证身份账本中查询所述用户的跨域公钥,并利用查询到的所述用户的跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第二分布式公证人客户端所属公证人组中其它分布式公证人客户端广播包含所述身份令牌。
可选的,所述第二分布式公证人客户端,具体用于:
所述第二分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述身份令牌,并从所述身份令牌中解析出自身的跨域注册请求签名,并利用其公钥对所述自身的跨域注册请求签名进行验签,若验签通过且同意颁发,则利用其私钥对所述验签通过且同意颁发的结果进行签名,生成结果签名,并将所述结果签名发送给所述第一分布式公证人客户端;
所述第二分布式公证人客户端接收来自于其它各个分布式公证人客户端的结果签名,并在所述区块链分布式跨域公证身份账本上查询其它各个分布式公证人客户端的公钥,并利用查询到的公钥对所述结果签名进行验签,在验签通过后,将所述结果签名标记为有效;
所述第二分布式公证人客户端在标记为有效的结果签名的个数达到第二设定个数时,生成跨域身份凭证,并将所述跨域身份凭证发送给所述第一分布式身份客户端。
可选的,所述第一分布式身份客户端,具体用于:
所述第一分布式身份客户端在接收到所述跨域身份凭证时,在所述区块链分布式跨域公证身份账本上查询所述第二分布式公证人客户端的公钥,并通过查询到的公钥对所述跨域身份凭证进行验证,若验证通过,则将所述跨域身份凭证保存在其身份密包中。
可选的,所述第三分布式公证人客户端,具体用于:
所述第三分布式公证人客户端通过所述第二公证人服务节点在所述区块链分布式跨域公证身份账本上查询其所属部门的公证人的公钥和跨域身份凭证定义,并接收所述第二公证人服务节点查询到的公钥和跨域身份凭证定义,并利用查询到的公钥和跨域身份凭证定义对所述跨域身份凭证进行验签,若验签通过且所述跨域身份凭证在有效期内,则将所述身份令牌广播给其所属公证人组中其它公证人分布式公证人客户端;
所述第三分布式公证人客户端所属公证人组中其它公证人分布式公证人客户端解析所述身份令牌,得到其在所述身份令牌的签名信息,并利用其公钥对其在所述身份令牌的签名信息进行验签,若验签通过且所述身份令牌在有效期内,则将验签通过结果发送给所述第二分布式公证人客户端;
所述第三分布式公证人客户端若接收到其所属公证人组中其它各个分布式公证人客户端返回的验签结果均为通过,则确定所述身份令牌有效,并确定所述用户为合法用户,给予所述用户访问所述被访问设备的权限。
与现有技术相比,本申请的有益效果为:
在本申请中,由第一分布式身份客户端生成与用户在其所属部门的原有身份认证系统中已注册身份标识符具有差异的跨域分布式身份标识符,并由第一分布式公证人客户端及第一公证人服务节点将跨域分布式身份标识符写入区块链分布式跨域公证身份账本上,实现用户的跨域身份数据的共享,有利于各交叉部门进行安全身份验证。
并且,通过生成与原有身份认证系统中已注册身份标识符具有差异的跨域分布式身份标识符,保证各交叉业务部门原有身份认证系统的独立性,保持各部门的原有数据身份相对其他业务部门的隐私性。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本申请提供的基于区块链的跨域分布式身份认证方法基于跨域分布式身份认证系统,跨域分布式身份认证系统包括:多个部门的分布式公证人客户端、每个分布式公证人客户端对应的公证人服务节点及区块链跨域分布式身份账本。例如,跨域分布式身份认证系统的结构可以参见图1,如图1所示,分布式公证人客户端与公证人服务节点之间存在交互,公证人服务节点与区块链跨域分布式身份账本之间存在交互。
需要说明的是,图1示出的跨域分布式身份认证系统的结构仅为一种示例,其并不作为对跨域分布式身份认证系统中分布式公证人客户端、公证人服务节点的个数的限制,以及分布式公证人客户端与公证人服务节点与区块链跨域分布式身份账本之间交互关系的限制。
作为本申请另一可选实施例,参照图2,为本申请提供的一种基于区块链的跨域分布式身份认证方法实施例的流程图,该方法可以包括但并不局限于以下步骤:
步骤S11、第一分布式身份客户端在其所属部门的用户进行跨域注册时,生成所述用户的跨域分布式身份标识符和跨域公私钥对。
所述跨域分布式身份标识符与所述用户在其所属部门的原有身份认证系统中已注册身份标识符具有差异。
本实施例中,已在本部门原有身份认证系统中注册的用户跨部门操作另一部门工区的物联网设备之前,可以通过其所属部门的第一分布式身份客户端生成自身的跨域分布式身份标识符和跨域公私钥对,并将生成的跨域分布式身份标识符和跨域公私钥对保存在自己内置的身份密包中。
其中,跨域分布式身份标识符可以由用户所属部门的固定字符串、随机字符串及时间戳组成。
步骤S12、所述第一分布式身份客户端并利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名。
可以理解的是,第一分布式公证人客户端与所述第一分布式身份客户端同属于所述用户所属部门。
步骤S13、所述第一分布式身份客户端将包含所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公私钥对中跨域公钥的跨域注册请求发送至第一分布式公证人客户端。
步骤S14、所述第一分布式公证人客户端将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点。
本实施例中,所述第一分布式公证人客户端将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点的过程,可以包括:
S1401、所述第一分布式公证人客户端解析所述跨域注册请求,获得所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公钥;
S1402、所述第一分布式公证人客户端在所述第一分布式公证人客户端所属部门的原有身份认证系统中查询所述已注册身份标识符,若查询到,则确认所述用户的身份合法;
S1403、所述第一分布式公证人客户端利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第一分布式公证人客户端所属公证人组中其它分布式公证人客户端广播所述跨域注册请求;
S1404、所述第一分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述跨域公钥、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名,并利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则利用其私钥对所述跨域注册请求进行签名,生成跨域注册请求签名,并将所述跨域注册请求签名发送给所述第一分布式公证人客户端;
S1405、所述第一分布式公证人客户端在接收到所述跨域注册请求签名时,通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询其接收到的跨域注册请求签名所属分布式公证人客户端的公钥,并利用查询到的公钥对所述跨域注册请求签名进行验签,若验签通过,则将所述跨域注册请求签名标记为有效;
S1406、所述第一分布式公证人客户端在标记为有效的跨域注册请求签名的个数达到第一设定个数时,将所述跨域分布式身份标识符和跨域公钥发送给其所属部门的第一公证人服务节点。
步骤S15、所述第一公证人服务节点将所述跨域分布式身份标识符和所述跨域公钥注册到区块链分布式跨域公证身份账本上。
步骤S16、所述第一分布式公证人客户端生成身份令牌,所述身份令牌包含所述用户所属部门的信息、生成身份令牌的公证人标识符、所述跨域分布式身份标识符、有效期、各交叉业务部门的公证人签名信息。
所述第一分布式公证人客户端生成身份令牌,可以包括:
所述第一分布式公证人客户端根据各个有效的所述跨域注册请求签名生成所述用户的身份令牌。
步骤S17、所述第一分布式公证人客户端将所述身份令牌发送给所述第一分布式身份客户端。
步骤S18、所述第一分布式身份客户端保存所述身份令牌。
所述第一分布式身份客户端保存所述身份令牌,可以包括:
所述第一分布式身份客户端通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询各个有效的所述跨域注册请求签名所属公证人的公钥,并利用查询到的公钥对有效的所述跨域注册请求签名进行验签,若验签通过,则将所述身份令牌保存在其内置的身份密包中,且将所述跨域分布式身份标识符和所述跨域公私钥对保存在其内置的身份密包中。
步骤S19、所述第一分布式身份客户端向第二分布式公证人客户端出示所述身份令牌,所述第二分布式公证人客户端与所述第一分布式公证人客户端属于不同部门。
本实施例中,所述向第二分布式公证人客户端出示身份令牌,可以包括:
利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名,并向第二分布式公证人客户端发送包含身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名的跨域身份凭证颁发请求。
步骤S110、所述第二分布式公证人客户端根据公证人组运行机制验证所述身份令牌,在验证通过后,根据跨域身份凭证颁发运行机制生成跨域身份凭证。
所述第二分布式公证人客户端根据公证人组运行机制验证所述身份令牌,可以包括:
S1101、所述第二分布式公证人客户端从所述跨域身份凭证颁发请求中解析出所述身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名;
S1102、所述第二分布式公证人客户端通过其所属部门的第二公证人服务节点在所述区块链分布式跨域公证身份账本中查询所述用户的跨域公钥,并利用查询到的所述用户的跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第二分布式公证人客户端所属公证人组中其它分布式公证人客户端广播包含所述身份令牌。
本实施例中,所述根据跨域身份凭证颁发运行机制生成跨域身份凭证的过程,可以包括:
S1103、所述第二分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述身份令牌,并从所述身份令牌中解析出自身的跨域注册请求签名,并利用其公钥对所述自身的跨域注册请求签名进行验签,若验签通过且同意颁发,则利用其私钥对所述验签通过且同意颁发的结果进行签名,生成结果签名,并将所述结果签名发送给所述第一分布式公证人客户端;
S1104、所述第二分布式公证人客户端接收来自于其它各个分布式公证人客户端的结果签名,并在所述区块链分布式跨域公证身份账本上查询其它各个分布式公证人客户端的公钥,并利用查询到的公钥对所述结果签名进行验签,在验签通过后,将所述结果签名标记为有效;
S1105、所述第二分布式公证人客户端在标记为有效的结果签名的个数达到第二设定个数时,生成跨域身份凭证。
步骤S111、所述第二分布式公证人客户端将所述跨域身份凭证发送给所述第一分布式身份客户端。
并将所述跨域身份凭证发送给所述第一分布式身份客户端。
步骤S112、所述第一分布式身份客户端保存所述跨域身份凭证。
所述第一分布式身份客户端保存所述跨域身份凭证的过程,可以包括但不局限于:
所述第一分布式身份客户端在接收到所述跨域身份凭证时,在所述区块链分布式跨域公证身份账本上查询所述第二分布式公证人客户端的公钥,并通过查询到的公钥对所述跨域身份凭证进行验证,若验证通过,则将所述跨域身份凭证保存在其身份密包中。
步骤S113、所述第一分布式身份客户端在所述用户需要操作被访问设备时,向第三分布式公证人客户端出示所述身份令牌和所述跨域身份凭证,所述第三分布式公证人客户端为所述被访问设备的分布式公证人客户端。
所述第三分布式公证人客户端与所述第二分布式公证人客户端属于同一个部门。
步骤S114、所述第三分布式公证人客户端按照身份认证运行机制验证所述身份令牌和所述跨域身份凭证,在验证通过后,给予所述用户访问所述被访问设备的权限。
所述第三分布式公证人客户端按照身份认证运行机制验证所述身份令牌和所述跨域身份凭证,在验证通过后,给予所述用户访问所述第三分布式公证人客户端所属部门设备的权限的过程,可以包括:
S1141、所述第三分布式公证人客户端通过所述第二公证人服务节点在所述区块链分布式跨域公证身份账本上查询其所属部门的公证人的公钥和跨域身份凭证定义,并接收所述第二公证人服务节点查询到的公钥和跨域身份凭证定义,并利用查询到的公钥和跨域身份凭证定义对所述跨域身份凭证进行验签,若验签通过且所述跨域身份凭证在有效期内,则将所述身份令牌广播给其所属公证人组中其它公证人分布式公证人客户端;
S1142、所述第三分布式公证人客户端所属公证人组中其它公证人分布式公证人客户端解析所述身份令牌,得到其在所述身份令牌的签名信息,并利用其公钥对其在所述身份令牌的签名信息进行验签,若验签通过且所述身份令牌在有效期内,则将验签通过结果发送给所述第三分布式公证人客户端;
S1143、所述第三分布式公证人客户端若接收到其所属公证人组中其它各个分布式公证人客户端返回的验签结果均为通过,则确定所述身份令牌有效,并确定所述用户为合法用户,给予所述用户访问所述被访问设备的权限。
在本申请中,由第一分布式身份客户端生成与用户在其所属部门的原有身份认证系统中已注册身份标识符具有差异的跨域分布式身份标识符,并由第一分布式公证人客户端及第一公证人服务节点将跨域分布式身份标识符写入区块链分布式跨域公证身份账本上,实现用户的跨域身份数据的共享,有利于各交叉部门进行安全身份验证。
并且,通过生成与原有身份认证系统中已注册身份标识符具有差异的跨域分布式身份标识符,保证各交叉业务部门原有身份认证系统的独立性,保持各部门的原有数据身份相对其他业务部门的隐私性。
接下来对本申请提供的基于区块链的跨域分布式身份认证系统进行介绍,下文介绍的基于区块链的跨域分布式身份认证系统与上文介绍的基于区块链的跨域分布式身份认证方法可相互对应参照。
基于区块链的跨域分布式身份认证系统,可以包括:区块链分布式跨域公证身份账本、多个部门的分布式身份客户端、分布式公证人客户端及公证人服务节点。
其中,第一分布式身份客户端,用于在其所属部门的用户进行跨域注册时,生成所述用户的跨域分布式身份标识符和跨域公私钥对,所述跨域分布式身份标识符与所述用户在其所属部门的原有身份认证系统中已注册身份标识符具有差异,所述第一分布式身份客户端为所述基于区块链的跨域分布式身份认证系统中的其中一个部门的分布式身份客户端;
所述第一分布式身份客户端,还用于利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名,并将包含所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公私钥对中跨域公钥的跨域注册请求发送至第一分布式公证人客户端;
所述第一分布式公证人客户端,用于将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点,所述第一分布式公证人客户端为所述第一分布式身份客户端所属部门的分布式公证人客户端;
所述第一公证人服务节点,用于将所述跨域分布式身份标识符和所述跨域公钥注册到区块链分布式跨域公证身份账本上;
所述第一分布式公证人客户端,还用于生成身份令牌,并将所述身份令牌发送给所述第一分布式身份客户端,所述身份令牌包含所述用户所属部门的信息、生成身份令牌的公证人标识符、所述跨域分布式身份标识符、有效期、各交叉业务部门的公证人签名信息;
所述第一分布式身份客户端,还用于保存所述身份令牌,并向第二分布式公证人客户端出示所述身份令牌,所述第二分布式公证人客户端与所述第一分布式公证人客户端属于不同部门;
所述第二分布式公证人客户端根据公证人组运行机制验证所述身份令牌,在验证通过后,根据跨域身份凭证颁发运行机制生成跨域身份凭证,并将所述跨域身份凭证发送给所述第一分布式身份客户端;
所述第一分布式身份客户端保存所述跨域身份凭证,并在所述用户需要操作被访问设备时,向第三分布式公证人客户端出示所述身份令牌和所述跨域身份凭证,所述第三分布式公证人客户端为被访问设备的分布式公证人客户端;
所述第三分布式公证人客户端按照身份认证运行机制验证所述身份令牌和所述跨域身份凭证,在验证通过后,给予所述用户访问所述被访问设备的权限。
本实施例中,所述第一分布式公证人客户端,具体可以用于:
解析所述跨域注册请求,获得所述已注册身份标识符、所述跨域分布式身份标识符、所述跨域分布式身份标识符签名和所述跨域公钥;
所述第一分布式公证人客户端所属部门的原有身份认证系统中查询所述已注册身份标识符,若查询到,则确认所述用户的身份合法;
利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第一分布式公证人客户端所属公证人组中其它分布式公证人客户端广播所述跨域注册请求,以使所述第一分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述跨域公钥、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名,并利用所述跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则利用其私钥对所述跨域注册请求进行签名,生成跨域注册请求签名,并将所述跨域注册请求签名发送给所述第一分布式公证人客户端;
在接收到所述跨域注册请求签名时,通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询其接收到的跨域注册请求签名所属分布式公证人客户端的公钥,并利用查询到的公钥对所述跨域注册请求签名进行验签,若验签通过,则将所述跨域注册请求签名标记为有效;
在标记为有效的跨域注册请求签名的个数达到第一设定个数时,将所述跨域分布式身份标识符和所述跨域公钥发送给其所属部门的第一公证人服务节点。
所述第一分布式公证人客户端,具体可以用于:
所述第一分布式公证人客户端根据各个有效的所述跨域注册请求签名生成所述用户的身份令牌;
所述第一分布式身份客户端,具体可以用于:
所述第一分布式身份客户端通过所述第一公证人服务节点在所述区块链分布式跨域公证身份账本上查询各个有效的所述跨域注册请求签名所属公证人的公钥,并利用查询到的公钥对有效的所述跨域注册请求签名进行验签,若验签通过,则将所述身份令牌保存在其内置的身份密包中,且将所述跨域分布式身份标识符和所述跨域公私钥对保存在其内置的身份密包中。
所述第一分布式身份客户端,具体可以用于:
利用所述跨域公私钥对中的跨域私钥对所述跨域分布式身份标识符和时间戳进行签名,生成跨域分布式身份标识符签名,并向第二分布式公证人客户端发送包含身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名的跨域身份凭证颁发请求;
所述第二分布式公证人客户端,具体可以用于:
从所述跨域身份凭证颁发请求中解析出所述身份令牌、所述跨域分布式身份标识符及所述跨域分布式身份标识符签名;
通过其所属部门的第二公证人服务节点在所述区块链分布式跨域公证身份账本中查询所述用户的跨域公钥,并利用查询到的所述用户的跨域公钥对所述跨域分布式身份标识符签名进行验签,若验签通过,则向所述第二分布式公证人客户端所属公证人组中其它分布式公证人客户端广播包含所述身份令牌。
所述第二分布式公证人客户端,具体可以用于:
所述第二分布式公证人客户端所属公证人组中其它各个分布式公证人客户端分别获得所述身份令牌,并从所述身份令牌中解析出自身的跨域注册请求签名,并利用其公钥对所述自身的跨域注册请求签名进行验签,若验签通过且同意颁发,则利用其私钥对所述验签通过且同意颁发的结果进行签名,生成结果签名,并将所述结果签名发送给所述第一分布式公证人客户端;
所述第二分布式公证人客户端接收来自于其它各个分布式公证人客户端的结果签名,并在所述区块链分布式跨域公证身份账本上查询其它各个分布式公证人客户端的公钥,并利用查询到的公钥对所述结果签名进行验签,在验签通过后,将所述结果签名标记为有效;
所述第二分布式公证人客户端在标记为有效的结果签名的个数达到第二设定个数时,生成跨域身份凭证,并将所述跨域身份凭证发送给所述第一分布式身份客户端。
所述第一分布式身份客户端,具体可以用于:
所述第一分布式身份客户端在接收到所述跨域身份凭证时,在所述区块链分布式跨域公证身份账本上查询所述第二分布式公证人客户端的公钥,并通过查询到的公钥对所述跨域身份凭证进行验证,若验证通过,则将所述跨域身份凭证保存在其身份密包中。
所述第三分布式公证人客户端,具体可以用于:
所述第三分布式公证人客户端通过所述第二公证人服务节点在所述区块链分布式跨域公证身份账本上查询其所属部门的公证人的公钥和跨域身份凭证定义,并接收所述第二公证人服务节点查询到的公钥和跨域身份凭证定义,并利用查询到的公钥和跨域身份凭证定义对所述跨域身份凭证进行验签,若验签通过且所述跨域身份凭证在有效期内,则将所述身份令牌广播给其所属公证人组中其它公证人分布式公证人客户端;
所述第三分布式公证人客户端所属公证人组中其它公证人分布式公证人客户端解析所述身份令牌,得到其在所述身份令牌的签名信息,并利用其公钥对其在所述身份令牌的签名信息进行验签,若验签通过且所述身份令牌在有效期内,则将验签通过结果发送给所述第二分布式公证人客户端;
所述第三分布式公证人客户端若接收到其所属公证人组中其它各个分布式公证人客户端返回的验签结果均为通过,则确定所述身份令牌有效,并确定所述用户为合法用户,给予所述用户访问所述被访问设备的权限。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种针对跨站脚本攻击的防御方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。