PGP 必须死,为什么?
PGP 是一个加密程序,提供数据通信需要的密码支持。互联网的早期,为了保障邮件内容不被泄漏,人们开发了加密软件 PGP,尽管它被用的很广泛,但它难用隐患又多。不好用的点在于:
- PGP keys 对机器友好,对人类不友好,其传输和验证过程需要引入组件 key servers 和 public key fingerprints。这个过程其实还是蛮容易被恶意攻击者抓到漏洞从而被攻破:从 key server 根据 fingerprint 取回 key 的过程一来从公网走泄漏了请求,二来可能被中间人篡改成了假 key。
- PGP key 管理不好用。在 WebMail 领域,解决方案可以是 "Web of trust": 每个人都互相签署对方的 Key,尽管这个方案并不多人用。另外的解决方案是信任 Google / Yahoo / Keybase.io 这样的机构。甚至,我们可以通过 Signal 这样的应用交换密钥。但大家都不这样做。
- 不支持前向安全。前向安全指的是,就算无法摧毁密文,至少可以在用完密钥后丢掉密钥(这样加密过的消息就没人读的出来了,所以前面发的消息就是安全的了,所以叫前向安全)。
- OpenPGP 用到的很多算法其实都是已经被证明不合格,并且至今椭圆曲线算法还没被支持。
- 客户端支持很糟糕。