什么是消息验证码

2021年04月09日 10:43    发布者:zntsbkhhh

在信息安全领域中,常见的信息保护方法分为加密和认证两大类。认证技术又分为对用户的认证和对消息的认证两种方式。用户认证用于鉴别用户的身份是否是合法用户;消息认证就是验证所收到的消息确实是来自真实的发送方且未被修改的消息,可以验证消息的准确性。消息认证实际上是对消息本身产生的一个冗余的信息,即消息验证码(MAC)。消息认证码(Message authentication code)是一种确认完整性并进行认证的一种技术,简称MAC。密码学中,消息认证码指的是通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。消息认证码是一种带密钥的哈希函数,它本质上是一个哈希函数,那为什么要带密钥呢?是因为消息在传输过程中是可以被篡改,哈希值也可以被篡改,因此为了保证这个哈希值的有效性,通过加密的方式将哈希值保护起来,这样在接收方接收到消息后就可以通过这个哈希值来判断整条消息的完整性,从而达到信息传递的目的。消息认证码步骤如下图所示:
1)发送者与接收者事先共享密钥K(上图中的KEY1与KEY2值保持一致)。2)发送者根据消息计算MAC值(使用密钥KEY1对原始消息计算MAC1)。3)发送者将原始消息和MAC1发送给接收者。4)接收者根据收到的原始消息计算MAC2(使用密钥KEY2)。5)接收者将自己计算出的MAC2与从发送者收到的MAC1比对。6)如果MAC一致,接收者可以判定消息的确来自接收者(认证成功)且没有被篡改或者出现传输出错的情况;如果不一致,可判断消息不是来自发送方(认证失败)。 注意:建议发送方和接收方将密钥KEY存放于硬件安全模块中,计算MAC值的过程最好也放到硬件安全模块中完成,这样可以保证密钥的安全,例如放到加密芯片中。

网友评论

wang0327 2021年04月09日
密钥KEY是否为固定值?是不是容易被暴露出去呢?
小屁孩123 2021年04月09日
文中所说的消息认证和我们平时用手机验证码登录网站的认证方式是一样的吗?
xiaoyuhzou1228 2021年04月09日
原理接近,但还是有些差异的。手机验证码没有原始数据
kessy1 2021年04月09日
有成功的案例可以参考一下吗 ?
QL87 2021年04月10日
没看懂,MAC1和MAC2是哈希值加密后得到的吗?
miniminimini 2021年04月11日
MAC1和MAC2应该是原始消息经过带有密钥的哈希函数加密得到的
明亮的光 2021年04月11日
什么样的加密芯片可以存放密钥KEY?
?-о 2021年04月11日
之前用过算法移植类的还不错,安全性挺高
tyl2010 2021年04月12日
mac算法可以防止数据篡改,支持mac算法的芯片必须也需要安全才行是吧?
Test_wf 2021年04月12日
发送者与接收者事先共享密钥,好象这一步较重要
小屁孩123 2021年04月12日
怎么看出消息验证码没有被篡改?
QL87 2021年04月12日
如果消息验证码被拦截,那不就被别人掌控了,那一切的对比什么的也就没用了吧?
zntsbkhhh 2021年04月13日
通过比较流程图中的MAC1和MAC2的值是否相等,来判断消息是否被篡改
陌小凯 2021年04月13日
哪家公司的芯片是支持算法移植的,且安全性也很高呢
wang0327 2021年04月13日
市面上加密芯片种类繁多,该如何挑选加密芯片这个硬件安全模块呢?
Test_wf 2021年04月13日
LKT系列的芯片不错,可以试试
xiaoyuhzou1228 2021年04月13日
对还挺有名的,凌科的创新能力强
tyl2010 2021年04月13日
凌科芯安方案特色性好,之前用过,安全性杠杠的
?-о 2021年04月13日
对,是这个公司,在网上了解过,口碑不错的。
miniminimini 2021年04月13日
他们有专家做加密芯片,十几年了,技术服务也是一对一的专业
kessy1 2021年04月13日
文章写的很详细,感谢楼主的分享,学习了!