基于量子密码网络的手机令牌身份认证系统及方法与流程

文档序号:12067774阅读:483来源:国知局
基于量子密码网络的手机令牌身份认证系统及方法与流程
本发明属于网络安全通信领域,尤其涉及一种基于量子密码网络的手机令牌身份认证系统及方法。
背景技术
:量子通信是近二十年发展起来的新型交叉学科,是量子论和信息论相结合的新的研究领域。近来这门学科已逐步从理论走向实验,并向实用化发展。高效安全的信息传输日益受到人们的关注。物理上,量子通信可以被理解为在物理极限下,利用量子效应实现的高性能通信。信息学上,我们则认为量子通信是利用量子力学的基本原理(如量子态不可克隆原理和量子态的测量塌缩性质等)或者利用量子态隐形传输等量子系统特有属性,以及量子测量的方法来完成两地之间的信息传递。以量子密钥分配(QKD)协议为基础的量子密码技术是现阶段量子通信最重要的实际应用之一。传统的密码学是以数学为基础的密码体制,而量子密码以量子力学为基础,它的安全性是建立在测不准原理、量子的不可克隆及量子相干性等物理特性之上的,被证明是无条件安全的。量子密码网络(或称量子保密通信网络)便是采用量子密码技术的一种安全通信网络。量子密码网络是由经典通信网络(或称经典网络)和量子密钥分配网络共同构建而成的。量子密钥分配网络主要由QKD终端设备和量子信道组成,用于密钥分发,生成用于加密通信的量子密钥。经典通信网络使用量子密钥实现数据的加解密和加密数据的传输。一个量子密码网络终端一般是由一个连接于经典通信网络的经典通信终端和一个连接于量子密钥分配网络的QKD终端设备组成。动态口令(动态令牌)又称一次性密码(OTP,One-TimePassword),是使用密码技术实现的在客户端和服务器之间通过共享秘密的一种认证技术,是一种强认证技术,是增强目前静态口令认证的一种非常方便的技术手段。目前在强认证领域使用的OTP技术,源于最早由RSA公司于1986年开发的RSASecureID产品。目前,国际上OTP技术有两大主流算法,一个是RSASecurID 所使用的OTP算法,一个是OATH组织的OTP算法。另外,国内还有一种非常重要的OTP算法,是我国自主研发的OTP国密算法。RSASecurID使用AES对称算法,OATH使用HMAC算法,国密算法使用的是国密SM1(对称)和SM3(HASH)算法。OTP技术的基本认证原理是,认证双方事先共享密钥,也称种子密钥;双方分别基于所共享的种子密钥,使用同样的密码算法,对某一个事件计数、或时间值、或者是异步挑战数进行计算,使用的算法有对称密钥算法、HASH算法、HMAC算法;之后通过比较双方的计算值是否一致来进行认证。OTP技术可以做到一次一个动态口令,口令使用后作废,口令长度通常为6-8个数字,使用方法与通常的静态口令认证方式类似,便于与系统集成,因此OTP动态口令技术的应用非常普遍,包括Web应用、手机应用、电话应用、ATM自助终端等。动态口令的同步机制有3种,即时间型、事件型和挑战与应答型,目前应用最多的是时间型动态口令,挑战与应答型动态口令的应用也逐渐增多,并且动态口令逐渐向多种同步类型复合的机制发展,如时间+挑战与应答型。各种同步机制的动态口令特点如下:(1)基于时间同步的动态令牌,一般每60秒产生一个新口令,但由于其同步的基础是国际标准时间,则要求其服务器能够十分精确的保持正确的时钟,同时对其令牌的晶振频率有严格的要求,从而降低系统失去同步的几率。(2)基于事件同步的动态令牌,其原理是通过某一特定的事件次序及相同的种子值作为输入,在算法中运算出一致的密码。由于其算法的一致性,其口令是预先可知的,通过令牌,可以预先知道今后的多个密码。同样,基于事件同步的令牌也存在失去同步的风险。(3)基于挑战/应答模式的动态令牌属于异步令牌,由于在令牌和服务器之间除相同的算法外没有需要进行同步的条件,故能够有效的解决令牌失去同步的问题,降低对应用的影响,同时极大的增加了系统的可靠性。异步令牌使用的缺点主要是在使用时,用户需多一个输入挑战值的步骤,对于操作人员,增加了复杂度。动态口令的实现方式可以有多种,常见的是令牌(Token)方式。一个常用 的令牌需要解决:输入设备、输出设备、CPU、存储设备、电源、通信端口、晶振以及二进制和十进制的互相转换等问题。如果应用于手机,那么输入设备(键盘)、输出设备(显示屏)、通信端口(串口)、晶振、存储设备、二进制和十进制的互相转换就可以借助手机的已有部件来实现。手机令牌是一种客户端软件,用于手机或其他移动设备,利用手机或其他移动设备的硬件设备,使用与服务器相同的算法生成动态口令,具有使用简单、安全性高、低成本、无需携带额外设备、容易获取、无物流等优势,手机令牌是动态口令身份认证发展趋势。到目前为止还没有发现有关手机令牌和量子密码网络相结合的研究文献,只发现为数不多的利用量子密钥实现用户身份认证的研究文献,当前基于经典网络的手机令牌动态口令是基于单种子密钥生成的动态口令,并非真正的一次一密,随着计算机计算速度的不断发展及生成算法缺陷的被发现,其被破解的概率将会越来越大,安全性会不断降低。经典网络中每一个应用服务器的动态口令系统都是独立的,用户每使用一个应用服务器的动态口令身份认证服务,便需要管理一个动态口令客户端(持有一种动态口令硬件令牌或安装一种动态口令软件客户端),这造成了用户动态口令客户端管理的复杂性。从用户角度出发,需要尝试建立一种各应用服务器通用的动态口令终端,以降低用户对动态口令客户端管理的复杂性。技术实现要素:本发明的目的在于克服现有技术的不足,提供了一种基于量子密码网络的手机令牌身份认证系统和方法,旨在克服现有手机令牌实现动态口令的缺陷,建立一种各应用服务器通用的动态口令终端,以降低用户对动态口令客户端管理的复杂性,创建一种基于一次一密签名的同时具有便捷可靠同步机制的手机令牌身份认证系统。以下
发明内容中我们用移动终端替代手机,以泛指包括手机在内的所有可满足手机令牌计算的硬件要求的移动终端。此外,本发明中将涉及密钥相关的哈希运算消息认证码(keyed-HashMessageAuthenticationCode,HMAC),HMAC运算利用哈希算法,以一个密钥和一个消息(或称认证数据)为输入,生成一 个消息摘要作为输出;本发明中我们将使用密钥K、认证数据为D的密钥相关的哈希运算消息认证码表示为HMAC(K,D)。本发明是通过以下技术方案实现的,一种基于量子密码网络的手机令牌身份认证系统,包括量子认证中心、量子密码网络终端、应用终端、应用服务器和移动终端,所述量子认证中心和量子密码网络终端之间采用量子密钥加密通信,量子认证中心、应用服务器、应用终端之间采用经典网络通信方法通信。量子认证中心提供移动终端和应用服务器的身份认证服务,量子密码网络终端为移动终端和应用服务器提供注册及量子密钥下载服务,移动终端通过本地连接到量子密码网络终端下载量子密钥,利用下载的量子密钥生成动态口令,用于移动终端用户通过应用终端登陆应用服务器的身份认证。应用服务器到量子密码网络终端下载量子密钥,利用下载的量子密钥保证用户动态口令等数据转发的完整性,并利用下载的量子密钥用于量子认证中心验证应用服务器身份的合法性。所述移动终端和所述应用服务器首先通过量子密码网络终端向所述量子认证中心注册,注册时,所述移动终端向所述量子认证中心提供ID和移动终端IMEI码,所述应用服务器向所述量子认证中心提供ID和应用服务器域名,并均设置密码或用户的生物特征作为PIN码;然后移动终端和应用服务器通过注册ID和设置的PIN码在所述量子密码网络终端下载量子密钥,所述量子认证中心的数据库保存所述移动终端和所述应用服务器下载的量子密钥数据;所述移动终端的用户在所述应用服务器注册时,向所述应用服务器提供身份认证所使用的所述移动终端在所述量子认证中心的注册ID;所述应用服务器需要所述移动终端用户做身份认证时,所述移动终端利用在所述量子密码网络终端下载的量子密钥,计算动态口令,将所计算的动态口令通过应用终端提供给所述应用服务器,所述应用服务器将动态口令转发给所述量子认证中心以验证其正确性,在动态口令验证过程中,所述应用服务器和所述量子认证中心通过共同拥有的量子密钥数据(即所述应用服务器下载的量子密钥数据)保障通信数据的完整性,同时实现对应用服务器的身份认证,所述量子认证中心将验证结果通知应用服务器,应用服务器通知移动终端用户身份认证是否成功。其中,所述移动终端和应用服务器在所述量子密码网络终端下载量子密钥的具体方法相同,包括下述步骤:步骤11:移动终端或应用服务器连接量子密码网络终端;步骤12:量子密码网络终端发送密钥下载请求信息,包括注册ID及下载密钥长度;步骤13:量子认证中心发送身份认证请求,请求消息包括一个随机数R;步骤14:用户在量子密码网络终端上输入PIN码,量子密码网络终端获取移动终端的IMEI码或应用服务器的域名,将注册ID、IMEI码或域名、PIN码和随机数R连接运算后,计算其密钥相关的哈希运算消息认证码HMAC(QK,Data),其中QK为量子密码网络终端与量子认证中心之间的共享量子密钥,认证数据Data=ID||IMEI||PIN||R,或认证数据Data=ID||域名||PIN||R,“||”表示连接运算;步骤15:量子密码网络终端向量子认证中心发送认证码;步骤16:量子认证中心根据数据库中移动终端的ID、IMEI码和PIN码或者根据数据库中应用服务器的ID、域名和PIN码验证认证码的正确性;步骤17:如果验证成功,通知量子密码网络终端准备发送密钥数据;步骤18:量子密码网络终端将密钥数据保存到移动终端或者应用服务器,同时量子认证中心将密钥数据保存到数据库中。其中步骤18中,量子认证中心利用随机数生成器生成随机数作为密钥数据发送给量子密码网络终端;或者量子密码网络终端将与量子认证中心之间的共享量子密钥作为密钥数据保存到移动终端或者应用服务器,同时量子认证中心将该共享量子密钥作为密钥数据保存到数据库中。其中,所述移动终端利用在所述量子密码网络终端下载的量子密钥,计算动态口令的具体方法包括:移动终端按照每次生成动态口令所需的数据长度,将所下载的量子密钥在逻辑上划分为多个单位量子密钥,将所划分的单位量子密钥依次编号,移动终端用户登录应用服务器时,移动终端动态口令生成程序使用一个单位量子密钥计算需要认证的关键信息(即认证数据)的密钥相关的哈希运算消息认证码HMAC(K,Data),所述关键信息包括:移动终端在量子认证中心的注册ID和/或移动终端IMEI码、用户通过移动终端输入的应用服务器域名SDN,其中K为其中一编号所对应的单位量子密钥数据,认证数据Data=ID||IMEI||SDN,或认证数据Data=ID||SDN,或认证数据Data=IMEI||SDN,“||”表示连接运算,将所 述计算的消息认证码进行数据处理,最后将单位量子密钥编号和消息认证码的处理数据连接合并作为动态口令,同时将本次生成动态口令所使用的单位量子密钥标记为已使用。进一步的,所述移动终端在所述应用服务器做身份认证的具体流程如下:步骤21:所述移动终端利用在所述量子密码网络终端下载的量子密钥计算动态口令,移动终端和量子认证中心所共享的量子密钥数据采用相同的划分和编号方法,即双方具有相同编号的单位量子密钥所对应的密钥数据相同;步骤22:用户在应用终端输入动态口令,应用终端将动态口令发送到应用服务器;步骤23:应用服务器从数据库中获取移动终端的注册ID,利用在量子密码网络终端下载的密钥数据,计算应用服务器域名、移动终端的注册ID、动态口令的密钥相关的哈希运算消息认证码(HMAC);步骤24:应用服务器向量子认证中心发送验证请求信息,包括应用服务器域名、移动终端的注册ID、动态口令及所述密钥相关的哈希运算消息认证码;步骤25:所述量子认证中心接收到应用服务器发送的验证请求信息,根据动态口令中的单位量子密钥编号,获取在量子认证中心存储的与相应注册ID的移动终端间共享的量子密钥数据中对应的单位量子密钥,首先确定此单位量子密钥是否已经被使用过,如果被使用过,则动态口令验证失败;如果没有被使用过,则采用与所述移动终端相同的计算动态口令的算法,使用此单位量子密钥计算相应关键信息的密钥相关的哈希运算消息认证码,并按照与移动终端相同的数据处理方法对计算所得的消息认证码进行数据处理,将最后得到的处理数据与动态口令中除单位量子密钥编号信息以外的数据进行对比,若对比结果一致,则用户身份认证成功,同时标记单位量子密钥编号所对应的单位量子密钥已被使用,否则用户身份认证失败;所述的相应关键信息包括:移动终端在量子认证中心的注册ID和/或移动终端IMEI码、用户通过移动终端输入的应用服务器域名;步骤26:量子认证中心将验证结果通知应用服务器,采用与应用服务器的共享密钥数据保障通信数据的完整性;步骤27:应用服务器通知用户身份认证是否成功。所述步骤22中应用终端采用SSL加密通信协议向应用服务器发送动态口 令。优化的,以上所叙述的使用的密钥相关的哈希运算消息认证码的算法为HMAC-SHA1算法,单位量子密钥的划分长度为256bit。优化的,所述动态口令采用多进制表示方法。该系统可以包含任意多个应用服务器,一个手机令牌客户端可实现在任意多个应用服务器的身份认证,改变了当前手机令牌客户端与应用服务器一对一的应用现状,提高了用户使用的便捷性。本发明还提供了一种使用上述基于量子密码网络的手机令牌身份认证系统进行身份认证的方法,包括以下步骤:步骤100:移动终端和应用服务器通过量子密码网络终端向量子认证中心注册,注册时,所述移动终端向所述量子认证中心提供ID和移动终端IMEI码,所述应用服务器向所述量子认证中心提供ID和应用服务器域名,并均设置密码或用户的生物特征作为PIN码;步骤200:移动终端和应用服务器通过注册ID和设置的PIN码在所述量子密码网络终端下载量子密钥,所述量子认证中心的数据库保存所述移动终端和所述应用服务器下载的量子密钥数据;步骤300:所述移动终端的用户在所述应用服务器注册,向所述应用服务器提供身份认证所使用的所述移动终端在所述量子认证中心的注册ID;步骤400:所述移动终端用户在所述应用服务器做身份认证时,所述移动终端利用在所述量子密码网络终端下载的量子密钥,计算动态口令,将所计算的动态口令通过应用终端提供给所述应用服务器,所述应用服务器将动态口令转发给所述量子认证中心以验证其正确性,在动态口令验证过程中,所述应用服务器和所述量子认证中心通过共同拥有的量子密钥数据(即所述应用服务器下载的量子密钥数据)保障通信数据的完整性,同时实现对应用服务器的身份认证,所述量子认证中心将验证结果通知应用服务器,应用服务器通知移动终端用户身份认证是否成功。其中,所述步骤200中,所述移动终端和应用服务器在所述量子密码网络终端下载量子密钥的具体方法相同,包括下述步骤:步骤210:移动终端或应用服务器连接量子密码网络终端;步骤220:量子密码网络终端发送密钥下载请求信息,包括注册ID及下载 密钥长度;步骤230:量子认证中心发送身份认证请求,请求消息包括一个随机数R;步骤240:用户在量子密码网络终端上输入PIN码,量子密码网络终端获取移动终端的IMEI码或应用服务器的域名,将注册ID、IMEI码或域名、PIN码和随机数R连接运算后,计算其密钥相关的哈希运算消息认证码HMAC(QK,Data),其中QK为量子密码网络终端与量子认证中心之间的共享量子密钥,认证数据Data=ID||IMEI||PIN||R,或认证数据Data=ID||域名||PIN||R,“||”表示连接运算;步骤250:量子密码网络终端向量子认证中心发送认证码;步骤260:量子认证中心根据数据库中移动终端的ID、IMEI码和PIN码或者根据数据库中应用服务器的ID、域名和PIN码验证认证码的正确性;步骤270:如果验证成功,通知量子密码网络终端准备发送密钥数据;步骤280:量子密码网络终端将密钥数据保存到移动终端或者应用服务器,同时量子认证中心将密钥数据保存到数据库中。其中步骤280中,量子认证中心利用随机数生成器生成随机数作为密钥数据发送给量子密码网络终端;或者量子密码网络终端将与量子认证中心之间的共享量子密钥作为密钥数据保存到移动终端或者应用服务器,同时量子认证中心将该共享量子密钥作为密钥数据保存到数据库中。其中,所述步骤400中,所述移动终端利用在所述量子密码网络终端下载的量子密钥计算动态口令的具体方法包括:移动终端按照每次生成动态口令所需的数据长度,将所下载的量子密钥在逻辑上划分为多个单位量子密钥,将所划分的单位量子密钥依次编号,移动终端用户登录应用服务器时,移动终端动态口令生成程序使用一个单位量子密钥计算需要认证的关键信息(即认证数据)的密钥相关的哈希运算消息认证码HMAC(K,Data),所述关键信息包括:移动终端在量子认证中心的注册ID和/或移动终端IMEI码、用户通过移动终端输入的应用服务器域名SDN,其中K为其中一编号所对应的单位量子密钥数据,认证数据Data=ID||IMEI||SDN,或认证数据Data=ID||SDN,或认证数据Data=IMEI||SDN,“||”表示连接运算,将所述计算的消息认证码进行数据处理,最后将单位量子密钥编号和消息认证码的处理数据连接合并作为动态口令,同时将本次生成动态口令所使用的单位量子 密钥标记为已使用。进一步的,所述步骤400中,移动终端在所述应用服务器做身份认证的具体流程如下:步骤410:所述移动终端利用在所述量子密码网络终端下载的量子密钥计算动态口令,移动终端和量子认证中心所共享的量子密钥数据采用相同的划分和编号方法,即双方具有相同编号的单位量子密钥所对应的密钥数据相同;步骤420:用户在应用终端输入动态口令,应用终端将动态口令发送到应用服务器;步骤430:应用服务器从数据库中获取移动终端的注册ID,利用在量子密码网络终端下载的密钥数据,计算应用服务器域名、移动终端的注册ID、动态口令的密钥相关的哈希运算消息认证码(HMAC);步骤440:应用服务器向量子认证中心发送验证请求信息,包括应用服务器域名、移动终端的注册ID、动态口令及所述密钥相关的哈希运算消息认证码;步骤450:所述量子认证中心接收到应用服务器发送的验证请求信息,根据动态口令中的单位量子密钥编号,获取在量子认证中心存储的与相应注册ID的移动终端间共享的量子密钥数据中对应的单位量子密钥,首先确定此单位量子密钥是否已经被使用过,如果被使用过,则动态口令验证失败;如果没有被使用过,则采用与所述移动终端相同的计算动态口令的算法,使用此单位量子密钥计算相应关键信息的密钥相关的哈希运算消息认证码,并按照与移动终端相同的数据处理方法对计算所得的消息认证码进行数据处理,将最后得到的处理数据与动态口令中除单位量子密钥编号信息以外的数据进行对比,若对比结果一致,则用户身份认证成功,同时标记单位量子密钥编号所对应到单位量子密钥已被使用,否则用户身份认证失败;所述的相应关键信息包括:移动终端在量子认证中心的注册ID和/或移动终端IMEI码、用户通过移动终端输入的应用服务器域名;步骤460:量子认证中心将验证结果通知应用服务器,采用与应用服务器的共享密钥数据保障通信数据的完整性;步骤470:应用服务器通知用户身份认证是否成功。所述步骤420中应用终端采用SSL加密通信协议向应用服务器发送动态口令。优化的,以上所叙述的使用的密钥相关的哈希运算消息认证码的算法为HMAC-SHA1算法,单位量子密钥的划分长度为256bit。优化的,所述动态口令采用多进制表示方法。本发明相比现有技术具有以下优点:1、本方案是QKD系统与当前手机令牌系统的一个有机结合,使用量子密钥,采用一次一密签名方法,生成的动态口令在计算上具有无条件安全性,不会随着计算机计算速度的不断发展及生成算法缺陷的被发现而被破解。2、用户的动态口令通过应用服务器的转发,由量子认证中心验证动态口令的正确性;同时应用服务器转发过程中通过与量子认证中心的共享密钥,由量子认证中心确认其合法身份,保证了验证的安全性。3、本方案采用一种全新的基于单位量子密钥编号的动态口令同步机制,动态口令中直接包含了同步信息(单位量子密钥编号),能够保证移动终端和量子认证中心密钥使用的高度同步性,从而保证了动态口令验证过程中的高度同步性,因此避免了现有动态口令同步机制中的各种缺陷。4、用户通过使用一个手机令牌客户端可实现在任意多个应用服务器的身份认证,改变了当前手机令牌客户端与应用服务器一对一的应用现状,提高了用户使用的便捷性。5、与现有动态口令不同,本方案的动态口令生成过程中,用户手工添加了关键信息,动态口令在身份认证的同时,还包含了对关键信息的认证;将应用服务器域名作为其中的关键信息,使一个动态口令只能用于指定的应用服务器,消除了动态口令被窃取后重复使用于多个应用服务器的安全隐患。6、在动态口令的表示方面,本方案采用远超十进制的多进制表示方法,在不增加信息位的情况下,增加了动态口令的信息量。附图说明图1是本发明基于量子密码网络的手机令牌身份认证系统的结构示意图;图2是基于量子密码网络的手机令牌身份认证系统实现的流程图;图3是移动终端通过量子密码网络终端在量子认证中心的注册流程图;图4是应用服务器通过量子密码网络终端在量子认证中心的注册流程图;图5为移动终端通过量子密码网络终端下载量子密钥的流程图;图6为应用服务器通过移动存储器到量子密码网络终端下载密钥数据的流 程图;图7为移动终端用户通过应用终端登录应用服务器的身份认证流程图;图8是动态口令的生成流程示意图;图9是动态口令的验证流程示意图。具体实施方式下面结合附图对本发明实施例基于量子密码网络的手机令牌身份认证系统进行详细描述。应当明确,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本实施例构建了一个具体的基于量子密码网络的手机令牌身份认证系统,并给出了系统实现流程的一种具体协议。系统结构如图1所示,包括量子认证中心、量子密码网络终端、移动终端、应用终端、应用服务器和移动存储器。应用服务器可以为一个或任意多个。量子密码网络终端与量子认证中心之间采用量子密钥加密通信。量子认证中心、应用服务器、应用终端之间采用经典网络通信方法通信。系统各组成部分的功能简述如下:量子认证中心提供移动终端和应用服务器的身份认证服务,还可以通过短信提醒移动终端身份认证结果。量子密码网络终端为移动终端和应用服务器提供注册及量子密钥下载服务。移动终端通过本地连接到量子密码网络终端下载量子密钥,利用下载的量子密钥生成动态口令,用于移动终端用户通过应用终端登陆应用服务器的身份认证。应用服务器通过移动存储器到量子密码网络终端下载量子密钥,利用下载的量子密钥保证用户动态口令数据转发的安全性,并利用下载的量子密钥用于量子认证中心验证应用服务器身份的合法性。该系统功能实现的流程图如图2所示,包括如下过程:1、移动终端和应用服务器在量子认证中心的注册;2、移动终端和应用服务器密钥的下载;3、移动终端用户通过应用终端在应用服务器的账号的注册;4、移动终端用户在应用终端利用手机令牌在应用服务器的身份认证;5、移动终端和应用服务器密钥的更新。我们将各个实现过程分别详述如下,并给出了各个过程实现的数据通信协议的具体实例:1、移动终端和应用服务器在量子认证中心(以下简称QCA)的注册过程。图3是移动终端通过量子密码网络终端在QCA的注册流程图,从图3中可以清楚的了解移动终端在QCA注册的每个步骤。移动终端通过量子密码网络终端实现在QCA的注册,注册过程中量子密码网络终端和QCA的通信信息均使用量子密钥进行加密传输,以保证注册信息的安全性。优选地,为了保证注册信息的无条件安全性,使用量子密钥进行一次一密方式加密。在注册过程中移动终端用户(以下简称用户)首先设置要注册的用户名(ID),并将所设置的ID和移动终端IMEI码(移动通讯国际识别码)提供给量子密码网络终端,然后使用密码或用户的生物特征(比如指纹或虹膜等)作为移动终端到量子密码网络下载量子密钥的PIN码(个人识别码),QCA保存注册ID、IMEI码和PIN码,用于移动终端下载密钥及身份认证,具体步骤如下:步骤S11:用户设置ID,通过量子密码网络终端向QCA发送注册请求,请求消息包括ID和移动终端的IMEI码;步骤S12:QCA接受请求,并等待用户设置密码或用户的生物特征,作为PIN码;步骤S13:用户输入并确认PIN码,量子密码网络终端将其发送给QCA;步骤S14:QCA回应量子密码网络终端用户注册成功,并保存ID、移动终端IMEI码和PIN码到数据库;步骤S15:用户保存PIN码,并将ID保存到移动终端。图4是应用服务器通过量子密码网络终端在QCA的注册流程图。应用服务器在QCA的注册流程与移动终端的注册流程相似。与移动终端注册的不同之处在于,应用服务器由应用服务器管理员通过量子密码网络终端实现注册,在发送注册请求时的发送信息是ID和应用服务器域名。2、移动终端和应用服务器密钥的下载。图5为移动终端通过量子密码网络终端下载密钥的流程图。移动终端本地 连接到量子密码网络终端,通过注册ID和PIN码认证获得QCA发送的密钥数据。在移动终端密钥下载的过程中量子密码网络终端和QCA之间的通信信息均使用量子密钥进行加密传输,以保证通信信息的安全性。优选地,为了保证通信信息的无条件安全性,使用量子密钥进行一次一密方式加密。下载完毕后,QCA保存移动终端的下载密钥到数据库。具体步骤如下:步骤S21:移动终端通过USB接口连接量子密码网络终端(以下简称QT);步骤S22:QT发送密钥下载请求信息,包括移动终端ID及下载密钥长度;步骤S23:QCA发送移动终端身份认证请求,请求消息包括一个随机数R;步骤S24:移动终端用户在QT上输入PIN码,QT获取移动终端的IMEI码,利用移动终端ID、IMEI码、PIN码和随机数R计算移动终端身份认证码;步骤S25:QT向QCA发送认证码;步骤S26:QCA根据数据库中移动终端的ID、IMEI码和PIN码验证认证码的正确性;步骤S27:如果验证成功,则通知QT准备发送密钥数据相关信息;步骤S28:QCA将与QT之间共享的量子密钥的索引信息发送给QT,QT根据该索引信息将与QCA之间相应的共享量子密钥作为密钥数据保存到移动终端,同时QCA将相应的共享量子密钥作为密钥数据保存到数据库中。步骤S24中,认证码的计算方法为将注册ID、IMEI码、PIN码及随机数R连接运算后,计算其密钥相关的哈希运算消息认证码HMAC(QK,Data),其中QK为量子密码网络终端与量子认证中心之间的共享量子密钥,认证数据Data=ID||IMEI||PIN||R,“||”表示连接运算。步骤S28中,QCA也可以利用随机数生成器生成随机数作为密钥数据发送给QT,QT将密钥数据保存到移动终端,同时QCA将密钥数据保存到数据库中。为了描述上的方便,本发明也将此种密钥数据称为量子密钥。应用服务器通过移动存储器到量子密码网络终端下载密钥数据,下载流程与移动终端相似,具体流程如图6所示。与移动终端下载密钥的不同之处在于,应用服务器事先需将其在量子认证中心的注册ID以及应用服务器域名发送给移动存储器,QT和QCA分别根据应用服务器ID、应用服务器域名、PIN码和随机数R计算和验证应用服务器身份认证码,认证数据Data=ID||域名||PIN||R,移动存储器事后需将其下载的密钥数据发送给应用服务器。3、移动终端用户通过应用终端在应用服务器的账号的注册。移动终端用户通过公共网络上的应用终端向应用服务器注册应用账号,注册过程中移动终端用户向应用服务器提供移动终端在QCA的注册ID,应用服务器将其保存于应用服务器数据库中。4、移动终端用户在应用终端利用手机令牌在应用服务器的身份认证。图7为移动终端用户通过应用终端登录应用服务器的身份认证流程图。移动终端生成用于用户身份认证的动态口令,应用终端将动态口令发送到应用服务器,应用服务器将动态口令转发给量子认证中心验证其正确性,根据验证结果确定登录是否成功。应用服务器和量子认证中心之间的通信,通过应用服务器在量子密码网络终端的下载密钥计算的HMAC码保证信息的完整性,同时量子认证中心通过验证HMAC码的正确性也验证了应用服务器身份的合法性。具体步骤如下:步骤S31:移动终端生成动态口令;步骤S32:用户在应用终端输入动态口令,应用终端将动态口令发送到应用服务器(AS);步骤S33:AS从数据库中获取移动终端ID,利用在量子密码网络终端下载的密钥数据,计算AS域名、移动终端ID、动态口令的HMAC(密钥相关的哈希运算消息认证码);步骤S34:AS向QCA发送验证请求信息,包括AS域名、移动终端ID、动态口令及所述HMAC;步骤S35:QCA首先验证HMAC的正确性,如HMAC正确,则验证动态口令的正确性;步骤S36:QCA将验证结果通知AS,采用与AS的共享密钥数据保障通信数据的完整性,同时还可以通过短信提醒移动终端身份认证结果;步骤S37:AS向应用终端发送用户身份认证是否成功的信息。所述步骤S32中应用终端采用SSL加密通信协议向AS发送动态口令。5、移动终端和应用服务器密钥的更新。移动终端和应用服务器通过量子密码网络终端重新下载量子密钥,其流程等同于上述步骤2中的移动终端和应用服务器密钥的下载流程。实施例二本实施例具体说明移动终端动态口令的生成及量子认证中心对用户动态口令的验证方法。动态口令的生成流程如图8所示,分为如下几个步骤:步骤一:单位量子密钥划分编号。移动终端将下载的量子密钥,按照每次生成动态口令所需的数据长度在逻辑上将其划分为单位量子密钥,将单位量子密钥顺次编号;量子认证中心采用相同的划分编号方法,将其与移动终端间相应的共享量子密钥进行划分编号。移动终端和量子认证中心间对应的单位量子密钥具有相同的编号。在本实施例中,所选用的密钥相关的哈希运算消息认证码算法为HMAC-SHA1算法。HMAC-SHA1算法每次所使用的密钥长度为256bit,因此单位量子密钥的划分长度为256bit。如果移动终端下载的密钥量为1MB(1024*1024*8bit),则可以划分为32768个单位量子密钥,正常使用可以生成32768个动态口令。将每个单位量子密钥在逻辑上顺次编号,例如,使用编号COUNTER进行索引。量子认证中心按照相同的方式,将其与移动终端间相应的共享量子密钥进行划分编号。步骤二:计算消息认证码。移动终端用户通过应用终端登录应用服务器需要使用动态口令时,移动终端动态口令生成程序使用一个单位量子密钥,计算需要认证的关键信息的密钥相关的哈希运算消息认证码。所述关键信息包括:移动终端在量子认证中心的注册ID和/或移动终端IMEI码;用户通过移动终端输入的应用服务器域名SDN。其中,应用服务器域名SDN由用户通过移动终端的输入设备告知移动终端。例如,使用编号COUNTER所对应的单位量子密钥K,计算需要认证的关键信息(即认证数据)的密钥相关的哈希运算消息认证码HMAC(K,Data),其中认证数据Data=ID||IMEI||SDN,或认证数据Data=ID||SDN,或认证数据Data=IMEI||SDN,“||”表示连接运算。在本实施例中,所选用的密钥相关的哈希运算消息认证码算法为HMAC-SHA1算法,最后生成的消息认证码为160bit的二进制数据。步骤三:处理消息认证码数据,生成动态口令。最后生成的动态口令由两部分信息组成:一是生成此动态口令所使用的单位量子密钥的编号,二是消息认证码信息。由于动态口令需要用户手动输入,所以现有动态口令的长度一般为6到8位数字或字母,以6到8位十进制数字居多。由于本专利方案中单位量子密钥的编号占用了一些位数,为了不增加或不采用太长位数的动态口令,同时又不降低动态口令所包含的信息量,本专利采用远超十进制的多进制来表示动态口令;同时为了照顾用户的动态口令输入习惯,结合字母和数字来表示动态口令。在本实施例中,采用62进制,表1为62进制表示符号与十进制数的一个对应关系的实例。在表1中,数字0~9对应十进制0~9,小写字母a~z对应十进制10~35,大写字母A~Z对应十进制36~61。按照表1中的对应关系,可进行62进制数与十进制数之间的换算,从而实现与其他进制数之间的换算。比如62进制数Az9换算为十进制数为:36*62^2+35*62+9=140563。反之,利用表1,十进制数也可以换算为62进制数。例如,采用62进制时,用三个信息位即可表示62^3-1=238327个单位量子密钥编号。按本实施例中单位量子密钥的划分长度为256bit计算,换算为密钥量大约为7.27MB。如果用十进制来表示这些单位量子密钥编号,则需要用6位。表162进制表示符号与十进制数的对应关系62进制符号十进制数62进制符号十进制数00v3111w3222x3333y3444z3555A3666B3777C3888D3999E40a10F41b11G42c12H43d13I44e14J45f15K46g16L47h17M48i18N49j19O50k20P51l21Q52m22R53n23S54o24T55p25U56q26V57r27W58s28X59t29Y60u30Z61动态口令中的消息认证码信息也同样使用62进制表示。假设最后生成的动态口令为8位,那么用前3位表示单位量子密钥编号,用后5位表示消息认证码信息。62进制的5个信息位可以表示的最大十进制数为62^5-1=916132831,62进制的5个信息位可以表示任意的8位十进制数,62进制的5个信息位可以表示任意的29位的二进制数(2^29<916132831<2^30)。所述步骤二中采用HMAC-SHA1算法,生成的消息认证码为160bit的二进制数据,在160bit的二进制数据中截取其中的29位,将其转化为5位的62进制数(不足5位,则高位补0),作为动态口令中的消息认证码信息。动态口令的信息位越高其保护的信息量也越大,其安全性也越高,因此在 本实施例中,按照用户对安全等级的选择,生成不同位数的消息认证码信息。例如,给用户设定三个安全等级,其信息位数的对应关系如表2所示:安全级别低、中、高对应的62进制消息认证码信息的位数分别为3、5、7,其可以表示的信息比特(可表示的二进制消息认证码信息的位数)分别为17、29、41,若使用3位62进制数来表示单位量子密钥编号,则最后生成的62进制的动态口令信息位数分别为6、8、10。用户所选择的安全等级不需要跟量子认证中心提前协商,量子认证中心根据动态口令的位数即可获知用户所选择的安全等级。所述步骤二中采用HMAC-SHA1算法,生成的消息认证码为160bit的二进制数据,移动终端按照用户选择的安全等级低、中、高分别截取其中的17、29、41位,然后再将截取数据转换为62进制数据,作为动态口令中的消息认证码信息。表2信息位数的对应关系安全等级低中高认证码62进制信息位数357认证码二进制信息位数172941动态口令信息位数6810动态口令的验证流程如图9所示,详述如下:量子认证中心接收到应用服务器转发的动态口令,同时从应用服务器获得用户所使用的移动终端在量子认证中心的注册ID及应用服务器域名SDN。根据动态口令中的单位量子密钥编号,获取在量子认证中心存储的与相应注册ID的移动终端间共享的量子密钥数据中对应的单位量子密钥。首先确定此单位量子密钥是否已经被使用过,如果被使用过,则动态口令验证失败;如果没有被使用过,则采用与所述移动终端相同的计算动态口令的算法,使用此单位量子密钥计算相应关键信息的密钥相关的哈希运算消息认证码,并按照与所述移动终端相同的数据处理方法对计算所得的消息认证码进行数据处理。将最后得到的处理数据与动态口令中除单位量子密钥编号信息以外的数据进行对比,若对比结果一致,则动态口令验证成功,即用户身份认证成功,同时标记单位量子密钥编号所对应的单位量子密钥已被使用;若对比结果不一致,则动态口令验证失败,用户身份认证失败。所述关键信息包括:移动终端在量子认证中心的注册ID和/或移动终端IMEI码;用户通过移动终端输入的应用服务器域名SDN。以上两个实施例中使用了移动存储器进行中转,即应用服务器通过移动存储器到量子密码网络终端下载量子密钥,如果量子密码网络终端部署在应用服务器处,则可以不需要移动存储器,应用服务器通过本地连接直接到量子密码网络终端下载量子密钥。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1