English  简体中文
   

Mesalink v1.0.0 发布,正式支持 TLS 1.3 和 IPv6,支持CMake编译,支持Windows,实现生产环境可用

2019-05-16       撰稿人:单淼


MesaLink TLS是百度安全实验室研发的下一代传输层安全(Transport Layer Security, TLS)库。201842日我们发布了MesaLink的第一个公开版本0.6.0。在过去的一年里,我们陆续发布了七个版本,并在百度的智能电视、智能音箱、智能车载等生产环境项目中得到了广泛的测试和部署,月活跃用户数量于2018年末突破1000万。在MesaLink满周岁的今天,我们正式发布MesaLink1.0.0版本,此次发布标志着MesaLink经受住了实战的考验,实现生产环境可用。我们期待MesaLink能够赋能更多智能终端设备,也欢迎更多合作伙伴加入,共同建设安全生态。

 

首先我们简要回顾一下MesaLink项目的历史。MesaLink2017年由百度安全实验室硅谷团队立项,其初衷是为了消除OpenSSL中诸如"心脏出血"等威胁通信安全的内存安全漏洞,并在多个场景透明替换OpenSSL

 

"心脏出血"是一个典型的由于C/C++语言的内存安全缺陷而引入的漏洞,安全专家戴维·惠勒(David Wheeler)曾撰文阐述使用C/C++这样的内存不安全语言开发OpenSSL是造成"心脏出血"危险因素之一。 尽管如此,OpenSSLGnuTLS等流行TLS实现依然在使用C/C++语言,而OpenSSL"心脏出血"之后又不断有新的内存安全漏洞被发现,例如CVE-2017-2800CVE-2017-3735等。

 

于是我们跨越了C/C++,转而使用一门新兴的语言:RustRust是一个内存安全的语言,近年来获得工业界和学术界的广泛关注。得益于其独特的所有权、生命周期、和零开销抽象等机制,Rust能够在接近C++性能的前提下提供强内存安全保证。虽然并不是用了Rust世界就安全了,但是有了Rust可以让开发者更专注于TLS协议本身实现的正确性和安全性。同时还有一个很大的挑战在于,如何使用Rust语言实现C语言的API,这关系到能不能让用户不用改代码,零成本用MesaLink透明替换OpenSSL

 

百度安全实验室硅谷团队作为使用Rust语言研发安全系统的先行者,在百度首席安全科学家韦韬“混合代码内存安全架构三原则”理念指导下进行了很多尝试。团队在Rust SGX SDKMesaLink MesaLock Linux等项目中积累了大量宝贵经验,成功打通了RustC语言的“任督二脉”,实现了安全可靠的Rust/C FFI交互接口,为MesaLink的部署和开源奠定了基础。

 

201842日,MesaLink发布首个公开版本0.6.0。次日即登上美国科技新闻网站HackerNews新闻热度榜第二名,并进入GitHub流行项目榜,位列Rust语言分榜第一名。这一年里承蒙社区的支持,MesaLink项目在GitHub上已经积累了900多颗星并还在不断增长中,MesaLink也得到了来自CloudFlareGoogle的同行的关注和支持,我们有幸能够为全球互联网基础设施建设贡献自己的一份中国力量。

 

MesaLink项目时间表:

 

·       20178月:混合代码内存安全架构三原则确立,MesaLink项目立项;

·       201712月:MesaLink 0.1.0版本开始内测;

·       201842日:第一个公开版本0.6.0发布,MesaLink进入OASES智能终端安全生态联盟;

·       20187月:百度深圳用户产品团队倾力支援,为MesaLink加入安卓支持,从而在安卓系统中实现透明替换OpenSSL/BoringSSL

·       20188月:0.7.0版本发布,支持TLS 1.3 Draft 28,兼容cURL

·       20188月:集成了MesaLink的百度电视助手上线,酷开电视和视九TV系统集成MesaLinkMesaLink月活跃用户突破百万;

·       201811月:MesaLink的工作发表在Rust社区核心会议RustFest上,获得了会议主办方与全球参会者的高度评价;

·       201812月:在CVTETCL、康佳、暴风等合作厂商落地,MesaLink月活跃用户突破千万;

·       20191月:0.8.0版本发布,支持百度BRPC框架,支持Intel SGX Enclave远程认证;

·       201942日:1.0.0版本发布,正式支持TLS 1.3IPv6,支持CMake编译,支持WindowsMesaLink实现生产环境可用。

 

1.0.0 新特性

 

MesaLink 1.0是一个重视性能的版本,对BRPC的服务器端做了性能优化。我们使用基于SwissTable的散列表实现了MesaLinkTLS会话缓存,所有的互斥锁和读写锁均使用了来自parking_lot项目的高性能实现,此外用户可以选择开启Rustjemalloc内存分配器。

 

我们在一台运行Ubuntu 16.04Intel Core i7-8086K工作站上,使用BRPC项目的SSL测试集测试了MesaLinkOpenSSL最新版的性能,双方均使用TLS 1.2ECDHE-RSA-WITH-AES-256-GCM-SHA384

 

MesaLink 1.0开始支持Autotools + CMake双构建系统。CMake的跨平台特性使得我们可以更灵活的在多个平台上编译运行MesaLink,包括WindowsVisual Studio。安装我们发布的MesaLink for Windows安装包后,用户可以在Visual Studio中链接使用MesaLink;我们也准备了对应的样例代码,参见examples/client/client_win.c文件。

 

最后,欢迎大家访问改版后的新主页:https://mesalink.io。百度安全实验室公众号和其他平台发布的MesaLink中英文文章会统一同步到网站的博客下。

 

结语

 

MesaLink是百度AIoT安全解决方案的重要组成部分,也是百度下一代AI安全技术栈的核心技术之一。从新一代安全技术的研发与开源,到为行业提供一体化安全解决方案,再到促进学术、企业、机构间多层面协作,百度安全实验室正在升级打造AI时代的安全生态,打破产业隔阂,避免生态碎片化,以此推动AI时代的安全生态建设。

 

文章来自OSChinaoschina.net),链接地址:https://www.oschina.net/news/105652/mesalink-1-0-0-released

中国密码学会电子认证专业委员会 版权所有
地址:北京市海淀区闵庄路甲89号 4号楼
联系电话:010-82546543-686
京ICP备05046059号-4