2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

TEE 体験入門

IoTやブロックチェーンで何かと便利に使われるセキュリティ機能、Trusted Execution Environment(TEE) ですが、Azureが2019/12/31現在でPaaSとしてサポートしているそうなので試してみましょう。現状ではAzureとIBM、AlibabaなどがTEE(Intel SGX)をサポートしており、AWSとGCPのインスタンスはSGX利用可能になっていないようです。

基本的にIntelの第6世代以後のコアには入っている機能らしいですが、マザーボードの対応等の違いもあり、実行できる環境はまだ少ないです。
自分の実機で使えるかどうかは次のように調べられます。

$ git clone https://github.com/ayeks/SGX-hardware.git
$ cd SGX-hardware
$ gcc test-sgx.c -o test-sgx
$ ./test-sgx

出力で"sgx available"と"sgx supported"がどちらも”1”だと利用可能な状況です。

本編は「クラウドでのTEEというのはこういうものである」というのを体験するためのものであり、一切の概念・システムの説明は致しません。概念理解はこちらをどうぞ
https://qiita.com/Cliffford/items/2f155f40a1c3eec288cf

ではクラウドでTEEを実行できるConfidential Computingを使ってみましょう。
https://azure.microsoft.com/ja-jp/solutions/confidential-compute/

なにやら全く新しい世界が広がってるかのようですが、身構えることは一つもありません。単にSGXがサポートされてる仮想マシンが作れるだけです。

設定画面 https://portal.azure.com/

「Confidential Compute VM Deployment」を検索し、MarketPlaceの欄で見つけられるはずです。

デプロイが終わったら、仮想マシンの設定でネットワークを開いてください。

無題のプレゼンテーション (10).jpg

最初は下3つのルールしかないと思いますが、受信ポートの規制を追加するを押してください。
これは、初期設定でAzure内からVMへののアクセスのみOK、VMからインターネットへのアクセスは全部OKになっているので、sshのみIPを指定して入れるようにしてあげます。

無題のプレゼンテーション (11).jpg

ソースIPをVPNのものか限定されたあなたのIPアドレスにし、プロトコルをTCPに、優先度を65000より小さい数字にして下さい。これによって上記のポリシーを上書きできます。

では仮想マシン設定 → 概要 → 接続へ移動しsshのコードをCLIへコピペして実行して下さい。

繋がったら次の通りに実行します。

$ sudo cp -r /opt/openenclave/share/openenclave/samples/ .
$ sudo chown -R 'あなたのUserネーム':'あなたのUserネーム' samples/
$ source /opt/openenclave/share/openenclave/openenclaverc
$ cd samples/helloworld
$ make build
$ make run

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
2
Help us understand the problem. What are the problem?