1.本公开涉及移动通信技术领域,具体而言,涉及一种会话连接方法及装置、设备。
背景技术:2.相关技术中服务端在与客户端建立会话连接时,攻击者通常可以伪造出合法的数据包例如单包授权技术(single packet authorization,简称spa)数据包,并通过伪造的数据包与服务端建立会话连接。
3.由此,服务端与客户端在建立会话连接时,如何提高会话建立的安全性,是一个亟待解决的技术问题。
技术实现要素:4.本公开提供了一种会话连接方法、发送装置、接收装置及设备,以提高服务端与客户端在建立会话连接时的安全性。
5.根据本公开实施例的第一方面,提供了一种会话连接方法,应用于数据发送端,该方法包括:
6.根据会话连接请求向数据接收端发送第一数据包;其中,第一数据包中携带有数据发送端的身份信息,以使数据接收端根据身份信息进行数据发送端的身份认证,并在身份认证通过时开放认证服务;
7.获取会话连接请求对应的规则参数信息,并根据规则参数信息生成第二数据包;其中,第二数据包中携带有授权认证信息;
8.向数据接收端发送第二数据包,以使数据接收端通过认证服务对授权认证信息进行连接服务的授权认证,并在授权认证通过时开放连接服务,以通过连接服务与数据发送端建立会话连接。
9.在一种可选的实施方式中,数据发送端配置有信息查询表;获取会话连接请求对应的规则参数信息,并根据规则参数信息生成第二数据包,包括:
10.根据会话连接请求查询信息查询表,得到规则参数信息;
11.根据规则参数信息确定对应的数据项以及于数据项对应的数据项内容;
12.根据数据项和数据项内容生成第二数据包。
13.在一种可选的实施方式中,根据会话连接请求查询信息查询表,得到规则参数信息,包括:
14.获取会话连接请求的安全等级;
15.从信息查询表中获取与安全等级匹配的规则参数信息。
16.在一种可选的实施方式中,在向数据接收端发送第二数据包之后,方法还包括:
17.向数据接收端发送会话连接请求,以使数据接收端通过处于开放状态的连接服务接收到会话连接请求时,根据会话连接请求与数据发送端建立会话连接;
18.向数据接收端发送目标数据,以使数据接收端根据所建立得到的会话连接接收目
标数据。
19.根据本公开实施例的第二方面,提供了一种会话连接方法,应用于数据接收端,该方法包括:
20.接收数据发送端发送的第一数据包;其中,第一数据包中携带有数据发送端的身份信息;
21.根据身份信息进行数据发送端的身份认证,若身份认证通过,则开放认证服务;
22.接收数据发送端发送的第二数据包;其中,第二数据包是数据发送端根据会话连接请求对应的规则参数信息所生成,第二数据包中携带有授权认证信息;
23.根据授权认证信息进行连接服务的授权认证,若授权认证通过,则开放连接服务,以通过连接服务与数据发送端建立会话连接。
24.在一种可选的实施方式中,根据身份信息进行数据发送端的身份认证,包括:
25.根据第一预设密钥对第一数据包进行解密,得到数据发送端的身份信息;
26.根据预设的身份信息库判断身份信息是否正确,得到身份认证结果。
27.在一种可选的实施方式中,数据接收端配置有信息校验表;根据授权认证信息进行连接服务的授权认证,包括:
28.获取第二数据包对应的会话连接请求的安全等级,并根据安全等级查询信息校验表,得到规则校验信息,以及根据第二预设密钥对第二数据包进行解密,得到授权认证信息;
29.根据规则校验信息判断授权认证信息是否正确。
30.根据本公开实施例的第三方面,提供了一种会话连接装置,配置于数据发送端,装置包括:
31.第一数据包发送模块,用于根据会话连接请求向数据接收端发送第一数据包;其中,第一数据包中携带有数据发送端的身份信息,以使数据接收端根据身份信息进行数据发送端的身份认证,并在身份认证通过时开放认证服务;
32.第二数据包生成模块:用于获取会话连接请求对应的规则参数信息,并根据规则参数信息生成第二数据包;其中,第二数据包中携带有授权认证信息;
33.第二数据包发送模块,用于向数据接收端发送第二数据包,以使数据接收端通过认证服务对授权认证信息进行连接服务的授权认证,并在授权认证通过时开放连接服务,以通过连接服务与数据发送端建立会话连接。
34.根据本公开实施例的第四方面,提供了一种会话连接装置,配置于数据接收端,装置包括:
35.第一数据包接收模块,用于接收数据发送端发送的第一数据包;其中,第一数据包中携带有数据发送端的身份信息;
36.身份认证模块,根据身份信息进行数据发送端的身份认证,若身份认证通过,则开放认证服务;
37.第二数据包接收模块,用于接收数据发送端发送的第二数据包;其中,第二数据包是数据发送端根据会话连接请求对应的规则参数信息所生成,第二数据包中携带有授权认证信息;
38.授权认证模块,用于根据授权认证信息进行连接服务的授权认证,若授权认证通
过,则开放连接服务,以通过连接服务与数据发送端建立会话连接。
39.根据本公开实施例的第五方面,提供了一种设备,包括:
40.存储器以及处理器;
41.存储器用于存储计算机可执行的程序;
42.处理器用于调用计算机可执行的程序以实现如第一方面所述的会话连接方法,或者实现如第二方面所述的会话连接方法。
43.根据本公开实施例的第六方面,提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一项所述的会话连接方法。
44.根据本公开实施例的第七方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令被处理器执行时实现上述任意一项所述的会话连接方法。
45.本公开的示例性实施例具有以下有益效果:
46.根据本示例实施例中的会话连接方法,相比于相关技术中的单包发送请求数据进行验证的方法,本公开的数据发送端通过发送第一数据包以及第二数据包,以请求和数据接收端进行会话连接。由于数据发送端将第一数据包以及第二数据包作为请求数据并进行分开发送,即数据发送端分离请求数据,这样攻击终端难以监听到完整的请求数据,从而避免了攻击终端获取到完整的请求数据后向数据接收端发送伪造的连接请求。也就是说,数据接收端在开放连接服务与数据发送端进行会话连接之前,会对数据发送端的多个数据包分别进行认证,只有在每次认证均通过后才会开放连接服务以与数据发送端进行会话连接,而由于数据发送端发送的请求数据是分离的,因而攻击终端不能轻易获取到完整的请求数据,给攻击终端获取完整的请求数据以伪造连接请求带来困难,这样攻击终端难以伪造连接请求,在极大程度上保证了会话连接的安全性。
附图说明
47.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
48.图1示出本公开实施例中一种系统结构的示意图;
49.图2示出本公开实施例中数据发送端的会话连接方法的流程图;
50.图3示出本公开实施例中数据接收端的会话连接方法的流程图;
51.图4示出本公开实施例中数据发送端与数据接收端之间的会话连接方法的流程图;
52.图5示出本公开实施例中一种会话连接装置的结构示意图;
53.图6示出本公开实施例中另一种会话连接装置的结构示意图;
54.图7示出本公开实施例中一种设备的结构示意图。
具体实施方式
55.这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
56.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
57.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
58.还需要说明的是:在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
59.下面结合附图,对本公开的一些实施方式作详细说明,在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
60.图1示出了本示例性实施例的运行环境的一种系统结构示意图,参考图1所示,该系统可以包括数据发送端110以及数据接收端120。数据发送端110以及数据接收端120之间通过网络通信连接,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
61.数据发送端110即为请求建立会话连接的请求方设备,可以为服务器,也可以为终端设备。数据接收端120即为接收数据发送端110请求信息的被请求房设备,可以为服务器,也可以为终端设备。例如,如图1所示,数据发送端110为终端设备,数据接收端120为服务器。
62.终端设备可以是硬件,也可以是软件。当终端设备为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、智能手环和台式计算机等等。当终端设备为软件时,可以安装在上述所列举的电子设备中。还可预见到的是,终端设备能够支持任意类型的针对用户的接口,例如可穿戴设备等。
63.服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
64.spa技术是一种新型网络安全技术,是指在网络会话建立之前,网络连接的响应方通过网路连接的请求方发送的数据包,对请求方进行鉴别以及授权。spa技术的核心是一套网络协议,由请求方设备上安装的客户端和响应方设备上安装的服务端交互完成。服务端在默认状态下不响应任何访问数据包,但会持续检查所有接收到的数据包的内容。当检测到由合法的客户端构造并发送的合法数据包时,服务端根据数据包内的请求信息,临时开放特定的连接方式,允许特定的客户端与服务端建立有效的会话。会话建立后服务端恢复至默认状态,仍然不响应任何访问数据包,已建立的会话则不受影响,供请求方持续使用访问所需的网络资源。
65.应该理解,图1中的数据发送端110以及数据接收端120的种类和数目仅仅是示意性的,根据实现需要,可以具有任意种类和数目的数据发送端110以及数据接收端120。
66.相关技术中,通过spa技术虽然可以阻止非授权的数据发送端110与数据接收端120建立会话连接,从而在会话建立之前识别并阻断攻击终端的连接请求,但是对于攻击终端发送的伪造的合法连接请求不能进行有效识别,导致数据接收端120与攻击终端建立会话连接。基于此,在本公开示例性实施例提供了一种会话连接方法。
67.请参阅图2,图2为本公开实施例中会话连接方法的流程图,下面结合图2,以数据发送端为执行主体,对本公开示例性实施例中的会话连接方法进行说明。
68.步骤s210、根据会话连接请求向数据接收端发送第一数据包;其中,所述第一数据包中携带有所述数据发送端的身份信息,以使所述数据接收端根据所述身份信息进行所述数据发送端的身份认证,并在身份认证通过时开放认证服务。
69.会话连接请求用于请求建立数据发送端与数据接收端之间的会话连接,会话连接请求可以是数据发送端内安装的应用或系统生成的。例如,当数据发送端中安装的应用a需要访问数据接收端中的端口a时,则生成对应的会话连接请求,使数据发送端根据该会话连接请求向数据接收端发送第一数据包,以请求访问数据接收端的端口a。其中,该会话连接请求可以包括请求数据接收端的端口信息、应用标识、请求内容等信息。
70.数据发送端会根据会话连接请求生成对应的第一数据包,第一数据包至少包含有数据发送端的身份信息,如数据发送端的局域网地址、终端标识、用户名称、用户密码等信息。数据发送端将第一数据包发送给数据接收端,数据接收端根据第一数据包对数据发送端进行身份认证,以判断该数据发送端是否可连接。
71.可以理解的是,第一数据包还可以包含其它数据项,如请求的端口信息、认证随机数等,第一数据包中包含的具体数据项可以根据实际情况进行灵活设置,本公开实施例对此不作限制。
72.其中,数据发送端还可以对第一数据包执行加密操作,以向数据接收端发送加密后的第一数据包。对第一数据包执行加密操作的加密算法包括但不限于高级加密标准(advanced encryption standard,简称aes)、md5信息摘要(md5message-digest algorithm)算法、公钥加密(rsa algorithm,简称rsa)算法、椭圆曲线数字签名(elliptic curve digital signature algorithm,简称ecdsa)算法等。具体的加密算法可以根据实际情况灵活选择,本公开实施例对此不作限制。
73.数据接收端对接收到的第一数据包进行解密和分析,如无法解包,或解封后数据包类型有误,则丢弃,如解包后正常,再进一步分析其中的数据信息,以检验该第一数据包携带的数据发送端的身份信息是否有误,得到身份认证结果。例如,数据接收端存储有可连接的数据发送端的身份信息库,数据接收端可以对接收到的第一数据包进行分析,如果第一数据包对应的数据发送端不存在于身份信息库中,则该数据发送端不可连接,对应的身份认证结果为不通过,如果第一数据包对应的数据发送端存在于身份信息库中,则该数据发送端可连接,对应的身份认证结果为通过。
74.进一步地,若数据接收端对数据发送端进行身份认证的结果为通过,则数据接收端开放认证服务。认证服务用于接收数据发送端的第二数据包,并对第二数据包进行授权认证。示例性地,可以是数据接收端设有验证端口,数据接收端开放认证服务可以是打开验证端口,以通过验证端口对第二数据包进行授权认证。其中,可以理解的是,若数据接收端对数据发送端进行身份认证的结果为不通过,则不会向该数据发送端开放认证服务,例如,
可以对该数据发送端隐藏认证服务对应的验证端口,即不接收该数据发送端的任何数据,也可以是接收到该数据发送端的数据后进行丢弃操作。
75.需要说明的是,数据接收端只有在认证服务开放后,也即数据接收端只有在第一数据包认证通过后,才会对第二数据包进行认证,以对数据接收端设置多个验证节点,进而提高会话连接的安全性。
76.步骤s220、获取所述会话连接请求对应的规则参数信息,并根据所述规则参数信息生成第二数据包;其中,所述第二数据包中携带有授权认证信息。
77.授权认证信息指的是用于给数据接收端验证数据发送端访问该数据接收端的权力的信息。
78.规则参数信息用于规定第二数据包携带的信息内容、第二数据包的数据格式等信息,通过规则参数信息生成特定的第二数据包。
79.第二数据包携带的信息内容具体可以为第二数据包中包含的数据项以及对应的数据项内容等信息,如访问的端口、端口安全等级、随机数、时间戳、端口敲门顺序、互联网协议(internet protocol address,简称ip)地址等数据项以及各数据项对应的数据项内容。第二数据包的数据格式具体可以为第二数据包中各数据项的排列方式、第二数据包的数据交换格式等信息,数据交换格式包括但不限于javascript对象简谱(javascript object notation,简称json)格式、可扩展标记语言(extensible markup language,简称xml)格式等。
80.规则参数信息是数据发送端和数据接收端协商之后的一种规则约定,只有受数据接收端信任的数据发送端持有,等同于密钥。只有按照规则参数信息构造的第二数据包才会通过数据接收端的验证。通过设置规则参数信息,保证第二数据包的安全性,防止攻击终端对第二数据包进行伪造。可以理解的是,第一数据包也可以根据规则参数信息生成。
81.规则参数信息可以包括动态参数,也可以包括静态参数。
82.静态参数指的是不会根据第二数据包发送的环境的不同,而发生变化的参数。如数据接收端的ip地址、用户名称等信息。动态参数指的是会根据第二数据包发送的环境的不同,而发生变化的参数。例如,动态参数可以是第二数据包中包含的数据项的改变,如根据会话连接请求所请求的端口的不同,选择不同的数据项生成第二数据包;动态参数还可以是第二数据包中包含的数据项内容的改变,如在第一时间段内,数据项a对应的数据项内容包括内容a,在第二时间段内,数据项a对应的数据项内容包括内容b。
83.通过规则参数信息构造第二数据包,从而规定第二数据包的内容参数、数据格式等信息,以发送特定的第二数据包给数据接收端。使数据发送端与数据接收端之间除了可以通过对发送的请求数据进行加密,来保证会话连接的安全之外,还可以通过对发送的请求数据的具体格式以及具体内容进行约定,来保证会话连接的安全。
84.在一些实施方式中,数据发送端设有信息查询表;所述获取所述会话连接请求对应的规则参数信息,并根据所述规则参数信息生成第二数据包,包括:根据所述会话连接请求查询所述信息查询表,得到规则参数信息;根据所述规则参数信息确定对应的数据项以及与所述数据项对应的数据项内容;根据所述数据项和所述数据项内容生成第二数据包。
85.信息查询表用于存储规则参数信息,可以根据会话连接请求查询对应的规则参数信息,以根据规则参数信息确认第二数据包的数据格式以及携带的信息内容中的至少一
者。
86.示例性地,确认会话连接请求的安全等级,以根据安全等级从信息查询表中获取与安全等级匹配的规则参数信息。会话连接请求的安全等级可以用于表征该会话连接请求所请求访问的端口的安全等级,信息查询表中保存有在不同安全等级下对应的规则参数信息。
87.数据接收端可以根据端口的不同,为对应的端口设置不同的安全等级。各端口的安全等级以及在各安全等级匹配的规则参数信息,只有数据接收端和受数据接收端信任的数据发送端持有。
88.因此,数据发送端可以根据需要访问的端口的安全等级的不同,获取匹配的规则参数信息,以生成合法的第二数据包。例如,当数据发送端需要访问端口a时,端口a对应的安全等级为中级,根据安全等级查询信息查询表得到对应的规则参数信息,以得到第二数据包中需要携带的数据项为:访问的端口、随机数、当前时间戳、端口敲门顺序、ip地址。然后,通过数据项去获取对应的数据项内容,根据数据项和数据项内容确定第二数据包携带的信息内容。同时根据规则参数信息得到第二数据包的数据格式,根据数据格式得到各数据项的具体排列方式以及数据交换格式,最终生成合法的第二数据包。
89.通过根据数据发送端要访问端口的安全等级的不同,获取与该安全等级匹配的规则参数信息,以使第二数据包中携带的授权认证信息是可以动态变化的,因此攻击终端在监听到第二数据包后,也难以直接通过第二数据包中包含的数据信息,解析得到数据发送端和数据接收端之间的认证逻辑,进而避免攻击终端对第二数据包进行仿造,提高会话连接的安全性。
90.步骤s230、向所述数据接收端发送所述第二数据包,以使所述数据接收端通过所述认证服务对所述授权认证信息进行连接服务的授权认证,并在所述授权认证通过时开放连接服务,以通过连接服务与所述数据发送端建立会话连接。
91.数据发送端将第二数据包发送给数据接收端,以使数据接收端在第一验证结果为通过时,即数据接收端的认证服务处于开放状态时,通过认证服务对接收的第二数据包的授权认证信息进行连接服务的授权认证。
92.若数据接收端对授权认证信息的授权认证的结果为通过,则数据接收端开放连接服务。其中,数据接收端通过连接服务与所述数据发送端建立会话连接。可以理解的是,数据接收端只有在对验证通过的数据发送端开放连接服务后,才会与该数据发送端进行会话连接,也即数据接收端只有在第二数据包认证通过后,才会对第二数据包对应的数据发送端进行会话连接,以进而提高会话连接的安全性。
93.数据发送端还可以在第二数据包发送前对第二数据包执行加密操作,以向数据接收端发送加密后的第二数据包。第二数据包的加密算法可以与第一数据包的加密算法一致,也可以与第一数据包的加密方法不一致,具体的加密算法可以根据实际情况灵活选择,本公开实施例对此不作限制。
94.数据接收端对接收到的第二数据包进行解密和分析,如无法解包,或解密后数据包类型有误,则丢弃,如解密后正常,再进一步分析其中的授权认证信息。
95.示例性地,数据接收端对第二数据包进行解包操作,并验证第二数据包对应的第一数据包是否通过验证,如第一数据包没有通过验证,或者不能查找到第一数据包,或者无
法解包,或者解封后数据包类型有误,则丢弃该第二数据包。如第一数据包通过验证,则分析第二数据包解包后的授权认证信息。可以是数据接收端设有验证端口,通过验证端口对第二数据包的授权认证信息进行连接服务的授权认证。
96.如果授权认证的结果为通过,即该数据发送端属于可连接数据发送端时,为该数据发送端开放连接服务。例如,为该数据发送端开放其请求的端口,以供数据发送端进行连接,从而数据发送端和数据接收端之间建立会话连接。如果授权认证的结果为不通过,即该数据发送端不属于可连接数据发送端时,丢弃第二数据包。
97.为了防止数据发送端向数据接收端发送的数据包被攻击终端监听,因此,将请求会话连接的数据进行分开发送,通过不同的第一数据包和第二数据包向数据接收端请求会话连接,使攻击终端难以监听到完整的请求数据,从而避免攻击终端获取到完整的请求数据后向数据接收端发送伪造请求,提高了会话连接的安全性。
98.在一些实施方式中,在所述向所述数据接收端发送所述第二数据包之后,所述方法还包括:向所述数据接收端发送会话连接请求,以使所述数据接收端通过处于开放状态的连接服务接收到会话连接请求时,根据所述会话连接请求与所述数据发送端建立会话连接;向所述数据接收端发送目标数据,以使所述数据接收端根据所建立得到的会话连接接收所述目标数据。
99.数据发送端在发送第二数据包的预设时间后,向数据接收端对应的端口发送会话连接请求,如果数据接收端对应的端口对该数据发送端开放,则数据接收端根据会话连接请求与该数据发送端建立会话连接。数据发送端与数据接收端之间建立会话连接可以是根据文件传输协议(file transfer protocol,简称ftp)进行连接,也可以是根据超文本传输安全协议(hyper text transfer protocol over secure socket layer,简称https)进行连接。具体的连接方法可以根据实际应用情况进行灵活选择,本公开实施例对此不作限制。
100.数据接收端的端口在对外开放之前处于隐藏状态,在隐藏状态下数据接收端对该端口的会话连接请求均不做响应。在数据接收端向对应的数据发送端开放对应的端口后,数据接收端在接收到该数据发送端对该端口的会话连接请求时,则进行对应的响应。可以是对数据发送端进行端口的临时开放,例如,端口在开放预设时间后,数据接收端使该端口重新进入隐藏状态。
101.在数据发送端与数据接收端之间建立会话连接后,数据发送端可以向数据接收端发送目标数据,目标数据指的是与数据接收端进行信令交互的数据,可以是向数据接收端获取数据内容的信息,也可以是向数据接收端发送数据内容的信息。
102.参考图3所示,图3为本公开实施例中另一种会话连接方法的流程图,下面结合图3,以数据接收端为执行主体,对本公开示例性实施例中的会话连接方法进行说明。
103.步骤s310、接收数据发送端发送的第一数据包;其中,所述第一数据包中携带有所述数据发送端的身份信息。
104.数据接收端接收数据发送端的第一数据包,第一数据包是数据发送端根据会话连接请求生成的。
105.会话连接请求用于请求建立数据发送端与数据接收端的会话连接,会话连接请求可以是数据发送端内安装的应用或系统生成的。例如,当数据发送端内安装的应用a需要访问数据接收端中的端口a时,则生成对应的会话连接请求,以请求访问数据接收端的端口a,
该会话连接请求可以包括请求的端口信息、对应的应用标识、具体的请求内容等信息。
106.数据发送端会根据会话连接请求生成对应的第一数据包,第一数据包至少包含有数据发送端的身份信息,如数据发送端的局域网地址、终端标识、用户名、用户密码等信息。数据发送端将第一数据包发送给数据接收端,数据接收端根据第一数据包对数据发送端进行信息验证,以确认该数据发送端是否可连接。可以理解的是,第一数据包还可以包含其它数据项,如请求的端口、认证随机数等,第一数据包中包含的具体数据项可以根据实际情况进行灵活设置,本公开实施例对此不作限制。
107.步骤s320、根据所述身份信息进行所述数据发送端的身份认证,若所述身份认证通过,则开放认证服务。
108.数据接收端对数据发送端进行身份认证,若身份认证的结果为通过,则数据接收端为该数据发送端开放认证服务。其中,认证服务用于接收数据发送端的第二数据包,并对第二数据包进行授权认证。示例性地,可以是数据接收端设有验证端口,数据接收端开放认证服务可以是打开验证端口,以通过验证端口对第二数据包进行授权认证。若数据接收端对数据发送端进行身份认证的结果为不通过,则不向该数据发送端发送的第二数据包开放认证服务,即关闭验证端口。
109.可以理解的是,数据接收端只有在认证服务开放后,才会对第二数据包进行认证,也即数据接收端只有在第一数据包认证通过后,才会对第一数据包对应的第二数据包进行认证,以对数据接收端设置多个验证节点,进而提高会话连接的安全性。
110.在一些实施方式中,所述根据所述身份信息进行所述数据发送端的身份认证,包括:根据第一预设密钥对所述第一数据包进行解密,得到所述数据发送端的身份信息;根据预设的身份信息库判断所述身份信息是否正确,得到身份认证结果。
111.数据接收端根据第一预设密钥对接收到的第一数据包进行解密和分析,如无法解密,或解密后数据包类型有误,则丢弃,如解密后正常,再进一步分析其中的数据信息,以检验该第一数据包携带的数据发送端的身份信息是否有误,得到身份认证结果。例如,数据接收端存储有可连接的数据发送端的身份信息库,数据接收端可以对接收到的第一数据包进行分析,如果第一数据包对应的数据发送端不存在于身份信息库中,则该数据发送端不可连接,对应的身份认证结果为不通过,如果第一数据包对应的数据发送端存在于身份信息库中,则该数据发送端可连接,对应的身份认证结果为通过。
112.步骤s330、接收所述数据发送端发送的第二数据包;其中,所述第二数据包是所述数据发送端根据所述会话连接请求对应的规则参数信息所生成,所述第二数据包中携带有授权认证信息。
113.授权认证信息指的是数据接收端验证数据发送端访问该数据接收端的权力的信息。
114.规则参数信息用于规定第二数据包携带的信息内容、第二数据包的数据格式等信息,通过规则参数信息生成特定的第二数据包。信息内容具体可以为第二数据包中包含的数据项以及对应的数据项内容等信息,如访问的端口、端口安全等级、随机数、时间戳、端口敲门顺序、ip地址等数据项以及对应的数据项内容。数据格式具体可以为第二数据包中各数据项的排列方式、第二数据包的数据交换格式等信息,数据交换格式包括但不限于javascript对象简谱格式、可扩展标记语言格式等。
115.规则参数信息是数据发送端和数据接收端协商之后的一种规则约定,只有受数据接收端信任的数据发送端持有,等同于密钥,只有按照规则参数信息构造的第二数据包才会通过数据接收端的验证。通过设置规则参数信息,保证第二数据包的安全性,防止攻击终端对第二数据包进行伪造。可以理解的是,第一数据包也可以根据规则参数信息生成。
116.规则参数信息可以包括动态参数,也可以包括静态参数。
117.静态参数指的是不会根据第二数据包发送的环境的不同而发生变化的参数,如数据接收端的ip地址、用户名称等信息。动态参数指的是会根据第二数据包发送的环境的不同而发生变化的参数,例如,动态参数可以是第二数据包中包含的数据项的改变,如根据会话连接请求所请求的端口的不同,选择不同的数据项生成第二数据包;动态参数还可以是第二数据包中包含的数据项内容的改变,如在第一时间段内,数据项a对应的数据项内容包括内容a,在第二时间段内,数据项a对应的数据项内容包括内容b。
118.步骤s340、通过所述认证服务对所述授权认证信息进行连接服务的授权认证,若所述授权认证通过,则开放连接服务,以通过连接服务与所述数据发送端建立会话连接。
119.数据接收端可以对预设时间内验证通过的第一数据包开放认证服务,通过认证服务对接收的第二数据包的授权认证信息进行连接服务的授权认证。
120.若数据接收端对授权认证信息的授权认证的结果为通过,则数据接收端开放连接服务。数据接收端通过连接服务与所述数据发送端建立会话连接。可以理解的是,数据接收端只有在对验证通过的数据发送端开放连接服务后,才会与该数据发送端进行会话连接,也即数据接收端只有在第二数据包认证通过后,才会对第二数据包对应的数据发送端进行会话连接,以进而提高会话连接的安全性。
121.在一些实施方式中,所述数据接收端配置有信息校验表;所述根据所述授权认证信息进行连接服务的授权认证,包括:获取所述第二数据包对应的所述会话连接请求的安全等级;根据所述安全等级查询所述信息校验表,得到规则校验信息;根据第二预设密钥对所述第二数据包进行解密,得到所述授权认证信息;根据所述规则校验信息判断所述授权认证信息是否正确。
122.信息校验表用于存储规则校验信息,可以针对不同的端口设置不同的规则校验信息,例如,数据接收端可以根据端口的不同,为对应的端口设置不同的安全等级,对应端口的安全等级以及在对应安全等级下的规则校验信息只有数据接收端和受数据接收端信任的数据发送端持有。
123.通过与数据发送端约定规则校验信息,以根据规则校验信息对第二数据包的内容参数、数据格式等信息进行校验,进而可以有效辨别接收的第二数据包是否由信任的数据接收端发送,使数据发送端与数据接收端之间除了可以通过对发送的请求数据进行加密,来保证会话连接的安全之外,还可以通过对发送的请求数据的具体格式以及具体内容进行约定,来保证会话连接的安全。
124.数据接收端根据第二预设密钥对接收到的第二数据包进行解密和分析,如无法解包,或解封后数据包类型有误,则丢弃,如解包后正常,再进一步校验分析其中的数据信息。
125.数据接收端对第二数据包进行解包后,获取该第二数据包中的授权认证信息。数据接收端配置的信息校验表与数据发送端配置的信息查询表对应,数据发送端根据该信息查询表才能生成包含正确授权认证信息的第二数据包。因此,根据规则校验信息判断授权
认证信息的数据格式以及携带的信息内容中的至少一者是否正确,以进行连接服务的授权认证。
126.例如,当数据发送端需要访问端口a时,端口a对应的安全等级为中级,根据安全等级查询信息校验表得到对应的规则校验信息,以得到第二数据包中需要携带的数据项为:访问的端口、随机数、当前时间戳、端口敲门顺序、ip地址。同时还可以根据规则校验信息得到第二数据包的数据格式,根据数据格式得到各数据项的具体排列方式以及数据交换格式。根据规则校验信息得到的信息校验第二数据包的授权认证信息,如果授权认证信息和规则校验信息对应的信息一致,则授权认证的结果为通过,如果授权认证信息和规则校验信息对应的信息不一致,则授权认证的结果为不通过。
127.如果授权认证的结果为不通过,仅执行丢弃数据操作,而不执行任何反馈操作,避免攻击者从反馈信息进行信息收集或进行爆破攻击,可以有效防止应用端口被扫描与侦测,提高网络安全。
128.如果授权认证的结果为通过,则开放连接服务,与所述数据发送端建立会话连接。当授权认证的结果为通过时,则表明对应的数据发送端为可连接的数据发送端。可以通过更新数据接收端的防火墙策略,对数据发送端开放该数据发送端需要访问的端口,以开放合法设备对应用业务的访问。如此,可以防止攻击者对应用业务端口的扫描与侦测行为,最大限度地保障系统的安全性。
129.示例性地,可以是为数据发送端开放或临时开放对应的端口,临时开放指在预设的时间段内开放所述端口。
130.数据接收端的端口在对外开放之前处于隐藏状态,在隐藏状态下数据接收端对该端口的访问请求均不做响应。在数据接收端向对应的数据发送端开放对应的端口后,数据接收端在接收到该数据发送端对该端口的访问请求时,则进行对应的响应。可以是对数据发送端进行端口的临时开放,如端口在开放预设时间后,数据接收端使该端口重新进入隐藏状态。
131.数据接收端在第一数据包验证通过后,才会开放认证服务对第二数据包进行授权认证,进而在授权认证通过后才会开放连接服务,以通过连接服务与数据接收端进行会话连接。因此,数据接收端在开放连接服务前,会对数据发送端的多个数据包分别进行认证,在每次认证均通过后才会开放连接服务,而攻击终端难以同时伪造多个数据包,从而数据接收端能有效识别攻击终端,保证了会话连接的安全性。
132.示例性地,数据发送端在发送第二数据包的预设时间后,向数据接收端对应的端口发送会话连接请求,如果数据接收端对应的端口对该数据发送端开放,则根据该会话连接请求与该数据发送端进行信令交互。
133.图4示出了根据本公开示例性实施例的数据发送端与数据接收端之间的一种会话连接的流程图。其中,数据发送端以及数据接收端之间基于spa技术进行会话连接的建立。下面结合图4,对本公开的会话连接方法的过程进行说明:
134.步骤s410、数据发送端根据会话连接请求生成第一数据包。
135.会话连接请求可以是数据发送端内安装的应用或系统生成的,以请求访问数据接收端的目标端口。数据发送端根据会话连接请求生成第一数据包,第一数据包至少包含有数据发送端的身份信息,如数据发送端的局域网地址、终端标识、用户名称、用户密码等信
息。
136.步骤s420、数据发送端向数据接收端发送第一数据包。
137.数据发送端在发送第一数据包之前还可以对第一数据包执行加密操作,以向数据接收端发送加密后的第一数据包。
138.步骤s430、数据接收端接收第一数据包,对第一数据包进行解密和验证,得到身份认证结果,若身份认证结果为通过,则打开认证端口。
139.数据接收端对接收到的第一数据包进行解密,如无法解密,或解密后数据包类型有误,则丢弃,如解密后正常,再进一步验证其中的数据信息,以检验该第一数据包携带的数据发送端的身份信息是否有误,得到身份认证结果。
140.若身份认证的结果为通过,则数据接收端为该数据发送端开放认证端口,以通过认证端口接收数据发送端的第二数据包,并对第二数据包进行授权认证。
141.步骤s440、数据发送端根据信息查询表获取规则参数信息,以生成第二数据包。
142.规则参数信息用于规定第二数据包携带的信息内容以及数据格式。可以是根据数据发送端需要访问端口的安全等级的不同,根据信息查询表获取与安全等级匹配的规则参数信息,以动态生成第二数据包。
143.步骤s450、数据发送端在第一数据包发送完成后的预设时间内,向数据接收端发送第二数据包。
144.数据发送端还可以在第二数据包发送前对第二数据包执行加密操作,以向数据接收端发送加密后的第二数据包。预设时间可以根据实际应用情况进行灵活设置,如5秒、10秒等。预设时间可以是数据发送端和数据接收端进行约定的时间,在预设时间内向数据接收端发送的第二数据包才是合法的数据包。因为攻击终端对数据包进行监听、解析以及伪造等过程需要大量时间,因此可以通过规定发送第一数据包以及第二数据包之间的间隔时间,以有效识别攻击终端伪造的数据包。
145.步骤s460、数据接收端接收第二数据包,对第二数据包进行解密,并根据信息校验表对第二数据包进行授权认证,若授权认证的结果为通过,打开数据发送端请求访问的端口。
146.数据接收端对接收到的第二数据包进行解密,如无法解密,或解密后数据包类型有误,则丢弃,如解密后正常,再根据信息校验表进一步验证其中的数据信息,以检验该第二数据包携带的授权认证信息是否有误。
147.例如,数据接收端通过查询信息校验表,获知第二数据包中需要携带有时间戳、访问的端口信息、端口敲门顺序,数据接收端检测解密后的第二数据包中携带的数据项是否正确。如检测时间戳是否正确,并检测端口敲门顺序和访问的端口信息是否一致。如果授权认证的结果为不通过,仅执行丢弃数据操作,如果授权认证的结果为通过,则为数据发送端开放其请求访问的端口。
148.步骤s470、数据发送端在第二数据包发送完成后的预设时间内,向数据接收端发送会话连接请求,以访问数据接收端对应的端口。
149.数据发送端在发送第二数据包的预设时间后,向数据接收端对应的端口发送会话连接请求,如果数据接收端对应的端口对该数据发送端开放,则根据该会话连接请求与该数据发送端进行信令交互。
150.数据发送端通过发送第一数据包以及第二数据包,将第一数据包以及第二数据包作为请求数据并进行分开发送,以通过分离请求数据,使攻击终端难以监听到完整的请求数据,从而避免攻击终端获取到完整的请求数据后向数据接收端发送伪造请求。数据接收端在第一数据包验证通过后,才会开放认证端口对第二数据包进行授权认证,进而在授权认证通过后才会开放数据发送端请求访问的端口。因此,数据接收端在开放请求访问的端口前,会对数据发送端的多个数据包分别进行认证,在每次认证均通过后才会开放请求访问的端口,而攻击终端难以同时伪造多个数据包,从而数据接收端能有效识别攻击终端,保证了会话连接的安全性。
151.应当注意,尽管在附图中以特定顺序描述了本公开实施例中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
152.进一步的,本示例实施方式中还提供了一种会话连接装置500,应用于数据发送端。参照图5所示,该会话连接装置500包括:第一数据包发送模块510,第二数据包生成模块520,第二数据包发送模块530。
153.第一数据包发送模块510用于根据会话连接请求向数据接收端发送第一数据包;其中,所述第一数据包中携带有所述数据发送端的身份信息,以使所述数据接收端根据所述身份信息进行所述数据发送端的身份认证,并在身份认证通过时开放认证服务。
154.第二数据包生成模块520用于获取所述会话连接请求对应的规则参数信息,并根据所述规则参数信息生成第二数据包;其中,所述第二数据包中携带有授权认证信息。
155.第二数据包发送模块530用于向所述数据接收端发送所述第二数据包,以使所述数据接收端通过所述认证服务对所述授权认证信息进行连接服务的授权认证,并在所述授权认证通过时开放连接服务,以通过连接服务与所述数据发送端建立会话连接。
156.在一些实施方式中,基于前述方案,所述数据发送端配置有信息查询表,第二数据包生成模块520可以用于:
157.根据所述会话连接请求查询所述信息查询表,得到规则参数信息;
158.根据所述规则参数信息确定对应的数据项以及与所述数据项对应的数据项内容;
159.根据所述数据项和所述数据项内容生成第二数据包。
160.在一些实施方式中,基于前述方案,第二数据包生成模块520还可以用于:
161.获取所述会话连接请求的安全等级;
162.从所述信息查询表中获取与所述安全等级匹配的规则参数信息。
163.在一些实施方式中,基于前述方案,会话连接装置500还可以包括会话连接模块,该会话连接模块可以用于:
164.向所述数据接收端发送会话连接请求,以使所述数据接收端通过处于开放状态的连接服务接收到会话连接请求时,根据所述会话连接请求与所述数据发送端建立会话连接;
165.向所述数据接收端发送目标数据,以使所述数据接收端根据所建立得到的会话连接接收所述目标数据。
166.进一步的,本示例实施方式中还提供了一种会话连接装置600,应用于数据接收
端。参照图6所示,该会话连接装置600包括:第一数据包接收模块610,身份认证模块620,第二数据包接收模块630,授权认证模块640。
167.第一数据包接收模块610用于接收数据发送端根据会话连接请求发送的第一数据包;其中,所述第一数据包中携带有所述数据发送端的身份信息。
168.身份认证模块620用于根据所述身份信息进行所述数据发送端的身份认证,若所述身份认证通过,则开放认证服务。
169.第二数据包接收模块630用于接收所述数据发送端发送的第二数据包;其中,所述第二数据包是所述数据发送端根据所述会话连接请求对应的规则参数信息所生成,所述第二数据包中携带有授权认证信息。
170.授权认证模块640用于根据所述授权认证信息进行连接服务的授权认证,若所述授权认证通过,则开放连接服务,以通过连接服务与所述数据发送端建立会话连接。
171.在一些实施方式中,基于前述方案,身份认证模块620可以用于:
172.根据第一预设密钥对所述第一数据包进行解密,得到所述数据发送端的身份信息;
173.根据预设的身份信息库判断所述身份信息是否正确,得到身份认证结果。
174.在一些实施方式中,基于前述方案,数据接收端配置有信息校验表,授权认证模块640可以用于:
175.获取所述第二数据包对应的所述会话连接请求的安全等级,并根据所述安全等级查询所述信息校验表,得到规则校验信息,以及根据第二预设密钥对所述第二数据包进行解密,得到所述授权认证信息;
176.根据所述规则校验信息判断所述授权认证信息是否正确。
177.上述会话连接装置各模块的具体细节已经在对应的会话连接方法中进行了详细的描述,因此此处不再赘述。
178.应当注意,尽管在上文详细描述中提及了会话连接装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
179.此外,在本公开示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
180.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
181.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其
中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
182.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
183.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
184.此外,在本公开的示例性实施例中,还提供了一种能够实现上述会话连接方法的设备。下面参照图7来描述根据本公开的这种实施例的设备700。图7所示的设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
185.如图7所示,设备700以通用计算设备的形式表现。设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740。
186.其中,存储单元存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
187.存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(rom)723。
188.存储单元720还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
189.总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
190.设备700也可以与一个或多个外部设备770(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份
存储系统等。
191.通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
192.以上具体地示出和描述了本公开示例性实施方式。可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。