一种防止重放攻击的认证方法

文档序号:7620712阅读:877来源:国知局
专利名称:一种防止重放攻击的认证方法
技术领域
本发明涉及到提高无线通信系统安全性的技术,特别涉及到一种防止重放攻击的认证方法。
背景技术
在通信系统中,安全性是评价一个通信系统性能优劣的重要指标,特别是在无线通信系统中,由于无线通信系统具有开放性和移动性的特点,使得无线通信系统的安全性显得尤为重要。
IEEE 802.16d/e系列协议定义了无线宽带固定和移动接入空中接口部分的协议标准。为了保证空中接口数据传输的安全性,上述系列协议定义了一个安全子层(Privacy Sublayer),用于实现对无线通信系统用户的认证、密钥的分发和管理以及后续的数据加密和认证等等。根据协议规定,可以使用基于数字证书的RSA算法(由Rivest、Shamir、Adleman开发的公开密钥加密算法)实现移动终端(MS)和基站(BS)之间的双向认证。在认证完成后,MS和BS还需要通过密钥管理协议(PKM)生成、分发并管理对空中接口数据进行加密以及对管理消息进行一致性检验的密钥,从而提高MS和BS之间空中接口数据传输的安全性。
上述这种使用密钥对MS和BS之间空中接口数据进行加密的方法虽然可以提高无线通信系统的安全性,但是无法防止重放攻击(Replay Attack)。所述的重放攻击是一种常见的网络攻击方法,攻击者首先截获在通信双方在某次交互过程中由其中一方发送的数据包,并在以后某个合适的时机向该数据包的接收端重新发送截获的数据,如果在所述数据包中没有包含足够的信息使接收端能够判断出该数据包是第一次发送的数据包还是重发的数据包,攻击者就能够冒充通信双方中的一方来欺骗另一方,以达到攻击无线通信系统的目的。为此,IEEE 802.16e在PKM版本2中提供了一种防止管理消息重放攻击的方法,该方法通过管理消息中携带的消息序列号及通信双方建立的共享对称密钥实现防重放攻击及对管理消息的认证。
但是,在MS和BS的认证过程中,由于认证双方还没有产生共享的对称密钥信息,因此,无法通过IEEE 802.16e在PKM版本2中提供的方法防止重放攻击。

