简单来说,HTTPS = HTTP + SSL/TLS。如果把 HTTP 比作在明信片上写信,那么 HTTPS 就是把信装进了一个防弹保险箱,只有收件人才能打开。
1. HTTP 与 HTTPS 的核心区别
| 特性 | HTTP (HyperText Transfer Protocol) | HTTPS (HyperText Transfer Protocol Secure) |
|---|---|---|
| 安全性 | 明文传输,不加密 | 加密传输,身份认证 |
| 端口 | 默认 80 | 默认 443 |
| 证书 | 不需要证书 | 需要向 CA(数字证书认证机构)申请 SSL 证书 |
| 速度 | 较快(直接连接) | 略慢(需进行握手、加密解密计算) |
| SEO | 权重普通 | 搜索引擎(如 Google/百度)优先收录 |
2. HTTPS 为什么更安全?
HTTPS 的安全性主要由 SSL/TLS 协议 提供,它解决了 HTTP 的三个核心安全隐患:窃听、篡改、冒充。
A. 内容加密 (Encryption) —— 防止窃听
HTTPS 使用了对称加密和非对称加密结合的方式:
- 非对称加密:用于在连接初期“交换密钥”。客户端用服务器的公钥加密,只有服务器的私钥能解开。
- 对称加密:一旦连接建立,双方就使用协商好的“对称密钥”来加解密后续数据。这样既保证了传输速度,又保证了内容不被中间人偷看。
B. 数据完整性 (Integrity) —— 防止篡改
HTTPS 在传输数据时会附带一个 数字签名(MAC) 。如果黑客在传输过程中修改了数据(例如篡改了转账金额),客户端在校验签名时就会发现数据不匹配,从而报错并拒绝接收。
C. 身份认证 (Authentication) —— 防止冒充
这是通过 SSL 证书 实现的。
- 如果没有 HTTPS,黑客可以搭建一个假冒的银行网站。
- 有了 HTTPS,浏览器会向 CA 机构验证该网站的证书是否合法。如果证书伪造或过期,浏览器会立刻弹出安全警告。
3. HTTPS 的工作原理(简化版)
- 客户端发起请求:向服务器请求 HTTPS 连接。
- 服务器返回证书:包含服务器的公钥和证书信息。
- 客户端验证:浏览器检查证书是否由权威机构颁发、是否过期。
- 协商对称密钥:客户端生成一个随机数(对称密钥),用服务器的公钥加密后发给服务器。
- 开始加密传输:双方从此开始使用这个随机数进行对称加密通信。
总结
HTTPS 不仅仅是为了“加密数据”,更是为了建立一套信任体系。在现代 Web 环境下(包括 iOS 的 App Transport Security 策略),HTTPS 已经成为了事实上的强制标准。