将 OpenSSL 与英特尔 SGX 飞地结合使用
Using OpenSSL with Intel SGX Enclave
我目前正在开发英特尔 SGX 应用程序。我需要在 enclave 中使用 OpenSSL 库。但是,当我构建 enclave 时,会出现大量错误。
它们看起来像这样:
Error 17 error C2061: syntax error : identifier 'FILE' C:\OpenSSL-Win32\include\openssl\asn1.h 994 1 Enclave
我不确定我是否正确配置了 enclave。
VC++ Directories --> Include Directories "C://OpenSSL-Win32/include"
Library Directories "C://OpenSSL-Win32/lib"
C/C++ --> Additional Include Directories "(some SGX default); C://OpenSSL-Win32/include"
Linker --> General --> Additional Library Directories "C://OpenSSL-Win32/lib"
Input --> Additional Dependencies: "libeay32.lib; ssleay32.lib"
感谢任何帮助。
您使用的是英特尔信任的 OpenSSL 库吗?示例代码 "X509 project" 展示了如何在飞地内使用受信任的 OpenSSL (topenssl)。
如果你想使用另一个版本的 OpenSSL,你应该使用英特尔可信标准 C/C++ 库构建它并创建一个 "enclave library" 然后 link 它到飞地。您不能 link 带有一些随机库的飞地,您只能 link 它带有受信任的静态库。
为了同样的目的,我移植了mbedtls
to the SGX environment. The ported version is available on GitHub。欢迎结帐。
您可能还想查看 TaLoS,这似乎符合您的要求:
TaLoS 是一个 TLS 库,它允许现有应用程序(具有 OpenSSL/LibreSSL 接口)安全地终止其在英特尔 SGX 飞地内的 TLS 连接。该代码可在 GitHub.
上获得
还有一个 technical report 包含有关体系结构和性能结果的详细信息。
根据您的设置,我了解到您没有使用受信任的 OpenSSL 版本。飞地内有几个不同的库支持 TLS。 Intel 为 enclave GitHub. I have created a short installation guide using their docs Here.
实施了 OpenSSL
但是Intel版本有一些限制,比如不支持结束enclave内的TLS连接;相反,他们支持加密功能。还有一些其他库支持网络功能,但主要没有更新。
我目前正在开发英特尔 SGX 应用程序。我需要在 enclave 中使用 OpenSSL 库。但是,当我构建 enclave 时,会出现大量错误。 它们看起来像这样:
Error 17 error C2061: syntax error : identifier 'FILE' C:\OpenSSL-Win32\include\openssl\asn1.h 994 1 Enclave
我不确定我是否正确配置了 enclave。
VC++ Directories --> Include Directories "C://OpenSSL-Win32/include"
Library Directories "C://OpenSSL-Win32/lib"
C/C++ --> Additional Include Directories "(some SGX default); C://OpenSSL-Win32/include"
Linker --> General --> Additional Library Directories "C://OpenSSL-Win32/lib"
Input --> Additional Dependencies: "libeay32.lib; ssleay32.lib"
感谢任何帮助。
您使用的是英特尔信任的 OpenSSL 库吗?示例代码 "X509 project" 展示了如何在飞地内使用受信任的 OpenSSL (topenssl)。 如果你想使用另一个版本的 OpenSSL,你应该使用英特尔可信标准 C/C++ 库构建它并创建一个 "enclave library" 然后 link 它到飞地。您不能 link 带有一些随机库的飞地,您只能 link 它带有受信任的静态库。
为了同样的目的,我移植了mbedtls
to the SGX environment. The ported version is available on GitHub。欢迎结帐。
您可能还想查看 TaLoS,这似乎符合您的要求:
TaLoS 是一个 TLS 库,它允许现有应用程序(具有 OpenSSL/LibreSSL 接口)安全地终止其在英特尔 SGX 飞地内的 TLS 连接。该代码可在 GitHub.
上获得还有一个 technical report 包含有关体系结构和性能结果的详细信息。
根据您的设置,我了解到您没有使用受信任的 OpenSSL 版本。飞地内有几个不同的库支持 TLS。 Intel 为 enclave GitHub. I have created a short installation guide using their docs Here.
实施了 OpenSSL但是Intel版本有一些限制,比如不支持结束enclave内的TLS连接;相反,他们支持加密功能。还有一些其他库支持网络功能,但主要没有更新。