SDN架构下网络安全协议的认证机制研究与探索
2019-03-18杨泽明
杨泽明
摘 要:文章通过对网络安全协议原理的描述,明确安全协议的目标就是保证在协议执行完成时得以实现其安全属性,并以ARP协议欺骗攻击及其协议缺陷为例展开分析。针对ARP欺骗攻击的特征,结合相关的技术手段,如利用区块链技术的去中心化、防篡改、可追踪溯源等特征,使用区块链技术对通信数据实现加密功能。运用SDN(软件定义网络)技术,尝试着从全局视角,运用虚拟化技术分析局域网络中网络设备的流量状况,最终实现控制网络流量和虚拟网络设备的目的,从而避免攻击,使网络管控变得更加智能。
关键词:安全协议;ARP攻击;SDN;区块链
中图分类号:TP309.1,TP309.7 文献标识码:A
Abstract: Through the description of the principle of network security protocol, the purpose of the security protocol is to ensure that the security attributes are realized when the protocol is executed. The ARP spoofing attack and its protocol defects are analyzed as an example. Combine relevant technical means, such as decentralization using block chain technology, anti-tampering, traceability and other advantages, use block chain technology to implement encryption function for communication data, and use SDN (software-defined network) technology to try From a global perspective, using virtualization technology to analyze the traffic status of network devices in the local area network, and finally achieve the purpose of controlling network traffic and virtual network devices, thereby avoiding attacks and making network management and control more intelligent.
Key words: security protocol; ARP attack; SDN; blockchain
1 引言
随着信息化技术水平的高速发展,人们在获取信息、日常交流中,都离不开网络载体,如金融、交通、教育、企事业等重要基础设施对网络的依赖性越来越强,信息安全对于社会和经济生活的影响也越来越大。目前,已经从最初的个体隐私与机密性问题上升到国家战略性层面,而网络安全协议是解决网络安全问题最直接、最有效的手段之一,它可以解决源端认证和目标认证、消息完整性、匿名通信、抗DDoS、抗抵赖、授权等一系列重要安全问题。安全协议是建立在密码算法基础上的一种高互通协议,它运行在计算机网络或分布式系统中,为安全需求的各方提供一系列步骤,借助密码算法来达到密钥分发、身份认证以及安全地实现网络通信或电子交易等目的。
2 安全协议概述
从实现安全通信协议的目的出发,可以看出有多种方式保证通信双方主体的安全,如密钥交换协议。常见的密钥交换协议如Diffle-Hellman协议、MOV协议等,多采用参与通信的多个实体间共享密钥(可以是对称密钥或公钥密钥)的方式对通信数据进行加密。还有认证协议,该类协议通过对数据源及目的源实施身份认证以及信息完整性认证,如Schnorr协议、Okamoto协议等,可防范通信实体间发生的假冒、篡改、否认等安全事件。进一步发展为“认证+密钥交换”协议,如Kerboros协议、X.509协议等。还有安全通信协议,此类协议可以保证网络信息的安全交换,常见的协议有PPTP/L2PP协议、IPSec协议及SSL/TLS协议等。
大多数安全协议中只有少数几个消息传递,但是其中的每一個消息都经过巧妙设计,消息之间存在着相互制约、相互作用。在安全协议中往往使用多种不同的密码算法,协议设计者对最初协议运行环境的安全需求估计不足,从而采用不当的技术,这些都会导致设计出的安全协议存在安全漏洞与缺陷,并引发入侵者对协议进行各类攻击行为,从而破坏协议的安全性。
从安全协议系统模型的角度分析,在规模较大的分布式网络环境中,如果将协议及其所处的环境视为一个系统的话,本文的安全协议所面临的最大问题,是网络通信系统环境本身是不安全的,一般包括发送和接收信息的若干诚实主体和攻击者存在,还有用于管理通信消息时需要发送和接收的规则。但是,通信协议合法的已知消息存放在知识集KS(Knowledge Set)中,攻击者通过对消息进行级联、分离、加密和解密操作处理,避免数据被截获、篡改、重写、删除或插入的可能,并将此类消息放入KS中。
系统中所有主体(含诚实主体和攻击者)都会使用KS中的消息进行信息交换,从而引发欺骗攻击。被动攻击者可以在线窃听通信中的敏感信息,主动攻击者可截获通信中数据包对其任意的修改,甚至也可伪装诚实主体与真实主体进行非法数据通信。加密算法可以有效地阻止主动入侵攻击,因为在攻击者不知道密钥的前提下,对密文信息稍加改动就会导致解密的失败,此时攻击者只能做的是阻止消息或延时送达目的地。
众所周知,安全协议的目标就是保证安全属性在协议执行完成时得及实现,而评估一个安全协议是否安全的依据,就是需要达到的安全属性是否受到攻击者破坏。安全属性主要有机密性、完整性、认证性、不可否认性等。
作为信息安全领域中几个基本安全属性之一的认证( Authentication),实现了一个实体〔通常称为验证者( Verifier)〕B对另一个实体〔通常称为声称者( Claimant〕A声称的某种属性验证。认证分为消息认证( Message Authentication)和实体认证(Entity Authentication)。前者的认证是验证消息的某种声称属性,而后者的认证是验证声称者所声称的身份。两种认证并非对立的概念,本质上身份也可视为一种消息,因此身份认证可视为消息认证,而协议中也可以使用消息认证机制来实现实体认证。
消息认证要确认消息是从规定数据源发出的,而且需要保证消息的完整性,以使信息系统能防止对消息的假冒、篡改、插入、删除等攻击,通常使用的技术为数字签名( Digital Signature)。实体认证的目标是使声称者的身份被确认,因此实体认证具有实时性,一般需通过实体认证协议来实现。
3 ARP协议及欺骗攻击的原理
一个安全的身份认证协议至少应满足两个条件。
(1)证明者A能向验证者B证明他的确是A。
(2)在证明者A向验证者B证明他的身份之后,验证者B不能获得关于A的任何有用的信息使得他能模仿A向第三方证明他是A。
这两个条件是说明证明者A能向验证者B以电子证明的方式证明他的身份,并且没有向B泄露他的认证信息。目前,已设计出许多满足这两个条件的身份认证协议,而传统TCP/IP体系结构中ARP协议,却是缺少身份认证机制的协议之一。地址解析协议( Address Resolution Protocol,ARP)的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在局域网中,网络中实际传输的是“帧”,帧里面有目标主机的MAC地址。这个目标MAC地址是通过地址解析协议获得的。
两台主机想要直接通信,必须知道目标主机的MAC地址,而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址,这样就导致在以太网结构中使用IP协议时,数据链路层的以太网协议连接到上层(网络层)IP协议提供的数据中,只包含目的主机的IP地址。需要根据目的主机的IP地址获取其对应的MAC地址,而ARP协议就是负责把网络层的IP地址转化为数据链路层中的网卡物理地址[2](MAC地址)。
假设主机A曾经和主机B进行过通信,主机A就会在ARP缓存表中记录下主机B的IP地址和其对应的MAC地址。通常ARP缓存表都有更新机制,当有主机通知其他主机其MAC地址更新时,会向其它主机发送ARP更新信息,以便这些主机及时更新其ARP缓存表。每台主机在收到ARP数据包时都会更新自己的ARP缓存表。
ARP欺骗攻击的原理就是通过发送欺骗性的ARP数据包,致使接收者收到欺骗性的ARP数据包后,更新其ARP缓存表,从而建立错误的IP地址与MAC地址的对应关系。在设计ARP协议时没有充分考虑其数据包来源的真实性认证,却以局域网中的互联设备信任为基础来实现的。由于源主机寻找目标MAC地址时会在网络中广播发送 ARP 请求报文,不检测自身设备是否发送过请求报文的合法性,只要收到ARP协议请求报文就应答,并更新本地主机ARP 地址缓存表。如有攻击者不断发送错误的MAC地址请求报文,就会出现地址冲突、数据包拥塞,导致网络环境中断网现象的发生。
而针对ARP欺骗攻击的防范研究者提出很多解决方案[3]。如MAC地址与IP地址双向绑定方案,此方案根据 ARP欺骗原理而采取的防范措施,是指在内网的计算机上把路由器(网关) IP地址和MAC地址做一次绑定,同时在路由器或网关上将内网主机的IP地址和MAC地址也绑定一次,对ARP欺骗的双方设备,都具有限制及约束的作用。但是,这仅限小规模的网络环境中,如果移动设备更换位置或重启计算机绑定就会失效。
还有很多具有网管性能的交换机具有MAC地址学习功能,采用的是“自学习”完成端口和地址的对应关系后,再关闭此项功能,之后对端口及对应的 MAC地址静态绑定,避免攻击者实施ARP 欺骗攻击篡改地址。如果具有欺骗性的ARP报文先行被交换机学习到,就会出现更大的隐患。针对网络中主机或服务器常采用ARP 个人防火墙,这只能保障本地主机的安全,仍然会受网络中假网关的影响,不是从网络宏观的角度加以考量。 综合以上ARP 攻击防范方案的分析,需要综合考虑三点。
(1)保證网络环境中终端设备(主机或服务器)连接的路由器网关地址的绑定。
(2)路由器或网关设备中的IP地址及MAC地址唯一而不被修改。
(3)保障网络中主机的信息认证安全,采用何种技术手段对ARP欺骗攻击行为进行了深入的研究,提出一套安全管控的解决方案[4]。
4 基于区块链技术的ARP欺骗攻击防御方法
区块链技术是近年来应用各领域的去中心化分布式记账系统,具有可防篡改、可追踪溯源等优势特征,应用于信息安全领域,可用于数据防护、接入控制、授权及身份认证。访问控制单点化在有信息中心的网络环境中,无论是物理网络还是虚拟网络最终都是由访问控制节点对网关、隔离设备或防火墙等管控。但是,对于基础设备一旦被攻破,网络核心设备也会面临攻击威胁。
通过前面的ARP欺骗攻击原理的分析,区块链技术是通信节点上无需互信任的分布式系统,可以解决ARP协议在设备通信中无认证性。区块链技术可以实现基于去中心化信任的点对点交易、协作,为网络安全协议的提供新的范式,在网络空间安全领域具有一定的参考作用。利用区块链技术思想,设计了改进区块链交易索引表结构,通过数字签名机制防范篡改MAC地址,使用散列算法对通信数据加密来保证数据安全性及完整性,目标主机获取的MAC地址与区块链存储值唯一准确。
现有方案常采用IP-MAC 静态绑定的方式来防御ARP攻击。但是,在局域网环境中无法保证网络系统中的IP地址保持不变,如发生变化时需要逐个更改已绑定的 IP-MAC对应关系,因此增加需要网络管理工作量。在ARP工作过程中,通信双方主体运用区块链中公开密钥加密机制,各自节点生成密钥对,在发送方使用自身私钥进行数字签名保证交易发起方身份,通信数据中将公钥及签名一起发送,各接收方节点通过发送方的公钥验证后把交易信息加入具体区块中,然后通过矿工节点实施挖矿操作,挖矿过程是根据事先设定的工作难度,寻找满足条件的随机数,并将其首部放入区块nonce字段中。
在此区块中会对每一区块头部作SHA256加密运算从而得到相对应的散列值,同时区块头中也包含其父区块的散列值、时间戳交易记录信息,可以使用“键值对”方式存储交易信息数据,每条交易用来表示ARP响应返回后的核心信息。其中,包括请求主机的IP地址、MAC地址及交易的發起时间,交易号用于唯一标识一个交易,在交易中的MAC地址与时间戳作散列运算得到,并将主机IP地址与MAC地址绑定在交易中,当其父区块内容发生改变时当前子块散列值也会改变,同时又会引起其子孙区块的散列值变,这一机制可以保证存储数据的一致性和安全性。
为提高查询效率,在区块链基础上形成索引表,当网络中主机信息发生变动时,并同步更新区块链表索引表中的存储值,表中有IP地址和MAC地址两个部分,当局域网内某节点信息发生变化时,向系统发起新交易,通过验证后将交易加入区块中,挖矿后网络内其他节点同步区块信息,更新区块索引表数据保证表内存储的一直是网络内主机的IP地址的最新值。
5 软件定义网络架构下ARP防欺骗攻击的应用
软件定义网络(Software Defined Network,SDN)是一种最新提出的网络架构模式,是将网络真实环境利用虚拟化技术的一种实现方式。其核心技术 Open Flow框架通过将网络设备控制平面部分与数据面部分分隔开来,从而实现网络流量控制的目的,使网络管控变得更加智能。局域网络环境中由网络设备组成,如路由器、交换机和多种中介层(如防火墙)及多种复杂的通信协议完成通信功能。需要网络管理者必须从高阶策略转到低阶设定命令,在业务需求部署上线后,如事业需求发生变化时,要重新修改相关的网络设备(如路由器、交换机和防火墙)上的配置,网络的稳定与性能也要满足相应的业务需求,关键是要体现设备管理灵活性和敏捷性。可见,及时更新网络管理和效能尤为重要,实际上这是非常烦琐的事情。
在此背景下,可程序化网络管理的思想被提出来。使用SDN技术所做的是将网络设备的管控权分离出来,无须再依赖底层的网络设备(如路由器、交换机和防火墙等),从而屏蔽了来自底层网络设备的差异。其控制权也是完全开放的,用户可以自行决定任何想实现的网络路由和传输规则及策略,从而将网络设备更加灵活和智能。
运用SDN技术可解决现有网络环境框架下,实现对访问控制、流量分析、网络监控、IP 地址欺骗等问题提出了一种解决方案。让网络管理者从全局视角了解所处网络环境的实时流量状况,当底层网络设备出现异常时,可以及时部署相应的安全策略,确保网络正常运行,提高网络管理效率。SDN 技术将物理硬件架构与应用程序分隔开来,开发者无需考虑底层网络设备之间的差异,只关注开发软件功能即可,从而降低了开发门槛和难度,缩短了开发周期。与传统以太网方案相比,SDN 在安全机制设计、异常检测、恶意攻击防护方面有很大的优势,是实现未来网络的流量监控、智能管理的可行性方案。
使用SDN技术改造网络环境后,不必对网络中的每个结点的网络设备进行反复配置,在SDN网络中的设备是自动化连通的,只需在使用时将事先定义好网络规则应用即可。SDN使用全局网络视图,快速且高水平地查看网络的所有区域,来解决网络中的ARP欺骗攻击行为,在受到攻击时进行检测并对其快速响应。在SDN架构中,根据主机系统的IP地址、MAC地址以及网络结点与交换机连接的端口信息,来维护每一个网络设备信息的关系表。
同时,此关系表还要做到及时更新,如果主机设置为静态IP地址,那么设备信息映射表就会比较简单,在使用控制器自身转发表的建立之后,控制器产生所有主机MAC地址和主机IP地址对应关系的列表。当一台主机发送数据包的时候,控制器就记录它的IP地址及MAC地址。检查是否存在ARP欺骗攻击,将己经记录的IP地址和MAC地址对进行比较。使用此种网络模式,可以集中处理ARP(地址解析协议)报文,应答地址解析请求,从而抑制广播流量。
6 结束语
本文通过对网络安全协议的描述,以ARP协议及欺骗攻击原理进行分析。针对当前对ARP协议欺骗攻击原理的分析,提出一种基于在SDN全局视图下管理局域网络环境的网关设备、交换机设备,同时在此环境中引入区块链技术,通过改进区块链索引表结构,主动记录ARP通信过程的数据,如源主机及目的主机两者的IP地址和MAC 地址。同时,在局域网环境里,保证IP地址发生改变时,及时更新局域网内设备之前绑定的 IP-MAC 值的对应关系,通过分析也可以结合区块链来避免防篡改。
基金项目:
1.2018年江苏省“青蓝工程”中青年学术带头人资助项目项目(项目编号:2018JYTSZXX15));
2.2018-2019年全国高等院校计算机基础教育研究会研究资助项目(项目编号:2018-AFCEC-326)。
参考文献
[1] 陈军,孙义博,岳婷.基于Linux的ARP检测与防御系统[J].网络空间安全,2018,9(01):51-55.
[2] 郭征,吴向前,刘胜全.针对校园网ARP攻击的主动防护方案[J].计算机工程,2011,37(05):181-183.
[3] 冯登国.安全协议—理论与实践[M].北京:清华大学出版社,2011.21-23
[4] 刘晓霞.ARP攻击与防护措施及解决方案[J].信息通信, 2016(02):73-74.
[5] 徐书欣,赵景.ARP欺骗攻击与防御策略探究[J].现代电子技术,2018,41(08):78-82.
[6] 秦丰林,段海新,郭汝廷.ARP欺骗的监测与防范技术综述[J].计算机应用研究,2009,26(01):30-33.
[7] 黄韬,刘江,魏亮,等.软件定义网络核心原理与应用实践[M].北京:人民邮电出版社,2014:9-10.
[8] Blaze M,Feigenbaum J, Lacy J. Decentralized trust management[C].The 17th Symposium on Security and Privacy,1996: 164-173
[9] 兰巨龙.江逸茗,胡宇翔,刘文芬,等.网络安全传输与管控技术[M].北京:人民邮电出版社,2018.16-30
[10] 王小峰.信任管理的策略表示与量化模型研究[D].长沙:国防科学技术大学,2009.50-51.