ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

密评考点梳理:密钥管理、PKI与密码协议易混点解析

密评考点梳理:密钥管理、PKI与密码协议易混点解析

简介:面向商用密码应用与安全性评估(密评)备考人员的密码基础刷题材料,聚焦考试常见题型与核心知识点的对照复习。资源以1个docx文档打包,压缩包约26KB,文件数量精简,适合直接在电脑或手机上打开查阅,也方便按题目顺序做标注和整理。内容收录单选、多选等题目,并给出参考答案与部分知识点说明,覆盖分组密码工作模式、KDC与密钥分发、PGP密钥类型、PKI组件与证书管理、SSL/TLS握手、SM4轮函数、IPSec及AH/ESP、密码法条款、RSA基础和侧信道攻击等考点。已有3239人学习,可用于考前自测、错题复盘与查漏补缺;通过逐题练习并对照答案,读者能定位薄弱环节,梳理密钥管理、证书体系与安全协议之间的联系,逐步形成较完整的密码基础框架。

1. 密评这两个字到底指什么:一场关于“密码用得对不对”的评估

“密评”是“商用密码应用安全性评估”的口语叫法。第一次听到的人往往以为它在考密码学理论,其实它更像一次上门验收:系统里该用密码的地方用了没有、用的是不是被认可的算法、密钥管不管得住。打个比方,家里装了防盗门不算完事,还得有人来看看锁芯是什么等级、备用钥匙是不是就搁在门口鞋柜上。密评干的就是这件事——不看你说用了密码,看你的密码用对了没有。搞懂这层意思,你才会明白为什么一堆题目翻来覆去在问密钥怎么分发、证书怎么吊销、模块边界画在哪里,这些都不是背点,而是同一条链上的卡口。

2. 密钥才是主角:为什么密码基础题总绕着钥匙打转

把密码基础当成一门要靠背的课,是最容易卡住的地方。它真正的主线只有一条:密钥从哪来、存在哪、怎么送到对方手里、用完怎么作废。题目里那些看似互不相关的名词——KDC、会话密钥、永久密钥、随机性、弱口令——都是这条主线上的一个卡点。抓住这条线,很多选项不用背也能推出来:既然密钥是核心资产,那么凡是要保护密钥的动作,都会被单独设计一层;凡是绕过这层的做法,就会被判定为风险。

2.1 三把钥匙的分工:基本密钥、密钥加密密钥与会话密钥

现实里的钥匙串是有层级的。你不会拿保险柜的主钥匙去开每天换的房门,也不会把主钥匙随手借人。密码系统也照这个思路分层:最底下是会话密钥,专门用来加密这一次通信的数据,用完就扔;中间是密钥加密密钥,它的任务不是加密数据,而是保护那些会话密钥,把它们安全地送到对方手里;最上面是主密钥或基本密钥,用来保护密钥加密密钥本身。三者层层包裹,任何一层泄露都不至于让整个体系立刻失效。

这就解释了一道常考的点:用于对传送的会话密钥或文件密钥进行加密的密钥,叫密钥加密密钥,而不是会话密钥。会话密钥干的是“加密数据”的活,密钥加密密钥干的是“加密钥匙”的活,两者的工作对象完全不同。混在一起记,考场上必然翻车。

同样的层级思路还解释了 KDC 场景。两台主机想通信,各自向密钥分发中心申请会话密钥,那么主机与 KDC 之间用什么保护?答案不是会话密钥,也不是临时密钥,而是双方早就共享好的永久密钥。原因很朴素:会话密钥还没发下来,总不能拿它保护它自己的传输过程。永久密钥就是那条提前铺好的安全通道。

再往下追一层,密钥本身怎么来?第一个要求不是长度,而是随机性。用生日、手机号、出厂默认值、顺序升降的数字拼出来的密钥,长度再够也只是个摆设。这也是为什么“系统运行的密钥或编码不应是弱口令”会被单独列成一条:设备出厂默认的密钥、顺序递增递减的数字、操作人员的生日编码,全都属于典型的弱口令范畴。

提示:判断一个密钥相关的选项对不对,先问一句“它保护的是数据还是钥匙”。保护钥匙的那一层,答案往往跟你的第一直觉相反。

2.2 分组密码的五种工作模式:为什么 CTR 允许长度不对齐

