本发明属于计算机和信息安全技术领域,具体涉及一种多服务器架构下的认证和密钥协商方法,可实现用户用于登录认证和密钥协商的数据存储量不随服务器数量增加而增加,同时实现无法对用户的登录认证和密钥协商行为进行跨服务器链接。
背景技术:
随着信息技术和互联网技术的广泛发展,网络中向外提供服务的服务器日益增加。在一般的服务器体系中,由许多服务和功能不同的服务器组成。用户在登录服务器时,需要进行认证和密钥协商。多服务器架构下,一般由用户、注册中心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)和
每个服务器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的合法性得到确认后,智能卡计算
步骤4:认证和密钥协商
收到用户ui的登录请求后,服务器sj计算
用户ui的合法性得到确认后,服务器sj产生一个随机数n2,计算
用户端智能卡收到信息m2和m3后,计算
服务器sj检查
在本发明的一个优选实施例中,还包括:
步骤5:用户口令修改
用户ui需要将口令pwi修改为pwi'时,插入他的智能卡,输入自己的身份idi、口令pwi,提取生物特征值bioi;智能卡计算pi=h(pwi||bioi)并验证h(idi||h(y)||pi)=ci是否成立;如果成立,则智能卡提醒用户输入新口令pw′i;如果不成立,则终止执行;
用户输入新口令pw′i后,智能卡计算
在本发明的一个优选实施例中,在所述步骤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)和
服务器共有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的合法性得到确认后,智能卡计算
步骤104,认证与密钥协商
服务器s存有z=h(h(y)||sid),并拥有用户u的相关参数xj=h(a||sidj)和yj=h(a||xj),这两参数一一对应,收到用户u的登录请求后,服务器s计算
用户u的合法性得到确认后,服务器s产生一个随机数n2,计算
用户端智能卡收到信息m2和m3后,计算
服务器s检查
步骤105,用户口令修改
用户u需要将口令pw修改为pw'时,插入他的智能卡,输入自己的身份id,口令pw,提取生物特征值bio;智能卡计算p=h(pw||bio)并验证h(id||h(x)||p)=c是否成立;如果成立,则智能卡提醒用户输入新口令pw';如果不成立,则终止执行。
用户输入新口令pw'后,智能卡计算
本发明能够实现在跨服务器下用户行为不可链接的特性,同时,本发明也能很好地解决用户需要保存的用于登录认证和密钥协商的数据量不随服务器数量变化的实际需求。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。