本文来自 tim.dierks.org/2014/05/sec…
90 年代中期 Netscape 和微软之间的浏览器大战极其激烈,竞争异常残酷。他们彼此视作死敌。
Netscape 开发了 SSL 协议。最初的版本存在密码学漏洞,很快就被攻破,甚至从未正式发布。首个投入生产使用的版本是 SSL 2,它被使用了好几年。(我不记得它具体出现在 Navigator 的哪个版本里了。)
SSL 2 存在一些缺陷,包括密码学上的和实际应用中的问题;这些问题虽不至于让更换协议变成一场危机,但从一开始就显而易见需要改进。
在这场你死我活的竞争中,微软决定对 SSL 2 协议做出一些自己的修改,制定了一个名为 “PCT” 的协议,它基于 SSL 2 派生而来。PCT 仅在 Internet Explorer 和 IIS(微软的服务器)中得到支持。
Netscape 同样也希望修复 SSL 2 的问题,但他们不会坐视微软在这个标准上取得主导地位或拥有控制权,于是他们开发了 SSL 3.0,这是一项更为重大的更新。
当时业界和社区中的许多人都不希望协议出现分裂。因此我们——我当时在 Consensus Development 工作,与 Christopher Allen 合作,并为 Netscape 合约开发了 SSL 3.0 的参考实现——主持了一场会议,召集了来自 Netscape 和微软的代表。我记不清所有参会者的名字,但记得 Bruce Schneier 当时也在(那时他还未成名),还有可能是 Paul Kocher(SSL 3 协议的设计者);微软方面由 Barbara Fox 代表。我们通过谈判达成了一项协议:微软和 Netscape 将共同支持 IETF(互联网工程任务组)接手该协议,并在开放流程中将其标准化。这最终促成了我成为该 RFC 的编辑。
作为这场“政治交易”(horsetrading)的一部分,我们不得不对 SSL 3.0 进行一些修改(以避免让人觉得 IETF 只是照搬了 Netscape 的协议),我们还不得不更改协议的名称(也是出于同样的考虑)。就这样,TLS 1.0 问世了(它其实就是 SSL 3.1)。而现在回头看,这一切似乎都有些滑稽。