HTTP 已普及,为何仍需 HTTPS?
HTTPS 是 HTTP 协议基础上引入的加密层。由于 HTTP 内容按文本明文传输,传输过程中可能被篡改。
一、什么是加密和解密
加密是将明文(要传输的信息)进行变换生成密文;解密是将密文还原为明文。此过程需要密钥辅助。
案例:古代奏折中夹带挖洞的纸作为密钥,可隐藏关键字信息。
现代密码学已成为独立学科,奠基人包括艾伦·麦席森·图灵和冯·诺依曼。图灵在二战中破解德军 Enigma 机,奠定了计算机、人工智能及密码学基础,其名字被用于计算机领域最高荣誉'图灵奖'。
二、为什么需要加密
技术往往在实践中暴露问题并寻求新方案。
运营商劫持示例: 下载应用时,若未被劫持,点击按钮弹出正确下载链接;若被劫持,则弹出其他软件(如浏览器)的下载链接。
原因: 数据包经过运营商网络设备(路由器、交换机等),设备可解析并篡改数据内容。客户端向服务端发送请求,服务端响应被截取后,攻击者将目标替换为恶意地址。
风险:
- 隐私信息暴露。
- 响应被篡改。
- 中间人攻击(监视和攻击)。因此 HTTP 需通过 SSL/TLS 加密方案解决,统称为 HTTPS。
注:大多数截获旨在获利,若成本高于收益通常不会发生。但黑客也可利用类似方法(如钓鱼 WiFi)窃取支付密码等敏感信息,明文传输非常危险。
SSL 安全性: SSL 并非绝对安全。随着算力增强,攻破难度降低,需持续维护更新。自行编写加密协议风险更高。
三、常见的加密方式
3.1 对称加密
采用单钥密码系统,同一密钥同时用于加密和解密。
- 特征: 加解密密钥相同。
- 常见算法: DES、3DES、AES、Blowfish 等。
- 特点: 算法公开、计算量小、速度快、效率高。
- 示例: 按位异或运算。明文 a=1234,密钥 key=8888,密文 b=a^key=9834;再次运算 b^key 还原明文。
3.2 非对称加密
需要两个密钥:公钥(public key)和私钥(private key)。
- 特点: 算法复杂、安全性高,但速度慢于对称加密。
- 常见算法: RSA、DSA、ECDSA。
- 配对关系: 公钥给谁都行,私钥仅持有者可用。
- 场景:
- 公钥加密,私钥解密(保密通信)。
- 私钥加密,公钥解密(数字签名/验证身份)。
- 生活示例: A 给 B 送文件,B 提供锁(公钥)和钥匙(私钥)。A 用锁锁住盒子,B 用钥匙打开。
四、加密过程中用到的技术
4.1 数据摘要与指纹
利用单向散列函数(Hash 函数)生成固定长度的数字摘要,用于判断数据是否被篡改。
- 常见算法: MD5、SHA1、SHA256 等。
- 特征: 不可逆,无法从摘要反推原信息,用于数据对比。
- 应用场景:
- Session ID:将用户名和密码转化为唯一标识存储,登录时比对摘要确认合法性。
- 资源上传:生成文件摘要,服务端查重,避免重复上传相同文件。
4.2 数字签名
将数字摘要进行加密即为数字签名,用于后期证书验证。
五、HTTPS 方案探究
5.1 方案 1:只使用对称加密
双方持有同一密钥 X。即使数据被截获,黑客无密钥无法解密。


