信息安全与密码学
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 与零信任思想、风险评估与等级保护与隐私合规与数据脱敏
✍️怎么学(可执行步骤)
- 教材用《密码学与网络安全》(Stallings)或《图解密码技术》(结城浩),后者用大量图示讲清对称与非对称与证书体系,适合第一遍建立直觉
- 动手实现:用 Python 实现 Caesar 与 Vigenere 与 AES 的分组模式实验(用库实现算法,自己实现模式组合),演示 ECB 模式下相同明文块被识别的现象
- 在靶场环境(DVWA 或 Juice Shop 或 Pikachu)复现四个以上漏洞(SQL 注入、XSS、文件上传、越权),写出漏洞原理、复现步骤与修复代码
- 用 Wireshark 抓一次 TLS 握手并逐条解释 ClientHello 到应用数据的流程,再手动用 openssl 命令生成密钥与签名验证一遍
📚推荐教材与书籍
体系完整的教材,对称与非对称密码、认证与协议安全章节覆盖面广,适合主线学习
用图示讲清密钥、证书、签名与 TLS,入门首选,读起来毫不吃力
中文 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 就绝对安全,忽略业务层越权、注入与配置缺陷带来的风险