TensorSCONE: A Secure TensorFlow Framework using Intel SGX
musl libcターゲットのSGX対応LibOSであるSCONEをベースにTensorFlowを用いて学習・推論の処理を評価する論文
機械学習における学習フェーズも顧客の機密性の高い大規模なデータセットを扱う事になるになるのでセキュリティ対策が必要
パフォーマンス要件を満たしつつ機械学習ライブラリを修正せずにTEEで実行するための技術的な課題は以下が挙げられる
Enclave物理メモリの制限に伴うセキュアページングのオーバーヘッド
TensorFlowライブラリなどのメモリフットプリントを最小限にする必要
学習用データセットはEnclaveメモリに収まらないのでuntrustedなhostメモリやファイルシステムに安全に記録する必要
TLBフラッシュやセキュリティチェックを伴うenclaveとのコンテキストスイッチはオーバーヘッドが大きいのでシステムコールベースのI/O最小限にする必要
Enclave I/Oの透過的暗号化
https://gyazo.com/47910095d952c0bb26402c4b9f3423cf
学習時はTensorFlowベース、推論時はTensorFlow Liteベース
TensorFlow Lite:モバイルデバイスや組み込みで推論実行をすることを想定されたより軽量なライブラリ
学習フェーズは複数のSGXマシンで分散処理
cipepser.icon 気になる。federatedな感じなんですかね?
Evaluation
https://gyazo.com/82d5e3682620dc9f07bc258f306a2fd3
モデル
2つの畳み込み層
推論レイテンシー
SGX上でTensorSCONEは通常のglicベースより約3倍実行時間がかかることがわかる
https://gyazo.com/e688b5c1095f1dd171280db22d7e2028
学習時レイテンシーは推論時のそれと同様
推論スループット
SGX上でTensorSCONEは通常のglicベースより約3倍実行時間がかかることがわかる
https://gyazo.com/4626bb054bff99f5407dee19f90e9b3e
cipepser.icon glibcつよい
メモリフットプリント
約330MB
モデル:163MB
nrryuya.icon > これEPCに乗らないのでは
画像:1MB
学習の時間
https://gyazo.com/55b8c153d7286b032a709546f8b7601c
If you are already logged in, please enable 3rd party cookies in your web browser settings.
Future Work: GPU with TEE
appendix
学習・推論ともにfutexが支配的
メモリロック機構
https://gyazo.com/fa339c9aa3277e195ecde08b725cb929
https://gyazo.com/5d942d249ca218823e535a306216f008
学習フェーズ
python moduleのimportでdlopenシステムコールはデフォルトでdisable
動的にロードされるのでattestatin hashに含まれない
pythonパッケージのtensorflowは fork() を含むのでコンパイルできない。
よって、C++ APIのみをサポート
https://gyazo.com/40a138459791b5a8319baa8293e2ca61
graph定義はpythonで実装しprotobuf経由でc++ツールチェーンにロード
それぞれのステップ128imagesごと
推論フェース
SCONEはglibcより軽量なmusl libcベース
Identical code folding(ICF) やglibc特有のbacktraceをtensorflowとその依存から削除する必要