[0047] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0048] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0049] 请参阅图2,本发明提供一种基于SDN流的安全认证方法,所述基于SDN流的安全认证方法包括:
[0050] S21,接收客户端通过源SDN交换机上报的认证请求;所述认证请求包括流特征码、用户名和密码。所述流特征码为SDN流的四元组特征码,四元组包括目的MAC地址,源MAC地址,目的IP地址,源IP地址。即私有的客户端认证请求带有用户名,密码和SDN流的四元组信息:目的MAC地址,源MAC地址,目的IP地址,源IP地址。所述源SDN交换机就是普通的SDN交换机,之所以加上了“源”字,是为了指代清楚。所述源SDN交换机是指向SDN控制器上报客户端认证请求的SDN交换机,当然,SDN控制器反馈下发的流表也是发给源SDN交换机的。
[0051] S22,提取所述流特征码,计算SDN流的转发路径。即,SDN控制器根据SDN交换机上报的MAC地址信息,端口信息和网络拓扑信息(根据LLDP报文,计算获得),计算报文的转发路径。进一步,所述计算SDN流的转发路径的实现过程包括:根据MAC地址信息,LLDP信息和所述流特征码,计算所述SDN流的转发路径;所述流特征码包括目的MAC地址,源MAC地址,目的IP地址和源IP地址。具体地,根据MAC地址信息、LLDP(Link Layer Discovery Protocol,链路层发现协议)信息和流特征码,计算流转发路径。
[0052] S23,根据所述认证请求中包含的流特征码、用户名和密码匹配SDN流安全认证策略。
[0053] S24,根据匹配认证结果,向所述源SDN交换机下发流表;所述流表包括所述SDN流的转发路径。SDN控制器根据基于全网SDN流的安全认证策略对转发路径上的源SDN交换机下发流表,从而实现全网SDN流的安全认证。
[0054] S25,若所述流表表示认证通过,则使所述源SDN交换机转发所述客户端的报文;若所述流表表示认证失败,则使所述源SDN交换机丢弃所述客户端的报文。具体地,本发明需要扩充OF流表指令集,此指令集用于基于SDN流的安全认证(认证通过,流转发。认证不通过,丢弃)。SDN控制器和交换机需要支持扩充的OF流表指令集。
[0055] 所述步骤S21至S25由SDN控制器实现。所述SDN控制器的实现逻辑比较复杂,本实施例提供SDN控制器的一种具体工作流程,参见图3所示,首先需要SDN控制器根据MAC地址信息,LLDP信息和流特征码计算流转发路径,然后SDN控制器从认证请求中解析出用户名,密码和流特征码;SDN控制器再根据流特征码,用户名和密码匹配SDN流安全认证策略;如果认证通过,下发流表到源SDN交换机,使源SDN交换机转发流;如果认证不通过,下发流表到源SDN交换机,使源SDN交换机丢弃报文。
[0056] 进一步,参见图4所示,所述基于SDN流的安全认证方法还包括:
[0057] S41,接收客户端通过源SDN交换机上报的认证终结请求。所述认证请求和终结认证请求的报文格式相同,均包括目的MAC字段,源MAC字段,流源MAC字段和流目的MAC字段。具体地,客户端私有的认证/终结请求报文格式如图5所示,其中,TYPE为0x999e表示认证请求,TYPE为0x999f表示认证终结。只有在TYPE为0x999e的时候,用户名和密码字段才有意义。
[0058] S42,从所述认证终结请求中解析出流特征码。
[0059] S43,根据解析出的流特征码匹配所述SDN流安全认证策略。
[0060] S44,移除所述源SDN交换机的流表,使所述源SDN交换机丢弃所述客户端的报文。
[0061] 所述步骤S41至S44由SDN控制器实现。所述SDN控制器的实现逻辑比较复杂,本实施例提供SDN控制器的另一种具体工作流程,参见图6所示,SDN控制器根据MAC地址信息,LLDP信息和流特征码计算流转发路径。SDN控制器从终结认证请求中解析出流特征码。SDN控制器根据流特征码匹配SDN流安全认证策略。SDN控制器移除源SDN交换机的流表,发送到源SDN交换机中的报文将被送往SDN控制器而丢弃。
[0062] 进一步,参见图7所示,所述基于SDN流的安全认证方法还包括:
[0063] S71,所述源SDN交换机监听客户端发送的SDN流,查询流表。
[0064] S72,若所述流表表示认证通过,则所述源SDN交换机将所述SDN流的源MAC地址和源端口学习或更新到MAC地址表。SDN交换机新学一条MAC地址,需立即上报给SDN控制器;SDN交换机老化一条MAC地址,需立即上报给SDN控制器。
[0065] S73,所述源SDN交换机上报新学习的所述SDN流的源MAC地址和源端口。
[0066] S74,若所述流表表示认证失败,则所述源SDN交换机丢弃报文。
[0067] 所述步骤S71至S74由SDN交换机实现。本实施例提供SDN交换机的一种具体工作流程,参见图8所示,SDN交换机监听SDN流,查询流表。如果SDN流认证不通过,SDN交换机将丢弃报文。如果认证通过,SDN交换机将源MAC地址和源端口学习或更新到MAC地址表;如果是新增表项,SDN交换机则将源MAC地址和源端口上报给SDN控制器。
[0068] 本发明是为了解决SDN网络用户的接入认证问题。如果SDN用户不提供接入认证,只要用户能接入SDN交换机,就可以访问SDN网中的设备或资源。这将存在明显的安全隐患。本发明为了解决基于SDN流的网络接入控制问题,提供了上述基于SDN流的安全认证方法。
“基于SDN流的网络接入控制”是指根据SDN流的特征在SDN流这一级对所接入的用户设备进行认证和控制。如果SDN流能通过认证,就可以访问SDN网中的资源;如果不能通过认证,则无法访问SDN网中的资源。
[0069] 本发明实现了基于SDN对接入控制的集中管理。参见图9所示,首先客户端发起认证请求(携带SDN流的四元组特征码,目的MAC地址,源MAC地址,目的IP地址,源IP地址),SDN控制器提取SDN流的特征码计算SDN流的转发路径,最后SDN控制器根据认证服务的配置和SDN流的转发路径,自动下发流表给SDN交换机,实现了SDN流的安全认证。
[0070] 参见图10所示,SDN交换机学习或老化一条MAC地址信息,需立即上报给SDN控制器。交换机需要把客户端发送的认证请求(流特征码,用户名和密码)上报给SDN控制器。控制器根据MAC地址信息,LLDP信息,流特征码,计算流转发路径。SDN控制器根据流特征码,用户名和密码匹配SDN流安全认证策略。控制器根据认证结果,下发流表到源SDN交换机,若认证通过,则报文转发,否则丢弃报文。SDN交换机需要把客户端发送的终结请求(流特征码)上交给SDN控制器,SDN控制器清除SDN交换机的流表。对应的SDN交换机中的SDN流将交给SDN控制器处理进行丢弃。
[0071] 本发明所述的基于SDN流的安全认证方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
[0072] 本发明还提供一种基于SDN流的安全认证系统,所述基于SDN流的安全认证系统可以实现本发明所述的基于SDN流的安全认证方法,但本发明所述的基于SDN流的安全认证方法的实现装置包括但不限于本实施例列举的基于SDN流的安全认证系统的结构,凡是根据本发明的原理所做的现有技术的结构变形和替换,都包括在本发明的保护范围内。
[0073] 参见图11所示,所述基于SDN流的安全认证系统100包括SDN控制器110,SDN交换机120,客户端130。
[0074] 参见图12所示,所述SDN控制器110包括:接收模块111,提取模块112,计算模块113,匹配模块114,认证模块115,终结模块116。
[0075] 所述接收模块111与SDN交换机120相连,接收客户端通过源SDN交换机上报的认证请求;所述认证请求包括流特征码、用户名和密码;所述接收模块111接收客户端通过源SDN交换机上报的认证终结请求。所述认证请求和终结认证请求的报文格式相同,均包括目的MAC字段,源MAC字段,流源MAC字段和流目的MAC字段。所述流特征码为SDN流的四元组特征码,四元组包括目的MAC地址,源MAC地址,目的IP地址,源IP地址。即私有的客户端认证请求带有用户名,密码和SDN流的四元组信息:目的MAC地址,源MAC地址,目的IP地址,源IP地址。所述源SDN交换机就是普通的SDN交换机,之所以加上了“源”字,是为了指代清楚。所述源SDN交换机是指向SDN控制器上报客户端认证请求的SDN交换机,当然,SDN控制器反馈下发的流表也是发给源SDN交换机的。客户端私有的认证/终结请求报文格式如图5所示,其中,TYPE为0x999e表示认证请求,TYPE为0x999f表示认证终结。只有在TYPE为0x999e的时候,用户名和密码字段才有意义。
[0076] 所述提取模块112与所述接收模块111相连,从所述认证请求中提取出流特征码;所述提取模块112从所述认证终结请求中解析出流特征码。即,SDN控制器根据SDN交换机上报的MAC地址信息,端口信息和网络拓扑信息(根据LLDP报文,计算获得),计算报文的转发路径。
[0077] 所述计算模块113与所述提取模块112相连,根据所述流特征码计算SDN流的转发路径。所述计算模块113根据MAC地址信息,LLDP信息和所述流特征码,计算所述SDN流的转发路径;所述流特征码包括目的MAC地址,源MAC地址,目的IP地址和源IP地址。根据MAC地址信息、LLDP(Link Layer Discovery Protocol,链路层发现协议)信息和流特征码,计算流转发路径。
[0078] 所述匹配模块114与所述接收模块111相连,根据所述认证请求中包含的流特征码、用户名和密码匹配SDN流安全认证策略;所述匹配模块114根据解析出的流特征码匹配所述SDN流安全认证策略。所述流表包括所述SDN流的转发路径。SDN控制器根据基于全网SDN流的安全认证策略对转发路径上的源SDN交换机下发流表,从而实现全网SDN流的安全认证。
[0079] 所述认证模块115与所述计算模块113和匹配模块114相连,根据匹配认证结果,向所述源SDN交换机下发流表;所述流表包括所述SDN流的转发路径;若所述流表表示认证通过,则使所述源SDN交换机转发所述客户端的报文;若所述流表表示认证失败,则使所述源SDN交换机丢弃所述客户端的报文。具体地,本发明需要扩充OF流表指令集,此指令集用于基于SDN流的安全认证(认证通过,流转发。认证不通过,丢弃)。SDN控制器和交换机需要支持扩充的OF流表指令集。
[0080] 所述终结模块116与所述匹配模块114和认证模块115分别相连,移除所述源SDN交换机的流表,使所述源SDN交换机丢弃所述客户端的报文。SDN控制器根据MAC地址信息,LLDP信息和流特征码计算流转发路径。SDN控制器从终结认证请求中解析出流特征码。SDN控制器根据流特征码匹配SDN流安全认证策略。SDN控制器移除源SDN交换机的流表,发送到源SDN交换机中的报文将被送往SDN控制器而丢弃。
[0081] 参见图13所示,所述源SDN交换机120包括:监听模块121,学习或更新模块122,学习上报模块123,丢弃模块124。
[0082] 所述监听模块121监听客户端发送的SDN流,查询流表。
[0083] 所述学习或更新模块122与所述监听模块121相连,若所述流表表示认证通过,则将所述SDN流的源MAC地址和源端口学习或更新到MAC地址表。SDN交换机新学一条MAC地址,需立即上报给SDN控制器;SDN交换机老化一条MAC地址,需立即上报给SDN控制器。
[0084] 所述学习上报模块123与所述监听模块121和所述SDN控制器110分别相连,向所述SDN控制器上报新学习的所述SDN流的源MAC地址和源端口。
[0085] 所述丢弃模块124与所述监听模块121相连,若所述流表表示认证失败,则所述源SDN交换机丢弃报文。
[0086] SDN交换机监听SDN流,查询流表。如果SDN流认证不通过,SDN交换机将丢弃报文。如果认证通过,SDN交换机将源MAC地址和源端口学习或更新到MAC地址表;如果是新增表项,SDN交换机则将源MAC地址和源端口上报给SDN控制器。
[0087] 本发明采用了SDN架构,SDN控制器能够感知报文的转发路径和网络变化,通过下发流表的方式,动态的对SDN流进行安全认证,从而实现了全网SDN流的安全认证。由于安全认证由SDN控制器自动计算完成,因此整个网络的管理和配置非常简单和智能,只需配置基于全网SDN流的安全认证策略。
[0088] 综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0089] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。