内容简介:MesaLink TLS是百度安全实验室研发的下一代传输层安全(Transport Layer Security, TLS)库。2018年4月2日我们发布了MesaLink的第一个公开版本0.6.0。在过去的一年里,我们陆续发布了七个版本,并在百度的智能电视、...
MesaLink TLS是百度安全实验室研发的下一代传输层安全(Transport Layer Security, TLS)库。2018年4月2日我们发布了MesaLink的第一个公开版本0.6.0。在过去的一年里,我们陆续发布了七个版本,并在百度的智能电视、智能音箱、智能车载等生产环境项目中得到了广泛的测试和部署,月活跃用户数量于2018年末突破1000万。在MesaLink满周岁的今天,我们正式发布MesaLink的1.0.0版本,此次发布标志着MesaLink经受住了实战的考验,实现生产环境可用。我们期待MesaLink能够赋能更多智能终端设备,也欢迎更多合作伙伴加入,共同建设安全生态。
首先我们简要回顾一下MesaLink项目的历史。MesaLink于2017年由百度安全实验室硅谷团队立项,其初衷是为了消除OpenSSL中诸如"心脏出血"等威胁通信安全的内存安全漏洞,并在多个场景透明替换OpenSSL。
"心脏出血"是一个典型的由于C/C++语言的内存安全缺陷而引入的漏洞,安全专家戴维·惠勒(David Wheeler)曾撰文阐述使用C/C++这样的内存不安全语言开发OpenSSL是造成"心脏出血"危险因素之一。 尽管如此,OpenSSL、GnuTLS等流行TLS实现依然在使用C/C++语言,而OpenSSL自"心脏出血"之后又不断有新的内存安全漏洞被发现,例如CVE-2017-2800、CVE-2017-3735等。
于是我们跨越了C/C++,转而使用一门新兴的语言:Rust。Rust是一个内存安全的语言,近年来获得工业界和学术界的广泛关注。得益于其独特的所有权、生命周期、和零开销抽象等机制,Rust能够在接近C++性能的前提下提供强内存安全保证。虽然并不是用了Rust世界就安全了,但是有了Rust可以让开发者更专注于TLS协议本身实现的正确性和安全性。同时还有一个很大的挑战在于,如何使用Rust语言实现 C语言 的API,这关系到能不能让用户不用改代码,零成本用MesaLink透明替换OpenSSL。
百度安全实验室硅谷团队作为使用Rust语言研发安全系统的先行者,在百度首席安全科学家韦韬“混合代码内存安全架构三原则”理念指导下进行了很多尝试。团队在Rust SGX SDK、MesaLink、 MesaLock Linux等项目中积累了大量宝贵经验,成功打通了Rust与C语言的“任督二脉”,实现了安全可靠的Rust/C FFI交互接口,为MesaLink的部署和开源奠定了基础。
2018年4月2日,MesaLink发布首个公开版本0.6.0。次日即登上美国科技新闻网站HackerNews新闻热度榜第二名,并进入GitHub流行项目榜,位列Rust语言分榜第一名。这一年里承蒙社区的支持,MesaLink项目在GitHub上已经积累了900多颗星并还在不断增长中,MesaLink也得到了来自CloudFlare和Google的同行的关注和支持,我们有幸能够为全球互联网基础设施建设贡献自己的一份中国力量。
MesaLink项目时间表:
-
2017年8月:混合代码内存安全架构三原则确立,MesaLink项目立项;
-
2017年12月:MesaLink 0.1.0版本开始内测;
-
2018年4月2日:第一个公开版本0.6.0发布,MesaLink进入OASES智能终端安全生态联盟;
-
2018年7月:百度深圳用户产品团队倾力支援,为MesaLink加入安卓支持,从而在安卓系统中实现透明替换OpenSSL/BoringSSL;
-
2018年8月:0.7.0版本发布,支持TLS 1.3 Draft 28,兼容cURL;
-
2018年8月:集成了MesaLink的百度电视助手上线,酷开电视和视九TV系统集成MesaLink,MesaLink月活跃用户突破百万;
-
2018年11月:MesaLink的工作发表在Rust社区核心会议RustFest上,获得了会议主办方与全球参会者的高度评价;
-
2018年12月:在CVTE、TCL、康佳、暴风等合作厂商落地,MesaLink月活跃用户突破千万;
-
2019年1月:0.8.0版本发布,支持百度BRPC框架,支持Intel SGX Enclave远程认证;
-
2019年4月2日:1.0.0版本发布,正式支持TLS 1.3和IPv6,支持CMake编译,支持Windows。MesaLink实现生产环境可用。
1.0.0 新特性
MesaLink 1.0是一个重视性能的版本,对BRPC的服务器端做了性能优化。我们使用基于SwissTable的散列表实现了MesaLink的TLS会话缓存,所有的互斥锁和读写锁均使用了来自parking_lot项目的高性能实现,此外用户可以选择开启Rust的jemalloc内存分配器。
我们在一台运行Ubuntu 16.04的Intel Core i7-8086K工作站上,使用BRPC项目的SSL测试集测试了MesaLink和OpenSSL最新版的性能,双方均使用TLS 1.2和ECDHE-RSA-WITH-AES-256-GCM-SHA384,结果如下表所示。
MesaLink 1.0开始支持Autotools + CMake双构建系统。CMake的跨平台特性使得我们可以更灵活的在多个平台上编译运行MesaLink,包括Windows和Visual Studio。安装我们发布的MesaLink for Windows安装包后,用户可以在Visual Studio中链接使用MesaLink;我们也准备了对应的样例代码,参见examples/client/client_win.c文件。
最后,欢迎大家访问改版后的新主页:https://mesalink.io。百度安全实验室公众号和其他平台发布的MesaLink中英文文章会统一同步到网站的博客下。
结语
MesaLink是百度AIoT安全解决方案的重要组成部分,也是百度下一代AI安全技术栈的核心技术之一。从新一代安全技术的研发与开源,到为行业提供一体化安全解决方案,再到促进学术、企业、机构间多层面协作,百度安全实验室正在升级打造AI时代的安全生态,打破产业隔阂,避免生态碎片化,以此推动AI时代的安全生态建设。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Kotlin 1.1.60 发布,开始支持增量编译
- Micronaut使用提前编译支持Spring Boot
- Wine 4.16 发布,更好的交叉编译支持
- xmake v2.3.6 发布, 新增 fortran 编译支持
- TeaVM 现已支持将 Java 字节码编译成 WebAssembly
- xmake v2.2.6 发布, Qt/Android编译支持
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Real-Time Rendering, Third Edition
Tomas Akenine-Moller、Eric Haines、Naty Hoffman / A K Peters/CRC Press / 2008-7-25 / USD 102.95
Thoroughly revised, this third edition focuses on modern techniques used to generate synthetic three-dimensional images in a fraction of a second. With the advent or programmable shaders, a wide varie......一起来看看 《Real-Time Rendering, Third Edition》 这本书的介绍吧!