信息安全课程中竞赛驱动项目式教学

2018-08-22 10:26李景涛赵卫东
计算机教育 2018年8期
关键词:信息安全竞赛驱动

李景涛,赵卫东

(1.复旦大学 软件学院,上海 201203;2.上海市智能信息处理重点实验室,上海 200433)

0 引 言

信息安全课程作为软件工程及计算机类本科生的专业课,受到各国政府的高度重视,如美国国家标准与技术局的国家网络安全教育计划等[1]。ACM(Association for Computing Machinery)教育委员会在面向网际空间安全的教育研讨会报告中对所有计算机类本科专业教育指出,学生动手实践是掌握信息安全知识和技能的必要途径[2]。因此,在信息安全课程中锻炼学生动手实践能力成为当前研究的课题之一。

1 竞赛驱动项目式教学

在软件工程专业课程的教学中,项目式(Project-based)教学是一种能够促进学生动手实践能力提高的有效方法,通过配合课堂讲授内容,让学生自学和动手,将课堂中学到的知识运用到实际的软件开发中,进而完成规定的项目主题和目标。这种方法可以让学生在有限的时间内理解课堂介绍的内容,并对这些内容进行有效地应用,进而深刻地思考课堂所学,从而真正掌握软件工程专业技术,促进软件工程专业教学适应行业对人才的要求。项目式教学在实施过程中仍面临诸多问题:①如何激发学生参与项目式学习的动力,提高学习的兴趣和热情;②项目式教学有多种具体的实现方法,如何面向特定的专业课程进行必要的定制与创新。

竞赛驱动项目式教学引入竞争来激发学生的学习动力,用荣誉感驱动学生积极主动学习、探索和培养合作意识,能够解决项目式教学中的动力问题[3-4]。笔者在面向软件工程专业本科生的信息安全课程中实践了竞赛驱动项目式教学。

2 竞赛驱动项目式教学的特点

竞赛驱动项目式教学本质是基于问题的教学:①学习具有挑战性、开放式,需要由不明确的以及结构模糊的问题来引导。②学生往往是以合作小组形式进行学习。合作小组面对的是实际应用问题或模拟的网络实战环境,既要求简单的决策和执行,又要根据团队确定的优先级进行复杂的协作决策。学生可以在比赛中互动,通过整合团队成员的课堂学习、参赛经验确定他们的行动计划。③学生是以“学习者”的角色学习,教师是以“引导者”的角色组织学习。竞赛驱动项目式教学可看作基于问题的教学方式演化以及在信息安全教学领域的应用。

竞赛驱动项目式教学在培养学生各种能力方面尤为突出,特别是对提高学生的自主学习能力、主动应用知识的能力和综合能力有较大的促进作用,对学生将来职业的发展具有重要的提升作用。

(1)调动学生学习的主动性。信息安全课程具有很强的实践性,学生只有亲自动手,参与到实际的应用,才能够真正掌握必要的知识和技能。项目竞赛中的求胜心理驱使学生主动学习,学习的主动性越高,能够获得的知识也就越多,形成一种良性循环。

(2)推动学生主动应用知识。根据Edgar Dale的“学习金字塔(cone of learning)”理论,对于一个知识点,主动动手学习的学生在两周之后能够掌握90%的知识,而只是上课听讲的学生仅能够记住20%的知识。显然,与课堂知识相配套的项目会“逼迫”学生亲自动手学习,并取得好的学习效果。如果学生参加夺旗实战或课外项目,就更有可能主动应用这些知识,解决技术难题或实际问题。

(3)提升学生综合能力。学生在课程项目的整个过程中,会遇到许多问题,包括所学知识的选择和应用、新的知识获取、合作交流方式、知识的创新应用等。在经历完整的项目后,学生的各种能力,包括自学能力、合作能力、应用能力以及创新能力等综合能力,都会有比较大的提升。

研究表明,通过对“基于竞赛的项目学习”和传统教学在讲解信息安全类课程时产生的效果进行比较,“基于项目学习”的教学方法会比传统教学方法更有效激发学生的学习热情与创新能力[4]。

3 竞赛驱动项目式教学的实施

