一种区块链身份系统的制作方法

文档序号:12491027阅读:192来源:国知局

本发明涉及互联网上的身份生成以及认证,一种区块链身份系统。



背景技术:

在互联网中,区块链身份需要依靠网络数据的形式进行颁发,与传统的身份不同,互联网上的身份对生成及认证过程的难度更大。对于目前广泛使用的基于口令的认证机制或基于短消息的身份认证中,如果口令一旦泄漏或者手机不慎丢失,其他用户同样可以使用该终端进行认证交易。另外近年来开始出现结合生物特征信息(例如指纹、虹膜等)来增加认证安全性的技术。然而就当前环境下,如果在要进行身份认证之前必须要先接受自己的指纹等生物特征信息被一个第三方系统采集保存,对于一个普通大众用户来说尚不容易接受,用户很可能因为担心个人信息泄漏。因此,现今亟需一种安全性高、可操作性高、方便的区块链身份系统。



技术实现要素:

有鉴于此,本发明提供一种解决或部分解决上述问题的区块链身份系统。

为达到上述技术方案的效果,本发明的技术方案为:一种区块链身份系统,包含客户端、云端,客户端由射频读取模块、计算平台、触摸屏模块、通信模块、智能身份卡组成,云端由区块链多节点网络组成,区块链多节点网络包括数据区块链以及多节点网络,多节点网络负责与客户端之间协调完成身份的生成过程以及身份认证过程;

计算平台的内部包含触摸屏控制器、通信控制器及微型计算芯片;

触摸屏控制器用于控制触摸屏模块的显示,将需要显示的信息发送给所述触摸屏模块;

通信控制器以串口通信的方式调度射频读取模块、触摸屏模块及通信模块之间的交互通信;

微型计算芯片用于处理所述身份的生成过程以及身份认证过程中的信息;

智能身份卡内含内置集成电路的芯片,芯片包含存有用户ID编号,每个智能身份卡的用户ID编号都是惟一的,用于识别用户身份,智能身份卡由专门的厂商通过专门的设备生产,是不可复制的硬件,智能身份卡由注册过的合法用户携带,认证时必须将智能身份卡经过射频读取模块扫描读入其中的用户ID编号,以验证用户的身份;

触摸屏模块采用五线电阻屏,依靠压力感应原理,用于显示以及输入在身份的生成过程以及身份认证过程中所需的信息;

通信模块用于接收和发送相关信息,内含网络传输过滤器及专用编码芯片以实现计算平台与云端之间的通信,并以数据帧的方式实现网络数据的接收和发送,并且还要在接收和发送时避免背景噪声及干扰,数据帧的编码方式为相位编码,并采取同步时钟编码技术,在传输数据信息的同时,也将时钟同步信号一起传输到对方;

在云端的所述区块链多节点网络中,区块链多节点网络中的数据区块链由一串按创建的时间顺序相连的数据区块组成,区块链多节点网络中的多节点网络是由多个节点构成的P2P网络,节点之间通过网络共享及互相传输信息,数据区块链对多节点网络中所有所述节点都是开放的,数据区块由区块头以及区块主体组成,区块头包含前一数据区块的哈希值、时间戳、当前数据区块的哈希值,前一数据区块的哈希值用于不同数据区块的连接,时间戳记录当前数据区块连接的时间,当前数据区块的哈希值用于确保数据区块的内容不会被篡改,区块主体记录了用户身份的账户信息,其中合法的用户身份的账户信息为:用户名、用户身份信息、加密后的用户口令、加密后的用户ID编号、用户公钥;

节点中包含伪随机数生成器;

身份生成过程如下:

1)用户在触摸屏模块上输入用户名、用户身份信息、用户口令,并将用户名、用户身份信息、用户口令传输给多节点网络,多节点网络检验用户名在数据区块链中是否存在,如果用户名不存在,进行下一步,如果用户名存在,传送反馈信息经由通信模块传送给计算平台,计算平台将反馈信息处理,在触摸屏模块上显示“用户存在,重新输入”,用户在触摸屏模块上重新输入用户名,多节点网络重新检验用户名在数据区块链是否存在;

