MAC消息认证码介绍
此MAC是密码学概念,与计算机网络不同
为什么有了摘要算法还要有MAC
摘要算法保障的是消息的完整性
归根到底就是由H(x)来保证x的完整
那么问题来了,如果我知道你所使用的摘要算法(例如中间人攻击),那么我把x替换成y,H(x)替换成中间人计算出的H(y),还能生效吗?
答案是无法生效,所以这个方式有弊端,也就是这个消息完整性我们是能够保证的,但是真实性却无法保证,即这个完整的是真消息还是被掉包了无法确定
MAC(消息认证码)的登场
为了解决这个弊端所以MAC登场了
MAC的生成流程通常如下:
- 数据处理:对原始数据进行处理,使用摘要算法生成数据的哈希值。
- 密钥加密:使用共享密钥对哈希值进行加密,生成MAC。
- 传输:将数据和MAC一起传输给接收方。
- 验证:接收方使用相同的密钥对数据重新计算MAC,并与接收到的MAC进行比较,以验证数据的完整性和真实性。
仅仅到此就解决了真实性的问题吗?共享密钥不可能泄漏吗?
MAC能确保真实性的前提是共享密钥的不泄露
这个问题让我们到https如何使用MAC来细说
https在建立TLS连接后,之后的消息都会携带一个MAC
https如何确保共享密钥的不泄露
核心在于:
- CA证书,通信双方都没有下载非法证书
- 非对称密钥,在https协商共享密钥的过程中有一个随机数是会用公钥加密的,而这个时候只有服务器的私钥能够进行解密

浙公网安备 33010602011771号