asterinas / trustflow

A privacy-preserving computing system based on TEE.
https://www.secretflow.org.cn/docs/trustedflow
Apache License 2.0
14 stars 11 forks source link

加密存储的实现 #43

Closed daydayuphere closed 5 months ago

daydayuphere commented 6 months ago

Issue Type

Bug

Source

binary

Capsule Manager Version

0.1

Capsule Manager SDK Version

0.1

Tee Apps Version

0.1

OS Platform and Distribution

ubuntu1804

Python version

3.8.13

Bazel version

No response

GCC/Compiler version

No response

What happend and What you expected to happen.

数据存储(data-at-rest)加密
TrustedFlow向外部存储(比如硬盘、网络存储等)写入数据前,会对数据进行加密,且密钥仅TrustedFlow可访问。

Reproduction code to reproduce the issue.

请问数据加密存储,这个能力是在哪个组件实现的?
zhongtianq commented 6 months ago

@daydayuphere 你好,我们的原始数据是通过capsule-manager-sdk进行文件加密后输入到可信app中的。 对于计算结果数据,是由可信app加密再进行输出的。

daydayuphere commented 6 months ago

哦哦,谢谢。 密钥是很关键的,查了capsule manager代码,是放在内存了,是不是没有持久化呢,重启或断电容易丢 impl Default for InMemoryStorage { fn default() -> Self { let data_policy_map = Arc::new(Mutex::new(HashMap::new())); let data_keys_map = Arc::new(Mutex::new(HashMap::new())); let public_key_map = Arc::new(Mutex::new(HashMap::new())); Self { data_policy_map, data_keys_map, public_key_map, } } }

zheyang0825 commented 6 months ago

哦哦,谢谢。 密钥是很关键的,查了capsule manager代码,是放在内存了,是不是没有持久化呢,重启或断电容易丢 impl Default for InMemoryStorage { fn default() -> Self { let data_policy_map = Arc::new(Mutex::new(HashMap::new())); let data_keys_map = Arc::new(Mutex::new(HashMap::new())); let public_key_map = Arc::new(Mutex::new(HashMap::new())); Self { data_policy_map, data_keys_map, public_key_map, } } }

当前我们开源的版本仅仅提供了 in memory 的版本,作为示例。 您可以根据自己需求增加持久化的能力,我们后续也是会提供持久化的 storage engine,但是持久化的安全性依赖于 TEE sealing 能力。

daydayuphere commented 6 months ago

懂了,多谢