信息安全实验教学案例分级设计研究
2019-02-01陈红松
陈红松
北京科技大学计算机与通信工程学院 北京 100083
在当今互联网普遍应用的时代,网络空间安全已经成为国家安全的战略高地,2015年,国务院学位委员会增设网络空间安全为一级学科,将高校网络空间安全人才培养提到新的高度[1]。2016年6月,国家网信办、教育部等六部委联合发布《关于加强网络安全学科建设和人才培养的意见》,指出网络空间的竞争归根结底是人才竞争。我国对网络空间安全人才存在重大需求,加强信息安全人才实践能力培养是促进网络空间安全人才创新培养的关键。信息安全实验教学是连接信息安全理论知识与工程应用的桥梁,是培养学生信息安全实践和创新能力的重要途径[2]。实验是信息安全实践课程的主要教学形式,在实验的设计中要注重实验环境的科学性和真实性,培养学生的信息安全整体意识。信息安全实验与其他计算机类实验的区别在于,它需要借助更多的专用信息安全协议、网络设备和软件系统[3]。
美国当代教育家本杰明·布鲁姆(Benjamin Bloom)将认知领域的目标分为识记、理解、运用、分析、综合和评价6个层次。认知技能层次是按照从最简单到最复杂的顺序排列的。因此,人类对知识的理解与掌握也是一个由浅入深、由易到难的认知过程。
1 信息安全实验教学案例分级设计方法
在信息安全实验教学中,需要任课教师设计信息安全实验场景和安全实验工具,在课堂上先教授学生基本的实验原理和知识,再依据实验内容选择相应的安全实验工具,设计相应的实验操作步骤。教师需要从专业角度提出思考问题,引导学生结合实验内容积极深入思考,并回答问题,进行实验扩展,形成完整的信息安全实验教学案例。信息安全实验教学注重理论与实践的深层次结合,如果实验设置过难,则容易使学生望而却步,打击其学习的积极性;如果实验设置过于简单,则无法拉开成绩,不能很好地区分不同水平的学生。需要教师根据授课进度和学生掌握程度,设置分级的信息安全实验教学内容。在吸引大多数学生完成初级实验的基础上,通过扩展实验内容,逐步加大实验的难度,要求学生记录和分析实验数据,根据所观察实验现象分析所涉及的知识点,联系所学理论知识,最后归纳出相关知识点之间的联系,鼓励学生挑战高级实验内容,实现理论与实践的深度融合。同时培养学生不畏挫折与失败,并能在实践中不断追求与完善真理的科学素养与工匠精神。
本文针对信息安全实验教学特点,根据学生学习规律、按照由浅入深的教学方法设计了2个实验教学案例,包括实验目的、实验原理以及从初级实验、中级实验到高级实验的分级实验步骤,并设置了相应的实验思考和实验扩展。其中实验目的、实验原理相当于识记、理解,实验步骤相当于运用,实验思考和扩展相当于分析、综合,实验总结相当于评价;这样就把信息安全实验教学跟布鲁姆的六层次认知顺序进行了有机结合和完整实现,从而在符合认知规律的基础上设计出适合信息安全实验教学的案例。
2 信息安全实验教学案例分级设计实例分析
2.1 信息安全实验教学案例1:OpenSSL安全编程实验
实验教学目的。通过运行OpenSSL相关命令,使学生理解数据加密、解密、数字签名与认证的工作原理,并通过调和用相关编程接口实现灵活的数据安全防护。
实验仪器及环境。Linux操作系统、OpenSSL开源软件库。
实验原理。OpenSSL是一个开放源代码的安全软件库包,应用程序可以使用这个包进行安全加密通信,避免窃听,同时确认另一端连接者的身份。这个安全软件包广泛被应用在互联网的网页服务器上[4]。安装完OpenSSL开源库后,用户就可以通过编程语言调用OpenSSL库中API,实现对数据或文件的加密,解密以及相关的数字签名及认证操作。
实验教学步骤及内容。基于OpenSSL安全编程实验采用由初级实验到中级实验、再到高级实验的逐级实施方式,让学生对OpenSSL的基本命令和编程接口有逐步理解和掌握过程。
初级实验:OpenSSL基本命令
加密命令:
OpenSSL enc -e -des3 -a -salt -in testfile -out testfile.cipher
解密命令:
OpenSSL enc -d -des3 -a -salt -in testfile.cipher -out testfile
需要学生通过实验熟练掌握这些命令及参数的用法与功能。
中级实验:OpenSSL进行数字签名和验证
OpenSSL dgst -sign RSA.pem -sha256 -out sign.txtfile.txt
通过选取摘要算法sha256,RSA私钥,对file.txt进行签名,得到签名文件sign.txt
OpenSSL dgst -prverify RSA.pem -sha256 -signature sign.txtfile.txt
使用RSA私钥验证签名(prverify参数)的正确性
需要学生掌握这些命令的组合使用方法与功能。
高级实验:使用OpenSSL进行AES加密算法编程
使用ecb模式的AES算法加密数据,通过C代码实现openssl/aes的加密算法调用。
需要学生掌握OpenSSL的AES算法编程接口正确调用方法。
实验思考:OpenSSL的命令与编程接口的关系?引导学生理解算法抽象与算法实现的相互作用关系。
实验扩展:安排学生课下完成其他OpenSSL的命令命令实现,以及OpenSSL的编程接口实验。
实验总结:通过OpenSSL的命令与编程接口实验,掌握OpenSSL的体系架构,由简入深,逐步理解加密算法的参数、功能、作用,以及编程接口的灵活调用。
2.2 信息安全实验教学案例2:Snort入侵检测规则编写实验
实验教学目的:通过演示Snort网络入侵检测安全规则的设计运用,使学生理解网络入侵检测系统工作原理,并能灵活运用安全检测规则对到某用户计算机、其他用户计算机通过HTTP协议访问时发出安全报警信息。
实验仪器及环境:Vmware虚拟机管理软件、Linux操作系统、Snort网络入侵检测软件。
实验原理:Snort是一个具有多平台、实时网络流量分析、网络数据包记录等特性的网络入侵检测及防御系统[5]。Snort使用一种简单的、轻量级的规则描述语言。大多数Snort入侵检测规则都写在一行上,或者在多行之间的行尾用/分隔。Snort规则被分成两个逻辑部分:规则头和规则选项。规则头包含规则的动作、协议、源和目标IP地址与网络掩码,以及源和目标端口信息;规则选项部分包含报警消息内容和要检查包的具体内容。规则选项是Snort入侵检测引擎的核心部分,既功能强大又灵活使用。Snort规则选项用“;”隔开。规则选项关键字及其参数用“:”分开。
实验教学步骤及内容。Snort网络入侵检测工具演示实验采用由易到难、由初级实验到中级实验、再到高级实验的逐级实施方式,让学生对网络入侵检测系统的规则编写有逐步理解和深入认识的过程。
初级实验:Snort入侵检测系统基本参数的使用
./snort -dev -l snort.conf
需要学生掌握Snort规则集文件的用法,Snort规则集匹配及参数用法。
中级实验:要求编写一个Snort规则,当入侵检测系统检测到某台计算机被其他计算机通过HTTP协议访问时,发出报警信息。
高级实验:通过编写网络入侵检测Snort规则检测SQL注入攻击,用来检测SQL注入攻击的正则表达式。
这部分内容取决于特定应用,是对目标文件进行安全检查。
实验思考:提示学生思考如何根据案情场景合理设置Snort入侵检测安全规则来实现安全目标?引导学生从单条安全规则设置到多条安全规则组合设置,并通过网络入侵检测规则配置实验,促进学生理解网络入侵检测安全规则及组合的重要作用,提高对本课程的学习兴趣。在实验过程中,要不断地引导学生积极思考、参与设计、共同研讨,激发学生创新思维,让其知其然更要知其所以然,达到灵活运用所学知识的教学目的。
实验扩展:让学生分别从网络用户、攻击者、网络管理员、网络安全管理员等不同角色理解并体会网络入侵检测规则和系统的作用、在配置检测规则中应注意的问题。学生可以在宿舍构建一个小型无线局域网,重现课堂实验演示的内容,通过扩展编写安全规则和应用场景进一步发现Snort安全规则的新用法,提升学生利用已有安全软件工具编写安全规则、对所学知识进行扩展创新的能力。
实验总结:本文通过设置初级、中级、高级不同难度等级的演示实验,学生可以由浅入深、逐步理解Snort入侵检测安全规则的作用和配置方法,实现入侵检测选项、规则头、规则选项的编写及综合应用,通过制订入侵检测规则实现对抗外部非授权访问、SQL注入攻击的安全目标,为学生将来从事网络信息安全技术和管理工作奠定基础。本文所设计实施的网络安全实验教学案例取得了良好的教学效果,提高了学生的网络安全实验技能,获得学生的一致认可。
3 结语
本文通过信息安全实验案例设计培养学生理论联系实际能力,在布鲁姆六层次认知理论指导下,通过分级设计实验加深学生对理论知识的充分理解与认识,促进学生将其所学信息安全理论与实践相结合,逐层次促进对相关知识点的掌握。本文以OpenSSL安全编程和入侵检测Snort安全规则编写为例设计了信息安全实验教学案例,实验教案包括实验题目、实验目的、实验仪器及环境、实验原理、实验教学步骤及内容、实验思考、实验扩展、实验总结等。通过实际的网络安全实验教学实践表明本文提出的网络安全实验案例教学法有利于提高学生对网络安全知识的理解与认识,取得了良好的综合教学效果。