吴教仁:百度HTTPS的新架构

刚才曹总给大家上了一堂哲学课,都还没有落地的。现在给大家讲一个在百度已经大规模落地的事情。关于百度在HTTPS方面的建议分享给大家。

阿里云是云计算里面的老大,请允许我先介绍一下百度云,因为它才成立两年。百度做公有云的时候,主要是把百度在分布式计算、分布式存储、十几年的经验开放出来,百度一直相信技术的力量可以改变世界,开放可以把技术的力量无限的放大。我们也在把百度在人工智能和大数据领域的一些优势技术逐步的开放给大家,所以百度云主要的基因就是人工智能、大数据和云计算,我们简称就是ABC。百度云的主要产品家族,虽然这个业务才成立了两年多,但是我们产品已经有几十款了,每个月我们会推出两到三款的产品。

百度在CDN方面,在全国部署有一万多台服务器,分别部署在各个省市,也接入了十几家的运行商,我们现在也把CDN的能力开放出来。

安全方面,百度云也是及其重视,我们为客户也提供了一整套的安全解决方案。在攻击方面,我们提供了预防攻击的项目,被攻击之后,我们也会提供详细的攻击报表。

在HTTPS方面,我们也做了很多的工作,HTTPS已经成为一个趋势,特别是从标准上面来说,HTTP的1.0、1.1,正在逐步的往HTTPS去演进。我们发现客户在访问服务的时候,存在大规模的劫持,特别是有一些地区,这种劫持率达到了1%左右。另一方面,我们业务对HTTPS的需求,还有百度帐号、百度云客户对HTTPS的需求。所以我们决定从HTTP向HTTPS转变。当单Worker在跑的时候,它的性能会降低60倍左右,主要是因为SSL握手能力,它的主要计算点是SRA的算法,这个算法是前端的,对计算资源的消耗是非常巨大的。除了技术的挑战,我们还面临规模的挑战。百度现在有20多款的业务,它的用户已经过亿了,百度的IDC每天要处理将已亿的HTTP的全球,百度的CDN处理近千亿的HTTP的请求,百度云开放出来之后,客户对HTTPS的需求级别也在逐步的增长。百度内部的web server容器,比如说Nginx、GO—BFE等等,很多。

一开始我们的策略跟大家类似,堆服务器。优化协议上面的事情,比如说Session共享、复用、使用ECC椭圆算法,来解决这些问题。后面我们采用了一批比较昂贵的高性能的CPU服务器,它相对于之前中低端的服务器有一到两倍的提升,发现还是只能承载小业务的流量,大业务的流量还是不敢用。我们想到利用一些SSL加速器处理器来加速。插上SSL这个加速卡之后,真的速度就开始飞了。我们发现把一个CPU和加速卡放在一起的时候,它的单机瓶颈不是在加速卡上,而是在CPU上面。左边这幅图是我们按照单机的处理能力只发挥出了加速卡一半的能力。这就带来两个问题,一个问题是加速卡比较昂贵,部署成本比较高。另外一个是对加速卡资源的浪费。一般公司做到这一步已经OK了。我们又往前进了一步。这是我们现在在百度数据中心内部,百度CDN内部在用的HDS的架构。就是把所有的加速卡我们集中放到几个服务器上面,一个服务器插N张卡。用这几台服务器组成一个HTTPS Server。这个结构有一个好处,它是可弹性的,不管是10万、20万数据中心的IDC,还是CDN,一两百台服务器的节点,或者是我们在国际化,几十台、一两百台的结合,都可以做,因为我们只要把下面的集群单机上面的加速卡增加或者减少,或者是增加减少加速服务器就可以了。

在这里给大家分享一下我们在协议栈方面的架构。第一点,把同构的web server改成了异构的。第二,通过调用下面的API,把加解密的配额弄过来,做加解密的过程。我们抽象了一层加速引擎抽象层,我们可以支持不同厂家的加速卡。不管像英特尔、PGA的加速卡我们都可以去支持。从而极大的降低我们部署的成本。

我们具体在哪一个过程里面已经做了这种加解密的工程,主要说一下两个密钥交换的套件,左边这个是IOC的密钥交换套件。把证书进行加密,加密完成之后,把证书不是在本机处理,而是给客方的加速集群。后续再有一些交换的操作就可以了。再比如说ECDHE密钥交换套件刚好是反过来,做完之后web server把信息反过来。我们现在仅仅只给ISA进行加速,没有对ECCI算法进行,ECCI56倍加解密的安全性已经非常高了。

未来百度HTTPS做两方面的事情:第一,我们会自研一款FPGA,我们对私钥的安全管理。现在我们私钥保护也是非常严格的。包括做了一些门槛保障私钥的安全性,但是我们还是觉得不放心,因为客户把私钥交给我们的时候,我们就有责任做的更好。所以我们后面计划要做一款FPGA的加速卡,客户把私钥给我之后,我把私钥直接写入加速卡,私钥只能更新,不能写入,一旦写入之后,我们就把这个东西在公司服务器上所有的进行销毁。同时,私钥也不能在内存上面做一些加解密,全部都在内存卡上完成。FPGA卡如果坏了,也会进行物理的销毁。英特尔最近在跟我们做一个SKM的方案,这个方案是加了一些可信芯片,相对于我们自研的在安全性上还是差一点的。

针对刚才说的体系架构,性能瓶颈还是在web server上。我们会进一步在HTTPS协议上做优化。第二,我们在跟进TLS1.3标准,也在积极推动。第三,用户态协议栈方面的工作。

我们现在还有一些岗位,大家可以投我们,我们是实实在在做事情的,不是哲学家。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/18208.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于16-12-08
0