☰
CodeCombat AP CSP 网络安全活动详解:从钓鱼邮件、DDoS 攻击到 HTTPS 握手原理
2026/9/25 2:23:08 网站建设 项目流程
  • 游戏开发
  • 教育
  • 前端
  • 后端

【免费下载链接】codecombat

Game for learning how to code.

项目地址:https://gitcode.com/gh_mirrors/co/codecombat
点击查看免费下载

本文基于 CodeCombat AP 计算机科学原理(AP CSP)课程库中的网络安全探究活动(apcsp-internet-cybersecurity.md),完整还原该课堂活动的设计:如何围绕真实网络攻击事件组织课堂讨论、如何通过一封钓鱼邮件讲透 HTTP/HTTPS 与 SSL 加密、对称/非对称加密及证书机制,以及如何讲解 DDoS 攻击与撰写攻击调查报告。读完本文,教师可以按文档原始流程直接组织课堂,学习者也能理解该课程中「网络安全(LO 6.3.1)」这一学习目标的完整教学链路与评估要点。

文档中用于课堂演示的钓鱼邮件示例图(原始资源文件 phishing-scam.jpg)

一、活动定位:AP CSP 第五单元中的网络安全探究活动

这份文档是 CodeCombat AP CSP 课程中的Inquiry Activity(探究活动),标题为 Cybersecurity。在课程体系中,它被编排进第五单元 Unit 5: Connecting Computing。该单元的定位是把学生一年所学的概念(数据分析、信息在互联网中的传输复杂度等)连接到更大的图景:计算是有力量的,学生本身可以借助计算改变世界。

在 unit-5.md 的 Activities 列表中,Cybersecurity 活动的要求是:

学生通过分析一起近期的网络攻击来学习网络安全。他们必须分析这次网络攻击,回答关于攻击不同维度的探究性问题,并参与后续的课堂讨论。

同时,该单元将EU 6.3(Cybersecurity is an important concern for the Internet and the systems built on it,网络安全是互联网及其上构建的系统的重要关切)列为单元的核心持久理解(Enduring Understanding)之一,这正是本活动承载的课程目标。

从源码结构看,该活动文档以 Markdown 形式存放于app/assets/markdown/目录,由教师端的 APCSP 动态视图加载渲染:DynamicAPCSPView.js 会判断路由名是否以markdown/开头,若匹配则通过 Markdown API 拉取对应文件内容展示给教师(api.markdown.getMarkdownFile(this.name.replace('markdown/', '')));另有一条旧版渲染路径 MarkdownResourceView.js,直接以$.get('/markdown/' + this.name + '.md', ...)的方式按文件名加载。也就是说,文档中的Activity Link(/apcsp/markdown/apcsp-internet-cybersecurity)最终解析到当前仓库这份 Markdown 文件,教师端看到的是与本文相同的结构化教学内容。

此外,课程大纲 的 CR2f 要求(Big Idea 6: The Internet 必须在 Performance Tasks 之外提供额外的学习机会)对应到 Unit 2 与 Unit 5,Cybersecurity 活动正是 Unit 5 中满足该要求的载体之一。

二、学习目标与评估问题

文档开头明确列出本活动对应的两条 AP CSP 学习目标(Learning Objectives):

学习目标内容计算思维实践
LO 6.3.1识别互联网及其上构建的系统中现存的网络安全问题,以及解决这些问题可能的选项P1: Connecting Computing
LO 7.1.2解释人们如何参与一个可扩展(scales)的解决问题的过程P4: Analyzing Problems and Artifacts

其中 LO 7.1.2 看似与网络安全关联较远,实际指向 DDoS 环节的讨论重点:大量设备/人共同发起攻击,正是「问题(解决)过程随规模放大」的典型场景,下文第四节会呼应这一点。

文档结尾给出了三条评估问题(Assessment Questions),可直接用于课后测验或讨论收尾:

  1. 网络战(cyberwarfare)与网络犯罪(cybercrime)有哪些影响?——对应 EK 6.3.1C
  2. 什么是 DDoS?——对应 EK 6.3.1D
  3. 什么是公钥加密(public key encryption)?——对应 EK 6.3.1L

三、课前准备:准备一个真实网络攻击案例

文档Preparation一节要求教师课前准备一件近期见诸报端的网络攻击事件(一篇短文章或一段视频),如果临时找不到,文档给出了三个备选案例:

  • 2016 年选举干预事件:美国多个州的选举系统遭到网络攻击;
  • HBO 数据泄露攻击:影视巨头遭黑客攻击并泄露数据;
  • 2017 年全球勒索软件攻击:席卷多国的全球性勒索软件事件。

