发明内容
针对现有技术存在的无法何确保个人数据的共享以及合约的签订是由本人授权进行的问题,本发明提供了一种基于区块链的身份信息安全授权系统与方法。
本发明是这样实现的,一种基于区块链的身份信息安全授权系统与方法,所述基于区块链的身份信息安全授权系统,所述基于区块链的身份信息安全授权系统包括:
身份信息授权终端硬件模块以及业务合约主模块;
身份信息授权终端硬件模块:具备管理用户访问以及通过该区块链网络系统进行身份信息授权的权限;用于通过硬件设备对用户的身份IC卡进行识别,并通过业务合约主模块连接身份信息链对用户身份信息进行验证操作;同时还包括加密子模块用于进行身份信息的加密,为每一个通过身份信息验证的用户生成密钥以及完成对合约双方创建的授权合约进行加解密的操作;提供注册功能,用户经由该模块对身份信息进行注册,注册信息包括身份信息以及口令,经由加密子模块加密后存储到身份信息链中。且只有注册过的用户具有身份信息授权的权限。
业务合约主模块:用于合约乙方进行身份信息授权合约、身份信息注册合约的创建,合约的发送、接收、验证以及查看功能;同时用于合约甲方决定是否接受所收到的授权信息。以及负责连接网络与身份信息链,业务信息链进行通信的功能。
进一步,所述基于区块链的身份信息安全授权系统包括以下职能角色:
甲方:即为乙方提供所需要的具体业务信息并与乙方进行身份信息授权合约签定的用户;用于接收乙方发送的将乙方个人身份信息授权到某一业务的请求,同时完成对由乙方创建的授权合约的验证操作,并选择是否接受乙方的授权请求;
乙方:需要将个人身份信息授权至由甲方提供的某一业务并与甲方进行身份信息授权合约签定的用户;用于将个人身份信息通过甲方授权到某一业务,同时在区块链网络系统中创建授权合约,并将授权合约发送至指定的甲方;
公证者:用于对区块链网络中由合约双方创建的授权合约的验证,同时将授权合约打包并生成区块;
所述甲方、乙方、公证者角色并不固定;所述甲方在处理乙方发送过来的个人身份信息授权请求的同时也可作为乙方创建身份信息授权请求发送至与之对应的甲方;所述乙方在创建授权请求的同时也可作为甲方处理由其他乙方发送过来的个人身份信息授权请求;所述甲方、乙方也可做为公证者用于对授权合约进行验证以及生成区块。
进一步,所述基于区块链的身份信息安全授权系统采用双链结构,由身份信息链与业务信息链构成;
身份信息链:采用联盟链,用于保存身份信息授权系统中已注册用户经过哈希运算的身份信息;对用户身份信息的区块链存证,同时用于为业务合约提供身份信息授权验证参考;
业务信息链:用于保存由合约双方创建的身份信息授权合约,并将身份信息与授权合约存储在不同的区块链上;同时还用于通过智能合约将业务信息与身份授权信息封装成业务合约存证,实现身份授权业务合约及存证。
本发明的另一目的在于提供一种应用于所述基于区块链的身份信息安全授权系统的基于区块链的身份信息安全授权方法,所述基于区块链的身份信息安全授权方法包括:
步骤一,合约甲乙双方将个人身份信息的注册至身份信息链中;
步骤二,进行合约甲乙双方身份信息验证、加密并生成密钥;
步骤三,乙方创建授权业务合约,进行业务授权;
步骤四,甲方完成对接收到的授权合约C进行确认即授权响应;
步骤五,区块链公证者接收合约C,并对合约进行验证。
进一步,步骤一中,所述用户通过身份证件将身份信息的注册至身份信息链中包括:
(1)通过个人身份IC卡即身份证进行个人身份信息的注册;
(2)通过身份信息授权终端对个人身份IC卡进行识别,识别成功后读取身份信息u;同时用户通过身份信息授权终端设置个人口令p;
(3)对身份信息u进行哈希运算作为用户加密身份信息标识u';
u′=hash(u);
(4)将身份信息u以及个人口令p进行哈希计算获取用户加密身份信息属性v:
v=hash(u∪p);
(4)对u'与v添加时间戳,创建包含经过加密后的身份信息u′、哈希后的口令v以及时间戳S的身份信息注册合约,并将其广播到身份信息区块网络中,由公证者对交易信息进行验证,验证通过后即注册成功;
进一步,步骤二中,所述身份信息验证方法包括:
个人身份信息的IC卡认证和口令认证;
个人身份信息的IC卡认证:用于认证个人持有证件是否有效;
口令认证:用于确认身份信息是否由本人持有;
当且仅当个人身份信息的IC卡和口令同时认证即个人身份信息有效并且是由本人授权的;身份验证成功。
进一步,所述身份信息验证方法具体包括以下步骤:
第一步,读取身份证即个人身份IC卡中的信息,并确认IC卡是否有效,当无效时则输出操作错误,身份验证不成功;
第二步,当IC卡有效时,对身份信息u进行哈希计算获取u',并将u'传输至身份信息区块链网络;匹配用户注册信息;
若当前用户已经注册,则将从身份信息区块链网络中匹配到的v返回身份信息授权终端;
若未注册,则提示用户未注册;
同时用户通过身份信息授权终端输入用户口令,对身份信息u与用户口令p进行哈希计算获取用户加密身份信息属性v,并与身份信息区块链网络中匹配到的v进行匹配确认是否一致;
第三步,若一致则证明用户口令与身份信息匹配,为本人操作,即身份验证成功;若不一致则输出错误。
进一步,步骤二中,所述身份信息加密以及密钥生成方法具体包括:
首先,对个人身份信息u与用户口令p使用RSA加密算法进行不对称加密操作生成密钥对;
所述密钥对包括公钥与私钥;所述公钥由身份信息授权终端输出,用于授权信息的加密与验证;所述私钥由身份信息授权终端进行签名与加解密;
其次,使用生成的密钥对身份授权合约进行加解密;
最后,当授权合约的加解密完成后,私钥自动销毁;
当合约方需创建新的授权合约则需重新进行身份信息的认证。
进一步,步骤三中,所述授权业务合约的创建具体包括:
乙方填写所需要个人身份信息授权的协议内容T,系统进行协议内容的校验,若协议内容无误,则将协议T与合约甲方的公钥
通过串口发送至身份信息授权终端,由身份信息授权终端进利用甲方的公钥
对协议内容T进行加密;
具体包括以下步骤:
1)身份信息授权终端使用乙方的私钥
对协议内容T进行加密操作生成已加密的协议T
j′:
2)使用甲方公钥
对T
j′进行加密,加密后的内容为T
j″:
3)加密完成后,身份信息授权终端将加密后的协议内容T″
ij,乙方公钥
整合成授权合约C:
4)将授权合约通过网络发送给甲方并等待甲方对授权信息的确认操作;
步骤四中,授权响应具体包括:
所述授权响应包括甲方接收到乙方发送过来的授权合约C,并由系统检验是否是一个有效的合约,同时将该合约发送至身份信息授权终端进行解密操作;
包括以下步骤:
a)身份信息授权终端使用合约甲方的私钥
对合约进行解密,解密后的内容为T
j′:
b)使用合约中的乙方公钥
进行解密操作,将已解密的协议内容T发送给合约甲方进行协议的验证;
若甲方与乙方对身份信息授权的协议达成一致,则合约有效;
甲方与授权事务未达成一致,不接受乙方授权,则合约无效;无效合约将被丢弃不会写入区块链网络系统,需要乙方重新发起身份信息的授权合约;
c)当合约有效时,将协议内容T,发送至身份信息授权终端,由身份信息授权终端使用甲方私钥
进行加密操作:
d)将甲方私钥加密后的协议内容T
i′、甲方公钥
乙方公钥
乙方私钥加密后的协议内容T
j′,以及生成的时间戳S五部分内容打包成一个完整的合约C′广播到区块链中:
步骤五中,所述合约验证包括:
区块链中的公证者接收合约C′后,公证者分别通过事务中的乙方公钥
与甲方公钥
对加密的授权内容T
j′、T
i′进行验证:
当解密的授权内容T完全一致,则表示当前事务有效,将有效的当前事务存储到本地的事务池中待打包成区块:
当解密的授权内容T不一致,则事务无效。
本发明的另一目的在于提供一种实现所述基于区块链的身份信息安全授权方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于区块链的身份信息安全授权方法。
综上所述,本发明的优点及积极效果为:本发明提出了一种基于区块链的身份信息授权机制,设计了一种身份信息安全读取模块实现身份信息授权,提出将身份授权业务以智能合约形式写入区块链,形成不可篡改、不可抵赖、且可公开验证的身份授权记录;可以有效保护个人身份信息安全,避免身份信息泄露、盗用、滥用等严重社会问题。最后搭建了原型系统,并验证了所提出基于区块链的身份信息授权机制的安全性,可行性与有效性。
与原有的身份信息授权方式以及授权记录保护方法对比:
|
原有技术 |
本发明提出的技术 |
身份信息授权记录存储方式 |
中心化存储 |
去中心化存储 |
是否允许合约乙方即时查询 |
否 |
是 |
是否确保授权操作本人执行 |
否 |
是 |
授权记录被篡改或泄露的可能性 |
大 |
约等于0 |
本发明将身份信息授权行为转移到区块链上进行,使用区块链技术保证个人身份信息授权记录的一致性,安全性以及可验证性。
本发明提出了一种基于区块链的身份信息授权机制。该机制利用区块链技术实现去中心化的身份信息授权记录服务,并形成安全、可靠的身份信息授权记录区块链账本,实现身份信息授权的不可篡改,不可撤消,不可抵赖。该机制的提出,可用于解决身份信息盗用、滥用问题,实现身份信息使用记录可查询验证,以及为社会治理部门解决纠纷提供身份信息授权使用证据,具有良好的技术意义和社会价值。且心有技术中并无使用区块链技术解决身份信息授权安全管理方法或系统。
本发明身份信息授权终端硬件模块用于用户个人身份信息的认证,读取,加密,以及合约的安全管理,个人身份信息只通过该模块进行相关的操作,确保个人身份信息明文不进入互联网络,用以解决个人身份信息通过网络传播容易遭到泄漏的问题。
本发明区块链身份信息授权原型网络系统,完成了软件与硬件设备功能的设计与开发,并通过所开发的原型网络系统对本发明中提出的身份信息授权机制进行了安全性,可行性,有效性的验证与分析。
本发明提出了一种基于区块链的身份信息授权机制,通过区块链技术形成身份信息授权记录存证,保障身份信息授权不可冒用、不可篡改、不可抵赖以及可追溯验证。设计并开发了身份信息授权终端硬件模块,以确保只有本人可以进行身份信息授权。设计了身份信息授权智能合约,实现授权业务的透明化处理与上链存证。开发了网络系统原型,对该系统的性能进行了分析,验证了本发明提出的身份信息授权机制的安全性,可行性与有效性。本发明所提出的基于区块链的身份信息授权机制,为广泛社会业务中保护个人身份信息安全提供了有价值的参考。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有解决个人身份信息或者个人文件数据的的安全性的技术无法保证所有的有关个人身份信息的使用与授权都是由本人授权来完成,并且无法保证以一种不可篡改的方式对身份信息授权记录进行存储。对于合约乙方来说,无法提供途径对个人授权信息进行查看,即使产生纠纷也不能为乙方提供足够的证据。并且一旦因为身份授权记录保管措施不当导致身份信息授权记录遭到篡改,乙方也只能被动承担损失,并且保管身份信息授权记录的合约甲方也会失去合约乙方的信任。
针对现有技术存在的问题,本发明提供了一种基于区块链的身份信息安全授权系统与方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于区块链的身份信息安全授权系统包括:
身份信息授权终端硬件模块1以及业务合约主模块2。
身份信息授权终端硬件模块1:具备管理用户访问以及通过该区块链网络系统进行身份信息授权的权限;用于通过硬件设备对用户的身份IC卡进行识别,并通过业务合约主模块连接身份信息链对用户身份信息进行验证操作;同时还包括加密子模块用于进行身份信息的加密,为每一个通过身份信息验证的用户生成密钥以及完成对合约双方创建的授权合约进行加解密的操作;提供注册功能,用户经由该模块对身份信息进行注册,注册信息包括身份信息以及口令,经由加密子模块加密后存储到身份信息链中。且只有注册过的用户具有身份信息授权的权限。
业务合约主模块2:用于合约乙方进行身份信息授权合约、身份信息注册合约的创建,合约的发送、接收、验证以及查看功能;同时用于合约甲方决定是否接受所收到的授权信息。以及负责连接网络与身份信息链,业务信息链进行通信的功能。
图2是本发明实施例提供的基于区块链的身份信息安全授权系统示意图。
本发明实施例提供的基于区块链的身份信息安全授权系统包括以下职能角色:
甲方:即为乙方提供所需要的具体业务信息并与乙方进行身份信息授权合约签定的用户;用于接收乙方发送的将乙方个人身份信息授权到某一业务的请求,同时完成对由乙方创建的授权合约的验证操作,并选择是否接受乙方的授权请求。
乙方:需要将个人身份信息授权至由甲方提供的某一业务并与甲方进行身份信息授权合约签定的用户;用于将个人身份信息通过甲方授权到某一业务,同时在区块链网络系统中创建授权合约,并将授权合约发送至指定的甲方。
公证者:用于对区块链网络中由合约双方创建的授权合约的验证,同时将授权合约打包并生成区块。
本发明实施例提供的甲方、乙方、公证者角色并不固定;所述甲方在处理乙方发送过来的个人身份信息授权请求的同时也可作为乙方创建身份信息授权请求发送至与之对应的甲方;所述乙方在创建授权请求的同时也可作为甲方处理由其他乙方发送过来的个人身份信息授权请求;所述甲方、乙方也可做为公证者用于对授权合约进行验证以及生成区块。
本发明实施例提供的基于区块链的身份信息安全授权系统采用双链结构,由身份信息链与业务信息链构成;
身份信息链:采用联盟链,用于保存身份信息授权系统中已注册用户经过哈希运算的身份信息;对用户身份信息的区块链存证,同时用于为业务合约提供身份信息授权验证参考。
业务信息链:用于保存由合约双方创建的身份信息授权合约,并将身份信息与授权合约存储在不同的区块链上;同时还用于通过智能合约将业务信息与身份授权信息封装成业务合约存证,实现身份授权业务合约及存证。
如图3所示,本发明实施例提供的基于区块链的身份信息安全授权方法包括:
S101,合约甲乙双方将个人身份信息的注册至身份信息链中。
S102,进行合约甲乙双方身份信息验证、加密并生成密钥。
S103,乙方创建授权业务合约,进行业务授权。
S104,甲方完成对接收到的授权合约C进行确认即授权响应。
S105,区块链公证者接收合约C,并对合约进行验证。
图4是本发明实施例提供的基于区块链的身份信息安全授权方法原理图。
如图5所示,步骤S101中,本发明实施例提供的用户通过身份证件将身份信息的注册至身份信息链中包括:
(1)通过个人身份IC卡即身份证进行个人身份信息的注册。
(2)通过身份信息授权终端对个人身份IC卡进行识别,识别成功后读取身份信息u;同时用户通过身份信息授权终端设置个人口令p。
(3)对身份信息u进行哈希运算作为用户加密身份信息标识u';
u′=hash(u)。
(4)将身份信息u以及个人口令p进行哈希计算获取用户加密身份信息属性v:
v=hash(u∪p)。
(4)对u'与v添加时间戳,创建包含经过加密后的身份信息u′、哈希后的口令v以及时间戳S的身份信息注册合约,并将其广播到身份信息区块网络中,由公证者对交易信息进行验证,验证通过后即注册成功。
如图6所示,步骤S102中,本发明实施例提供的身份信息验证方法包括:
个人身份信息的IC卡认证和口令认证。
个人身份信息的IC卡认证:用于认证个人持有证件是否有效。
口令认证:用于确认身份信息是否由本人持有。
当且仅当个人身份信息的IC卡和口令同时认证即个人身份信息有效并且是由本人授权的;身份验证成功。
本发明实施例提供的身份信息验证方法具体包括以下步骤:
第一步,读取身份证即个人身份IC卡中的信息,并确认IC卡是否有效,当无效时则输出操作错误,身份验证不成功。
第二步,当IC卡有效时,对身份信息u进行哈希计算获取u',并将u'传输至身份信息区块链网络;匹配用户注册信息。
若当前用户已经注册,则将从身份信息区块链网络中匹配到的v返回身份信息授权终端。
若未注册,则提示用户未注册。
同时用户通过身份信息授权终端输入用户口令,对身份信息u与用户口令p进行哈希计算获取用户加密身份信息属性v,并与身份信息区块链网络中匹配到的v进行匹配确认是否一致。
第三步,若一致则证明用户口令与身份信息匹配,为本人操作,即身份验证成功;若不一致则输出错误。
步骤S102中,本发明实施例提供的身份信息加密以及密钥生成方法具体包括:
首先,对个人身份信息u与用户口令p使用RSA加密算法进行不对称加密操作生成密钥对。
所述密钥对包括公钥与私钥;所述公钥由身份信息授权终端输出,用于授权信息的加密与验证;所述私钥由身份信息授权终端进行签名与加解密。
其次,使用生成的密钥对身份授权合约进行加解密。
最后,当授权合约的加解密完成后,私钥自动销毁。
当合约方需创建新的授权合约则需重新进行身份信息的认证。
如图7所示,步骤S103中,本发明实施例提供的授权业务合约的创建具体包括:
乙方填写所需要个人身份信息授权的协议内容T,系统进行协议内容的校验,若协议内容无误,则将协议T与合约甲方的公钥
通过串口发送至身份信息授权终端,由身份信息授权终端进利用甲方的公钥
对协议内容T进行加密。
具体包括以下步骤:
1)身份信息授权终端使用乙方的私钥
对协议内容T进行加密操作生成已加密的协议T
j′:
2)使用甲方公钥
对T
j′进行加密,加密后的内容为T
j″:
3)加密完成后,身份信息授权终端将加密后的协议内容T″
ij,乙方公钥
整合成授权合约C:
4)将授权合约通过网络发送给甲方并等待甲方对授权信息的确认操作;
如图8所示,步骤S104中,本发明实施例提供的授权响应具体包括:
所述授权响应包括甲方接收到乙方发送过来的授权合约C,并由系统检验是否是一个有效的合约,同时将该合约发送至身份信息授权终端进行解密操作。
包括以下步骤:
a)身份信息授权终端使用合约甲方的私钥
对合约进行解密,解密后的内容为T
j′:
b)使用合约中的乙方公钥
进行解密操作,将已解密的协议内容T发送给合约甲方进行协议的验证。
若甲方与乙方对身份信息授权的协议达成一致,则合约有效。
甲方与授权事务未达成一致,不接受乙方授权,则合约无效;无效合约将被丢弃不会写入区块链网络系统,需要乙方重新发起身份信息的授权合约。
c)当合约有效时,将协议内容T,发送至身份信息授权终端,由身份信息授权终端使用甲方私钥
进行加密操作:
d)将甲方私钥加密后的协议内容T
i′、甲方公钥
乙方公钥
乙方私钥加密后的协议内容T
j′,以及生成的时间戳S五部分内容打包成一个完整的合约
′广播到区块链中:
如图9所示,步骤S105中,本发明实施例提供的合约验证包括:
区块链中的公证者接收合约C′后,公证者分别通过事务中的乙方公钥
与甲方公钥
对加密的授权内容T
j′、T
i′进行验证:
当解密的授权内容T完全一致,则表示当前事务有效,将有效的当前事务存储到本地的事务池中待打包成区块:
当解密的授权内容T不一致,则事务无效。
下面结合具体实施例对本发明作进一步说明。
实施例:
1).系统架构
本发明提出了基于区块链的身份信息授权安全管理架构,如图2所示。在注册成为该网络系统用户后,按职能划分为三种角色:分别为甲方,乙方和公证者。
甲方:为乙方提供所需要的具体业务信息并与乙方进行身份信息授权合约签定的用户。接收乙方发送的将乙方个人身份信息授权到某一业务的请求,同时完成对由乙方创建的授权合约的验证操作,最后选择是否接受乙方的授权请求。
乙方:需要将个人身份信息授权至由甲方提供的某一业务并与甲方进行身份信息授权合约签定的用户。乙方在网络系统中完成将个人身份信息通过甲方授权到某一业务的行为,乙方需要在区块链网络系统中创建授权合约,将该授权合约发送至指定的甲方,由甲方选择是否接受该授权。乙方是整个区块链网络系统中的主要参与者。
公证者:所有由甲乙双方签订的合约需要广播到区块链网络中,只有经过验证后的合约才可认为是有效的合约。公证者主要完成对对区块链网络中由合约双方创建的授权合约的验证,同时完成将授权合约打包并生成区块的任务。公证者在本区块链网络系统中是不可或缺的角色。
在该网络系统中,三种角色并不固定,一个用户,在不同业务中,可以是甲方,可以是乙方,也可以承载公证者角色。甲方在处理乙方发送过来的个人身份信息授权请求的同时也可以作为乙方创建身份信息授权请求发送至与之对应的甲方。乙方也是如此,在创建授权请求的同时也可以作为甲方处理由其他乙方发送过来的个人身份信息授权请求,甲、乙方也可以做为公证者完成对授权合约进行验证以及生成区块的操作。
考虑系统完备性,本发明所提出的身份信息授权管理系统采用双链结构,由身份信息链与业务信息链构成。
身份信息链:该链用于实现对用户身份信息的区块链存证。通过身份信息链,个人可以注册成为身份授权管理系统的用户,将身份信息以及设置的用户口令通过加密后成为身份信息链上的身份信息存证。考虑到身份信息的安全性和私密性,身份信息链采用联盟链,且该链上区块生成与验证权限由权威机构承担(如公安部门)。身份信息链为业务合约提供身份信息授权验证参考,用户只有提供注册的身份证件以及对该身份信息所设置的口令,才能实现有效授权。
业务信息链:该链用于实现身份授权业务合约及存证。业务双方或多方通过身份信息授权来确认业务有效性。业务信息链通过智能合约将业务信息与身份授权信息封装成业务合约存证,可有区块链网络进行各身份授权方身份信息的有效性。若通过验证,则将该业务信息写入业务信息链。业务信息可由联盟链实现。
本系统包含两个主要功能模块,分别为身份信息授权终端硬件模块和业务合约主模块。
身份信息授权终端硬件模块具有两个功能,一个功能是对用户的身份IC卡进行识别,并通过业务合约主模块连接身份信息链对用户身份信息进行验证操作(用户需要通过该模块将身份信息注册到身份信息链中),该模块具有管理用户访问以及通过该区块链网络系统进行身份信息授权的权限。另一个功能是完成对身份信息的加密,同时为每一个通过身份信息验证的用户生成密钥以及完成对合约双方创建的授权合约进行加解密的操作。
业务合约主模块的功能是完成合约的创建,也是合约双方进行身份信息授权协议签订的桥梁。合约乙方通过该模块进行身份信息授权合约的创建并发送合约到甲方,合约甲方则通过业务合约主模块决定是否接受所收到的授权信息,由甲方进行合约内容的确认也可以防止用户恶意重复授权。其中,为了提高身份信息的安全性,身份认证操作和加密操作通过硬件设备实施完成,用以保证个人身份信息的安全。而业务合约主模块则是通过软件实施完成。
2)系统设计
2.1)基于双链的区块链底层设计
出于对个人身份信息的特殊性以及身份信息安全的考虑,本发明设计了身份信息链用于保存身份信息授权系统中已注册用户经过哈希运算的身份信息,用户需要在身份信息链中注册后,才具有使用本发明提出的身份信息授权系统的权限。同时本发明设计了业务信息链用来保存由合约双方创建的身份信息授权合约,将身份信息与授权合约存储在不同的区块链上。用户每次进行身份信息的授权第一步都需要通过身份信息链进行身份信息的认证,而只有完成注册的用户才可以认证通过。此后才可以进行身份信息的授权操作。用户进行身份信息授权的整体流程如图4所示。
完成一次身份信息的授权操作需要合约的甲乙双方分别通过身份信息授权终端进行身份信息的识别与加密生成密钥对的操作,其中由乙方通过身份信息的认证后,创建需要将个人身份信息授权的具体业务的合约,进行合约的加密发送至甲方如图4A部分。而甲方则需要在通过身份信息的认证后对接收到的合约进行确认操作,达成一致后由业务合约主模块将合约广播到业务信息区块链网络中如图4B部分。
2.2)身份信息授权终端硬件模块设计
由于身份信息的特殊性以及涉及个人的隐私,使得身份信息需要具有极高的安全性。据此,本发明设计了身份信息授权终端硬件模块,对明文身份信息进行识别和加密处理,确保明文身份信息不在公共通信网络中传输。身份信息的认证包括两个部分:个人身份信息的IC卡认证和口令认证。IC卡认证用来保证个人持有的证件内容是有效的,口令认证是第二层保护,用来确认是身份信息是由本人持有,而不是由其他人代持的。同时也只有这两部分同时认证通过才可确定个人身份信息是有效并且是由本人授权的。口令相对比较简单,在将来可以采用指纹、虹膜等生物信息认证替代口令认证,进一步加强用户身份信息的安全性。该模块用于身份信息的注册,验证以及加密等操作。
a)身份信息验证
表格1身份信息
为保证进行身份信息授权的个人所持有的身份IC卡是有效的,并且授权操作是由本人进行的,本发明为该模块设计了用于对个人身份信息进行验证的操作。验证操作涉及到的参数与过程如表1和图6所示。首先对用户身份证进行读取,如果当前用户所持有的身份信息IC卡是伪造的,则会输出错误信息,当身份信息授权终端对身份信息u识别为有效后,对身份信息u进行哈希计算获取u′,并将u′输出至业务主模块,业务主模块将在下一部分进行说明。由业务主模块与身份信息区块链网络进行通信,如果当前用户已经注册,则将从身份信息区块链网络中匹配到的v返回身份信息授权终端。如果没有注册,则提示用户未注册,其中注册流程将在系统流程部分说明。同时用户需要通过身份信息授权终端输入用户口令,由该模块对身份信息u与用户口令p进行哈希计算获取v,并与从业务主模块接收到的v进行匹配查看是否一致,匹配失败则说明身份信息非本人使用,该模块将输出错误信息。匹配成功则可以证明用户口令与身份信息匹配,可以确认是本人操作,即为身份信息验证成功。
b)身份信息加密与密钥生成
为确保用户身份信息与合约的安全性,本发明设计了用于密钥生成以及对合约进行加密的操作。对身份信息进行加密来确保用户身份信息的安全。同时为用户根据自己的身份信息生成公私钥。为避免个人隐私泄漏,使用密钥对授权合约进行加密,确保合约内容只能由本人查看。密钥生成的操作将在用户在该系统中成功进行身份信息认证后进行。具体密钥生成的流程如算法1所示:
由本模块将对个人身份信息u与用户口令p使用RSA加密算法进行不对称加密操作生成密钥对。其中公钥由本模块输出,用于授权信息的加密与验证操作,私钥不暴露给任何人,由本模块用于签名与加解密,签名与加解密都在本模块中进行,防止私钥被他人持有。当授权合约的加解密操作在本模块中完成后,私钥信息由本模块自动销毁。合约方如果需要创建新的授权合约则需要重新进行身份信息的认证操作。
2.3)业务合约主模块设计
该模块主要完成身份信息注册合约,身份信息授权合约的创建,以及合约的发送,接收,验证操作。在本系统中涉及到两种合约分别为身份信息注册合约与身份信息授权合约:
a)身份信息注册合约
用户通过本发明提出的身份信息授权系统首先需要将个人信息在身份信息链中进行注册,具体的注册流程将在下一部分说明。身份信息注册合约中包括三部分内容:经过加密后的身份信息u'以及口令v,时间戳S。当用户经过身份信息授权终端硬件模块对个人信息进行注册后,由业务合约主模块创建身份信息注册合约并广播到身份信息链中,当成功达成共识后表明用户成功注册到身份信息链中。
b)身份信息授权合约
身份信息授权合约即为合约双方签订的关于合约乙方将个人身份信息授权到某一具体业务的授权合约,需要由合约中的乙方通过该模块对合约进行创建,通过身份信息授权终端完成合约的加密,最后由本模块将加密的合约发送至甲方。甲方则需要通过该模块接收由乙方发送的加密合约,由身份信息授权终端进行解密操作,最后由甲方决定合约内容是否达成一致。
2.4)系统流程
a)身份信息注册
用户使用本系统进行身份信息的授权首先需要将个人身份信息注册到身份信息链中,整体注册流程如图5所示。用户首先需要通过身份信息授权终端对个人IC卡进行识别,识别成功后读取出身份信息u,同时用户需要设置个人口令p,由身份信息授权终端对这两部分信息使用哈希算法计算u'与v,即:
i)对身份信息进行哈希运算作为用户加密身份信息标识:
u′=hash(u), (1)
ii)对u与p进行哈希作为用户加密身份信息属性:
v=hash(u∪p), (2)
并将u'与v发送到身份注册业务模块,最后由身份注册业务模块添加时间戳后生成一笔交易并广播到建立的身份信息区块链网络中,由公证者对交易信息进行验证,验证通过后即为注册成功,最后打包成区块链接到身份信息区块链中。
授权合约的签署本发明中分为两部分,分别为业务的授权与授权的响应。具体的流程如下:
b)业务授权
业务授权主要是完成合约方对个人信息所需要授权的业务合约的创建。整体步骤如图7所示,用户首先需要在身份信息区块链网络中完成注册流程后,分别通过之前的身份信息认证与加密操作确认所有操作是由本人进行后才可以进行授权业务合约的创建。
完成身份信息授权需要乙方填写所需要个人身份信息授权的协议内容T,并且持有甲方的公钥
用于对协议内容T的加密操作。在此为前提下,乙方首先需要填写具体的协议内容T,由业务主模块进行协议内容的校验,如果协议内容无误,则由当前模块将协议内容T与合约甲方的公钥
通过串口发送至身份信息授权终端,由身份信息授权终端进行加密操作。
表2授权合约数据定义
i)、身份信息授权终端首先使用乙方的私钥
对协议内容T进行加密操作生成已加密的协议
ii)、然后使用由业务主模块发送的甲方公钥
对T
j′进行加密,加密后的内容为T
j″:
iii)、加密完成后,身份信息授权终端将加密后的协议内容T″
ij,乙方公钥
这两部分整合成授权合约C:
发送至业务主模块,最后由业务主模块将该合约通过网络发送给甲方并等待甲方对授权信息的确认操作。
c)授权响应
为了防止乙方恶意重复授权,每次身份信息授权都需要甲方完成对接收到的授权合约C进行确认。该步骤称为授权相应如图9所示。首先,甲方也需要通过之前的身份信息授权终端进行身份信息的注册,认证以及加密过程后,才可以进行授权合约的确认操作。当甲方接收到乙方发送过来的授权合约C时,由业务主模块检验是否是一个有效的合约,然后将该合约发送至身份信息授权终端进行解密操作。
i).身份信息授权终端首先使用合约甲方的私钥
对该合约进行解密,解密后的内容为T
j′。
ii).然后再次使用合约中的乙方公钥
进行解密操作,最后将已解密的协议内容T发送至业务主模块由合约甲方进行协议的验证。甲方与乙方对身份信息授权的协议达成一致后,表明该合约是有效的。
iii).业务主模块则将协议内容T,发送至身份信息授权终端,由身份信息授权终端使用甲方私钥
进行加密操作:
iv).加密完成后由身份信息授权终端将由甲方私钥加密后的协议内容T
i′,甲方公钥
输出至业务主模块。最后,由业务主模块生成时间戳S后,将乙方公钥
乙方私钥加密后的协议内容T
j′,甲方公钥
甲方私钥加密后的协议内容T
i′以及生成的时间戳S五部分内容打包成一个完整的合约C′广播到区块链中:
如果甲方与授权事务没有达成一致,不接受乙方的授权,该授权合约则是无效的,该合约将被丢弃不会写入区块链网络系统,则需要乙方重新发起身份信息的授权合约。
d)验证合约
在区块链中的公证者接收到合约C′后,公证者需要分别通过事务中的乙方公钥
与甲方公钥
对加密的授权内容T
j′,T
i′进行验证操作,验证过程如图9所示。如果解密的授权内容T完全一致,则表示当前事务是有效的,将该事务存储到本地的事务池中待打包成区块。
3)、分析与评估
本发明主要是对本发明所提出的身份信息授权机制进行安全性的分析。同时本发明也实现了提出的身份信息授权机制并对整个区块链网络进行了性能的测试。本发明使用了新中新身份信息识别器作为身份认证模块,以及内核为ARM Cortex A7,内存为1GB的Orange Pi PC作为加密模块,以及使用Ubuntu 16.04LTS,内存8GB,内核为Intel i7-67003.40GHz的主机作为业务主模块,整体的原型系统设计如图10所示。
3.1)安全性
由于本发明所提出的身份信息授权机制涉及到个人的身份信息,尤其是个人的隐私。所以对于该网络系统,安全性必须得到充分的保证,所以本发明对系统中的身份信息的安全性以及业务信息的安全性进行全方位的分析。本发明假设攻击者对整个系统进行攻击,以检验所提出的身份信息授权机制的安全性。
3.1.1)身份信息安全
用户在该系统中进行身份信息的授权首先需要进行注册,将身份信息进行哈希运算后保存到身份信息链中。所以身份信息链中的数据需要具备极高的安全性。
3.1.1.1)假设攻击者对本发明所提出的身份信息区块链网络进行攻击。由于身份信息链是私有链,如果攻击者没有对个人身份进行注册则不具备查看身份信息链中数据的权限。所以未经过注册的攻击者无法成功攻击到身份信息区块链,进而无法攻击到本发明所提出的系统。
3.1.1.2)即使攻击者已经在身份信息区块链中注册过个人信息,由于身份信息链中所保存的身份信息数据是经过哈希运算后的哈希值,而哈希算法的特性使得根据哈希值不能够反向运算出原始的身份信息,所以攻击者不可能成功攻击到身份信息链中所存储的身份信息。
因此本系统所提出的身份信息区块链具备极高的安全性可以保证用户的身份信息安全。
3.1.2_业务信息安全
本发明所提出的身份信息授权机制在保证个人身份信息的安全的前提下同时也需要保证用户对个人身份信息进行业务授权后的业务信息的安全。假设攻击者从以下几种情况对系统进行攻击。
3.1.2.1)假设攻击者使用伪造的身份信息卡进行个人身份信息的授权操作,攻击者首先需要通过身份认证模块对个人身份信息卡进行认证操作,而伪造的身份信息卡无法通过身份认证模块的识别,因此对于使用伪造的身份信息卡的攻击者是无法成功攻击到业务信息区块链网络。
3.1.2.2)假设攻击者盗用他人的身份信息卡冒充他人进行个人身份信息的授权操作,即使攻击者通过了身份认证模块对身份信息卡的识别,从身份信息区块链中获取到了个人身份信息的哈希值,攻击者还需要输入与个人身份信息匹配的口令与身份信息区块链中获取的哈希值进行匹配验证。所以如果攻击者不知道正确的口令信息,攻击者仍然无法使用他人的身份进行身份信息的授权操作。因此,对于冒充他人的攻击者,仍然无法成功攻击到业务信息区块链网络。
3.1.2.3)假设攻击者持有他人的身份信息卡,并且也知道与其对应的口令信息,攻击者仍然无法获得以他人身份所生成的私钥信息。因为由加密模块所生成的私钥信息不对外暴露,只存在于模块中,并且密钥信息只有在进行身份信息授权的时候才会生成,所以杜绝了攻击者获取由他人身份信息生成的私钥信息的可能。而且,在合约甲方可以信任的情况下,即使攻击者通过了身份认证模块对个人身份信息的识别,并且输入了正确的口令信息生成了密钥,攻击者想要进行他人的身份信息授权还需要与之签署合约的甲方对身份信息以及合约内容进行确认,所以对于使用他人身份信息进行恶意授权的行为是无法与合约甲方成功达成共识。而对于恶意的合约甲方来说,与以上两种情况相同,仍然需要掌握他人的身份信息卡以及正确的个人口令,所以对于合约双方都不被信任,并且成功攻击到本发明提出的身份信息授权机制的可能是微乎其微的。
因此,本系统的安全级别是非常高的,可以保证个人身份信息以及业务信息的安全性。
3.2)性能分析
本发明实现了整个网络系统,并分别从CPU利用率,稳定性,响应时间,以及内存利用率这几个方面对提出的身份信息授权机制进行了性能的分析,并给出了分析结果。
3.2.1)CPU利用率
本发明提出的身份信息授权机制中的身份信息识别与加解密操作通过硬件完成,并从读取身份信息后进行加密操作以及根据加密后的身份信息生成密钥对所占有的CPU利用率进行了检测,并对检测结果进行了分析。
本发明分别进行了身份信息加密并生成密钥对,以及加解密操作三个方面进行了测试,并且分为相同用户与不同用户进行了多次测试,测试结果如图11所示,当对同一用户按照加密身份信息并生成密钥对,加密数据,解密数据的顺序进行多次测试时,可以看到为用户加密身份信息并生成密钥该操作的CPU利用率仅仅使用了不到20%的CPU。而之后多次加密身份信息并生成密钥对的测试,由于添加了缓存机制,定义了时间阈值,对于相同用户在不超过时间阈值的情况下多次发起授权,不再重复生成密钥,而是利用首次生成的密钥对进行加解密操作,所以CPU利用率明显下降,不超过10%,而如果相同用户在两次授权的时间间隔超过了所定义的时间阈值,为了用户身份信息的安全,则需要重新生成密钥对。第二,三处是用户使用所生成的密钥进行授权合约的加解密操作的CPU利用率,可以看出加密与解密操作的CPU利用率没有相差太多,没有超过30%。
而对于不同用户多次进行测试的结果如图12,可以看到对授权合约进行加解密与相同用户对授权合约进行加解密的结果大致相同,只是每次都需要重新加密身份信息并生成密钥对,CPU利用率仍然可以维持在20%左右,并没有超过30%。所以对于身份信息加密并生成密钥对,以及加解密操作,所使用的硬件设备完全可以满足本发明所提出的身份信息授权机制的需求。
3.2.2)系统稳定性
本发明设计并实现了基于区块链的身份信息授权网络系统,并且对该区块链网络系统进行了测试。本系统使用的平台为Ubuntu 16.04LTS,内存8GB,内核为Intel i7-67003.40GHz,并且在该平台构建了P2P网络,整个区块链网络系统使用JAVA语言开发,本发明在该平台模拟了多个节点对整个区块链网络系统分别做了关于CPU利用率,响应时间以及内存的利用率的测试。
区块链系统的稳定性也是一个衡量系统性能的一个重要指标,本发明通过对该网络系统进行高并发的测试来验证该网络系统是否具有良好的稳定性。本发明模拟了多个节点同时创建授权合约时区块链网络系统的处理能力,对系统的稳定性进行了相关的测试与验证。本发明中区块链网络系统使用POW共识机制,设置出块时间为1s,整个网络系统的负载测试结果如图13所示。
当系统分别模拟10,20,50,100,200个节点同一时间创建授权合约时,整个网络系统的CPU负载有明显提升,平均值保持在15%左右,而且最高CPU负载仍然没有超过30%。本系统CPU负载并没有随节点数量的增加而有明显提升。
3.2.3)响应时间
本发明还对系统完成身份信息的加密,以及授权合约的加解密的响应时间基于之前的环境进行了测试。从图14中可以看到,对于同一用户多次进行测试,由身份认证模块读取身份信息平均耗时在1005毫秒左右,基本没有太大的变化。而对同一用户的身份信息加密生成密钥对的操作,只有在第一次密钥生成时耗时745毫秒,而之后的多次操作耗时降低至200毫秒左右。由于在一定的时间阈值内,由系统检测到是同一用户进行多次身份信息的读取与加密,系统则使用了缓存中的密钥对信息,降低了密钥对生成所消耗的时间。
而如果同一用户多次身份信息的读取与加密超出了所定义的时间阈值,为了用户身份信息的安全,则需要重新对密钥对进行生成。对于授权合约的加密与解密操作,响应时间大致相同,在1600毫秒左右波动。
本发明也对不同用户进行上面的操作进行了测试,测试结果如图15。除了密钥对的生成所消耗的时间不同,其他测试与相同用户的测试结果大致相同。而由于不同用户每次操作都需要重新生成对应的用户的密钥对,所以响应时间维持在700毫秒左右。
从整体的测试情况来看,用户从身份信息的读取到授权合约的加密或解密操作的整个流程响应时间可以稳定在3秒左右。对于该系统,加解密操作的响应时间处于可以接受的范围内。
3.2.4)内存利用率
本发明基于以上的环境配置对系统的高并发情况下的内存利用率进行了监测。
分别在10,20,50,100,200节点运行情况下广播区块信息并监测该平台的内存利用率。结果如图16所示,可以看到该系统当有10节点向平台广播区块时,内存利用率在270MB左右,空闲内存在90MB左右,并没有出现内存溢出的情况。而当更多节点处于运行状态下时,系统的内存利用率发生了明显变化,但由于系统中存在自动进行内存回收的机制,内存的使用量并没有随节点的增加而随之增加,反而呈现一定的减少。所以在系统高并发情况下,可以保证该系统不会发生内存溢出的情况。
本发明分别从身份信息授权机制的安全性以及系统性能进行了分析,确保该机制具有足够的安全性对用户的身份信息进行保护,同时对整个授权网络系统的测试说明该网络系统的性能可以稳定在一个较好的范围内,确保了该系统的可用性。
4、考虑个人身份信息授权在当前社会业务中的普遍使用,但其安全性还不能得到有效的保障。本发明提出了一种基于区块链的身份信息授权机制,通过区块链技术形成身份信息授权记录存证,保障身份信息授权不可冒用、不可篡改、不可抵赖以及可追溯验证。设计并开发了身份信息授权终端硬件模块,以确保只有本人可以进行身份信息授权。设计了身份信息授权智能合约,实现授权业务的透明化处理与上链存证。开发了网络系统原型,对该系统的性能进行了分析,验证了本发明提出的身份信息授权机制的安全性,可行性与有效性。本发明所提出的基于区块链的身份信息授权机制,为广泛社会业务中保护个人身份信息安全提供了有价值的参考。
下面结合实验数据及结果对本发明作进一步描述。
实验数据:如图11-图16。
实验结果如图10。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。