问题标签 [enclave]

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 回答
129 浏览

sgx - 如何检查 sgx enclave 中应用程序的内存使用情况

所以我有一个使用石墨烯在 sgx enclave 中运行的 python 脚本。我需要检查内存利用率和 CPU 利用率等值。如何检查在 enclave 内运行的脚本的这些值?

0 投票
1 回答
47 浏览

corda - [Conclave]如何在 enclave 中支持 SSL?

你好 Corda 专家:我有一个关于 Conclave beta 3 的问题,我下载了 conclave SDK hello world 项目,按照 conclave 文档运行成功。但是当我尝试使用 RestTemplate 从 enclave 访问外部 https API 时,它失败了。错误消息是“ java.security.NoSuchAlgorithmException: Default SSLContext not available ”。由于 enclave 的默认 JVM 是 Avian,我怀疑 Avian 可能不支持 SSL。有没有专家知道根本原因以及如何解决?非常感谢。 在此处输入图像描述

0 投票
0 回答
60 浏览

ios - iOS Swift:SecureEnclave 加密应用程序在 SecKeyGeneratePair 上崩溃

我在SecKeyGeneratePair方法中面临 SecureEnclave 加密问题。

在此处输入图像描述

应用程序崩溃SecKeyGeneratePair方法,我不知道缺少什么或有什么问题。我指的是https://github.com/trailofbits/SecureEnclaveCrypto 请参阅以下代码片段。

0 投票
1 回答
54 浏览

corda - 通过 -PenclaveMode=release 后,Conclave 不会以释放模式启动

我正在尝试以发布模式启动 Conclave,按照以下说明进行操作:

  1. // 首先,构建签名材料:

    ./gradlew prepareForSigning -PenclaveMode=release

  2. // 从签名材料生成签名。示例外部密钥的密码是“12345”

    openssl dgst -sha256 -out signing/signature.bin -sign signing/external_signing_private.pem -keyform PEM enclave/build/enclave/Release/signing_material.bin

  3. // 最后构建了签名的 enclave:

    ./gradlew build -PenclaveMode="release" -x test

  4. ./gradlew host:installDist

  5. cd host/build/install

  6. ./host/bin/host

从客户端调用请求后,证明仍然打印:

模式:模拟

是否有任何标志/步骤被遗漏?

0 投票
2 回答
78 浏览

c++ - 使用 sgx enclave 的 http 安全调用

我有一个情况:

我有一个场景,我必须连接到 Web 服务器并且我需要保证响应数据的安全:我连接到将返回信用卡数据的 REST API。我在受信任的代码中签署了密钥,并使用签名通过和 OCALL 在不受信任的部分发送了 HTTP 请求。应用程序在不可信部分接收 HTTP 响应,并通过 ECALL 立即将可信部分发送到 enclave。但是,从我的角度来看,我在应用程序中存在安全漏洞:用户信用数据应该在不受信任的部分接收。

根据我的研究,也因为这里的一些帖子,我认为没有办法从 enclave 进行 HTTP 调用。@JesusG_Intel 在https://community.intel.com/t5/Intel-Software-Guard-Extensions/Rest-API-or-HTTP-API-call-from-inside ...写道:

“不可能从飞地内部直接调用外部世界。您必须从飞地创建对应用程序的调用,然后应用程序才能代表飞地发出 REST API 或 HTTP 请求。”

我是 sgx 技术的新手,我知道这是否是真正的安全漏洞。我认为英特尔不会允许这种安全风险。我错过了什么?您能指导我如何使用 sgx 技术发出安全的 HTTP 请求吗?

谢谢

0 投票
1 回答
105 浏览

kotlin - 无法确定任务 ':client:shadowJar' 的依赖关系

FAILURE:构建失败并出现异常。

  • 出了什么问题:无法确定任务':client:shadowJar'的依赖关系。

无法解析配置 ':client:runtimeClasspath' 的所有依赖项。找不到 com.r3.conclave:conclave-client:1.1。

试图运行事件管理器会议并收到错误消息

https://github.com/r3conclave/conclave-samples

0 投票
1 回答
107 浏览

kotlin - 无法确定任务 ':enclave:compileJava' 的依赖关系

