2026“经纬杯”交通运输网络安全大赛 · 决赛 B 组团队赛

密码安全
与数据安全

概念讲解 · 真题对照 · 配套练习与工具

← → 切换章节 ↑ ↓ 章节内翻页 Esc 总览 S 讲者备注 F 全屏

目录

课程结构

三段式;横向切换章节,纵向翻页。带 ★ 的主题与 2025 决赛真题直接对应。

课程导览 · 概念讲解

密码安全与数据安全

面向 2026“经纬杯”决赛 B 组团队赛选手 · 以概念讲解为主、例题为辅

编码 · 古典密码 · 哈希与口令 · 对称密码 · SM2 与签名 · 国密产品
数字证书 · 电子签章 · 传输安全 · 备份容灾 · 敏感数据与脱敏 · 法规标准

本讲义依据《2025 年交通运输网络安全大赛决赛指南》中“密码安全”“数据安全”两部分考纲,以及 2025 决赛真题整理。讲解以“这个概念是什么、在题目里长什么样、容易错在哪”为主线,主要知识点配有小例题;5 个配套实验放在第三部分,结合工具现场带做。

12知识章节
22课堂例题
5可选实验
45·45·60三段分钟
听完这次课,应能做到
  1. 一眼区分编码、哈希、加密、签名
  2. 说清 SM2/SM3/SM4 各自的参数和用途
  3. 读懂一张证书的关键字段
  4. 算对 RPO、备份恢复类题目
  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
记住
练习部分安排在最后集中进行;每个实验开头用 1~2 分钟回顾对应知识点,再演示工具怎么用。请各队提前装好 Wireshark、Python、OpenSSL。

若练习只给 45 分钟:L01 改为课后自练,课上集中讲 L02、L04、L05 三道与真题直接对应的题。

真题与考纲 · 概念讲解

考纲里“密码安全”“数据安全”写了什么

以下原文摘自《2025 年交通运输网络安全大赛决赛指南》。2026 年指南如有更新,以官方公众号发布为准。

赛段密码安全数据安全
运维实操题(填空,占团队赛 40%)古典密码;国产密码算法 SM2、SM3、SM4 等相关加解密、签名验签实现原理;密码产品、设备接口规范等数字证书、电子签章分析,密码通信协议分析等,数据存储安全、数据传输安全等
附加竞速赛(前 40 名,闯关 10 题,1 小时)古典密码与现代密码算法分析、国密算法应用、加密协议安全、密钥管理与攻击等密码应用安全要点敏感数据识别与防护、数据库安全配置、数据泄露检测与响应等数据全生命周期的安全管理与技术
综合防御题(靶场,占团队赛 60%)未单列;真题中出现勒索病毒密钥提取依据等保 2.0 三个标准;真题中出现个人信息规范、数据脱敏、敏感权限审计
记住
运维实操是填空题:答案通常是一个值(路径、IP、编号、哈希、数值)。概念不清会直接导致“格式对、内容错”。

2026 年已知信息

  • 决赛 2026 年 11 月 15—16 日,北京航空航天大学沙河校区;B 组为铁路、民航、邮政领域。
  • 现场断网,禁止使用任何 AI 模型及插件;每人限带 1 台笔记本,团队可带 1 个 U 盘。
  • 协办单位含密码厂商,国密算法与密码产品相关内容值得重视。
  • 2025 年官方报道:题库“30 余个子题库、3000 余题”,“安全运维和应急处置需要什么,就考核什么”。

来源:2025 决赛指南;交通通信信息中心 2026 决赛通知

真题与考纲 · 真题解析

2025 决赛真题中与本课相关的题

8 道运维实操题中有 5 道、综合防御 20 个检查点中有 6 个与密码或数据安全直接相关。

真题分值考的是什么本讲义位置
运维实操 7:SM2 签名“直接对数据签名而非杂凑值”,判断 4 条签名各用哪个公钥8SM2 签名/验签流程、e 的来源、ZA、r‖s 格式06 章 · L02
运维实操 2:RPO 1 小时、每 30 分钟增量备份,求单次增量最多可丢失的数据量3RPO/RTO、全量/增量备份10 章
运维实操 6:pcap 中找返回明文身份证号和手机号的接口 URL5明文传输、敏感数据识别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 签名
记住
编码不是加密:Base64 谁都能解,不提供任何保密性。哈希不能“解密”:所谓“MD5 解密”其实是查表或猜测原文。
例题判断对错
  1. 把数据库密码 Base64 后写进配置文件,就算“加密存储”了。
  2. 用 SM3 对文件算指纹,可以证明文件是谁发出的。
  3. SM2 签名后,消息内容就被隐藏了。
查看解析
  1. 错。Base64 是编码,任何人都能还原,等同明文存储。
  2. 错。哈希不需要密钥,任何人都能对改过的文件重新算一个;证明“谁发出的”需要数字签名或 HMAC。
  3. 错。签名不加密,消息仍是明文;需要保密要另外加密。
密码学基础 · 概念讲解

密码技术保护的四个安全属性

密评和等保里反复出现的就是这四个词,答题时要能对应到具体技术。

安全属性含义典型技术交通行业场景
机密性未授权者看不到内容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 双方共享密钥,接收方也能伪造,无法实现不可否认。

密码学基础 · 概念讲解

密钥才是秘密,算法应该公开

