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

这是英特尔支持下的,如果想进行密码操作的话,比如对数据进行签名,如果想用硬件来做的话,这个操作是阻塞的,必须得等硬件返回,代码流程才能继续往下走。很多加密卡的厂商不得不去发布一个OpenSSL版本,这个东西的升级和维护特别困难,所以英特尔在1.1.0版本里面提供了资金支持去进行开发。

另外一个算法层面的就是ChaCha20和Ploy1305,这两个算法是谷歌贡献的,主要是使安卓在Lilnx环境下的数据加密性能下使得手机电量性能变小。我们重构了SSL协议的状态机和PACKET机制。

在开发流程的变化,早年OpenSSL开发的时候非常不规范,内部有一个封闭的代码库,基本社区觉得这个好,就把一个贡献代码合并到库里。我们现在最新的策略是从2014年开始把所有的开发重心全部转移到Github,大量使用了Travis—CI,AppVeyor等集成插件,所有的代码评审核定到代码库当中必须经过公开Pull Raques评审。OpenSSL一方面会提供很多的库名调用,本身也是一个工具集,所以有时候直接用OpenSSL到各种产品里,比如说很多密钥管理系统都会直接用到这个。

在社区建设方面,我们在2014年底仿照其他开源社区,上线了一个官方博客,会时不时发布一些社区的事,各种跟项目相关的事。官方改版,以前的版本是九几年设计的,2015年的时候也是在其他人的帮助之下,把这个官方改得还算是比较现代化。

另外一个比较大的事就是启动License切换,之前的协议写得比较糟糕,国内关心的人可能不是那么多,但是在国外的开源社区是比较大的一个事,因为它可能会引起法律的问题,你的开源项目是不是被其他的产品更多的使用,或者被其他的开源项目集成进来,后续我会具体讲。

去年9月份,我们邀请社区当中的五个比较核心的人来到中国,在上海、深圳、北京这几个地方分别拜访了一些中国比较大的IT公司,主要目的是探讨中国市场的需求,以及希望中国能涌现更多的社区参与。另外就是希望把这个项目推到国际上,OpenSSL的市场占有率特别大,如果我们自己国家有一个标准,对于在国内的推广可能会更一些。

开源许可证更换,我们已经确定在下一个版本1.1.1的版本中直接切换到Apache License2.0上,切换原则上是要经过所有提交代码的人同意,如果你不同意的话,我只能给你剔了。这个事2015年9月开始启动,2017年开始提交用户,我们现在能拿到的只有一个姓名和邮件,梳理出600多个人,三万多的提交。比较幸运的是99%的人都同意,但是也有一些人不同意,所以我们删的一些东西,现在感觉对整个项目的功能影响不是很大。

但是现在大概有十多个人联系不上,因为1.1.1这个版本今年5月份左右就要释放,还有十一二个人,现在正在全球范围内各个社交媒体寻找最后的十多人。OpenSSL官网上有一个链接,如果大家有兴趣帮我们去找这些人的话,可以去看一下,如果这里面有你认识的,麻烦跟他们说一下是同意还是不同意,如果到期要是不同意的话,没有明确表态,只能把你当成拒绝切换的这种情况来进行处理了。

社区策略的变更在去年年底又进行了一次讨论,还要再公开一下,要彻底取消OpenSSL—dev邮件列表,合并到OpenSSL—user.任何加入到OpenSSL的算法应该基于国家或者国际标准,相当于给我们的算法提供了合法性,这些东西以前没有,以前什么算法都可以加入到OpenSSL,所以我觉得这是一个比较好的事。

OpenSSL1.1.1这是今年马上要发布的一个非常关键的版本,重要性不比1.1.0差。有6个pre版,按照时间节点,我们现在刚过pre3,刚过beta版,4月3号到17号,一直到5月1号再经过三个beta版,如果没有问题的话,5月份会启动流程,再观察一周,没有问题的话,预计5月15号左右正式发布这一版。

这个版本的特性大概有以下几个,当然最关键就是TLSv1.3,这是整个互联网安全链最近几年非常关注的,因为TLSv1.2协议被关注很久了,1.3在性能和安性方面提升特别多。随机数生成器比以前更安全,增加了SHA—3,和STORE模块,支持之后你可以把管理工作当成一个小的密钥管理系统来用了。支持多素数RSA,可以减小对硬件的损耗,提高预算性能。中国国密算法SM3和SM4也会发布,SM2算法最近也公布了,所在1.1.1版本当中,我们会看到来自我国的三个算法,就是SM2、3、4. TLSv1.3的协议在标准化过程中会影响我们这个版本的释放,我得到最新的消息应该是明天会最终提交到委员会,在这个月或者下月初就会释放。全新的随机数生成器,这个就不具体聊了。