安全岗位面试题更新 2026-08-05

请解释消息认证码(MAC)的概念,并比较它与数字签名之间的主要区别。

技术原理方案权衡

考察说明

考查对消息认证码定义及其与数字签名差异的理解。

回答思路

  1. 【回答框架 1】消息认证码(MAC)是一种用于验证消息完整性和来源真实性的技术。它基于共享密钥,通过特定算法(如HMAC)对消息和密钥进行计算,生成一个固定长度的认证标签。接收方使用相同的密钥和算法重新计算标签,并与收到的标签对比,若一致则证明消息未被篡改且来源可信。
  2. 【回答框架 2】MAC与数字签名的主要区别在于密钥管理和提供的安全属性。MAC使用对称密钥,通信双方共享同一个密钥,因此只提供消息完整性和来源认证,但不提供不可否认性,因为双方都能生成相同的MAC。数字签名使用非对称密钥对,私钥签名、公钥验证,只有持有私钥的一方才能生成签名,因此提供不可否认性,同时也能保护完整性。
  3. 【回答框架 3】在使用场景上,MAC通常用于通信双方事先建立信任的对称密钥环境,如网络协议中的完整性保护;数字签名适用于公开验证的场景,如软件分发、电子合同等,因为验证方无需共享私钥。
  4. 【回答框架 4】安全性方面,MAC的安全性依赖于密钥的保密性和算法的强度;数字签名还依赖于私钥的安全管理。若密钥泄露,MAC的安全性完全丧失;数字签名中私钥泄露也导致签名可被伪造,但公钥公开不影响验证。
  5. 【回答框架 5】选择时需根据实际需求权衡:如果只需要内部通信双方验证完整性和来源,MAC开销更小、性能更高;如果需要第三方可验证的法律效力或防抵赖,则必须使用数字签名。
  6. 【关键点 1】MAC基于共享密钥,提供完整性和来源认证,但不具备不可否认性。
  7. 【关键点 2】数字签名基于非对称密钥,提供完整性和不可否认性,验证方只需公钥。
  8. 【关键点 3】MAC性能通常优于数字签名,适合内部通信;数字签名适合公开验证场景。
  9. 【易错点 1】误以为MAC提供不可否认性,实际上共享密钥使双方均可生成相同标签。
  10. 【易错点 2】忽略密钥管理:MAC和数字签名的安全性都依赖于密钥保密,泄露会导致认证失效。
  11. 【易错点 3】将MAC与哈希函数混淆:MAC需要密钥,普通哈希不提供来源认证。