问题标签 [sgx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
287 浏览

hmac - SGX 在 enclave 内计算 HMAC

我正在尝试在英特尔 SGX 飞地内使用 SHA512 计算 HMAC。我让代码工作,但收到错误的结果。我有一个使用静态预定义密钥和随机数计算 HMAC 的示例,但是在验证接收到的结果时,它与正确的结果不匹配。

显然有两种不同的变体来计算 HMAC(根据这里的输入链接描述,我都试过了。

这是飞地的功能:

这是更新的电话:

我看不出我做错了什么!?

这将导致 7d2f2e3d57c84a58945b9016fb37e2df03afdde313c9d79c31ec1e6612d6d6b20456a8fcf799ef74d16f60c7f283e621400004422885f33fb3d2bb7ae7a1daa3

根据这个计算器这里是错误的

0 投票
3 回答
1224 浏览

sgx - 将应用程序加载到英特尔 SGX 飞地

有没有办法将现有应用程序Intel SGX直接加载到 enclave 中?

0 投票
1 回答
321 浏览

c++ - 如何在英特尔 SGX 中注册自定义异常?

我很难让我的自定义异常处理程序工作。

这是飞地代码:

我们用作buf指示处理程序是否已实际执行。但是,输出是这样的:

另外,这里是App代码(即不受信任的代码)

问题:从输出中可以看出,处理程序注册成功,但没有执行。

1-为什么注册不起作用?

2-我尝试使用App代码进行注册,为此我必须在 中添加处理程序edl,问题是传递sgx_exception_info_t *info参数,不清楚它需要哪些标志(即[in, .. <'flags'>])。那么,在 Enclave 内部定义它是否正确?

ps 我用PrereleaseMode 运行代码。

[编辑]我在这里记录了我在 SGX 上执行的项目 + 代码

0 投票
2 回答
145 浏览

module - 在 linux 内核模块中创建一个 enclave

是否可以编写一个linux内核模块并在模块中创建一个飞地。以及如何做到这一点。

0 投票
0 回答
430 浏览

c - rsa + aes:在 JS 中加密,在 C 中解密(intel SGX)

我试图达到以下结果:

  • 向用户询问密码(有效)
  • 使用 scrypt 生成基于它的密钥(有效)
  • 使用 aes-js(ctr 模式)加密一些字符串(有效)
  • 使用 node-bignumber 加密生成的密钥(提供基于 Tom Wu 实现的 rsa 加密的 js 库)(作品)
  • 使用英特尔 IPP rsa 解密 aes 密钥(我认为有效)
  • 使用英特尔 IPP aes(ctr 模式)解密字符串(我被困在这里)我必须使用英特尔 IPP,因为我正在使用英特尔 SGX。这是我到目前为止所拥有的:js代码:

这是应该处理该字符串的 C 函数:

我的猜测是我没有以正确的方式处理 aes 密钥。非常感谢任何帮助或想法。谢谢!

0 投票
2 回答
153 浏览

corda - 使用英特尔 SGX 的事务解析

根据 Mike Hearn 的这篇文章:

https://www.corda.net/2017/06/corda-sgx-privacy-update/

在交易解决过程中,我理解在提议者甲和乙方之间的交易中:

  1. 提议者 A 将交易发送给 B 方
  2. 乙方需要交易链来验证交易,所以向甲方索要它(交易历史)
  3. 在 enclave 和安全通道建立后,甲方的 enclave 将加密的交易历史记录发送到乙方的 enclave
  4. B 方上的 Enclave 对其进行解密并验证交易

从现在开始,假设 B 方是与 C 方进行新交易的提议者,使用之前交易中的 UTXO。由于丙方需要所有交易历史,它是如何工作的?在之前的交易中,一旦通过验证,交易链是否加密存储在 B 方(用于后续交易)?

如果不清楚,请告诉我以尝试更好地解释该场景。

谢谢

0 投票
2 回答
717 浏览

c - 为什么在 SGX enclave 中的字符串参数必须与 [in] 属性一起使用

使用 OCALL,我想将在不受信任的内存中动态创建的 C 字符串的副本放入我的飞地。因此,我必须使用[out, string]属性。

但是,我不能这样做,因为我还必须添加[in]属性。问题是我真的不知道字符串的大小,并且我不希望[in]每次进行 OCALL 时将字符串从 enclave 不必要地复制到不受信任的内存中产生的开销(随之而来)。

我的edl文件:

error: string/wstring/sizefunc should be used with an 'in' attribute

为什么我必须添加[in]属性?

出于性能原因,有没有办法避免这种开销?

0 投票
1 回答
449 浏览

c++ - 基于老一代英特尔处理器的英特尔 SGX 开发

是否可以在某些模拟环境不支持 SGX 的老一代英特尔处理器上进行英特尔 SGX 开发?

我尝试安装正确安装但无法安装 SGX PSW 的 SGX SDK,因为支持英特尔 SGX 处理器是它的硬性要求。

https://software.intel.com/en-us/documentation/sgx-sdk-installation/platform-software-installation

我想开发和学习简单的 SGX 应用程序。

0 投票
2 回答
192 浏览

c++ - 保护 SGX 中的算法

我正在寻找解释如何保护算法mysort(param x, param y),例如英特尔 SGX 上下文中的函数,以便在我的 enclave mysort() 函数之外进行加密,并且它只在 enclave 内部解密。

我怎么能做到这一点?我应该在哪里编写mysort函数,即在 enclave 项目或应用程序项目中并通过 edl 接口调用。我应该如何加密它,我应该在哪里保存密钥和解密它的逻辑。

0 投票
1 回答
174 浏览

c++ - C++ 的侧通道抗性数学函数

我正在处理一个处理秘密数据的 SGX 项目,在某些时候,我需要评估浮点数的自然对数。评估过程应该是抗侧通道的,这意味着它的运行时间和内存访问模式将独立于它的输入和输出。

野外有这样的实现吗?文献中是否解决了这个问题?