1.本发明实施例涉及计算机技术领域,具体涉及一种单包验证通信链路可信的方法、装置及计算设备。
背景技术:
2.通常我们提供网络服务基本上需要对外提供一个服务端口,请求者向这个端口发送请求包,双方进行协议交互,以达到特定网络服务的目的。众说周知,既然你提供了网络服务,总有不怀好意者窥视,然后破坏,为此需要保护正常服务就需要一些手段尽量来防止网络攻击。由于网络环境越来越复杂,原有固定的边界变得模糊,因此确定连接上的终端可信非常必要。对应于不同的场景,确定的方法不一样,可以直接限制ip,也可以进行通信链路加密通过发送特定的包来鉴别对方是否可信。
3.现有技术可以是利用默认加密密钥加密扩展单包验证(single packet authorization,spa)授权数据包,得到第一spa加密包;将第一spa加密包发送给软件定义边界(software defined perimeter,sdp)框架中的sdp控制器以通过sdp控制器对第一spa加密包进行解密和验证;接收sdp控制器的包括更新加密密钥的反馈信息;在反馈信息包括更新密钥的情况下,利用更新加密密钥加密扩展spa单包授权数据包,得到第二spa加密包;以及将第二spa加密包发送给sdp控制器,以请求对sdp框架中的连接接受主机的访问授权。这种方法实际上是多包验证了,每个包验证一段,经过多次包验证达到验证的目的。这种方式确认链路安全比较复杂,需要多次认证,实际上是通过认证后续主机ip来实现的,没有确定终端使用者的后续网络信息是什么,如果终端使用者通过公用服务代理来访问sdp所保护的服务,则可能容易遭到ddos攻击,因为多次认证需要加解密比较多,通过劫持公用场景的中间人发多巨量的包会让服务提供者崩溃的。因此,这种所谓单包验证安全性还是不够高,特别是在移动环境中,难以达到使用者的初衷。
4.现有技术也可以是接收客户端发送的访问服务器的访问请求数据包;根据数据包判断客户端是否有权访问服务器;如果是,则接收客户端发送的访问数据。然后通过向使用者发送短信验证码来确认使用者是否是合法使用者。依据短信验证码确定合法使用者验证复杂,而且也是主机ip验证方式,如果攻击者劫持中间人,不停发包,那么短信验证码需要不停发送,如此肯定会让服务提供者成本高昂,进而拒绝服务,使用者体验也不好。
5.现有技术还可以使用两种密钥,密钥状态指示字段的信息采用第一标识或第二标识进行表征,第一标识用于表征本次认证过程采用对称密钥,第二标识表征本次认证过程采用非对称密钥;封装用户名信息和密钥状态指示字段的信息得到spa数据包;向服务器发送spa数据包,以使服务器根据用户名信息和密钥状态指示字段的信息完成初步认证。该方法借鉴了安全套接层(secure sockets layer,ssl)链路中的加密方法,在密钥分发上有一定可取之处,但是传输的数据量还是很大,计算量也大,没有根本解决中间人攻击问题,以及ddos攻击问题。
技术实现要素:
6.鉴于上述问题,本发明实施例提供了一种单包验证通信链路可信的方法、装置及计算设备,克服了上述问题或者至少部分地解决了上述问题。
7.根据本发明实施例的一个方面,提供了一种单包验证通信链路可信的方法,所述方法包括:接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。
8.在一种可选的方式中,所述使用者网络信息包中包括:所述网络请求者的用户id、网络协议类型、网络ip地址和端口、访问目标ip地址和端口、hotp计数信息以及下一次hotp计数信息。
9.在一种可选的方式中,所述使用者网络信息包加上共享密码形成hotp预加密包,应用hotp算法对所述hotp预加密包进行加密形成所述一次性密码。
10.在一种可选的方式中,所述从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码之前,包括:根据网络协议类型判断所述软件定义边界验证包的长度是否合法;如果不合法,则丢弃所述软件定义边界验证包,结束。
11.在一种可选的方式中,所述验证所述软件定义边界验证包是否合法,包括:从所述使用者网络信息包中获取所述用户id和所述hotp计数信息;从数据库中获取与所述用户id对应的共享密码;根据所述共享密码和所述hotp计数信息应用hotp算法对所述使用者网络信息包和所述一次性密码组成的信息进行验证;如果验证成功,则说明所述软件定义边界验证包合法。
12.在一种可选的方式中,所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息之前,包括:判断所述网络请求者是否请求过;如果否,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果是,则判断hotp算法的计数器是否与验证端记录所述网络请求者的上次发的计数器一致;如果一致,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果不一致,则丢弃所述软件定义边界验证包,结束。
13.在一种可选的方式中,所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,包括:获取所述网络请求者实际的请求网络ip地址和端口;将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,所述网络连接信息包括网络ip地址和端口;如果一致,则将所述网络连接信息加入白名单,并开启网络服务。
14.根据本发明实施例的另一个方面,提供了一种单包验证通信链路可信的装置,所述装置包括:接收单元,用于接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;第一验证单元,用于从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;第二验证单元,用于如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验
通过,则开启网络服务。
15.根据本发明实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
16.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述单包验证通信链路可信的方法的步骤。
17.根据本发明实施例的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行上述单包验证通信链路可信的方法的步骤。
18.本发明实施例的单包验证通信链路可信的方法通过接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务,只需在服务器端进行一次包验证、无需回应,使得攻击者无法确定包是否有效,实现简单、传输信息简洁有效,能够最大程度地避免了重放攻击、中间人攻击以及ddos攻击,,。
19.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
20.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
21.图1示出了本发明实施例提供的单包验证通信链路可信的方法的流程示意图;
22.图2示出了本发明实施例提供的又一单包验证通信链路可信的方法的示意图;
23.图3示出了本发明实施例提供的单包验证通信链路可信的装置的结构示意图;
24.图4示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
25.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
26.图1示出了本发明实施例提供的单包验证通信链路可信的方法的流程示意图。该方法由服务器执行。如图1所示,单包验证通信链路可信的方法包括:
27.步骤s11:接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码。
28.在本发明实施例中,使用者网络信息包中包括:所述网络请求者的用户id、网络协议类型、网络ip地址和端口、访问目标ip地址和端口、基于哈希运算消息认证码(哈希运算消息认证码,hmac)算法加密的一次性密码(hmac
‑
based one
‑
time password,hotp)计数信息以及下一次hotp计数信息。客户端的网络请求者把自己的用户id、网络协议类型(ipv4/ipv6)、网络ip地址和端口、访问目标ip地址和端口,以及用于hotp算法加密的hotp计数信息以及下一次hotp计数信息进行明文封装。其中,hotp计数信息优选为一个64位随机数,如果中间使用了代理,则还包括使用中间代理ip地址和端口,对这些信息进行明文封装,形成使用者网络信息包,如下表1。
29.表1使用者网络信息包
[0030][0031]
使用者网络信息包加上共享密码形成hotp预加密包,应用hotp算法对所述hotp预加密包进行加密形成所述一次性密码。网络请求者在使用者网络信息包后面加上该用户id在服务端的共享密码形成hotp预加密包,如表2所示。其中该共享密码是能让使用者在客户端输入或使用其它手段保存到客户端的。
[0032]
表2 hotp预加密包
[0033]
使用者信息包共享密码
[0034]
使用hotp算法对hotp预加密包进行加密,生成一个一次性密钥。将应用hotp算法生成的一次性密钥附加在使用者网络信息包之后,形成spa验证包,如表3所示。
[0035]
表3 spa验证包
[0036]
使用者信息包约定长度的hotp一次性密钥
[0037]
客户端将该spa验证包发送给服务器端以端进行验证。发送的协议方式包括但不限于udp,tcp等4层网络包,也可以是通过http或ssh等其他7层协议。客户端先应用4层或7层协议对spa验证包进行封装,然后发送至服务器端。服务器端接收客户端的网络请求者发送的软件定义边界验证包。
[0038]
步骤s12:从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法。
[0039]
在本发明实施例中,在步骤s12之前,根据网络协议类型判断所述软件定义边界验证包的长度是否合法;如果不合法,则丢弃所述软件定义边界验证包,结束。如果合法,则从软件定义边界验证包中解析出使用者网络信息包和一次性密码。服务器端接收到软件定义边界验证包之后,根据网络协议类型(ipv4/ipv6)判断该软件定义边界验证包长度是否合法。在本发明实施例中,软件定义边界验证包的长度是可以确定的,确定了ip类型之后其它包字段是确定的,比如说用户id长度固定,hotp计数信息按标准是64位rfc
‑
4226、ip和端口长度固定、随机数可以事先约定长度,而应用hotp算法生成的一次性密码时,共享密码的长度可以事先约定,比如说16位,如此可以避免接收非法长度包的可能。
[0040]
在长度判定之后,再验证软件定义边界验证包是否合法。从所述使用者网络信息包中获取所述用户id和所述hotp计数信息;从数据库中获取与所述用户id对应的共享密
码;根据所述共享密码和所述hotp计数信息应用hotp算法对所述使用者网络信息包和所述一次性密码组成的信息进行验证;如果验证成功,则说明所述软件定义边界验证包合法。具体地,把软件定义边界验证包的内容依次读出,读出使用者网络信息包和hotp生成的一次性密码,然后从使用者网络信息包中再读取用户id和hotp计数信息,然后根据用户id去服务器端数据库中查找对应的共享密码,把使用者网络信息包和hotp生成的一次性密码组成的信息使用hotp算法和hotp计数信息进行验证,如果验证成功则说明该spa验证包合法。
[0041]
步骤s13:如果合法,校验hotp算法的计数器以及软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。
[0042]
在本发明实施例中,spa验证包合法并不意味者就可以认为以后该客户端主机ip的网络请求者就合法了。判断所述网络请求者是否请求过;如果否,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果是,则判断hotp算法的计数器是否与验证端记录所述网络请求者的上次发的计数器一致。如果一致,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果不一致,则视为重放攻击,丢弃所述软件定义边界验证包,结束。
[0043]
在步骤s13中,获取所述网络请求者实际的请求网络ip地址和端口;将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,所述网络连接信息包括网络ip地址和端口;如果一致,则将所述网络连接信息加入白名单,并开启网络服务。
[0044]
在本发明实施例中,由于使用了hotp协议对使用者的网络信息进行了单向加密,单项加密算法包括但不限于sha1,还使用了随机数和共享密钥加扰,虽然这些信息都是明文,但是无法伪造,因为单向加密算法决定了任何破解算法只能是找到冲突的另一个因子,如单项加密算法、随机数以及共享密钥中的其中一个,使用这个因子冒充合法信息;该伪造信息肯定不是原有的原来的信息,那么这个伪造信息因为网络信息和用户id对不上而被服务端视为非法,使得任何信息篡改和其他中间人重放都能被识别。中间没有传输共享密钥,也无需回应给网络请求者网络包,可以最大程度的避免了中间人攻击和ddos攻击。需要注意的是,单向加密不用特别复杂,最好就使用sha1算法,能够避免非法请求者发送非法包进行算力用尽拒绝服务攻击。
[0045]
本发明实施例的单包验证通信链路可信的方法如图2所示,包括:
[0046]
步骤301:服务器端接收spa验证包。
[0047]
客户端的网络请求者把自己的用户id、网络协议类型(ipv4/ipv6)、网络ip地址和端口、访问目标ip地址和端口,以及用于hotp算法加密的hotp计数信息以及下一次hotp计数信息进行明文封装。如果中间使用了代理,则还包括使用中间代理ip地址和端口。在使用者网络信息包后面加上共享密码形成hotp预加密包,再使用hotp算法对hotp预加密包进行加密,生成一次性密钥。一次性密钥附加在使用者网络信息包之后,形成spa验证包。客户端网络请求者将该spa验证包发送给服务器端,服务器端接收该spa验证包。
[0048]
步骤302:判断长度是否合法。如果否,则执行步骤303;如果是,则跳转至执行步骤304。
[0049]
服务器端接收到spa验证包之后,首先验证spa验证包的长度是否合法。即判断spa验证包的长度是否符合预设的长度。
[0050]
步骤303:丢弃包并结束。
[0051]
如果spa验证包的长度不合法,则将spa验证包丢弃,可以避免接收非法长度包的可能。
[0052]
步骤304:解析包信息,读出使用者网络信息包和应用hotp算法生成的一次性密码。
[0053]
解析spa验证包,读出组成spa验证包的使用者网络信息包和一次性密码。
[0054]
步骤305:读出用户id,查找对应的共享密码,判断该共享密码是否存在。如果是,则执行步骤306;如果否,则跳转至执行步骤311。
[0055]
根据用户id从服务器端数据库查找与用户id对应的共享密码,并判断是否存在对应的共享密码。
[0056]
步骤306:把使用者网络信息包和hotp算法生成的一次性密码组成的信息使用hotp算法和hotp计数信息进行验证。
[0057]
具体将使用者网络信息包与服务器端数据库获取的共享密码组合并应用hotp算法进行加密生成一次性密码,将该一次性密码与spa验证包中获取的一次性密码比较,同时验证hotp计数信息。
[0058]
步骤307:判断是否合法。如果是,则执行步骤308;如果否,则跳转至执行步骤303。
[0059]
根据步骤306中的验证判断spa验证包是否合法。
[0060]
步骤308:判断发送者是否之前请求过。如果是,则执行步骤309;如果否,则跳转至执行步骤311。
[0061]
该发送者即为发送spa验证包至服务器端的发送者,可能是网络请求者,也可能是进行网络攻击的中间人。如果该发送者从来没有请求过,则忽略步骤309中的校验。因为该校验是用于防止重放攻击,忽略该校验不会影响安全性。
[0062]
步骤309:判断是否是验证端记录该网络请求者的上次发给它的那个counter。如果是,则执行步骤310;如果否,则执行步骤311。
[0063]
如果这个值不一致我们视为重放攻击,则丢弃这个spa验证包,并直接结束该流程。
[0064]
步骤310:对比发送者网络信息是否一致。如果是,则执行步骤312;否则执行步骤313。
[0065]
将软件定义边界验证包中的网络连接信息进行保存,如果有中间代理服务信息也一并保存。服务器端获取所述网络请求者实际的请求网络ip地址和端口;将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,确定网络信息是否一致。
[0066]
步骤311:丢弃并结束。
[0067]
如果服务器端获取的网络请求者实际的请求网络ip地址和端口与软件定义边界验证包中的网络连接信息不一致,则丢弃这个spa验证包,并直接结束该流程。如果有人做中间人攻击,那么这个发送者的网络信息必然和真正请求者的网络信息不一致,那么到网络信息比对这步的时候一定会被视为非法
[0068]
步骤312:将发送者的网络信息加入白名单,开启相关网络服务。
[0069]
即将该网络请求者的用户id、网络ip地址和端口等加入白名单,开启网络服务。
[0070]
步骤313:结束。
[0071]
如此通过使用单向加密算法与网络请求者网络信息加共享密码的混合加密,使用同样算法确定信息是否被篡改,再把明文携带的信息与网络真实信息比对,校验这个值是否一致,完成了单包验证以确认通信链路是否可信,整个过程只需在服务器端进行一次包验证、无需回应,使得攻击者无法确定包是否有效,实现简单、传输信息简洁有效可预定长度,而且算法强度较小,耗资源少,可以最大程度地避免了重放攻击、以及中间人攻击和ddos攻击。
[0072]
本发明实施例的单包验证通信链路可信的方法通过接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务,能够最大程度地避免了重放攻击、中间人攻击以及ddos攻击,只需一次包验证、无需回应,实现简单、传输信息简洁有效。
[0073]
图3示出了本发明实施例的单包验证通信链路可信的装置的结构示意图。该单包验证通信链路可信的装置应用于服务器。如图3所示,该单包验证通信链路可信的装置包括:接收单元301、第一验证单元302以及第二验证单元303。其中:
[0074]
接收单元301用于接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;第一验证单元302用于从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;第二验证单元303用于如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。
[0075]
在一种可选的方式中,使用者网络信息包中包括:所述网络请求者的用户id、网络协议类型、网络ip地址和端口、访问目标ip地址和端口、hotp计数信息以及下一次hotp计数信息。
[0076]
在一种可选的方式中,使用者网络信息包加上共享密码形成hotp预加密包,应用hotp算法对所述hotp预加密包进行加密形成所述一次性密码。
[0077]
在一种可选的方式中,第一验证单元302还用于:根据网络协议类型判断所述软件定义边界验证包的长度是否合法;如果不合法,则丢弃所述软件定义边界验证包,结束。
[0078]
在一种可选的方式中,第一验证单元302用于:从所述使用者网络信息包中获取所述用户id和所述hotp计数信息;从数据库中获取与所述用户id对应的共享密码;根据所述共享密码和所述hotp计数信息应用hotp算法对所述使用者网络信息包和所述一次性密码组成的信息进行验证。
[0079]
在一种可选的方式中,第二验证单元303还用于:判断所述网络请求者是否请求过;如果否,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果是,则判断hotp算法的计数器是否与验证端记录所述网络请求者的上次发的计数器一致;如果一致,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果不一致,则丢弃所述软件定义边界验证包,结束。
[0080]
在一种可选的方式中,第二验证单元303用于:获取所述网络请求者实际的请求网络ip地址和端口;将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,所述网络连接信息包括网络ip地址和端口;如果一致,则将所述网络连接信息加入白名单,并开启网络服务。
[0081]
本发明实施例的单包验证通信链路可信的方法通过接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务,能够最大程度地避免了重放攻击、中间人攻击以及ddos攻击,只需一次包验证、无需回应,实现简单、传输信息简洁有效。
[0082]
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的单包验证通信链路可信的方法。
[0083]
可执行指令具体可以用于使得处理器执行以下操作:
[0084]
接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;
[0085]
从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;
[0086]
如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。
[0087]
在一种可选的方式中,所述使用者网络信息包中包括:所述网络请求者的用户id、网络协议类型、网络ip地址和端口、访问目标ip地址和端口、hotp计数信息以及下一次hotp计数信息。
[0088]
在一种可选的方式中,所述使用者网络信息包加上共享密码形成hotp预加密包,应用hotp算法对所述hotp预加密包进行加密形成所述一次性密码。
[0089]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0090]
根据网络协议类型判断所述软件定义边界验证包的长度是否合法;
[0091]
如果不合法,则丢弃所述软件定义边界验证包,结束。
[0092]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0093]
从所述使用者网络信息包中获取所述用户id和所述hotp计数信息;
[0094]
从数据库中获取与所述用户id对应的共享密码;
[0095]
根据所述共享密码和所述hotp计数信息应用hotp算法对所述使用者网络信息包和所述一次性密码组成的信息进行验证;
[0096]
如果验证成功,则说明所述软件定义边界验证包合法。
[0097]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0098]
判断所述网络请求者是否请求过;
[0099]
如果否,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果是,则判断hotp算法的计数器是否与验证端记录所述网络请求者
的上次发的计数器一致;
[0100]
如果一致,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果不一致,则丢弃所述软件定义边界验证包,结束。
[0101]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0102]
获取所述网络请求者实际的请求网络ip地址和端口;
[0103]
将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,所述网络连接信息包括网络ip地址和端口;
[0104]
如果一致,则将所述网络连接信息加入白名单,并开启网络服务。
[0105]
本发明实施例的单包验证通信链路可信的方法通过接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务,能够最大程度地避免了重放攻击、中间人攻击以及ddos攻击,只需一次包验证、无需回应,实现简单、传输信息简洁有效。
[0106]
本发明实施例提供一种单包验证通信链路可信的装置,用于执行上述单包验证通信链路可信的方法。
[0107]
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使基站设备执行上述任意方法实施例中的单包验证通信链路可信的方法。
[0108]
本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任意方法实施例中的单包验证通信链路可信的方法。
[0109]
可执行指令具体可以用于使得处理器执行以下操作:
[0110]
接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;
[0111]
从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;
[0112]
如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。
[0113]
在一种可选的方式中,所述使用者网络信息包中包括:所述网络请求者的用户id、网络协议类型、网络ip地址和端口、访问目标ip地址和端口、hotp计数信息以及下一次hotp计数信息。
[0114]
在一种可选的方式中,所述使用者网络信息包加上共享密码形成hotp预加密包,应用hotp算法对所述hotp预加密包进行加密形成所述一次性密码。
[0115]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0116]
根据网络协议类型判断所述软件定义边界验证包的长度是否合法;
[0117]
如果不合法,则丢弃所述软件定义边界验证包,结束。
[0118]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0119]
从所述使用者网络信息包中获取所述用户id和所述hotp计数信息;
[0120]
从数据库中获取与所述用户id对应的共享密码;
[0121]
根据所述共享密码和所述hotp计数信息应用hotp算法对所述使用者网络信息包和所述一次性密码组成的信息进行验证;
[0122]
如果验证成功,则说明所述软件定义边界验证包合法。
[0123]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0124]
判断所述网络请求者是否请求过;
[0125]
如果否,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果是,则判断hotp算法的计数器是否与验证端记录所述网络请求者的上次发的计数器一致;
[0126]
如果一致,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果不一致,则丢弃所述软件定义边界验证包,结束。
[0127]
在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:
[0128]
获取所述网络请求者实际的请求网络ip地址和端口;
[0129]
将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,所述网络连接信息包括网络ip地址和端口;
[0130]
如果一致,则将所述网络连接信息加入白名单,并开启网络服务。
[0131]
本发明实施例的单包验证通信链路可信的方法通过接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务,能够最大程度地避免了重放攻击、中间人攻击以及ddos攻击,只需一次包验证、无需回应,实现简单、传输信息简洁有效。
[0132]
图4示出了本发明实施例提供的计算设备的结构示意图,本发明具体实施例并不对设备的具体实现做限定。
[0133]
如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
[0134]
其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述单包验证通信链路可信的方法实施例中的相关步骤。
[0135]
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
[0136]
处理器402可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或各个集成电路。设备包括的一个或各个处理器,可以是同一类型的处理器,如一个或各个cpu;也可以是不同类型的处理器,如一个或各个cpu以及一个或各个asic。
[0137]
存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non
‑
volatile memory),例如至少一个磁盘存储器。
[0138]
程序410具体可以用于使得处理器402执行以下操作:
[0139]
接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用
者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;
[0140]
从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;
[0141]
如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。
[0142]
在一种可选的方式中,所述使用者网络信息包中包括:所述网络请求者的用户id、网络协议类型、网络ip地址和端口、访问目标ip地址和端口、hotp计数信息以及下一次hotp计数信息。
[0143]
在一种可选的方式中,所述使用者网络信息包加上共享密码形成hotp预加密包,应用hotp算法对所述hotp预加密包进行加密形成所述一次性密码。
[0144]
在一种可选的方式中,所述程序410使所述处理器执行以下操作:
[0145]
根据网络协议类型判断所述软件定义边界验证包的长度是否合法;
[0146]
如果不合法,则丢弃所述软件定义边界验证包,结束。
[0147]
在一种可选的方式中,所述程序410使所述处理器执行以下操作:
[0148]
从所述使用者网络信息包中获取所述用户id和所述hotp计数信息;
[0149]
从数据库中获取与所述用户id对应的共享密码;
[0150]
根据所述共享密码和所述hotp计数信息应用hotp算法对所述使用者网络信息包和所述一次性密码组成的信息进行验证;
[0151]
如果验证成功,则说明所述软件定义边界验证包合法。
[0152]
在一种可选的方式中,所述程序410使所述处理器执行以下操作:
[0153]
判断所述网络请求者是否请求过;
[0154]
如果否,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果是,则判断hotp算法的计数器是否与验证端记录所述网络请求者的上次发的计数器一致;
[0155]
如果一致,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果不一致,则丢弃所述软件定义边界验证包,结束。
[0156]
在一种可选的方式中,所述程序410使所述处理器执行以下操作:
[0157]
获取所述网络请求者实际的请求网络ip地址和端口;
[0158]
将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,所述网络连接信息包括网络ip地址和端口;
[0159]
如果一致,则将所述网络连接信息加入白名单,并开启网络服务。
[0160]
本发明实施例的单包验证通信链路可信的方法通过接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务,能够最大程度地避免了重放攻击、中间人攻击以及ddos攻击,只需一次包验证、无需回应,实现简单、传输信息简洁有效。
[0161]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。
各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0162]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0163]
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
[0164]
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0165]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
技术特征:
1.一种单包验证通信链路可信的方法,其特征在于,所述方法包括:接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。2.根据权利要求1所述的方法,其特征在于,所述使用者网络信息包中包括:所述网络请求者的用户id、网络协议类型、网络ip地址和端口、访问目标ip地址和端口、hotp计数信息以及下一次hotp计数信息。3.根据权利要求1所述的方法,其特征在于,所述使用者网络信息包加上共享密码形成hotp预加密包,应用hotp算法对所述hotp预加密包进行加密形成所述一次性密码。4.根据权利要求2所述的方法,其特征在于,所述从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码之前,包括:根据网络协议类型判断所述软件定义边界验证包的长度是否合法;如果不合法,则丢弃所述软件定义边界验证包,结束。5.根据权利要求2所述的方法,其特征在于,所述验证所述软件定义边界验证包是否合法,包括:从所述使用者网络信息包中获取所述用户id和所述hotp计数信息;从数据库中获取与所述用户id对应的共享密码;根据所述共享密码和所述hotp计数信息应用hotp算法对所述使用者网络信息包和所述一次性密码组成的信息进行验证;如果验证成功,则说明所述软件定义边界验证包合法。6.根据权利要求2所述的方法,其特征在于,所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息之前,包括:判断所述网络请求者是否请求过;如果否,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果是,则判断hotp算法的计数器是否与验证端记录所述网络请求者的上次发的计数器一致;如果一致,则执行所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息的步骤;如果不一致,则丢弃所述软件定义边界验证包,结束。7.根据权利要求1所述的方法,其特征在于,所述校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,包括:获取所述网络请求者实际的请求网络ip地址和端口;将所述请求网络ip地址和端口与所述软件定义边界验证包中的所述网络连接信息进行比较,所述网络连接信息包括网络ip地址和端口;如果一致,则将所述网络连接信息加入白名单,并开启网络服务。8.一种单包验证通信链路可信的装置,其特征在于,所述装置包括:接收单元,用于接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证
包包括使用者网络信息包以及根据所述使用者网络信息包应用hotp算法生成的一次性密码;第一验证单元,用于从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;第二验证单元,用于如果合法,校验hotp算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行根据权利要求1
‑
7任一项所述单包验证通信链路可信的方法的步骤。10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行根据权利要求1
‑
7任一项所述单包验证通信链路可信的方法的步骤。
技术总结
本发明实施例涉及计算机技术领域,公开了一种单包验证通信链路可信的方法、装置及计算设备,该方法包括:接收网络请求者发送的软件定义边界验证包,所述软件定义边界验证包包括使用者网络信息包以及根据所述使用者网络信息包应用HOTP算法生成的一次性密码;从所述软件定义边界验证包中解析出所述使用者网络信息包和所述一次性密码,并验证所述软件定义边界验证包是否合法;如果合法,校验HOTP算法的计数器以及所述软件定义边界验证包中的网络连接信息,如果校验通过,则开启网络服务。通过上述方式,本发明实施例能够最大程度地避免了重放攻击、中间人攻击以及DDOS攻击,只需一次包验证、无需回应,实现简单、传输信息简洁有效。效。效。
技术研发人员:范端胜 王泽峰 刘峰
受保护的技术使用者:深圳竹云科技有限公司
技术研发日:2021.02.24
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-17249.html