问题标签 [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.
security - 在客户端-服务器架构中使用英特尔 SGX 远程认证
假设以下场景:我们想要实现一个开源密码管理器,它使用一个中央服务,使不同的客户端(在不同的设备上)能够同步他们的本地数据库。该服务是由公司运行还是在用户的服务器上运行都没有关系(与 owncloud 使用场景相比)。为了使我们的应用程序更加“安全”,我们希望将英特尔 SGX 飞地用于中央服务(请忽略当前对 SGX 飞地的攻击研究)。
然后,典型的工作流程是:
- 本地客户证明中央飞地
- 用户注册/登录
- (本地和远程数据库同步)
- 用户存储/检索密码
现在我的问题是:我们密码管理器的每个用户都需要注册英特尔认证服务 (IAS) 吗?如果是,这是否意味着,由于私钥共享非常糟糕,每台设备都需要注册?
根据我的调查,至少在开发和测试阶段,答案是肯定的。我找不到任何生产场景的公开信息。我所知道的是,商业注册会改变飞地的行为(它可以在生产模式下运行),这在这里无关紧要。对此我有两个想法:
- 如果我是对的,这难道不是新交所的另一个表演障碍吗?在没有证明功能的情况下使用 SGX 似乎毫无用处。
- https://www.fortanix.com/等服务如何规避或解决问题?他们的文档没有提示与英特尔进行必要的交互。
上述场景只是一个例子;它可以改进,我们不打算实施它。但是,描述一个场景比描述我们当前的项目计划要容易得多,这很容易想象,并且似乎是 SGX 的一个现实用例。
PS:这个问题是英特尔 SGX 开发人员许可和开源软件的连续问题
c - libsgx_capable.so:无法打开共享对象文件:没有这样的文件或目录
我正在尝试运行以下代码以在我的机器中启用 SGX(BIOS:软件控制):
这是我正在使用的 Makefile:
当我运行应用程序时,我收到以下消息:
应用程序没有读取 EFI 变量所需的权限。以管理员权限运行应用程序以启用英特尔 SGX 设备状态。
然后,我运行sudo ./app
并收到以下错误:
./app:加载共享库时出错:libsgx_capable.so:无法打开共享对象文件:没有这样的文件或目录
奇怪的是编译的时候没有找到这个库:
然后,我使用:
我再次运行并返回相同的错误消息。谁能告诉我我错过了什么?
makefile - 使用 CMake 编译导致 SGX_ERROR_UNEXPECTED?
我最近正在尝试学习 intel sgx sdk。
今天我在我的代码中发现了一个问题,在 intel DOC 或 WEB 中找不到任何解释。
当我在某些情况下调用 sgx_create_enclave 时,代码将返回 SGX_ERROR_UNEXPECTED。我认为我的 CMakeLists.txt 有问题(我使用 cmake 编译项目中不受信任的部分),因为当我在 sdk 示例中使用模板 Makefile 进行编译时,代码运行正常。更多细节吹:
代码将在以下情况下成功运行:
在这种情况下代码会返回错误:
此处提供的代码(我已删除所有不必要的代码): https ://github.com/chilogen/workspace/tree/master/error/SimpleEnclave
应用程序.cpp
CMakeLists.txt
Makefile(我认为这是重要的部分,如果您对 intel sgx 不太了解,那么您仍然可以检查 CMakeLists.txt 和 Makefile 之间的区别)
## SGX SDK 设置更新:编译.sh
那么,我的代码(或 CMakeLists.txt)有什么问题,我该怎么办?
如果你能给我一些想法,我将非常感激。
x86 - x86 VMCS 字段“ENCLV-Exiting Bitmap”的编码
英特尔® 64 位和 IA-32 架构软件开发人员手册第 3C 卷:系统编程指南,第 3 部分包括对虚拟机控制结构 (VMCS) 的控制字段组件的以下描述:
24.6.17 ENCLV-退出位图
ENCLV退出位图是一个 64 位字段。如果“enable ENCLV exiting”VM 执行控制为 1,如果该字段中对应 EAX 的值的位为 1,则执行 ENCLV 将导致 VM 退出。如果该位为 0,则指令正常执行。有关详细信息,请参阅第 25.1.3 节。
但是,第 3D 卷的附录 B 中没有给出该字段的编码(人们希望它列在表 B-4“64 位控制字段的编码”中)。
在哪里可以找到该字段的编码,否则如何向英特尔报告遗漏?
c++ - 如何仅使用单线程强制 gRPC cpp 程序
我需要在操作系统(仅支持单线程)中运行我的客户端应用程序(使用 gRPC 用 c++ 编写)。但是,我注意到它grpc::InsecureChannelCredentials();
正在尝试创建多个线程。这是在我的主机中调用该 gRPC 函数后调试器的输出:
这将导致程序在单线程操作系统内崩溃。
我的问题是:有没有办法只使用单线程配置 gPRC,或者使 cpp 可执行文件只使用单线程运行?提前致谢。
顺便说一句,这里是上面提到的操作系统的链接,这个问题解释了为什么它只支持单线程。 https://github.com/lsds/sgx-lkl/issues/1
编辑: 它实际上不允许多进程而不是多线程应用程序。gRPC 似乎在其核心库中进行 fork。我想知道是否有办法配置 gRPC 以禁用进程分叉。
intel - 英特尔 SGX 远程证明如何工作?
SGX远程认证程序(变化:有和没有远程英特尔服务的参与,工作的解释/逻辑是一步一步的。
c++ - 什么是 SGX_CDECL 宏?
我正在尝试了解如何创建自己的 sgx 应用程序,因此我正在仔细检查 SDK 示例。我想知道 SGX_CDECL 的用途是什么?
在下面的示例中以及一般情况下
c - 使用 SGX 的 C 语言中的 Hello World
我注意到有些人能够用 C 代码编写 SGX 代码。我试图这样做,假设我有以下代码。我仍然不知道如何编写一个可以编译这些文件的 Makefile 因为我没有在网上找到太多关于如何编译它的信息。
主程序
encalve.c
encalve.edl
我正在寻找可以编译 sgx c 代码的 Makefile。
intel - 如何获取函数 sgx_ecc256_create_key_pair() 在 sgx enclave 中生成的公钥?
我是英特尔 SGX 开发的新手,我正在英特尔 SGX 上开发应用程序。我想在我的飞地中创建一个公钥/私钥。我使用了这里提到的函数sgx_ecc256_create_key_pair
我怎样才能获得我的应用程序的公钥(到 enclave 的外部)?
我想用这个公钥加密数据并将其发送到 enclave 以通过 enclave 中创建的私钥对其进行解密。
intel - 英特尔 SGX 服务提供商
我想在我的项目中实施英特尔 SGX 远程认证机制。此机制需要服务提供者和 IAS 服务器。我的问题是:究竟什么是Service Provider,它是我们安装 API 或其他东西的普通服务器。如何配置此 SP 以实施远程证明机制。谢谢你。