信息安全工程师 · 高频练习

HMAC 为什么能同时校验消息完整性和来源可信度?

中级 单选题 第 325 题 中等 信息安全工程师HMAC消息认证码完整性校验
题目

某接口调用方和服务端共享一个密钥。调用方把请求参数与密钥一起计算 HMAC,并把结果随请求发送。服务端用同一密钥重新计算并比对结果,以判断请求是否被篡改以及是否来自掌握密钥的一方。该机制主要用于()。

A 消息完整性校验和基于共享密钥的身份鉴别
B 把密文自动还原为明文密码
C 提高显示器刷新率
D 替代所有传输层加密
题目类型:原创高频考点题 用途:用于帮助理解信息安全工程师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

HMAC 是基于哈希函数和共享密钥构造的消息认证码。普通哈希只能说明消息内容是否变化,不能证明是谁生成的;HMAC 因为引入共享密钥,服务端只有在掌握相同密钥时才能计算出一致结果,因此可以同时用于完整性校验和一定程度的来源认证。它不能替代 HTTPS 等传输层保护,也不能用于解密。

选项分析

A

正确。HMAC 可用于校验消息完整性,并确认请求来自掌握共享密钥的一方。

B

错误。HMAC 不是解密机制,也不能还原密码。

C

错误。显示器刷新率与消息认证无关。

D

错误。HMAC 不能替代 TLS/HTTPS 的传输加密和证书认证。

本题为什么容易错

容易把 HMAC 和普通哈希混在一起。二者都用哈希函数,但 HMAC 多了密钥,所以能做消息认证;普通哈希只能做摘要比对。

先看结论

简短答案

HMAC 为什么能同时校验消息完整性和来源可信度,正确答案是 A(消息完整性校验和基于共享密钥的身份鉴别)。HMAC 是基于哈希函数和共享密钥构造的消息认证码。普通哈希只能说明消息内容是否变化,不能证明是谁生成的;HMAC 因为引入共享密钥,服务端只有在掌握相同密钥时才能计算出一致结果,因此可以同时用于完整性校验和一定程度的来源认证。它不能替代 HTTPS 等传输层保护,也不能用于解密。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
消息完整性校验和基于共享密钥的身份鉴别 本题正确答案 正确。HMAC 可用于校验消息完整性,并确认请求来自掌握共享密钥的一方。 看到题干核心场景时优先联想到它
把密文自动还原为明文密码 本题干扰项 错误。HMAC 不是解密机制,也不能还原密码。 看到该词不要急着选,先判断是否真正解决题干问题
提高显示器刷新率 本题干扰项 错误。显示器刷新率与消息认证无关。 看到该词不要急着选,先判断是否真正解决题干问题
替代所有传输层加密 本题干扰项 错误。HMAC 不能替代 TLS/HTTPS 的传输加密和证书认证。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 把密文自动还原为明文密码:错误。HMAC 不是解密机制,也不能还原密码。
  • 提高显示器刷新率:错误。显示器刷新率与消息认证无关。
  • 替代所有传输层加密:错误。HMAC 不能替代 TLS/HTTPS 的传输加密和证书认证。
复习

知识点详解

HMAC是信息安全工程师考试中需要结合场景理解的考点。围绕“HMAC 为什么能同时校验消息完整性和来源可信度”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“某接口调用方和服务端共享一个密钥。调用方把请求参数与密钥一起计算 HMAC,并把结果随请求发送。服务端用同一密钥重新计算并比对结果,以判断请求是否被篡改以及是否来自掌握密钥的一方。该机制主要用于()”,它指向的核心答案是 A(消息完整性校验和基于共享密钥的身份鉴别)。

备考速记

备考速记:题干如果强调“完整性校验”中的关键目标,就先联想到 HMAC;如果选项里出现 把密文自动还原为明文密码、提高显示器刷新率、替代所有传输层加密,不要只看名称熟悉,要判断它们是否真正对应题干场景。

HMAC 在完整性校验场景中的作用

HMAC在本题中的核心价值,是解决“某接口调用方和服务端共享一个密钥。调用方把请求参数与密钥一起计算 HMAC,并把结果随请求发送。服务端用同一密钥重新计算并比对结果,以判断请求是否被篡改以及是否来自掌握密钥的一方。该机制主要用于()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出完整性校验场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查HMAC的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把HMAC和把密文自动还原为明文密码、提高显示器刷新率、替代所有传输层加密放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
HMAC 在信息安全工程师软考中的考法

软考选择题通常不会只考概念定义,还会把HMAC放到完整性校验场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

题干说双方共享密钥,并且服务端重新计算比对。老师讲接口签名时会提醒:单纯把参数 hash 一下不够,因为攻击者也能 hash;加入只有双方知道的密钥,才有认证意味。

考点定位

安全题要区分普通哈希、HMAC、数字签名。普通哈希无密钥,HMAC 用共享密钥,数字签名用私钥签名和公钥验证。

易错提醒

  • 把密钥写在前端代码里,导致攻击者也能伪造 HMAC。
  • 接口签名只校验参数,不加入时间戳或随机数,容易被重放。
  • 认为有 HMAC 就不需要 HTTPS,忽略传输过程中的机密性保护。

备考提示

  • 记法:Hash 看完整性,HMAC 看完整性加共享密钥认证,数字签名看不可否认性。
  • 看到接口签名、共享密钥、参数防篡改,优先想到 HMAC。

你可能还想了解

  • HMAC 为什么能同时校验消息完整性和来源可信度?
  • HMAC是什么?
  • HMAC在信息安全工程师考试中怎么考?
  • 信息安全工程师HMAC题怎么理解?
  • HMAC有什么作用怎么考?
  • HMAC和哈希有什么区别怎么考?

本文小结

本题核心考点是HMAC在完整性校验场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(消息完整性校验和基于共享密钥的身份鉴别)。