Rust SGX SDK v1.0.4 Release | 支持基于 Remote Attestation 的 TLS 连接

Rust SGX SDK 是百度安全实验室开发的一个Intel SGX可信计算平台的Rust语言开发工具包。基于Rust SGX SDK,程序员可以快速开发出没有内存安全漏洞的Intel SGX可信程序,即使在操作系统被恶意控制时也能提供迄今为止最强大的安全防护能力,避免敏感数据被窃取。Rust SGX SDK对于数据隐私和云安全都有着非常重要的意义,能够很好的支持各种需要隐私保护的云上数据业务。从去年4月Rust SGX SDK第一个开源版本发布以来,我们获得了社区很多反馈和支持,也看到了学术界和工业界都在积极的应用Rust SGX SDK。这次我们发布的是 1.0.4 版本,支持了最新的 Intel SGX SDK 2.3.1,并首次提供了基于 Remote Attestation 的内存安全的 Enclave 间 TLS 连接支持。

Rust 在 9月20日修正了一个 liballoc 中的内存 bug,之后发布了新的 Rust release。由于 Rust SGX SDK 合理的分层设计,只需要将 Rust 编译套件升级到新版本即可获得官方发布的修正后的 liballoc。我们强烈建议开发人员升级到最新的 Rust 工具链,获得新功能和 bug 修复。

Intel 在 9月14日发布 Intel SGX SDK 2.3 两周后,在9月28日紧急发布了 2.3.1,修正了我们发现的一个逻辑错误。我们强烈建议开发人员升级到 2.3.1,以获得最新的功能支持和 bug 修复。

我们提供了两个基于 Remote Attestation 的 TLS 连接代码样本:mutual-ra 和 ue-ra。前者用于建立 SGX enclave 之间的 TLS 连接,后者用于建立 untrusted party 和 SGX enclave 之间的 TLS 连接。TLS 连接建立时的证书经由 Remote Attestation 生成,从而可以保证 TLS 连接的目标是所期望的 SGX enclave。 该算法来自于 Intel 的白皮书《Integrating Remote Attestation with Transport Layer Security》。这个算法建立的 TLS 信道严格优于 Intel SGX SDK 中提供的 Remote Attestation 建立的简单应用层 AES 加密信道,使得 Enclave 之间的通信得到传输层加密的安全防护。借助这个 TLS 信道,Enclave to Enclave 的加密对等网络终于可以实现。

我们提供了 Switchless 示例代码。该示例代码演示了如何使用 Intel SGX SDK 最新提供的 switchless 功能完成快速的 ECALL/OCALL 函数调用。

应开发者需求,我们提供了机器学习库 rusty-machine 的 model 序列化、反序列化功能支持,使得 rusty-machine 训练出的模型可以被保存、导出到其他 Enclave 中再继续使用。

What's New

  • master 分支支持 Rust nightly-2018-10-01 (1.30)

  • stable 分支支持 Rust stable-2018-09-25 (1.29)

  • 支持 Intel SGX SDK v2.3.1

  • mutual-ra 示例代码。这份代码演示了如何建立基于 Remote Attestation 的 Enclave to Enclave 的 TLS 连接。

  • ue-ra 示例代码。这份代码演示了如何建立基于 Remote Attestation 的 untrusted party to Enclave 的 TLS 连接。

  • switchless 示例代码。这份代码演示了如何使用 Intel SGX SDK 提供的快速 ECALL/OCALL 调用机制。

  • 重构了 Dockerfile,支持 Ubuntu Linux 16.04/18.04。

  • 提供了 rusty-machine 的模型序列化、反序列化支持。

*点击阅读原文进入 Rust SGX SDK 项目主页

你可能感兴趣的:(Rust SGX SDK v1.0.4 Release | 支持基于 Remote Attestation 的 TLS 连接)