问题标签 [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.
sgx - 如何检查 sgx enclave 中应用程序的内存使用情况
所以我有一个使用石墨烯在 sgx enclave 中运行的 python 脚本。我需要检查内存利用率和 CPU 利用率等值。如何检查在 enclave 内运行的脚本的这些值?
ios - iOS Swift:SecureEnclave 加密应用程序在 SecKeyGeneratePair 上崩溃
我在SecKeyGeneratePair
方法中面临 SecureEnclave 加密问题。
应用程序崩溃SecKeyGeneratePair
方法,我不知道缺少什么或有什么问题。我指的是https://github.com/trailofbits/SecureEnclaveCrypto
请参阅以下代码片段。
corda - 通过 -PenclaveMode=release 后,Conclave 不会以释放模式启动
我正在尝试以发布模式启动 Conclave,按照以下说明进行操作:
// 首先,构建签名材料:
./gradlew prepareForSigning -PenclaveMode=release
// 从签名材料生成签名。示例外部密钥的密码是“12345”
openssl dgst -sha256 -out signing/signature.bin -sign signing/external_signing_private.pem -keyform PEM enclave/build/enclave/Release/signing_material.bin
// 最后构建了签名的 enclave:
./gradlew build -PenclaveMode="release" -x test
./gradlew host:installDist
cd host/build/install
./host/bin/host
从客户端调用请求后,证明仍然打印:
模式:模拟
是否有任何标志/步骤被遗漏?
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 请求吗?
谢谢
kotlin - 无法确定任务 ':client:shadowJar' 的依赖关系
FAILURE:构建失败并出现异常。
- 出了什么问题:无法确定任务':client:shadowJar'的依赖关系。
无法解析配置 ':client:runtimeClasspath' 的所有依赖项。找不到 com.r3.conclave:conclave-client:1.1。
试图运行事件管理器会议并收到错误消息
kotlin - 无法确定任务 ':enclave:compileJava' 的依赖关系
无法解析配置“:enclave:compileClasspath”的所有任务依赖项。
无法解析项目:common。
尝试运行 column-profiling conclave 并收到错误消息 https://github.com/r3conclave/conclave-samples
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都存在这个问题。
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?
winapi - 如何在内存中运行 LoadEnclaveData 函数?
我读到了内存飞地,发现隐藏一些数据是一个有趣的功能,所以,我来了。
我无法在所需的 API 上找到任何内容,但 MSDN 文档有 [没有关于使用的源代码],我知道我必须调用以下命令:
IsEnclaveTypeSupported
: 以确保我可以继续。CreateEnclave
:返回创建的飞地的基地址,虽然我也为此苦苦挣扎,但这个问题帮助了我。LoadEnclaveData
:将数据添加到我们创建的飞地。InitializeEnclave
: 激活飞地。基于Windows Internal book(第1部分),
execute
我必须运行EENTER
汇编指令,我也没有找到相关信息,但我认为CallEnclave
使用飞地的基地址可以完成这项工作。
无论如何,我被困在第 3 步,我LoadEnclaveData
正在返回错误代码87
,即ERROR_INVALID_PARAMETER
.
我只是将NOP
s (0x90) 复制到该地址,只是为了通过正在运行的调试器查看它。
这是代码:
根据 MSDN 的LoadEnclaveData
文档,他们没有指定要做什么lpPageInformation
,所以我认为是问题所在,但他们说The lpPageInformation parameter is not used.
所以我重新检查了几个参数,我发现它nSize
必须是一个整数multiple of the page size.
所以我很困惑,现在要做什么?
如果有人确定要在飞地中执行缓冲区,请告诉我。
顺便说一句,选择标题的事情让我很生气,[我在这上面浪费了比写这篇文章更多的时间]。