一种基于sm2算法可自定义的网络身份认证方法

文档序号:7851898阅读:208来源:国知局
专利名称:一种基于sm2算法可自定义的网络身份认证方法
技术领域
本发明涉及一种基于SM2算法可自定义的网络身份认证方法。
背景技术
近年来,网络安全问题日益突出,黑客入侵以及网络攻击现象日益增多,而随着计算机网络技术的不断普及,公众使用计算机的次数越来越多,特别是公用信息基础设施建设推动了政府、企业日益依赖信息系统,一些涉及国计民生的业务、系统受到了前所未有的安全挑战,如维基解密网站泄漏了大量政府的机密信息;花旗集团受黑客攻击导致36多万的客户账户信息被窃取;CSDN网站被攻击导致600余万用户资料被泄漏等。这些事故充分说明网络安全对国家、政府和企业的重要性。国家、政府、企业的信息系统涉及到国家的安全、企业机密及公民的切身利益,其数据的安全性、准确性必须得到充分的保障。为了加强信息系统的安全保护,国家、政府、企业大量使用专网、局域网、VPN等技术进行防护,起到了良好的效果。网络信息安全问题,首先需要解决信息的网络身份认证问题,现有的网络身份认证方法大多数使用RSA算法,加密强度较低,存在着网络数据传输过程身份伪造的风险,威胁信息系统的安全。