柯克霍夫原则:系统的安全只应依赖密钥的保密,而不是算法的保密。

  • SM2、SM3、SM4、AES 都是公开算法,安全性来自密钥长度和数学难题。
  • “自己发明一个加密算法”或“算法保密”通常是弱点,而不是优点。
  • 因此,密钥管理才是密码应用的核心:生成、存储、分发、使用、更新、归档、销毁,每一步都可能出问题。
密钥管理环节常见问题(也是常见考点)
生成用时间戳、固定种子生成密钥;随机数不够随机
存储密钥硬编码在代码/配置里;和密文放在同一台机器;明文写在日志里
分发通过邮件、即时通讯发送密钥;未加密传输
使用一把密钥既签名又加密;所有设备共用同一密钥
更新与销毁密钥长期不换;人员离职后不撤销证书;硬盘报废未销毁密钥
记住
勒索病毒、硬编码密钥、heapdump 泄露密码——本质都是密钥或口令没有被保护好,而不是算法被破解。
编码与古典密码 · 概念讲解

看字符集识别编码

识别编码的关键是:字符集 + 长度规律 + 结尾特征。

编码字符集长度/特征示例(原文 Rail)
Base64A–Z a–z 0–9 + /长度是 4 的倍数,结尾可能有 = 或 ==UmFpbA==
Base64URL把 + / 换成 - _常见于 JWT、URL 参数,常省略 =UmFpbA
Base32A–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;网页源码里常见密
摩斯. - 和分隔符字母间空格或 /.-. .- .. .-..
记住
Base64 长度公式:n 字节编码后为 \(4\left\lceil n/3 \right\rceil\) 个字符。例如 16 字节 → 24 字符(结尾 ==);32 字节 → 44 字符(结尾 =)。
例题口算

一个 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 形格的符号图片题,对照表即可
\[ C = (P + k) \bmod 26, \qquad P = (C - k) \bmod 26 \] \[ C_i = \bigl(P_i + K_{\,i \bmod |K|}\bigr) \bmod 26 \quad\text{(维吉尼亚)} \]
例题凯撒

密文 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)。

编码与古典密码 · 工具箱

编码与古典密码工具箱

粘贴密文,先判断类型,再逐层解码;多层编码很常见。

编码 / 古典密码工具箱

易错
多层编码很常见:Base64 解出来还是 Base64、Hex 解出来是 Base64……每解一层都重新识别一次。CyberChef 的 Magic 功能可以自动尝试。
哈希与口令 · 概念讲解

哈希:固定长度的“数据指纹”

三个性质:单向(不能反推)、抗碰撞(找不到两个输入同指纹)、雪崩(改 1 位,指纹面目全非)。

算法输出位数Hex 长度安全现状admin 的哈希(前 16 位)
MD512832已可构造碰撞,不能用于签名/证书21232f297a57a5a7…
SHA-116040已有实际碰撞(2017),逐步淘汰d033e22ae348aeb5…
SHA-25625664安全8c6976e5b5410415…
SM3(国密)25664安全,对标 SHA-256,GB/T 32905dc1fd00e3eeeb940…
SHA-512512128安全—
记住
SM3 和 SHA-256 输出长度相同(64 个 Hex 字符),仅凭长度分不出来,需要已知原文重新计算比对。SM3 分组长度 512 位,迭代结构与 SHA-256 类似(Merkle–Damgård)。
例题识别

某字段值为 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)推荐自带盐和可调“成本”,每次计算故意变慢

盐(salt)的作用

  • 每个用户一个随机盐,与哈希值一起存储,盐本身不需要保密。
  • 两个用户用同一口令,因盐不同,存储的哈希也不同。
  • Linux /etc/shadow 的格式 $6$盐$哈希 中,$6$ 表示 SHA-512-crypt,$y$ 表示 yescrypt。
口令策略(等保常见要求)说明
复杂度长度不少于 8 位,包含大小写字母、数字、特殊字符中的多类
定期更换且不得与历史口令相同或相似只改年份或末尾数字的“换汤不换药”应被策略禁止
登录失败处理连续失败锁定、超时自动退出
默认口令设备、数据库、中间件上线前必须修改默认口令
双因素重要系统采用口令 + 数字证书/USBKey 等两种以上鉴别方式(密评中的“身份鉴别”)
记住
口令被猜中,说明的是口令可预测,不是加密算法被攻破。加固措施在口令策略和存储方式上。
对称密码 · 概念讲解

分组密码:SM4、AES、DES 的参数

对称加密用同一把密钥加密和解密,速度快,适合大量数据。

算法分组长度密钥长度轮数备注
DES64 位56 位有效(64 位含校验)16已不安全
3DES64 位112/168 位48逐步淘汰
AES128 位128 / 192 / 256 位10 / 12 / 14国际主流
SM4128 位128 位32国密,GB/T 32907,原用于无线局域网
SM1128 位128 位—算法不公开,只以芯片形式提供
ZUC(祖冲之)序列密码128 位—4G 的 128-EEA3/EIA3,GB/T 33133
记住
SM4:分组 128 位(16 字节)、密钥 128 位(16 字节)、32 轮。所以 SM4 密钥写成 Hex 正好 32 个字符。

标准测试向量(可用来验证工具是否正确)

密钥 = 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。

对称密码 · 概念讲解

工作模式:ECB 为什么不安全

分组密码一次只能加密 16 字节,工作模式决定多个分组如何串起来。

