拓扑混淆算法依据当前拓扑下链路的重要性,向潜在的攻击者呈现一种假拓扑,对于潜在攻击者的报文探测要反馈一种假报文,使潜在攻击者在假拓扑下看不出原拓扑的重要链路;这里的重要性需要自己在实验过程中定义指标,来衡量当前拓扑下链路的重要程度。
具体呈现什么样的假拓扑是一个值得研究的问题,一方面要隐藏真拓扑中的重要链路,一方面也要考虑开销,因为每一条假链路都需要设置单独的流表,同时,还要考虑假拓扑的可信度。因此最终设计的拓扑混淆算法需要综合这三个方面的因素,作出最有利的决策。
算法设计出来后,计划在SDN网络环境中实现并验证。SDN是一种未来网络构建技术,其高度灵活、软件控制的特点使其有利于在维持正常网络服务的同时实现拓扑混淆。需要掌握基于ryu的SDN应用编程技术,掌握基于minnet的虚拟SDN网络配置方法,对软件使用方法有清楚认识。在配置好SDN和虚拟网络环境后,还需要设计一组实验,验证算法的有效性。
1.资料收集
通过《基于SDN的分布式欺骗防御系统》文献来了解欺骗防御技术;通过python编程参考书学习python语言编程;通过《软件定义网络核心原理与应用实践(第三版)》书籍来了解SDN技术,学习关于ryu和minnet的相关知识,同时通过知网、SDNLAB等平台搜索资料、解决问题。
2.准备情况
目前正在阅读相关书籍,包括《软件定义网络核心原理与应用实践(第三版)》等书籍,学习关于软件定义网络和ryu、mininet的相关理论知识;所需软件、环境已经安装到位;对于相关软件的学习还处于初级阶段;python语言的学习处于入门阶段,对算法的学习需要深入。
3.总体方案
总体方案是按照SDN的相关理论知识,首先定义一个衡量链路重要性的指标,该指标是与链路开销以及链路复杂性等要素有关的函数,而后设计一个拓扑混淆算法,在ryu控制器和虚拟SDN网络上编程实现,并能够设计实验验证拓扑混淆机制的有效性。
4. 主要步骤
首先定义衡量链路重要程度的指标;而后根据设计目标完成拓扑混淆算法的设计;最后设计实验验证拓扑混淆算法的正确性。
5.难点和可能出现的问题:
难点在于如何设计拓扑混淆算法,使其满足设计需求;如何进一步优化算法,使算法更精简;如何设计实验验证拓扑混淆机制的有效性和正确性;
可能出现的问题在于之前没有接触过SDN技术,对于SDN的相关理论知识了解基本为零;没有用过ryu和mininet,对软件的操作不熟悉;没有系统性的学习python语言,算法了解的不多,因此会对后期算法的设计不够优化。
1.11月,阅读文献,了解欺骗防御和拓扑混淆等概念;
2.12月-1月,学习python语言和SDN技术,学习ryu控制器北向接口API,掌握基于ryu的SDN应用编程技术,掌握基于minnet的虚拟SDN网络配置方法;
3.2月-4月,设计拓扑混淆算法,在ryu控制器和虚拟SDN网络上编程实现;
4.5月,设计实验验证拓扑混淆机制的有效性;
5.6月,撰写论文并答辩。
1.了解欺骗防御、拓扑混淆等基本概念;
2.了解SDN技术,学会用ryu控制器编程;
3.设计一种基于SDN的拓扑混淆机制,并在基于ryu和mininet的虚拟网络中实现;
4.实验验证上述拓扑混淆机制的有效性。