分组密码像一台固定尺寸的压模机:给它 16 字节,它吐出 16 字节。可现实里的消息长度千奇百怪,最后一块常常凑不满。工作模式就是解决“怎么把长短不一的数据喂进这台压模机”的规则。

ECB 最简单,每块独立压,结果是相同的明文块压出相同的密文块。一张图片里大片纯色区域,加密完还能看出轮廓,这就是常说的“模式泄露”。CBC 让每一块先和前一块的密文异或再压,需要初始向量,加密必须串行,但解密可以并行——因为解密时前一块密文已经到手,不依赖前面的解密结果。所以“CBC 加解密都不能并行化”这个说法是错的。

CFB 把分组密码改造成流式,同样需要初始向量,所谓“CFB 无法使用初始向量”也是错的。CTR 则是另一条路:它不直接压明文,而是用一个计数器不断加一,把每次的输出当作密钥流,再和明文逐字节异或。异或天然支持任意长度,所以 CTR 模式下消息长度不必是分组长度的整数倍,也不需要填充。

模式是否需要填充是否需初始向量/计数器加密能否并行典型特征
ECB需要不需要可以相同明文块产生相同密文块
CBC需要需要初始向量不可以解密可并行,加密串行
CFB不需要需要初始向量不可以分组密码当流密码用
CTR不需要需要计数器可以长度任意,可并行

用一段代码看重播这个特性会更直观:

from Crypto.Cipher import AES from Crypto.Util import Counter key = b"0123456789abcdef" # 16 字节密钥,实际应由密钥管理系统生成 nonce = 0 # 计数器起点,同一密钥下绝不能重复 def ctr_encrypt(data: bytes) -> bytes: # 用计数器构造密钥流,再与明文逐字节异或 ctr = Counter.new(128, initial_value=nonce) return AES.new(key, AES.MODE_CTR, counter=ctr).encrypt(data) print(len(ctr_encrypt(b"12345"))) # 5 字节进,5 字节出,没有补齐动作

这段代码里最关键的不是函数调用,而是nonce那一行。计数器起点在同一把密钥下重复使用,两段不同的明文就会用到同一段密钥流,异或一相消,明文关系直接暴露。这也是 CTR 好用但必须小心的地方:它把“不能重复”的压力从填充方案转移到了计数器管理上。

注意:判断某个模式能不能处理非整数倍长度,看它是否把分组密码变成了流式输出,而不是看它名字里有没有“分组”两个字。

2.3 KDC 与 PKI:两套发钥匙的组织方式

密钥怎么送到对方手里,历史上有两条路。

第一条是对称路线,靠一个可信第三方。KDC 就是这样一个角色:通信双方各自与它共享一把永久密钥,需要通信时向它申请会话密钥,由它签发。这条路的前提是“大家都信任同一个主体或组织”,也就是常说的可信第三方——参与协议的各方都信任的那一个主体。它高效,但 KDC 一旦出问题,整张网都受牵连。

第二条是非对称路线,也就是 PKI。公钥可以公开,私钥自己留着,用证书把公钥和身份绑在一起。它解决的核心痛点正是对称密钥体制的老毛病:密钥的分配和管理。对称算法的加解密速度占优,可密钥一多,怎么发、怎么存、怎么换,全成了麻烦事。

这也顺带解释了一个常见判断题:实际应用中可以把对称与非对称混着用,而且这正是主流做法。非对称负责协商和分发,对称负责真正搬运数据。说“为了保证可靠性不能混用”,是把手段当成了禁忌。

组播场景下,密钥管理还要再分一层。按控制结构不同,组播密钥方案通常分成集中控制式、分布式和分层分组式三类,分别对应“一个中心统一发”“成员之间协商”“按小组分层管理”三种组织形态。

3. 证书与身份:PKI 里每个组件的分工

证书这部分题目问得细,是因为它是整个 PKI 的身份证。搞不清证书里装了什么、谁签发、怎么作废,剩下的选项就只能靠语感猜。而密码保障系统里那些典型形态——数字证书认证系统、电子印章系统、发票防伪税控系统——本质上都建立在这套身份机制之上。

3.1 一张数字证书里能读出什么、读不出什么

证书里能读出的信息不少:主体的公钥、有效期、签发机构名称、这张证书的用途,以及签发机构对整张证书算出的签名值。用途这一项经常被忽略,它决定了这把公钥是拿来验签还是拿来加密。PKI 要求签名密钥与加密密钥分隔使用,原因也在这里:一把钥匙只干一件事,出了事才好定位、才好吊销。