模式需要 IV需要填充特点
ECB 电码本否是相同明文块 → 相同密文块,会暴露数据规律,不推荐
CBC 密码分组链接是(随机、不可预测)是每块先与上一块密文异或;IV 重复会泄露信息
CTR 计数器是(计数器/nonce,不能重复)否变成序列密码用法,可并行
GCM是(nonce 不能重复)否加密 + 认证(AEAD),TLS 1.3 首选

动手看一下:两个相同的 16 字节明文块

明文 = "PARCEL-1024-OK!!PARCEL-1024-OK!!"   (两块完全相同)
密钥 = 0123456789abcdeffedcba9876543210

SM4-ECB 密文:d02e3c7bc0fb2b058903f199867b0535  d02e3c7bc0fb2b058903f199867b0535   ← 两块一样
SM4-CBC 密文:86ad5afa29b621679bb2a726c2a1dc5a  4fc62ede0bb709cad5470f70d2020cd9   ← 两块不同
(CBC 的 IV = 000102030405060708090a0b0c0d0e0f)
易错
加密 ≠ 防篡改。CBC/CTR 只保证机密性;需要完整性时用 GCM,或“先加密再算 HMAC”。
例题判断

某票务系统把每个旅客证件号用 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 的倍数

从防守视角看这道题考什么

  • 密钥形态识别:看到一个字符串,能判断它是不是密钥、对应多少位。
  • 硬编码密钥的危害:密钥和程序放在一起,拿到样本就等于拿到密钥,这正是可恢复数据的机会。
  • 持久化与清理:第 6 题要求删除勒索程序的持久化配置项(计划任务、启动项、服务、注册表 Run 键),属于应急响应。
记住
对称加密的安全全部押在密钥上:密钥泄露 = 加密失效。规范做法是密钥由密码设备或密钥管理系统生成和保管,不写在代码、配置和日志里。
公钥密码与 SM2 · 概念讲解

公钥密码:用一个能手算的 RSA 例子理解

公钥公开、私钥自己保管;用对方公钥加密,用自己私钥签名。

RSA 密钥生成

\[ \begin{aligned} p &= 61,\quad q = 53\\ n &= p\,q = 3233\\ \varphi(n) &= (p-1)(q-1) = 3120\\ e &= 17,\quad \gcd\bigl(e,\varphi(n)\bigr) = 1\\ d &\equiv e^{-1} \pmod{\varphi(n)} = 2753 \end{aligned} \]

公钥 \((n,e) = (3233, 17)\),私钥 \(d = 2753\)

加密与签名

\[ \begin{aligned} \text{加密:}\; c &= m^{e} \bmod n = 65^{17} \bmod 3233 = 2790\\ \text{解密:}\; m &= c^{d} \bmod n = 2790^{2753} \bmod 3233 = 65\\ \text{签名:}\; s &= m^{d} \bmod n = 65^{2753} \bmod 3233 = 588\\ \text{验签:}\; s^{e} &\bmod n = 588^{17} \bmod 3233 = 65 \;\checkmark \end{aligned} \]
加密签名
用谁的哪把钥匙接收方的公钥加密发送方的私钥签名
谁能完成逆操作只有接收方私钥能解任何人都能用发送方公钥验
目的机密性真实性、完整性、不可否认
记住
RSA 的安全依赖“大数分解很难”。实际 n 至少 2048 位;本例只为理解流程。ECC/SM2 依赖“椭圆曲线离散对数难题”,256 位 SM2 的强度约相当于 3072 位 RSA。
例题选择

A 要给 B 发一份加密且能证明来源的文件,下列做法正确的是?
A. 用 A 的公钥加密,用 B 的私钥签名
B. 用 B 的公钥加密,用 A 的私钥签名
C. 用 B 的私钥加密,用 A 的公钥签名

查看解析

B。加密用接收方公钥(只有 B 能解);签名用发送方私钥(只有 A 能签,任何人可用 A 的公钥验)。

公钥密码与 SM2 · 概念讲解

SM2 的基本参数和数据长度

SM2 是基于椭圆曲线的国密公钥算法(GB/T 32918),一个算法包含签名、密钥交换、加密三种用途。

数据长度形态 / 说明
私钥 d32 字节(256 位)一个 1 到 n−2 之间的随机整数
公钥 P = [d]G64 字节(x‖y)常带前缀 04 表示未压缩,共 65 字节 = 130 个 Hex 字符
签名值 (r, s)64 字节(r‖s 各 32 字节)也常见 DER 编码(约 70~72 字节,以 30 开头)
加密密文明文长度 + 97 字节C1(65 字节曲线点)+ C3(32 字节 SM3 值)+ C2(与明文等长)
用户标识 ID默认 123456781234567816 字节,GM/T 0009 规定的默认值
易错
密文顺序:新标准为 C1‖C3‖C2,部分旧实现为 C1‖C2‖C3;有的实现去掉 C1 前的 04(则为明文 + 96 字节)。解不出来时先检查顺序和前缀。
GB/T 32918 各部分内容
第 1 部分总则
第 2 部分数字签名算法
第 3 部分密钥交换协议
第 4 部分公钥加密算法
第 5 部分参数定义(推荐曲线 sm2p256v1)
例题口算

用 SM2 加密一个 16 字节的 SM4 会话密钥,按 C1C3C2 格式(含 04),密文多少字节?

查看解析

65 + 32 + 16 = 113 字节。这就是“数字信封”:用 SM2 加密 SM4 密钥,再用 SM4 加密大量数据。