2)计算平台验证所述用户口令是否符合要求,如果用户口令符合要求,进行下一步,如果不符合要求传输给触摸屏模块,在触摸屏模块上显示“用户口令不符合要求,重新输入”,用户在触摸屏模块上重新输入用户口令;

3)多节点网络产生随机数S1,并且随机数S1经过IDEA加密算法进行加密生成加密后的随机数S1,将加密后的随机数S1广播给多节点网络中所有节点,所有节点利用IDEA解密算法解密加密后的随机数S1,最先解密出随机数S1的节点作为负责构建数据区块链的节点;

4)负责构建数据区块链的节点分配给用户一个用户公钥,并通过哈希算法将用户身份信息生成唯一的身份标识,负责构建数据区块链的节点将生成后的唯一的身份标识进行数字签名生成唯一的用户ID编号,将的用户ID编号写入智能身份卡,由用户公钥进行加密生成加密后的用户ID编号,把当前时间保存为当前数据区块的时间戳,前一数据区块的哈希值通过安全散列算法生成当前数据区块的哈希值,并且生成加密后的用户口令,生成加密后的用户口令的具体过程为:使用负责构建数据区块链的节点中的伪随机数生成器生成的随机数作为盐值,将盐值混入用户口令,并使用所述加密哈希函数进行加密,生成加密后的用户口令;将用户名、用户身份信息、加密后的用户口令、加密后的用户ID编号、用户公钥组成用户身份的账户信息,与产生的盐值一起写入当前数据区块的区块主体中;

伪随机数生成器的工作原理如下:

伪随机数生成器基于数据加密标准,包含三重数据加密标准算法,可以循环地产生随机数;用变量i表示第i轮随机数的产生计算,主要有3个组成部分:

1)输入部分:输入部分是两个64比特的伪随机数Datei及Vi,其中,Datei表示第i轮计算开始时的日期和时间,每产生一个随机数Ri后,Datei需要更新一次,Vi是产生第i个随机数时需要输入的种子,其初值可任意设定,以后每轮计算都会自动更新;

2)密钥产生器:用于每轮的具体计算,每轮计算都使用了三重数据算法加密,每次加密使用两个固定的56比特的密钥K1和密钥K2,这两个密钥必须保密,由伪随机数生成器指定;

3)输出部分:输出为一个64比特的伪随机数Ri和一个64比特的新种子Vi+1

伪随机数生成器具有很高的安全强度,因为其采用了总共112比特长的密钥和3个密钥加密的数据算法加密,同时还由于有两个伪随机数输入驱动,两个伪随机数输入一个是当前的日期和时间Datei,另一个是上一轮产生的种子Vi,每轮都产生随机数Ri,但是每轮种子不同,产生的随机数都不相同,因此,为每个用户产生的盐值也不相同,所以无法通过上一轮产生的盐值来推断下一轮产生的盐值;

身份认证过程如下:

第一步,客户端向云端发出认证请求,将智能身份卡中所存的用户ID编号经由射频读取模块读入,多节点网络检测在数据区块链中是否存在,如果存在再进行第二步,如果不存在结束身份认证过程;

第二步,初次认证,云端经由通信模块反馈给计算平台开始认证的信息,计算平台处理开始认证的信息,开始认证的信息在触屏模块显示提示用户输入,用户在触摸屏模块输入用户名和用户口令后,初步验证用户,根据收到的用户名,多节点网络判断其合法性,如果是合法用户,再检验用户口令是否正确,从区块链多节点网络中取出用户的盐值,将盐值混入用户输入的密码,并且使用加密哈希函数进行加密,比较结果和对应数据区块储存的加密后的用户口令是否相同,如果相同那么初步判断用户输入的口令正确,进入第三步,如果不相同则判断用户输入的口令不一致;

