关注网络安全
和行业未来

SSL: 看则简单却难以实现——SSL lab创立者Ivan Ristić专访

本文由Juan C. Perez于2016年12月12日发表在Qualys News, Qualys Technology, SSL Labs

尽管SSL/TLS对于互联网通信的私密性、完整性和安全性来说至关重要,但该协议只在很少一部分网络服务器上被达到了最佳状态,也就是说,大部分网站和web应用并没达到应有的安全性。而这便是知名信息安全专家、信息安全研究者、工程师、作家Ivan Ristić花费数年研究SSL/TLS的原因。

2009年他发起成立了SSLLabs.com,提供SSL/TLS工具、研究成果和文档,2010年他带着SSLLabs.com加入了Qualys,一直运营该网站到2016年中,那时他成为咨询顾问。在他的领导下,SSLLabs.com成为事实上的安全服务器评价标准和那些寻求改进自己SSL/TLS配置的机构的必去之处。

近日,我们获得了采访Ivan Ristić本人的契机,并从他那里了解到SSL/TLS的挑战、最佳方案和趋势。

在你的“SSL/TLS部署的最佳方案”的引言中,你把SSL/TLS描述为一项“看上去简单但并不容易正确部署的技术”。主要原因是什么?

因为它表面上看起来简单,但你通常看到的只是冰山一角。在下面有很复杂的层次,但却没有任何提示。

问:通过多年的努力,你尝试帮助填补了诸多SSL/TLS工具和文档之间的空隙,是否还有更多空白需要填补呢?这对服务器整体安全性又有什么影响?

不,我们不需要更多文档。这里有两个问题。一是有很多免费文档是错误的或不完整的,或既错误又不完整。所以大部分人在网上浩如烟海的文档库中很可能找不到合适的文档。

有些人可能碰巧读过我的书“Bullet Proof SSL和TLS”。这本书的描述简单易懂,无奈550页实在是太长了。大部分人没有时间去读这本书,更不用说正确部署安全服务器了。

我们需要的是简化SSL/TLS的部署,这样我们就有现成的东西可用了,而且我们需要掌握的知识也少多了。

在这件事上,TLS1.3已经实现了一部分,它移除了很多多年来积累的繁琐的东西,但在这个协议之外,还有很多复杂的东西需要我们学习。但那都是将来的事情。而现今,阅读合适的文档并完整认识将要面临的威胁,才是保障网站安全的基本。

问:在最近的一篇Qualys博客中,你提到,超过40%的SSL Pulse监测的网站的配置可以认为是“好”的,但只有约3%得到了理想的“A+”,尽管SSL/TLS对web应用和网站的互联网通信的私密性、完整性和安全性至关重要。为了促进SSL/TLS在整个行业内的正确部署,需要在用户训练、销售商默认设置或工具自动化方面做些什么?

最近我们已经在加密系统嵌入到基础设施方面向前迈进了一大步,这绝对是一个很好的办法。今天,有数百万人将他们的网站在互联网上托管。让他们的托管服务提供商正确部署加密系统比试图说服他们每个人要简单得多,例如Let’s Encrypt。他们的免费证书使每个人都能获得一个有效的公用证书。

问:对刚刚接触这个话题的人,你会告诉他们什么是好的SSL/TLS实现的关键要素?

对一般人,我会说没什么要担心的。没多少需要做的,如果说有的话,即便并非所有事情都能达到完美,他们也是足够安全的。对网站来说,两个关键要素是有效证书和HSTS。当然,价值较高的网站需要做更多事情,但他们也有更多时间可以用来关注他们的安全问题。

问:为什么理解PKI和它的细节就像了解它的标准、管理方式、生态系统的缺陷和未来可能的改进一样重要?

互联网PKI是为“用户安全”而工作的。有一些方法可以使其更安全,但在你付诸实施前,你需要理解它的缺陷。一旦你这么做了并且意识到你需要更多安全性,你就会去部署像公钥绑定那样的先进技术。

此外,我们做的并不太好的一件事就是证书的撤销。大部分企业都应该了解其背后隐藏的危险。

问:在你的书中,你试着主要为三类读者解决问题,化解担忧,满足需求。他们是系统管理员、开发人员和经理。为什么这三种群体都需要关注SSL/TLS呢?他们在SSL/TLS上面临的主要挑战是什么?他们肩负的责任又是什么?

我认为主要挑战是与其他团队的沟通!这是SSL/TLS难以正确应用的原因:每个团队都必须做正确的事情,这样才能确保整体安全。

问:HTTP是这本书中的重要部分。为什么在讨论SSL/TLS时,应该给予HTTP更多的关注?

有两个原因。一个是HTTP是如此内容丰富和功能强大的协议。SSL/TLS是设计用来保护单个TCP客户端——服务器连接的,但HTTP和浏览器为其添加了更多复杂的层次,有cookie、单页多资源等等。越复杂的地方越容易产生安全问题。

第二个原因是HTTP是一个很普及的协议,这意味着攻击面很大。现在人人都需要自己的网站!

问:为什么你把一个服务器私钥和证书看作一个好的SSL/TLS实现的基本模块?

今天,任何想要安全地进行通信的网站都需要一个安全私钥和一个公用可信证书。因为加密通信从认证开始。如果其他人冒充了你,那么你的秘密就泄露给他了。

问:你能给那些想部署SSL/TLS又不希望影响他们网站或app的性能的人们分享一些好的方案吗?

如果你关心性能——不论有没有TLS——把网站部署在CDN上。这样就能确保网络延时最小化。如果你找到一个好的CDN,他们可能很好地做了优化,这样你就不用担心任何事了。

如果我单独提一件事,那会是尽可能持久保持HTTP连接的开放。在相同连接上维护很多HTTP请求意味着不需要进行新的TLS握手。这大大提升了性能。

问:SSL/TLS前向安全性功能的重要性在哪里?

SSL和1.3版本之前的TLS协议允许不支持前向安全性的密钥交换。除非在配置服务器时做了适当的设置,否则就可能在服务器私钥和每个到服务器的单个连接之间建立紧密的联系。这样,一个强大的攻击者就能记录加密的通信,随后从服务器恢复密钥(例如,通过入侵服务器来进行)以解密所有内容。显然,这就宣告了加密系统的失败。

好消息是前向安全性并不太昂贵,而且在大部分情况下只需重新配置服务器就可以部署它。

问:在最近的一篇关于更新SSL Labs的分级标准的博客中,你强调了使用AEAD套件和HSTS的极端重要性,你说网站如果想要评级为A+,就必须使用AEAD套件和HSTS。你为什么认为这两个功能对稳定的SSL/TLS实现来说如此重要?

在两者中,HSTS更重要。事实上,全面启用HSTS是你为了加密安全所能做的最棒的事。因为HSTS启用了证书警告,而证书警告极易受到攻击。大家都应该启用HSTS。

AEAD套件是一项能够确保我们规避CBC套件的固有风险的改进措施。幸运的是,大部分TLS库都有针对其弱点的改进措施,但在发现更多问题之前,我们需要转移到AEAD上来。

 

稿源: SSL Lab

评论 抢沙发