一种多服务器架构下的认证和密钥协商方法与流程

文档序号:15170179发布日期:2018-08-14 17:53阅读:202来源:国知局

本发明属于计算机和信息安全技术领域,具体涉及一种多服务器架构下的认证和密钥协商方法,可实现用户用于登录认证和密钥协商的数据存储量不随服务器数量增加而增加,同时实现无法对用户的登录认证和密钥协商行为进行跨服务器链接。



背景技术:

随着信息技术和互联网技术的广泛发展,网络中向外提供服务的服务器日益增加。在一般的服务器体系中,由许多服务和功能不同的服务器组成。用户在登录服务器时,需要进行认证和密钥协商。多服务器架构下,一般由用户、注册中心rc以及服务器等三方组成。用户向注册中心rc进行单次注册,可在多服务器上进行匿名登录是在多服务器架构下的认证和密钥协商过程中重要的特性。另外,在保持用户和多服务器之间高效认证和密钥协商过程中,应防止服务器假冒攻击、智能卡丢失攻击、窃听攻击和重放攻击等等一系列的恶意攻击。

文献《多服务器架构下认证和密钥协商协议》发表于《计算机研究与发展》2016年11月第53卷11期,提出了一种多服务器架构下的高效的认证和密钥协商方法,并能抵抗服务器假冒攻击、智能卡丢失攻击、窃听攻击和重放攻击等安全威胁。但这种做法存在以下一些缺点:

1、没有达到不可链接性。用户的登录请求消息中包含有常参数,任意第三方可以根据常参数来去确定登录请求属于同一用户,并就此建立用户行为的链接。从而,运用大数据分析技术得出用户的隐私信息等。

2、用户需要保存的用于登录认证和密钥协商的数据量和服务器的数量成线性关系。这不仅增加了对用户的存储空间要求,而且,如果服务器需要增加,用户将必须再次和注册中心rc联系更新数据。

由此可见,解决上述问题是多服务器架构下认证和密钥协商过程中亟需解决的技术问题。为此,申请人进行了有益的探索和尝试,找到了解决上述问题的办法,下面将要介绍的技术方案便是在这种背景下产生的。



技术实现要素:

本发明所要解决的技术问题在于:针对现有的多服务器架构下考虑用户和多服务器之间认证和密钥协商过程中存在:1、用户在此过程中被任意服务器、其他用户或者其他恶意的攻击者进行跨服务器行为链接的问题;2、用户存储的用于登录认证和密钥协商的数据量和服务器的数量成线性关系,服务器增加时更新困难的问题,故提供一种多服务器架构下的认证和密钥协商方法,来解决上述问题。

本发明所解决的技术问题可以采用以下技术方案来实现:

一种多服务器架构下的认证和密钥协商方法,包括以下步骤:

步骤1:系统建立

系统建立时,选定密码学安全的hash函数h,选定安全的密钥导出函数kdf,并公开选定的函数,注册中心rc选择随机数x和y作为自己的主密钥;

步骤2:用户向注册中心rc注册

用户ui选择身份idi,口令pwi,提取生物特征值bioi,并计算pi=h(pwi||bioi),然后通过安全信道向注册中心rc提交身份idi和pi;

注册中心rc收到idi和pi以后,计算ai=h(idi||x),ci=h(idi||h(x)||pi)和并将存储了参数h(x)、h(y)、ci和di的智能卡安全地提交给用户ui,注册中心rc安全存储ai;

每个服务器sj选择身份sidj并公开,注册中心rc计算zj=h(h(y)||sidj),并按每个用户ui计算xij=h(ai||sidj)和yij=h(ai||xij),并将参数xij、yij和zj通过安全信道提交给服务器sj,参数xij和yij一一对应存储;

步骤3:用户登录

当用户ui试图登录服务器sj时,插入用户智能卡,输入自己的身份idi、口令pwi,提取生物特征值bioi,智能卡计算pi=h(pwi||bioi)并验证h(idi||h(x)||pi)=ci是否成立;如果成立,则用户ui的合法性得到确认,如果不成立,则终止执行;

用户ui的合法性得到确认后,智能卡计算产生一个随机数n1,计算xij=h(ai||sidj),yij=h(idi||xij),m1=h(h(ai||n1)||yij||n1),并将登录请求gij、hij、aidij和m1发送给服务器sj;

步骤4:认证和密钥协商

收到用户ui的登录请求后,服务器sj计算然后根据yij确定对应的xij,计算并计算验证h(h(ai||n1)||yij||n1)=m1是否成立;如果成立,则用户ui的合法性得到确认;如果不成立,则终止执行;

用户ui的合法性得到确认后,服务器sj产生一个随机数n2,计算返回信息m2和m3给用户端智能卡,同时,服务器sj计算计算指定长度的会话密钥sk=kdf(n1||n2||yij||sidj);

用户端智能卡收到信息m2和m3后,计算并验证是否成立;如果成立,则计算指定长度的会话密钥sk=kdf(n1||n2||yij||sidj),并计算发送给服务器sj;如果不成立,则终止运行;

