Intel SGX Windowsでの開発環境構築 2020年版

はじめに

この記事は、WindowsでIntel SGXを用いた開発を行なおうとしている人向けのものになります。内容は、以下のページのProject settings in Visual Studioと同等のものになります。

同等なのになぜこの記事を書くかというと、このページは最終更新から3年以上経過しており、一部情報が古いためです。また、この記事ではシステムの前提なども交えて話を進めていきたいと思います。

必要なソフトウェア

・Intel Management Engine(ME) 11.5.0.1000以上

・Microsoft Visual Studio 2017(Communityでも可)

・Intel SGX SDK

(・Intel SGX Platform Software (PSW))

IntelMEは既にインストールされている事もありますが、入っていない場合やバージョンが古い場合はインストールしてください。

Visual Studioは2015や2019ではなく2017を入れてください。これは後述するSGXデバッガが現在は2017に対応しているからです。

Intel SGX SDKは元のページの指示通り下記からインストーラを入手できます。関連づけのために必ずVisualStudioをインストール後にインストールしてください。もし順番が前後してしまった場合は、もう一度SGX SDKを入れ直してください。

SGXを利用するためのシステム要件

上記でSGX PSWを括弧にしたのは、開発には必須ではないからです。SGX PSWが使用されるのはソリューションビルド後の実行時、つまり、実際にSGXを利用するタイミングになります。しかし、ビルド時にDebugモードではなくSimulationモードを指定することで、SGXを擬似的に再現するようになり、SGX PSWは不要になります。本番環境では必要になりますが、開発環境というだけであれば必須ではないということです。

必須ではないですが、SGXを使える人はSGX PSWを入れて実行してみるのが良いと思います。BIOSにSGXが対応している必要がありますが、BIOS設定でSGXをEnableにするとPSWを入れることができるそうです。上記のSDKの入手先と同様のページでインストーラを入手できますが、使用しているPCによってはMS Storeからインストーラを入手する必要があります。ただ、その辺は上記サイトのインストーラ実行時に言ってくれますので従っていれば問題ないと思います。

Visual Studioの設定

おおむね元のサイトの通りで問題ありませんが、プロジェクトのAppとEnclaveのどちらも設定する必要がある点Platform ToolsetにVisual Studio 2017を設定する点Platform Toolset設定適用後でないとSGXDebuggerが選択できない点に注意してください。SGXDebuggerはSDKをインストールする際に付いてきます。また、SGX PSWを入れていないのであれば、ビルド時にDebugモードではなくSimulationモードにすることにも注意してください。エラーが出た場合は、元サイトの下記にあるErrors during application developmentを参照すると良いです。

おわりに

Intel SGXを始めようにも、参考になるサイトが古かったり、そもそも少なかったりするため書いてみました。やる人も少ない気がしなくはないですが、少しでも役に立てば幸いです。ここまでお読みいただきありがとうございました。