第三步,二次认证,计算平台选取大素数p及整数a,并将这两个数公开,即这两个数对客户端与多节点网络都可见,多节点网络选取随机的大素数x,大素数x满足x<p-1,计算axmod p,大素数x的值保密,只对多节点网络可见;客户端将用户口令及对应的盐值级联,计算散列值Z1,并生成随机数S1,将计算后的散列值Z1与将计算后的axmod p的值、随机数S1级联再进行一次散列运算得到散列值Z2,客户端连同随机数S1、将计算后的axmod p的值和散列值Z2一起发送给多节点网络;

第四步,多节点网络取出存储在数据区块链的加密后的用户口令;与收到的随机数S1、将计算后的axmod p级联再进行散列运算得到散列值Z3,与散列值Z2进行比较,相等则继续,否则判断不一致,多节点网络随机选取大素数y,满足y<q,计算aymod p,并将大素数y的值保密;多节点网络将加密后的用户口令、随机数S1和计算后的aymod p的值再次级联进行散列运算得到散列值Z4,并且将散列值Z4、将计算后的aymod p的值发送给客户端;

第五步,客户端将在第三步得到的散列值Z1、将计算后的aymod p和随机数S1级联进行散列运算,将计算结果和第四步收到的消息中的散列值Z4进行比较,相等则回送给云端一个认证成功的应答信号,否则返回认证失败的消息;

经过以上五个步骤,云端与客户端都成功地验证了对方的身份;

区块链身份系统采用的通信模式是一种开放系统结构的网络方式,由客户端首先向云端提出请求,云端对请求做相应的处理并执行请求中包含的任务,然后将结果返回给客户端。

本区块链身份系统的优点如下:

(1)使用智能身份卡,以保证用户身份的安全性。

(2)将口令信息及智能身份卡的ID信息都加密,而不传输信息明文,这样即使入侵者人通过网络侦听等手段获得信道的传输信息,也无需担心用户口令和身份证信息被泄漏。

(3)身份生成过程以及身份认证过程使用了复杂的加密过程,可以有效防止重放攻击。而且客户端和云端采用了二次认证,提高了认证过程中的可靠性与安全性。

附图说明

图1为区块链身份系统的结构图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,能实现同样功能的产品属于等同替换和改进,均包含在本发明的保护范围之内。具体方法如下:

实施例1:认证系统的工作流程

认证系统的工作过程如下:用户在客户终端的触摸屏模块显示的登陆窗口上输入用户名口令登陆系统,进入认证系统后,触摸屏模块上显示读卡认证界面,通过发送命令给射频读取模块,射频读取模块将用户的智能身份卡中的信息读取进来,智能身份卡的身份读入到计算平台后,在处理平台根据所身份认证协议进行相应的密码学运算,得到加密后的认证请求信息,通信模块通过网络通讯的方式将加密后的认证请求信息传送到云端的认证服务器,经过客户端跟云端的一系列的认证交互过程之后,云端得到认证结果,并将相应的认证结果返回到客户端进行显示。

实施例2:身份认证协议设计

为身份认证系统安全与否的关键,身份认证协议的设计是整个系统的关键组成部分。首先介绍本文中所用符号约定:

U表示用户;

S表示第三方认证服务器;

ID表示射频读取模块读入的身份信息;

UserN、Password分别代表用户名和对应登录口令;

KuR、KuS分别代表移动用户的公钥和私钥;

KsR、Kss分别代表认证服务器的公钥和私钥;

EK(m)表示用密钥k对明文m加密;

DK(C)表示用密钥k对密文c解密;

Rl、N2为系统产生的随机数;

K作为双方身份认证成功后的会话密钥。

首先,用户须在第三方注册中心进行用户信息注册。注册的时候,要求第三方注册中心具有射频读取模块,以便确认用户身份信息,并根据从射频装置读出的信息完成用户的注册。注册过程是在这样的一个前提下进行的:整个过程都是在一个用户完全信赖的中心完成,且注册信息都是通过安全信道进行的。

注册过程如下:

(1)用户持自己的第二代居民身份证在官方指定的场所请求注册。注册中心人员采用认证系统的射频装置扫描用户的智能身份卡,读取智能身份卡中用户的身份ID。在认证系统读取用户的ID后,系统会自动查询用户是否己经注册过该系统。若用户己经注册过此系统返回提示信息并结束用户注册子协议。