无法解析配置“:enclave:compileClasspath”的所有任务依赖项。

无法解析项目:common。

尝试运行 column-profiling conclave 并收到错误消息 https://github.com/r3conclave/conclave-samples

0 投票
3 回答
98 浏览

c++ - 向量变量在 Intel sgx 的 enclave 中可以占用多少内存(MB)?

我想在 sgx enclave 中迁移PageRank算法。该算法使用向量来保存边缘关系和矩阵。

当存储少于 9000 条边时,应用程序运行良好。一旦增加到 10000 个或更多边,应用程序就会崩溃,并抛出未处理的异常enter image description here 。我也在飞地外运行相同的代码,它在存储 90000 条边时运行良好。

通过调试,我发现应用程序在以下位置失败。

但是,一旦变量 'rows' 拥有 13896 个元素,就不能将其调整得更大。我很困惑“行”只占用大约 300kb,而“num_outgoing”只占用大约 100kb。它远小于允许的大小。enclave 应用程序总共有 128MB 空间。

我的飞地配置文件如下所示。我尝试更改 StackMaxSize 的值,但是,它似乎没用。

输入边沿的格式如下所示。第一个数字是“from”节点,第二个数字是“to”节点

我想知道如何配置飞地以使其允许更大的向量变量?win10和ubuntu都存在这个问题。

0 投票
1 回答
79 浏览

intel - 如何将 Intel SGX Remote Attestation 应用于 encalve 在服务器中运行的模型?

Intel 官方远程认证示例代码,例如https://www.intel.com/content/www/us/en/developer/articles/code-sample/software-guard-extensions-remote-attestation-end-to-end -example.html,描述一个 encalve 在客户端运行的模型,服务器提供秘密数据,如下图所示。

英特尔远程证明模型

但我想实现一个计算用户在 enclave 中的秘密数据的服务。所以有很多客户端提供秘密数据和运行 encalve 的服务器。障碍是 intel sgx sdk 不适合这个模型。例如,在 sgx_tkey_exchange.h 中声明的函数 sgx_init_ra 接受一个公钥以供以后验证,intel 的文档建议将公钥硬编码到 enclave 代码中。

服务提供者的公钥应该被硬编码到 enclave 中。这与 enclave 签名相结合,确保最终用户无法更改密钥,因此 enclave 只能与预期的远程服务进行通信。

这适合英特尔的远程证明模型,但不适合我的。因为在我的模型中,有很多客户端(秘密数据提供者),并且很难安全地获取客户端的公钥。

那么,有没有办法在这个模型中使用intel sgx sdk?

0 投票
0 回答
81 浏览

winapi - 如何在内存中运行 LoadEnclaveData 函数?

我读到了内存飞地,发现隐藏一些数据是一个有趣的功能,所以,我来了。

我无法在所需的 API 上找到任何内容,但 MSDN 文档有 [没有关于使用的源代码],我知道我必须调用以下命令:

  1. IsEnclaveTypeSupported: 以确保我可以继续。

  2. CreateEnclave:返回创建的飞地的基地址,虽然我也为此苦苦挣扎,但这个问题帮助了我。

  3. LoadEnclaveData:将数据添加到我们创建的飞地。

  4. InitializeEnclave: 激活飞地。

  5. 基于Windows Internal book(第1部分),execute我必须运行EENTER汇编指令,我也没有找到相关信息,但我认为CallEnclave使用飞地的基地址可以完成这项工作。

无论如何,我被困在第 3 步,我LoadEnclaveData正在返回错误代码87,即ERROR_INVALID_PARAMETER.

我只是将NOPs (0x90) 复制到该地址,只是为了通过正在运行的调试器查看它。

这是代码:

根据 MSDN 的LoadEnclaveData文档,他们没有指定要做什么lpPageInformation,所以我认为是问题所在,但他们说The lpPageInformation parameter is not used.所以我重新检查了几个参数,我发现它nSize必须是一个整数multiple of the page size.所以我很困惑,现在要做什么?

如果有人确定要在飞地中执行缓冲区,请告诉我。

顺便说一句,选择标题的事情让我很生气,[我在这上面浪费了比写这篇文章更多的时间]。