公钥密码与 SM2 · 概念讲解

★ SM2 签名:e 是怎么来的

SM2 签名不是直接对消息签名,而是对 e = SM3(ZA ‖ M) 签名。ZA 把签名者身份和公钥绑定进来。

第一步:计算 ZA(签名者“身份摘要”)

\[ Z_A = \mathrm{SM3}\bigl(\mathrm{ENTL}_A \,\|\, \mathrm{ID}_A \,\|\, a \,\|\, b \,\|\, x_G \,\|\, y_G \,\|\, x_A \,\|\, y_A\bigr) \]

\(\mathrm{ENTL}_A\) 是 ID 的位长(2 字节,默认 ID 16 字节 → \(128 = \texttt{0x0080}\));\(a, b\) 是曲线参数;\((x_G, y_G)\) 是基点;\((x_A, y_A)\) 是签名者公钥。

第二步:签名(只有私钥 \(d_A\) 的人能做)

\[ \begin{aligned} e &= \mathrm{SM3}(Z_A \,\|\, M)\\ (x_1, y_1) &= [k]\,G, \qquad k \in [1, n-1] \text{ 随机}\\ r &= (e + x_1) \bmod n\\ s &= (1 + d_A)^{-1}\,(k - r\,d_A) \bmod n \end{aligned} \]

签名值为 \((r, s)\),各 32 字节

第三步:验签(只需公钥 \(P_A\))

\[ \begin{aligned} e' &= \mathrm{SM3}(Z_A \,\|\, M')\\ t &= (r' + s') \bmod n, \qquad t \neq 0\\ (x_1', y_1') &= [s']\,G + [t]\,P_A\\ R &= (e' + x_1') \bmod n \;\overset{?}{=}\; r' \end{aligned} \]
记住
验签时的 e 必须和签名时的 e 用同样的方法算出来。2025 真题第 7 题中,开发者“直接对数据本身签名而非杂凑值”——签名时用的是消息本身,那么验签时也必须用消息本身作为 e 才能验过,用正确的 SM3(ZA‖M) 反而验不过。
公钥密码与 SM2 · 真题解析

★ 真题第 7 题怎么想

题干:M 为字符串、e 为消息杂凑值、r+s 为签名值;签名时直接对数据本身签名。问序号 1~4 的签名分别用哪个公钥签的。

读懂数据格式确定实际参与签名的 e每条签名 × 每个公钥逐一验签只有一个公钥返回 True
题干里的词正确理解
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 次验签,每条签名只会有一个公钥通过。

易错
常见错误:①把 r+s 当成一个数;②直接用 e 字段验签,全部失败就以为题目错了;③用 gmssl 等库的高层 verify 函数,它会自动加 ZA 和 SM3,与这道题的缺陷实现对不上,需要调用“对 e 直接验签”的底层函数。
公钥密码与 SM2 · 概念讲解

SM2 / ECC 的常见误用

这些都是“算法没问题、用法有问题”,也是附加赛“密码应用安全”的高频方向。

误用后果正确做法
签名不做 SM3(ZA‖M) 预处理与标准实现不兼容,验签失败或被利用按 GM/T 0009 计算 ZA,使用标准接口
签名随机数 k 重复使用两条签名即可解出私钥(与 ECDSA 相同)k 必须每次随机且保密
k 可预测(时间戳、固定种子)同样可推出私钥使用合格的随机数发生器(密码设备)
一个密钥对既签名又加密违反密钥用途分离签名密钥对与加密密钥对分开(双证书)
只验签名、不验证书攻击者用自己的密钥对签名也能“验过”先验证公钥证书的有效性和信任链
私钥以文件形式放在服务器服务器被控即私钥泄露私钥保存在密码机/USBKey 中,不出设备
例题简答

为什么说“验签通过”不等于“这条消息是张三签的”?

查看解析

验签只证明“签名与这个公钥匹配”。还要确认这个公钥确实属于张三——这就需要 CA 签发的数字证书把身份和公钥绑定(第 08 章)。

国密体系与密码产品 · 概念讲解

国密算法总表

考试最常考:类型、长度、对标的国际算法、标准号。

算法类型关键参数对标标准
SM1对称分组分组/密钥 128 位,算法不公开—仅以芯片形式提供
SM2椭圆曲线公钥256 位;签名、密钥交换、加密RSA / ECDSA / ECDHGB/T 32918
SM3杂凑输出 256 位,分组 512 位SHA-256GB/T 32905
SM4对称分组分组 128 位,密钥 128 位,32 轮AES-128GB/T 32907
SM7对称分组算法不公开—非接触式 IC 卡(门禁、一卡通等)
SM9标识密码(IBC)用身份标识(如邮箱、手机号)直接作公钥IBE/IBSGB/T 38635
ZUC 祖冲之序列密码密钥 128 位4G LTE 的 EEA3/EIA3GB/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
记住
国密 OID 以 1.2.156.10197 开头(156 是中国的国家代码)。证书里看到这个前缀,就是国密证书。
例题填空

① 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 与 SKF

两套最常见的国密设备接口。不需要背函数,但要知道“谁对应谁”和调用顺序。

SDF(GM/T 0018)· 服务器密码机

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       关闭设备

SKF(GM/T 0016)· 智能密码钥匙

设备 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 加密存储;电子客票签名

管理层面还包括:管理制度、人员管理、建设运行、应急处置。

第二部分

数据安全知识点