但有一项读不出来:签发机构自己的公钥。证书里装的是“主体的公钥”,签发机构的公钥要靠信任链从上一级带下来,或者由本地信任库预置。打个比方,身份证上印着签发机关的名称和印章,但绝不会把公安机关的公章母版印在卡面上——那反而是灾难。理解了这一点,看到“从证书中无法得到什么信息”这类题,就不会本能地去选有效期或用途。

顺带把管理对象理清:PKI 管的是证书、密钥、证书撤销列表这些与信任相关的东西,不管用户的 ID 和口令。账号密码属于身份认证体系里的另一套账,别混进 PKI 的筐里。

3.2 CA、RA、CRL、OCSP、LDAP 各管一摊

PKI 不是一个软件,是一套分工。CA 负责签发和签名,是发证机关;RA 负责受理申请、检查和管理申请者的信息,是窗口;CRL 是周期性发布的吊销名单,像贴在门口的黑名单公告;OCSP 是在线证书状态查询协议,像打电话问一句“这张证还有效吗”;LDAP 是目录服务,供用户查询和下载新签发的证书与撤销链,像档案室。

这五个角色的差别,用一张表看最清楚:

组件干什么类比
CA签发证书、对证书签名发证机关
RA审核申请者信息、受理申请办事窗口
CRL定期发布被吊销证书名单张贴的黑名单
OCSP实时查询单张证书状态打电话现场核实
LDAP提供证书与撤销链的查询下载档案室

一个高频混淆点:PKI 的组件清单里没有 IKE。IKE 是 IPSec 用来协商密钥的协议,属于网络层安全那一套,与证书基础设施不是一回事。看到“以下哪个不是 PKI 的组成部分”这种题,先想想它是不是在给 IP 包做密钥协商。

另一个容易被忽略的细节是时效性。CRL 是批量、周期性的,撤销之后到下一次发布之间有一段空窗;OCSP 是单张、实时的,问一次答一次。两者不是替代关系,很多系统两个都用,一个兜底,一个提速。

4. 密码保障落到系统里:模块等级、协议位置与攻击面

评估看的不是“有没有锁”,而是锁装在哪、护住了什么、有没有绕过去的口子。同样一把锁,装在大门上和装在抽屉上,防护效果差着量级。密码保障也是这个道理:算法对不对只是一半,模块等级、协议位置、攻击面覆盖才是另一半。

4.1 密码模块的安全等级与“密码边界”

密码模块可以理解成一个铅封盒子:算法、密钥、随机数发生器都封在里面,外面只能通过规定好的接口和它打交道。这个盒子的壳,就是密码边界。它是密码模块里特有的概念——边界之内的一切都按受保护处理,跨边界的调用必须有明确定义,不能含含糊糊地“借用一下”。

安全等级大致分四级,级别越高,要求越硬。三级是在二级基础上做增强,增强的方向包括物理安全、身份鉴别、环境保护,以及非入侵式攻击缓解。前三个好理解:盒子得防拆、得确认调用者是谁、得扛得住温湿度和电压波动。第四个稍绕:非入侵式攻击指的是不拆壳、不留痕的那类攻击,比如测功耗、测电磁辐射、测运算时间,缓解手段包括加噪声、掩码、恒定时间实现。

这里有一条容易被低估的判定:密码产品的使用如果不满足安全策略或使用手册说明的部署条件,就可以判定该产品存在高危漏洞。不是“能跑起来就算过”,而是“没按说明书的条件部署,就等于没装”。

还有一条边界判定值得记牢:通信实体的身份鉴别如果既没有用基于对称算法或杂凑算法的消息鉴别码,也没有用基于公钥算法的数字签名,并且没有缓解措施,属于可以直接否决的情形。反过来,如果数据传输过程中确实用了密码技术做了加密,那就不能一刀切地判成高风险——判断要看实际做了什么,而不是看形式上有哪些字段没填。

4.2 IPSec 与 SSL/TLS:协议站在哪一层,决定它护住什么

IPSec 工作在网络层,保护的是 IP 包本身。它有两个主要的安全协议:AH 提供完整性校验和来源认证,但不提供机密性,也就是说它不加密;ESP 既加密又认证。所以“AH 对头部之后的所有内容提供认证保护”这种说法是站得住的,而指望 AH 帮你保密就错了。

