目录
分享背景
编辑
mtls(Mutual) 和tls的区别
在普通 HTTPS(TLS) 中
在 mTLS 中
应用场景
1. 微服务之间的安全通信
2. 车联网(V2X) & 智能交通
3. 内部企业 VPN & 远程办公
验证的流程
TLS的验证流程
MTLS的验证流程
关于CA签名的解释
分享背景
基于公司中开发项目当中有支付的应用场景,是关于对接第三方支付API时,对应文档上要求需要提供MTLS认证,由于小编对Mtls处于无法选中状态,就恶补了一下这方面的知识帮助自己学习,有不靠谱和不正确的地方还请各位大佬在评论区交流指证!
mtls(MutualTLS) 和tls的区别
mTLS 即双向安全传输层协议,是一种双向身份认证机制,言外之意就是客户端和服务器端都要提供证书并验证,而不是只验证服务器证书。
在普通 HTTPS(TLS) 中
客户端验证服务器的 SSL 证书,以确保它连接到的是可信服务器。
在 mTLS 中
服务器也要验证客户端的 SSL 证书,以确保请求确实来自客户端,而不是恶意攻击者伪造的请求。
应用场景
因为小编的主要应用场景是支付系统,本篇主要以支付系统为例讲解,主要分为客户端和服务端
举例:客户端(某应用)服务端(支付系统),某应用要访问支付系统,就需要mTLS(双向安全认证) 主要访问的API:支付,支付查询,退款,付款捕获,支付取消等。
当然,出了再支付交易系统中应用的到Mtls,在其他领域也是许多,在此篇文章中只做简单描述,有需要的小伙伴可以自行查阅资料,大致的逻辑也都是大同小异。
1. 微服务之间的安全通信
🔹 场景:在 Kubernetes、Service Mesh(如 Istio、Linkerd) 中,服务之间的通信需要身份认证和加密。 🔹 示例:
Istio(Service Mesh):默认使用 mTLS 保护微服务之间的通信,避免中间人攻击(MITM)。
AWS App Mesh:使用 mTLS 保护微服务 API 调用,确保内部服务只能被授权的实例访问。
2. 车联网(V2X) & 智能交通
🔹 场景:智能网联汽车(C-V2X)和交通管理系统的通信需要加密,防止黑客攻击车辆通信。 🔹 示例:
百度 Apollo 自动驾驶:车与云端的通信使用 mTLS 保护数据安全,防止伪造服务器攻击。
上汽集团:车联网平台采用 mTLS 进行双向身份认证,确保车辆数据的安全传输。
交通管理局智慧交通系统:信号灯、摄像头、智能车牌系统采用 mTLS 进行加密传输。
3. 内部企业 VPN & 远程办公
🔹 场景:企业员工远程办公、访问公司内部系统时,使用 mTLS 进行身份认证,防止账户泄露。 🔹 示例:
华为 AnyOffice:使用 mTLS 认证远程终端,确保远程办公安全
腾讯企业微信:在某些政企客户部署中,采用 mTLS 确保内网 API 访问。
阿里 钉钉:支持企业专有 API 访问时的 mTLS 认证,确保只有授权设备能访问内部资源。
验证的流程
TLS的验证流程
双端建立TCP连接 完成握手。 服务器发送CA签名证书到客户端。 客户端验证服务器的证书是否合法可信,如果服务器证书无效,客户端终止连接,否则反之。生成会话密钥并开始通信,保证对称加密进行安全通信。
MTLS的验证流程
双端建立TCP连接 完成握手。 服务器发送CA签名证书到客户端。 客户端验证服务器的证书是否合法可信,如果服务器证书无效,客户端终止连接,否则反之。客户端发送CA签名证书到服务器。服务器验证客户端CA签名证书,保证客户端可信。服务器授予客户端权限。生成会话密钥并开始通信,保证对称加密进行安全通信。
关于CA签名的解释
CA(Certificate Authority,证书授权) 是由证书机构签发的,比如 Let's Encrypt,DigiCert、GlobalSign;mTLS并不强制证书必须要受信任的CA签名签发,可以是私有的也可以是自签的签名证书。
公共CA签名(受信任的CA)
适用于需要和外部系统对接进行安全通信的场景。
证书受操作系统或浏览器的 默认信任根证书列表 认可,无需额外配置
私有的CA签名
适用于 企业内部服务、微服务架构、Kubernetes 环境等。
服务器和客户端需要 手动导入和信任私有 CA 的根证书。
自签的CA签名
适用于测试环境或小规模的私有部署。
证书由自己生成,需要在客户端和服务端手动配置。
结语
以上就是我对MTLS和TLS的理解和认识,当然少了许多负责性的原理讲解,更多的是基于一些应用场景去给大家分享,这样方便自己记忆,也方便大家理解,有什么问题可以欢迎大家一起讨论和纠正!
预告
下一期小编会基于Spring boot+ Spring security 详细的讲解如何实现TLS的验证