一种身份认证服务器和身份认证令牌的制作方法

文档序号:14559503阅读:370来源:国知局
一种身份认证服务器和身份认证令牌的制作方法

本发明属于身份认证安全技术领域,具体涉及一种身份认证服务器和身份认证令牌。



背景技术:

随着全球能源互联网的不断发展,企业内部和企业之间的各类业务越来越多的依靠信息系统和网络平台展开。这种新形势对于人资管理、财务管理、生产管理、企业管理等电力企业的资源管理模式提出了越来越高的要求。电力企业信息系统中的核心业务,如人资业务中的人才引进涉及的人力资源的聘用、关键人才的企业间联动,财务管理中关键业务在企业内、企业间的财务往来业务,生产管理中的相关服务类和物资类的重点往来业务,企业内部、企业间的重点任务、重点专项资金的分配与下达,都是企业的重点关注点,客观上需要通过一定的手段确保相关内容的不可篡改性和不可抵赖性。

保证企业员工有效控制处理企业的核心业务,并且处理过程不被篡改、不可抵赖,企业内、企业间优质资源在合法范围内通过便捷的信息化手段被监控,且在监控同时不受监控技术权限的影响,作为管理企业资源重点环节的技术手段成为能源互联网下的关键诉求。

fido(线上快速身份认证)是fido联盟提出的一套开放、可扩展、可协同的标准协议,旨在提供一个高安全性、跨平台兼容性、极佳用户体验与用户隐私保护的在线身份认证技术架构,来改变现有在线认证方式,减少认证用户时对密码的依赖。fido有两套规范:u2f(第二因子协议)和uaf。u2f是在现有的用户名+密码认证的基础之上,增加一个更安全的认证因子用于登录认证。用户可以像以前一样通过用户名和密码登录服务,服务会提示用户出示一个第二因子设备来进行认证。u2f可以使用简单的密码(比如4个数字的pin)而不牺牲安全性。

现有的fidou2f身份令牌有可能被破解,存在被恶意攻击者复制、克隆的可能,导致身份认证系统安全性的巨大风险。为了确保身份令牌的不可复制性,需引入新的技术。puf(物理不可克隆技术)是一种依赖芯片特征的硬件函数实现电路,具有唯一性和随机性,通过提取芯片制造过程中必然引入的工艺参数偏差,实现激励信号与产生的不可预测的响应信号唯一对应的函数功能。在fidou2f身份令牌中集成puf并应用其功能是一个值得探索的方向。

另一方面,随机数的使用在身份认证系统中具有重要作用。不完善的随机数会导致攻击者能够对身份认证协议执行重放、交错等攻击,致使系统安全性出现巨大风险。为解决这一问题,应该在身份认证令牌中使用真随机数发生器。



技术实现要素:

为解决现有技术的不足,本发明的目的在于提供一种身份认证服务器和身份认证令牌,解决了身份认证过程中的令牌被复制、身份被冒用的问题,以确保持有者相关操作的不可篡改性以及不可抵赖性。

为了实现上述目标,本发明采用如下的技术方案:一种身份认证服务器和身份认证令牌,其特征是,身份认证服务器,包括相互连接的标准fido服务器和用于存储密钥的存储空间,即数据库;

身份认证令牌,基于物理不可克隆与fidou2f协议,包括u2f模块、与u2f模块分别相连的puf模块、trng模块、usb模块、交互模块,以及与交互模块连接的触摸模块;

u2f模块用于实现加密算法、人机交互、和外界通信;

puf模块为物理不可克隆函数模块,用来产生根密钥,与u2f模块以挑战应答方式通信;

trng模块为真随机数发生器;

usb模块的用于与pc端以人机接口设备的形式进行通信,用于将接收pc端发送过来的数据传给u2f模块,以及将u2f模块处理后的数据传给pc端;

触摸模块为触摸感应模块,包括一个触摸感应模组和一个led灯,触摸感应模组和led灯分别与交互模块连接,注册或认证时,led灯闪烁提示用户触摸,用户手按触摸模组,进行确认,防止非主动操作以及用户误操作;

