一种基于信任令牌的安全接入系统及其安全接入方法与流程

文档序号:16381899发布日期:2018-12-22 09:33阅读:169来源:国知局
一种基于信任令牌的安全接入系统及其安全接入方法与流程

本发明涉及一种网络通信领域中服务方与服务请求方之间进行相互认证并建立连接的系统及方法,尤其是涉及一种基于信任令牌的安全接入系统及其安全接入方法。

背景技术

随着互联网、物联网、泛在网等新兴网络的快速发展,网络规模呈爆炸式的发展,dos、ddos攻击的规模越来越大,网络安全形势日益严峻。当前,依靠特征检测、流量过滤等被动方式来抵御危险因素的代价越来越大,非安全连接的流量难以追责。现有网络应该更多地考虑从源头上控制恶意网络流量,将流量和连接与网络用户身份进行关联。基于安全连接的流量识别方法能保障用户数据免于被篡改、被仿冒、被重发,同时可以快速区分非法流量与正常流量。常用的安全连接建立方法是基于ssl/tls的,该类方法涉及的通信双方能够进行两方身份强认证,并建立安全连接。但是现有的基于ssl/tls的安全连接建立方法缺少对dos、ddos的应对机制,不能同时保证安全和认证效率。

在现有的认证和连接建立的安全防护机制中,工作量证明常被用于攻击防范。这一概念最早由cynthiadwork和moninaor于1993年的学术论文“pricingviaprocessing,or,combattingjunkmail,advancesincryptology”中提出;工作量证明一词则是在1999年由markusjakobsson与arijuels所发布,目前主要用于加密货币和email。目前,最常见是基于验证码的认证方法,通过改变验证码的识别难度来防止机器人发起大量连接,但是该方法只能针对有人的情况。在无人类参与的情况下,要实现强认证和连接建立,同时防范拒绝服务攻击,常见的方法主要有三类:基于计算难题、基于网络难题、基于策略难题。基于计算难题的方法(例如tcp/ippuzzle),利用计算难题来增强连接建立过程的难度,不需要额外的设备,但现有方法在计算难题与认证协议的融合方面存在问题,缺乏强认证和连续性支撑。基于网络访问的认证(例如guidedtourpuzzle理论)利用网络访问时延来提高连接建立难度,但需要添加多个额外的节点,并且这些节点本身容易成为访问瓶颈。基于策略的认证(例如game理论),利用类似nash均衡来平衡双方的关系,但是该类方法会导致客户端被误杀。



技术实现要素:

发明目的:本发明提供一种基于信任令牌的安全接入系统及方法,克服现有技术缺乏强认证和连续性支撑、容易成为访问瓶颈以及会导致客户端被误杀的不足,本发明的利用信任等级的递进关系逐步完成请求方和服务方的相互认证,提高针对服务方的拒绝服务攻击的难度,最终保证请求方和服务方建立安全的信任连接。

技术方案:本发明采用以下技术方案,一种基于信任令牌的安全接入系统,包括请求方、服务方和传输通道,其中:

请求方:发起安全接入过程的用户侧装置;

服务方:提供基于信任令牌的安全接入服务的服务侧装置;

传输通道:用于提供请求方和服务方之间通信的传输手段。

进一步地,所述的服务方包括令牌种子管理单元、证书管理单元、非对称加解密单元、对称加解密单元、散列运算单元、输入输出接口、无状态预判单元、缓冲单元和连接管理单元,其中:

令牌种子管理单元:周期性地产生两个不同的信任令牌种子,所述的两个不同的信任令牌种子包括接入竞争信任令牌种子和接入认证信任令牌种子,所述的接入竞争信任令牌种子是用于计算接入竞争信任令牌的参数之一,所述的接入认证信任令牌种子是用于计算接入认证信任令牌的参数之一;

证书管理单元:存储服务方的数字证书和服务方的私钥;

非对称加解密单元:专用于进行非对称加解密运算;

对称加解密单元:专用于进行对称加解密运算;

散列运算单元:专用于进行散列运算;

输入输出接口:完成接收数据和发送数据;

连接管理单元:用于控制安全接入的执行过程,管理服务方的接入难度,该单元通过调用所述服务方的其它单元进行相关的安全接入计算,通过本地的输入输出接口向请求方发送消息;

缓冲单元:主要缓存最近被使用过的信任令牌信息,通过缓冲检查后,相关信息被发送至连接管理单元;

无状态预判单元:处理来自请求方的输入消息,能针对来自请求方的特定消息生成相应的响应消息,并将该响应消息通过所述的输入输出接口向所述的请求方发送,也能将来自请求方的且包含正确信任令牌的消息转发至缓冲单元。

进一步地,所述的无状态预判单元生成的响应消息包括了被加密的所述的接入竞争信任令牌,加密的秘钥是由一个用于预防查表计算的掺杂随机数和一个用于提升计算量的难题随机数作为参数后计算获得;

进一步地,所述的无状态预判单元不存储与具体的请求者相关的信息;

一种基于信任令牌的安全接入系统的安全接入方法,包括以下步骤:

步骤一,所述的请求方生成“接入竞争请求”消息,并经过所述的传输通道将“接入竞争请求”消息发送至所述服务方的输入输出接口;

所述“接入竞争请求”消息包含了消息类型、所述请求方随机生成的接入竞争数、所述请求方的数字证书的关键信息;所述请求方在本地保存所述的接入竞争数;所述请求方的数字证书的关键信息至少包括所述请求方的公开秘钥信息;

步骤二,所述服务方的输入输出接口将接收到的“接入竞争请求”消息传递给所述的无状态预判单元;

所述的无状态预判单元接收“接入竞争请求”消息,调用所述的散列运算单元,对由所述的接入竞争信任令牌种子、接入竞争时戳、“接入竞争请求”消息中载明的接入竞争数和请求方的数字证书的关键信息共同组成的数据段进行散列计算,将计算结果作为所述的接入竞争信任令牌,所述的接入竞争时戳是所述服务方的当前的系统时戳;

所述的无状态预判单元随机生成一个掺杂随机数,根据连接管理单元生成的接入难度,随机生成一个符合接入难度的难题随机数,调用所述的散列运算单元,计算由所述的掺杂随机数和所述的难题随机数共同组成的数据段的散列值,将该散列值作为对称加密密钥,调用对称加解密单元,对由所述请求方的身份标识、所述服务方的身份标识、“接入竞争请求”消息中载明的接入竞争数、所述的接入竞争时戳、所述的接入竞争信任令牌共同组成的数据段进行对称加密运算,所述请求方的身份标识是指能够证明请求方身份的凭证,所述服务方的标识是指能够证明服务方身份的凭证;

所述的无状态预判单元生成“接入竞争响应”消息,所述的“接入竞争响应”消息包含了消息类型、接入难度、散列算法类型、加密算法类型、所述的掺杂随机数、所述的被对称加密后的数据段、所述服务方的数字证书;

所述的无状态预判单元通过所述的输入输出接口将“接入竞争响应”消息向所述的请求方发送;

步骤三,所述的请求方从传输通道接收到“接入竞争响应”消息,根据“接入竞争响应”消息中载明的接入难度、散列算法类型、加密算法类型、掺杂随机数,尝试遍历符合接入难度的解密秘钥空间,直至“接入竞争响应”消息中的密文解密成功或者已经遍历整个解密秘钥空间,解密是否成功的判断依据为从“接入竞争响应”消息计算出的接入竞争数是否与所述的请求方本地存储的接入竞争数相同,如果两者相同,那么解密成功;

如果所述的请求方能够解密成功,那么所述的请求方可以获知正确的接入竞争信任令牌、接入竞争时戳等信息;所述的请求方生成“接入意图证明”消息,所述的“接入意图证明”消息包含了消息类型、接入竞争数、接入竞争时戳、接入竞争信任令牌、所述请求方的数字证书的关键信息;所述请求方的数字证书的关键信息至少包括所述请求方的公开秘钥信息;

所述的请求方在本地存储所述服务方的数字证书;

所述的请求方通过所述的传输通道将“接入意图证明”消息发送至所述服务方的输入输出接口;

步骤四,所述服务方的输入输出接口将接收到的“接入意图证明”消息发送至所述的无状态预判单元;

所述的无状态预判单元接收到“接入意图证明”消息,调用所述的散列运算单元,对由所述的接入竞争信任令牌种子、“接入意图证明”消息中载明的接入竞争时戳、“接入竞争请求”消息中载明的接入竞争数和所述请求方的数字证书的关键信息共同组成的数据段进行散列计算,将计算结果作为接入竞争信任令牌,如果计算获得的接入竞争信任令牌与“接入意图证明”消息载明的接入竞争信任令牌相同,则判定接收到的“接入意图证明”消息有效,否则,终止接入操作;

所述的无状态预判单元判定所述的“接入意图证明”消息有效后,将该“接入意图证明”消息传送给所述的缓冲单元;

所述的缓冲单元,接收“接入意图证明”消息,查询本地是否已经存储“接入意图证明”消息中载明的接入竞争信任令牌;如果所述的缓冲单元已缓存所述的接入竞争信任令牌,那么所述的服务方将终止处理;如果所述的缓冲单元未缓存所述的接入竞争信任令牌,那么所述的缓冲单元存储所述的接入竞争信任令牌,并将所述的“接入意图证明”消息传递给所述的连接管理单元;

所述的连接管理单元接收到“接入意图证明”消息后,生成服务方的秘钥种子,所述服务方的秘钥种子可被服务方、请求方用于计算共享的会话秘钥,所述的服务方在本地不存储所述的服务方的秘钥种子;

所述的连接管理单元调用散列运算单元,对由所述的接入认证信任令牌种子、接入认证时戳、所述请求方的接入竞争数和所述请求方的数字证书的关键信息共同组成的数据段进行散列计算,将计算结果作为所述的接入认证信任令牌,所述的接入认证时戳为当前所述服务方的系统时戳;

所述的连接管理单元调用非对称加解密单元,先对由所述请求方的身份标识、所述服务方的身份标识、所述请求方的接入竞争数、所述的接入认证时戳、所述的接入认证信任令牌、所述服务方的秘钥种子组成的数据段进行非对称加密运算,所使用的非对称加密秘钥为服务方的私钥,获得密文数据段,再对该密文数据段进行一次非对称加密运算,所使用的非对称加密秘钥为所述请求方的公钥,获得经过两次加密的密文数据段;

所述的连接管理单元生成“接入认证请求”消息,所述的“接入认证请求”消息包含了消息类型、散列算法类型、加密算法类型、所述的经过两次加密的密文数据段;

所述的连接管理单元通过所述的输入输出接口将“接入认证请求”消息向所述的请求方发送;

步骤五,所述请求方从传输通道接收到“接入认证请求”消息,根据“接入认证请求”消息中载明的散列算法类型、加密算法类型,以及所述请求方的私钥和所述服务方的公钥,对“接入认证请求”消息中经过两次加密的密文数据段进行非对称解密运算,获得正确的接入认证信任令牌、所述服务方的秘钥种子、接入认证时戳等信息;

所述请求方生成秘钥种子,所述请求方的秘钥种子可被服务方、请求方用于计算共享的会话秘钥,所述请求方在本地存储所述请求方的秘钥种子和服务方的秘钥种子;

所述请求方使用所述服务方的公钥作为非对称加密秘钥,对包含所述请求方的身份标识、所述服务方的身份标识、所述请求方的秘钥种子、“接入认证请求”消息中采用所述服务方的私钥加密的密文的数据段进行非对称加密运算;

所述请求方生成“接入认证响应”消息,所述的“接入认证响应”消息包含了消息类型、所述的接入竞争数、“接入认证请求”消息中载明的接入认证时戳、“接入认证请求”消息中载明的接入认证信任令牌、所述的采用所述服务方的公钥非对称加密后的数据、所述请求方的数字证书的关键信息;所述请求方的数字证书的关键信息至少包括所述请求方的公开秘钥信息;

所述请求方通过所述的传输通道将“接入认证响应”消息发送至所述服务方的输入输出接口;

步骤六,所述服务方的输入输出接口将接收到的“接入认证响应”消息发送至所述的无状态预判单元;

所述的无状态预判单元接收到“接入认证响应”消息,调用所述的散列运算单元,对由所述的接入认证信任令牌种子、“接入认证响应”消息中载明的接入认证时戳、“接入认证响应”消息中载明的接入竞争数和所述请求方的数字证书的关键信息共同组成的数据段进行散列计算,将计算结果作为接入认证信任令牌,如果计算获得的接入认证信任令牌与“接入认证响应”消息载明的接入认证信任令牌相同,则判定接收到的“接入认证响应”消息有效,否则,终止接入操作;

所述的无状态预判单元判定所述的“接入认证响应”消息有效后,将该“接入认证响应”消息传送给所述的缓冲单元;

所述的缓冲单元,接收“接入认证响应”消息,查询本地是否已经存储“接入认证响应”消息中载明的接入认证信任令牌;如果所述的缓冲单元已缓存所述的接入认证信任令牌,那么所述的服务方将终止处理;如果所述的缓冲单元未缓存所述的接入认证信任令牌,那么所述的缓冲单元存储所述的接入认证信任令牌,并将所述的“接入认证响应”消息传递给所述的连接管理单元;

所述的连接管理单元接收到“接入认证响应”消息后,调用所述的非对称加解密单元,分别采用所述服务方的私钥和所述服务方的公钥作为非对称解密秘钥,对“接入认证响应”消息中采用所述服务方的公钥加密的数据段和采用所述服务方私钥加密的数据段进行非对称解密运算,获得所述请求方的秘钥种子、所述服务方的秘钥种子、接入认证信任令牌,比较该接入认证信任令牌与“接入认证响应”消息在载明的接入认证信任令牌是否相同,如果两者相同,则认为“接入认证响应”有效;否则,所述服务方终止处理;

所述的连接管理单元判定所述的“接入认证响应”消息有效后,根据所述请求方的秘钥种子和所述服务方的秘钥种子,通过某种处理方法计算出一个会话秘钥,所述的处理方法包括但不限于拼接、异或、相乘等操作,所述请求方和所述服务方完成安全接入后的会话将采用所述的会话秘钥;

所述的连接管理单元,调用非对称加解密单元,使用所述请求方的公钥作为非对称加密秘钥,对由所述请求方的身份标识、所述服务方的身份标识、所述请求方的秘钥种子、所述服务方的秘钥种子、认证确认时戳组成的数据段进行非对称加密运算,获得密文数据段,所述的认证确认时戳为当前所述服务方的系统时戳;

所述的连接管理单元生成“接入认证确认”消息,所述的“接入认证确认”消息包含了消息类型、散列算法类型、加密算法类型和经过所述请求方的公钥加密的密文数据段;

所述的连接管理单元通过所述的输入输出接口将“接入认证确认”消息向所述的请求方发送;

步骤七,所述的请求方从传输通道接收到“接入认证确认”消息,根据所述的“接入认证确认”消息中载明的散列算法类型和加密算法类型,以及所述请求方的私钥,对“接入认证确认”消息中的密文部分进行非对称解密运算,并验证“接入认证确认”消息被解密后得到的所述服务方的秘钥种子和所述请求方的秘钥种子与本地存储的信息是否一致;

如果“接入认证确认”消息载明的两个秘钥种子跟本地存储的信息一致,那么所述请求方根据所述请求方的秘钥种子和所述服务方的秘钥种子,通过与所述服务方一致的处理方法计算出一个会话秘钥,所述请求方和所述服务方完成安全接入后的会话将采用所述的会话秘钥;否则,所述请求方将终止处理;

步骤八,在完成安全接入之前,所述的请求方验证所述服务方的数字证书的ca签名,所述的服务方验证所述请求方的数字证书的ca签名,所述的两个验证过程包括用根证书公钥来验证该证书的颁发者签名和通过crl验证证书的状态,只有当数字证书被验证通过后,所述的请求方和所述的服务方才能完成安全接入过程。

有益效果:本发明与现有技术相比:

1、利用加“难题”主动增加接入请求方的计算量,且增加的计算量可由服务方动态调整。

2、所述服务方本地在不存储关于请求方信息的前提下,可以过滤流量。

3、在支持强身份认证的同时,能够提供服务方抵抗网络攻击的能力。

4、无状态预判单元可支持分布式处理和支持硬件处理,提高抗攻击能力。

5、缓冲单元缓存最近访问的信任令牌,可防止信任令牌的重复使用。

附图说明

图1是本发明所述的请求方与服务方的连接关系的示意图;

图2是本发明所述的服务方的结构框图;

图3是本发明所述的请求方与服务方之间的消息交互图;

图4是本发明所述的接入竞争请求消息的组成图;

图5是本发明所述的接入竞争响应消息的组成图;

图6是本发明所述的接入意图证明消息的组成图;

图7是本发明所述的接入认证请求消息的组成图;

图8是本发明所述的接入认证响应消息的组成图;

图9是本发明所述的接入认证确认消息的组成图。

具体实施方式

以下,结合附图对本发明技术方案的具体实施方式作进一步的详细描述:

在互联网环境中,服务器同时为大量的客户端提供接入服务。通常情况下,服务器能够支持一定数量客户端的并发接入操作。但是,在某些特殊情况下,会出现超过预期数量的接入操作,例如正常用户因某特定事件引发的集中接入操作、恶意用户同时仿冒多个用户引发的拒绝服务攻击等,此时服务器需要一种既能根据负载状态动态调整用户接入时间,又能提高恶意用户同时仿冒多个用户的难度的安全接入系统。

