请详细解释以下名词：
消息认证
user
消息认证就是验证消息的完整性，当接收方收到发送方的报文时，接收方能够验证收到的报文是真实的和未被篡改的。它包含两层含义：一是验证信息的发送者是真正的而不是冒充的，即数据起源认证；二是验证信息在传送过程中未被篡改、重放或延迟等。
数据完整性机制有两种类型：一种用来保护单个数据单元的完整性；另一种既保护单个数据单元的完整性，又保护整个连接上所有数据单元流序列的完整性。#### 消息认证的检验内容

消息认证的检验内容应包括：认证报文的信源和信宿、报文内容是否遭到偶然或有意篡改、报文的序号是否正确、报文的到达时间是否在指定的期限内。总之，消息认证使接收者能识别报文的源、内容的真伪、时间有效性等。这种认证只在相互通信的双方之间进行，而不允许第三者进行上述认证。
为了防止人工操作和传输过程中的偶然错误，可采用多次输入和多次传输比较法进行校验，也可采用冗余校验法进行检测。这些都是比较简单的保持完整性的方法。
在数据块中加入冗余信息的过程称为差错编码。只具有检错功能，但不能确定错误位置，也不能纠正错误，这种码称检错码。具有纠错功能，将无效码字恢复成距离它最近的有效码字，但不是100％正确，这种码称纠错码。检错码和纠错码都是检验数据完整性的简单易行的有效方法。#### 消息认证目的

消息认证是防止主动攻击的重要技术，消息认证的目的主要有两个：
①验证信息的发送者是真实的，而不是冒充的，也称为信源认证；
②验证信息的完整性，即信息在传送和存储过程中未被篡改、重放和延迟等。#### 消息认证系统的模型

消息认证系统的一般模型如图1所示。相对于密码系统，认证系统更强调的是完整性。消息由发送者发出后，经由密钥控制或无密钥控制的认证编码器变换，加入认证码，将消息连同认证码一起在公开的无扰信道进行传输，有密钥控制时还需要将密钥通过一个安全信道传输至接收方。接收方在收到所有数据后，经由密钥控制或无密钥控制的认证译码器进行认证，判定消息是否完整。消息在整个过程中以明文形式或某种变形方式进行传输，但并不一定要求加密，也不一定要求内容对第三方保密。攻击者能够截获和分析信道中传送的消息内容，而且可能伪造消息送给接收者进行欺诈。攻击者不再像保密系统中的密码分析者那样始终处于消极被动地位，而是主动攻击者。
图1所示的认证编码器和认证译码器可以抽象为认证方法。一个安全的消息认证系统，必须选择合适的认证函数，该函数产生一个鉴别标志，然后在此基础上建立合理的认证协议，使接收者完成消息的认证。


图1消息认证系统模型#### 消息认证中常见的攻击和对策

①重放攻击：截获以前协议执行时传输的信息，然后在某个时候再次使用。对付这种攻击的一种措施是在认证消息中包含一个非重复值，如序列号、时戳、随机数或嵌入目标身份的标志符等。
②冒充攻击：攻击者冒充合法用户发布虚假消息。为避免这种攻击可采用身份认证技术。
③重组攻击：把以前协议执行时一次或多次传输的信息重新组合进行攻击。为了避免这类攻击，把协议运行中的所有消息都连接在一起。
④篡改攻击：修改、删除、添加或替换真实的消息。为避免这种攻击可采用消息认证码MAC或hash函数等技术。
assistant