我收集到SGX飛地在第3環運行。我想在SGX飛域內運行一個程序,它將要訪問內核數據結構和文件。有什麼辦法可以做到這一點?英特爾SGX飛地可以在ring 0運行嗎?
換句話說,我們可以用root權限使用sudo來運行SGX enclaves嗎?
我收集到SGX飛地在第3環運行。我想在SGX飛域內運行一個程序,它將要訪問內核數據結構和文件。有什麼辦法可以做到這一點?英特爾SGX飛地可以在ring 0運行嗎?
換句話說,我們可以用root權限使用sudo來運行SGX enclaves嗎?
SGX Enclaves目前僅允許執行Ring 3代碼。 英特爾SGX飛地只運行在環3,沒有內核模式。英特爾SGX目標是確保環3本身的應用安全。
謝謝你的回答。 –
希望通過OCALL訪問內核數據結構的方式。 您可以在區域內調用OCALL,並讓不受信任的代碼/主機應用程序調用某些系統調用函數來獲取所需的數據。
謝謝你的建議。你能否詳細說明OCALL是什麼? –
@cout_display_name 這是使用SGX的基本概念。 OCALL是當飛地內的一個應用程序調用函數離開飛地時,並且可能返回一些信息。 ECALL是在飛地之外的主機應用程序調用飛地。 您可能需要閱讀英特爾SGX手冊,以便您更好地瞭解它們是什麼以及如何使用它。 https://download.01.org/intel-sgx/linux-1.5/docs/Intel_SGX_SDK_Developer_Reference_Linux_1.5_Open_Source_Beta.pdf –
根與ring0不同。用戶空間根進程只能通過'/ dev/mem'和類似的東西訪問內核內存,並且不能運行特權指令。 –