证书与电子签章 · 概念讲解

为什么需要数字证书和 PKI

公钥本身只是一串数字。证书由可信的 CA 签名,证明“这个公钥属于这个主体”。

PKI 组成作用
CA 认证机构用自己的私钥给用户证书签名;根 CA → 中间 CA → 用户证书
RA 注册机构核验申请者身份,审核通过后交 CA 签发
证书库 / 目录服务发布证书,供他人下载公钥
CRL 证书吊销列表CA 定期发布的“作废证书序列号清单”
OCSP 在线证书状态协议实时查询某张证书是否被吊销
KMC 密钥管理中心国密体系中生成、托管加密密钥对

证书链验证:浏览器/客户端实际做了什么

服务器证书用中间 CA 公钥验它的签名用根 CA 公钥验中间 CA根 CA 在本地信任列表中

同时还要检查:当前时间在有效期内;证书没有被吊销;证书里的域名(SAN)与访问的域名一致;密钥用途允许当前操作。

例题判断

浏览器访问 https://ticket.demo-rail.test 时提示“证书不受信任”,可能的原因有哪些?

查看解析

① 证书是自签名或由不在信任列表中的 CA 签发;② 服务器没有发送中间 CA 证书,链不完整;③ 证书已过期或尚未生效;④ 证书已被吊销;⑤ 证书 SAN 中没有 ticket.demo-rail.test;⑥ 本机时间错误。

证书与电子签章 · 概念讲解

X.509 证书字段逐项看

题目常问:颁发者、使用者、有效期、序列号、公钥算法、签名算法、指纹、密钥用途。

字段含义示例(L03 server.crt)
Version 版本现行为 v3(显示为 3 (0x2))3
Serial Number 序列号CA 内唯一;吊销列表按序列号列出0x2a3b4c
Signature Algorithm 签名算法CA 签这张证书所用的算法sha256WithRSAEncryption;国密为 SM2-with-SM3
Issuer 颁发者签发它的 CACN = 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
易错
指纹(Fingerprint)不是证书里的字段,而是对整张证书 DER 字节计算的哈希(SHA-1 或 SHA-256),工具显示时临时算出。同一张证书 PEM 和 DER 两种文件格式,指纹相同。
证书与电子签章 · 概念讲解

证书文件格式与国密双证书

文件后缀经常“名不副实”,以内容为准。

格式内容识别常见后缀
PEMBase64 文本以 -----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 生成并托管,以数字信封形式下发到用户设备
用途身份认证、数字签名加密、密钥交换
为何分开签名私钥不能有备份,否则失去不可否认性加密私钥必须可恢复,否则丢失后数据永远解不开
记住
PFX 文件里有私钥,泄露 PFX 等于泄露身份;在应急响应中发现服务器上散落的 .pfx/.key 文件,要评估影响并吊销重签。
证书与电子签章 · 概念讲解

电子签章:盖在电子文件上的“公章”

电子签章 = 印章图像 + 数字签名 + 签章人证书 +(可选)时间戳。看得见的是图像,起作用的是签名。

组成作用
电子印章数据印章图像、印章编码、制章者对印章的签名(证明这枚章是合法制作的)
签章人数字证书证明是谁盖的章
对文档摘要的签名证明文档盖章后未被修改
时间戳证明盖章发生在某个时间点之前,证书过期后仍可判断当时是否有效

验证一份电子签章文件

重算文档摘要验签章签名验签章人证书链与吊销状态验印章本身的制章签名验时间戳
规范 / 法律要点
GB/T 38540-2020(源自 GM/T 0031)安全电子签章密码技术规范,规定印章和签章的数据格式及验证流程
《电子签名法》第十三条可靠电子签名需同时满足:签名制作数据专有、签署时仅由签名人控制、签名被改动能被发现、数据电文内容和形式被改动能被发现
时间戳 RFC 3161 / GM/T 0033可信时间戳的格式和接口
易错
把印章图片复制粘贴到另一份 PDF 上,图像一模一样,但没有对新文档的有效签名——验章时会失败。不要用“看起来有章”来判断签章有效。
例题简答

一份电子合同的签章人证书已在今天过期,合同是半年前签的。签章还有效吗?依据什么判断?

查看解析

如果签章带有可信时间戳,且时间戳显示签署时证书在有效期内、未被吊销,则签章仍有效。没有时间戳时,无法可靠证明签署时间,判断会有争议。

传输安全 · 概念讲解

TLS 与国密 TLCP:握手在做什么

握手的目的:确认对方身份(证书)+ 协商出一把只有双方知道的会话密钥。

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.2TLS 1.3TLCP(国密 SSL)
标准RFC 5246RFC 8446GB/T 38636-2020(源自 GM/T 0024)
协议版本号0x03030x03040x0101
证书一张,明文传输一张,加密传输两张:签名证书 + 加密证书
典型套件ECDHE-RSA-AES128-GCM-SHA256TLS_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-RTT1-RTT2-RTT
记住
套件名的读法:密钥交换_对称算法_模式_杂凑。ECC_SM4_CBC_SM3 = 用 SM2 加密证书交换密钥、SM4-CBC 加密数据、SM3 做完整性校验。
例题填空

抓包看到 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 和全部内容

