消息认证码:保障消息完整性的关键技术
1. 消息完整性概述
密码学的一个基本目标是实现各方之间的安全通信。然而,“安全通信”具体意味着什么呢?在之前的探讨中,我们了解到如何实现消息的保密性,即通过加密手段防止被动窃听者获取开放信道中传输消息的内容。但并非所有的安全问题都与保密性相关,也并非所有的攻击者都仅仅进行被动窃听。在很多情况下,保证消息的完整性(或消息认证)对于抵御能够在信道中注入消息或修改传输中消息的主动攻击者而言,具有同等甚至更重要的意义。
下面来看两个具体的例子。首先,想象一个用户通过互联网与银行进行通信。当银行收到用户从其账户向另一个用户 X 的账户转账 1000 美元的请求时,银行需要考虑以下两个问题:
- 该请求是否真实?也就是说,这个请求是否确实由相关用户发出,还是由冒充合法用户的攻击者(可能就是用户 X 本人)发出的?
- 假设转账请求是由合法用户发出的,银行收到的请求是否与用户发送的请求完全一致?例如,在请求通过互联网传输的过程中,转账金额是否被修改了?
需要注意的是,标准的纠错技术无法解决第二个问题。纠错码仅用于检测和纠正影响传输中一小部分内容的“随机”错误,对于能够精确选择在何处引入任意数量更改的恶意攻击者,它们无能为力。
另一个在实际中需要保证消息完整性的场景与 Web Cookie 有关。用于 Web 流量的 HTTP 协议是无状态的,因此当客户端(如用户)和服务器(如商家的网站)在某个会话中进行通信时,该会话产生的任何状态信息(如用户购物车的内容)通常会被存储在用户的“Cookie”中,并随用户发送给商家的每条消息一起包含在内。假设某个用户存储的 Cookie 中包含用户购物车中的商品以及每件商品的价格,就
订阅专栏 解锁全文
581



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



