软件工程本科生宝典
首页/课程学习引导/信息安全与密码学
安全 · 大三上

信息安全与密码学

Information Security and Cryptography

安全
课程类别
大三上
建议学期
重要性
重要程度
难度
学习难度

📖这门课到底讲什么

信息安全与密码学讲授如何保护信息的机密性、完整性与可用性:密码学基础(对称加密 DES 与 AES、工作模式、非对称加密 RSA 与椭圆曲线、哈希与消息认证码、数字签名、密钥交换)、身份认证与访问控制(口令、多因素、OAuth 与 JWT、RBAC 与最小权限)、网络安全与系统安全(TLS 握手、防火墙与入侵检测、Web 攻击原理与防护)、以及安全管理与合规(风险评估、等级保护、隐私保护与数据脱敏)。学完你应能解释一次 HTTPS 通信中的密码学机制、判断常见协议设计的安全缺陷、复现并修复主要 Web 漏洞,并在系统设计中落实认证授权与加密存储方案。

🎯为什么必须学好

安全能力在面试中体现为对 HTTPS 原理、密码存储方式、SQL 注入与 XSS 的防御、JWT 的坑、越权漏洞的敏感度这类问题的回答质量;所有后端与客户端岗位都要求基本安全素养,一次线上漏洞的影响远超性能问题。安全岗、安全开发、渗透测试与合规审计方向需求稳定增长,薪资可观。即使不做安全方向,本课也能让你在代码评审中识别风险,是职业责任感的直接体现。

📌核心知识清单

  • 安全目标与威胁模型:机密性、完整性、可用性、不可否认性、认证与授权,攻击者能力假设与信任边界
  • 对称密码:流密码与分组密码、DES 与 AES 结构与轮函数、分组模式(ECB 的缺陷、CBC、CTR、GCM)与初始向量与填充攻击
  • 非对称密码:RSA 的原理与密钥生成与共模攻击与填充、椭圆曲线密码与 ECDH、大整数与素性检测、量子计算对公钥密码的威胁
  • 哈希与消息认证:哈希函数性质与碰撞、SHA 系列与 MD5 的淘汰、HMac 与消息认证码、口令存储(加盐与慢哈希 bcrypt 与 scrypt 与 Argon2)
  • 签名与密钥管理:数字签名流程与证书与 PKI、X.509 与 CA 信任链、证书吊销、密钥分发与交换(DH 与 ECDH)、前向保密
  • 协议安全:TLS 握手流程与证书验证与握手优化、常见协议缺陷(重放、中间人、降级攻击)、安全协议设计原则
  • Web 与应用安全:OWASP Top 10(SQL 注入、XSS、CSRF、越权、SSRF、反序列化、文件上传与路径穿越)的原理与防御、认证与授权设计、JWT 与 Session 的安全使用
  • 系统与管理安全:访问控制模型(DAC、MAC、RBAC)、操作系统加固与缓冲区溢出防护、防火墙与 IDS 与零信任思想、风险评估与等级保护与隐私合规与数据脱敏

✍️怎么学(可执行步骤)

  1. 教材用《密码学与网络安全》(Stallings)或《图解密码技术》(结城浩),后者用大量图示讲清对称与非对称与证书体系,适合第一遍建立直觉
  2. 动手实现:用 Python 实现 Caesar 与 Vigenere 与 AES 的分组模式实验(用库实现算法,自己实现模式组合),演示 ECB 模式下相同明文块被识别的现象
  3. 在靶场环境(DVWA 或 Juice Shop 或 Pikachu)复现四个以上漏洞(SQL 注入、XSS、文件上传、越权),写出漏洞原理、复现步骤与修复代码
  4. 用 Wireshark 抓一次 TLS 握手并逐条解释 ClientHello 到应用数据的流程,再手动用 openssl 命令生成密钥与签名验证一遍

📚推荐教材与书籍

密码学与网络安全(第7版)William Stallings · 经典

体系完整的教材,对称与非对称密码、认证与协议安全章节覆盖面广,适合主线学习

图解密码技术(第3版)结城浩 · 入门

用图示讲清密钥、证书、签名与 TLS,入门首选,读起来毫不吃力

白帽子讲Web安全吴翰清 · 经典

中文 Web 安全标杆读物,讲清漏洞原理与防护体系,开发岗也强烈推荐

Web应用安全权威指南德丸浩 · 进阶

从开发视角系统讲 Web 安全与安全编码,适合后端开发提升安全能力

🎬视频课程 / 公开课

国内高校课程,密码学与网络安全基础讲解规范

Dan Boneh 讲授,从一次性密码本讲到认证加密,理论与实践并重,极具质量

🌐网站与文档

Web 安全标准与工具主页,Top 10 是必读清单

系统性安全测试方法,做渗透练习的路线图

中文 CTF 竞赛知识库,含密码学与 Web 与逆向方向的入门讲解

🐙GitHub 开源资料

各类安全实践速查表,写代码时按场景查防御做法

各类漏洞的载荷与利用与绕过技巧合集,做安全测试时参考

SQL 注入检测与利用工具,理解注入原理与防御要点的实践工具

中文 CTF 入门知识库,含密码学基础题目与解题思路

🧪动手实践任务

🧪

实践 1

在本地靶场复现 SQL 注入与 XSS 与越权三类漏洞,针对每个漏洞写出原理说明、利用步骤与修复后的代码,并验证修复有效

🧪

实践 2

用 openssl 或 Python 完成一次完整的证书与签名实验:生成密钥对与自签证书、对消息签名并验证、搭建 HTTPS 服务并观察浏览器警告的成因

🧪

实践 3

实现一个安全的用户口令注册与登录模块:使用加盐慢哈希存储、限制尝试次数、防止时序攻击与用户枚举,写出威胁分析

🧪

实践 4

对一段存在缺陷的代码(如直接拼接 SQL、JWT 弱密钥、文件上传未校验类型)做安全评审,列出问题等级与修复方案

🧾考试与面试

💼 面试会怎么考

高频:HTTPS 的完整握手流程与证书验证过程、为什么需要对称与非对称结合;对称加密与哈希与签名的区别与用途;RSA 的原理与常见误用(填充不当、共模);为什么口令要用加盐慢哈希而不能简单 MD5;SQL 注入与 XSS 与 CSRF 的原理与防御;JWT 的组成与常见安全问题(不能撤销、算法混淆、密钥泄露);如何在系统设计中做认证授权与权限校验(防越权);对称加密模式的 ECB 为什么不能用。

📝 期末与考研怎么过

期末多为计算与论述题:古典密码与 DES 或 AES 一轮计算的推演、RSA 的密钥生成与加密解密计算、哈希与签名流程说明、TLS 握手与证书链分析、Web 漏洞原理与防御措施、访问控制模型对比、风险评估与安全策略设计。备考方式是把密码学计算题(模幂、欧拉函数、扩展欧几里得)练熟,把协议流程与漏洞防御做成对照表。目标八十分以上。

⚠️ 常见坑

  • 只知道算法名字不理解安全目标与威胁模型,遇到实际系统设计无法判断该用什么方案
  • 自己发明加解密方案或使用已淘汰算法(MD5、DES、ECB),看起来能跑但存在结构性缺陷
  • 把哈希当加密使用、把加密当签名使用,混淆三者的保护目标
  • 忽视服务端校验只做前端校验,绕过前端即可攻击成功
  • 认为使用了 HTTPS 就绝对安全,忽略业务层越权、注入与配置缺陷带来的风险
→ 查看 大三上学期 的完整学期安排