在 Wireshark 中定位敏感数据接口

  1. 显示过滤器输入 http,或只看响应 http.response。
  2. “统计 → HTTP → 请求”列出所有访问过的 URL。
  3. “编辑 → 查找分组 → 字符串 → 分组字节”搜索 身份证、idcard、mobile 等关键字,或直接用正则过滤:
    http.response and frame matches "1[3-9][0-9]{9}"
  4. 右键 → 追踪流 → HTTP 流,把响应和它的请求对应起来,读出请求行里的路径。
  5. 答题时去掉 ? 后的参数。
易错
18 位数字不一定是身份证号(订单号、运单号也可能是 18 位),11 位数字也不一定是手机号。要用格式规则和校验位判断(第 11 章)。已经脱敏的字段(如 138****5678)不算明文泄露。
传输安全 · 概念讲解

传输安全的其他手段:VPN 与常见错误配置

数据传输安全的考点除了 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 存储一次写入、多次读取,备份不可被改写(防勒索)
存储与备份 · 概念讲解

★ 备份类型与 RPO / RTO

2025 运维实操第 2 题就是这一页的计算。

备份类型备份什么备份速度/空间恢复需要
全量全部数据最慢、最大最近一次全量
增量自上一次任意备份以来的变化最快、最小全量 + 之后每一次增量(链条断一环就恢复不了)
差异自上一次全量以来的变化居中,越往后越大全量 + 最近一次差异
指标含义一句话
RPO 恢复点目标最多可容忍丢失多长时间的数据“回到哪个时间点”,由备份频率决定
RTO 恢复时间目标业务最长可中断多久“多久恢复”,由恢复速度、切换方案决定

计算器:恢复点距故障多久,会丢多少数据

例题★ 2025 真题第 2 题

RPO 为 1 小时;每小时产生核心数据 80 GB;每 30 分钟完成一次增量备份,每次增量数据量是上一次全量的 10%;某次全量为 400 GB。在符合 RPO 的情况下,单次增量备份最多可丢失的数据量为 ___ GB。

查看解析

题干有干扰信息,先分清三个量:

  • 一次增量的大小:400 × 10% = 40 GB;
  • 两次备份间隔内产生的数据:80 GB/h × 0.5 h = 40 GB(即一次增量没做成时最多丢的量);
  • RPO 允许的上限:80 GB/h × 1 h = 80 GB。

“单次增量备份最多可丢失的数据量”问的是一个备份周期的暴露量,两种算法都得到 40,填 40;若按“RPO 容忍的最大丢失量”理解则为 80。答题时写清自己算的是哪个量。

存储与备份 · 概念讲解

容灾等级与 3-2-1 原则

备份是“有副本”,容灾是“出事后业务还能转起来”。

GB/T 20988 灾难恢复能力等级名称直观理解
第 1 级基本支持有介质备份,存放在场外
第 2 级备用场地支持有备用机房可调配
第 3 级电子传输和部分设备支持定时通过网络把数据传到备用中心
第 4 级电子传输及完整设备支持备用中心设备齐全,可较快接管
第 5 级实时数据传输及完整设备支持数据实时复制,RPO 接近 0
第 6 级数据零丢失和远程集群支持RPO = 0,RTO 分钟级,双活
记住
3-2-1 原则:至少 3 份数据副本,存放在 2 种不同介质上,其中 1 份异地(离线)。防勒索还要求至少一份备份离线或不可改写,否则会和生产数据一起被加密。
例题判断

某单位每天凌晨全量备份到同一台 NAS,NAS 映射为所有办公电脑的网络盘。存在什么问题?

查看解析

备份和生产在同一可写网络位置,勒索病毒会顺着网络盘一起加密备份;且没有异地副本。应改为备份账户专用、备份存储对办公网只读或隔离,并保留离线/异地副本,定期做恢复演练。

敏感数据与脱敏 · 概念讲解

什么是个人信息、敏感个人信息

先判断“这是不是个人信息、是不是敏感个人信息”,再决定保护强度。

概念定义要点(《个人信息保护法》)
个人信息以电子或其他方式记录的、与已识别或可识别的自然人有关的各种信息(匿名化处理后的除外)
敏感个人信息(第二十八条)一旦泄露或被非法使用,容易导致人格尊严受到侵害或人身、财产安全受到危害的信息:生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹,以及不满十四周岁未成年人的个人信息
去标识化(第七十三条)处理后在不借助额外信息的情况下无法识别特定自然人
匿名化(第七十三条)处理后无法识别特定自然人且不能复原;匿名化后的信息不再属于个人信息
B 组行业中的典型数据类别
旅客姓名 + 证件号 + 车次/航班 + 座位个人信息;乘车/乘机记录属于行踪轨迹,为敏感个人信息
寄件人/收件人姓名、电话、地址个人信息;大量汇聚后风险显著上升
人脸核验照片(进站、安检)生物识别信息,敏感个人信息
支付卡号、账户金融账户,敏感个人信息
例题判断

把旅客姓名替换为“旅客 A、旅客 B”,保留证件号后 4 位、车次和日期,这是匿名化吗?

查看解析

不是,最多是去标识化。车次、日期、座位等组合信息结合其他数据仍可能识别到个人,且可能被复原。匿名化要求无法识别且不能复原。

敏感数据与脱敏 · 概念讲解

身份证号和手机号:用规则判断真假

“不规范数据”的判断依据通常就是这些格式规则。

18 位居民身份证号(GB 11643)

11010519491231002X
  • 第 1~6 位:地址码(省市县);第 7~14 位:出生日期 YYYYMMDD,必须是真实存在的日期;
  • 第 15~17 位:顺序码,第 17 位奇数为男、偶数为女;第 18 位:校验码,0~9 或 X。
