问题标签 [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.
hmac - SGX 在 enclave 内计算 HMAC
我正在尝试在英特尔 SGX 飞地内使用 SHA512 计算 HMAC。我让代码工作,但收到错误的结果。我有一个使用静态预定义密钥和随机数计算 HMAC 的示例,但是在验证接收到的结果时,它与正确的结果不匹配。
显然有两种不同的变体来计算 HMAC(根据这里的输入链接描述,我都试过了。
这是飞地的功能:
这是更新的电话:
我看不出我做错了什么!?
这将导致 7d2f2e3d57c84a58945b9016fb37e2df03afdde313c9d79c31ec1e6612d6d6b20456a8fcf799ef74d16f60c7f283e621400004422885f33fb3d2bb7ae7a1daa3
根据这个计算器这里是错误的
sgx - 将应用程序加载到英特尔 SGX 飞地
有没有办法将现有应用程序Intel SGX
直接加载到 enclave 中?
c++ - 如何在英特尔 SGX 中注册自定义异常?
我很难让我的自定义异常处理程序工作。
这是飞地代码:
我们用作buf
指示处理程序是否已实际执行。但是,输出是这样的:
另外,这里是App
代码(即不受信任的代码)
问题:从输出中可以看出,处理程序注册成功,但没有执行。
1-为什么注册不起作用?
2-我尝试使用App
代码进行注册,为此我必须在 中添加处理程序edl
,问题是传递sgx_exception_info_t *info
参数,不清楚它需要哪些标志(即[in, .. <'flags'>]
)。那么,在 Enclave 内部定义它是否正确?
ps 我用Prerelease
Mode 运行代码。
[编辑]我在这里记录了我在 SGX 上执行的项目 + 代码
module - 在 linux 内核模块中创建一个 enclave
是否可以编写一个linux内核模块并在模块中创建一个飞地。以及如何做到这一点。
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 密钥。非常感谢任何帮助或想法。谢谢!
corda - 使用英特尔 SGX 的事务解析
根据 Mike Hearn 的这篇文章:
https://www.corda.net/2017/06/corda-sgx-privacy-update/
在交易解决过程中,我理解在提议者甲和乙方之间的交易中:
- 提议者 A 将交易发送给 B 方
- 乙方需要交易链来验证交易,所以向甲方索要它(交易历史)
- 在 enclave 和安全通道建立后,甲方的 enclave 将加密的交易历史记录发送到乙方的 enclave
- B 方上的 Enclave 对其进行解密并验证交易
从现在开始,假设 B 方是与 C 方进行新交易的提议者,使用之前交易中的 UTXO。由于丙方需要所有交易历史,它是如何工作的?在之前的交易中,一旦通过验证,交易链是否加密存储在 B 方(用于后续交易)?
如果不清楚,请告诉我以尝试更好地解释该场景。
谢谢
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]
属性?
出于性能原因,有没有办法避免这种开销?
c++ - 基于老一代英特尔处理器的英特尔 SGX 开发
是否可以在某些模拟环境不支持 SGX 的老一代英特尔处理器上进行英特尔 SGX 开发?
我尝试安装正确安装但无法安装 SGX PSW 的 SGX SDK,因为支持英特尔 SGX 处理器是它的硬性要求。
https://software.intel.com/en-us/documentation/sgx-sdk-installation/platform-software-installation
我想开发和学习简单的 SGX 应用程序。
c++ - 保护 SGX 中的算法
我正在寻找解释如何保护算法mysort(param x, param y)
,例如英特尔 SGX 上下文中的函数,以便在我的 enclave mysort() 函数之外进行加密,并且它只在 enclave 内部解密。
我怎么能做到这一点?我应该在哪里编写mysort
函数,即在 enclave 项目或应用程序项目中并通过 edl 接口调用。我应该如何加密它,我应该在哪里保存密钥和解密它的逻辑。
c++ - C++ 的侧通道抗性数学函数
我正在处理一个处理秘密数据的 SGX 项目,在某些时候,我需要评估浮点数的自然对数。评估过程应该是抗侧通道的,这意味着它的运行时间和内存访问模式将独立于它的输入和输出。
野外有这样的实现吗?文献中是否解决了这个问题?