消息认证码:保障通信完整性的关键技术
1. 消息完整性的重要性
密码学的一个基本目标是实现安全通信,但“安全通信”不仅仅意味着保密。在许多情况下,保证消息完整性同样甚至更为重要。
以用户通过互联网与银行通信为例,当银行收到用户从其账户向其他用户 X 转账 1000 美元的请求时,需要考虑两个问题:
- 请求是否真实,即是否为合法用户发出,还是由冒充合法用户的攻击者发出。
- 银行收到的请求是否与用户发送的完全一致,请求在传输过程中金额是否被修改。
标准的纠错技术无法解决第二个问题,因为纠错码只能检测和纠正影响传输小部分的“随机”错误,无法抵御恶意攻击者有针对性的修改。
另一个需要消息完整性的场景是 Web 饼干(cookies)。HTTP 协议是无状态的,用户与商家网站通信时,会话状态(如购物车内容)通常存储在用户的 cookie 中。如果商家为不同用户提供不同价格,用户可能会修改 cookie 中的商品价格,因此商家需要确保存储在用户端的 cookie 的完整性。
一般来说,不采取特定措施就不能保证通信的完整性。未受保护的在线购物订单、网上银行操作、电子邮件或短信等,通常不能被信任为来自声称的来源且在传输过程中未被修改。人们往往容易轻信,如来电显示或电子邮件返回地址等信息常被视为“来源证明”,但实际上它们很容易被伪造,这就为潜在的攻击打开了大门。
2. 加密与消息认证的区别
保密和消息完整性的目标不同,实现它们的技术和工具也不同。然而,人们常常将保密和完整性混淆,错误地认为加密可以解决消息认证问题。
实际上,加密(一般情况下)并不能提供消息完整性。下面通过
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



