主题
第六章 网络安全:加密、HTTPS 与防护
1. 安全到底在保什么:三个基本目标
网络天生是不安全的:数据要经过无数你不认识的路由器和线路,任何一跳都可能有人偷看、篡改、冒充。网络安全的所有技术,归根到底在保三件事:
- 机密性:内容不被无关的人看到——对应"加密"。
- 完整性:内容没有被中途篡改——对应"散列与校验"。
- 身份认证:对方真的是他声称的那个人——对应"数字签名与证书"。
拿到安全类考题,先问"这道题在保三个目标里的哪一个",思路立刻清晰。
2. 对称加密 vs 非对称加密
2.1 对称加密:一把钥匙锁和开
对称加密:加密和解密用同一把密钥。像家门锁——配了同一把钥匙的人都能开。代表算法:AES、DES(DES 已因密钥过短被淘汰,考试还常出现)。
优点是快,适合加密大量数据。致命短板是密钥分发问题:双方必须先安全地共享这把钥匙,可是在不安全的网络上,钥匙本身怎么送过去?用另一把钥匙加密这把钥匙?那另一把又怎么送?无限套娃。
2.2 非对称加密:一对钥匙各司其职
非对称加密:每人生成一对在数学上关联的钥匙——公钥公开给全世界,私钥绝不示人。规则是:公钥加密的内容只有对应私钥能解开,私钥签的名任何人都能用公钥验证。代表算法:RSA。
它优雅地解决了密钥分发:想给我发密信?用我公开的公钥加密即可,全世界只有握着私钥的我能解开——根本不需要事先共享任何秘密。像一个对外公开的投信口:谁都能投(公钥加密),只有信箱主人有钥匙取(私钥解密)。
代价是慢:非对称加密的运算量比对称加密大成百上千倍,用它加密整部电影不现实。
| 维度 | 对称加密 | 非对称加密 |
|---|---|---|
| 密钥数量 | 加解密同一把 | 公钥私钥一对 |
| 速度 | 快,适合大数据量 | 慢,只适合少量数据 |
| 密钥分发 | 困难(先有鸡还是先有蛋) | 容易(公钥随便发) |
| 代表算法 | AES、DES | RSA |
| N 人互相通信需要的密钥 | 约 N² 量级(每两人一把) | 2N 把(每人一对) |
于是实践中的标准答案是混合使用:先用非对称加密安全地交换一把临时的对称密钥,之后的大量数据全部用对称加密传输——非对称解决"钥匙怎么送",对称解决"数据传得快"。记住这句话,HTTPS 就懂了一半。
