何高峰 厉东明
摘 要:网络安全技术课程涉及数学、计算机网络以及计算机系统等内容,包含的知识点丰富且难度较大,学生学习较为困难。文章对如何利用互动式学习方法进行网络安全课堂教学实践进行了探讨。针对密码学、网络安全协议以及系统安全等教学模块,以增加学生直观感受、便于学生理解为出发点,根据知识点的不同而设计不同的互动方法,从而提高教学质量。
关键词:网络安全技术;互动式学习;课堂教学改革
中图分类号:G642 文献标志码:A 文章编号:2096-000X(2019)24-0124-03
Abstract: The network security technology course involves mathematics, computer networks, and computer systems. It contains a wealth of knowledge and is difficult, and students are more difficult to learn. The article discusses how to use the interactive learning method to conduct online security classroom teaching practice. For the teaching models such as cryptography, network security protocol and system security, in order to increase students' intuitive feelings and facilitate students' understanding as the starting point, different interactive methods are designed according to different knowledge points, so as to improve teaching quality.
Keywords: network security technology; interactive learning; classroom teaching reform
一、概述
網络安全技术课程包含的内容非常丰富,如对称与非对称加密、Hash函数、数字签名、网络安全协议、针对计算机系统的黑客攻击与防范技术应用等[1]。因而该课程对学生的前期基础知识有较高要求。如学生应熟练掌握计算机网络、计算机操作系统、编译原理和编程等专业知识,并有好的数学功底,理解有限域计算。但在实际中,绝大部分学生很难满足该要求。此外,网络安全技术课程还具有更新周期短和实践性强等特点[2][3],因此学生在学习的过程中存在压力较大、对许多内容不理解等问题。
为解决该问题,现有研究人员提出了一些相关解决方法。如在文献[4]中,笔者提出将智能手机引入网络安全教学课堂,让智能手机成为学生进行密码计算、网络协议分析的有用工具,从而提高课堂教学效果。文献[5]使用Kali Linux系统,让学生在实操中掌握Web渗透测试原理,让课堂教学变得更加直观有趣。针对密码学,文献[6]综合设计教学新模式,并详细介绍了课程设计的目标、内容、组织形式、考核等内容。文献[7]使用虚拟化技术设计并实现了一个安全高效的网络安全实验教学平台,通过实战让学生们能够更好地掌握网络安全技能,也让网络安全的教学更加贴近实际。
通过对现有参考工作的梳理和对网络安全技术课堂教学经验的总结,笔者认为上好网络安全技术课程,让学生能够真正理解相关知识点,其核心是要做好“互动”。即让学生深度参与课堂学习,在实践中体会知识点,在思考中理解知识点,从而激发学生的学习兴趣,并建立起整体的知识框架和逻辑结构。为此,本文针对网络安全技术课程中的密码学、网络安全协议和系统安全3大模块,阐述具体的互动式教学方法,以供参考借鉴和讨论。
二、密码学教学中的互动方法
在网络安全技术课程教学中,密码学是首先需要介绍的内容,其是课程的基础和核心知识点。但由于密码学涉及到众多数学理论和大量数字计算,学生难以直观感受和理解,容易产生厌学情绪。但如果学生一开始就对网络安全技术课程产生了厌学和恐惧的情绪,则对后面的教学进程有着非常不利的影响。为此,笔者针对密码学内容,利用互动式方法进行相应教学改革。
Feistel结构是一种典型的对称加密框架,是DES等经典对称加密算法的抽象表达,其单轮操作过程如图1所示。为了让学生更直观理解该结构,在课堂教学中采用一种“玩游戏”的互动方式。让学生准备两张纸,一张纸放左边,标记为“1”,上面画上一条红色的线条。另一张纸放右边,标记为“2”,画上一条黑色的线条。然后,进行左右交换,将“1”纸张放右边,而将“2”纸张置换至左边。同时,在“1”纸张画上一条蓝色或其它颜色的线条。重复此过程16次,每次交换左右纸张,同时在右边的纸张上加上一条新的线条。最后,通过比较“1”和“2”纸张上的线条内容,理解加密过程对原始内容的改变,以及Feistel结构是如何实现过程的。
针对非对称加密(公钥加密),互动式过程主要侧重于数学计算。以RSA和DH(Diffie-Hellman)算法为例,在讲解RSA算法时,首先给出加密和解密的计算公式。加密过程如公式(1)所示,解密过程如公式(2)所示。
C=Memodn (1)
M=Cdmodn (2)
然后,给出具体的例子进行实际演算,如M=8,e=7,d=23,n=187,让学生在课堂上直接计算出C和M的值。特别是,为了让学生理解RSA算法的安全基础,针对n=187,让学生尝试分解出两个素数,即n=p*q。此过程非常困难,在一段时间后(如10分钟),让学生停止尝试,并告诉学生现阶段还没有有效方法对n的值进行分解,只能进行一一尝试,而此过程即为暴力破解过程。通过实际的操作,让学生对RSA算法的安全性有更深入理解。
在学习DH算法时,需要计算公钥Ya、Yb以及共享密钥K的值,如公式(3)、(4)、(5)所示。
选择合适的本原根α以及随机数ra和rb的值,让学生自己进行加密和解密计算,理解算法的基本原理。同样的,让学生尝试由离散对数的值计算出对应指数的值。在此项“不可能完成的任务”中,让学生直观体会什么是暴力破解,以及DH算法背后的数学理论。
三、网络安全协议教学中的互动方法
网络安全协议重点关注如何协商和分配会话密钥,因而均包含多个步骤。如果不理解协议内容,而采用死记硬背的方法来记住整个协议步骤效率很低,而且容易遗忘。为了帮助学生理解协议执行过程,同时对网络安全协议有直观的接触,采用“实物+填空”交互式教学方法。首先,在课堂上讲解协议执行过程,此过程为教师讲、学生记模式。讲解完基本知识点后,通过网络抓包进行实际的网络安全协议分析。最后,由教师和学生进行交互,模拟网络服务器和客户端,分别给出协议执行步骤内容,从而加深学生的理解和记忆。
以TLS(Transport Layer Security)协议为例,其协议流程如图2所示。图2中协议交互过程复杂,共有9个步骤,如果直接记忆则较困难。首先,教师给出每个协议步骤的描述,这部分内容为课本内容,让学生对TLS协议有初步了解和认识。
讲解完书本知识点后,进行网絡抓包分析。使用Wireshark等软件,对TLS协议步骤进行直观展示,并对照课本进行每个步骤的再次说明。
如图3所示,TLS 握手协议需5个报文,这5个报文里即包含了图2中的9个消息。然后针对每个报文进行展开,查看具体的消息内容。如对图2中的第三个TLS报文,其展开的内容如图4所示,一个报文中同时包含了Certificate、Server Key Exchange和Server Hello Done 等3个消息。通过实际的网络流量分析,让学生掌握了这3个消息是同时发出的,且有自己的先后顺序此特点。
完成抓包分析后,教师和学生分别模拟客户端和服务器,进行教师给出上一个步骤,学生填出下一个步骤的交互练习,再次加深学生对TLS协议的理解和记忆。在整个教学过程中,采用了实物展示互动(实际的TLS流量分析)和问答互动,能够让学生快速掌握TLS安全协议的要点,并记住具体步骤。
四、系统安全教学中的互动方法
在系统安全教学中,应该以学生间的互动为主,教师仅起指导作用。这是因为系统安全部分内容大多为实际操作内容(如防火墙配置、入侵检测和黑客攻击等),如果仅仅是讲解理论知识,则很难达到好的教学效果。为此,应积极发挥学生的主观能动性,在实践中掌握相关技术和知识。根据笔者的教学经验,可开展以下3类交互式教学,以提高教学效果。
一是教师为防御方,其他所有同学为攻击方,开展针对特定服务器的攻击与防御。此过程能够极大激发学生的学习和动手兴趣,因为他们的攻击目标是老师。能够战胜教师,无疑给他们带来巨大的乐趣。
二是将学生组成红蓝队,进行相互攻防实验。此时,教师需构建虚拟机服务器平台,然后将学生分为红队和蓝队。红队负责服务器的安全防御,而蓝队负责入侵该服务器。为提升教学效果,可以规定双方相互评分,如红队负责对攻击行为给与评价,蓝队对防御方法进行评分,激发学生的主体责任感。通过攻击和防御,让学生在实际的网络对抗中自我学习,并理解课本中的知识点。教师在此过程中主要起指导、协调作用。
除了红蓝对抗外,还可以设计网络安全教学中的夺旗比赛[8]。教师需构建相关实验环境平台,如组建两个局域网,每支队伍负责防护自己的网络和网络中的机器。除了保护自己的机器,更重要的是防护机器上的旗帜(隐秘文件),同时攻击另一队的机器,并试图从对方机器上获取隐藏的文件(夺旗)。在此过程中,不可以修复系统和软件漏洞,不可以破坏对方机器功能和删除文件。最终以获得的旗帜数量为衡量胜负的标准。通过夺旗比赛,可以锻炼学生对攻击的检测能力,以及对系统漏洞的利用能力。
五、结束语
网络安全技术课程内容丰富,但学习难度也很大,需要学生有扎实的数学以及计算机系统及网络基础。因而在实际教学中,学生普遍反映该课程贴近实际,有意思,但又很难学好。笔者在教学中总结发现,提升网络安全技术课程教学效果的关键在于“互动”。结合具体的教学实践,本文针对密码学、网络安全协议以及系统安全的教学,分别给出不同的互动方式。但实际中应有更多的互动方法和技巧。因而希望借助本文内容,引发更多关于网络安全教学的思考和讨论,从而在整体上提升我国的网络安全教学水平。
参考文献:
[1]William Stallings. Cryptography and network security: principles and practice [M]. Upper Saddle River: Pearson, 2017.
[2]林峰.网络安全技术课程教学改革研究[J].黑龙江教育(理论与实践),2017(09):62-63.
[3]邱菡,王清贤,朱俊虎,等.网络空间安全专业网络科学课程建设探索[J].计算机教育,2019(07):89-92.
[4]何高峰,亓晋,朱海婷,等.利用智能手机进行网络安全课程教学改革的实践与探讨[J].高教学刊,2018(10):128-130.
[5]容湘萍.基于Kali Linux的Web渗透测试课程教学设计——以SQL注入为例[J].电子技术与软件工,2019(14):193-195.
[6]聂旭云,罗绪成,熊虎,等.基于密码学的网络安全综合设计教学探讨[J].计算机教育,2019(06):117-119+123.
[7]张继军,马凯.网络安全教学平台的设计与实现[J].计算机产品与流通,2019(07):199-201.
[8]Vigna Giovanni. Teaching network security through live exercises[J]. Security education and critical infrastructures. Springer, Boston, MA, 2003,125:3-18.