知识卡片

单向TLS与双向TLS的保护对象差异

普通读书笔记卡

内容

落实零信任安全,第一步是建立信任本身——网络世界里客户端和服务端通常 没有共同私密信息,只能靠”权威公证人”式信任(即PKI体系)来建立,这正是 TLS传输安全层的必要基础。单向TLS只要求服务端出示证书,客户端验证服务端 身份,服务端并不反过来验证客户端——它保护的是”客户端不被冒牌服务器 欺骗”,适用于公开服务,任何客户端都可以连接访问。双向TLS(mTLS)要求 客户端和服务端都出示证书、互相验证对方身份——除了保护客户端不连冒牌 服务器,还额外保护服务端不被非法客户端越权访问,适用于私密服务,只允许 特定身份的客户端接入。零信任网络里之所以要普遍启用mTLS而非公众互联网 常见的单向TLS,是因为零信任的核心前提就是”服务之间没有固有信任关系”—— 如果只验证服务端身份,攻陷了内网某个客户端的攻击者依然能冒充合法调用者 访问其他服务,这正好是边界安全被攻破时暴露的那个漏洞。但围绕TLS的密钥 生成、证书分发、签名请求、更新轮换这一整套流程非常繁琐,稍有疏忽就会 出安全漏洞,如果没有自动化基础设施支撑、只靠应用程序和运维人员手工 操作,是很难真正落地零信任的。

参考来源

- 位置:《凤凰架构:构建可靠的大型分布式系统》第9章"可靠通信"9.2.1节 "建立信任"(源文件:_epub-src对应OEBPS/Text/chapter109.xhtml) - 结论依据:原文定义单向TLS只验证服务端身份、保护客户端不受冒牌服务器 欺骗,双向TLS双方互验、额外保护服务端不被非法客户端越权访问,并说明 零信任网络往往需要启用mTLS而非单向TLS,直接支撑本卡片结论。 - 原始内容:单向TLS认证:只需要服务端提供证书……用于公开的服务…… 双向TLS认证:客户端、服务端双方都要提供证书……用于私密的服务,即 服务只允许特定身份的客户端访问,它除了可以保护客户端不连接到冒牌 服务器外,也可以保护服务端不遭到非法用户的越权访问。