Mesalink v1.0.0 发布,正式支持 TLS 1.3 和 IPv6,支持CMake编译,支持Windows,实现生产环境可用...
百度智能云 云生态狂欢季 热门云产品1折起>>>
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时代的安全生态建设。
Mesalink v1.0.0 发布,正式支持 TLS 1.3 和 IPv6,支持CMake编译,支持Windows,实现生产环境可用...相关推荐
- ipv6服务器 支持ipv4,西部数码上线IPv6云服务器,支持IPv4/IPv6双栈运行
随着物联网.智能制造.人工智能等新型产业的蓬勃发展,各行业对 长期以来,IPv4由于存在地址不够用.安全性不完善.路由存在瓶颈.服务质量差等问题,限制了信息化技术的落地和革新.而IPv6作为下一代网络 ...
- FreeBSD 8.0 终于发布正式版了
马上上两个链接先 http://wiki.freebsdchina.org/news/2009/freebsd_8.0_new_features FreeBSD 8.0 新特性概览 http:/ ...
- 与Andrey Breslav谈论Kotlin 1.0的发布
在经过了三个月的beta测试后,Kotlin团队终于宣布发布Kotlin的 1.0版本,该版本的目标是提升这门语言在API与ABI方面的稳定性. \\ 从该语言的第四个beta发布,到发布候选版本的出 ...
- SpringBoot2.0(一):【重磅】Spring Boot 2.0权威发布
就在昨天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误, ...
- (转)Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布
http://www.ityouknow.com/springboot/2018/03/01/spring-boot-2.0.html 就在今天Spring Boot2.0.0.RELEASE正式发布 ...
- JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 千呼万唤始出来,在经历了整整一年的跳票之后,Java 9 终于在 9 月 21 日拨开云雾, ...
- MesaLink v0.7.0发布 | 迎接TLS 1.3时代 更快更安全
MesaLink是百度安全实验室研发的一个内存安全并且兼容OpenSSL C API的传输层安全(TransportLayer Security, TLS)协议栈.近年来TLS漏洞频发,以2014年的 ...
- .NET ORM FreeSql 第一个正式版本发布 v1.0.0
一.简介 FreeSql 是 .NET 平台下的对象关系映射技术(O/RM),支持 .NetCore 2.1+ 或 .NetFramework 4.0+ 或 Xamarin. 从 0.0.1 发布到今 ...
- 电商宝SCRM/微信个人号管家v1.1.0成功发布,支持个人号红包收发/批量加好友!...
电商宝SCRM/微信个人号管家是基于微信生态的社交营销管理系统,旨在帮助商家打造微信私域流量池,精细化营销助力社交电商. 经过电商宝各位同学一周的努力,电商宝SCRM/微信个人号管家V1.1.0版本正 ...
最新文章
- 常见字符串和数值间得转换
- js 点击最后一个 和倒数第二个_精选一组趣知识;最后一个节目是压轴还是压台...
- 优秀案例:12个精美的设计工作室 设计公司网站
- keras lstm 层理解
- 使用笛卡尔积 cross join解决傻傻的问题
- FreeBSD下安装postfixl邮件系统
- Linux命令应用大词典-第25章 备份与还原
- python中的set方法_Python中set与frozenset方法和区别详解
- python自动化办公模块有哪些-python如何实现自动化办公?
- iptables 开放端口
- 蓝桥杯2016年第七届C/C++省赛B组第八题-四平方和
- 智能手机低价“裸奔”( 山寨手机芯片“海思K3”VS“MTK”)
- QuantLib 开源金融计量学工具箱下载
- 拉格朗日方程的三种推导方法之基于汉密顿原理推导
- DQM Serial Sync Index Program ERROR
- Linux系统的历史发展演绎
- games101 作业4
- 佳能700d相机查看快门数
- Rikka with Travels
- 信息技术计算机说课,信息技术说课稿
热门文章
- 记录unity WebGL出现Uncaught ReferenceError: myGameInstance is not defined的问题
- python猜大小游戏,Python实现的摇骰子猜大小功能小游戏示例
- Windows Server 2008 安装教程——图文小白版(附下载地址)
- greendao出现Failed to change locale for db ‘/data/data/xxx/databases/xxx.db‘ to ‘zh_CN‘.
- 我的世界服务器皮肤显示不出来,我的世界怎么让皮肤显示,怎么没有皮肤显示不出来怎么办啊...
- Sox(Sound eXchange)一款强大的音频处理工具格式转化、切割音频、合并音频等
- kubernets(四)创建高可用集群
- html字体下划线取消,取消下划线与显示下划线设置
- 网络空间搜索引擎及常用的端口漏洞
- 瑞萨RA MCU立创EDA训练营——自制瑞萨开发板