前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >密码技术之消息认证码

密码技术之消息认证码

作者头像
安智客
发布2018-07-30 14:40:17
1.6K0
发布2018-07-30 14:40:17
举报
文章被收录于专栏:安智客

一,概述:

上一节我们知道消息的完整性保护需要通过单向散列函数来保证。但是光完整性还不够,我们还有确认消息的来源必须是正确的发送者。

MAC(message authentication code)消息认证码是一种确认完整性并进行认证的技术,是一种与密钥相关联的单向散列函数。输入是任意长度的消息和一个发送者和接收者之间共享的密码,输出固定长度的数据MAC值。两者之前的区别如下图所示:

由于需要共享密钥,如果这个密钥被截取,从而可以进行自由的篡改和伪装,因此需要解决密钥配送问题,可以采用公钥密码、证书体系等传统方式。

比如通过认证加密,一种将对称密码与消息认证码相结合,比如将明文用对称密码加密,然后计算密文的MAC值,同时满足机密性、完整性、认证三大功能机制。

GCM是一种认证加密方式,专门用于消息认证码的GCM称为GMAC.

像一些IPsec、SSL/TLS等通信协议就使用了消息认证码。(详细介绍如:

TLS与SSL的介绍及区别)

二,消息认证码的实现方法

除了可以用分组密码实现消息认证码之外,也可以用单向散列函数来实现,比如HMAC。

使用SHA-1、SHA-224、SHA-256、SHA-384、SHA-512所生成的HMAC分别称之为HMAC-SHA-1、HMAC-SHA-224、HMAC-SHA-256、HMAC-SHA-384、HMAC-SHA-512。

三,针对消息认证码的攻击

应该保证不能跟进MAC值推测出通信双方所使用的密钥。

1,重放攻击,不需要破解消息认证码,而是截取正确的值进行重复利用,当然,可以通过序号、时间戳、随机数等方式避免。

2,密钥推测攻击,同样也可以进行暴力破解和生日攻击。

四,消息认证码无法解决的问题

1,第三方证明,也就是说乙无法向丙证明,这条消息是甲发送的。因为有了第三方参与,因为密钥是共享的,甲和乙无法证明消息就是对方发送的,也许是自己发送的呢!

2,防抵赖性,也就是说甲乙都可以否认消息是对方发送的。

通过数字证书可以解决。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 安智客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档