AWS公布TLS加密开源代码库s2n

jopen 9年前
 

AWS公布TLS加密开源代码库s2n

强加密是AWS的四大特性之一,谈到这一特性,我们不得不提到TLS(之前叫做SSL)加密协议。TLS在AWS上有广泛的使用,所有AWS的 API,所有面向客户的服务包括弹性负载均衡(ELB)、AWS Elastic Beanstalk、Amazon CloudFront、Amazon S3、Amazon RDS和 Amazon SES中都有使用。

过去的十八个月当中TLS协议经历了许多重大变动。印象深刻的是我们认识到一些TLS算法缺陷比之前所想的要严重的多,一些安全研究也发现了 TLS在实施过程中的问题。整体来说,这些开发工作都有取得了积极的进步,提升了安全性,但在这过程中也发生了许多费时费力的事情,比如软件升级和证书 rotation这些。

过程中遇到的一部分挑战在于,TLS协议自身以及所有的可选扩展都已经变得非常复杂。以OpenSSL为例,总共50万行代码中就有7万行代码跟TLS相关。通常来说,每一行代码都有出错的风险,大批量的代码无疑将为代码审核、安全审核、性能和效率都会造成一定影响。

为了简化TLS,让每个人都能用到强加密,我们很高兴的向外界公布全新开源的TLS协议:s2n。s2n是一个轻量级的库,注重快速和简化。 s2n去掉了不常用的选项和扩展,如今只有大约6000多行代码。于是我们会发现,s2n的检视非常轻松,而且s2n还经过了三个外部的安全评估和渗透测 试,这一方面我们还将继续深入。

未来的几个月中,我们会把s2n集成到一些AWS服务当中。TLS是一个标准化的协议,而s2n实现了我们(AWS)用到的那些功能,所以你无需在自己的程序中做出任何改动,所有东西都还将继续保持互操作性。

如果你对s2n感兴趣或者想为s2n做点什么,你可以在 s2n GitHub 库中找到源代码、文档、提交和更改信息。

s2n并不是为了取代OpenSSL,我们还将继续为Linux基金会的核心基础设施计划(Core Infrastructure Initiative)提供支持。 OpenSSL提供了两个主要的库:“libssl”实现TLS, “libcrypto”是一个通用的加密库。你可以把s2n看做是“libssl”这部分。

为什么叫“s2n”这么个名字呢?s2n是“signal to noise”的缩写,它把有意义的信息转通过加密伪装转换成无意义的随机噪音。(作者:Stephen Schmidt  译者:朱朋博)