2019-02-12 14:48:229467人阅读
MesaLink是百度安全实验室研发的下一代安全通讯库。近年来以OpenSSL为代表的TLS协议栈安全漏洞频发,2014年席卷全球的OpenSSL"心脏滴血"漏洞堪称网络安全界的里程碑事件。MesaLink用内存安全的语言重构TLS协议栈,避免了使用低版本或未正确配置的OpenSSL带来的数据泄露的隐患,为AI时代的安全数据传输提供保障。
2018年8月发布0.7.0以来,MesaLink在智能电视、智能音箱、智能车载等项目中得到了广泛的测试和部署,月活跃用户过千万,稳定性和安全性都经受住了实战的考验。自2018年10月起,MesaLink已经成为curl项目官方支持的TLS库之一,在最新发布的curl 7.62.0版本中可以使用--with-mesalink
选项启用官方的MesaLink支持。此次发布的MesaLink 0.8.0版本带来了40个新API、BRPC支持、SGX Remote Attestation等多个新特性。
What's New
40个新API
在本次更新中,我们提供覆盖了OpenSSL BIO、PEM、X509、SSL、SSL_CTX的40个新API。例如用户可以通过SSL_CTX_set_session_cache_mode和SSL_CTX_sess_set_cache_size两个API按需配置TLS session cache;SSL_CTX_use_certificate和SSL_CTX_use_PrivateKey可用于设置客户端证书认证;从文件或者内存加载证书和私钥的操作现在可以通过BIO、X509、PEM API的组合灵活地完成。
实验性的BRPC支持
BRPC是百度使用的工业级别RPC框架,在百度内部拥有一百万个实例和上千种服务。BRPC对高并发场景做了深度挖掘,其性能领跑目前其他所有RPC产品,即使是同一个文件描述符中不同消息的解析也是完全并发的。我们在为BRPC开发RPC over TLS的过程中充分考虑到了BRPC的高并发特性,并在MesaLink 0.8.0对相关代码进行了重构,目前MesaLink的SSL_CTX和SSL类型都是线程安全的。我们为BRPC开发的MesaLink TLS后端通过了brpc所有的单元测试,可开启TLS 1.3,单线程吞吐量超过1.5Gbps。目前BRPC的master分支已经支持基于MesaLink的RPC over TLS,配置BRPC时使用--with-mesalink选项即可开启。欢迎大家试用。
实验性的SGX Remote Attestation支持
Intel® SGX是一项创新性的安全技术,它能够在操作系统被恶意控制时也能保证SGX Enclave内部的敏感数据不被窃取,对于数据隐私和云安全都有着非常重要的意义。为了在客户端和服务端运行的SGX Encalve之间建立安全的TLS通信信道,客户端需要使用Remote Attestation远程验证Enclave的身份是否可信任。MesaLink 0.8.0提供了实验性的Remote Attestation支持,用户可以使用--enable-sgx
配置选项启用相关API,示例代码请参考examples/sgx_uera_client和该目录下的SGX_README.md文件。
其他变化
开启基于Rust-San的内存漏洞扫描,Travis-CI每日运行,代码覆盖率超92%;
代码迁移至Rust 2018 Edition;
不再支持SHA-1签名
结语
如果说0.7.0版本标志了MesaLink在客户端场景的成熟,0.8.0则是MesaLink向服务端场景迈出的重要一步。服务端对TLS安全通讯库的安全性和性能都有更苛刻的要求,此次在BRPC中我们实验性地用MesaLink替换OpenSSL,进一步实践了百度首席安全科学家韦韬提出的“混合代码内存安全架构三原则”理念,证明了性能和内存安全性可以兼顾。我们期待MesaLink能够在更多的场景部署,为更多的用户带来更快更安全的互联网体验,也欢迎试用提供宝贵意见。
更多内容请移步:
MesaLink主页:https://mesalink.io;
MesaLink项目页面:
https://github.com/mesalock-linux/mesalink;
详细API文档:https://mesalock-linux.github.io/mesalink-doc