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协商共享密钥的过程中有一个随机数是会用公钥加密的,而这个时候只有服务器的私钥能够进行解密
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了