交互模块为人机交互信息处理模块,其与触摸感应模组相连,驱动触摸感应模组以及接受用户对触摸模块的操作信息传输给u2f模块,与led灯相连,用于驱动led灯;

身份令牌与客户端浏览器进行交互,客户端浏览器又与身份认证服务器中的fido服务器进行交互。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述身份认证令牌的验证过程通过数字签名实现,其中涉及到如下密钥:

①身份认证令牌的令牌私钥和令牌证书,用于验证身份令牌是否合法;令牌私钥和证书预装入身份令牌u2f模块数据库中,在注册时由令牌将证书发送给fido服务器;

②身份认证令牌的根密钥,用于生成加密的密钥句柄;每次使用根密钥前,u2f模块和puf模块要执行挑战-应答协议,协议正确执行后,u2f模块才接收puf模块发来的根密钥值;

③签名所使用的公私密钥对,这些密钥在身份认证令牌中生成,生成过程中使用物理不可克隆函数、真随机数发生器模块。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述身份认证服务器基于fido协议搭建,并在标准fido服务器之上额外存储了令牌证书、签名公钥、句柄,能够在收到认证或注册请求后生成挑战数据并对令牌返回的应答数据进行验证返回验证结果;所述令牌私钥、令牌证书、根密钥存储在身份认证令牌中。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述身份认证令牌是硬件设备,不直接连接到网络上,通过客户端浏览器与fido服务器交互。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述身份认证令牌支持两种操作:注册、认证;用户第一次使用时调用注册方法,之后使用调用认证方法;其中注册操作在身份认证令牌中建立签名公钥和私钥密钥对,并在fido服务器注册用户的身份及公钥和句柄,用于后续的认证操作;认证操作中令牌需要向fido服务器证明自己持有合法的私钥。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述注册方法包括步骤:

(1)当用户在客户端浏览器请求注册时,在客户端浏览器输入注册用户名,发送给fido服务器,fido服务器生成一个随机数a,并将该随机数a连同用户名发送给客户端浏览器,使用随机数可以有效地防止重放攻击;

(2)客户端浏览器检验和fido服务器的tls连接,确定是合法的fido服务器后,客户端生成注册挑战参数列表{tls连接数据tlsdata、客户端浏览器随机生成的一个会话随机参数sessionrandomvalue、随机数a、用户名},客户端进一步对fido服务器url进行哈希运算,得到url哈希值;

(3)客户端浏览器将注册挑战参数列表和url哈希值通过与计算机usb接口相连接的身份认证令牌的usb接口,经usb模块发送给u2f模块;

(4)身份认证令牌的u2f模块调用数字签名密钥生成算法,生成一对签名公私密钥对;签名公钥和签名私钥是以客户端登录会话信息和随机数a作为参数,通过密钥生成算法计算出来的,其中登录会话信息包括fido服务器url、用户名、tlsdata、sessionrandomvalue;

(5)u2f模块通过挑战应答协议调用puf模块生成自己的根密钥,并以根密钥为加密密钥,签名私钥和fido服务器url哈希值作为明文,调用对称加密算法,加密后生成密钥句柄;根密钥长度为128比特;

(6)身份认证令牌的u2f模块调用数字签名算法,以自己的签名私钥为密钥,对列表{密钥句柄、签名公钥、注册挑战参数列表}进行签名,产生签名值;

(7)u2f模块经usb模块,通过usb接口将密钥句柄、签名公钥、注册挑战参数列表、签名值、令牌证书发送给客户端浏览器,客户端浏览器再将其发送给fido服务器;

(8)fido服务器从收到的消息中提取出令牌证书,首先验证令牌证书的合法性;如果合法,则提取令牌证书中令牌公钥,并调用验签算法,使用该令牌公钥,验证签名的合法性;如果合法则fido服务器存储“用户名、签名公钥、密钥句柄”,并通知客户端浏览器注册成功;否则通知客户端注册失败。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述步骤(4)、(5)、(6)中的密钥生成算法、对称加密算法、哈希算法和数字签名有两种模式,一为国密算法,包括sm2、sm3、sm4算法;二为标准fido算法包括rsa、ecdsa、sha256、aes,算法内置于u2f模块中。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述认证方法包括步骤:

(1)当fido服务器收到用户认证请求后,查找数据库,找到该用户的注册密钥句柄,同时服务器生成一个随机数b,并将该随机数b连同注册密钥句柄一起发送给客户端;

(2)客户端浏览器检验和服务器的tls连接,确定是合法的服务器后,获取tls连接数据tlsdata,并对列表{fido服务器url,随机数b,tlsdata}执行哈希运算,得到哈希运算的结果,作为认证挑战值;客户端进一步对fido服务器url进行哈希运算,得到url的哈希值;

(3)客户端浏览器将认证挑战值、url哈希值、注册密钥句柄通过usb接口,经usb模块,发送给身份认证令牌的u2f模块;

(4)身份认证令牌上触摸模块的led灯亮起后,用户通过触摸亮灯旁的触摸感应模组进行物理确认,交互模块在收到触摸确认后会将确认信息传输到u2f模块;

(5)u2f模块的认证签名计数器加1,这样做可以记录执行身份认证操作的次数;

(6)u2f模块以挑战应答协议调用puf模块生成自己的根密钥,使用根密钥调用对称加密算法,对密钥句柄进行解密,得到url哈希值和签名私钥;

(7)身份认证令牌的u2f模块验证解密句柄得到的url哈希值和步骤(3)客户端发来的url哈希值是否一致,如果不一致则中断执行,认证失败,如果一致则执行下一步;

(8)u2f模块调用trng真随机数发生器产生本地随机数c;

(9)u2f模块使用步骤(6)解密句柄得到的签名私钥,调用数字签名算法对{认证挑战值,认证签名计数器值,本地随机值c}进行数字签名得到认证签名值;

(10)身份认证令牌的u2f模块将认证挑战值、认证签名值、认证签名计数器值、本地随机值c发送给客户端浏览器,由客户端浏览器转发给fido服务器;fido服务器查找用户的签名公钥;并使用该签名公钥调用验签算法,验证签名的合法性;如果合法则用户身份认证成功;否则通知客户端认证失败。

前述的一种身份认证服务器和身份认证令牌,其特征是,所述步骤(6)、(2)、(9)对称加密算法、哈希算法和数字签名有两种模式,一为国密算法,包括sm2、sm3、sm4算法;二为标准fido算法,包括rsa、ecdsa、sha256、aes,算法内置于u2f模块中。

本发明所达到的有益效果:

采用物理不可克隆函数与fido相结合,以物理不可克隆函数保证令牌的唯一性,不可复制性,以fido保证用户身份的准确性以及所进行操作的不可篡改性、不可抵赖性;

通过第二因子验证解决传统账号密码验证存在的密码泄露等隐患;

通过u2f协议保证令牌的可扩展性和普适性,实现多系统统一身份认证;

通过物理不可克隆函数保证令牌的不可克隆性;

通过真随机数发射器保证用户认证过程挑战应答机制的随机性、不可重现性。

附图说明

图1是本发明身份认证服务器的结构示意图;

图2是本发明身份认证令牌的结构示意图;

图3是签名秘钥生成流程图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

如图1所示,一种身份认证服务器,包括相互连接的标准fido服务器和用于存储密钥的存储空间,即数据库。

如图2所示,一种身份认证令牌,基于物理不可克隆与fidou2f协议,包括u2f模块、与u2f模块分别相连的puf模块、trng模块、usb模块、交互模块,以及与交互模块连接的触摸模块、led灯;

u2f模块功能主要是实现加密算法、人机交互、和外界通信等。u2f模块内有存储空间、加解密算法、认证计数器。u2f模块以国民认证z8d256u-2为例,但不局限于此;

puf模块为物理不可克隆函数模块,其内部集成了物理不可克隆函数,能够在收到激励后利用其内部物理构造的随机差异输出一个不可预测的响应,来保证身份令牌的不可克隆性。用来产生根密钥,与u2f模块以挑战应答方式通信。puf模块内含一块puf芯片,以intrinsicid公司quiddikey-filex-e芯片为例,但不局限于此;