服务器sj检查是否成立;如果成立,即用户ui和服务器sj经过交互认证后协商得到会话密钥sk,用于接下来的通信加密;如果不成立,则终止运行。

在本发明的一个优选实施例中,还包括:

步骤5:用户口令修改

用户ui需要将口令pwi修改为pwi'时,插入他的智能卡,输入自己的身份idi、口令pwi,提取生物特征值bioi;智能卡计算pi=h(pwi||bioi)并验证h(idi||h(y)||pi)=ci是否成立;如果成立,则智能卡提醒用户输入新口令pw′i;如果不成立,则终止执行;

用户输入新口令pw′i后,智能卡计算c′i=h(idi||h(y)||pi'),并用c′i和d′i分别替换智能卡中的ci和di。

在本发明的一个优选实施例中,在所述步骤1中,服务器数量固定,注册中心rc无需为用户ui安全存储ai。

由于采用了如上的技术方案,本发明的有益效果在于:

1、单次注册、多点登录等功能。用户只要向注册中心注册一次,就可以在多个认可该注册中心的服务器上进行认证登录,且用户和服务器之间的认证和密钥协商过程完全不需要注册中心参与,减小通信开销;

2、实现用户的匿名性。任意服务器、其他用户或者其他恶意的攻击者都无法获取用户的身份,很好地保护了用户的隐私;

3、实现了和不同服务器之间认证的不可链接性。任意服务器、其他用户或者其他恶意的攻击者都不能从用户和多个服务器之间的登录请求消息中建立联系,即无法分析出每个用户在不同服务器之间的行为;

4、用户存储数据量为常数。用户用于登录认证和密钥协商的数据量不与服务器的数量成线性关系,有利于减少用户的存储开销。因此,当需要增加服务器时,只需注册中心和新增服务器通信,而无需用户任何操作。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明所述方法的系统框架图。

图2是本发明所述方法的流程框图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

参见图1和图2,图中给出的是本发明的一种多服务器架构下的认证和密钥协商方法,包括以下步骤:

步骤101,系统建立

在本实施例中,选定sm3算法作为hash函数h,并利用sm3算法构造密钥导出函数kdf,并公开选定的函数。

步骤102,用户注册

用户u选择身份id,口令pw,提取生物特征值bio,并计算p=h(pw||bio),然后通过安全信道向注册中心rc提交身份id和p。

注册中心rc收到id和p以后,计算a=h(id||x),c=h(id||h(x)||p)和并将存储了参数h(x)、h(y)、ci和di的智能卡安全地提交给用户u。

服务器共有n个,每个服务器sj选择身份sidj并公开,注册中心rc计算zj=h(h(y)||sidj),并按每个用户ui计算xij=h(ai||sidj)和yij=h(ai||xij),并将参数xij、yij和zj通过安全信道提交给服务器sj,参数xij和yij一一对应存储。

步骤103,用户u发送登录请求

当用户u试图登录身份为sid服务器s时,插入用户智能卡,输入自己的身份id,口令pw,提取生物特征值bio;智能卡计算p=h(pw||bio)并验证h(id||h(x)||p)=c是否成立;如果成立,则用户ui的合法性得到确认;如果不成立,则终止执行。

用户u的合法性得到确认后,智能卡计算产生一个随机数n1,计算xj=h(a||sidj),yj=h(id||xj),m1=h(h(a||n1)||yj||n1),并将登录请求gj、hj、aidj和m1发送给服务器sj。

步骤104,认证与密钥协商

服务器s存有z=h(h(y)||sid),并拥有用户u的相关参数xj=h(a||sidj)和yj=h(a||xj),这两参数一一对应,收到用户u的登录请求后,服务器s计算然后根据yj确定对应的xj,计算并计算验证h(h(a||n1)||yj||n1)=m1是否成立;如果成立,则用户u的合法性得到确认;如果不成立,则终止执行。

用户u的合法性得到确认后,服务器s产生一个随机数n2,计算返回信息m2和m3给用户端智能卡,同时,服务器sj计算计算指定长度为l的会话密钥sk=kdf(n1||n2||yj||sid)。

用户端智能卡收到信息m2和m3后,计算并验证是否成立;如果成立,则计算指定长度为l的会话密钥sk=kdf(n1||n2||yj||sid),并计算发送给服务器s;如果不成立,则终止运行。

服务器s检查是否成立;如果成立,即用户u和服务器s经过交互认证后协商得到会话密钥sk,用于接下来的通信加密;如果不成立,则终止运行。

步骤105,用户口令修改

用户u需要将口令pw修改为pw'时,插入他的智能卡,输入自己的身份id,口令pw,提取生物特征值bio;智能卡计算p=h(pw||bio)并验证h(id||h(x)||p)=c是否成立;如果成立,则智能卡提醒用户输入新口令pw';如果不成立,则终止执行。

用户输入新口令pw'后,智能卡计算c'=h(id||h(y)||p'),并用c'和d'分别替换智能卡中的c和d。

本发明能够实现在跨服务器下用户行为不可链接的特性,同时,本发明也能很好地解决用户需要保存的用于登录认证和密钥协商的数据量不随服务器数量变化的实际需求。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

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