发明内容
为了解决上述技术问题,本发明提供了一种防止重放攻击的认证方法,使的在认证过程中,MS和BS可以简单的识别出重放消息,有效地防止重放攻击。
本发明所述防止重放攻击的认证方法,包括a、移动终端发送携带有自身产生的第一随机数的认证请求消息到基站;b、基站对移动终端进行认证,若认证成功,则发送携带有所述第一随机数、自身产生的第二随机数及签名信息的认证响应消息到所述移动终端,执行步骤c;否则,发送携带有所述第一随机数及自身产生的第二随机数的认证拒绝消息到所述移动终端,执行步骤d;c、移动终端根据所接收认证响应消息中的第一随机数及签名信息判断该认证响应消息是否为重放消息,如果是,则丢弃该消息;否则,执行步骤e;d、移动终端根据所接收认证拒绝消息中的第一随机数断该认证拒绝消息是否为重放消息,如果是,则丢弃该消息;否则,执行步骤e;e、移动终端发送携带有所述第二随机数及签名信息的认证确认消息到基站,基站根据所接收认证确认消息中的第二随机数判断该认证确认消息是否为重放消息,如果是,则丢弃该消息;否则,认证过程结束。
在步骤b中,基站根据认证请求消息中携带的移动终端的数字证书对移动终端进行认证。
步骤c所述判断认证响应消息是否为重放消息包括c1、取认证响应消息中的第一随机数,与自身在步骤a产生的第一随机数进行比较,若相同,则执行c2;否则,丢弃该消息;c2、对认证响应消息中的签名信息进行验证,如果验证通过,则该认证响应消息不是重放消息,否则,该认证响应消息为重放消息。
步骤d所述判断认证拒绝消息是否为重放消息为取认证拒绝消息中的第一随机数,与自身在步骤a产生的第一随机数进行比较,若相同,则该认证拒绝消息不是重放消息;否则,丢弃该消息。
本发明所述认证拒绝消息进一步包括所述认证拒绝消息的签名信息;步骤d所述判断认证拒绝消息是否为重放消息包括d1、取认证拒绝消息中的第一随机数,与自身在步骤a产生的第一随机数进行比较,若相同,则执行d2;否则,丢弃该消息;d2、对认证拒绝消息中的签名信息进行验证,如果验证通过,则该认证响应消息不是重放消息,否则,该认证响应消息为重放消息。
本发明所述对签名信息进行验证包括取该签名信息所在消息中携带的基站的数字证书,根据该数字证书得到基站的公钥;计算该签名信息所在消息中除签名信息属性之外的其他属性的摘要;使用基站的公钥对所述签名信息进行解密,将解密后的结果与所计算的摘要进行比较,若一致,则对签名信息的验证通过;否则,对签名信息的验证不通过。
步骤e所述判断认证确认消息是否为重放消息包括e1、基站取该认证确认消息中的第二随机数,与自身产生的第二随机数进行比较,若相同,则执行e2,否则,丢弃该消息;e2、基站对认证确认消息的签名信息进行验证,如果验证通过,则该认证确认消息不是重放消息,否则,该认证确认消息为重放消息。
本发明所述认证请求消息进一步包含所述认证请求消息的签名信息;步骤b在对移动终端进行认证之前进一步包括基站对所述认证请求消息的签名信息进行验证,如果验证通过,则接下来对移动终端进行认证,否则,丢弃所述认证请求消息。
本发明所述对签名信息进行检验包括取认证请求消息中携带的移动终端的数字证书,根据该数字证书得到该移动终端的公钥;计算该签名信息所在消息中除签名信息属性之外的其他属性的摘要;使用移动终端的公钥对所述签名信息进行解密,将解密后的结果与所计算的摘要进行比较,若一致,则对签名信息的验证通过;否则,对签名信息的验证不通过。
由此可以看出,本发明在MS和BS的认证过程中,在BS发送给MS的认证响应消息或认证拒绝消息中携带了由MS产生的随机数及BS对该消息的签名信息,在MS发送给BS的认证确认消息中携带了由BS产生的随机数及MS对该消息的签名信息,因此,MS可以根据所接收认证响应消息或认证拒绝消息中的随机数与MS自身产生的随机数是否一致及签名信息是否正确来判断所接收的消息是否为重放消息,而BS可以根据所接收认证确认消息中的随机数与BS自身产生的随机数是否一致以及签名信息是否正确来判断所接收的认证确认消息是否为重放消息。另外,由于攻击者很难保证重放消息中的随机数与MS或BS在上一次发送消息中携带的随机数一致,因此,很难生成能够破坏BS和MS性能的重放消息。由此,应用本发明所述的方法,在认证过程中,MS和BS可以简单地实现防重放攻击。