trng模块为真随机数发生器,其利用物理方法实现随机数发生,无法猜测其产生的随机数结果,产生过程永不具有周期性,以保证每次操作的独立性。trng模块内含一块trng芯片,以idquantique公司的quantisais31芯片为例,但不局限于此;

usb模块的功能是与pc端以usb-hid(humaninterfacedevice,人机接口设备)设备的形式进行通信,用于将接收pc端发送过来的数据传给u2f模块,以及将u2f模块处理后的数据传给pc端;

触摸模块为触摸感应模块,包括一个触摸感应模组和一个led灯,触摸感应模组和led灯分别与交互模块连接,注册或认证时,led灯闪烁提示用户触摸,用户手按触摸模组,进行确认,防止非主动操作以及用户误操作;

交互模块为人机交互信息处理模块,其与触摸感应模组相连,驱动触摸感应模组以及接受用户对触摸模块的操作信息传输给u2f模块,与led灯相连,用于驱动led灯。

身份令牌与客户端浏览器进行交互,客户端浏览器又与身份认证服务器中的fido服务器进行交互。

本令牌的身份验证过程通过数字签名实现,其中涉及到如下密钥:

①身份认证令牌的令牌私钥和证书,用于验证身份令牌是否合法;令牌私钥和证书预装入身份令牌u2f模块数据库中,在注册时由令牌将证书发送给fido服务器;

②身份认证令牌的根密钥,用于生成加密的密钥句柄。根密钥的读取需要puf模块的参与。puf未集成在u2f模块的主芯片上,而是以独立芯片的方式存在,为了确保根密钥的正确性,每次使用根密钥前,u2f主芯片和puf芯片要执行挑战-应答协议,协议正确执行后,主芯片才接收puf芯片发来的根密钥值;

③签名所使用的公私密钥对。这些密钥在身份认证令牌中生成,生成过程中使用物理不可克隆函数、真随机数发生器等模块,有效地保障密钥的高安全性。

密钥生成流程如图3所示。

表1为密钥在身份认证令牌的u2f模块和fido服务器中的存储情况。

表1密钥存储情况表

本身份认证服务器基于fido协议搭建,并在标准fido服务器之上额外存储了令牌证书、签名公钥、句柄。其能够在收到认证或注册请求后生成挑战数据并对令牌返回的应答数据进行验证返回验证结果。

本身份令牌是专用的硬件设备,并不直接连接到网络上,而是通过客户端浏览器与fido服务器交互。

令牌支持两种操作:注册、认证。用户第一次使用时将调用注册方法,之后使用将调用认证方法。其中注册操作将在身份认证令牌中建立签名公钥和私钥密钥对,并在fido服务器注册用户的身份及公钥和句柄,用于后续的认证操作;认证操作中令牌需要向fido服务器证明自己持有合法的私钥。

一种根据上述的身份认证服务器和身份认证令牌的注册方法,包括步骤:

(1)当用户在客户端浏览器请求注册时,在客户端浏览器输入注册用户名,发送给fido服务器,fido服务器生成一个随机数a,并将该随机数a连同用户名发送给客户端浏览器,使用随机数可以有效地防止重放攻击;

(2)客户端浏览器检验和fido服务器的tls(安全传输层协议)连接,确定是合法的fido服务器后,客户端生成注册挑战参数列表{tls连接数据(以下称tlsdata)、客户端浏览器随机生成的一个会话随机参数(以下称sessionrandomvalue)、随机数a、用户名},客户端进一步对fido服务器url进行哈希运算,得到url哈希值;

(3)客户端浏览器将注册挑战参数列表和url哈希值通过与计算机usb接口相连接的身份认证令牌的usb接口,经usb模块发送给u2f模块;

(4)身份认证令牌的u2f模块调用数字签名密钥生成算法,生成一对签名公私密钥对;签名公钥和签名私钥是以客户端登录会话信息和随机数a作为参数,通过密钥生成算法计算出来的,其中登录会话信息包括fido服务器url、用户名、tlsdata、sessionrandomvalue。

