1、加密传输概述:为什么需要加密传输、对称加密与非对称加密、HTTPS与SSL/TLS协议基础

各位同学,咱们今天正式开课。聊加密传输之前,我先讲个真事。

几年前我帮一家电商公司做安全审计,发现他们的内部API调用全是明文。说白了,用户下单时填的地址、手机号、信用卡后四位,在网络里就跟没穿衣服似的。我随手在办公楼的公共Wi-Fi上抓了个包,十分钟就还原了一笔订单的全部信息。嗯,那家公司当天晚上就紧急上了HTTPS。

你想想看,如果连传输通道都不加密,那你的防火墙、入侵检测、WAF,全都是在给一栋没有锁的门装监控——有用,但治标不治本。

1.1 为什么需要加密传输

网络传输的本质,是数据从一个节点跳到另一个节点。中间经过路由器、交换机、网关,甚至可能经过你不认识的ISP骨干网。任何一个中间节点,只要有人做了抓包操作,你的数据就是透明的。

我遇到过最典型的场景:某客户的内网部署了明文HTTP服务,运维人员图省事,所有管理接口都走80端口。结果内部员工用了一个简单的ARP欺骗工具,就把管理员的会话Cookie给劫持了。你说这是技术问题还是管理问题?其实都有,但最根本的——传输没加密。

加密传输要解决三个核心问题:

  • 机密性:数据在传输过程中不能被第三方读懂。就算被抓包,看到的也是一堆乱码。
  • 完整性:数据在传输过程中不能被篡改。如果有人中间改了报文,接收方能发现。
  • 身份认证:你能确认和你通信的确实是对方,而不是中间人冒充的。

一句话总结:加密传输不是为了防黑客,而是为了让你在网络这个"公共走廊"里,能放心地传递私密信息。

1.2 对称加密与非对称加密

加密算法分两大类,我习惯把它们比作两种锁。

对称加密

加密和解密用同一把钥匙。就像你家的门锁,用钥匙锁门,也用同一把钥匙开门。速度快,适合加密大量数据。

常见的对称加密算法:

算法 密钥长度 特点
AES 128/192/256位 目前最主流,硬件加速支持好
ChaCha20 256位 移动端性能优秀,Google力推
3DES 168位 已过时,不推荐使用
SM4 128位 国密标准,国内合规场景必用

对称加密有个致命问题:密钥怎么安全地传给对方?你想想看,如果密钥本身通过网络明文传输,那加密还有什么意义?

我的经验:对称加密适合在已经建立安全通道后使用。比如HTTPS握手完成后,后续的大量数据传输都用对称加密。速度快,开销小。

非对称加密

加密和解密用不同的钥匙。一把公钥公开,一把私钥自己藏好。公钥加密的数据,只有私钥能解开;反过来,私钥签名,公钥可以验证。

常见的非对称加密算法:

算法 密钥长度 特点
RSA 2048/4096位 应用最广,但密钥越长性能越差
ECDSA 256/384位 基于椭圆曲线,同等安全强度下密钥更短
SM2 256位 国密标准,国内政企项目必备
Ed25519 256位 现代高性能选择,签名速度快

非对称加密解决了密钥分发问题,但性能比对称加密慢几百倍。所以实际应用中,两者是配合使用的。

避坑指南:我曾经见过一个项目,直接用RSA加密每一条HTTP请求体,结果服务器CPU直接飙到100%。非对称加密只适合加密小数据,比如对称密钥、数字签名、证书验证。大批量数据加密,请交给AES。

混合加密:取长补短

实际生产环境用的都是混合加密。流程大致是这样:

  1. 客户端用非对称加密,安全地把一个临时生成的对称密钥传给服务器。
  2. 双方确认身份后,后续所有通信都用这个对称密钥加密。
  3. 对称密钥用完即弃,下次连接重新生成。

这就是HTTPS的底层逻辑。说白了,非对称加密负责"握手",对称加密负责"传输"。

1.3 HTTPS与SSL/TLS协议基础

HTTPS不是一种新协议,它就是HTTP跑在SSL/TLS之上。SSL/TLS才是真正的加密传输协议。

我刚开始做Web开发时,总觉得HTTPS就是"装个证书就行"。直到有一次线上事故——证书过期了,整个电商网站无法下单,我才老老实实把TLS握手流程研究了一遍。

TLS握手核心流程

一个简化的TLS 1.3握手过程:

  1. Client Hello:客户端告诉服务器,我支持哪些TLS版本、加密套件。
  2. Server Hello:服务器选定版本和加密套件,发回自己的证书(含公钥)。
  3. 证书验证:客户端验证证书是否由可信CA签发、是否过期、域名是否匹配。
  4. 密钥交换:双方通过非对称加密或DH算法,协商出一个对称密钥。
  5. 加密通信:后续所有HTTP数据都用这个对称密钥加密传输。

关键点:TLS 1.3把握手从2-RTT降到了1-RTT,首次连接速度明显提升。如果你还在用TLS 1.2,建议尽快升级。

SSL与TLS的区别

协议 版本 状态
SSL 2.0 1995年 已废弃,有严重安全漏洞
SSL 3.0 1996年 已废弃,POODLE攻击可破解
TLS 1.0 1999年 已废弃,BEAST攻击
TLS 1.1 2006年 已废弃,PCI DSS禁止使用
TLS 1.2 2008年 广泛使用,但建议迁移
TLS 1.3 2018年 推荐使用,安全且高效

重要提醒:我审计过的项目中,还有不少在用TLS 1.0甚至SSL 3.0。这些协议已经公开破解多年,抓包工具可以直接解密。如果你负责的系统还在用,请立刻禁用。

证书链与信任模型

HTTPS的信任基础是CA(证书颁发机构)。服务器证书由CA签名,CA的证书又由根CA签名。客户端操作系统或浏览器内置了根证书,形成一条信任链。

我遇到过最坑的事:某公司自建了内部CA,但所有客户端都没安装根证书。结果内网HTTPS页面全部报"证书不可信",员工只好点"继续访问"——这跟没加密有什么区别?

建议:内网自建CA没问题,但一定要通过组策略或MDM把根证书推送到所有终端。否则HTTPS就变成了"吓唬老实人"的摆设。

本章知识体系

下面这张图把本章的核心逻辑串起来了。你可以把它当作后续章节的地图。

加密传输通道知识体系 为什么需要加密 机密性 完整性 身份认证 加密算法 对称加密(AES/ChaCha20) 非对称加密(RSA/ECDSA) 混合加密(握手+传输) HTTPS / TLS TLS握手流程 证书链验证 TLS 1.2 vs 1.3 核心结论:非对称加密做握手 → 对称加密做传输 → TLS协议封装 → HTTPS对外服务

这张图里,左边是"为什么",中间是"用什么算法",右边是"怎么落地"。三者缺一不可。很多工程师只关注右边的HTTPS配置,忽略了算法选择和加密目标,结果就是"配置了HTTPS但没解决安全问题"。

好了,第一章就到这里。加密传输不是玄学,是工程。后面的章节,我会带你一步步搭建真正的加密通道——从证书生成、Nginx配置、双向认证,到性能调优和故障排查。咱们下章见。