在 2012 年 8月, 他们发表了可以生成其持有者是Google的整数. TÜRKTRUST当然会宣称这完全只会是“一个一次性错误”,也就是说“不会涉及任何犯规的操作”,并且“它永远也不会再发生一次了”。
没有人会相信它的只言片语.
然而,你的浏览器可仍然默认是相信他们的,仅仅因为它相信其他或多或少的有嫌疑的机构是说实话的. 因此我们就使用一个带有臃肿漏洞的软件来进行链接,相信幕后有政府渗透的CA来确保我们在和谁通信?
肯定有更好的办法,对吗?
然而并没有更好的办法.
我们从来没有发现两个之前从来没打过交道的组织建立安全通信通道的更简单的办法. 一直到非对称加密 (1973-1977)被开发出来之前,这都被认为是不可能的. 而如果你想要知道谁在连接的另一端,唯一的办法是相信一个宣称知道这一信息的第三方机构. 没有什么数学或者加密领域上的突破会改变这个现状,因为我们的身份是社会结构,而不是物理实体.
因此,如果我们想要电子商务运作起来,我们就不得不去运行这些有缺陷的代码,而我们应该实现一些比"CA-黑手党"更加值得信任的东西。
而这又让我回到了OpenSSL — 它很烂. 代码糟糕透了,文档也存在误导, 而默认的东西都是在忽悠扯淡. 再加上其30万行代码使其承受这任何你可以想象得到的软件工程领域的痼疾:
没有架构在中心的权威机构
6,740 行 goto 语句
内联汇编代码
多种不同的编码风格
宏预处理器的晦涩运用
不一致的命名约定
太多的选择和选项
不能被理解的僵尸代码
存在误导和不连贯的注释
如此种种.
而这不是任何人的错误.
没有人真正负责过 OpenSSL, 它也就成为了发明加密原型的默认垃圾清理场之类的东西, 而由于都是在光天化日之下 (就在你能发现如何使用它的某处)加密所有的东西, 它也成了机密功能的默认来源.
我敢肯定有不止一个人曾近想过“没有人会因为使用了OpenSSL而被解雇".
而这就是在我写下这篇文章的时候网上的每个人都会感到恐慌的原因.
这个漏洞是非常糟糕的,即便是作为OpenSSL中的漏洞, 而我在ACM Queue的合作专栏作家, Kode Vicious, 曾近设法去寻找一线希望: "因为他们使用的是一个 '短' 整形, 只有64KB价值的秘密被曝光了."
而这不是第一个也不会是OpenSSL中最后一个严重的漏洞 , 而由于其永远都不会好转,OpenSSL 必死无疑.
我们需要一个设计良好的 API, 尽可能简单到使得人们很难去错误的使用它. 而我们需要针对这个API的具有独立品质的实现, 以便如果其中一个不行了,人们可以在几个小时之内切换到另外更好的一个.
到底是爱它还是讨厌他? 请让我们了解到吧。
OpenSSL 的详细介绍:请点这里
OpenSSL 的下载地址:请点这里