面向安全敏感计算的内存安全 Python 飞地
密码学与安全
2020-05-14 v1
摘要
Intel SGX 扩展(SGX)是一种硬件支持的可信执行环境(TEE),旨在保护安全敏感应用。然而,由于飞地应用是用 C/C++ 等内存不安全语言开发的,传统的内存损坏在 SGX 中并未消除。Rust-SGX 是首个为飞地开发者提供内存安全语言的工具包。然而,Rust 被视为系统语言,已成为并发应用和网页浏览器的正确选择。许多应用领域如大数据、机器学习、机器人、计算机视觉更常用 python 编程语言开发。因此,Python 应用开发者无法受益于像 Intel SGX 和 rust-SGX 这样的安全飞地。为填补这一空白,我们提出 Python-SGX,这是一个内存安全的 SGX SDK,为飞地开发者提供内存安全的 Python 开发环境。其核心思想是通过解决以下关键挑战在 SGX 中启用内存安全的 Python 语言:(1)定义内存安全的 Python 解释器,(2)用安全元素替换 Python 解释器中不安全的元素,(3)达到与非飞地 Python 应用相当的性能,(4)不向 SGX 引入任何不安全的新代码或库。我们提议用 PyPy 构建 Python-SGX,PyPy 是由 RPython(Python 的一个子集)编写的解释器,并通过形式化验证、安全加固和内存安全语言驯服 PyPy 中的不安全部分。我们已实现 python-SGX 并用一系列基准程序测试。评估结果表明 Python-SGX 未引起显著开销。
引用
@article{arxiv.2005.05996,
title = {Towards Memory Safe Python Enclave for Security Sensitive Computation},
author = {Huibo Wang and Mingshen Sun and Qian Feng and Pei Wang and Tongxin Li and Yu Ding},
journal= {arXiv preprint arXiv:2005.05996},
year = {2020}
}