对于偏应用型信安专业来说,通常网络安全协议这门课的先修课是密码学和计算机网络。学生修完这两门课程后再学习网络安全协议这门课,一方面可以强化对已学知识的理解和应用;另一方面,有助于新知识点的学习、理解和应用。在多年的教学实践中,笔者深感网络安全协议这门课程无论对学生还是对老师都具有很大的挑战性,其主要原因是每一个网络安全协议的细节都很复杂,若只是片面追求对协议原理和细节的理解,会使学生感到枯燥和无趣,由此带来的后果是学生既不愿听课、也不愿看书。如何引起学生对课程的兴趣,是教师所面临的最大挑战。我们根据网络安全协议课程的特点和学生的基础条件,对网络安全协议这门课程的实践教学进行了教学设计,旨在引起学生对所学内容的兴趣,在提高学生的动手能力的同时,也相应提高对课程重要知识点的理解和掌握。
1实践教学内容总体教学设计
网络安全协议这门课程涉及的重要知识点包括:网络安全协议的基本概念、TCP/IP协议簇的安全隐患、在不同协议层次上的安全协议的原理和实现、不同层次安全协议之间的比较、无线网络安全协议的原理和实现、安全协议的形式化分析基本方法等。网络安全协议无论从教学设计、验证,还是如何有效地应用来看都非常复杂。即使所采用的密码算法很强大,协议依然有可能受到攻击。网络上的重放攻击、中间人攻击能够绕过对密码算法的攻击,非常难以防范,此外,攻击者还有可能利用安全协议的消息格式进行“类型缺陷(typeflaw)”攻击。由于网络安全协议的复杂性,在实际教学过程中,若只是由老师空洞的进行讲解,大多数学生往往很难跟上讲课的进度,进而失去对此门课程的兴趣。目前常用的网络安全协议包括PPTP/L2TP、IPSec、SSL/TSL、HTTPS、SSH、SNMPv3、S/MIME、、PGP、Kerberos、PKI、无线网安全协议(IEEE802.11i,WTLS)等。让学生通过实践教学活动,理解并掌握安全协议的理论及应用,并在实践中增强自身的动手能力、创新能力是本课程的主要教学目标。本课程的实践教学将教学内容划分为4个阶段,认知阶段、体验阶段、应用阶段及总结提高阶段。通过这4个阶段,使学生由表及里、由浅入深、由学到用、由用到创,全面掌握各主要协议的原理、应用及教学设计;同时,通过对4个阶段的划分,更好地满足不同层次学生的需求,使学生学得更深、更透,用的更顺、更广,其创新思路也更易被激发和实现。
2SSL协议的实践教学实施
2.1认知阶段
本阶段的实践教学内容是通过利用Wireshark抓包分析工具软件,获取SSL/TSL协议通信流量,直观地观看SSL/TSL协议的结构、分析SSL/TSL协议的建立过程。在访问https://222.249.130.131时,采用Wireshark抓取的部分通信流量,如图1所示。第7~9条消息,完成TCP的连接。客户端首先在某端口向服务器端的443端口发出连接请求,完成三次握手。第10~12条消息,客户端首先发送Client-Hello等消息,请求建立SSL/TSL会话连接;然后,服务器端发送Server-Hello、证书等消息;接着客户端发送ClientKeyExchange、ChangeCipherSpec等消息。第13~15条消息,服务器端发出的响应和ChangeCipherSpec消息,以及客户端发出应答响应消息。至此表明连接已准备好,可以进行应用数据的传输。第16条消息是由客户端发出的与另外一个服务器端的连接请求消息,与所讨论内容无关。这种情形,在抓包分析时,经常会遇到,不必受此干扰。第17~18条消息,客户端和服务器端分别关闭连接。以后再进行SSL/TSL连接时,不必产生新的会话ID,也不必交换证书、预主密钥、密码规格(cipher-spec)等会话参数。每一条消息都可以进一步打开,观看更细节的内容。ClientHello消息的内容是对相应的二进制的内容的一个分析解释,如图2所示。其他消息的格式和内容也都可以清晰地呈现,在此不一一列举。通过对SSL/TSL流量的抓取分析,可以很直观地让学生掌握如下知识点:(1)SSL/TLS协议是建立在TCP连接之上的安全协议。(2)SSL/TSL连接和会话的概念,以及连接和会话的建立过程。(3)握手协议的执行过程,各消息的先后次序,及消息的格式和内容。(4)重要的消息参数及其作用,如sessionID、数字证书、加密组件(Ciphersuite)、加密预主密钥(Premaster)等。需要说明的是,上述内容没有涉及客户端发送的证书消息,只能通过证书完成客户端对服务器的认证,没有服务器对客户端的认证。事实上,SSL/TSL是可以通过数字证书进行双向认证的。
2.2体验阶段
经过认知阶段的理论与实践学习后,需要让学生了解和掌握SSL协议应用在哪里?如何应用?可以有效防范哪些安全威胁?本阶段的实践教学内容通过配置IIS服务器中的SSL/TSL,为Web服务器和浏览器之间建立一个安全的通信通道,使学生学习和掌握SSL在Web的应用中的配置和作用,从而对SSL协议的应用有一个直接的感受和体验。学生完成IIS服务器中的SSL/TLS配置,首先需要完成CA的安装与配置[3],用于数字证书的生成、发放和管理;然后,分别为IISWeb服务器和客户端申请、安装证书;最后在服务器上配置SSL,使客户端与服务器建立SSL/TSL连接,如图3所示。该阶段的实践教学,除加深学生对SSL/TSL的理解,还使他们学会了如何进行CA服务器的图3建立https协议的访问配置、Web服务器和客户端的证书的申请,以及CA服务器对证书的颁发、安装管理等。
2.3应用阶段
通过前2个阶段的实验教学,很好地配合了SSL的理论教学,使学生对SSL/TSL协议有了更深的认识和体验。本阶段的实验教学内容,将通过利用OpenSSL,实现一个简单的SSL服务器端和客户端[4],使学生具备利用SSL/TLS协议进行通信的编程能力。OpenSSL是一个开放源代码的SSL协议实现,具有一个强大的支撑函数库,主要包括三大部分,密码算法库、SSL协议库和OpenSSL应用程序。OpenSSL提供了一系列的封装函数,可以方便实现服务器和客户端的SSL通信。该阶段的工作量较大,通常在教师指导下,由学生分组自行完成。(1)OpenSSL的编译安装。这一步骤涉及下载和安装多个软件,版本也各不相同。包括不同版本的Openssl、Perl、VC++等。一般建议学生采用自己熟悉的系统和开发平台,安装新版的OpenSSL。(2)VC++编译环境的设置。目前的参考资料大都基于VC++6.0,我们采用的是VisualC++2010开发环境。网上有许多现成的源代码,但一般很难编译、调试或执行通过。我们建议学生可以参考已有的源代码,但一定要通过自己的编译、调试、改正,得到满意的运行结果。(3)生成服务器和客户端数字证书。SSL可以通过数字证书实现服务器和客户端之间的双向或单向认证。我们建议学生利用OpenSSL的证书生成命令行工具,自行完成一遍。这一步骤若出现问题,将直接影响以后程序的顺利执行。(4)SSL/TLS编程。首先建议学生采用OpenSSL的BIO连接库,建立一个简单的服务器和客户端,仅能完成简单的TCP握手连接和通讯;然后,再加入SSL握手功能,实现一个真正意义上的简单的SSL服务器和客户端。SSL/TLS客户端和服务器端程序运行结果,分别如图4和图5所示。通过该阶段的实验教学,一方面使学生熟悉如何利用OpenSSL工具编程,实现基于SSL的安全通信;另一方面使学生了解和掌握OpenSSL在安全方面的广泛应用,最终使学生在毕业设计和未来工作中,有足够的能力提出和实现应用安全方面的解决方案。
2.4总结
提高阶段通过前3个阶段的实践教学内容,再结合课堂上的理论教学,学生对SSL/TSL协议的原理、实现和应用都有了较深的认识。由于有许多研究和实践活动受各种条件所限,不可能全部列入教学实践的内容,这个阶段的主要任务是让学生通过他人对SSL/TSL协议的研究和应用,了解SSL/TSL协议在实际应用中还存在哪些问题、如何进一步完善,其目的是训练学生具备通过别人的研究和实践活动进行高效学习的能力,同时也让学生了解一个看似成熟的协议,还存在一系列的问题,这些问题有的是协议本身存在的,有些是在实际应用中产生的。我们通过提出3方面问题,让学生去通过查阅相关资料,自己进行总结。①SSL/TSL协议的存在哪些不足?②将SSL/TSL协议与应用层和网络层的安会协议进行比较,有哪些优劣?③通过一个实际的SSL/TSL协议的应用案例,说明SSL/TSL在实际应用中还存在哪些局限,应如何进行解决?教师可向学生推荐几篇参考文献[5-6]同时鼓励学生自己查询更多有价值的文献。在此阶段,教师和学生不断进行交流和讨论,对学生提出的问题以及业内新出现的热点问题,教师要通过不断的学习和提高给学生一个满意的答案。例如2014曝出的Heartbleed漏洞,涉及OpenSSL的开源软件包,而该软件包被网银、在线支付、电商网站、门户网站、电子邮件等重要网站广泛使用,所以漏洞影响范围广大。学生们对此漏洞非常有兴趣,作为教师要尽快查阅有关资料,了解此漏洞的产生的原因、有何危害、如何补救等。此漏洞虽然是OpenSSL的开源软件包程度存在的问题所导致的,与SSL/TSL协议本身无关,但是该漏洞的出现,提醒我们即使协议本身是安全的,在实现协议的过程中仍可能出现不安全的因素,导致安全漏洞的产生。
3实践教学效果评价
实践教学方案的教学设计是否可行和有效,需要在实际教学过程中进行检验。该实践教学方案是在多年教学基础上不断总结而教学设计的,并已在2013和2014年度的网络安全协议课程的教学中进行了实施。我们根据学生的反馈、表现以及实际教学效果,对方案的内容、难度以及方法也做了相应的调整。在方案实施过程中,教师要多与学生沟通,对所布置的作业认真检查,关注并统计学生是否有兴趣、是否努力,学生的技能是否得以改善,学生完成的情况、学生的满意度等各项指标。从对各项指标的统计来看,大部分学生对该实践教学方案比较认同,也取得了很好的效果,其中有几位学生还在毕业设计中选择了相关的毕测试。上述文档将整个测试过程显性化,实现了对缺陷解决过程的监控,有助于学生明确缺陷状态,评估所报缺陷的准确性,完善现有图式,促成自我反思与实践反馈。测试所涉及的文档和源码都将编号归档,统一存放于配置管理服务器,归档的文档被冻结,不允许修改。这些文件记录了缺陷的整个解决过程,为后期分析问题、完善解决方案、改进工作流程、反思教学设计提供了重要依据。
4结语
上述实习模式还存在许多障碍,如学生实习管理、校内与企业实习的衔接与平滑过渡公司战略管理论文、校内实训基地的建立以及利用互联网构建基于虚拟团队的实践共同体,这一系列问题,都需要进一步加以研究与实践。
作者:刘凯 单位:北京信息科技大学信息管理学院