\[ S = \sum_{i=1}^{17} a_i \, W_i, \qquad W = (7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2) \] \[ S \bmod 11 = 0,1,2,\dots,10 \;\Longrightarrow\; \text{校验码} = 1,0,\mathrm{X},9,8,7,6,5,4,3,2 \]

校验器(本地运行)

数据常用规则(正则)注意
手机号^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 题)客服、柜台按权限只看部分号码

真题第 14 题的“隐藏陷阱”

  1. 先校验、后脱敏:脱敏后号码被遮住,就无法再判断它是否合规。
  2. 排序:按编号数值升序,字符串排序会把 100 排在 20 前面。
  3. 编码:UTF-8 不带 BOM(Excel 另存为“CSV UTF-8”会加 BOM)。
  4. 换行:CRLF(\r\n),Linux 工具默认是 LF。
  5. 结尾:去掉尾部多余空行。
  6. 哈希:对最终文件字节计算 MD5:certutil -hashfile a.csv MD5(Windows)或 md5sum a.csv。
数据库与生命周期 · 概念讲解

数据全生命周期与分类分级

考纲用语:“数据全生命周期的安全管理与技术”。每个阶段都要能说出一两项措施。

阶段(GB/T 37988 DSMM)主要风险典型措施
采集超范围收集、未经同意最小必要、告知同意、数据源鉴别
传输明文传输被截获TLS/TLCP、VPN、敏感字段加密
存储拖库、备份泄露加密存储、访问控制、备份加密
处理(使用)越权访问、内部滥用最小权限、动态脱敏、操作审计
交换(共享)向第三方提供后失控静态脱敏、共享审批、合同约束、水印
销毁删除后可恢复多次覆写、消磁、物理粉碎;云上销毁密钥
数据分类分级(GB/T 43697-2024)说明
核心数据关系国家安全、国民经济命脉等,实行最严格保护
重要数据一旦遭到篡改、破坏、泄露可能直接危害国家安全、经济运行、社会稳定、公共健康和安全;需报送目录、定期风险评估
一般数据核心、重要数据以外的数据,可再细分级别
例题填空

把含旅客证件号的数据交给外包公司做系统测试,应在 ___ 阶段采用 ___ 脱敏。

查看解析

交换(共享)阶段,采用静态脱敏,并签订保密协议、限定使用范围,测试结束后销毁。

数据库与生命周期 · 概念讲解

数据库安全配置与真题延伸

数据库是敏感数据最集中的地方。配置题考的是“最小权限、默认账户、审计、加密”。

检查项MySQLSQL 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 / 32907SM2 / 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 级)
易错
行业主管部门(铁路、民航、邮政)也有各自的数据和网络安全管理规定,答题时以题目给出的规范文件为准,例如综合防御题给出的《个人信息数据安全规范》PDF。

第三部分

配套练习与工具

配套练习与工具 · 工具速查

离线工具速查

按实验分组,列出流量、证书、编码、脚本题最常用的操作。