3.1 实施模式

作为软件工程专业信息安全类课程的基础课,信息安全课程涵盖密码学、Web应用安全、网络攻防安全、代码安全等广泛的领域课题,其目标是通过学习要掌握信息安全领域的基本概念和原理,能够分析常见的软件和信息系统的安全性问题,并运用软件技术设计实现合理的解决方案。面向信息安全课程的竞赛驱动项目式教学方案的总体架构如图1所示。

图1 项目式教学方案总体架构

针对理论性强、具有一定应用性的密码学与Web应用安全部分,除了强化课堂授课,在项目教学环节采取团队间竞争、团队内合作的应用型项目式教学。要求学生组成项目团队,综合课堂所学的知识,必要时自学新知识、新的工具和开发技能,合作完成满足一定应用需求的软件作品或安全协议。应用型项目的设计与实现过程中,学生加深了对基本概念和理论的理解,提高了灵活应用能力。例如,为确保移动聊天应用的保密性与完整性,并实现双向身份认证,学生会加深对加密和解密的不同方法(对称和非对称)、MAC(报文鉴别码)和签名验证等概念和技术的理解,并能运用这些技术解决实际问题。

针对理论性与实战性兼备的密码分析部分,采取夺旗(capture the flag,CTF)竞赛中的解题模式(jeopardy)。将多组密文素材提供给学生项目团队,学生运用学习过的密码攻击方法展开密码破译竞争,按解题的分值和时间进行成绩排名。通过设置密码破译悬案,激发学生的好奇心与求胜心理,使得学生对密码分析方法的学习兴趣盎然。这种模式作为一种新型的竞赛驱动项目式教学手段,丰富了传统的项目式教学方法。

网络攻防安全与代码安全部分有很强的实战性,采用类似夺旗CTF竞赛中的攻防模式,通过组织学生比赛的环节,引入竞争来激发学生的学习动力。网络攻防竞赛在教育环境中的应用可以追溯到美国军事学院的CDX(Cyber Defense eXercise),这是美国军事学院信息保证教育项目中的顶级课程[5]。网络攻防模式教学具有很强的竞争性与趣味性,学生团队通过挖掘网络服务漏洞并攻击对手服务漏洞得分,修补自身服务漏洞进行防御避免丢分。攻防模式作为传统项目式教学的重要补充,是一种可行的新的项目式教学方法。

竞赛驱动项目式教学形式多样,另一种可行的模式是软件公司赞助的项目或竞赛,更强调运用所学解决现实的应用问题。课外竞赛作为一种有效的项目式教学辅助方法,为越来越多的人重视。未来对软件人才的动手能力和应用能力要求越来越高,国家主管部门、行业公司、高校针对计算机类专业的学生,不定期地举办软件编程、开发等课外比赛,试图激发学生的兴趣,并从中发现人才。这些比赛不同于目前常用的项目,采用实际应用中出现的关键技术问题,更加贴近现实应用,更强调应用的创新性。

3.2 实施步骤

实施竞赛驱动的项目式教学,包括以下步骤。

(1)项目式教学的主题设计。项目主题的选择非常重要,主题应难易适中,且不宜太宽广,还要考虑如何设计以激发学生的参与热情等问题。此外,项目最好安排在与之相对应内容的课堂讲解之后,学生可以在项目中运用课堂所学知识,同时也可以在课堂上分享项目中的经验,这些都需要在教学实践中摸索。如图1所示,在密码学基础的课堂授课之后,安排密码分析的解题模式项目,让学生理解和掌握密码分析的基本方法。在Web应用安全授课之后,设计了两个应用型项目:一个是密码学技术实现移动聊天应用(Secure Chat),实现通信保密、数据完整性保护、密钥交换、数字签名等功能;另一个是简化版的Kerberos协议实现。在网络攻防与代码安全授课之后,在虚拟的小型企业网络环境中,安排攻防模式的实训项目教学。

(2)项目团队的组成以及执行。项目式教学会遇到组队问题,如何根据项目需求找到知识、能力全面,且善于合作的队友非常重要。项目团队需要将学到的信息安全知识运用到解答该项目中,例如课堂上所学的密码学基础理论、手机应用开发技术等知识的应用。