本发明的所述基于信任令牌的安全接入系统包括请求方、服务方、传输通道,所述请求方是发起安全接入过程的用户侧装置,所述服务方是提供基于信任令牌的安全接入服务的服务侧装置,所述传输通道是用于提供请求方和服务方之间通信的传输手段;所述的服务方包括令牌种子管理单元、证书管理单元、非对称加解密单元、对称加解密单元、散列运算单元、输入输出接口、无状态预判单元、缓冲单元、连接管理单元;本发明的核心思想是服务方利用所述的无状态预判单元在不存储请求方数据的情况下验证请求方是否执行相应等级的解密计算,从而过滤达不到相应信任等级的消息,利用所述的缓冲单元防止短时间内重复使用相同的令牌发动攻击,利用所述的令牌种子管理单元周期性的产生全局的信任令牌种子,通过调整信任令牌种子的周期和计算难题的难度来动态调整请求方的接入时间。服务方的非对称加解密单元、对称加解密单元、散列运算单元专用于完成相应的数学计算,服务方的证书管理单元则存储服务方的数字证书和服务方的私钥,服务方的输入输出接口完成接收数据和发送数据,服务方的连接管理单元被用于执行安全接入中的涉及强认证的过程。

如图1所示的,本发明所述一种信任传递的安全接入系统的基本构成包括了多个请求方(请求方1、请求方2、……、请求方n,n为正整数)、传输通道、服务方,以及它们的连接关系。所述的传输通道可以是不同类型传输网络。如图2所示的,本发明的所述服务方包括令牌种子管理单元、证书管理单元、非对称加解密单元、对称加解密单元、散列运算单元、输入输出接口、无状态预判单元、缓冲单元、连接管理单元。

所述的令牌种子管理单元周期性地产生两个不同的信任令牌种子,所述的两个不同的信任令牌种子包括接入竞争信任令牌种子和接入认证信任令牌种子,所述的接入竞争信任令牌种子是用于计算接入竞争信任令牌的参数之一,所述的接入认证信任令牌种子是用于计算接入认证信任令牌的参数之一;所述的接入竞争信任令牌种子和接入认证信任令牌种子的长度为4字节,所述的接入竞争信任令牌和接入认证信息令牌的长度为20字节。

所述的证书管理单元存储服务方的x.509数字证书和服务方的私钥,在本实施例中,采用的公钥和私钥长度为2048比特(即256字节);所述的非对称加解密单元被专用于进行非对称加解密运算,支持例如rsa、椭圆曲线加密算法、diffie-hellman密钥交换算法等;所述的对称加解密单元被专用于进行对称加解密运算,例如des、3des、aes等;所述的散列运算单元被专用于进行散列运算,例如md5、sha1、sha256等;因为采用不同算法的运算结果的长度不同,所以为了匹配系统中的不同数据段的长度要求,本实施例可以对不同算法的运算结果进行二次处理,所述的处理包括但不限于截断、补零等操作。

所述的输入输出接口完成接收数据和发送数据的物理接口或逻辑接口。

所述的无状态预判单元处理来自请求方的输入消息,根据所述的接入竞争信任令牌种子(长度为4字节)、接入竞争时戳(长度为8字节)、所述请求方的接入竞争数(长度为4字节)和所述请求方的数字证书的关键信息(长度为292字节),调用所述的散列运算单元,计算出接入竞争信任令牌;根据所述的接入认证信任令牌种子(长度为4字节)、接入认证时戳(长度为8字节)、所述请求方的接入竞争数(长度为4字节)和所述请求方的数字证书的关键信息(长度为292字节),调用所述的散列运算单元,计算出接入认证信任令牌;能针对来自请求方的特定消息生成相应的响应消息,并将该响应消息通过所述的输入输出接口向所述的请求方发送相应的消息,也能将来自请求方的且包含正确令牌的消息转发至缓冲单元,所述请求方的数字证书的关键信息包括序列号(长度为16字节)、颁发结构秘钥标识符(长度为20字节)、公开秘钥(长度为256字节);

所述的缓冲单元主要缓存最近被使用过的信任令牌信息,利用环形缓冲机制,可重复读写,缓冲单元的每条数据只能被使用一次,以防御double-spending攻击;缓冲单元检查令牌,只有第一次在缓冲单元出现的令牌,该令牌对应的消息才会被发送至连接管理单元;

所述的连接管理单元被用于控制安全接入的执行过程,管理服务方的接入难度,该单元通过调用所述服务方的其它单元进行相关的安全接入计算,通过本地的输入输出接口向请求方发送消息;

如图3所示的,本发明的所述的一种基于信任令牌的安全接入方法包含了接入竞争请求、接入竞争响应、接入意图证明、接入认证请求、接入认证响应、接入认证确认六个消息,所述的一种基于信任令牌的安全接入方法的具体交互过程包括:

步骤一,所述的请求方生成“接入竞争请求”消息,并经过所述的传输通道将“接入竞争请求”消息发送至所述服务方的输入输出接口;

