Extending Layered Attestation into ARM Application Run-Times
本論文では、Permission Overlay Extensionsを活用することで、ロード時からのハードウェアによるアテステーションを実行時まで拡張し、最小限のパフォーマンスオーバーヘッドで実行時の完全性検証と秘密情報の保護のための保護されたアテステーションドメインを構築する、ARMベースのアプリケーション・ランタイム・アンカーであるARAを提案する。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
現代のコンピューティングの世界において、信頼は多くの場合、プログラムが起動する瞬間に確立されます。スマートフォンでアプリを開くと、デバイスはソフトウェアが本物であり、改ざんされていないことを、実行が始まる前に確認します。アテステーション(属性証明)として知られるこのプロセスは、チップ自体に組み込まれた、ソフトウェアのアイデンティティを検証するための安全な基盤である、ハードウェアによる「ルート・オブ・トラスト(信頼の起点)」に依存しています。しかし、その最初のチェックを通過し、アプリケーションが業務を開始すると、この高度なセキュリティはしばしば消失してしまいます。デバイスはプログラムが正しく動作していると仮定するため、悪意のある攻撃者がアプリの挙動を変更したり、秘密を盗んだり、システムに気づかれることなくデータを操作したりできる隙が生じてしまうのです。長年、この問題への解決策は、機密性の高いタスクを分離された別の環境に移すことでしたが、それを行うにはコンピュータが異なるセキュリティゾーン間を絶えず切り替えなければならず、そのプロセスは低速でバッテリー消費を激しくしました。
チューリッヒ大学とファーウェイの研究チームは、このギャップを埋めるための新しいアプローチを開発しました。これにより、パフォーマンスへの大きな影響を与えることなく、アプリケーションの全ライフサイクルを通じてセキュリティを持続させることが可能になります。彼らは「ARA」と呼ばれるシステムを構築し、アプリケーション自身のメモリ空間内に、直接、安全で保護されたゾーンを確立しました。最新のARMプロセッサに導入された新しいハードウェア機能を利用することで、研究者たちは、アプリケーションが自身の「信頼できるセキュリティガード」をホストし、プログラムの動作を監視し、機密キーをリアルタイムで保護できるようにしました。彼らの研究は、アプリケーションが正しく動作していることを検証し、高度なセキュリティレベルを維持しながら、未保護のアプリケーションとほぼ同等の速度で動作することが可能であることを実証しています。
研究者たちが直面した核心的な課題は、いかにして、遠く離れた境界を越えて通信させるという負荷をかけることなく、信頼できるセキュリティシステムを、潜在的に侵害された可能性のあるアプリケーションから隔離するかという点でした。伝統的な手法は、セキュリティサービスを完全に別のプロセスや特化したハードウェア・エンクレーブ内で実行することに依存しています。これらの手法は安全ではありますが、コンピュータがメインのアプリケーションを停止し、コンテキストを切り替え、複雑な障壁を越えて通信を行う必要があり、セキュリティチェックが必要になるたびにこれが行われます。この絶え間ない切り替えは大きな遅延を生み出し、プログラムのあらゆるステップを監視したり、ビデオストリームをリアルタイムで復号したりといった、頻繁かつ一瞬の判断を必要とするタスクには実用的ではありません。研究者たちは、解決策は「Permission Overlay Extensions」と呼ばれる新しいハードウェア機能にあることに気づきました。これは、単一のプログラムが自身のメモリを、異なるアクセスルールを持つ明確に分離された「部屋」へと分割することを可能にし、それらはプロセッサ自身によって管理されます。
この技術を用いて、チームはARAをアプリケーションのアドレス空間内の安全なアンカーとして構築しました。アプリケーションが起動すると、まず信頼できるローダーが環境をセットアップし、メモリを3つの明確な領域に分割します。一つは信頼できないアプリケーションコード、一つは制御されたエントリポイント、そしてもう一つは安全なセキュリティサービス用です。その後、プロセッサに対して、これらの領域に対して厳格なルールを強制するよう指示が出されます。メインのアプリケーションは自身のデータを読み書きできますが、セキュリティサービスが存在するメモリに触れることは完全に禁止されています。決定的なのは、アプリケーションが自分自身でこれらのルールを変更できないことです。たとえハッカーがアプリケーションに悪意のあるコードを注入できたとしても、そのコードは物理的に安全な領域に到達することも、それを守っている権限を変更することもできません。アプリケーションがセキュリティサービスとやり取りする唯一の方法は、セキュリティシステムが制御する特定の、事前に承認された「ドアウェイ」を通ることだけです。
研究者たちは、このシステムが現実世界でどのように機能するかを確認するために、2つの異なるシナリオでテストを行いました。最初のケースでは、秘密のキーを使用してビデオコンテンツを復号する必要があるメディアストリーミングサービスをシミュレートしました。彼らは、新しいシステムを、復号のために別プロセスを使用するという標準的な手法と比較しました。結果として、新システムは劇的に高速であることが示されました。2時間のビデオファイルに対して、従来の方式ではプロセス間の絶え間ない切り替えにより数秒の遅延が発生しましたが、新システムではわずか数分の一秒の遅延しか発生しませんでした。2つ目のケースでは、プログラムが正しい経路を辿っていることを確実にするために、アプリケーションの挙動を常に監視するシステムをテストしました。これは、毎秒数千回のセキュリティチェックを必要とするタスクです。ここでも、新システムは従来の方式よりも約30倍から55倍高速でした。このスピード向上は、異なるプロセス間を切り替えたり、オペレーティングシステムに助けを求めたりする必要性を排除したことによるものであり、セキュリティチェックは、ハードウェアによって保護された、アプリケーション自身のフローの中で直接行われました。
この研究はまた、このシステムがモバイルデバイスの既存のセキュリティ環境にどのように適合するかについても扱っています。現代のスマートフォンは、アプリが最初にインストールまたは起動される際に、そのアプリが正当であることを検証するために、すでにハードウェアを使用しています。研究者たちは、既存の信頼の連鎖を拡張するようにこのシステムを設計しました。アプリが起動すると、デバイスはアプリ自体を検証するのと同様に、安全なセキュリティサービスを検証します。これは、アプリ内部で行われているセキュリティチェックが本物であり、改ざんされていないことを、リモートサーバーが確信できることを意味します。また、システムには、秘密のキーをアプリケーションに安全に届ける方法も含まれています。サーバーは、特定の検証済みインスタンスのアプリケーションのみが解読できる暗号化されたキーを送信できるため、たとえアプリケーションが侵害されたデバイス上で実行されていても、秘密は保護されたメモリゾーン内に安全に保持されます。
このシステムは大きな期待を集めていますが、研究者たちは、必要なハードウェア機能がまだ商用デバイスには搭載されていないことを指摘しています。彼らは、コンセプトが機能することを証明するために、シミュレーション環境と改造された物理プロセッサを使用してプロトタイプを構築しました。また、現在の設計はアプリケーションがシングルスレッドで動作することを前提としており、複数の同時スレッドをサポートするには、すべてのスレッドに対してセキュリティルールが正しく維持されるように追加のエンジニアリングが必要であることも認めています。それにもかかわらず、この研究は、アプリケーションが高速かつ安全であり得る未来への実用的なブループリントを提供しています。それは、パフォーマンスと保護の間の長期にわたるトレードオフは避けられないものではなく、適切なハードウェアサポートがあれば、ユーザー体験を損なうことなく、アプリケーションが自らの秘密を守り、自らの完全性を検証できる時代が来ることを示唆しています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。