发明内容
本发明所要解决的技术问题,就是提供ー种高加密强度、可定制的基于SM2算法可自定义的网络身份认证方法,可实现数据通信方在初始会话时的身份认证,可以用于加密通信的对称密钥协商,消除网络数据传输过程身份伪造的风险,保护信息系统的安全。所述的SM2算法是指国家密码管理局SM2椭圆曲线公钥密码算法,属于非对称密码算法,数据发送方和接收方各自拥有公私钥对(CertA, SkeyA)和(CertB, SkeyB)。上述技术问题的解决,本发明采用的技术方案如下(以通信实体A主动向实体B发送身份认证请求为例)
SI实体A向实体B发送数据包1,其内容为
RttHteM, IP A, SNU し作{IP AijSN IXt.AIiD A !SN X ;
S2实体B对数据包I进行处理;
S3实体B向实体A发送数据包2,其内容为
Dispensf, II)———HjN i 1.1% .τ1Λ( *...15! HN tl! IiIXi ;
S4实体A对数据包2进行处理;
S5实体A向实体B发送数据包3,其内容为
AeknwIcdpe.丨0_ Λ.5Ν+2,1シ ,,,斯__ A: SN-ZiiX), .,(Η(ΙΡ__ ΛΙΠ—D AHSN十:!丨 X ).
S6实体B对数据包3进行处理;
各数据包中Χ是保留关键字,通过自定义保留关键字X实现自定义身份认证;I I代表数据连接运算;ID_A是指实体A的用户标识;ID_B是指实体B的用户标识;SN是实体随机产生的会话序列号;H(*)代表对数据*进行hash运算;En(M)代表使用密钥N对数据M进行加密,其中N为集合{CertA,SkeyA, CertB, SkeyB}中的元素、数据M为需要加密的数据。所述的S2包括以下步骤 S2-1对数据包I进行基于IP地址、端口号和网络协议的数据过滤;
S2-2 对数据包 I 进行数据提取,得到ID_A, Ecerte (IP_A | | SN | | X)和 EskeyA (H (IP_A||ID_A| SN||X));
S2-3 使用私钥 SkeyB 对数据 EeertB(IP_A| | SN| |X)解密,得到数据 IP_A| | SN| |X ;
S2-4将用户标识ID_A和数据IP_A| SN| IX进行合成,并做hash运算,得到H(IP_A| ID_A SN| X);
S2-5根据用户标识ID_A查找实体A的公钥CertA,根据CertA对发送数据签名进行验签,井根据验签的对比结果查看数据是否是伪造,从而确认发送者的合法身份。其中S2-5用户通过ID_A查找实体A的公钥CertA的方式可以通过本地查询的方式亦可采用向公钥发布服务器发送查找信息的方式,具体包括以下步骤
S2-5-1实体B查找本地服务器看是否有ID_A对应的公钥CertA,若有,则使用该公钥;若无,则采用向公钥发布服务器查询的方式,向公钥服务器发送公钥查找服务请求,数据包中包含信息ID_A ;
S2-5-2公钥服务器向实体B返回ID_A对应的公钥CertA,若返回的结果表明无此公钥,则实体B丢弃数据包I。所述的S4包括以下步骤
S4-1实体A对数据包2进行基于IP地址、端口号和网络协议的数据过滤;
S4-2 对数据包 2 进行数据提取,得到ID_B,,ECertA(IP_B I SN+1 X)和 EskeyB(IP_B IID_B ISN+1I X);
S4-3 使用私钥 SkeyA 对数据 ECertA(IP_B | | SN+11 |X)解密,得到数据 IP_B | | SN+11 |X ;S4-4将用户标识ID_B和数据IP_B | | SN+11 | X进行合成,并做hash运算,得到H(IP_ B IID_B ISN+1I X);
S4-5根据用户标识ID_B查找实体B的公钥CertB,根据CertB对发送数据签名进行验签,井根据验签的对比结果查看数据是否是伪造,从而确认发送者的合法身份。其中S4-5用户通过ID_B查找实体B的公钥CertB的方式可以通过本地查询的方式亦可采用向公钥发布服务器发送查找信息的方式,具体包括以下步骤
S4-5-1实体A查找本地服务器看是否有ID_B对应的公钥CertB,若有,则使用该公钥;若无,则采用向公钥发布服务器查询的方式,向公钥服务器发送公钥查找服务请求,数据包中包含信息ID_B。S4-5-2公钥服务器向实体A返回ID_B对应的公钥CertB,若返回的结果表明无此公钥,则实体A丢弃数据包2。所述的步骤S6与步骤S2类似。所述的通信实体定期向公钥发布服务器更新通信实体公钥数据库;公钥发布服务器集中部署,对需要通信的实体进行登记,保存通信实体的公钥,并对不再进行通信的实体采取撤销公钥的措施。有益效果本发明的基于SM2算法可自定义的身份认证方法,可消除网络数据传输过程身份伪造的风险,保护信息系统的安全。


下面结合附图和具体实施方式
对本发明做进ー步的详细说明。图I为身份认证建立过程;
图2为身份确认数据包的数据处理流程;
图3为通信实体查找公钥的过程。
具体实施例方式本发明提出了一种基于SM2密码算法,可自定义的身份认证的方法,对身份认证的数据包的内容进行了定义,对身份认证的过程做出了約定。本发明的基于SM2密码算法的、可以自定义的身份认证方法实施例,包括以下部分
SI实体A向实体B发送数据包I ;
S2实体B对数据包I进行处理;
S3实体B向实体A发送数据包2 ;
S4实体A对数据包2进行处理;
S5实体A向实体B发送数据包3 ;
S6实体B对数据包3进行处理;
本发明通过发送3个数据包以及对数据包进行相应处理达到身份认证的目的,通信双方通过发送三个身份认证数据包的方式实现身份认证,数据包基于TCP/IP协议,并对通信链路进行加密,身份认证数据包中包含用户的标识,IP地址,及其它辅助信息,并使用SM2算法对以及对相关的信息进行了加密与数字签名。若假定通信的双方为实体A和实体B,实体A是数据发起方,则数据包内容及过程如图I所示
数据包I为
RaiiicstJD A, SLu ,..<·, ( IP A!SK!X>.IlIP Λ! IP A !SN! Xi)
数据包2为
Dispense. lO_J-i,SN : IJ!|SN < IIDJij SN ■ iijXi
数据包3为
Acknowledge. ID.....AiSN+EccllilIjP.....A; SN-2|iXL Esレ,“Hlil'. A:ilD...周SN ト2: X,l。其中X是保留关键字,通过自定义保留关键字X实现自定义身份认证;I I代表数据连接运算;ID_A是指实体A的用户标识;ID_B是指实体B的用户标识;SN是实体随机产生的会话序列号;H(*)代表对数据*进行hash运算;En(M)代表使用密钥对数据M进行加密,其中N在、本发明中为集合{CertA, SkeyA, CertB, SkeyB}中的元素,数据M为如IP_A| SN| X等的数据。
通信实体接收到通信对端发送的身份确认数据包以后,一般采用如下4个步骤对数据进行处理,此处以实体B接收到消息I为例,其数据处理流程如图2所示
O对消息I进行数据过滤,过滤的规则可以为基于IP地址,端口号和网络协议的过
滤;
2 )对消息I进行数据进行提取,得到ID_A,Ecerte (IP_A | | SN | | X)和EskeyA (H (IP_A||ID_A| SN||X));
3)使用私钥SkeyB对数据EtotB(IP_A|| SN| |X)解密,得到数据IP_A| | SN| |X ;
4)将用户标识ID_A和数据IP_AI I SN | | X进行合成,并做hash运算,得到H (IP_A | | ID_AI I SN I IX)。5)根据用户标识ID_A查找实体A的公钥CertA,根据CertA对发送数据签名进行验签,井根据验签的对比结果查看数据是否是伪造,并确认发送者的合法身份。由于数据包处理过程涉及到通过用户标识(ID)查找通信实体公钥(Cert)的过程,本发明采用本地查找公钥和向公钥服务器查找公钥相结合的方式。通信实体定期向公钥发布服务器更新通信实体公钥数据库;公钥发布服务器 集中部署,对需要通信的实体进行登记,保存通信实体的公钥,并对不再进行通信的实体采取撤销公钥的措施。通信实体查找公钥的方式如图3所示
1)实体B根据用户标识ID_A在本地服务器查找是否有对应公钥CertA,若有,则使用该公钥,若无,则向公钥发布服务器发出查找请求;
2)公钥发布服务器将查询的结果返回给实体B,实体B根据查询到的公钥对数据包进行相关的验签操作,若查询不到相关的公钥,则实体B丢弃该数据包。
权利要求
1.一种基于SM2算法可自定义的网络身份认证方法,包括以下步骤 SI实体A向实体B发送数据包1,其内容为 Retliiesi, ID A, ST^Jzi.,,MIPXt, l,Wv,{!i(!P A! II) A ISNj X);i ; S2实体B对数据包I进行处理; S3实体B向实体A发送数据包2,其内容为I]iispenst\ (D^H.SN : I 上,:cr1SN Ip)上Il^HS SN * IiiXi ; S4实体A对数据包2进行处理; S5实体A向实体B发送数据包3,其内容为 AekiKwk'dgc, ID.....A1SlM+2. E,. ,.,,-,(IP.....A; SN-2liXKA丨AHSN+2: X>'i . S6实体B对数据包3进行处理; 所述的各数据包中-X是保留关键字,通过自定义保留关键字X实现自定义身份认证;I代表数据连接运算;ID_A是指实体A的用户标识;ID_B是指实体B的用户标识;SN是实体随机产生的会话序列号;H(*)代表对数据*进行hash运算;En(M)代表使用密钥N对数据M进行加密,其中N为集合{CertA,SkeyA, CertB, SkeyB}中的元素、数据M为需要加密的数据。
2.根据权利要求I所述的基于SM2算法可自定义的网络身份认证方法,其特征是所述的S2包括以下步骤 S2-1对数据包I进行基于IP地址、端口号和网络协议的数据过滤;S2-2 对数据包 I 进行数据提取,得到ID_A, Ecerffl (IP_A I I SN | | X)和 EskeyA (H (IP_A||ID_A| SN||X));S2-3 使用私钥 SkeyB 对数据 ECertB (IP_A | | SN | | X)解密,得到数据 IP_A | | SN | | X ; S2-4将用户标识ID_A和数据IP_A| SN| IX进行合成,并做hash运算,得到H(IP_A||ID_A| SN| X); S2-5根据用户标识10_八查找实体A的公钥CertA,根据CertA对发送数据签名进行验签,并根据验签的对比结果查看数据是否是伪造,从而确认发送者的合法身份。
3.根据权利要求2所述的基于SM2算法可自定义的网络身份认证方法,其特征是所述的S2-5用户通过ID_A查找实体A的公钥CertA的方式可以通过本地查询的方式亦可采用向公钥发布服务器发送查找信息的方式,具体包括以下步骤 S2-5-1实体B查找本地服务器看是否有ID_A对应的公钥CertA,若有,则使用该公钥;若无,则采用向公钥发布服务器查询的方式,向公钥服务器发送公钥查找服务请求,数据包中包含信息ID_A ; S2-5-2公钥服务器向实体B返回ID_A对应的公钥CertA,若返回的结果表明无此公钥,则实体B丢弃数据包I。
4.根据权利要求3所述的基于SM2算法可自定义的网络身份认证方法,其特征是所述的S4包括以下步骤 S4-1实体A对数据包2进行基于IP地址、端口号和网络协议的数据过滤; S4-2 对数据包 2 进行数据提取,得到ID_B,,ECertA(IP_B I SN+1 X)和 EskeyB(IP_B|IID_B ISN+1I X);S4-3 使用私钥 SkeyA 对数据 ECertA(IP_B | | SN+11 | X)解密,得到数据 IP_B | | SN+11 | X ; S4-4将用户标识ID_B和数据IP_B I I SN+11 | X进行合成,并做hash运算,得到H(IP_B|IID_B ISN+1I X); S4-5根据用户标识ID_B查找实体B的公钥CertB,根据CertB对发送数据签名进行验签,并根据验签的对比结果查看数据是否是伪造,从而确认发送者的合法身份。
5.根据权利要求4所述的基于SM2算法可自定义的网络身份认证方法,其特征是所述的S4-5用户通过ID_B查找实体B的公钥CertB的方式可以通过本地查询的方式亦可采用向公钥发布服务器发送查找信息的方式,具体包括以下步骤 S4-5-1实体A查找本地服务器看是否有ID_B对应的公钥CertB,若有,则使用该公钥;若无,则采用向公钥发布服务器查询的方式,向公钥服务器发送公钥查找服务请求,数据包中包含信息ID_B ; S4-5-2公钥服务器向实体A返回ID_B对应的公钥CertB,若返回的结果表明无此公钥,则实体A丢弃数据包2 ; 所述的步骤S6与步骤S2类似。
6.根据权利要求1-5所述的任意一项基于SM2算法可自定义的网络身份认证方法,其特征是所述的通信实体定期向公钥发布服务器更新通信实体公钥数据库;公钥发布服务器集中部署,对需要通信的实体进行登记,保存通信实体的公钥,并对不再进行通信的实体采取撤销公钥的措施。
全文摘要
一种基于SM2算法可自定义的网络身份认证方法,通过通信实体A与实体B交换3个数据包以及对数据包进行处理达到身份认证的目的。数据包基于TCP/IP协议,并使用SM2算法对数据包中内容进行加密与签名的方式实现认证。该专利通过定义数据包中保留字X的数值实现可自定义身份认证的目的;本发明使用的SM2算法的加密强度高,保留字实现可自定义身份认证的方法可实现数据通信方在初始会话时的身份认证,用于数据加密传输对称密钥的协商,消除网络数据传输过程身份伪造的风险,保护信息系统的安全。
文档编号H04L29/06GK102710624SQ20121016330
公开日2012年10月3日 申请日期2012年5月24日 优先权日2012年5月24日
发明者周强峰, 梁志宏, 梁智强, 梁毅成, 江泽鑫, 石炜君, 胡朝辉, 陈炯聪, 骆书剑 申请人:广东电网公司电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1