脸书开源其每秒处理数百万次TLS交握的高效函式库Fizz
2018-08-09 17:02:05 | 来源:ithome | 投稿:阿呆 | 编辑:dations

原标题:脸书开源其每秒处理数百万次TLS交握的高效函式库Fizz

脸书对外开源其新一代传输层安全性TLS△1.3协议函式库Fizz,脸书提到,现在他们有一半以上的网际网络流量皆以TLS△1.3保护,每秒处理数百万次TLS交握,而新协议的功能0-RTT不仅降低了延迟,也替脸书每天减少数兆的服务请求CPU使用率。通过开源Fizz,脸书要让TLS△1.3更加普及。

TLS△1.3在今年3月底时已经拍板定案,重要的功能包括加密交握讯息,以确保凭证私密性,还重新设计了密钥导出方法,并且加入降低延迟的0-RTT(Zero△Round△Trip△Time△Resumption)技术。TLS△1.3不只提供最新的安全加密技术,还能减少延迟和运算资源使用率,因此对于拥有超过十亿用户的脸书来说,部署TLS△1.3成为一件重要的事,脸书为此开发了自家的TLS函式库Fizz。

Fizz以C++ 14撰写而成,是一个主打高效能且多功能的TLS函式库,现在脸书在全球的行动应用程序、HTTP函式库与伺服器Proxygen、企业内部服务甚至是QUIC和mvfst,全都部署了Fizz和TLS△1.3,大规模采用的情况下,脸书有超过50%的流量都以TLS△1.3保护,并且脸书还使用了TLS△1.3的最新功能0-RTT,来减少服务延迟。

效能一直是加密的权衡要点之一,网际网络工程任务小组(Internet△Engineering△Task△Force,IETF)在订定TLS△1.3协议时,也把效能考虑进去。脸书与IETF长期密切合作,在增加TLS安全性的同时,也没有忽略效能的重要性,过去他们使用了自定义的零协议(Zero△Protocol),率先实验建立0-RTT安全连接。使用0-RTT资料可以减少部署TLS的带来的请求延迟,以及延迟成本开支,脸书现在以TLS△1.3取代了自行开发的零协议。

脸书分析到,与TLS△1.2相比,TLS△1.3早期资料(Early△Data)在建立安全连线时,延迟明显减少,这能大幅提升使用者经验,尤其在应用程序冷启动,尚未存在任何可重复使用的连线时。脸书公布其在Android平台的应用程序测试结果,TLS△1.3早期资料比起TLS△1.2,在第50百分位数,连线建立阶段延迟可以减少46%,而在新连线HTTP请求延迟则减少10%。

Fizz提供了易于使用的API,让开发者可以在TCP连线建立后,立刻送出早期资料,而从脸书提供的资料显示,这对于减少行动装置应用程序的冷启动延迟非常重要。但脸书提醒,早期资料有其风险,因为骇客能够轻易通过重播资料,来让伺服器重复处理工作,为了降低这个攻击风险,脸书只传送在特定白名单中的请求作为早期资料,并且在负载平衡器中部署了重播快取,用来侦测并拒绝资料重播。

另外,Fizz还提供了零复制写入功能,进一步提升了加密应用效能。脸书提到,不少支援TLS的函式库都要求使用者提供完整连续的记忆体区块,TLS函式库会加密这些资料并且写入到Socket中,但通常装置中,应用程序会使用多个记忆体区块保存资料,因此应用程序需要把这些资料复制到连续的记忆体区块,供TLS函式库加密使用,而搬移资料的动作,增加了延迟开支。

而对于分散或是单一区块的记忆体资料,Fizz都能良好的处理,该函式库提供I/O的API,预设接受分散与聚集抽象输入,因此即便资料散落在记忆体各处,应用程序也不须要再花一道手续集中资料,不只更省时间,也减少了复制所占用的记忆体,因此Fizz能以更省的硬件资源处理加密工作。

脸书提到,TLS状态机很复杂,过去的漏洞都发生在TLS实作中的状态机。而Fizz为了管理复杂的TLS状态机,让状态机资讯外显,也就是说状态机的状态被定义在单一位置,并根据收到的讯息转换状态,脸书提到,将状态明确定义在单个位置就可以解决这类安全问题。

脸书在部署TLS△1.3并不顺利,遇到非常多的问题,不少是发生在网际网络中介装置上,可能由于对TLS不容错,而抛弃TLS协议交握或是重置连线。脸书通过与Firefox和Chrome合作,在多个协议变体上实验,在Fizz上修正了交握方法,并增加了数个变通方法来减少网络中介装置对于早期资料的干扰,因此Fizz现在已经能非常强健的处理TLS协议工作。

tags:

上一篇  下一篇

相关:

机器学习函式库TensorFlow 1.9正式支援树莓派

树莓派的应用越来越丰富了,除了Linux基金会旗下的EdgeX△Foundry其边缘运算物联网开发框架EdgeX以Go改写,指定树莓派3为官方平台外,现在Google与树莓派基金会合作,TensorFlow△1.9版本开始,也要正式支援树莓派,

GitLab开源资料分析解决方案Meltano

程式码托管服务GitLab释出资料科学团队的解决方案Meltano,可用于处理资料的提取、载入和转换等工作。Meltano并没有与GitLab原本的服务捆绑在一起,而是成为一个单独产品,目的在于填补通用资料应用在不同部门间的鸿

AndroidX移至Android开源专案,让社交能参与开发

为新的Android平台API提供向后相容性,用来取代Android支援函式库的AndroidX,现在由于Google内部的工作已经完成,因此整个专案将被推送到Android开源专案(Android△Open△Source△Project,AOSP)。此外,Google也

Uber开源内部使用的通用网页开发框架Fusion.js

Uber开源其内部使用的网页框架Fusion.js,该框架能够简化网页开发并产出轻量高性能的应用程序,支援React和Redux等热门函式库,也提供热模组重载、资料感知伺服器端渲染与捆绑拆分等先进功能。而且用Fusion.js开发的

科学家发现 : 金字塔汇聚电磁能量 有助制作高效能太阳能电池 | 香港 UNWIRE.HK 玩生活.乐科技

科学家最近发现吉萨金字塔的内室,可收集并储存电磁能量,发现结果将用作制造感应器和太阳能电池。这些神秘的建筑物是数千年前由埃及人兴建的。来自 ITMO 大学和 Laser Zentrum Hannover 的 Boffins 在其中一座金字塔

站长推荐: