コンフィデンシャルクラウド:コンフィデンシャルコンピューティング入門
はじめに
このブログシリーズでは、コンフィデンシャルコンピューティング(CoCo)の世界をご案内いたします。本ブログシリーズを読んで、CoCoへの理解を深めていただけますと幸いです。
コンフィデンシャルコンピューティングとは何か?
ウィキペディアには、コンフィデンシャルコンピューティングについて次のように記載されています: 「使用中のデータの保護に焦点を当てた、セキュリティとプライバシーを強化した計算技術」。ここで強調すべき重要な概念は「使用中のデータ」という部分です。
データは現在、新たな金と考えられており、コンフィデンシャルコンピューティング(CoCo)は、この貴重な資産を使用中または「処理中」に保護することを目的としています。自分のデータが盗み見されることは、最も避けたいことです。転送中やストレージ中のデータを暗号化することで、データを保護する仕組みは古くから存在していますが、純粋にソフトウェアの観点から、CPUによる処理中やメモリへの保存中にデータを暗号化するためにできることは限られてきました。そこでCoCoが役立ちます。ハードウェアとソフトウェアのソリューションを統合することで、データを保護し、権限のない第三者による改ざんやアクセスを確実に防ぐことができるのです。
コンフィデンシャルコンピューティングはどのような問題を解決しようとしているのか?
前節ですでにヒントは得られたと思いますが、実際のユースケースをチェックしてみましょう。
クラウドサービスの普及に伴い、多くの企業は第三者が自社のデータに不正アクセスすることがないか、懸念しています。「クラウドは他人のコンピューターに過ぎない」という “古い”格言は今でも真実です。クラウドプロバイダで働く従業員は、技術的には、顧客のデータにアクセスすることが可能です。クラウドプロバイダは不正アクセスを防ぐ努力をしていますが、特に仮想化やコンテナ化された環境では、悪意を持った従業員が顧客データにアクセスする可能性が残っています。必要な権限を持つ管理者は、VMやコンテナのメモリにアクセスすることができます。簡単に言えば、ここで問われているのは:
- クラウドプロバイダの従業員を信頼できますか?ということです。
コンフィデンシャルコンピューティングでは、信頼すべき対象が、クラウドプロバイダの従業員から、暗号化アルゴリズムとハードウェアベンダーに移ります:
- 暗号化アルゴリズムとハードウェアを信頼するのか、それとも誰か分からないクラウドプロバイダの従業員を信頼するのか?
しかし、コンフィデンシャルコンピューティングのスコープはクラウドプロバイダだけにとどまりません。データを含むハードウェアを紛失したり盗まれたりした場合でも、犯罪者がそのデータにアクセスできる可能性を排除することも目的としているのです。
悪意のある誰かが、あなたのコンピューターが稼働しているデータセンターに物理的にアクセスすることに成功したとしましょう。このようなことはあり得ないと思われるかもしれませんが、データを盗む十分な動機があれば、メモリに保存されている暗号化キーを取り出すさまざまな方法があり、それを使って通信や暗号化されたストレージを解読することは可能になります。
他のシナリオもありますが、コンフィデンシャルコンピューティングの主な目的は、使用中のデータの盗難や操作を防ぐことです。
データを保護する方法は?
当社にはさまざまなメカニズムがあります:
-
ストレージ中のデータ -> ディスクの暗号化
現在では、ストレージデバイスを暗号化することは非常に一般的になっており、2002年頃からLinuxカーネルでサポートされています(カーネル開発[LWN,net])。クライアント・サーバー・インフラストラクチャを構成して、システムのディスク暗号化を管理することもできます。
これに関する実践的なガイダンスについては、当社のドキュメントをご覧ください。
-
転送中のデータ-> ネットワーク暗号化
これも今日では一般的なものとなっており、いまやtelnetやhttpを使っている人を見かけることは稀です。多くの場合、アプリケーション間では暗号化通信が使われており、一般的には公開鍵基盤(PKI)が採用されております。
また、これらは一般的にパフォーマンスへの影響を軽減するハードウェアを活用し、OSやアプリケーションレベルで実施されます。
OS関連のセキュリティ対策に関する実践的な情報については、SLESセキュリティおよび堅牢化ガイドをご覧ください。 -
使用中のデータ-> メモリの暗号化
これが最も複雑な問題です。本当に役立てるにはそのためのハードウェアが必要となります。もしキーがメモリの暗号化されていない部分に保存されていれば、メモリを暗号化する意味はほとんどありません。
ハードウェアとソフトウェアの両方を活用し、認証プロセスを実装することにより、データが不正アクセスされたり改ざんされたりしていないことを保証することができます。こちらは、概要を説明した文書へのリンクですが、シリーズを通してこの説明を続けますので、ご期待ください。
どのように機能するのか?
暗号化エンジンは、CPU内のメモリ・アクセス・モジュールとCPU外の物理メモリの間に配置されています。この暗号化エンジンは、CPUと物理RAMの間を流れるデータを保護するためにAES暗号を利用しています。
プレーン・テキスト・データはすべてCPU本体のみに存在します。
このハードウェアを活用して、例えば、仮想マシンが使用するメモリが改ざんされいない事を確認し、またハイパーバイザーから覗き見されない様にすることが出来ます。
まとめ
コンフィデンシャルコンピューティングとその目的について基本的な理解を深めていただけましたでしょうか?今後のブログシリーズで本トピックをより深く掘り下げていきたいと思います。
👉 詳細はこちらからご確認ください。
Related Articles
2月 13th, 2024
クラウドコンピューティングとエッジコンピューティング
6月 20th, 2023
セキュリティを強化し高機能化を実現したビジネスクリティカルLinuxをリリース
6月 23rd, 2024