如图4所示的,所述“接入竞争请求”消息包含了消息类型101(长度为1字节)、所述请求方随机生成的接入竞争数102(长度为4字节)、所述请求方的数字证书的关键信息103(长度为292字节);所述请求方在本地保存所述的接入竞争数;

步骤二,所述服务方的输入输出接口将接收到的“接入竞争请求”消息传递给所述的无状态预判单元;

所述的无状态预判单元接收“接入竞争请求”消息,调用所述的散列运算单元,对由所述的接入竞争信任令牌种子(长度为4字节)、接入竞争时戳(长度为8字节)、“接入竞争请求”消息中载明的接入竞争数102(长度为4字节)和请求方的数字证书的关键信息103(长度为292字节)串联拼接组成的数据段进行散列计算,将计算结果作为所述的接入竞争信任令牌(长度为20字节),所述的接入竞争时戳是所述服务方的当前的系统时戳;

所述的无状态预判单元随机生成一个掺杂随机数,所述的掺杂随机数的长度为20字节;所述的无状态预判单元根据连接管理单元生成的接入难度(长度为1字节,表示的范围为0~255),随机生成一个符合接入难度的随机数(不同的接入难度对应随机数的最大比特数,例如,如果接入难度为32,那么随机数的取值范围为0x0~0xffffffff),调用所述的散列运算单元,计算由所述的掺杂随机数和所述的符合接入难度的随机数串联拼接组成的数据段的散列值,将该散列值作为对称加密密钥(不同的加解密算法取值不同,例如3des算法,则顺序截取该散列值分别作为第一秘钥和第二秘钥),然后再调用对称加解密单元,对由所述请求方的身份标识(长度为16字节)、所述服务方的身份标识(长度为16字节)、“接入竞争请求”消息中载明的接入竞争数102(长度为4字节)、所述的接入竞争时戳(长度为8字节)、所述的接入竞争信任令牌(长度为20字节)串联拼接组成的数据段进行对称加密运算,获得密文数据段(长度为64字节),所述请求方的身份标识是指能够证明请求方身份的唯一凭证,可以是请求方的数字证书的序列号,所述服务方的标识是指能够证明服务方身份的唯一凭证,可以是服务方的数字证书的序列号;

所述的无状态预判单元生成“接入竞争响应”消息,如图5所示的,所述的“接入竞争响应”消息包含了消息类型201(长度为1字节)、接入难度202(长度为1字节)、散列算法类型203(长度为1字节)、加密算法类型204(长度为1字节)、所述的掺杂随机数205(长度为20字节)、所述的被对称加密后的密文数据段206(长度为64字节)、所述服务方的数字证书207(长度是可变的);

所述的无状态预判单元通过所述的输入输出接口将“接入竞争响应”消息向所述的请求方发送。

步骤三,所述的请求方从传输通道接收到“接入竞争响应”消息,根据“接入竞争响应”消息中载明的接入难度202、散列算法类型203、加密算法类型204、掺杂随机数205和本地存储的接入竞争数,尝试遍历符合接入难度的解密秘钥空间,直至“接入竞争响应”消息中的密文被解密成功或者请求方已经遍历整个解密秘钥空间,解密是否成功的判断依据为从“接入竞争响应”消息计算出的接入竞争数是否与所述的请求方本地存储的接入竞争数相同,如果两者相同,那么解密成功;如果所述的请求方能够解密成功,那么所述的请求方可以获知正确的接入竞争信任令牌、接入竞争时戳等信息,否则所述的请求方终止处理;

所述的请求方生成“接入意图证明”消息,如图6所示的,所述的“接入意图证明”消息包含了消息类型301(长度为1字节)、接入竞争数302(长度为4字节)、接入竞争时戳303(长度为8字节)、接入竞争信任令牌304(长度为20字节)、所述请求方的数字证书的关键信息305(长度为292字节);

所述的请求方在本地存储所述服务方的数字证书207;

所述的请求方通过所述的传输通道将“接入意图证明”消息发送至所述服务方的输入输出接口;

步骤四,所述服务方的输入输出接口将接收到的“接入意图证明”消息发送至所述的无状态预判单元;

所述的无状态预判单元接收到“接入意图证明”消息,调用所述的散列运算单元,对由所述的接入竞争信任令牌种子(长度为4字节)、“接入意图证明”消息中载明的接入竞争数302(长度为4字节)、接入竞争时戳303(长度为8字节)和所述请求方的数字证书的关键信息305(长度为292字节)串联拼接组成的数据段进行散列计算,将计算结果作为接入竞争信任令牌(长度为20字节),如果计算获得的接入竞争信任令牌与“接入意图证明”消息载明的接入竞争信任令牌304相同,则判定接收到的“接入意图证明”消息有效,否则,终止接入操作;

