研究課題/領域番号 |
23H03373
|
配分区分 | 補助金 |
研究機関 | 慶應義塾大学 |
研究代表者 |
河野 健二 慶應義塾大学, 理工学部(矢上), 教授 (90301118)
|
研究分担者 |
須崎 有康 情報セキュリティ大学院大学, その他の研究科, 教授 (50357274)
|
研究期間 (年度) |
2023-04-01 – 2026-03-31
|
キーワード | TEE / 永続メモリ |
研究実績の概要 |
TEEと永続メモリの共存を可能にするためには,TEEの管理情報を永続化する必要がある.TEEの管理情報は通常のソフトウェア(特権ソフトウェアを含む)からはアクセスすることができないため,管理情報を永続化し,再起動時に復帰する機能をCPUに拡張する必要がある.研究初年度である今年度は,CPUに追加すべき機能の検討を容易にするためのフレームワークの実現を行なった.研究開始当初は,HyperEnclaveというソフトウェア・ベースのTEE実装を利用することを想定していたものの,詳細が十分に公開されておらず,HyperEnclaveを利用したCPU機能の検討はできないことがわかった.そのため,当初の予定を変更してソフトウェア・ベースのTEEを独自に実装することとした.さまざまな方式について検討を行なった結果,TEEの機能をハードウェアで提供するAMD SEV-SNPの機能を利用できそうだという結論に至った.AMD SEV-SNPでは,VMPLという機能を提供しており,この機能をうまく利用することで,ソフトウェア・レベルでさまざまな TEE を実現できることがわかった. TEE に直接関係するこれらの研究に継続して,永続メモリを利用したアプリケーションについての知見の蓄積も行った.具体的には永続メモリを用いたマルチプログラミング言語プログラミングの機構である.機械学習などのアプリケーションは単一の言語で構成するよりも,個々の言語の特性を活かしてマルチ言語で実装した方がよいことを指摘し,さらに中間状態を永続メモリに保存できるようにするための基本的な仕組みを確立した.また,永続メモリプログラミングに特有のキャッシュと永続メモリの同期忘れに起因するバグの検出を容易にする機構の開発も行った.TEEと永続メモリの統合が完了した時点で,こうしたアプリケーションによる評価を行う予定である.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
おおむね順調に進んでいるといってよい.「研究実績の概要」にも記載した通り,CPUに追加すべき機能を検討するため,当初はHyperEnclaveというソフトウェア・ベースのTEEを利用する予定であった.しかし,HyperEnclaveの原論文ではソース・コード等の情報がすべて開示されていることとなっており,実際にソース・コードを入手することもできたものの,実際に動作させるために必要なソフトウェア・コンポーネントの一部がバイナリでのみ提供されており,本研究で活用するには十分は内部情報が得られないことがわかった.そのため,急遽,作業方針の変更を行うこととなった.ソフトウェア・ベースでTEEを実現するという試みは,HyperEnclaveに限らず,他にも例えばvSGXなどがある.こうしたソフトウェア・ベースでの実装をいくつか検討したものの適切なものがなかった. そのような中で,本研究課題とは独立に調査を進めていたAMD SEV-SNPというハードウェア・ベースのTEEの機能のうち,VMPLという機能を用いることで,所望のソフトウェア・ベースのTEE環境が実現できるのではないかという着想を得た.実際に試験的な実装を行ってみたところ多様な機能を持つTEEをソフトウェア・ベースで実現可能であることがわかった.そこで,次年度以降に行うCPUへの追加機能の検討を行うためのフレームワークとして実装を行なった.本研究課題を推進するための補助的な役割を果たすために実現したものではあるものの,ソフトウェア・ベースのTEEの新たな実現方法の提案ともなっており,学術的な意義も大きいものとなっている.当初の研究計画では,このようなフレームワークを独自で実現する予定ではなかったため,進捗に若干の遅れが生じたものの,副産物として大きな成果が得られた.そのため総合的に考えれば,順調に進捗しているといってよい.
|
今後の研究の推進方策 |
TEE と永続メモリの共存を可能とするためのCPUへの追加機能を明確にすることが本研究課題の目的である.研究初年度である今年度は,今後の研究推進のために必要となるソフトウェア・ベースのTEEの実現を行なった.これにより,次年度以降の研究推進のための基盤が整ったといってよい.次年度はこのソフトウェア・ベースのTEE実装を用いてCPUに追加すべき機能の検討を行う. 当初の研究計画では,TEE機能を持たないCPUの上で実現されたソフトウェア・ベースのTEEを利用する予定であったため,ソフトウェアの管理している情報のみに着目して,TEEの永続化に必要な情報を抽出し,管理情報の安全な永続化および再起動時の再構成方法を考察すれば十分であった.しかし,「進捗状況」などで述べたようにAMD SEV-SNPというハードウェア・ベースのTEEの機能を部分的に利用してソフトウェア・ベースの TEE 実装を行ったため,ソフトウェアで管理している情報以外にも CPU 内部で管理されている情報があり,その点について慎重に考察を行う必要がある.CPU の内部で管理されている情報は公開されていないため,CPU エミュレータである QEMU の実装を参考にすることを考えている.QEMU はさまざまな CPU をエミュレートできるようになっており,AMD SEV-SNP のエミュレーションも可能である.そのため,QEMU 内部で管理されている情報を参照することで,永続化に必要な管理情報のヒントが得られると考えている. 研究最終年度である次々年度には,次年度に得られた結果をベースに RISC-V 上で永続化可能な TEE を実現するための CPU 機能拡張を目指す.現時点では,RISC-V の TEE 実装のひとつとして提案されている CoVE を想定し,その QEMU 実装に拡張を行っていく予定である.
|