簡體   English   中英

將 OpenSSL 與英特爾 SGX Enclave 結合使用

[英]Using OpenSSL with Intel SGX Enclave

我目前正在開發英特爾 SGX 應用程序。 我需要在飛地中使用 OpenSSL 庫。 但是,當我構建飛地時,會出現大量錯誤。 它們看起來像這樣:

Error   17  error C2061: syntax error : identifier 'FILE'   C:\OpenSSL-Win32\include\openssl\asn1.h 994 1   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"

任何幫助表示贊賞。

為了同樣的目的,我將mbedtls移植到了 SGX 環境中。 移植版本可在GitHub 上獲得 隨意結帳。

您使用的是英特爾信任的 OpenSSL 庫嗎? 有一個示例代碼“X509 項目”,展示了如何在飛地內使用受信任的 OpenSSL (topenssl)。 如果您想使用另一個版本的 OpenSSL,您應該使用英特爾信任的標准 C/C++ 庫構建它並創建一個“飛地庫”,然后將其鏈接到飛地。 您不能將飛地與某些隨機庫鏈接,您只能將它與受信任的靜態庫鏈接。

您可能還想查看TaLoS ,它似乎在做您想做的事:

TaLoS 是一個 TLS 庫,它允許現有應用程序(具有 OpenSSL/LibreSSL 接口)安全地終止其在英特爾 SGX 飛地內的 TLS 連接。 代碼可在GitHub找到

還有一份技術報告,其中包含有關架構和性能結果的詳細信息。

我從您的設置中了解到,您沒有使用受信任的 OpenSSL 版本。 enclave 中有幾個不同的庫支持 TLS。 英特爾為 enclave GitHub實現了 OpenSSL。 我使用他們的文檔在這里創建了一個簡短的安裝指南。

但是,Intel 版本有一些限制,例如它們不支持在 enclave 內結束 TLS 連接; 相反,他們支持加密功能。 還有一些其他庫支持網絡功能,但它們主要沒有更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM