转载

AWS宣布全新的轻量级TLS实现——s2n

作为网络通信领域重要的安全协议, SSL协议 (Secure Sockets Layer,安全套接字层)及其升级版 TLS协议 (Transport Layer Security,传输层安全协议)一直为保证网络安全和数据完整性发挥着重要作用。这些协议位于可靠的面向连接的网络层协议和应用层协议之间,利用数据加密技术来保障互联网上数据传输的安全。然而,谷歌在2014年发现的 POODLE漏洞 (Padding Oracle On Downloaded Legacy Encryption vulnerability),暴露了SSL/TLS在安全方面的重大缺陷。由此,所有与SSL或TLS协议相关的服务都迫切需要修改安全协议,防范网络中利用该漏洞进行的攻击。近日,亚马逊AWS就推出了新的开源加密库 s2n ,来保证 AWS云服务 的安全。接下来,本文就对s2n的相关细节进行简要介绍。

TLS协议之前为保证亚马逊AWS相关服务的强安全特性作出了重大贡献。所有AWS的API以及面向客户的 弹性负载均衡(ELB) 、 AWS Elastic Beanstalk 、 Amazon CloudFront 、 Amazon S3 、 Amazon RDS 和 Amazon SES 等服务都在使用TLS协议。TLS协议的重大安全漏洞给AWS的安全性带来了很大的威胁。在震惊之余,AWS的安全团队开始不遗余力的进行漏洞的修补工作。该工作所面临的一个重大挑战就在于TLS协议本身及其可选的扩展已经变得十分复杂。以OpenSSL为例,其50万行代码中至少7万行代码与TLS相关。如果每一行代码都可能存在风险,那么针对如此大规模代码的代码审计、安全审核等将十分具有挑战性。为了简化TLS实现并保证强加密特性,ASW实现了一种新的开源TLS协议——s2n。

s2n为“Signal to noise”的简写,其寓意在于就是把有意义的信号变成看起来像是随机噪声的加密过程。在设计之初,s2n项目充分吸取了之前的教训,以简单化作为优先追求的目标。因此,s2n避免了很少使用的选项和插件的实现,仅用6000行左右代码就完成了协议的编写工作,实现了小巧、快速库的目标。审阅s2n由此也变得简单了很多。目前,AWS已经完成了3次额外的安全评估和渗透测试。s2n项目也已经开源,并放置在 GitHub 中。

在接下来数月,AWS将开始把s2n集成到若干AWS服务中。由于s2n已经实现了之前TLS中用户所使用的所有功能,修改后的ASW服务并不需要用户应用程序的任何改变,而且修改前后具有互操作性。此外,在s2n与OpenSSL的关系方面。OpenSSL包含了两个库——“libssl”实现了TLS;“libcrypto”则是一个通用的密码库。S2n只能算和其中之一的“libssl”库类似。因此,s2n并不会替代OpenSSL,且AWS也会继续为OpenSSL提供支持。

感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 AWS宣布全新的轻量级TLS实现——s2n )。

正文到此结束
Loading...