IPSec 还有两种模式。传输模式保护的是端到端的数据,主机和主机之间直接建安全关联;隧道模式是把整个原始 IP 包装进一个新包里,通常用在网关到网关的场景,比如两个站点之间拉一条加密通道。分清“端到端”和“站到站”,一大半模式题就不会选错。

SSL/TLS 站的位置不一样,它夹在应用层和传输层之间,保护的是某一个应用的会话。SSL 协议是从握手的消息交换开始的:双方先协商算法、交换参数、验证证书,再算出会话密钥,之后才轮到应用数据。典型的连接机制是客户端生成一个会话密钥,用服务器的公钥把它加密后送过去——因为只有服务器握有对应的私钥。这个方向记反,整道题就废了。

TLS 与 SSL 不是没关系,TLS 是 SSL 的升级版本,两者都为网络通信中的消息提供机密性和完整性保障。说“两者毫无关系”是错的,说“SSL 是 TLS 的升级版”也是把方向搞反了。

对比项IPSecSSL/TLS
工作位置网络层应用层与传输层之间
保护对象IP 包单个应用的会话
典型组件AH、ESP握手协议、记录协议
常见部署站点间加密网关应用侧加密网关

在实际组网中,网络边界部署经核准的 IPSec 加密网关或 SSL 加密网关,是满足网络和通信安全层面要求的通用做法。评估时看的不是设备牌子,而是它有没有被核准、策略配得对不对、密钥管得严不严。

4.3 侧信道攻击:不问密钥,问功耗

传统密码分析打的是数学:拿到算法输入、输出和公开参数,想办法从计算复杂度上撕开口子。侧信道攻击换了个思路——它不问算法,问的是芯片在运算时的“手感”:这一毫秒耗了多少电、泄了多少电磁辐射、跑了多少个时钟周期。

简单功耗分析是最朴素的一种:采集一条或几条功耗曲线,要求噪声比较低,并且需要知道密码实现的一些细节,然后利用功耗与具体运算之间的对应关系去推断密钥。比如某一步是不是乘法、某个分支走没走,都会在功耗曲线上留下痕迹。差分功耗分析则要靠大量曲线做统计分析,把微弱的相关性从噪声里捞出来。

这类攻击最难防的地方在于,它不破坏算法本身。算法可以数学上无懈可击,实现上却因为一条分支、一次查表把秘密漏了出去。防护思路也相应分成两类:一类是藏,让功耗和数据的相关性变小,比如掩码;一类是乱,让曲线更难对齐,比如加噪声、随机插入延时。

5. 易混概念辨析:五组最容易在考场上翻车的概念

有些概念长得像、名字近、出现的章节还相邻,出题人就爱在这里设卡。下面这几组,每一组都按“易混在哪、为什么会混、怎么区分”说清楚。

5.1 三组“名字像但实质不同”的概念

第一组:对称加密与数字签名。易混点在于两者都用密钥,看起来都是“保护数据”。之所以会混,是因为很多人默认“能加密就能签名”。区分方法很直接:对称算法的加解密密钥相同或可互相推导,双方掌握同一把钥匙,谁都能伪造对方的消息,所以它无法提供不可否认性,也就不能实现数字签名。数字签名必须建立在非对称体制上——私钥签名、公钥验签,验证者拿不到私钥。同时记住对称算法的优势:加解密效率优于非对称算法,缺点是密钥的分配和管理。

第二组:密码杂凑与非对称密码。易混点在于它们经常一起出现在“属于非对称密码的是”这种选项里。之所以会混,是因为杂凑算法也常被用来做完整性校验和签名中的摘要计算,看起来跟签名绑在一起。区分方法看性质:RSA、SM2、SM9 属于非对称密码,SM3 是杂凑算法,输出定长摘要、不可逆、不带密钥(HMAC 这类带密钥的构造是另一回事)。看到算法名混排,先给它归类,再判断属性。

第三组:加密密钥与解密密钥的角色。易混点在于“加密用的那把”到底公开还是保密。之所以会混,是因为对称与非对称两套体系的方向正好相反。区分方法:在公钥密码体制中,加密密钥就是公开密钥,任何人可以拿它加密;解密密钥是私有密钥,只有持有者知道。而在对称体制中,加密与解密用的是同一把或者可以互相推导的密钥。

