两年前有一篇标题十分有争议性的文章:“世界上最危险的代码” 。它的主题是什么?SSL,安全电子商务的基础。世界上最危险的软件居然是我们都在日常中或多或少使用过的技术。
这篇文章描述的问题并不是有着稳健技术的SSL协议,而是使用其客户端库建立会话的开发者。SSL非常容易使用,但是你必须小心而合适地使用它。文章的作者发现很多开发者并不是很谨慎,留下了很多协议上的漏洞。很多这些错误都是很基础的,比如没有完善的证书验证服务器和xin信任链。
另一个SSL缺陷的例子是上周苹果发布的关于IOS上SSL库的漏洞的警告。这个漏洞好像是因为一行多余的goto fail代码“潜入”了这个库的源码,可能是因为复制粘贴造成的。然而实际上漏洞就是这行多余的代码造成的。使用这个SSL库的用户不能完整地验证服务器证书,使他们留下了容易被利用的漏洞。
这个问题在质量评价时就应该被发现,但很明显没有。这件事的教训不是说明苹果不好-他们快速有效地做出了他们应有的反应-但是最好也会犯错。安全是很困难的。
既然安全如此困难,并且人们会经常犯错,我们应该怎样保护自己呢?答案是简化。复杂是好的安全性的天敌,因为复杂掩盖了问题。我们需要在基础原理上构建我们自己的安全体系来提高配置的对等验证和操作的持续审查。
尽管出现了这个公开的漏洞,但如果你正确地配置了SSL,基于SSL的安全解决方案仍是安全的。SSL是一项成熟的技术,而且在SSL库中出现的问题是很少见的。但这个周末事件引起了我们在引用第三方代码时对不正常的信任代码行的注意。很明显我们应该仔细审查我们信任的代码。但是我们也应该意识到会出现漏洞,而真正的考验是当出现漏洞并且有可用补丁时我们应该怎样有效地做出反应。当零日漏洞接近时简单的架构会很有帮助。
在周一的 RSA 会议上,CA 科技发布了我们新的手机安全交易开发包。我们设计这款 SDK 的目的是:对于手机开发者而言,开发接口要安全、简单。为此,我们使用了自动化身份验证过程、与 API 服务器建立安全连接等手段。如果开发者从沉闷的安全编程中解脱出来,他们就更不容易出错 — 不管怎样,可能需要进行简单的配置。这样,开发者可以集中于精品应用的开发,免于担心安全上的细枝末节。
除了提供安全身份验证和通讯外,这个开发包也提供了跨手机应用的安全单点登录(SSO)。提到单点登录,大部分人会立刻在脑中想起一个浏览器在多个 WEB 服务器上进行身份验证的画面。它是这个术语的常见的使用场景。但单点登录也可以应用于手机上的应用之间。应用不依赖于 iOS 和 Android 平台,却能在之间共享信息(例如身份验证的上下文),这是个难点。我们的开发包可以自动的、安全的实现它,为应用提供类似 VPN 的体验,却不带有手机 VPN 的负面体验。
让我向你保证,这不是另一个不透明的、专有的安全解决方案。层层剥离后,你会发现一个基于标准的 OAuth 和 OpenID 的连接实现。我们在 SecureSpan 网关的底层 PKI 系统之上建立了这个解决方案,利用它提供了更多的信任级别。
如果你在 RSA 会议大厅里看见我,不要犹豫,叫住我来个演示吧。或者顺便来访下 CA 科技的展台,我们能当场为你展示这个令人激动的新技术。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务