【问题标题】:Intel SGX remote attestation sample code英特尔 SGX 远程证明示例代码
【发布时间】:2016-10-22 12:05:31
【问题描述】:

我正在尝试在英特尔 SGX SDK 中运行远程证明示例代码。我总是收到错误“错误,调用 sgx_ra_get_msg1 失败 [wmain]。”我想是因为sgx_ra_init(&g_sp_pub_key, b_pse, p_context)函数返回一个零值p_context,不能使用。

是否有人可以正确运行远程证明示例代码? PS:我可以运行本地认证示例代码,我觉得Intel SGX开发环境还可以。

【问题讨论】:

  • 您是在仿真模式下运行还是在 SGX 硬件上运行?
  • @Freddy 我在支持 SGX 硬件的戴尔笔记本电脑上运行。示例代码处于调试(非生产)模式。
  • 我已经在仿真模式下成功运行了代码。抱歉,我没有在调试模式下运行它的硬件。

标签: sgx trusted-computing


【解决方案1】:

我假设您在 Ubuntu 上运行以下链接提供的示例代码: https://github.com/01org/linux-sgx/tree/master/SampleCode/RemoteAttestation

我有同样的问题。它不起作用的原因可能有多种。我按照下面提到的步骤解决了它:

  1. 检查 BIOS 更新。如果可用,请更新您的 BIOS。
  2. 确保您在 BIOS 中启用了 Intel(r) Software Guard Extensions (SGX)。
  3. 检查 Internet 连接是否由于任何防火墙/代理而受到限制。如果它受到限制,您需要在您的环境和/或代码中考虑到这一点,或者您可以只使用没有限制的连接。
  4. 检查是否加载了 Intel(r) SGX 驱动程序。您可以通过检查“isgx”是否存在于通过在 Linux BASH shell 上运行以下命令生成的已加载内核模块列表中来做到这一点:

    sudo lsmod | sort
    
  5. 确保您的 Makefile 设置了正确的 SGX_SDK 路径。
  6. 假设您已按照上述步骤操作,则可以重新启动 AESM 守护程序服务。在外壳上:

    sudo service aesmd restart
    
  7. 然后尝试执行程序。您无需再次构建项目。

仅供参考,您可以为 SGX 硬件和调试模式构建项目,然后在 shell 上通过以下命令执行:

make clean
make SGX_MODE=HW SGX_DEBUG=1
./app

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 2018-11-28
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2018-12-05
    • 2022-08-23
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多