摘要不是身份凭据
哈希函数把消息映射到固定长度摘要,通常讨论原像、第二原像与碰撞等安全性质。如果对手可以同时替换文件和公布的摘要,单独比较哈希值无法证明文件来自可信发布者。
MAC 依赖共享秘密
消息认证码由密钥和消息共同决定。持有共享密钥的双方可以计算或验证 MAC;因此它能用于共享密钥场景的消息认证,却不能让第三方区分是哪一个密钥持有者生成了标签。
有些哈希设计提供专门的带密钥模式,例如 RFC 7693 描述的 BLAKE2。不能把任意“密钥与消息拼接后哈希”都视为安全的 MAC 构造。
签名分离了签署与验证的能力
数字签名使用私钥签署,并由对应公钥验证。公钥本身仍需要可信绑定:从不可信渠道拿到的公钥,并不会自动代表你以为的那个人。
先判断需要谁来验证、谁持有什么密钥,再选择原语。
这些机制都不自动隐藏消息内容。保密、完整性和身份绑定,应分别进入协议需求。