图1为本发明所述的防止重放攻击的认证方法流程图。
具体实施例方式
为了解决现有技术存在的问题,本发明提供了一种防止重放攻击的认证方法。该方法主要利用随机数和数字签名机制在认证过程中实现防重放攻击。
图1显示了本发明所述的防止重放攻击的认证方法流程图。如图1所示,该方法主要包括A、MS发送经过自身私钥签名的认证请求消息到BS,并在所述认证请求消息中携带自身产生的第一随机数MS_Random、该MS的数字证书MS_Certificate以及所述认证请求消息的签名信息SigSS 1。
根据IEEE 802.16e协议规定,在使用RSA认证方式实现MS和BS之间的双向认证时,MS和BS都各自拥有一个数字证书,其中,MS的数字证书可以是制造商或认证中心(CA)签发的,BS的数字证书是CA签发的。除了数字证书之外,MS和BS还分别拥有与自身数字证书相对应的公钥/私钥对。这样,在BS接收到MS发送的认证请求消息后,首先从MS的数字证书中得到该MS的公钥,并使用MS的公钥对该认证请求消息中的签名信息进行验证。在验证通过后,BS还可以进一步利用MS的数字证书对MS进行认证。
在RSA认证方式下,所述的认证请求消息为PKM版本2的RSA请求消息(PKMv2 RSA-Request)。该PKMv2 RSA-Request消息中包含的属性有MS产生的第一随机数MS_Random、MS的数字证书MS_Certificate以及该PKMv2RSA-Request消息的签名信息SigSS 1等。
B、BS接收所述认证请求消息,对所接收认证请求消息的签名信息进行验证,并在验证通过后,根据该认证请求消息中MS的数字证书对MS进行认证,若对MS认证成功,则执行步骤C,否则执行步骤E。
该步骤所述的对签名信息进行验证包括B1、BS取认证请求消息中MS的数字证书MS_Certificate,根据该数字证书得到该MS使用的公钥;B2、BS对MS所发送的认证请求消息中除签名信息属性之外的其他属性计算一个摘要;B3、BS使用得到的MS的公钥对所接收到的签名信息SigSS 1进行解密,并与步骤B2得到的摘要进行比较,如果一致,则说明对该认证请求消息的签名信息验证通过,否则,说明对该认证请求消息的签名信息验证不通过。
在本发明所述的方法中,BS将丢弃对签名信息验证不通过的认证请求消息,并返回步骤B,接收下一个认证请求消息。
C、BS发送经过自身私钥签名的认证响应消息到MS,并在所述认证响应消息中携带自身产生的第二随机数BS_Random、所接收的来自MS的第一随机数MS_Random、该BS的数字证书BS_Certificate、该认证响应消息的签名信息SigBS,然后,执行步骤D。
在RSA认证方式下,该步骤所述的认证响应消息为PKM版本2的RSA响应消息(PKMv2RSA-Reply)。该PKMv2RSA-Reply消息中所包含的属性有BS产生的第二随机数BS_Random、来自MS的第一随机数MS_Random、该BS的数字证书BS_Certificate、该PKMv2RSA-Reply消息的签名信息SigBS等。
D、MS接收所述认证响应消息,根据该认证响应消息中携带的第一随机数以及签名信息判断该消息是否为重放消息,如果是,则丢弃该消息,然后返回本步骤,接收下一个认证响应消息;否则,执行步骤G。
本步骤所述判断该消息是否为重放消息包括D1、MS取该认证响应消息中携带的第一随机数MS_Random,与自身在步骤A产生的第一随机数进行比较,若相同,则执行D2,否则,丢弃该消息;D2、MS取该认证响应消息中BS的数字证书BS_Certificate,根据该数字证书得到BS使用的公钥,再对BS发送的认证响应消息中除签名信息属性之外的所有属性计算一个摘要,并使用得到的公钥对所接收认证请求消息的签名信息SigBS进行解密,将解密后的结果与所计算的摘要进行比较,若一致,则说明该认证响应消息不是重放消息;否则,确定该认证响应消息是重放消息。
E、BS发送经过自身私钥签名的认证拒绝消息到MS,并在所述认证响应消息中携带自身产生的第二随机数BS_Random、所接收的来自MS的第一随机数MS_Random以及认证失败的错误信息,然后执行步骤F。
在RSA认证方式下,本步骤所述的认证拒绝消息是PKM版本2的RSA拒绝消息(PKMv2RSA-Reject)。该PKMv2RSA-Reject消息所包含的属性有BS产生的第二随机数BS_Random、来自MS的第一随机数MS_Random以及认证失败的错误信息等。
F、MS接收到所述认证拒绝消息,根据该认证拒绝消息中携带的第一随机数MS_Random判断该认证拒绝消息是否为重放消息,如果是,则丢弃该认证拒绝消息,返回本步骤,接收下一个认证拒绝消息;否则,通过认证失败的错误信息获知认证失败的原因,并显示,然后,执行步骤G。
本步骤所述判断认证拒绝消息是否为重放消息的方法为取该认证拒绝消息中携带的第一随机数MS_Random,与自身在步骤A产生的第一随机数进行比较,若相同,则确定该认证拒绝消息不是重放消息,否则,丢弃该消息。
若所述认证拒绝消息中进一步携带BS的数字证书及签名信息SigBS,则本步骤可以采用与步骤D相同的判断方法根据该认证拒绝消息中携带的第一随机数MS_Random及签名信息SigBS判断该认证拒绝消息是否为重放消息。
G、MS接收到所述认证响应消息或认证拒绝消息后,发送经过自身私钥签名的认证确认消息到BS,并在所述认证确认消息中携带所接收的来自BS的第二随机数BS_Random,及所述认证确认消息的签名信息SigSS 2。
所述认证确认消息可进一步包含用于指示认证结果的认证结果码字属性以及在认证失败情况下的错误信息等属性。
在RSA认证方式下,该步骤所述的认证确认消息为PKMv2RSA-Acknowledgement消息。该RSA-Acknowledgement消息所包含的属性有BS产生的第二随机数BS_Random、该PKMv2RSA-Acknowledgement消息的签名信息以及认证结果属性等。
需要说明的是,由于MS发送给BS的认证确认消息是认证过程在认证成功情况下的最后一条消息,BS不需要对该消息进行响应,因此,在该消息中,MS不需要携带自身产生的随机数。
H、BS接收所述认证确认消息,根据该认证确认消息中携带的第二随机数BS_Random以及该认证确认消息的签名信息SigSS 2判断该认证确认消息是否为重放消息,如果是,则丢弃该消息,并返回本步骤,接收下一个认证确认消息;否则,本次认证过程结束。
本步骤所述判断该认证确认消息是否为重放消息的方法与步骤D所述的方法基本相同,包括H1、BS取该认证确认消息中的第二随机数BS_Random,与自身在步骤C或步骤E产生的第二随机数进行比较,若相同,则执行H2,否则,丢弃该消息;H2、BS对MS发送的认证确认消息中除签名信息属性之外的所有属性计算一个摘要,并使用得到的MS的公钥对所接收认证确认消息的签名信息SigSS 2进行解密,将解密后的结果与所计算的摘要进行比较,若一致,则说明该认证响应消息不是重放消息;否则,确定该认证响应消息是重放消息。
从上述MS和BS之间的认证过程可以看出,由于BS在所述认证响应消息或认证拒绝消息中携带了由MS产生的第一随机数MS_Random,MS在所述认证确认消息中携带了由BS产生的第二随机数BS_Random,因此,攻击者想要重放所述认证响应消息或认证拒绝消息,就必须使得重放消息中的随机数和MS在上一个发送的认证请求消息中产生的随机数一致,若攻击者想要重放所述认证确认消息,就必须使得重放消息中的随机数和BS在上一个发送的认证响应或认证拒绝消息中产生的随机数一致,而这在实际的应用中几乎是不可能实现的。由此,通过本发明所述的方法,MS和BS可以简单地识别出重放消息,实现防重放攻击功能。
权利要求
1.一种防止重放攻击的认证方法,其特征在于,所述方法包括a、移动终端发送携带有自身产生的第一随机数的认证请求消息到基站;b、基站对移动终端进行认证,若认证成功,则发送携带有所述第一随机数、自身产生的第二随机数及签名信息的认证响应消息到所述移动终端,执行步骤c;否则,发送携带有所述第一随机数及自身产生的第二随机数的认证拒绝消息到所述移动终端,执行步骤d;c、移动终端根据所接收认证响应消息中的第一随机数及签名信息判断该认证响应消息是否为重放消息,如果是,则丢弃该消息;否则,执行步骤e;d、移动终端根据所接收认证拒绝消息中的第一随机数断该认证拒绝消息是否为重放消息,如果是,则丢弃该消息;否则,执行步骤e;e、移动终端发送携带有所述第二随机数及签名信息的认证确认消息到基站,基站根据所接收认证确认消息中的第二随机数判断该认证确认消息是否为重放消息,如果是,则丢弃该消息;否则,认证过程结束。
2.如权利要求1所述的方法,其特征在于,在步骤b中,基站根据认证请求消息中携带的移动终端的数字证书对移动终端进行认证。
3.如权利要求1所述的方法,其特征在于,步骤c所述判断认证响应消息是否为重放消息包括c1、取认证响应消息中的第一随机数,与自身在步骤a产生的第一随机数进行比较,若相同,则执行c2;否则,丢弃该消息;c2、对认证响应消息中的签名信息进行验证,如果验证通过,则该认证响应消息不是重放消息,否则,该认证响应消息为重放消息。
4.如权利要求1所述的方法,其特征在于,步骤d所述判断认证拒绝消息是否为重放消息为取认证拒绝消息中的第一随机数,与自身在步骤a产生的第一随机数进行比较,若相同,则该认证拒绝消息不是重放消息;否则,丢弃该消息。
5.如权利要求1所述的方法,其特征在于,所述认证拒绝消息进一步包括所述认证拒绝消息的签名信息;步骤d所述判断认证拒绝消息是否为重放消息包括d1、取认证拒绝消息中的第一随机数,与自身在步骤a产生的第一随机数进行比较,若相同,则执行d2;否则,丢弃该消息;d2、对认证拒绝消息中的签名信息进行验证,如果验证通过,则该认证响应消息不是重放消息,否则,该认证响应消息为重放消息。
6.如权利要求3或5所述的方法,其特征在于,所述对签名信息进行验证包括取该签名信息所在消息中携带的基站的数字证书,根据该数字证书得到基站的公钥;计算该签名信息所在消息中除签名信息属性之外的其他属性的摘要;使用基站的公钥对所述签名信息进行解密,将解密后的结果与所计算的摘要进行比较,若一致,则对签名信息的验证通过;否则,对签名信息的验证不通过。
7.如权利要求1所述的方法,其特征在于,步骤e所述判断认证确认消息是否为重放消息包括e1、基站取该认证确认消息中的第二随机数,与自身产生的第二随机数进行比较,若相同,则执行e2,否则,丢弃该消息;e2、基站对认证确认消息的签名信息进行验证,如果验证通过,则该认证确认消息不是重放消息,否则,该认证确认消息为重放消息。
8.如权利要求1所述的方法,其特征在于,所述认证请求消息进一步包含所述认证请求消息的签名信息;步骤b在对移动终端进行认证之前进一步包括基站对所述认证请求消息的签名信息进行验证,如果验证通过,则接下来对移动终端进行认证,否则,丢弃所述认证请求消息。
9.如权利要求7或8所述的方法,其特征在于,所述对签名信息进行检验包括取认证请求消息中携带的移动终端的数字证书,根据该数字证书得到该移动终端的公钥;计算该签名信息所在消息中除签名信息属性之外的其他属性的摘要;使用移动终端的公钥对所述签名信息进行解密,将解密后的结果与所计算的摘要进行比较,若一致,则对签名信息的验证通过;否则,对签名信息的验证不通过。
全文摘要
本发明公开了一种防止重放攻击的认证方法,包括移动终端发送携带有第一随机数的认证请求消息到基站;基站对移动终端的认证成功后,发送携带有所述第一随机数、第二随机数及签名信息的认证响应消息到所述移动终端,移动终端根据所接收认证响应消息中的第一随机数及签名信息判断该认证响应消息是否为重放消息;对于非重放消息移动终端发送携带有所述第二随机数及签名信息的认证确认消息到基站,基站根据所接收认证确认消息中的第二随机数判断该认证确认消息是否为重放消息。应用本发明所述的方法,移动终端和基站可以通过随机数和签名信息简单的识别出重放消息,有效地防止重放攻击。
文档编号H04W12/06GK1802017SQ200510084268
公开日2006年7月12日 申请日期2005年7月15日 优先权日2005年7月15日
发明者肖正飞, 李永茂 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1