(原文档附有所述新闻事件的报道链接,本文按规范不再转述外部链接,教师可依据事件名称自行检索权威媒体报道。)

选择案例时,三个案例分别覆盖了「国家行为/政治目标」「企业数据泄露」「面向公众的勒索软件」三类典型攻击形态,便于课堂讨论时对比不同攻击者的动机、目标与损害面。

四、课堂讨论:用三个问题拆解一次网络攻击

Discuss Cyber Attacks环节的组织方式:先展示准备好的攻击案例,询问学生是否听说过这次攻击,让他们分享已知的信息,然后教师用以下三个问题引导全班讨论:

  1. 我们是如何得知这次攻击的?(How did we find out about this attack?)——引出攻击的发现与披露渠道;
  2. 这次攻击的影响是什么?(What is the impact of this attack?)——对应评估问题 EK 6.3.1C「网络战与网络犯罪的影响」;
  3. 我们如何防御这类攻击?(How can we defend ourselves against this kind of attack?)——直接对应 LO 6.3.1 中「potential options to address these issues」的要求。

这三个问题构成了一个可复用的分析框架:披露渠道 → 影响面 → 防御手段,后文的反思作业正是要求学生用同一框架独立分析另一次攻击。

五、钓鱼攻击(Phishing):如何识别,以及 HTTPS 为什么能防住它

这是本活动中技术密度最高的环节,分为「识别钓鱼邮件」与「HTTPS/加密原理」两层。

5.1 演示一封钓鱼邮件

教师向学生展示一张钓鱼邮件的截图——一封诱导收件人输入邮箱账号和密码的垃圾邮件(示例图即 5.0 节配图所示)。先问学生:如果收到这封邮件你会怎么做?再点明:这封邮件看似合法,实则是钓鱼(phishing)攻击的典型样本。文档给出的定义是:

钓鱼是一种网络攻击形式,攻击者使用看似合法的邮件,从不知情的收件人处收集个人信息。

5.2 关键破绽:http 还是 https

接着让学生自己找出「这封邮件为何可疑」的答案。文档指出的破绽是:链接使用的是 http 而不是 https。由此展开两个协议的定义:

  • HTTP(Hyper Text Transfer Protocol)与HTTPS(Hyper Text Transfer Protocol Secure)都是用于在互联网设备之间传输信息的协议;
  • 区别在结尾的字母S(Secure,安全),它指的是传输信息时使用的加密。

5.3 SSL:对称加密 + 非对称加密的组合

文档进一步说明,SSL(Secure Socket Layer)是互联网上浏览器与服务器之间加密数据的标准技术,它同时使用对称加密与非对称加密:

加密方式原文定义特点
对称加密(Symmetric)用一把钥匙既加密又解密加解密同一密钥,效率适合大量数据传输
非对称加密(Asymmetric)用一把钥匙(公钥)加密,另一把钥匙(私钥)解密公私钥配对,解决密钥如何安全传递的问题

5.4 握手(Handshake)过程

文档描述的核心机制是浏览器与站点之间的握手过程:

  1. 浏览器通过 HTTPS 访问站点时,用站点的公钥创建一条消息——该消息只有站点能用私钥解开;
  2. 浏览器发送的这条消息中包含用于生成一个机密对称密钥的信息;
  3. 之后两台机器用这个对称密钥私密地来回传递信息。

即:用非对称加密安全地协商出对称密钥,再用对称加密承载后续通信——这正是 5.3 中「两种加密结合使用」的落点。

文档还补充了两个安全要点:

  • 证书要求:为增加安全性,只有当站点持有由受信任的证书颁发机构(trusted certificate authority)颁发的证书时,浏览器才会发起这个握手。浏览器可以查询任何通过 HTTPS 提供服务的站点的证书信息;
  • 浏览器警告的含义:当浏览器提示某站点「不安全(not secure)」时,通常意味着该站点的证书无效或已过期(invalid or expired)。

5.5 攻击者如何复制这个手法

文档最后一层:许多钓鱼攻击者会创建模仿公司名气的假网站,且这些网站是 http 而非 https。由于学生已经体验过建站并不困难,攻击者可以照抄公司网站的图片,做出一个几乎一模一样的页面,从而获取用户提交的非加密信息。