Wireshark · 流量题(L04 / 真题第 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 / certutil · 证书与哈希(L03 / L05 / 真题第 14 题)

命令用途
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.csvWindows / Linux 下算文件 MD5

CyberChef / 工具箱 · 编码(L01)

功能场景
From Base64 / Hex / Base32逐层解码
Magic自动识别编码并尝试解码
ROT13 / Vigenère / Rail Fence古典密码
本讲义“工具箱”页同样功能,断网可用

Python · 密码与脱敏(L02 / L05)

任务要点
SM2 验签(L02)用附件 gm.py 的 verify_e(e,r,s,pub) 遍历公钥找唯一匹配
脱敏导出(L05)先校验后脱敏;UTF-8 无 BOM、CRLF、末尾不留空行
算文件哈希hashlib.md5(open(f,"rb").read()).hexdigest()
记住
比赛现场断网、禁止 AI:以上工具和脚本必须赛前拷进电脑并试运行一次。建议带 CyberChef 离线单文件版、Wireshark、Python(标准库足够)、OpenSSL/GmSSL、以及能看换行和编码的编辑器(Notepad++ / VS Code)。
例题与附件 · 实验题面

5 个可选实验

不占课堂时间,建议赛前按顺序自练。每个实验都有附件包,教师答案在 instructor/guide.html。

编号实验难度用时对应考点
L01编码与古典密码识别入门15 分钟古典密码
L02SM2 签名与公钥匹配进阶25 分钟运维实操 7
L03读懂一张数字证书入门15 分钟数字证书
L04流量中的明文敏感数据入门20 分钟运维实操 6
L05脱敏导出与文件指纹进阶20 分钟综合防御 13/14

练习建议:L04 用 Wireshark 打开流量,L02、L05 用 Python 3.10+ 标准库即可,证书题用系统自带查看器或 OpenSSL;对应附件在 labs/ 目录。

例题与附件 · 实验题面

L01 编码与古典密码识别

课堂带做 · 配套工具演示

入门15 分钟古典密码

任务

对 10 个样本判断类型并还原明文,写出每条的判断依据。

完整题面见附件包中的 TASK.txt。

提交内容

编号-类型-明文;判断依据一句话。

建议步骤

看字符集 → 看长度和结尾 → 选工具 → 每解一层重新识别。

提示 1

Base64 结尾有 =,Base32 全大写且含 2–7;只有 0–9a–f 的偶数长度串先试 Hex。

提示 2

维吉尼亚密钥 KEY;栅栏 2 栏;凯撒位移可用工具箱列出全部 25 种。

例题与附件 · 实验题面

L02 SM2 签名与公钥匹配

课堂带做 · 配套工具演示

进阶25 分钟运维实操 7

任务

判断签名 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

公钥验签就够了,不需要私钥。

提示 2

1~4 号签名真正参与运算的是消息本身转成的整数,不是 e 字段。

例题与附件 · 实验题面

L03 读懂一张数字证书

课堂带做 · 配套工具演示

入门15 分钟数字证书

任务

回答 server.crt 的颁发者、主题、SAN、有效期、算法、用途、指纹;解释 PEM/DER 区别、过期证书和 SM2 证书。

完整题面见附件包中的 TASK.txt。

提交内容

8 个小问的答案。

建议步骤

双击证书或用 openssl x509 -text 查看 → 对照讲义第 08 章字段表逐项填写。

提示 1

没有 openssl 时直接看 certs_text.txt。

提示 2

指纹是对 DER 字节算的哈希,不在证书字段里。

例题与附件 · 实验题面

L04 流量中的明文敏感数据

课堂带做 · 配套工具演示

入门20 分钟运维实操 6

任务

找出返回明文身份证号和手机号的接口路径、帧号和字段名;判断一个 18 位数字是否为身份证号。

完整题面见附件包中的 TASK.txt。

提交内容

路径(不含参数)、帧号、字段名、判断依据、已整改版本路径。

建议步骤

Wireshark 过滤 http → 统计 HTTP 请求 → 搜索敏感字段 → 追踪流对应请求。

提示 1

没有 Wireshark:python3 pcap_summary.py api_traffic.pcap

提示 2

已带 **** 的字段不算明文泄露。

例题与附件 · 实验题面

L05 脱敏导出与文件指纹

课堂带做 · 配套工具演示

进阶20 分钟综合防御 13/14

任务

按规则剔除不合规记录、脱敏并导出 CSV,计算 MD5。

完整题面见附件包中的 TASK.txt。

提交内容

被剔除 id(下划线连接)、cleaned.csv 的 MD5。

建议步骤

先校验后脱敏 → 数值排序 → UTF-8 无 BOM + CRLF → 对文件字节求 MD5。

提示 1

身份证要同时检查格式、日期、校验位;手机号第二位必须是 3~9。

提示 2

mask_template.py 里有 3 处 TODO。

速记与串讲 · 速记

参数速记卡

赛前 10 分钟看这一页。

要记的数值
SM2 私钥 / 公钥(含 04)/ 签名 r‖s32 / 65 / 64 字节
SM2 密文长度(C1C3C2,含 04)明文 + 97 字节
SM2 默认用户 ID1234567812345678(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(看换行和编码)
记住
比赛期间断网且禁止使用 AI:所有工具和脚本必须赛前拷进电脑并试运行一次。
参考资料 · 概念讲解

参考资料与说明

链接需联网打开;讲义、例题和实验本身不需要联网。

[1] 2025 年交通运输网络安全大赛决赛指南

用户提供,source/2025决赛指南.pdf

[2] 2025 决赛真题截图

用户提供,source/ 目录

[3] 关于举办 2026 年“经纬杯”交通运输网络安全大赛决赛的通知

https://www.cttic.cn/info/24365

[4] GB/T 32918 SM2 椭圆曲线公钥密码算法(1~5 部分)

全国标准信息公共服务平台 https://std.samr.gov.cn/

[5] GB/T 32905-2016 SM3 密码杂凑算法 / GB/T 32907-2016 SM4 分组密码算法

同上

[6] GM/T 0009 SM2 密码算法使用规范;GM/T 0016 智能密码钥匙密码应用接口规范;GM/T 0018 密码设备应用接口规范

国家密码管理局 http://www.oscca.gov.cn/

[7] GB/T 38636-2020 传输层密码协议(TLCP)

全国标准信息公共服务平台

[8] GB/T 39786-2021 信息系统密码应用基本要求

同上

[9] GB/T 38540-2020 安全电子签章密码技术规范

同上

[10] GB 11643-1999 公民身份号码

同上

[11] GB/T 35273-2020 个人信息安全规范;GB/T 37964-2019 个人信息去标识化指南

同上

[12] GB/T 37988-2019 数据安全能力成熟度模型;GB/T 43697-2024 数据分类分级规则

同上

[13] GB/T 20988-2007 信息系统灾难恢复规范

同上

[14] RFC 5280 X.509 证书与 CRL

https://www.rfc-editor.org/rfc/rfc5280

[15] RFC 8446 TLS 1.3;RFC 8998 TLS 1.3 中的 ShangMi 套件

https://www.rfc-editor.org/rfc/rfc8446 · https://www.rfc-editor.org/rfc/rfc8998

[16] RFC 3161 时间戳协议

https://www.rfc-editor.org/rfc/rfc3161

[17] 《密码法》《数据安全法》《个人信息保护法》《网络安全法》

国家法律法规数据库 https://flk.npc.gov.cn/

[18] CyberChef(离线可下载单文件版)

https://github.com/gchq/CyberChef/releases

本讲义中的例题、实验数据和答案均为教学构造,2025 真题部分的解析是基于题面的思路讲解,不代表官方答案。各标准以现行有效版本为准。