消息认证是在信息领域避免一切主动攻击(像信息的纂改和伪造)的有效方法,它规定报文的接收方可验证收到的报文要是真实的,包括发送者姓名、发送时间和发送内容等。
消息认证也叫“报文认证”或“报文鉴别”,是证实收到的报文源自能信任的信息源并没有被改过的过程,消息认证也能证明报文的序列编号与是否及时,所以用消息认证方式可防止如下以下现象的出现。
1)伪造消息。攻击者伪造消息发给目标端,却说此消息来自已授权的实体(如计算机或用户),或攻击者借接收者的名义仿造假的确认报文。
2)内容篡改。通过插入、删除、调换或修改等手段对消息进行篡改。
3)序号基改,在像TCP等依赖报文序列号的速信协议中,修改通信两方的报文序号,含插入、删除与重排等。这在目前的网络攻击事件中较为常见。
4)计时篡改。篡改报文的时间截是用来实现报文延迟或重传的。
产生消息认证的方法可归纳为三种:一是对报文进行加密,用整个报文的密文当做鉴别符;二是用消息认证码(MAC),该算法用一个密钥,以报文内容为输入,得到一个比较短的定长值当做鉴别符;三是哈希函数,也叫散列函数或杂凑函数,以Hash值作为鉴别符。
目前,像对称加密、非对称加密等常规的加密技术已非常成熟,但出于多种原因,常规加密技术没有被简单地应用到消息认证符中,实际应用中一般用独立的消息认证码。目前,用免加密的方法提供消息认证受到重视,近几年消息认证研究的热点转至由Hash函数导出MAC。
Hash函数可以分为两类:带密钥的Hash函数和不带密钥的Hash函数。使用不带密钥的Hash函数作为消息认证的体制是不安全的,容易遭受到一些攻击。带密钥的Hash函数一般能生成报文的鉴别码,对通信双方传输的任何消息,借带密钥的Hash函数做变换,产生MAC附在报文后,保证通信双方间消息的完整性,使双方之间的消息不会被第三方篡改或伪造。常用消息认证的实现需加密技术。