教学落点由此闭环:识别 http/https、理解证书与握手,学生就拿到了对抗钓鱼的三件工具——看协议头、查证书、辨真伪域名。这也直接回答了第四节讨论问题中的第三个「我们如何防御这类攻击」。

六、DDoS:分布式拒绝服务攻击

Distributed Denial of Service(DDoS,分布式拒绝服务)环节的定义是:

一种网络攻击,多台设备共同攻击一个在线服务,将其压垮到无法工作的程度。这类攻击常被希望让网站「下线」的组织当作抗议形式使用。

教学活动安排:

  1. 向学生分享一篇关于 IoT 僵尸网络的报道(原文档附 Wired 杂志链接,讲述一个感染了百万级网络设备的僵尸网络,本文按规范不转述外部链接,可依据主题自行检索);
  2. 围绕文章组织全班讨论,文档特别强调两点:
    • 此类攻击的社会接受度存在争议(acceptance of these kinds of attacks is under debate)——攻击「让网站瘫痪」本身在伦理上处于灰色地带;
    • 务必讨论多人参与攻击的影响(the impact of having multiple people participate in the attack)——从单设备攻击到「分布式」,规模变化如何改变攻击效果与可溯源难度。

第二点正是学习目标LO 7.1.2(解释人们如何参与一个可扩展的解决问题的过程)的落点:参与者的规模(scales)是这类攻击从「问题」升级为「系统性瘫痪」的关键变量,也是防御侧必须面对的量级问题。

七、反思作业:一页纸攻击调查报告

活动收尾(Reflection)环节的作业要求:课上开始、课后完成,学生独立调查一次网络攻击并撰写一页纸报告。文档特别提醒:选择可信的网站作为信息来源(choose trustworthy websites as sources)——这一条本身就是在训练学生甄别网络信息真伪,与钓鱼环节中「辨别假网站」的训练形成呼应。

报告须回答以下五个问题(与第四节课堂讨论的三个问题相比,增加了「攻击类型」与「目标对象」两个维度):

  1. 这是什么类型的攻击?(What kind of attack is this?)
  2. 它是如何被发现的?(How was it discovered?)
  3. 攻击目标是谁?(Who was it targeting?)
  4. 造成了什么损害?(What was the damage?)
  5. 如何防御它?(How can it be defended against?)

这五个问题恰好覆盖 LO 6.3.1 的完整要求:识别攻击问题(类型/目标/损害)+ 提出应对选项(防御手段),并对应三条评估问题中 EK 6.3.1C(影响)与 EK 6.3.1D(DDoS)的考查面。

八、相关课程资源索引

资源仓库路径说明
本活动文档apcsp-internet-cybersecurity.md文章主体来源
钓鱼邮件示例图phishing-scam.jpg5.1 节课堂演示用图
第五单元课程说明unit-5.md本活动所在的单元编排与 LO 映射
课程大纲syllabus.mdCR1a–CR4 课程要求与单元对应关系
姊妹活动:模拟互联网apcsp-internet-simulation.md同为 Unit 5,通过全班角色扮演的报文传输实验覆盖 LO 6.3.1,与本活动的「安全」主题互为补充
教师端渲染视图DynamicAPCSPView.js / MarkdownResourceView.js文档在教师端的加载与渲染链路

小结

这份网络安全探究活动的教学设计可以概括为「一框架、两案例、一原理、一作业」:

  • 一框架:披露渠道 → 影响 → 防御手段的三问分析框架(第四节),并扩展为反思作业的五个问题(第七节);
  • 两案例:真实攻击事件(课前准备)+ 钓鱼邮件与 DDoS 两个课堂内剖析对象;
  • 一原理:HTTP/HTTPS、SSL、对称/非对称加密、握手与证书链——这是本活动从「认识攻击」走向「理解防御」的技术纵深;
  • 一作业:一页纸独立攻击调查报告,把课堂所学迁移到学生自选的真实事件上。

配合评估问题(EK 6.3.1C/D/L),该活动完整覆盖了 AP CSP 学习目标 LO 6.3.1 与 LO 7.1.2,是第五单元中满足课程要求 CR2f(The Internet)的典型探究活动。

  • 游戏开发
  • 教育
  • 前端
  • 后端

【免费下载链接】codecombat

Game for learning how to code.

项目地址:https://gitcode.com/gh_mirrors/co/codecombat
点击查看免费下载

相关推荐

上一篇:Springy.js自定义渲染器开发:打造专属图形可视化界面
下一篇:打造流畅用户体验:react-native-largelist自定义刷新加载完全指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询