5.2 两组“位置记反就全错”的概念

第四组:AH 与 ESP。易混点在于两者都是 IPSec 的安全协议,名字还都很短。之所以会混,是因为它们的保护范围描述很像,都是“头部之后的内容”。区分方法记一条:AH 只认证不加密,不提供机密性;ESP 既加密又认证。需要保密就选 ESP,只需要防篡改和验来源就用 AH,或者两者组合。

第五组:传输模式与隧道模式。易混点在于两种模式都能加密,看起来只是叫法不同。之所以会混,是因为它们保护的数据范围有重叠。区分方法记场景:传输模式用于端到端,主机与主机直接通信;隧道模式用于站到站,通常由网关封装整个原始 IP 包。看到“网关之间”“站点之间”就选隧道,看到“主机之间直接通信”就选传输。

5.3 三组“攻击与协议细节”的误读

第六组:中间人攻击与重放攻击。易混点在于两者都发生在通信过程中,都能让对方“收到不该收的东西”。之所以会混,是因为中间人往往也会顺带重放。区分方法看目标:中间人攻击的核心是插入到通信双方之间,冒充一方与另一方建立会话,从而读取或篡改内容;重放攻击的核心是把截获的旧消息原样再发一遍,靠时间差骗过验证。抵抗重放常用时间戳、序列号或计数器,而“使用密钥分发中心”并不是抗重放的手段——它解决的是密钥怎么发,不是消息是不是旧的。

第七组:唯密文攻击的边界。易混点在于“攻击者手里有什么”。之所以会混,是因为很多人把“只拿到密文”理解成“什么都不知道”。区分方法列清单:唯密文攻击只有密文可用,靠字母频率统计、字典比对这类方法去猜;已知明文攻击手里还有明文密文对;选择明文攻击则能自己挑明文让系统加密。重放攻击不属于唯密文攻击这一类,它打的是协议流程,不是密码本身。

第八组:非交互式零知识证明的“非交互”。易混点在于把“非交互”理解成“什么都不用提前准备”。之所以会混,是因为字面上确实没有来回通信。区分方法:交互式零知识证明需要证明者和验证者多轮交互;非交互式零知识证明不需要实时交互,但双方通常需要提前共享公共参考串。省掉的是来回问答,不是公共参数。

6. 什么时候刷这套题有用,什么时候别指望它

这套资料的价值边界其实很清楚。它是一份按单选、多选、判断分好类的题库,题干后面直接跟着答案,覆盖密码基础、密钥管理、PKI、协议、模块等级、攻击类型这些高频考点。它最适合的场景是:已经通读过一遍知识点,需要快速回查某个概念到底怎么界定;或者做错了一道题,想立刻定位到对应的那一小节去补;又或者临考前想把散落的名词重新串成一条线。

不适合的场景同样明确。想靠刷题搞懂一个算法的内部结构,比如 SM4 的轮函数为什么是非平衡 Feistel 结构、每一轮改变多少明文,只背选项是背不下来的,得去看结构图推一遍。想拿它当部署手册也不行,题目告诉你密码产品不满足部署条件可判高危,但不会告诉你现场该怎么核对策略。想用它替代标准原文更不行,标准里的条款编号和措辞是评估时的依据,题库只是索引。

场景合不合适原因
考前回查概念边界合适题目按知识点分布,定位快
错题后补漏合适答案紧跟题干,反馈即时
理解算法内部结构不合适选项不解释推导过程
现场部署核对不合适缺少配置与核查步骤
替代标准条款不合适题库是索引,不是依据

举个常见的踩坑例子。某开发者一直以为 CTR 是“某种加密算法的名字”,做题时看到“消息长度可以不是分组长度的整数倍”就凭感觉选了 CFB。后来他把四种模式画成一张图:哪些要填充、哪些要初始向量、哪些能并行,一眼就看出 CTR 的密钥流是计数器喂出来的,天然不对齐。这个理解一旦建立,同一类题再也不用猜。这就是题库的正确用法——它不是答案本,是索引,把你送回概念本身。

从那以后我每次做完一套题,都会把错的那几道按知识点回填到一张手画的图上,图上没有的条目就说明那块是空的,得回去补。补完再重做一遍,错的往往还是同一处,那就说明不是记性问题,是理解没到位。希望帮到你。

本文还有配套的精品资源,点击获取

返回列表