目录

SSL 和 TLS 到底是不是一回事?HTTPS 加密原理一次说清

很多人把 SSL 和 TLS 当成两个东西,其实它们是同一套协议的前后两代。

SSL 是老名字,TLS 是它的继任者。

地址栏里那把小锁、网址前面的 https,背后靠的就是这套协议在干活。

SSL 和 TLS 是什么?

SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)是同一类加密协议,作用是给网络通信加一层保护。

SSL 由网景公司在上世纪 90 年代搞出来。

后来标准化工作交给了 IETF,新版本改名叫 TLS,从此 SSL 这个名字就停在了 3.0。

说白了,现在大家嘴里说的 SSL 证书、SSL 加密,技术上跑的几乎都是 TLS。

名字没改过来,是因为叫顺口了。

这套协议干三件事:加密传输内容、验证服务器身份、保证数据没被中途篡改。

版本演进:哪些还能用,哪些早该扔了

下面这张表把主要版本捋清楚了。

版本 发布年份 当前状态
SSL 2.0 1995 已废弃,存在严重漏洞
SSL 3.0 1996 已废弃,2014 年被 POODLE 攻击攻破
TLS 1.0 1999 2021 年正式弃用
TLS 1.1 2006 2021 年正式弃用
TLS 1.2 2008 主流,仍在大量使用
TLS 1.3 2018 最新版,更快更安全

原文里只提到 SSL 3.0 和 TLS 1.0、1.1、1.2,这其实漏掉了关键的一版。

2018 年发布的 TLS 1.3(RFC 8446)才是现在该优先用的。

它砍掉了一堆不安全的老算法,握手次数也减少了,连接建立更快。

IETF 在 2021 年的 RFC 8996 里明确把 TLS 1.0 和 1.1 标记为弃用。

如果服务器还开着 SSL 3.0,等于把门虚掩着。

HTTPS 是怎么工作的

HTTPS 就是 HTTP 套上 TLS,默认走 443 端口。

它能加密信息,避免敏感数据被第三方截获,所以银行、邮箱这类对安全要求高的服务基本都强制用 HTTPS。

核心思路其实很巧妙。

非对称加密安全但慢,对称加密快但密钥不好传。

那就用非对称加密去安全地传一把对称密钥,之后的数据收发全用对称加密。

两者搭配,既安全又不拖速度。

下面这张图把整个流程画出来了。

/img/ssl-tls-https-explained/1.png
HTTPS加密通信握手流程图,展示客户端与服务器之间公钥私钥交换、随机密钥传输和加密内容收发的完整步骤

把图里的步骤翻译成人话:

  1. 客户端访问 https://www.example.com,发起请求。

  2. 服务器把自己的公钥(藏在数字证书里)发回来。

  3. 客户端验证证书是否可信,不可信就弹安全警告,这一步最容易被忽略,却是防中间人攻击的关键。

  4. 验证通过后,客户端生成一个随机的对称密钥。

  5. 用服务器的公钥把这把随机密钥加密,传过去。

  6. 服务器用自己的私钥解密,拿到这把对称密钥。

  7. 之后双方就用这把对称密钥加密通信内容,往来数据全程加密。

整个握手里,公钥私钥只负责安全地交换那把对称密钥。

真正的数据传输靠的是对称加密,因为它快。

对称加密和非对称加密的区别

这俩概念是理解 TLS 的门槛,单独拎出来说一下。

对称加密:加密和解密用同一把钥匙,速度快,问题是钥匙怎么安全送到对方手里。

非对称加密:一对钥匙,公钥加密、私钥解密,公钥可以随便公开,安全性高但运算慢。

对比项 对称加密 非对称加密
密钥 同一把 公钥 + 私钥一对
速度 快 慢
主要用途 加密实际数据 安全交换对称密钥、验证身份
常见算法 AES、ChaCha20 RSA、ECDSA

TLS 的设计就是让两者各干各擅长的活。

数字证书为什么重要

光加密还不够,你得确认对面真的是它声称的那个网站。

数字证书由 CA(证书颁发机构)签发,相当于一张盖了章的身份证明。

浏览器内置了一批受信任的 CA。

证书对不上、过期、或者签发机构不被信任,浏览器就会拦下来报警。

没有证书这一环,加密做得再好也防不住中间人冒充。

常见问题

Q1. SSL 和 TLS 有什么区别?

它们是同一套协议的不同代。

SSL 是早期版本,最高到 3.0;

TLS 是它的标准化继任者,从 1.0 一路到 1.3。

现在实际使用的全是 TLS,SSL 这个叫法只是习惯保留了下来。

Q2. 网站还在用 SSL 安全吗?

不安全。

SSL 2.0 和 3.0 都已被攻破并废弃,SSL 3.0 在 2014 年栽在 POODLE 攻击上。

现在应该至少用 TLS 1.2,条件允许直接上 TLS 1.3。

Q3. HTTPS 一定就安全吗?

HTTPS 保证传输过程被加密、服务器身份被验证,但它不保证网站本身是好人。

钓鱼网站照样可以申请到合法证书挂上 HTTPS。

那把小锁只说明"连接是加密的",不代表"这家网站值得信任"。

Q4. 为什么不全程用非对称加密,更安全不是更好?

因为太慢。

非对称加密的运算开销比对称加密大得多,全程用它会让网页慢到没法用。

所以 TLS 只在握手阶段用非对称加密换密钥,正式数据传输切回对称加密。

总结

SSL 和 TLS 不是两套东西,是一套协议的新旧两代,现在能用的只有 TLS。

HTTPS 的精髓在于"非对称换密钥、对称传数据"这套组合拳,既守住了安全,又没牺牲速度。

记住一点就够:看到小锁只代表连接加密了,网站可不可信还得自己判断。

如果你对 TLS 1.3 的握手细节或者证书链验证还有疑问,欢迎在评论区一起聊聊~~~

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/ssl-tls-https-explained/

备用原文链接: https://blog.fiveyoboy.com/articles/ssl-tls-https-explained/