(3)项目式教学反哺理论教学。竞赛驱动项目式教学对传统的理论教学也有促进作用。课程的相关教师会在项目组的交流过程中发现学生知识和技能的薄弱点,以此对教学中的问题进行反思。比较好的项目成果也可以作为教学案例,用于将来的课堂教学。竞赛驱动项目式教学不仅对促进学生主动学习具有重要意义,对教师改进教学也有一定的参考价值。

4 实施效果与问题反思

教学实践发现,竞赛驱动模式对促进项目式教学中的主动学习起到了积极的作用。首先,学生在学习上投入了大量时间,项目的工作时间主要安排在习题课和课余,学生对项目工作兴趣盎然,甚至到废寝忘食的地步,从项目资料服务器的日志经常可以看到,很多学生是在深夜提交项目报告。其次,从期末获得学生的反馈表明,大部分学生认为参与课程动手项目较其他教学方法更加有意义,这种方法更能激发学生的主观能动性,使其自主参与到学习中来。最后,竞赛驱动项目式教学让学生自主探索、解决实际问题,真正掌握和运用所学知识,这表现在:一方面学生在项目解答中解决了富有挑战性的问题,在期末取得了好的成绩;另一方面,课程的修读学生对信息安全竞赛产生了浓厚的兴趣,代表复旦大学CTF战队,入围了DEFCON CTF总决赛,取得了优异成绩。

教学实践的另一个有价值的发现是:面向综合性信息安全课程的最佳教学安排是采用混合式教学方法。讲义与课堂讲解是原理性和基础类的最佳教学方式:应用型软件项目将密码学原理等基本方法应用解决网际空间的实际安全问题;解题模式和攻防模式的项目适合密码设计与破译、网络攻击与防御内容的教学,每种方式都旨在实现与其相对应的教学目标。

教学实践中也有一些反思。项目式教学的一个关键点是确定项目的主题范围,信息安全学界曾经就此进行过多次辩论:一方认为,学习攻击者如何思考和攻击是学习如何防御的关键;另一方认为信息安全教学应服务于行业需要,学生毕业后从事的工作基本上不会包括攻击性的任务,教学黑客的攻击手段会带来争议。笔者认为,信息安全课程性质决定了攻击与防御两方面是教学相长的,技术和思维方式都是完整信息安全教学的重要组成部分,但教师需要对过度的进攻性竞赛项目进行把控。虽然进攻型游戏和夺旗赛对学生非常有吸引力,但是将它们作为课程的重点并不恰当,绝大多数的毕业生将进入软件行业,他们将设计、开发、维护企业级业务系统与网络,而不是夺旗游戏。因此,笔者下一步的工作之一是设计面向企业实际应用场景的项目主题与测验平台。

5 结 语

竞赛驱动项目式教学方法在复旦大学软件学院的信息安全课程中得到了成功的应用,对教学班级学生的调查结果以及学生修读课程后的学业发展均显示:这种方法能促进学生的主动学习,大多数学生比较认同该教学方法的教学理念, 认为这种方法能加深对授课内容的理解,提升分析设计能力、动手实践能力和团队合作能力,适合在信息安全类课程中进一步推广。面向信息安全课程内容特点,笔者设计的解题模式、应用型项目、攻防模式3种教学实施方案,提供了教学实践环节的实际操作方案,使得竞赛型项目更具可行性。

下一步,笔者计划结合相应知识点,设计更多贴近企业级信息安全业务环境的竞赛型项目,学生将在受控网络空间实训信息网络系统的营运和管理,以期在最大化激发学生学习主动性的同时,培养适应行业实际需要的人才。

猜你喜欢
信息安全竞赛驱动
2020丝绸之路数学竞赛
数据驱动世界。你得懂它 精读
基于模糊PI控制的驱动防滑仿真系统分析
屈宏斌:未来五年,双轮驱动,砥砺前行
计算机网络信息安全技术研究
深入实施创新驱动发展战略
计算机网络信息安全及防护策略
高校信息安全防护
创新思维竞赛(3)
创新思维竞赛(6)