英特尔SGX远程证明示例代码

时间:2016-06-21 05:06:11

标签: sgx trusted-computing

我试图在英特尔SGX SDK中运行远程证明示例代码。我总是得到错误"错误,调用sgx_ra_get_msg1失败[wmain]。"我认为这是因为sgx_ra_init(&g_sp_pub_key, b_pse, p_context)函数返回零值p_context,无法使用。

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

1 个答案:

答案 0 :(得分:2)

我假设您正在通过以下链接提供的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守护程序服务。在shell上:

    sudo service aesmd restart
    
  7. 然后尝试执行该程序。您不需要再次构建项目。
  8. 仅供参考,您可以为SGX Hardware& amp;调试模式然后通过shell上的以下命令执行:

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

    我希望这会有所帮助。