2026“经纬杯”交通运输网络安全大赛 · 决赛 B 组团队赛
密码知识点 45′ · 数据知识点 45′ · 配套练习与工具 45–60′
← → 切换章节 ↑ ↓ 章节内翻页 Esc 总览 S 讲者备注 F 全屏
面向 2026“经纬杯”决赛 B 组团队赛选手 · 以概念讲解为主、例题为辅
编码 · 古典密码 · 哈希与口令 · 对称密码 · SM2 与签名 · 国密产品
数字证书 · 电子签章 · 传输安全 · 备份容灾 · 敏感数据与脱敏 · 法规标准
本讲义依据《2025 年交通运输网络安全大赛决赛指南》中“密码安全”“数据安全”两部分考纲,以及 2025 决赛真题整理。讲解以“这个概念是什么、在题目里长什么样、容易错在哪”为主线,主要知识点配有小例题;5 个配套实验放在第三部分,结合工具现场带做。
操作:← → 切换章节,↑ ↓ 在章节内翻页,Esc 查看总览,S 打开讲者备注(含授课提示),Ctrl+Shift+F 搜索。页面内容过长时可用鼠标滚轮在页内滚动。离线版讲义(含教师答案)请向授课老师索取。
三段式:密码知识点 45 分钟、数据知识点 45 分钟、配套练习与工具 45–60 分钟。带 ★ 的主题与 2025 真题直接对应。
| 板块 | 内容 | 分钟 |
|---|---|---|
| 开场 | 导览 · 真题与考纲(考什么、怎么考、B 组行业场景) | 10 |
| 第一部分 密码安全知识点 | 基础概念 → 编码与古典密码 → 哈希与口令 → 对称密码(含勒索密钥 ★)→ 公钥密码与 SM2(含真题第 7 题 ★)→ 国密体系与密码产品 | 45 |
| 休息 | 10 | |
| 第二部分 数据安全知识点 | 证书与电子签章 → 传输安全(抓包 ★)→ 存储与备份(RPO ★)→ 敏感数据与脱敏(身份证、导出细节 ★)→ 数据库与生命周期 → 法规标准 | 45 |
| 第三部分 配套练习与工具 | 工具速查 → L01~L05 五个实验现场带做(CyberChef / Wireshark / OpenSSL / Python)→ 速记卡与答题习惯 | 45–60 |
若练习只给 45 分钟:L01 改为课后自练,课上集中讲 L02、L04、L05 三道与真题直接对应的题。
以下原文摘自《2025 年交通运输网络安全大赛决赛指南》。2026 年指南如有更新,以官方公众号发布为准。
| 赛段 | 密码安全 | 数据安全 |
|---|---|---|
| 运维实操题(填空,占团队赛 40%) | 古典密码;国产密码算法 SM2、SM3、SM4 等相关加解密、签名验签实现原理;密码产品、设备接口规范等 | 数字证书、电子签章分析,密码通信协议分析等,数据存储安全、数据传输安全等 |
| 附加竞速赛(前 40 名,闯关 10 题,1 小时) | 古典密码与现代密码算法分析、国密算法应用、加密协议安全、密钥管理与攻击等密码应用安全要点 | 敏感数据识别与防护、数据库安全配置、数据泄露检测与响应等数据全生命周期的安全管理与技术 |
| 综合防御题(靶场,占团队赛 60%) | 未单列;真题中出现勒索病毒密钥提取 | 依据等保 2.0 三个标准;真题中出现个人信息规范、数据脱敏、敏感权限审计 |
来源:2025 决赛指南;交通通信信息中心 2026 决赛通知
8 道运维实操题中有 5 道、综合防御 20 个检查点中有 6 个与密码或数据安全直接相关。
| 真题 | 分值 | 考的是什么 | 本讲义位置 |
|---|---|---|---|
| 运维实操 7:SM2 签名“直接对数据签名而非杂凑值”,判断 4 条签名各用哪个公钥 | 8 | SM2 签名/验签流程、e 的来源、ZA、r‖s 格式 | 06 章 · L02 |
| 运维实操 2:RPO 1 小时、每 30 分钟增量备份,求单次增量最多可丢失的数据量 | 3 | RPO/RTO、全量/增量备份 | 10 章 |
| 运维实操 6:pcap 中找返回明文身份证号和手机号的接口 URL | 5 | 明文传输、敏感数据识别 | 09 章 · L04 |
| 运维实操 3:弱口令/规律口令相关题(WEB 安全方向) | 3 | 口令策略与口令存储(本讲义只讲防御侧概念) | 04 章 |
| 运维实操 4:从 SpringBoot heapdump 中取出 MySQL 明文密码 | 5 | 内存中的敏感数据、配置泄露 | 12 章 |
| 综合防御 13/14:按《个人信息数据安全规范》找不规范数据,脱敏后导出 UTF-8&CRLF 的 CSV 并算 MD5 | — | 身份证/手机号校验、脱敏方法、文件字节与哈希 | 11 章 · L05 |
| 综合防御 4/5:勒索病毒的加密后缀、32 个字符的密钥 | — | 对称加密、密钥形态 | 05 章 |
| 综合防御 10/12:MSSQL 特殊权限、敏感权限使用审计 | — | 数据库最小权限、安全审计 | 12 章 |
第一部分
看到一串“乱码”,先问:它需要密钥吗?能还原吗?谁能验证?
| 概念 | 要不要密钥 | 能否还原 | 解决什么问题 | 例子 |
|---|---|---|---|---|
| 编码 | 不要 | 能,任何人都能 | 数据格式转换、传输兼容 | Base64、Hex、URL 编码 |
| 哈希(杂凑) | 不要 | 不能(单向) | 完整性:内容变了,指纹就变 | MD5、SHA-256、SM3 |
| 对称加密 | 一把密钥,双方共享 | 能,有密钥的人能 | 机密性:别人看不懂 | SM4、AES、DES、ZUC |
| 非对称加密 | 一对密钥:公钥加密、私钥解密 | 能,有私钥的人能 | 机密性 + 解决密钥分发 | SM2 加密、RSA 加密 |
| 数字签名 | 一对密钥:私钥签名、公钥验证 | 不是为了还原 | 真实性、完整性、不可否认 | SM2 签名、RSA 签名 |
密评和等保里反复出现的就是这四个词,答题时要能对应到具体技术。
| 安全属性 | 含义 | 典型技术 | 交通行业场景 |
|---|---|---|---|
| 机密性 | 未授权者看不到内容 | SM4/AES 加密、SM2 加密、TLS/TLCP、VPN | 旅客证件号加密存储;售票接口走 HTTPS |
| 完整性 | 内容未被篡改 | 哈希 + HMAC、数字签名、MAC | 运单状态变更记录防篡改;日志完整性 |
| 真实性(身份鉴别) | 确认对方是谁 | 数字证书、签名、挑战-应答、USBKey | 调度员用 USBKey 登录;设备双向认证 |
| 不可否认性 | 做过的事无法抵赖 | 数字签名 + 可信时间戳 | 电子客票改签确认、电子签收单 |
| 机制 | 密钥 | 谁能验证 | 能否不可否认 |
|---|---|---|---|
| 哈希(SM3/SHA-256) | 无 | 任何人 | 否 |
| MAC/HMAC(如 HMAC-SM3) | 双方共享同一密钥 | 持有该密钥的双方 | 否(双方都能生成) |
| 数字签名(SM2) | 私钥签、公钥验 | 任何持有公钥的人 | 能 |
某系统要求“调度指令下发后,调度员不能否认自己发过”。应选择哪种技术?A. SM3 摘要 B. HMAC-SM3 C. SM2 数字签名 D. SM4 加密
C。只有私钥持有者能生成签名,才能证明是他发的。HMAC 双方共享密钥,接收方也能伪造,无法实现不可否认。
柯克霍夫原则:系统的安全只应依赖密钥的保密,而不是算法的保密。
| 密钥管理环节 | 常见问题(也是常见考点) |
|---|---|
| 生成 | 用时间戳、固定种子生成密钥;随机数不够随机 |
| 存储 | 密钥硬编码在代码/配置里;和密文放在同一台机器;明文写在日志里 |
| 分发 | 通过邮件、即时通讯发送密钥;未加密传输 |
| 使用 | 一把密钥既签名又加密;所有设备共用同一密钥 |
| 更新与销毁 | 密钥长期不换;人员离职后不撤销证书;硬盘报废未销毁密钥 |
识别编码的关键是:字符集 + 长度规律 + 结尾特征。
| 编码 | 字符集 | 长度/特征 | 示例(原文 Rail) |
|---|---|---|---|
| Base64 | A–Z a–z 0–9 + / | 长度是 4 的倍数,结尾可能有 = 或 == | UmFpbA== |
| Base64URL | 把 + / 换成 - _ | 常见于 JWT、URL 参数,常省略 = | UmFpbA |
| Base32 | A–Z 2–7(全大写) | 长度是 8 的倍数,结尾可能有多个 = | KJQWS3A= |
| Base58 | 去掉 0 O I l + / 的字母数字 | 无 =,常见于数字货币地址(勒索信里常见) | 3Ag9Zv |
| Hex(十六进制) | 0–9 a–f | 长度为偶数,每 2 个字符一个字节 | 5261696c |
| URL 编码 | %XX | 中文 UTF-8 每个汉字 3 组 %XX | %E5%AF%86=“密” |
| Unicode 转义 | \uXXXX | 每个汉字一组 | \u5bc6=“密” |
| HTML 实体 | &#xXXXX; / &#DDDD; | 网页源码里常见 | 密 |
| 摩斯 | . - 和分隔符 | 字母间空格或 / | .-. .- .. .-.. |
一个 SM4 密钥(16 字节)分别用 Hex 和 Base64 表示,各有多少个字符?
Hex:16 × 2 = 32 个字符。Base64:\(4\left\lceil 16/3 \right\rceil = 4\times 6\) = 24 个字符,结尾两个 =。
所以“32 个字符的密钥”既可能是 16 字节密钥的 Hex 形式,也可能是 32 字节(256 位)密钥的 ASCII 字符形式,要结合上下文判断。
古典密码只对字母做两类操作:换成别的字母(替换),或者打乱位置(置换)。
| 密码 | 类型 | 规则 | 识别特征 / 破解思路 |
|---|---|---|---|
| 凯撒 | 单表替换 | 每个字母后移 k 位(k=1…25) | 只有 25 种可能,全部列出来看哪个像英文 |
| ROT13 | 单表替换 | 凯撒 k=13,加密解密是同一操作 | 常见于论坛/代码里藏提示 |
| Atbash(埃特巴什) | 单表替换 | A↔Z、B↔Y…镜像 | 加解密相同 |
| 简单替换 | 单表替换 | 任意 26 字母对应表 | 词频分析:英文最常见 E、T、A、O |
| 维吉尼亚 | 多表替换 | 按密钥逐位做不同位移 | 已知密钥直接解;未知时先求密钥长度(重复片段间距) |
| 栅栏 | 置换 | 按 N 栏 Z 字形写,再按行读出 | 字母和原文完全相同,只是顺序乱;试 2~6 栏 |
| 培根 | 编码式替换 | 每个字母用 5 位 A/B 表示 | 只有 A、B 两种字符,5 个一组 |
| 猪圈 | 图形替换 | 井字格和 X 形格的符号 | 图片题,对照表即可 |
密文 WKH WUDLQ OHDYHV DW QLQH,位移是多少?明文是什么?
WKH 很像 THE:W→T 是左移 3,所以加密时右移 k=3。明文 THE TRAIN LEAVES AT NINE。
技巧:英文里最常见的三字母单词是 THE,最常见的单字母单词是 A 和 I。
密文 CEKHPREHCTEACL(2 栏),还原明文。
14 个字母,2 栏时第一行 7 个:CEKHPRE,第二行 7 个:HCTEACL。交替读:C-H-E-C-K-T-H-E-P-A-R-C-E-L → CHECKTHEPARCEL(check the parcel)。
以下工具全部在本页 JavaScript 里运行,不联网。比赛时同类工具推荐 CyberChef 离线版。
三个性质:单向(不能反推)、抗碰撞(找不到两个输入同指纹)、雪崩(改 1 位,指纹面目全非)。
| 算法 | 输出位数 | Hex 长度 | 安全现状 | admin 的哈希(前 16 位) |
|---|---|---|---|---|
| MD5 | 128 | 32 | 已可构造碰撞,不能用于签名/证书 | 21232f297a57a5a7… |
| SHA-1 | 160 | 40 | 已有实际碰撞(2017),逐步淘汰 | d033e22ae348aeb5… |
| SHA-256 | 256 | 64 | 安全 | 8c6976e5b5410415… |
| SM3(国密) | 256 | 64 | 安全,对标 SHA-256,GB/T 32905 | dc1fd00e3eeeb940… |
| SHA-512 | 512 | 128 | 安全 | — |
某字段值为 66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0,已知原文是 abc。它是什么算法?
64 个 Hex 字符 → 256 位,候选为 SHA-256 或 SM3。SHA-256(abc) 以 ba7816bf 开头;而 66c7f0f4… 正是 GB/T 32905 给出的 SM3("abc") 标准测试结果。
同一份 CSV,A 同事算出的 MD5 和 B 同事不同,但用记事本打开内容“完全一样”。可能原因?
哈希针对的是文件的每一个字节:换行符 CRLF 与 LF、文件开头有无 BOM、末尾是否多一个空行、编码 UTF-8 与 GBK、字段是否带引号,任何一处不同指纹都不同。这正是综合防御第 14 题要求“UTF-8&CRLF、去掉尾行空行”的原因。
口令空间远小于密钥空间,所以口令存储不能只用一次快速哈希。
| 存储方式 | 评价 | 原因 |
|---|---|---|
| 明文 | 不可接受 | 数据库一旦泄露,全部口令直接暴露 |
| Base64 / 可逆加密且密钥同库 | 不可接受 | 等同明文 |
| MD5/SHA-256 不加盐 | 弱 | 相同口令得到相同哈希,可用预计算表比对 |
| 加盐的快速哈希 | 一般 | 盐使预计算表失效,但快速哈希仍便于大规模比对 |
| 专用口令哈希(bcrypt、scrypt、Argon2id、PBKDF2) | 推荐 | 自带盐和可调“成本”,每次计算故意变慢 |
/etc/shadow 的格式 $6$盐$哈希 中,$6$ 表示 SHA-512-crypt,$y$ 表示 yescrypt。| 口令策略(等保常见要求) | 说明 |
|---|---|
| 复杂度 | 长度不少于 8 位,包含大小写字母、数字、特殊字符中的多类 |
| 定期更换且不得与历史口令相同或相似 | 只改年份或末尾数字的“换汤不换药”应被策略禁止 |
| 登录失败处理 | 连续失败锁定、超时自动退出 |
| 默认口令 | 设备、数据库、中间件上线前必须修改默认口令 |
| 双因素 | 重要系统采用口令 + 数字证书/USBKey 等两种以上鉴别方式(密评中的“身份鉴别”) |
对称加密用同一把密钥加密和解密,速度快,适合大量数据。
| 算法 | 分组长度 | 密钥长度 | 轮数 | 备注 |
|---|---|---|---|---|
| DES | 64 位 | 56 位有效(64 位含校验) | 16 | 已不安全 |
| 3DES | 64 位 | 112/168 位 | 48 | 逐步淘汰 |
| AES | 128 位 | 128 / 192 / 256 位 | 10 / 12 / 14 | 国际主流 |
| SM4 | 128 位 | 128 位 | 32 | 国密,GB/T 32907,原用于无线局域网 |
| SM1 | 128 位 | 128 位 | — | 算法不公开,只以芯片形式提供 |
| ZUC(祖冲之) | 序列密码 | 128 位 | — | 4G 的 128-EEA3/EIA3,GB/T 33133 |
密钥 = 0123456789abcdeffedcba9876543210
明文 = 0123456789abcdeffedcba9876543210
密文 = 681edf34d206965e86b3e94f536e4246 (SM4-ECB,GB/T 32907 附录示例)使用 SM4 加密一个 20 字节的明文,采用 CBC 模式和 PKCS#7 填充,密文有多少字节?
分组 16 字节,20 字节需要填充到 32 字节(填 12 个 0x0C)。密文 32 字节;如果把 IV(16 字节)也拼在密文前面一起传输,则为 48 字节。
注意:PKCS#7 在明文恰好是 16 的整数倍时,也要再补一整组 16 个 0x10。
分组密码一次只能加密 16 字节,工作模式决定多个分组如何串起来。
| 模式 | 需要 IV | 需要填充 | 特点 |
|---|---|---|---|
| ECB 电码本 | 否 | 是 | 相同明文块 → 相同密文块,会暴露数据规律,不推荐 |
| CBC 密码分组链接 | 是(随机、不可预测) | 是 | 每块先与上一块密文异或;IV 重复会泄露信息 |
| CTR 计数器 | 是(计数器/nonce,不能重复) | 否 | 变成序列密码用法,可并行 |
| GCM | 是(nonce 不能重复) | 否 | 加密 + 认证(AEAD),TLS 1.3 首选 |
明文 = "PARCEL-1024-OK!!PARCEL-1024-OK!!" (两块完全相同)
密钥 = 0123456789abcdeffedcba9876543210
SM4-ECB 密文:d02e3c7bc0fb2b058903f199867b0535 d02e3c7bc0fb2b058903f199867b0535 ← 两块一样
SM4-CBC 密文:86ad5afa29b621679bb2a726c2a1dc5a 4fc62ede0bb709cad5470f70d2020cd9 ← 两块不同
(CBC 的 IV = 000102030405060708090a0b0c0d0e0f)某票务系统把每个旅客证件号用 SM4-ECB、同一把密钥加密后存库。存在什么问题?
同一证件号总是得到同一密文:攻击者虽然看不到明文,但能判断“哪些记录是同一个人”、统计出现频率。应使用带随机 IV 的模式(如 GCM/CBC),或在需要等值查询时采用专门设计的方案,并做好密钥管理。
2025 综合防御第 4、5 题:找出勒索病毒的加密后缀、加密所用的 32 个字符的密钥。
勒索病毒几乎都用对称算法加密文件(速度快),有的再用公钥加密这把对称密钥。题目问“32 个字符的秘钥”,说明这个样本把密钥直接写在了程序或配置里。
| “32 个字符”可能是 | 对应 | 如何判断 |
|---|---|---|
| 32 个 Hex 字符 | 16 字节 = 128 位密钥(SM4-128 / AES-128) | 只含 0–9a–f |
| 32 个任意 ASCII 字符 | 32 字节 = 256 位密钥(AES-256) | 含大小写字母、符号 |
| Base64 字符串 | 解码后字节数才是密钥长度 | 含 + / =,长度是 4 的倍数 |
公钥公开、私钥自己保管;用对方公钥加密,用自己私钥签名。
公钥 \((n,e) = (3233, 17)\),私钥 \(d = 2753\)
| 加密 | 签名 | |
|---|---|---|
| 用谁的哪把钥匙 | 接收方的公钥加密 | 发送方的私钥签名 |
| 谁能完成逆操作 | 只有接收方私钥能解 | 任何人都能用发送方公钥验 |
| 目的 | 机密性 | 真实性、完整性、不可否认 |
A 要给 B 发一份加密且能证明来源的文件,下列做法正确的是?
A. 用 A 的公钥加密,用 B 的私钥签名
B. 用 B 的公钥加密,用 A 的私钥签名
C. 用 B 的私钥加密,用 A 的公钥签名
B。加密用接收方公钥(只有 B 能解);签名用发送方私钥(只有 A 能签,任何人可用 A 的公钥验)。
SM2 是基于椭圆曲线的国密公钥算法(GB/T 32918),一个算法包含签名、密钥交换、加密三种用途。
| 数据 | 长度 | 形态 / 说明 |
|---|---|---|
| 私钥 d | 32 字节(256 位) | 一个 1 到 n−2 之间的随机整数 |
| 公钥 P = [d]G | 64 字节(x‖y) | 常带前缀 04 表示未压缩,共 65 字节 = 130 个 Hex 字符 |
| 签名值 (r, s) | 64 字节(r‖s 各 32 字节) | 也常见 DER 编码(约 70~72 字节,以 30 开头) |
| 加密密文 | 明文长度 + 97 字节 | C1(65 字节曲线点)+ C3(32 字节 SM3 值)+ C2(与明文等长) |
| 用户标识 ID | 默认 1234567812345678 | 16 字节,GM/T 0009 规定的默认值 |
| GB/T 32918 各部分 | 内容 |
|---|---|
| 第 1 部分 | 总则 |
| 第 2 部分 | 数字签名算法 |
| 第 3 部分 | 密钥交换协议 |
| 第 4 部分 | 公钥加密算法 |
| 第 5 部分 | 参数定义(推荐曲线 sm2p256v1) |
用 SM2 加密一个 16 字节的 SM4 会话密钥,按 C1C3C2 格式(含 04),密文多少字节?
65 + 32 + 16 = 113 字节。这就是“数字信封”:用 SM2 加密 SM4 密钥,再用 SM4 加密大量数据。
SM2 签名不是直接对消息签名,而是对 e = SM3(ZA ‖ M) 签名。ZA 把签名者身份和公钥绑定进来。
\(\mathrm{ENTL}_A\) 是 ID 的位长(2 字节,默认 ID 16 字节 → \(128 = \texttt{0x0080}\));\(a, b\) 是曲线参数;\((x_G, y_G)\) 是基点;\((x_A, y_A)\) 是签名者公钥。
签名值为 \((r, s)\),各 32 字节
题干:M 为字符串、e 为消息杂凑值、r+s 为签名值;签名时直接对数据本身签名。问序号 1~4 的签名分别用哪个公钥签的。
| 题干里的词 | 正确理解 |
|---|---|
| r+s 为签名值 | r 和 s 拼接,前 32 字节是 r、后 32 字节是 s;不是数学相加 |
| e 为消息杂凑值 | 数据里给出的 e 字段不一定是签名时实际使用的值 |
| 直接对数据本身签名而非杂凑值 | 实际 e = 消息字节直接转成的大整数(不经 SM3,也没有 ZA) |
| 用哪个公钥签名 | 公钥是公开的,用公钥验签就能判断;不需要私钥 |
| 公钥格式 | 04‖x‖y,去掉 04 后前 32 字节是 x,后 32 字节是 y |
验签公式 [s]G + [t]P_A 里含有公钥 P_A。换一个公钥,算出的 x₁′ 就完全不同,R 就不会等于 r。所以 4 条签名 × 4 个公钥 = 16 次验签,每条签名只会有一个公钥通过。
这些都是“算法没问题、用法有问题”,也是附加赛“密码应用安全”的高频方向。
| 误用 | 后果 | 正确做法 |
|---|---|---|
| 签名不做 SM3(ZA‖M) 预处理 | 与标准实现不兼容,验签失败或被利用 | 按 GM/T 0009 计算 ZA,使用标准接口 |
| 签名随机数 k 重复使用 | 两条签名即可解出私钥(与 ECDSA 相同) | k 必须每次随机且保密 |
| k 可预测(时间戳、固定种子) | 同样可推出私钥 | 使用合格的随机数发生器(密码设备) |
| 一个密钥对既签名又加密 | 违反密钥用途分离 | 签名密钥对与加密密钥对分开(双证书) |
| 只验签名、不验证书 | 攻击者用自己的密钥对签名也能“验过” | 先验证公钥证书的有效性和信任链 |
| 私钥以文件形式放在服务器 | 服务器被控即私钥泄露 | 私钥保存在密码机/USBKey 中,不出设备 |
为什么说“验签通过”不等于“这条消息是张三签的”?
验签只证明“签名与这个公钥匹配”。还要确认这个公钥确实属于张三——这就需要 CA 签发的数字证书把身份和公钥绑定(第 08 章)。
考试最常考:类型、长度、对标的国际算法、标准号。
| 算法 | 类型 | 关键参数 | 对标 | 标准 |
|---|---|---|---|---|
| SM1 | 对称分组 | 分组/密钥 128 位,算法不公开 | — | 仅以芯片形式提供 |
| SM2 | 椭圆曲线公钥 | 256 位;签名、密钥交换、加密 | RSA / ECDSA / ECDH | GB/T 32918 |
| SM3 | 杂凑 | 输出 256 位,分组 512 位 | SHA-256 | GB/T 32905 |
| SM4 | 对称分组 | 分组 128 位,密钥 128 位,32 轮 | AES-128 | GB/T 32907 |
| SM7 | 对称分组 | 算法不公开 | — | 非接触式 IC 卡(门禁、一卡通等) |
| SM9 | 标识密码(IBC) | 用身份标识(如邮箱、手机号)直接作公钥 | IBE/IBS | GB/T 38635 |
| ZUC 祖冲之 | 序列密码 | 密钥 128 位 | 4G LTE 的 EEA3/EIA3 | GB/T 33133 |
| 对象标识符(OID,证书和抓包里会看到) | 值 |
|---|---|
| SM2 算法 | 1.2.156.10197.1.301 |
| SM3 杂凑 | 1.2.156.10197.1.401 |
| SM3withSM2 签名 | 1.2.156.10197.1.501 |
| SM4 分组 | 1.2.156.10197.1.104 |
① SM3 输出 ___ 位;② SM4 密钥 ___ 位;③ 可以用手机号直接当公钥的国密算法是 ___;④ 用于 4G 通信加密的国密序列密码是 ___。
① 256 ② 128 ③ SM9 ④ ZUC(祖冲之)
考纲原文:“密码产品、设备接口规范”。先认识产品,再看接口。
| 产品 | 作用 | 相关规范 |
|---|---|---|
| 服务器密码机 | 为业务系统提供高性能加解密、签名、密钥管理;私钥不出设备 | GM/T 0030;接口 GM/T 0018(SDF) |
| 签名验签服务器 | 集中提供签名、验签、证书验证服务 | GM/T 0029 |
| 智能密码钥匙(USBKey) | 存放个人证书和私钥,用于登录、签名 | GM/T 0027;接口 GM/T 0016(SKF) |
| SSL VPN / 安全网关 | 用国密 TLCP 协议建立安全通道 | GM/T 0024、GB/T 38636 |
| IPSec VPN | 网络层加密,常用于站点互联 | GM/T 0022 |
| 时间戳服务器 | 提供可信时间,证明数据在某时刻已存在 | GM/T 0033 |
| 数字证书认证系统(CA) | 签发、管理数字证书 | GM/T 0034 |
| 密钥管理系统(KMS/KMC) | 生成、分发、托管加密密钥 | — |
GM/T 0028《密码模块安全技术要求》把密码模块分为一级到四级,等级越高,物理防护、身份鉴别、自测试等要求越严。密评中会要求使用经检测认证合格的密码产品。
两套最常见的国密设备接口。不需要背函数,但要知道“谁对应谁”和调用顺序。
SDF_OpenDevice 打开设备
SDF_OpenSession 创建会话
SDF_GenerateRandom 产生随机数
SDF_GetPrivateKeyAccessRight 获取私钥使用权限
SDF_InternalSign_ECC 用设备内部私钥签名
SDF_ExternalVerify_ECC 用外部公钥验签
SDF_Encrypt / SDF_Decrypt 对称加解密
SDF_HashInit/Update/Final 杂凑运算
SDF_CloseSession 关闭会话
SDF_CloseDevice 关闭设备设备 DEV
└─ 应用 APPLICATION (管理员 PIN / 用户 PIN)
└─ 容器 CONTAINER
├─ 签名密钥对 + 签名证书
└─ 加密密钥对 + 加密证书
└─ 文件 FILE
SKF_EnumDev → SKF_ConnectDev
→ SKF_OpenApplication → SKF_VerifyPIN
→ SKF_OpenContainer → SKF_ECCSignData| 接口规范要点 | 说明 |
|---|---|
| 内部密钥用“索引号”调用 | 私钥保存在设备内,应用只传索引号,私钥本身不出设备 |
| 签名接口输入的是杂凑值 | SDF/SKF 的 ECC 签名函数要求调用者先做 SM2 预处理(计算 ZA、再 SM3),传入的是 e,而不是原文——真题第 7 题的缺陷就出在这里 |
| 结构体字段按最大长度预留 | SDF 的 ECC 公钥、签名结构中坐标字段按 64 字节预留,256 位的值放在后 32 字节,前面补 0 |
| 返回码 | 0 表示成功(SDR_OK),非 0 为错误码 |
某应用需要在 USBKey 中用用户私钥签名,正确的调用顺序是:连接设备 → 打开应用 → ____ → 打开容器 → 签名。
校验用户 PIN(SKF_VerifyPIN)。不校验 PIN 就无法使用容器内的私钥;PIN 连续输错会被锁定。
知道“为什么要用国密、要用在哪些地方”,答概念题和综合题时不会跑偏。
| 概念 | 要点 |
|---|---|
| 《密码法》(2020-01-01 施行) | 密码分为核心密码、普通密码(保护国家秘密)和商用密码(保护不属于国家秘密的信息) |
| 密评 | 商用密码应用安全性评估;关键信息基础设施、等保三级及以上系统应开展 |
| GB/T 39786-2021 | 《信息系统密码应用基本要求》,密评的主要依据,分一至四级 |
| “三同步一评估” | 密码保障系统与信息系统同步规划、同步建设、同步运行,定期评估 |
| GB/T 39786 技术层面 | 典型要求(三级) | 交通场景举例 |
|---|---|---|
| 物理和环境安全 | 门禁记录完整性、视频记录完整性 | 机房门禁日志用 SM3-HMAC 防篡改 |
| 网络和通信安全 | 通信实体身份鉴别、通信数据机密性和完整性 | 售票系统对外用国密 SSL(TLCP) |
| 设备和计算安全 | 设备登录身份鉴别、远程管理通道安全、日志完整性 | 运维人员用 USBKey + 口令登录堡垒机 |
| 应用和数据安全 | 用户身份鉴别、重要数据传输和存储的机密性与完整性、不可否认性 | 旅客证件号 SM4 加密存储;电子客票签名 |
管理层面还包括:管理制度、人员管理、建设运行、应急处置。
第二部分
公钥本身只是一串数字。证书由可信的 CA 签名,证明“这个公钥属于这个主体”。
| PKI 组成 | 作用 |
|---|---|
| CA 认证机构 | 用自己的私钥给用户证书签名;根 CA → 中间 CA → 用户证书 |
| RA 注册机构 | 核验申请者身份,审核通过后交 CA 签发 |
| 证书库 / 目录服务 | 发布证书,供他人下载公钥 |
| CRL 证书吊销列表 | CA 定期发布的“作废证书序列号清单” |
| OCSP 在线证书状态协议 | 实时查询某张证书是否被吊销 |
| KMC 密钥管理中心 | 国密体系中生成、托管加密密钥对 |
同时还要检查:当前时间在有效期内;证书没有被吊销;证书里的域名(SAN)与访问的域名一致;密钥用途允许当前操作。
浏览器访问 https://ticket.demo-rail.test 时提示“证书不受信任”,可能的原因有哪些?
① 证书是自签名或由不在信任列表中的 CA 签发;② 服务器没有发送中间 CA 证书,链不完整;③ 证书已过期或尚未生效;④ 证书已被吊销;⑤ 证书 SAN 中没有 ticket.demo-rail.test;⑥ 本机时间错误。
题目常问:颁发者、使用者、有效期、序列号、公钥算法、签名算法、指纹、密钥用途。
| 字段 | 含义 | 示例(L03 server.crt) |
|---|---|---|
| Version 版本 | 现行为 v3(显示为 3 (0x2)) | 3 |
| Serial Number 序列号 | CA 内唯一;吊销列表按序列号列出 | 0x2a3b4c |
| Signature Algorithm 签名算法 | CA 签这张证书所用的算法 | sha256WithRSAEncryption;国密为 SM2-with-SM3 |
| Issuer 颁发者 | 签发它的 CA | CN = Demo Transport Training Root CA |
| Validity 有效期 | Not Before ~ Not After(UTC 时间) | 2026-03-01 ~ 2027-03-01 |
| Subject 使用者/主题 | 证书持有者 | CN = ticket.demo-rail.test |
| Subject Public Key Info | 持有者公钥及算法 | RSA 2048 位;国密为 id-ecPublicKey + SM2 曲线 |
| Basic Constraints | 是否为 CA 证书 | CA:FALSE |
| Key Usage 密钥用途 | 数字签名、密钥加密、证书签名等 | Digital Signature, Key Encipherment |
| Extended Key Usage | 服务器认证、客户端认证、代码签名等 | TLS Web Server Authentication |
| Subject Alternative Name | 证书适用的域名/IP(浏览器以此为准) | ticket.demo-rail.test, m.ticket.demo-rail.test |
| CRL Distribution Points / AIA | 去哪查吊销状态、去哪下载上级证书 | http://crl.demo-transport.test/root.crl |
文件后缀经常“名不副实”,以内容为准。
| 格式 | 内容 | 识别 | 常见后缀 |
|---|---|---|---|
| PEM | Base64 文本 | 以 -----BEGIN CERTIFICATE----- 开头 | .pem .crt .cer |
| DER | 二进制 ASN.1 | 首字节通常为 0x30 | .der .cer |
| PKCS#7 / P7B | 证书链,不含私钥 | BEGIN PKCS7 | .p7b .p7c |
| PKCS#12 / PFX | 证书 + 私钥,有口令保护 | 二进制 | .pfx .p12 |
| 私钥 PEM | 私钥 | BEGIN PRIVATE KEY / BEGIN EC PRIVATE KEY | .key .pem |
openssl x509 -in a.crt -noout -text # 查看 PEM 证书
openssl x509 -in a.cer -inform DER -noout -text # 查看 DER 证书
openssl x509 -in a.cer -inform DER -out a.pem # DER → PEM
openssl x509 -in a.crt -noout -fingerprint -sha256 # 计算指纹
certutil -dump a.cer # Windows 自带命令| 签名证书 | 加密证书 | |
|---|---|---|
| 密钥对由谁生成 | 用户自己在 USBKey 中生成,私钥只有用户有 | KMC 生成并托管,以数字信封形式下发到用户设备 |
| 用途 | 身份认证、数字签名 | 加密、密钥交换 |
| 为何分开 | 签名私钥不能有备份,否则失去不可否认性 | 加密私钥必须可恢复,否则丢失后数据永远解不开 |
电子签章 = 印章图像 + 数字签名 + 签章人证书 +(可选)时间戳。看得见的是图像,起作用的是签名。
| 组成 | 作用 |
|---|---|
| 电子印章数据 | 印章图像、印章编码、制章者对印章的签名(证明这枚章是合法制作的) |
| 签章人数字证书 | 证明是谁盖的章 |
| 对文档摘要的签名 | 证明文档盖章后未被修改 |
| 时间戳 | 证明盖章发生在某个时间点之前,证书过期后仍可判断当时是否有效 |
| 规范 / 法律 | 要点 |
|---|---|
| GB/T 38540-2020(源自 GM/T 0031) | 安全电子签章密码技术规范,规定印章和签章的数据格式及验证流程 |
| 《电子签名法》第十三条 | 可靠电子签名需同时满足:签名制作数据专有、签署时仅由签名人控制、签名被改动能被发现、数据电文内容和形式被改动能被发现 |
| 时间戳 RFC 3161 / GM/T 0033 | 可信时间戳的格式和接口 |
一份电子合同的签章人证书已在今天过期,合同是半年前签的。签章还有效吗?依据什么判断?
如果签章带有可信时间戳,且时间戳显示签署时证书在有效期内、未被吊销,则签章仍有效。没有时间戳时,无法可靠证明签署时间,判断会有争议。
握手的目的:确认对方身份(证书)+ 协商出一把只有双方知道的会话密钥。
TLS 1.2 握手(简化) 能否在抓包中看到
Client → ClientHello (版本、随机数、密码套件列表、SNI 域名) 明文
Server → ServerHello (选定套件、随机数) 明文
Server → Certificate (服务器证书链) 明文(TLS 1.2 / TLCP)
Server → ServerKeyExchange / ServerHelloDone 明文
Client → ClientKeyExchange 明文
双方 → ChangeCipherSpec, Finished 之后全部加密
Application Data 密文| TLS 1.2 | TLS 1.3 | TLCP(国密 SSL) | |
|---|---|---|---|
| 标准 | RFC 5246 | RFC 8446 | GB/T 38636-2020(源自 GM/T 0024) |
| 协议版本号 | 0x0303 | 0x0304 | 0x0101 |
| 证书 | 一张,明文传输 | 一张,加密传输 | 两张:签名证书 + 加密证书 |
| 典型套件 | ECDHE-RSA-AES128-GCM-SHA256 | TLS_AES_128_GCM_SHA256;国密 TLS_SM4_GCM_SM3(RFC 8998) | ECC_SM4_CBC_SM3、ECDHE_SM4_CBC_SM3、ECC_SM4_GCM_SM3、ECDHE_SM4_GCM_SM3 |
| 握手往返 | 2-RTT | 1-RTT | 2-RTT |
抓包看到 ServerHello 中版本号为 0x0101、服务器发送了两张证书,这是 ___ 协议;数据加密使用的对称算法是 ___。
国密 TLCP(GB/T 38636);对称算法是 SM4。
2025 运维实操第 6 题:在 pcap 中找出“返回明文身份证号和手机号”的接口。前提是流量本身没有加密。
| 流量类型 | 能看到 | 看不到 |
|---|---|---|
| HTTP 明文 | URL、参数、请求头、Cookie/Token、响应内容,全部 | — |
| HTTPS(TLS 1.2 / TLCP) | IP、端口、SNI 域名、证书、数据长度和时间 | URL 路径、参数、内容 |
| HTTPS(TLS 1.3) | IP、端口、SNI 域名、长度和时间 | 证书也被加密 |
| IPSec ESP 隧道 | 外层 IP、ESP 序列号 | 内层 IP 和全部内容 |
http,或只看响应 http.response。身份证、idcard、mobile 等关键字,或直接用正则过滤:http.response and frame matches "1[3-9][0-9]{9}"? 后的参数。138****5678)不算明文泄露。数据传输安全的考点除了 TLS,还有 VPN、协议版本和弱套件。
| 技术 | 工作层次 | 要点 |
|---|---|---|
| IPSec VPN | 网络层 | AH(协议号 51,只认证不加密);ESP(协议号 50,加密+认证);IKE 协商使用 UDP 500/4500;传输模式与隧道模式 |
| SSL VPN | 传输层之上 | 基于 TLS/TLCP,客户端用浏览器或客户端软件接入 |
| SSH | 应用层 | 远程运维的加密通道;禁止 Telnet、FTP 等明文协议 |
| 常见错误配置 | 风险 | 整改 |
|---|---|---|
| 仍启用 SSLv3、TLS 1.0/1.1 | 存在已知协议漏洞 | 只开启 TLS 1.2/1.3 或 TLCP |
| 启用 RC4、3DES、NULL、EXPORT 套件 | 弱加密或不加密 | 只保留 AEAD 套件 |
| 客户端不校验证书 / 忽略证书错误 | 中间人攻击 | 严格校验证书链和域名 |
| 内网接口用 HTTP 明文 | 抓包即可获取敏感数据(真题第 6 题) | 内网同样加密;敏感字段再做脱敏 |
| 使用自签名证书且让用户“继续访问” | 用户习惯忽略告警 | 使用受信 CA 签发的证书 |
存储加密要回答两个问题:防谁(防偷硬盘?防 DBA?防应用被入侵?)以及密钥放在哪。
| 加密层次 | 示例 | 能防住 | 防不住 |
|---|---|---|---|
| 全盘 / 卷加密 | BitLocker、LUKS | 硬盘或服务器被盗 | 系统运行中被入侵 |
| 数据库透明加密(TDE) | SQL Server TDE、Oracle TDE | 数据文件、备份文件被拷走 | 有权限的数据库账户查询 |
| 应用层字段加密 | 证件号用 SM4 加密后入库 | DBA 和拖库者看到的是密文 | 应用本身被入侵、密钥泄露 |
| 文件 / 备份加密 | 备份包加密、压缩包加密 | 备份介质丢失 | 加密口令或密钥同处存放 |
| 存储完整性手段 | 说明 |
|---|---|
| SM3-HMAC / 签名 | 对重要数据(如审计日志、运单状态)计算 MAC 或签名,发现篡改 |
| 日志外送 | 日志实时发送到独立的日志服务器,防止入侵者在本机删除 |
| WORM 存储 | 一次写入、多次读取,备份不可被改写(防勒索) |
2025 运维实操第 2 题就是这一页的计算。
| 备份类型 | 备份什么 | 备份速度/空间 | 恢复需要 |
|---|---|---|---|
| 全量 | 全部数据 | 最慢、最大 | 最近一次全量 |
| 增量 | 自上一次任意备份以来的变化 | 最快、最小 | 全量 + 之后每一次增量(链条断一环就恢复不了) |
| 差异 | 自上一次全量以来的变化 | 居中,越往后越大 | 全量 + 最近一次差异 |
| 指标 | 含义 | 一句话 |
|---|---|---|
| RPO 恢复点目标 | 最多可容忍丢失多长时间的数据 | “回到哪个时间点”,由备份频率决定 |
| RTO 恢复时间目标 | 业务最长可中断多久 | “多久恢复”,由恢复速度、切换方案决定 |
RPO 为 1 小时;每小时产生核心数据 80 GB;每 30 分钟完成一次增量备份,每次增量数据量是上一次全量的 10%;某次全量为 400 GB。在符合 RPO 的情况下,单次增量备份最多可丢失的数据量为 ___ GB。
题干有干扰信息,先分清三个量:
“单次增量备份最多可丢失的数据量”问的是一个备份周期的暴露量,两种算法都得到 40,填 40;若按“RPO 容忍的最大丢失量”理解则为 80。答题时写清自己算的是哪个量。
备份是“有副本”,容灾是“出事后业务还能转起来”。
| GB/T 20988 灾难恢复能力等级 | 名称 | 直观理解 |
|---|---|---|
| 第 1 级 | 基本支持 | 有介质备份,存放在场外 |
| 第 2 级 | 备用场地支持 | 有备用机房可调配 |
| 第 3 级 | 电子传输和部分设备支持 | 定时通过网络把数据传到备用中心 |
| 第 4 级 | 电子传输及完整设备支持 | 备用中心设备齐全,可较快接管 |
| 第 5 级 | 实时数据传输及完整设备支持 | 数据实时复制,RPO 接近 0 |
| 第 6 级 | 数据零丢失和远程集群支持 | RPO = 0,RTO 分钟级,双活 |
某单位每天凌晨全量备份到同一台 NAS,NAS 映射为所有办公电脑的网络盘。存在什么问题?
备份和生产在同一可写网络位置,勒索病毒会顺着网络盘一起加密备份;且没有异地副本。应改为备份账户专用、备份存储对办公网只读或隔离,并保留离线/异地副本,定期做恢复演练。
先判断“这是不是个人信息、是不是敏感个人信息”,再决定保护强度。
| 概念 | 定义要点(《个人信息保护法》) |
|---|---|
| 个人信息 | 以电子或其他方式记录的、与已识别或可识别的自然人有关的各种信息(匿名化处理后的除外) |
| 敏感个人信息(第二十八条) | 一旦泄露或被非法使用,容易导致人格尊严受到侵害或人身、财产安全受到危害的信息:生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹,以及不满十四周岁未成年人的个人信息 |
| 去标识化(第七十三条) | 处理后在不借助额外信息的情况下无法识别特定自然人 |
| 匿名化(第七十三条) | 处理后无法识别特定自然人且不能复原;匿名化后的信息不再属于个人信息 |
| B 组行业中的典型数据 | 类别 |
|---|---|
| 旅客姓名 + 证件号 + 车次/航班 + 座位 | 个人信息;乘车/乘机记录属于行踪轨迹,为敏感个人信息 |
| 寄件人/收件人姓名、电话、地址 | 个人信息;大量汇聚后风险显著上升 |
| 人脸核验照片(进站、安检) | 生物识别信息,敏感个人信息 |
| 支付卡号、账户 | 金融账户,敏感个人信息 |
把旅客姓名替换为“旅客 A、旅客 B”,保留证件号后 4 位、车次和日期,这是匿名化吗?
不是,最多是去标识化。车次、日期、座位等组合信息结合其他数据仍可能识别到个人,且可能被复原。匿名化要求无法识别且不能复原。
“不规范数据”的判断依据通常就是这些格式规则。
| 数据 | 常用规则(正则) | 注意 |
|---|---|---|
| 手机号 | ^1[3-9]\d{9}$ | 11 位,以 1 开头,第二位 3~9 |
| 身份证号 | ^\d{17}[\dXx]$ + 日期 + 校验码 | 只看正则会把订单号误判为身份证号 |
| 银行卡号 | 16~19 位数字 + Luhn 校验 | Luhn 算法与身份证校验不同 |
| 邮箱 | ^[\w.-]+@[\w-]+(\.[\w-]+)+$ | — |
号码前 17 位为 11010519491231002,校验码是多少?
1×7+1×9+0×10+1×5+0×8+5×4+1×2+9×1+4×6+9×3+1×7+2×9+3×10+1×5+0×8+0×4+2×2 = 167;167 mod 11 = 2;对应校验码 X。完整号码 11010519491231002X(这是 GB 11643 标准文本中的示例号码)。
2025 综合防御第 13、14 题:找出不规范数据,按规范脱敏,导出 UTF-8&CRLF 的 CSV 并计算 MD5。
| 脱敏方法 | 做法 | 示例 | 可逆 |
|---|---|---|---|
| 掩码(遮盖) | 用 * 替换部分字符 | 138****5678;110105********002X | 否 |
| 替换 / 假名 | 用假名或随机值替换 | 王小明 → 王** / 用户 0731 | 看是否保留映射表 |
| 泛化 | 降低精度 | 1990-03-07 → 1990 年;具体地址 → 城市 | 否 |
| 截断 / 删除 | 去掉不必要字段 | 删除证件号列 | 否 |
| 哈希(加盐) | 用于关联但不暴露原值 | 证件号 → SM3(盐‖证件号) | 否(但无盐时可被枚举) |
| 加密 | 需要时可解密还原 | SM4 加密证件号 | 是(有密钥) |
| 静态脱敏 | 动态脱敏 | |
|---|---|---|
| 发生时间 | 导出/拷贝数据时一次性处理 | 查询时实时处理,库里仍是原值 |
| 典型场景 | 给测试、开发、第三方共享数据(真题第 14 题) | 客服、柜台按权限只看部分号码 |
certutil -hashfile a.csv MD5(Windows)或 md5sum a.csv。考纲用语:“数据全生命周期的安全管理与技术”。每个阶段都要能说出一两项措施。
| 阶段(GB/T 37988 DSMM) | 主要风险 | 典型措施 |
|---|---|---|
| 采集 | 超范围收集、未经同意 | 最小必要、告知同意、数据源鉴别 |
| 传输 | 明文传输被截获 | TLS/TLCP、VPN、敏感字段加密 |
| 存储 | 拖库、备份泄露 | 加密存储、访问控制、备份加密 |
| 处理(使用) | 越权访问、内部滥用 | 最小权限、动态脱敏、操作审计 |
| 交换(共享) | 向第三方提供后失控 | 静态脱敏、共享审批、合同约束、水印 |
| 销毁 | 删除后可恢复 | 多次覆写、消磁、物理粉碎;云上销毁密钥 |
| 数据分类分级(GB/T 43697-2024) | 说明 |
|---|---|
| 核心数据 | 关系国家安全、国民经济命脉等,实行最严格保护 |
| 重要数据 | 一旦遭到篡改、破坏、泄露可能直接危害国家安全、经济运行、社会稳定、公共健康和安全;需报送目录、定期风险评估 |
| 一般数据 | 核心、重要数据以外的数据,可再细分级别 |
把含旅客证件号的数据交给外包公司做系统测试,应在 ___ 阶段采用 ___ 脱敏。
交换(共享)阶段,采用静态脱敏,并签订保密协议、限定使用范围,测试结束后销毁。
数据库是敏感数据最集中的地方。配置题考的是“最小权限、默认账户、审计、加密”。
| 检查项 | MySQL | SQL Server(MSSQL) |
|---|---|---|
| 默认/高权限账户 | root 禁止远程登录;删除匿名用户 | sa 改名或禁用;应用不用 sa 连接 |
| 最小权限 | 应用账户只授予所需库表的权限 | 不授予 sysadmin;关闭 xp_cmdshell |
| 网络暴露 | bind-address 限定监听地址 | 1433 端口仅对应用服务器开放 |
| 传输加密 | require_secure_transport=ON | 强制加密(Force Encryption) |
| 审计 | 开启审计插件 / 日志 | SQL Server Audit;登录成功与失败审计 |
| 存储加密 | InnoDB 表空间加密 | TDE 透明数据加密 |
| 真题 | 数据安全视角 |
|---|---|
| 运维实操 4:SpringBoot 未授权访问 → 下载 heapdump → 得到 MySQL 明文密码 | 内存里保存着运行时配置。暴露诊断接口(/actuator/heapdump、/env)就等于暴露数据库口令。整改:关闭或鉴权 actuator 端点、数据库账户最小权限、口令由密钥管理服务下发。 |
| 综合防御 10:MSSQL 账户具备特殊权限,要求删除 | 数据库服务账户、登录账户权限过大(如 sysadmin 角色、操作系统层面的特权)是提权跳板,应按最小权限回收。 |
| 综合防御 12:开启“敏感权限使用”成功审计 | Windows 本地安全策略 → 审核策略 → 审核特权使用(高级策略中为“审核敏感权限使用”)勾选“成功”。审计是事后追溯的数据基础。 |
填空题偶尔直接考施行时间和标准号;综合题要能说出“依据什么”。
| 法律法规 | 施行时间 | 与本课相关的要点 |
|---|---|---|
| 《网络安全法》 | 2017-06-01 | 等级保护制度、关键信息基础设施保护、个人信息保护基本要求 |
| 《密码法》 | 2020-01-01 | 核心/普通/商用密码分类管理;关基使用商用密码并开展密评 |
| 《数据安全法》 | 2021-09-01 | 数据分类分级保护;重要数据目录;数据安全风险评估 |
| 《关键信息基础设施安全保护条例》 | 2021-09-01 | 交通运输是关基重点行业;运营者责任 |
| 《个人信息保护法》 | 2021-11-01 | 告知同意、最小必要;敏感个人信息单独同意;去标识化与匿名化定义 |
| 《网络数据安全管理条例》 | 2025-01-01 | 个人信息保护、重要数据安全、数据跨境的细化规定 |
| 标准号 | 名称 |
|---|---|
| GB/T 22239-2019 / 25070-2019 / 28448-2019 | 等保 2.0:基本要求 / 设计技术要求 / 测评要求 |
| GB/T 39786-2021 | 信息系统密码应用基本要求(密评依据) |
| GB/T 32918 / 32905 / 32907 | SM2 / SM3 / SM4 |
| GB/T 38636-2020 | 传输层密码协议(TLCP) |
| GB/T 35273-2020 | 个人信息安全规范 |
| GB/T 37964-2019 | 个人信息去标识化指南 |
| GB/T 37988-2019 | 数据安全能力成熟度模型(DSMM,生命周期六阶段) |
| GB/T 43697-2024 | 数据分类分级规则 |
| GB/T 20988-2007 | 信息系统灾难恢复规范(6 级) |
第三部分
赛前把这些工具装好、各跑一遍;下面按实验分组列出最常用的操作。
| 操作 | 说明 |
|---|---|
显示过滤 http | 只看 HTTP 请求和响应 |
| 统计 → HTTP → 请求 | 列出抓包里访问过的所有 URL |
| 编辑 → 查找分组 → 字符串 | 搜 身份证 / cert_no / mobile 定位敏感字段 |
| 正则过滤 | http.response and frame matches "1[3-9][0-9]{9}" |
| 右键 → 追踪流 → HTTP 流 | 把响应和它的请求对应起来,读出请求行里的路径 |
| 没有 Wireshark 时 | python3 pcap_summary.py api_traffic.pcap(随 L04 附件) |
| 命令 | 用途 |
|---|---|
openssl x509 -in a.crt -noout -text | 查看 PEM 证书全部字段 |
openssl x509 -in a.cer -inform DER -noout -text | 查看 DER 证书 |
openssl x509 -in a.crt -noout -fingerprint -sha256 | 算证书 SHA-256 指纹 |
openssl verify -CAfile root_ca.crt server.crt | 验证书链 |
certutil -hashfile a.csv MD5 / md5sum a.csv | Windows / Linux 下算文件 MD5 |
| 功能 | 场景 |
|---|---|
| From Base64 / Hex / Base32 | 逐层解码 |
| Magic | 自动识别编码并尝试解码 |
| ROT13 / Vigenère / Rail Fence | 古典密码 |
| 本讲义“工具箱”页 | 同样功能,断网可用 |
| 任务 | 要点 |
|---|---|
| SM2 验签(L02) | 用附件 gm.py 的 verify_e(e,r,s,pub) 遍历公钥找唯一匹配 |
| 脱敏导出(L05) | 先校验后脱敏;UTF-8 无 BOM、CRLF、末尾不留空行 |
| 算文件哈希 | hashlib.md5(open(f,"rb").read()).hexdigest() |
不占课堂时间,建议赛前按顺序自练。每个实验都有附件包,教师答案在 instructor/guide.html。
课堂带做 · 配套工具演示
对 10 个样本判断类型并还原明文,写出每条的判断依据。
完整题面见附件包中的 TASK.txt。
编号-类型-明文;判断依据一句话。
看字符集 → 看长度和结尾 → 选工具 → 每解一层重新识别。
Base64 结尾有 =,Base32 全大写且含 2–7;只有 0–9a–f 的偶数长度串先试 Hex。
维吉尼亚密钥 KEY;栅栏 2 栏;凯撒位移可用工具箱列出全部 25 种。
课堂带做 · 配套工具演示
判断签名 1~4 分别由哪个公钥签发;解释第 5 条(规范签名)为什么只有用 e 字段才能验过。
完整题面见附件包中的 TASK.txt。
1-x、2-x、3-x、4-x;第 5 条对应公钥及原因;e 的规范算法。
读 README → 拆分 r‖s 和 04‖x‖y → 运行 match.py → 每条签名只取 True 的那一列。
公钥验签就够了,不需要私钥。
1~4 号签名真正参与运算的是消息本身转成的整数,不是 e 字段。
课堂带做 · 配套工具演示
回答 server.crt 的颁发者、主题、SAN、有效期、算法、用途、指纹;解释 PEM/DER 区别、过期证书和 SM2 证书。
完整题面见附件包中的 TASK.txt。
8 个小问的答案。
双击证书或用 openssl x509 -text 查看 → 对照讲义第 08 章字段表逐项填写。
没有 openssl 时直接看 certs_text.txt。
指纹是对 DER 字节算的哈希,不在证书字段里。
课堂带做 · 配套工具演示
找出返回明文身份证号和手机号的接口路径、帧号和字段名;判断一个 18 位数字是否为身份证号。
完整题面见附件包中的 TASK.txt。
路径(不含参数)、帧号、字段名、判断依据、已整改版本路径。
Wireshark 过滤 http → 统计 HTTP 请求 → 搜索敏感字段 → 追踪流对应请求。
没有 Wireshark:python3 pcap_summary.py api_traffic.pcap
已带 **** 的字段不算明文泄露。
课堂带做 · 配套工具演示
按规则剔除不合规记录、脱敏并导出 CSV,计算 MD5。
完整题面见附件包中的 TASK.txt。
被剔除 id(下划线连接)、cleaned.csv 的 MD5。
先校验后脱敏 → 数值排序 → UTF-8 无 BOM + CRLF → 对文件字节求 MD5。
身份证要同时检查格式、日期、校验位;手机号第二位必须是 3~9。
mask_template.py 里有 3 处 TODO。
赛前 10 分钟看这一页。
| 要记的数 | 值 |
|---|---|
| SM2 私钥 / 公钥(含 04)/ 签名 r‖s | 32 / 65 / 64 字节 |
| SM2 密文长度(C1C3C2,含 04) | 明文 + 97 字节 |
| SM2 默认用户 ID | 1234567812345678(ENTL = 0x0080) |
| SM3 输出 / 分组 | 256 位(64 Hex)/ 512 位 |
| SM4 分组 / 密钥 / 轮数 | 128 位 / 128 位 / 32 轮 |
| MD5 / SHA-1 / SHA-256 Hex 长度 | 32 / 40 / 64 |
| Base64 长度 | \(4\left\lceil n/3 \right\rceil\) |
| 国密 OID 前缀 | 1.2.156.10197 |
| TLCP 版本号 | 0x0101,双证书 |
| 身份证校验权重 | 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 → 1 0 X 9 8 7 6 5 4 3 2 |
| 手机号正则 | ^1[3-9]\d{9}$ |
| 增量 / 差异恢复 | 全量 + 所有增量 / 全量 + 最后一次差异 |
| 容灾等级 | GB/T 20988,共 6 级,第 6 级 RPO = 0 |
知识点会了却丢分,多半是格式和口径问题。
| 习惯 | 说明 |
|---|---|
| 先看答案格式示例 | 题目给了“例:aaa,xxx.xxx.xxx.xxx”,逗号是英文还是中文、有没有空格,严格照抄 |
| 路径去参数 | URL 题通常要求不含 ? 后的参数 |
| 哈希统一小写 | MD5 一般要求 32 位小写;Windows certutil 输出可能带空格,要去掉 |
| 小数位 | 按题目要求保留,整数不写 .00 |
| 先确认口径 | 像 RPO 题,写下“我算的是哪个量”再填 |
| 留存证据 | 记下帧号、行号、文件名,复核时能快速回到原处 |
| 离线工具提前装好 | Wireshark、CyberChef 离线版、Python(含 gmssl 等库的离线安装包)、OpenSSL/GmSSL、Notepad++/VS Code(看换行和编码) |
链接需联网打开;讲义、例题和实验本身不需要联网。
用户提供,source/2025决赛指南.pdf
用户提供,source/ 目录
全国标准信息公共服务平台 https://std.samr.gov.cn/
同上
国家密码管理局 http://www.oscca.gov.cn/
全国标准信息公共服务平台
同上
同上
同上
同上
同上
同上
https://www.rfc-editor.org/rfc/rfc8446 · https://www.rfc-editor.org/rfc/rfc8998
国家法律法规数据库 https://flk.npc.gov.cn/
本讲义中的例题、实验数据和答案均为教学构造,2025 真题部分的解析是基于题面的思路讲解,不代表官方答案。各标准以现行有效版本为准。