(5)u2f模块通过挑战应答协议调用puf模块生成自己的根密钥,并以根密钥为加密密钥,签名私钥和fido服务器url哈希值作为明文,调用对称加密算法,加密后生成密钥句柄;根密钥长度为128比特;

(6)身份认证令牌的u2f模块调用数字签名算法,以自己的签名私钥为密钥,对列表{密钥句柄、签名公钥、注册挑战参数列表}进行签名,产生签名值;

(7)u2f模块经usb模块,通过usb接口将密钥句柄、签名公钥、注册挑战参数列表、签名值、令牌证书发送给客户端浏览器,客户端浏览器再将其发送给fido服务器;

(8)fido服务器从收到的消息中提取出令牌证书,首先验证令牌证书的合法性;如果合法,则提取令牌证书中令牌公钥,并调用验签算法,使用该令牌公钥,验证签名的合法性;如果合法则fido服务器存储“用户名、签名公钥、密钥句柄”,并通知客户端浏览器注册成功;否则通知客户端注册失败。

自此注册流程结束。

步骤(4)、(5)、(6)密钥生成算法、对称加密算法、哈希算法和数字签名有两种模式,一为国密算法(sm2、sm3、sm4算法);二为标准fido算法(rsa、ecdsa、sha256、aes),算法内置于u2f模块中。

一种根据上述的身份认证服务器和身份认证令牌的认证方法,包括步骤:

(1)当fido服务器收到用户认证请求后,查找数据库,找到该用户的注册密钥句柄,同时服务器生成一个随机数b,并将该随机数b连同注册密钥句柄一起发送给客户端;

(2)客户端浏览器检验和服务器的tls连接,确定是合法的服务器后,获取tls连接数据(以下称tlsdata),并对列表{fido服务器url,随机数b,tlsdata}执行哈希运算,得到哈希运算的结果,作为认证挑战值;客户端进一步对fido服务器url进行哈希运算,得到url的哈希值;

(3)客户端浏览器将认证挑战值、url哈希值、注册密钥句柄通过usb接口,经usb模块,发送给身份认证令牌的u2f模块;

(4)身份认证令牌上触摸模块的led灯亮起后,用户通过触摸亮灯旁的触摸感应模组进行物理确认,交互模块在收到触摸确认后会将确认信息传输到u2f模块;

(5)u2f模块的认证签名计数器加1,这样做可以记录执行身份认证操作的次数;

(6)u2f模块以挑战应答协议调用puf模块生成自己的根密钥,使用根密钥调用对称加密算法,对密钥句柄进行解密,得到url哈希值和签名私钥;

(7)身份认证令牌的u2f模块验证解密句柄得到的url哈希值和步骤(3)客户端发来的url哈希值是否一致,如果不一致则中断执行,认证失败,如果一致则执行下一步;

(8)u2f模块调用trng真随机数发生器产生本地随机数c;

(9)u2f模块使用步骤(6)解密句柄得到的签名私钥,调用数字签名算法对{认证挑战值,认证签名计数器值,本地随机值c}进行数字签名得到认证签名值;

(10)身份认证令牌的u2f模块将认证挑战值、认证签名值、认证签名计数器值、本地随机值c发送给客户端浏览器,由客户端浏览器转发给fido服务器;fido服务器查找用户的签名公钥;并使用该签名公钥调用验签算法,验证签名的合法性。如果合法则用户身份认证成功;否则通知客户端认证失败。

步骤(6)、(2)、(9)对称加密算法、哈希算法和数字签名有两种模式,一为国密算法(sm2、sm3、sm4算法);二为标准fido算法(rsa、ecdsa、sha256、aes)。算法内置于u2f模块中。

本发明采用物理不可克隆函数与fido相结合,以物理不可克隆函数保证令牌的唯一性,不可复制性,以fido保证用户身份的准确性以及所进行操作的不可篡改性、不可抵赖性;通过第二因子验证解决传统账号密码验证存在的密码泄露等隐患;通过u2f协议保证令牌的可扩展性和普适性,实现多系统统一身份认证;通过物理不可克隆函数保证令牌的不可克隆性;通过真随机数发射器保证用户认证过程挑战应答机制的随机性、不可重现性。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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