OpenSSL代码贡献榜华人第一杨洋:后心脏滴血时代的OpenSSL

2018年3月21-22日,由中国信息通信研究院主办、中国通信标准化协会支持的"OSCAR云计算开源产业大会"在国家会议中心举行。

随着云计算技术的日益发展,并开始进入“深水区”,开源技术与云计算融合的程度进一步加深,并开始成为产业发展的重要支撑。"OSCAR云计算开源产业大会"将邀请行业内多位大咖与权重人物共同探讨、交流云计算开源技术、研发、治理、产业化方面的经验,探索开源与云计算的创新发展新路径。

OpenSSL代码贡献榜华人第一、白山架构师杨洋,他带来的主题是《后心脏滴血时代的OpenSSL》,以下为演讲全文:大家下午好,我今天讲的跟开源更贴近一些。我今天为什么讲这个话题呢?主要是因为现在这个时间点是一个特别寸的点,2014年4月份,正好心脏滴血漏洞爆出来,公开是4月份,实际上大概是在3月下旬,所以今天这个时间应该是整个漏洞爆出来整四年的时间点。很多人好奇四年时间过去了,OpenSSL这个项目在经历了这么长的时间以后,究竟发展成什么样了,是不是还像当时那样代码写得特别烂,产品质量特别差。我今天想借这个机会跟大家讲讲过去四年中,我们整个社区在做的一些事,包括代码质量提升、社区建设的几个方面。

杨洋

杨洋

这是我的个人基本信息,我现在是白山云的全职雇员,在到白山之前我主要做的就是传统的安全工作,包括传统的网络安全开发等等。如果聊后心脏滴血时代,最早还是要从心脏滴血开始说起,CVE—2014—0160,这是非常庞大的一个bug,可以导致服务器当中的敏感数据被窃取,包括用户名、密码、密钥、非对称的证书,在你的数据库当中保存的敏感数据都有机会被窃取到。bug的原因是因为一个非常简单和低级的错误,用钱无法衡量这个经济损失大概有多少。2017年1月份的时候,互联网还有接近20万个域名还在运行着这几个受威胁影响的判断。

心脏滴血这个事情发生之后,给整个社区带来的影响非常之巨大,批评的声音特别多,当然这个项目本身也得到了巨大的空前的关注,以前没有人去特别关注这样一个如此底层的加密库。从这个事件之后,我们最直接的好处就是收到了很多来自于个人和企业的捐款,项目突然有钱了,有钱之后就可以雇一些专职开源工作者去完善。

另外一个比较大的事情,我认为是它促成了CII的成立,CII是Lilnx基金会联合了十几家全球大型的IT公司,包括像英特尔、微软,中国的华为,成立了一个项目,因为这个心脏滴血漏洞在整个国际开源社区里引起了一个特别激烈的反思,为什么我们整个互联网基础都是基于开源软件前提下,但是现在很多开源软件的关注点不够,资金短缺,产品质量特别差,如果长时间下去的话,是不是互联网机组要垮掉。所以,Lilnx基金会牵头成立了一个CII项目,目的就是致力于去帮助这些在互联网中广泛应用但是当前的发展状况还不是特别好的开源项目,把它们变得更好。

当然OpenSSL作为心脏滴血惹了这么大祸的项目,肯定是作为第一个纳入到CII当中去的项目,CII给了整个项目很大的帮助,包括在法律、社区建设、代码的开发流程和团队的组织,甚至包括直接给我们提供资金去雇人。

我接下来会按照时间顺序讲一下这四年当中OpenSSL掌握的几个主要的发布版本。1.0.2严格意义上来讲,它并不是一个后心脏滴血时代的版,正在发beta版的时候正好是心脏滴血爆发的时候,研发之前心脏滴血就已经做了,由于漏洞影响特别大,所以一直推迟到2015年1月才释放出来。为什么还要讲这个版?它在OpenSSL产品历史上头一次引入了LTS版本,长期支持版本的意思是说它从2015年会直接支持到2019年底,每隔四年会释放一个LTS,这在OpenSSL过去20年的历史上都是没有的。

第二个版本是升级版1.1.0,这也是目前互联网上使用最多的版本,距离上一个版本将近两年左右的时间发布的一个新版,但是它不是一个长期支持的版本。这个版本的生命周期将会在最新的1.1.1版本发布之后继续持续支持一年。我说的继续支持是指不会增加新的功能,只会进行bug和安全性能的修复。它基本上是属于一个脱胎换骨的产品,整个团队花费了大量的时间和精力去开发。OpenSSL诞生的时间特别长,在1995年左右,那时候支持的操作系统特别多,很多操作系统现在已经消亡了,如果在1.0.1当中我记得还是支持dos,现在已经没有人用了。新的平台策略现在只支持三个平台。另外一个改进是不安全算法的移除和默认关闭,特别不安全的协议直接从代码中删除掉,默认关闭是像24或者其他的安全系数比较低的加密算法。编码风格进行了转换,以前的代码阅读体验特别差。另外一个就是隐藏结构体,所有库当中的结构体都可以直接在应用程序中访问,为了安全起见,更加面向对象化,所以从1.1.0版本里面只能通过API访问数据。