所述的无状态预判单元判定所述的“接入意图证明”消息有效后,将该“接入意图证明”消息传送给所述的缓冲单元;

所述的缓冲单元,接收“接入意图证明”消息,首先查询本地是否已经存储“接入意图证明”消息中载明的接入竞争信任令牌304;如果所述的缓冲单元已缓存所述的接入竞争信任令牌304,那么所述的服务方将终止处理;如果所述的缓冲单元未缓存所述的接入竞争信任令牌304,那么所述的缓冲单元存储所述的接入竞争信任令牌,并将所述的“接入意图证明”消息传递给所述的连接管理单元;

所述的连接管理单元接收到“接入意图证明”消息后,生成所述服务方的秘钥种子,所述服务方的秘钥种子是长度为32字节的随机数;

所述的连接管理单元调用散列运算单元,对由所述的接入认证信任令牌种子(长度为4字节)、接入认证时戳(长度为8字节)、所述请求方的接入竞争数302(长度为4字节)和所述请求方的数字证书的关键信息305(长度为292字节)串联拼接组成的数据段进行散列计算,将计算结果作为所述的接入认证信任令牌(长度为20字节),所述的接入认证时戳为当前所述服务方的系统时戳;

所述的连接管理单元调用非对称加解密单元,先对由所述请求方的身份标识(长度为16字节)、所述服务方的身份标识(长度为16字节)、所述请求方的接入竞争数302(长度为4字节)、所述的接入认证时戳(长度为8字节)、所述的接入认证信任令牌(长度为20字节)、所述服务方的秘钥种子(长度为32字节)组成的数据段(长度为96字节)进行非对称加密运算,获得密文数据段(长度为256字节),所使用的非对称加密秘钥为服务方的私钥;再对该密文数据段进行一次非对称加密运算,所使用的非对称加密秘钥为所述请求方的公钥,获得经过二次加密运算的密文数据段(长度为256字节);

所述的连接管理单元生成“接入认证请求”消息,所述的“接入认证请求”消息包含了消息类型401(长度为1字节)、散列算法类型402(长度为1字节)、加密算法类型403(长度为1字节)、所述的经过二次加密运算的密文数据段404(长度为256字节);

所述的连接管理单元通过所述的输入输出接口将“接入认证请求”消息向所述的请求方发送;

步骤五,所述请求方从传输通道接收到“接入认证请求”消息,根据“接入认证请求”消息载明的散列算法类型402、加密算法类型403,以及所述请求方的私钥和所述服务方的公钥,对“接入认证请求”消息中经过两次加密的密文数据段404进行两次非对称解密运算,获得正确的接入认证信任令牌、所述服务方的秘钥种子、接入认证时戳等信息;

所述请求方生成请求方的秘钥种子,所述请求方的秘钥种子是长度为32字节的随机数,所述请求方在本地存储所述请求方的秘钥种子和所述的服务方的秘钥种子;

所述请求方使用所述服务方的公钥作为非对称加密秘钥,对包含所述请求方的身份标识(长度为16字节)、所述服务方的身份标识(长度为16字节)、所述请求方的秘钥种子(长度为32字节)、“接入认证请求”消息中经过所述服务方的私钥加密的密文数据段(长度为256字节)串联拼接组成的数据段进行非对称加密运算,获得密文数据段(长度为512字节);

所述请求方生成“接入认证响应”消息,所述的“接入认证响应”消息包含了消息类型501(长度为1字节)、所述的接入竞争数502(长度为4字节)、“接入认证请求”消息中载明的接入认证时戳503(长度为8字节)、“接入认证请求”消息中载明的接入认证信任令牌504(长度为20字节)、本地计算出的采用所述服务方的公钥加密的密文数据段505(长度为512字节)、所述请求方的数字证书的关键信息506(长度为292字节);

所述请求方通过所述的传输通道将“接入认证响应”消息发送至所述服务方的输入输出接口;

步骤六,所述服务方的输入输出接口将接收到的“接入认证响应”消息发送至所述的无状态预判单元;

所述的无状态预判单元接收到“接入认证响应”消息,调用所述的散列运算单元,对由所述的接入认证信任令牌种子(长度为4字节)、“接入认证响应”消息中载明的接入认证时戳503(长度为8字节)、“接入认证响应”消息中载明的接入竞争数054(长度为4字节)和所述请求方的数字证书的关键信息506(长度为292字节)串联拼接组成的数据段进行散列计算,将计算结果作为接入认证信任令牌(长度为20字节),如果计算获得的接入认证信任令牌与“接入认证响应”消息载明的接入认证信任令牌504相同,则判定服务方接收到的“接入认证响应”消息有效,否则,终止接入操作;

所述的无状态预判单元判定所述的“接入认证响应”消息有效后,将该“接入认证响应”消息传送给所述的缓冲单元;

所述的缓冲单元,接收“接入认证响应”消息,查询本地是否已经存储“接入认证响应”消息中载明的接入认证信任令牌504;如果所述的缓冲单元已缓存所述的接入认证信任令牌504,那么所述的服务方将终止处理;如果所述的缓冲单元未缓存所述的接入认证信任令牌504,那么所述的缓冲单元存储所述的接入认证信任令牌,并将所述的“接入认证响应”消息传递给所述的连接管理单元;

所述的连接管理单元接收到“接入认证响应”消息后,调用所述的非对称加解密单元,先采用所述服务方的私钥作为非对称解密秘钥,对“接入认证响应”消息中采用所述服务方的公钥加密的密文数据段505,获得所述请求方的秘钥种子(长度为32字节)和经过所述服务方的私钥加密的密文数据段(长度为256字节);再采用所述服务方的公钥对经过所述服务方的私钥加密的密文数据段(长度为256字节)进行非对称解密运算,获得所述服务方的秘钥种子和所述的接入认证信任令牌,比较该接入认证信任令牌与所述的接入认证信任令牌504是否相同,如果两者相同,则认为“接入认证响应”有效,否则,所述服务方终止处理;

如果所述的连接管理单元判定所述的“接入认证响应”消息有效后,根据所述请求方的秘钥种子和所述服务方的秘钥种子,通过某种处理方法计算出一个会话秘钥,所述的处理方法包括但不限于拼接、异或、相乘等操作,所述请求方和所述服务方完成安全接入后的会话将采用所述的会话秘钥;

所述的连接管理单元,调用非对称加解密单元,使用所述请求方的公钥作为非对称加密秘钥,对由所述请求方的身份标识(长度为16字节)、所述服务方的身份标识(长度为16字节)、所述请求方的秘钥种子(长度为32字节)、所述服务方的秘钥种子(长度为32字节)、认证确认时戳(长度为8字节)组成的数据段进行非对称加密运算,获得相应的密文数据段(长度为256字节),所述的认证确认时戳为当前所述服务方的系统时戳;

所述的连接管理单元生成“接入认证确认”消息,所述的“接入认证确认”消息包含了消息类型601(长度为1字节)、散列算法类型602(长度为1字节)、加密算法类型603(长度为1字节)、经过所述请求方的公钥加密的密文数据段604(长度为256字节);

所述的连接管理单元通过所述的输入输出接口将“接入认证确认”消息向所述的请求方发送;

步骤七,所述的请求方从传输通道接收到“接入认证确认”消息,根据所述的“接入确认消息”中载明的散列算法类型602、加密算法类型603,以及所述请求方的私钥,对“接入认证确认”消息中的经过所述请求方的公钥加密的密文数据段604(长度为256字节)进行非对称解密运算,获得所述请求方的秘钥种子和所述服务方的秘钥种子,并验证从“接入认证确认”消息解密获得的两个秘钥种子是否与本地存储的信息一致;

如果从“接入认证确认”消息解密获得的两个秘钥种子跟本地存储的信息一致,那么所述请求方根据所述请求方的秘钥种子和所述服务方的秘钥种子,通过与所述服务方一致的处理方法计算出一个会话秘钥,所述请求方和所述服务方完成安全接入后的会话将采用所述的会话秘钥;否则,所述请求方将终止处理;

步骤八,在完成安全接入之前,所述的请求方验证所述服务方的数字证书的ca签名,所述的服务方验证所述请求方的数字证书的ca签名,所述的两个验证过程包括用根证书公钥来验证数字证书的颁发者签名和通过crl验证证书的状态,只有当数字证书被验证通过后,所述的请求方和所述的服务方才能完成安全接入过程,所述的两个验证过程对本领域的普通人员而言是公知的方法,在此不在赘述。

综上所述,本发明的系统和方法可以有效克服利用现有技术针对服务方的攻击,服务方通过修改接入难度影响请求方的计算过程,通过计算量证明显著增加一个请求方的同时仿冒多个请求方的难度,同时利用更新令牌种子的周期控制了单位时间内允许接入的请求方的数量,服务方仅需要保存少量全局信息就可以通过信任令牌来过滤请求方的流量,从而保证了接入认证服务方的安全。

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