(2)在确认用户的ID没有注册而且符合注册条件后,认证系统会请求用户输入登录口令。用户输入完口令后,系统首先使用用户的口令信息生成对应于该ID的公钥,然后根据椭圆曲线密码算法使用用户公钥加密用户口令,并将用户的公钥和用公钥加密后的口令和加密后的ID信息存储到第三方认证服务器上。

(3)在认证服务器将用户的身份信息存储到服务器后。第三方注册人员将认证系统安装程序通过移动存储设备或者安全信道传送安装到用户的移动终端。

注册成功之后即可使用移动终端进行身份认证,具体认证过程如下:

步骤一:认证开始,首先需要在客户端进行登陆,验证用户身份和对应口令,若云端验证无此用户或者用户名和口令不符,则返回出错信息,用户需要注册或者重新输入帐号和正确口令。如用户名和与之对应的口令正确,则进入接下来认证过程。通信模块中的网络信道传输的是验证用户的名称与用户的密码信息,云端验证从数据库中提取这两个信息。

步骤二:登陆成功之后,进入扫描智能身份卡认证阶段,用户U使用移动终端设备将用户身份证获得身份卡ID信息读取到认证系统中,具体过程如下:

(1)用户通过射频读卡设备读入身份卡信息ID后,首先在移动设备终端进行以下计算:

①使用用户公钥KuR加密身份ID得到加密后的用户ID,利用随机序列发生器产生随机数N1,并使用服务器的公钥计算认证请求,并暂存随机数Rl。

②发送消息认证请求,认证请求中包含加密后的用户ID信息及随机数N1,并且需要将随机数RI暂时保存。

(2)服务器收到用户发送的认证请求后:

①云端用私钥根据椭圆曲线密码算法模块解密认证请求,得到用户的ID加密后信息和用户发送的随机数Rl,然后服务器查找该ID加密信息是否跟认证数据库中userN用户所对应的EncipherID表项相符;若不相符,则返回出错信息,认证失败,即每个用户名跟其身份ID信息是一对应绑定的,即使入侵者窃取到用户名密码登陆系统由于不能扫入与之相对应的ID加密信息,亦不能通过认证。

②若①中得到的ID加密信息验证正确,此时服务器保存用户发送的随机数N1。同时服务器利用随机序列发生器产生随机数N2,然后利用椭圆曲线密码算法模块和用户的公钥计算应答信息,并发送至客户端进行验证。

(3)用户收到服务器的应答信息,会进行一下计算

①首先用户用自己的私钥解密应答信息,此时用户将获得的N1与以前保存Rl相比较,若两者不相等,则用户对服务器的认证失败(服务器可能被冒充),拒绝服务器,认证结束。

②若随机数N1相等,则用户认证服务器成功。同时用户生成会话对称密钥K,计算伴随着随机数N2的响应信息,然后发送响应信息至服务器请求验证。

(4)服务器接收到用户的响应信息后,进行如下计算:

①首先服务器用自己的私钥解密得到随机数N2。

②服务器首先比较随机数N2与保存的是否相等,若两者不相等,则服务器验证用户失败。

本区块链身份系统的优点如下:

(1)使用智能身份卡,以保证用户身份的安全性。

(2)将口令信息及智能身份卡的ID信息都加密,而不传输信息明文,这样即使入侵者人通过网络侦听等手段获得信道的传输信息,也无需担心用户口令和身份证信息被泄漏。

(3)身份生成过程以及身份认证过程使用了复杂的加密过程,可以有效防止重放攻击。而且客户端和云端采用了二次认证,提高了认证过程中的可靠性与安全性。

以上所述仅为本发明之较佳实施例,并非用以限定本发明的权利要求保护范围。同时以上说明,对于相关技术领域的技术人员应可以理解及实施,因此其他基于本发明所揭示内容所完成的等同改变,均应包含在本权利要求书的涵盖范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1