1.本公开涉及通信技术领域,端口尤其涉及一种端口控制方法及装置。控制
背景技术:
2.单包授权认证(single packet authorization,及装spa)是置流新一代端口敲门技术。spa只使用单个数据包进行访问申请,端口通过将所有必要信息集成在单个数据包内来简化敲门流程,控制在允许访问网络前,及装先验证设备和用户身份,置流以此达到“网络隐身”,端口使攻击者无法找到服务地址和端口。控制
3.ipv6是及装英文“internet protocol version 6”(互联网协议第6版)的缩写,是置流互联网工程任务组(ietf)设计的用于替代ipv4的下一代ip协议。与ipv4相比,端口ipv6具备以下优势:一、控制ipv6具有更大的及装地址空间。二、ipv6使用更小的路由表。三、ipv6增加了增强的组播(multicast)支持以及对流的控制(flow control)。四、ipv6加入了对自动配置(auto configuration)的支持。五、ipv6具有更高的安全性。六、ipv6允许扩充。七、ipv6具有更好的头部格式。八、ipv6具有新的选项来实现附加的功能。
4.相关技术在ipv6场景中进行单包授权认证时,仅支持使用ipv6地址,无法支持ipv4地址,应用范围较窄。
技术实现要素:
5.有鉴于此,本公开提供了一种端口控制方法及装置,可以使ipv6场景中的单包授权认证兼容ipv4地址。
6.第一方面,本公开提供了一种端口控制方法,所述方法包括:接收客户端发送的单包授权认证报文,所述单包授权认证报文包括ipv6基本头、拓展头和有效载荷,所述拓展头包括类型标识,所述有效载荷包括认证数据;若所述类型标识指示所述单包授权认证报文的类型为第一类型,则从所述有效载荷中获取ipv6地址;根据ipv6地址与ipv4地址之间的映射关系,将所述ipv6地址转换为ipv4地址;对所述认证数据进行验证;若所述认证数据通过验证,则为所述ipv4地址开放目标端口。
7.第二方面,本公开提供了一种端口控制装置,所述装置包括:接收模块,用于接收客户端发送的单包授权认证报文,所述单包授权认证报文包括ipv6基本头、拓展头和有效载荷,所述拓展头包括类型标识,所述有效载荷包括认证数据;第一地址获取模块,用于若所述类型标识指示所述单包授权认证报文的类型为第一类型,则从所述有效载荷中获取ipv6地址;转换模块,用于根据ipv6地址与ipv4地址之间的映射关系,将所述ipv6地址转换为ipv4地址;验证模块,用于对所述认证数据进行验证;开放模块,用于若所述认证数据通过验证,则为所述ipv4地址开放目标端口。
8.第三方面,本公开提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本公开第一方面所提供的方法。
9.因此,通过应用本公开提供的端口控制方法及装置,在单包授权认证报文中增加用于标识报文类型的类型标识,控制器接收到单包授权认证报文后,若单包授权认证报文中类型标识指示单包授权认证报文的类型为第一类型,则从有效载荷中获取ipv6地址,将ipv6地址转换为ipv4地址,从而使ipv6场景中的单包授权认证兼容ipv4地址,拓展了单包授权认证在在ipv6场景中的应用范围。
附图说明
10.图1为本公开实施例提供的系统架构的示意图;
11.图2为本公开实施例提供的一种端口控制方法的流程图;
12.图3为本公开实施例提供的第一类型的单包认证报文的示意图;
13.图4为本公开实施例提供的第二类型的单包认证报文的示意图;
14.图5为本公开实施例提供的一种端口控制装置的示意图;
15.图6为本公开实施例提供的网络设备硬件结构体的示意图。
具体实施方式
16.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
17.在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
18.应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
19.下面对本公开实施例提供的可以用于端口控制方法和装置的示例性系统架构进行详细地说明。参见图1,图1为本公开实施例提供的系统架构的示意图。系统架构可包括主机110、控制器120、网关130和服务器140。
20.主机110例如可以包括智能手机、平板电脑、台式机、笔记本电脑等等。主机中可以安装有客户端。
21.控制器120可以用于对用户进行身份认证和对用户访问权限进行鉴别的设备。控制器120可以有自己的身份和权限管理系统,管理员可以在控制器120中配置用户的身份信息以及对资源的访问权限。
22.网关130可以用于为有权限的用户提供资源访问服务的设备。网关130不进行用户身份认证,仅对控制器120授权的用户提供资源访问服务。
23.服务器140可以为提供各种服务的服务器,例如为应用程序提供后台服务的服务
器、提供api(应用程序接口)服务的服务器等。
24.客户端例如可以为sdp(software defined perimeter,软件定义边界)客户端。控制器120例如可以为sdp控制器。网关130例如可以为sdp网关。sdp(software defined perimeter,软件定义边界)零信任功能是指设备作为sdp网关与sdp控制器联动,对访问指定应用或api的用户进行身份认证和鉴权,以实现对用户身份和访问权限的集中控制,防止非法用户访问。
25.根据本公开的实施例,sdp控制器可以设置有spa认证接口。sdp客户端可以通过互联网向spa认证接口发送单包授权认证报文,以敲开端口。单包授权认证报文可以包括应用标识、随机数、认证密码,除此之外,还支持携带多个端口信息和/或多个ip地址信息。
26.sdp控制器通过spa认证接口接到单包授权认证报文之后,可以根据本地的密钥和随机数生成本地密钥,判断本地密钥与认证密码是否一致,如果一致,则确定认证密码通过验证,然后为单包授权认证报文中的ip地址信息开放对应的端口。
27.sdp网关可以作为企业边界设备,一方面可以通过互联网连接主机110,另一方面可以通过内部网络连接服务器140。sdp网关可以根据sdp控制器的授权,向主机110提供针对服务器140的资源访问服务。
28.下面对本公开实施例提供的端口控制方法进行详细地说明。参见图2,图2为本公开实施例提供的一种端口控制方法的流程图。该方法可以应用于上文所示的控制器,本公开实施例提供的端口控制方法可包括如下所示步骤。
29.步骤210、接收客户端发送的单包授权认证报文。
30.根据本公开的实施例,单包授权认证报文可以用于请求开放目标端口。单包授权认证报文包括ipv6基本头、拓展头和有效载荷(payload),ipv6基本头例如可以包括版本号、流类别、流标签、有效载荷长度、下一个报头、跳数限制、源地址和目的地址,拓展头例如可以包括类型标识,有效载荷例如可以包括认证数据。
31.步骤220、若类型标识指示单包授权认证报文的类型为第一类型,则从有效载荷中获取ipv6地址。
32.根据本公开的实施例,类型标识可以用于标识报文的类型。
33.步骤230、根据ipv6地址与ipv4地址之间的映射关系,将ipv6地址转换为ipv4地址。
34.根据本公开的实施例,映射关系可以用于指示ipv6地址与ipv4地址之间的对应关系。映射关系例如可以为一对多也可已为一对一,本公开对此不作具体限定。
35.步骤240、对认证数据进行验证。
36.根据本公开的实施例,认证数据可以用于验证客户端和用户的身份。
37.需要说明的是,步骤240可以在步骤230之后执行,也可以在步骤220之前执行,或者也可以在步骤220-230执行过程中的任意时刻执行,本公开对此不作具体限定。
38.步骤250、若认证数据通过验证,则为ipv4地址开放目标端口。
39.根据本公开的实施例,在为ipv4地址开放目标端口后,源地址与该ipv4地址一致的报文可以通过该目标端口。
40.根据本公开的实施例,单包认证报文可以携带端口号。基于此,例如可以确定该端口号指示的端口作为目标端口。
41.根据本公开的实施例,例如可以将ipv4地址和端口号之间的对应关系写入防火墙白名单策略,从而为ipv4地址开放对应端口号所指示的目标端口。
42.相关技术在ipv6场景中进行单包授权认证时,仅支持使用ipv6地址,无法支持ipv4地址,应用范围较窄。
43.根据本公开的实施例的端口控制方法,在单包授权认证报文中增加用于标识报文类型的类型标识,控制器接收到单包授权认证报文后,若单包授权认证报文中类型标识指示单包授权认证报文的类型为第一类型,则从有效载荷中获取ipv6地址,将ipv6地址转换为ipv4地址,使ipv6场景中的单包授权认证兼容ipv4地址,拓展了单包授权认证在在ipv6场景中的应用范围。另外既可以拥有ipv6的技术优势,同时又可以保证与ipv4的兼容性,更有益于后续的发展和迭代。
44.可选地,单包授权认证报文可以携带多个ipv6地址和与多个ipv6地址对应的多个端口号。基于此,可以将多个ipv6地址分别映射为多个ipv4地址,然后在认证数据通过验证的情况下,为多个ipv4地址中的每个ipv4地址开放对应端口号指示的端口。
45.可选地,在为ipv4地址开放目标端口的基础上,还可以为ipv6地址也开放目标端口,从而使源地址与该ipv6地址一致的报文可以通过该目标端口。由此,可以使ipv6场景中的单包授权认证同时兼容ipv6地址和ipv4地址,进一步拓展了单包授权认证在在ipv6场景中的应用范围。
46.可选地,类型例如可以包括第一类型和第二类型。第一类型的单包认证报文携带ipv6地址但不携带ipv4地址。因此,对于第一类型的单包认证报文,可以从报文中获取ipv6地址,根据ipv6地址与ipv4地址之间的映射关系,将ipv6地址转换为ipv4地址。第二类型的单包认证报文在有效载荷中携带ipv4地址。因此,对于第二类型的单包认证报文可以从报文有效载荷中获取ipv4地址。由此,可以使ipv6场景中的单包授权认证兼容ipv4地址。
47.可选地,对于第一类型的单包认证报文,可以通过单包授权认证报文携带ipv6地址与ipv4地址之间的地址映射关系。例如可以将ipv6地址与ipv4地址之间的地址映射关系存储在单包授权认证报文的有效载荷中。基于此,当需要获取ipv6地址与ipv4地址之间的映射关系时,可以从单包授权认证报文的有效载荷中获取地址映射关系。基于此,可以从单包授权认证报文中获取地址映射关系,然后根据ipv6地址与ipv4地址之间的映射关系,将ipv6地址转换为ipv4地址。
48.或者,可以在单包认证报文中携带关系标识。基于此,可以从单包授权认证报文中获取关系标识,然后从多个预设地址映射关系中确定与关系标识对应的地址映射关系,根据ipv6地址与ipv4地址之间的映射关系,将ipv6地址转换为ipv4地址。其中,预设地址关系例如可以预先存储在控制器本地。
49.可选地,对于第二类型的单包认证报文,可以在单包认证报文中同时携带ipv4地址和ipv6地址。在认证数据进行验证的情况下,可以为ipv4地址和ipv6地址开放目标端口。由此,可以使ipv6场景中的单包授权认证同时兼容ipv6地址和ipv4地址。
50.可选地,单包授权认证报文可以携带多个ipv4地址和与多个ipv4地址对应的多个端口号。基于此,在认证数据通过验证的情况下,可以为多个ipv4地址中的每个ipv4地址开放对应端口号指示的端口。
51.可选地,认证数据可以包括随机数和认证密码。验证验证其中,随机数可以为客户
端计算得到一个随机数值。认证密码可以为根据随机数计算得到的密钥。
52.根据本公开的实施例,客户端可以预先向控制器进行终端备案,控制器可以在备案时向客户端下发唯一的应用标识(aid)和私钥(key)。客户端可以生成随机数,然后利用私钥对随机数进行加密,得到认证密码。
53.根据本公开的实施例,控制器例如可以根据应用标识,获取本地存储的对应私钥。根据该对应私钥对随机数进行加密,得到本地密码。若本地密码与认证密码一致,则确定认证数据通过验证,否则,确定认证数据未通过验证。
54.下面对本公开实施例提供的单包认证报文进行详细地说明。
55.根据本公开的实施例,可以基于ipv6报文生成单包认证报文。ipv6报文可以包括ipv6基本头basic ipv6 header、扩展头extend header和有效载荷payload等字段。其中,ipv6基本头例如可以包括版本号version、流类别traffic class、流标签flow label、有效载荷长度payload length、下一个报头next header、跳数限制hop limit、源地址source address和目的地址destination address。示例性地,本实施例中,可以在ipv6报文中定义一个新的ipv6拓展头用以标识单包认证报文的类型。例如,可以定义一个新的ipv6拓展头作为单包认证选项头spa header,类型值可以为100,对应处理节点为目的节点,该单包认证选项头可以用于标示报文为单包认证报文,以便控制器根据报文进行单包授权认证。
56.接着,可以在ipv6报文的payload字段中增加单包认证中的认证数据,例如包括报文头、应用标识aid、随机数counter、认证密码password、端口数量port count、端口号port 1、port 2、
……
port n(n为正整数)。
57.示例性地,图3为本公开实施例提供的第一类型的单包认证报文的示意图。
58.如图3所示,可以在单包认证报文中定义一个ipv6拓展头用以标识单包认证报文的类型为第一类型,并在payload字段中添加认证数据和需要授权的客户端ipv6地址。当控制器接收到该报文时,可以通过识别拓展头确定报文的类型为第一类型。对于第一类型,一方面,可以从payload字段中提取ipv6地址,然后根据ipv6地址与ipv4地址之间的映射关系,将ipv6地址转换为ipv4地址。另一方面,可以对认证数据进行验证。若认证数据通过验证,则为ipv4地址开放对应端口。另外,在认证数据通过验证的情况下,还可以为ipv6地址也开放对应端口。
59.根据本公开的另一实施例,还可以在payload字段中添加ipv6地址与ipv4地址之间的映射关系,从而控制器可以直接从报文中获取ipv6地址与ipv4地址之间的映射关系,用于将ipv6地址转换为ipv4地址。或者,可以在payload字段中添加关系标识。控制器中预存有多个地址映射关系,可以基于多个地址映射关系中与报文中的关系标识对应的地址映射关系,将ipv6地址转换为ipv4地址。示例性地,图4为本公开实施例提供的第二类型的单包认证报文的示意图。
60.如图4所示,可以在单包认证报文中定义一个ipv6拓展头用以标识单包认证报文的类型为第二类型,并在payload字段中添加认证数据和需要授权的客户端ipv6地址和/或ipv4地址。当控制器接收到该报文时,一方面,可以通过识别拓展头确定报文的类型为第一类型。对于第一类型,可以从payload字段中提取ipv6地址和/或ipv4地址。另一方面,可以对认证数据进行验证。若认证数据通过验证,则为ipv6地址和/或ipv4地址开放对应端口。
61.基于同一发明构思,本公开实施例还提供了与端口控制方法对应的端口控制装
置。参见图5,图5为本公开实施例提供的一种端口控制装置的示意图,该装置可以应用于控制器,该装置可以包括;
62.接收模块510,用于接收客户端发送的单包授权认证报文,单包授权认证报文包括ipv6基本头、拓展头和有效载荷,拓展头包括类型标识,有效载荷包括认证数据;
63.第一地址获取模块520,用于若类型标识指示单包授权认证报文的类型为第一类型,则从有效载荷中获取ipv6地址;
64.转换模块530,用于根据ipv6地址与ipv4地址之间的映射关系,将ipv6地址转换为ipv4地址;
65.验证模块540,用于对认证数据进行验证;
66.开放模块550,用于若认证数据通过验证,则为ipv4地址开放目标端口。
67.根据本公开的实施例,在单包授权认证报文中增加用于标识报文类型的类型标识,控制器接收到单包授权认证报文后,若单包授权认证报文中类型标识指示单包授权认证报文的类型为第一类型,则从有效载荷中获取ipv6地址,将ipv6地址转换为ipv4地址,使ipv6场景中的单包授权认证兼容ipv4地址,拓展了单包授权认证在在ipv6场景中的应用范围。
68.可选地,端口控制装置还可以包括:第二获取模块,用于若类型标识指示单包授权认证报文的类型为第二类型,则从有效载荷中获取ipv4地址。
69.可选地,有效载荷还跨行业包括ipv6地址与ipv4地址之间的地址映射关系,端口控制装置还可以包括:第三获取模块,用于从有效载荷中获取地址映射关系。
70.可选地,有效载荷还可以包括关系标识,装置还可以包括:第四获取模块,用于从有效载荷中获取关系标识;确定模块,用于从多个预设地址映射关系中确定与关系标识对应的预设地址映射关系,作为ipv6地址与ipv4地址之间的映射关系。
71.可选地,认证数据可以包括随机数和认证密码;验证模块可以包括:加密子模块,用于利用本地密钥对随机数进行加密,得到本地密码;确定子模块,用于若本地密码和认证密码一致,则确定认证数据通过验证。
72.基于同一发明构思,本公开实施例还提供了一种网络设备,如图6所示,包括处理器610、收发器620和机器可读存储介质630,机器可读存储介质630存储有能够被处理器610执行的机器可执行指令,处理器610被机器可执行指令促使执行本公开实施例所提供的端口控制方法。前述图5所示的端口控制装置,可采用如图6所示的网络设备硬件结构实现。
73.上述计算机可读存储介质630可以包括随机存取存储器(英文:random access memory,简称:ram),也可以包括非易失性存储器(英文:non-volatile memory,简称:nvm),例如至少一个磁盘存储器。可选的,计算机可读存储介质630还可以是至少一个位于远离前述处理器610的存储装置。
74.上述处理器610可以是通用处理器,包括中央处理器(英文:central processing unit,简称:cpu)、网络处理器(英文:network processor,简称:np)等;还可以是数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)、现场可编程门阵列(英文:field-programmable gate array,简称:fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
75.本公开实施例中,处理器610通过读取机器可读存储介质630中存储的机器可执行指令,被机器可执行指令促使能够实现处理器610自身以及调用收发器620执行前述本公开实施例描述的端口控制方法。
76.另外,本公开实施例提供了一种机器可读存储介质630,机器可读存储介质630存储有机器可执行指令,在被处理器610调用和执行时,机器可执行指令促使处理器610自身以及调用收发器620执行前述本公开实施例描述的xx方法。
77.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
78.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
79.对于端口控制装置以及机器可读存储介质实施例而言,由于其涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
80.以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。