(57)【要約】  実施形態は、リソースコンテンツの仮想ビューを使用してデータを保護するためのコンピューティングデバイス、システム、および方法を含む。仮想化インターフェースモニタは、第１の要求エンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタし、第１の要求エンティティがコンピューティングデバイスのリソースのオーナであるかどうかを決定し得る。データ保護システムは、第１の要求エンティティがコンピューティングデバイスのリソースのオーナであると決定することに応答して、コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされていない仮想ビューを第１の要求エンティティに提供し得る。リソースコンテンツ暗号デバイスは、第１の要求エンティティがコンピューティングデバイスのリソースの非オーナであると決定することに応答して、コンピューティングデバイスのリソースのリソースコンテンツの仮想ビューを不明瞭にし得る。データ保護システムは、コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされた仮想ビューを第１の要求エンティティに提供し得る。【選択図】図６
2019512811.tif 000002
【特許請求の範囲】
【請求項１】
リソースコンテンツの仮想ビューを使用してデータを保護する方法であって、
コンピューティングデバイスの仮想化インターフェースモニタによって、第１の要求エンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタすることと、
前記仮想化インターフェースモニタによって、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定することと、
前記コンピューティングデバイスのデータ保護システムによって前記第１の要求エンティティに、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされていない仮想ビューを提供することと、
前記データ保護システムによって前記第１の要求エンティティに、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースの前記リソースコンテンツの不明瞭にされた仮想ビューを提供することと
を備える、方法。
【請求項２】
リソースコンテンツ暗号デバイスによって、前記第１の要求エンティティが、認証された機能を有するかどうかを決定することと、
前記リソースコンテンツ暗号デバイスによって、前記第１の要求エンティティが認証された機能を有すると決定することに応答して、前記第１の要求エンティティのためのアクセスタイプを決定することと、
前記コンピューティングデバイスのリソースコンテンツ暗号デバイスによって、前記アクセスタイプに基づく不明瞭化レベルを使用して、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にすることと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記アクセスタイプは、部分的に不明瞭にされるものおよび不明瞭にされるものを含み、前記アクセスタイプに基づく不明瞭化レベルを使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にすることは、
前記リソースコンテンツ暗号デバイスによって、前記第１の要求エンティティのための前記アクセスタイプが部分的に不明瞭にされるものであると決定することに応答して、準同型暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化することと、
前記リソースコンテンツ暗号デバイスによって、前記第１の要求エンティティのための前記アクセスタイプが不明瞭にされるものであると決定することに応答して、強力な暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化することと
を備える、請求項２に記載の方法。
【請求項４】
前記仮想化インターフェースモニタによって、前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタすることと、
前記仮想化インターフェースモニタによって、前記第１の要求エンティティについての前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する前記第１の要求エンティティの第１のオーナ識別子を記憶することと、ここにおいて、前記第１のオーナ識別子は、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナシップを許可されていることを示し、前記仮想リソース識別子は、前記コンピューティングデバイスのリソースの物理リソース識別子にマッピングされる、
をさらに備える、請求項１に記載の方法。
【請求項５】
前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタすることは、第２の要求エンティティによる前記コンピューティングデバイスのリソースのオーナシップを求める要求についてモニタすることを備える、請求項４に記載の方法。
【請求項６】
前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定することは、
前記仮想化インターフェースモニタによって、前記コンピューティングデバイスのリソースにアクセスするための前記要求の仮想リソース識別子を、前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する記憶されたオーナ識別子と比較することと、
前記コンピューティングデバイスのリソースにアクセスするための前記要求の前記仮想リソース識別子と前記コンピューティングデバイスのリソースの前記仮想リソース識別子とがマッチするときに、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することと
を備える、請求項１に記載の方法。
【請求項７】
前記コンピューティングデバイスのリソースの前記オーナはアプリケーションであり、
前記コンピューティングデバイスのリソースの前記非オーナは、オペレーティングシステムカーネル、ハイパーバイザ、およびＴｒｕｓｔＺｏｎｅのうちの１つを含むリソースマネジャである、
請求項１に記載の方法。
【請求項８】
コンピューティングデバイスであって、
仮想化インターフェースモニタおよびリソースコンテンツ暗号デバイスを備えるデータ保護システム
を備え、
前記仮想化インターフェースモニタは、動作を行うための仮想化インターフェースモニタ実行可能命令で構成され、前記動作は、
第１の要求エンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタすることと、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定することと
を備え、
前記データ保護システムは、動作を行うためのデータ保護システム実行可能命令で構成され、前記動作は、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされていない仮想ビューを、前記第１の要求エンティティに提供することと、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースの前記リソースコンテンツの不明瞭にされた仮想ビューを、前記第１の要求エンティティに提供することと
を備える、
コンピューティングデバイス。
【請求項９】
前記リソースコンテンツ暗号デバイスは、動作を行うためのリソースコンテンツ暗号デバイス実行可能命令で構成され、前記動作は、
前記第１の要求エンティティが、認証された機能を有するかどうかを決定することと、
前記第１の要求エンティティが認証された機能を有すると決定することに応答して、前記第１の要求エンティティのためのアクセスタイプを決定することと、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースの前記リソースコンテンツの仮想ビューを不明瞭にすることと
をさらに備える、請求項８に記載のコンピューティングデバイス。
【請求項１０】
前記アクセスタイプは、部分的に不明瞭にされるものおよび不明瞭にされるものを含み、
前記リソースコンテンツ暗号デバイスは、
前記第１の要求エンティティのための前記アクセスタイプが部分的に不明瞭にされるものであると決定することに応答して、準同型暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化することと、
前記第１の要求エンティティのための前記アクセスタイプが不明瞭にされるものであると決定することに応答して、強力な暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化することと
を備える、前記アクセスタイプに基づく不明瞭化レベルを使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にすることを行うように動作を行うためのリソースコンテンツ暗号デバイス実行可能命令で構成された、請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記仮想化インターフェースモニタは動作を行うための仮想化インターフェースモニタ実行可能命令で構成され、前記動作は、
前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタすることと、
前記第１の要求エンティティについての前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する前記第１の要求エンティティの第１のオーナ識別子を記憶することと、ここにおいて、前記第１のオーナ識別子は、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナシップを許可されていることを示し、前記仮想リソース識別子は、前記コンピューティングデバイスのリソースの物理リソース識別子にマッピングされる、
をさらに備える、請求項８に記載のコンピューティングデバイス。
【請求項１２】
前記仮想化インターフェースモニタは、第２の要求エンティティによる前記コンピューティングデバイスのリソースのオーナシップを求める要求についてモニタすることを備える、前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタすることを行うように動作を行うための仮想化インターフェースモニタ実行可能命令で構成される、請求項１１に記載のコンピューティングデバイス。
【請求項１３】
前記仮想化インターフェースモニタは、
前記コンピューティングデバイスのリソースにアクセスするための前記要求の仮想リソース識別子を、前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する記憶されたオーナ識別子と比較することと、
前記コンピューティングデバイスのリソースにアクセスするための前記要求の前記仮想リソース識別子と前記コンピューティングデバイスのリソースの前記仮想リソース識別子とがマッチするときに、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することと
を備える、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定することを行うように動作を行うための仮想化インターフェースモニタ実行可能命令で構成された、請求項８に記載のコンピューティングデバイス。
【請求項１４】
前記データ保護システムに通信可能に接続された複数のプロセッサをさらに備え、
前記コンピューティングデバイスのリソースの前記オーナは、前記複数のプロセッサのうちの第１のプロセッサ上で実行されるアプリケーションであり、
前記コンピューティングデバイスのリソースの前記非オーナは、前記複数のプロセッサのうちの第２のプロセッサ上で実行される、オペレーティングシステムカーネル、ハイパーバイザ、およびＴｒｕｓｔＺｏｎｅのうちの１つを含むリソースマネジャである、請求項８に記載のコンピューティングデバイス。
【請求項１５】
リソースコンテンツの仮想ビューを使用してデータを保護するために構成されたコンピューティングデバイスであって、
第１の要求エンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタするための手段と、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定するための手段と、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされていない仮想ビューを、前記第１の要求エンティティに提供するための手段と、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされた仮想ビューを、前記第１の要求エンティティに提供するための手段と
を備える、コンピューティングデバイス。
【請求項１６】
前記第１の要求エンティティが、認証された機能を有するかどうかを決定するための手段と、
前記第１の要求エンティティが認証された機能を有すると決定することに応答して、前記第１の要求エンティティのためのアクセスタイプを決定するための手段と、
前記アクセスタイプに基づく不明瞭化レベルを使用して、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にするための手段と
をさらに備える、請求項１５に記載のコンピューティングデバイス。
【請求項１７】
前記アクセスタイプは、部分的に不明瞭にされるものおよび不明瞭にされるものを含み、前記アクセスタイプに基づく不明瞭化レベルを使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にするための手段は、
前記第１の要求エンティティのための前記アクセスタイプが部分的に不明瞭にされるものであると決定することに応答して、準同型暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化するための手段と、
前記第１の要求エンティティのための前記アクセスタイプが不明瞭にされるものであると決定することに応答して、強力な暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化するための手段と
を備える、請求項１６に記載のコンピューティングデバイス。
【請求項１８】
前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタするための手段と、
前記第１の要求エンティティについての前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する前記第１の要求エンティティの第１のオーナ識別子を記憶するための手段と、ここにおいて、前記第１のオーナ識別子は、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナシップを許可されていることを示し、前記仮想リソース識別子は、前記コンピューティングデバイスのリソースの物理リソース識別子にマッピングされる、
をさらに備える、請求項１５に記載のコンピューティングデバイス。
【請求項１９】
前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタするための手段は、第２の要求エンティティによる前記コンピューティングデバイスのリソースのオーナシップを求める要求についてモニタするための手段を備える、請求項１８に記載のコンピューティングデバイス。
【請求項２０】
前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定するための手段は、
前記コンピューティングデバイスのリソースにアクセスするための前記要求の仮想リソース識別子を、前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する記憶されたオーナ識別子と比較するための手段と、
前記コンピューティングデバイスのリソースにアクセスするための前記要求の前記仮想リソース識別子と前記コンピューティングデバイスのリソースの前記仮想リソース識別子とがマッチするときに、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定するための手段と
を備える、請求項１５に記載のコンピューティングデバイス。
【請求項２１】
前記コンピューティングデバイスのリソースの前記オーナはアプリケーションであり、
前記コンピューティングデバイスのリソースの前記非オーナは、オペレーティングシステムカーネル、ハイパーバイザ、およびＴｒｕｓｔＺｏｎｅのうちの１つを含むリソースマネジャである、
請求項１５に記載のコンピューティングデバイス。
【請求項２２】
コンピューティングデバイスのプロセッサに、動作を行わせるように構成されたプロセッサ実行可能命令を記憶した、非一時的なプロセッサ可読記憶媒体であって、前記動作は、
第１の要求エンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタすることと、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定することと、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされていない仮想ビューを、前記第１の要求エンティティに提供することと、
前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされた仮想ビューを、前記第１の要求エンティティに提供することと
を備える、非一時的なプロセッサ可読記憶媒体。
【請求項２３】
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、動作を行わせるように構成され、前記動作は、
前記第１の要求エンティティが、認証された機能を有するかどうかを決定することと、
前記第１の要求エンティティが認証された機能を有すると決定することに応答して、前記第１の要求エンティティのためのアクセスタイプを決定することと、
前記アクセスタイプに基づく不明瞭化レベルを使用して、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースの前記リソースコンテンツの仮想ビューを不明瞭にすることと
をさらに備える、請求項２２に記載の非一時的なプロセッサ可読記憶媒体。
【請求項２４】
前記アクセスタイプは、部分的に不明瞭にされるものおよび不明瞭にされるものを含み、前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記第１の要求エンティティのための前記アクセスタイプが部分的に不明瞭にされるものであると決定することに応答して、準同型暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化することと、
前記第１の要求エンティティのための前記アクセスタイプが不明瞭にされるものであると決定することに応答して、強力な暗号化を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化することと
を備える、前記アクセスタイプに基づく不明瞭化レベルを使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にすることを行うように動作を行わせるように構成された、請求項２３に記載の非一時的なプロセッサ可読記憶媒体。
【請求項２５】
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、動作を行わせるように構成され、前記動作は、
前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタすることと、
前記第１の要求エンティティについての前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する前記第１の要求エンティティの第１のオーナ識別子を記憶することと、ここにおいて、前記第１のオーナ識別子は、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナシップを許可されていることを示し、前記仮想リソース識別子は、前記コンピューティングデバイスのリソースの物理リソース識別子にマッピングされる、
をさらに備える、請求項２２に記載の非一時的なプロセッサ可読記憶媒体。
【請求項２６】
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、第２の要求エンティティによる前記コンピューティングデバイスのリソースのオーナシップを求める要求についてモニタすることを備える、前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタすることを行うように動作を行わせるように構成された、請求項２５に記載の非一時的なプロセッサ可読記憶媒体。
【請求項２７】
前記記憶されたプロセッサ実行可能命令は、前記プロセッサに、
前記コンピューティングデバイスのリソースにアクセスするための前記要求の仮想リソース識別子を、前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する記憶されたオーナ識別子と比較することと、
前記コンピューティングデバイスのリソースにアクセスするための前記要求の前記仮想リソース識別子と前記コンピューティングデバイスのリソースの前記仮想リソース識別子とがマッチするときに、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することと
を備える、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定することを行うように動作を行わせるように構成された、請求項２２に記載の非一時的なプロセッサ可読記憶媒体。
【請求項２８】
前記コンピューティングデバイスのリソースの前記オーナはアプリケーションであり、
前記コンピューティングデバイスのリソースの前記非オーナは、オペレーティングシステムカーネル、ハイパーバイザ、およびＴｒｕｓｔＺｏｎｅのうちの１つを含むリソースマネジャである、
請求項２２に記載の非一時的なプロセッサ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  １つまたは複数のプロセッサおよび１つまたは複数の周辺機器を有する任意のコンピュータシステムでは、リソース管理ソフトウェアが高い特権で稼働する。一例としてリングプロテクションモデル（protection ring model）を使用すると、オペレーティングシステムが、全ハードウェアへの完全アクセス（full access）を伴うリング０(ring-0)で稼働し、ハイパーバイザ（hypervisor）が、全ハードウェアへの完全アクセスを伴うリング０より下（below）で稼働する。リソースマネジャがリソースをタスクに割り当てる場合、リソースマネジャは例えば、オペレーティングシステムがメモリページをプロセスに割り当てるときにリソースへの完全アクセスを維持する。リソースへの完全アクセスを維持することは、リソースマネジャがタスクに代わってリソースをあとで管理することを可能にする。リソースマネジャはまた、リソースへの読取り／書込みアクセスも有することができ、それは、リソースがリソース管理を実施することを可能にし得る。例えば、オペレーティングシステムは、メモリページを再配置するため、またはメモリ不足のプロセスをスワップするために、プロセスに割り当てられたメモリページを読み取る。
【０００２】
[0002]  オペレーティングシステム、ハイパーバイザ、およびＴｒｕｓｔＺｏｎｅを含むリソースマネジャは、ソフトウェアの脆弱な部分である。それらの本質的な複雑さのために、全てのバグの除去が不可能に近い。リソースマネジャにおける脆弱性を利用する攻撃がコンピュータシステムの故障につながる場合もある。リソースマネジャの高い特権のせいで、攻撃者がコンピュータシステムへの完全なアクセスを有することができる。それゆえ、攻撃者が、リソースマネジャにおける欠陥を見つけて利用することを誘発される。
【発明の概要】
【０００３】
[0003]  様々な実施形態の方法および装置は、リソースコンテンツの仮想ビュー（virtual view）を使用してデータを保護するための装置および方法を提供する。様々な実施形態が、第１の要求エンティティ（requesting entity）によってコンピューティングデバイスのリソース（computing device resource）にアクセスするための要求をモニタするコンピューティングデバイスの仮想化インターフェースモニタ（virtualization interface monitor）を含み得る。前記仮想化インターフェースモニタは、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナ（owner）であるかどうかを決定し得る。前記第１の要求エンティティへの前記コンピューティングデバイスのデータ保護システム（data protection system）は、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされていない（unobscured）仮想ビューを提供し得る。データ保護システムは、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナ（non-owner）であると決定することに応答して、前記コンピューティングデバイスのリソースのリソースコンテンツの不明瞭にされた（obscured）仮想ビューを前記第１の要求エンティティに提供し得る。
【０００４】
[0004]  いくつかの実施形態において、リソースコンテンツ暗号デバイス（resource content cryptographic device）は、前記第１の要求エンティティが、認証された機能（certified function）を有するかどうかを決定し、前記第１の要求エンティティが認証された機能を有すると決定することに応答して、前記第１の要求エンティティのためのアクセスタイプを決定し得る。前記リソースコンテンツ暗号デバイスは、前記アクセスタイプに基づく不明瞭化レベル（obscuring level）を使用して、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの非オーナであると決定することに応答して、前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にし得る。
【０００５】
[0005]  いくつかの実施形態において、前記アクセスタイプは、部分的に不明瞭にされるものおよび不明瞭にされるもの（partially obscured and obscured）を含み得る。前記リソースコンテンツ暗号デバイスは、前記第１の要求エンティティのための前記アクセスタイプが部分的に不明瞭にされるものであると決定することに応答して、準同型暗号化（homomorphic encryption）を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化することによって、前記アクセスタイプに基づく不明瞭化レベルを使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを不明瞭にし得る。前記リソースコンテンツ暗号デバイスは、前記第１の要求エンティティのための前記アクセスタイプが不明瞭にされるものであると決定することに応答して、強力な暗号化（strong encryption）を使用して前記コンピューティングデバイスのリソースの前記リソースコンテンツの前記仮想ビューを暗号化し得る。
【０００６】
[0006]  いくつかの実施形態において、前記仮想化インターフェースモニタは、前記コンピューティングデバイスのリソースのオーナシップ（ownership）の変化について仮想化インターフェースをモニタし、前記第１の要求エンティティについての前記コンピューティングデバイスのリソースの仮想リソース識別子（virtual resource identifier）と相関（correlated）する前記第１の要求エンティティの第１のオーナ識別子（owner identifier）を記憶し得る。このような実施形態において、前記第１のオーナ識別子は、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナシップを許可されている（granted）ことを示し得、前記仮想リソース識別子は、前記コンピューティングデバイスのリソースの物理リソース識別子（physical resource identifier）にマッピングされる（mapped）。
【０００７】
[0007]  いくつかの実施形態において、前記コンピューティングデバイスのリソースのオーナシップの変化について仮想化インターフェースをモニタすることは、第２の要求エンティティによる前記コンピューティングデバイスのリソースのオーナシップを求める要求についてモニタすることを含み得る。
【０００８】
[0008]  いくつかの実施形態において、前記仮想化インターフェースモニタは、前記コンピューティングデバイスのリソースにアクセスするための前記要求の仮想リソース識別子を、前記コンピューティングデバイスのリソースの仮想リソース識別子と相関する記憶されたオーナ識別子と比較することによって、前記第１の要求エンティティが前記コンピューティングデバイスのリソースのオーナであるかどうかを決定し得る。前記仮想化インターフェースモニタは、前記コンピューティングデバイスのリソースにアクセスするための前記要求の前記仮想リソース識別子と前記コンピューティングデバイスのリソースの前記仮想リソース識別子とがマッチしたとき、前記第１の要求エンティティが前記コンピューティングデバイスのリソースの前記オーナであると決定し得る。
【０００９】
[0009]  いくつかの実施形態において、前記コンピューティングデバイスのリソースの前記オーナはアプリケーションを含み得、前記コンピューティングデバイスのリソースの前記非オーナは、オペレーティングシステムカーネル、ハイパーバイザ、およびＴｒｕｓｔＺｏｎｅのうちの１つを含むリソースマネジャを含み得る。
【００１０】
[0010]  様々な実施形態は、リソースコンテンツの仮想ビューを使用してデータを保護するために構成されたコンピューティングデバイスを含み得る。前記コンピューティングデバイスは、仮想化インターフェースモニタおよびリソースコンテンツ暗号デバイスを含むデータ保護システムを含み得る。前記コンピューティングデバイスの１つまたは複数のプロセッサは、上で要約された実施形態の方法のうちの１つまたは複数の動作を行うように、データ保護システム実行可能命令、仮想化インターフェースモニタ実行可能命令、およびリソースコンテンツ暗号デバイス実行可能命令を用いて構成され得る。
【００１１】
[0011]  様々な実施形態が、上で要約された実施形態の方法のうちの１つまたは複数の機能を行うための手段を有するリソースコンテンツの仮想ビューを使用してデータを保護するために構成されたコンピューティングデバイスを含み得る。
【００１２】
[0012]  様々な実施形態が、上で要約された実施形態の方法のうちの１つまたは複数の動作を、コンピューティングデバイスの１つまたは複数のプロセッサに行わせるように構成されたプロセッサ実行可能命令を記憶した非一時的なプロセッサ可読記憶媒体を含み得る。
【００１３】
[0013]  本明細書に組み込まれ、かつ本明細書の一部を成す添付の図面は、様々な実施形態の例となる実施形態を例示し、上で与えられた概要と、以下で与えられる詳細な説明とともに、特許請求の特徴を説明する役割をする。
【図面の簡単な説明】
【００１４】
【図１】一実施形態を実施するのに好適なコンピューティングデバイスを例示する構成要素ブロック図。
【図２】一実施形態を実施するのに好適な一例となるマルチコアプロセッサを例示する構成要素ブロック図。
【図３】一実施形態を実施するのに好適なデータ保護システムを例示する構成要素ブロック図。
【図４】一実施形態によるリソースオーナシップテーブル（ownership table）。
【図５】一実施形態によるアクセス要求認証テーブル（access request certification table）。
【図６】仮想リソースビューを使用してデータを保護するための一実施形態の方法を例示するプロセスフロー図。
【図７】コンピューティングデバイスのリソースのオーナシップをトラッキングするための一実施形態の方法を例示するプロセスフロー図。
【図８】リソースコンテンツの仮想ビューに暗号化を適用するための認証を使用するための一実施形態の方法を例示するプロセスフロー図。
【図９】様々な実施形態との使用に好適な一例となるモバイルコンピューティングデバイスを例示する構成要素ブロック図。
【図１０】様々な実施形態との使用に好適な一例となるモバイルコンピューティングデバイスを例示する構成要素ブロック図。
【図１１】様々な実施形態との使用に好適な一例となるサーバを例示する構成要素ブロック図。
【詳細な説明】
【００１５】
[0025]  様々な実施形態が、添付の図面を参照して詳細に説明される。可能な限り、同一の参照番号は、同一または同様の部分を参照するために図面全体を通して使用される。特定の例および実装形態に対してなされる言及は、例示目的のためであり、特許請求の範囲を限定することを意図するものでない。
【００１６】
[0026]  「コンピューティングデバイス」および「モバイルコンピューティングデバイス」という用語は、セルラ電話、スマートフォン、パーソナルまたはモバイルマルチメディアプレーヤ、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、タブレットコンピュータ、コンバーチブルラップトップ／タブレット（２−ｉｎ−１コンピュータ）、スマートブック、ウルトラブック、ネットブック、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラ電話、モバイルゲームコンソール、ワイヤレスゲームコントローラ、およびメモリ並びにマルチコアプログラマブルプロセッサを含む同様のパーソナル電子デバイス、のうちのいずれか１つまたは全部を指すように、本明細書において同義で使用される。「コンピューティングデバイス」という用語はさらに、パーソナルコンピュータ、デスクトップコンピュータ、オールインワンコンピュータ、ワークステーション、スーパーコンピュータ、メインフレームコンピュータ、組込み型コンピュータ、サーバ、ホームシアタコンピュータ、およびゲームコンソールを含む、静止型のコンピューティングデバイスを指し得る。様々な実施形態が、制限されたメモリおよびバッテリリソースを有する、スマートフォンのような、モバイルコンピューティングデバイスに特に有用である。しかしながら、これら実施形態は、概して、複数のメモリデバイスおよび制限された電力バジェットを実装するいずれの電子デバイスでも有用であり、プロセッサの電力消費を低減することがモバイルコンピューティングデバイスのバッテリ動作時間を延長できる。
【００１７】
[0027]  実施形態が、オペレーティングシステムカーネルを含むオペレーティングシステム、ハイパーバイザ、および／またはＴｒｕｓｔＺｏｎｅのような、リソースマネジャの高特権アクセス許可（access permission）からリソース管理タスクを分離するための方法、システム、およびデバイスを含み得る。様々なリソースを求めるアクセス要求を変換（translate）するために使用される仮想化インターフェースをモニタすることは、リソースへのオーナアプリケーションアクセスとリソースマネジャアクセスとを区別するために使用され得る。同じリソースの異なるビューが、オーナアプリケーションおよびリソースマネジャに提供され得る。アクセス要求に関連するリソースコンテンツの異なる保護レベルが、リソースのアクセス機構（accessor）による計画された動作およびリソースデータの機密性（sensitivity）に基づいて提供され得る。
【００１８】
[0028]  リソースが、リソースデータのようなそれらのコンテンツへのアクセスを有することなくリソースマネジャによって管理（例えば、移動、コピー、等）され得るが、一方で、アプリケーションが、様々なプロセスを実施するためにリソースコンテンツへのアクセスを必要とする。リソースマネジャが管理機能を実施することを可能にしながら、およびリソース所有アプリケーション（resource owning application）がプロセスを実施するためにリソースコンテンツにアクセスすることを可能にしながら、リソースマネジャからリソースコンテンツをマスクするべきかどうかを決定するために仮想化インターフェースがモニタされ得る。仮想化インターフェースモニタおよびリソースコンテンツ暗号デバイスが、リソースへのオーナアプリケーションアクセスとリソースマネジャアクセスとを区別して、リソースマネジャによるリソースコンテンツのアクセスを制限するように構成されたハードウェアで実施され得る。
【００１９】
[0029]  仮想化インターフェースモニタは、コンピューティングデバイスシステムのリソースのオーナシップを記憶および更新するように構成されたリソースオーナシップトラッカ（resource ownership tracker）を含み得る。仮想化インターフェースモニタは、リソースを求めるアクセス要求がリソースのオーナアプリケーションによって発行されたのか、コンピューティングデバイスシステムのリソースマネジャによって発行されたのかを決定するように構成され得る。リソースコンテンツ暗号デバイスは、アクセス要求がリソースマネジャによって発行されたという決定に応答してリソースのコンテンツを暗号化し得る。リソースコンテンツ暗号デバイスは、アクセス要求がオーナアプリケーションによって発行されたという決定に応答して、暗号化されていない形態でリソースのコンテンツを提供し得る。
【００２０】
[0030]  リソースマネジャは、アプリケーションにリソースを割り当て得る。アプリケーションはリソースのオーナシップを要求し得、仮想化インターフェースモニタはリソースのオーナを更新し得る。
【００２１】
[0031]  リソースマネジャおよびリソースのオーナアプリケーションには、リソースの異なる仮想表現(virtual representations)が提供され得る。リソースの各仮想表現は、リソースの物理メモリアドレスへの仮想メモリアドレスの異なるマッピングを含み得る。
【００２２】
[0032]  仮想化インターフェースモニタは、所有されているリソースにアクセスするための要求を受信、検出、またはインターセプト（intercept）し得る。仮想化インターフェースモニタは、アクセス要求の仮想メモリアドレスによって、要求エンティティがリソースマネジャであるのか、リソースオーナアプリケーションであるのかを識別し得る。要求エンティティがリソースオーナアプリケーションであると決定することに応答して、リソースコンテンツ暗号デバイスは、リソースコンテンツの暗号化されていない仮想表現へのアクセスをオーナアプリケーションに提供し得る。要求エンティティがリソースマネジャであると決定することに応答して、リソースコンテンツ暗号デバイスは、リソースのコンテンツの仮想表現を暗号化し、暗号化された仮想表現へのアクセスをリソースマネジャに提供し得る。
【００２３】
[0033]  いくつかの実装形態において、リソースコンテンツ暗号デバイスは、要求エンティティによる計画された動作およびリソースコンテンツの機密性に基づいてリソースコンテンツの保護を変えることができる。リソースコンテンツ暗号デバイスは、強力な暗号化および署名要件（signing requirement）または部分的に準同型の暗号化のような、異なるタイプの暗号化をサポートし得る。
【００２４】
[0034]  ある特定の動作が特定のソフトウェア構成要素によって行われることをコンパイラが保証することを示す、アプリケーションおよびリソースマネジャについてのコンパイラ証明書（compiler certificate）を認証デバイス（certification device）が記憶および更新し得る。コンパイラ証明書は、指定されたタイプの暗号化と相関し得る。リソースコンテンツ暗号デバイスは、様々なリソースオーナアプリケーション、非オーナアプリケーション、およびリソースマネジャについての認証デバイスによって維持される相関および要求エンティティの決定に基づいて、異なるタイプの暗号化を実施し得る。
【００２５】
[0035]  図１は、様々な実施形態との使用に好適な、遠隔コンピューティングデバイス５０と通信しているコンピューティングデバイス１０を含むシステムを例示する。コンピューティングデバイス１０は、プロセッサ１４、メモリ１６、通信インターフェース１８、および記憶メモリインターフェース２０を有するシステムオンチップ（ＳｏＣ）１２を含み得る。コンピューティングデバイス１０はさらに、ワイヤードまたはワイヤレスモデムのような通信構成要素２２、記憶メモリ２４、ワイヤレスネットワーク３０へのワイヤレス接続３２を確立するためのアンテナ２６、および／またはインターネット４０へのワイヤード接続４４に接続するためのネットワークインターフェース２８を含み得る。プロセッサ１４は、様々なハードウェアコアのいずれか、例えば、いくつかのプロセッサコアを含み得る。
【００２６】
[0036]  「システムオンチップ」（ＳｏＣ）という用語は、ハードウェアコア、メモリ、および通信インターフェースを含む相互接続された電子回路のセットを、排他的でなく、通常指すために本明細書において使用される。１つのハードウェアコアが、汎用プロセッサ、中央処理ユニット（ＣＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、グラフィックス処理ユニット（ＧＰＵ）、ＡＰＵ（accelerated processing unit）、補助プロセッサ（auxiliary processor）、シングルコアプロセッサ、およびマルチコアプロセッサのような、様々な異なるタイプのプロセッサを含み得る。１つのハードウェアコアはさらに、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、他のプログラマブル論理デバイス、ディスクリートゲート論理回路、トランジスタ論理回路、性能監視ハードウェア、ウォッチドッグハードウェア、および時間基準（time reference）のような、他のハードウェアおよびハードウェアの組合せを具現化し得る。集積回路は、集積回路の構成要素がシリコンのような半導体材料の単一部分に存在するように構成され得る。ＳｏＣ１２は、１つまたは複数のプロセッサ１４を含み得る。コンピューティングデバイス１０は、１つより多くのＳｏＣ１２を含み得、それゆえ、プロセッサ１４およびプロセッサコアの数を増加させる。コンピューティングデバイス１０はまた、ＳｏＣ１２に関連付けられていないプロセッサ１４も含み得る。個々のプロセッサ１４は、図２を参照して以下で説明されるようにマルチコアプロセッサであり得る。プロセッサ１４は各々、コンピューティングデバイス１０の他のプロセッサ１４と同じであり得る、またはそれらとは異なり得る特定の目的のために構成され得る。同じまたは異なる構成のプロセッサ１４およびプロセッサコアのうちの１つまたは複数が共にグループにされ得る。プロセッサ１４またはプロセッサコアのグループは、マルチプロセッサクラスタと称され得る。
【００２７】
[0037]  ＳｏＣ１２のメモリ１６は、プロセッサ１４によるアクセスのためのデータおよびプロセッサ実行可能コードを記憶するために構成された揮発性または不揮発性メモリであり得る。コンピューティングデバイス１０および／またはＳｏＣ１２は、様々な目的のために構成された１つまたは複数のメモリ１６を含み得る。一実施形態では、１つまたは複数のメモリ１６が、ランダムアクセスメモリ（ＲＡＭ）またはメインメモリ、あるいはキャッシュメモリのような揮発性メモリを含み得る。これらメモリ１６は、データセンサまたはサブシステムから受信された限られた量のデータを一時的に保持するように構成され得る。これらメモリ１６は、不揮発性メモリから要求され、かつ様々な要因に基づいて将来のアクセスを見込んで不揮発性メモリからメモリ１６にロードされる、データおよび／またはプロセッサ実行可能コード命令を一時的に保持するように構成され得る。これらメモリ１６は、プロセッサ１４によって生成され、不揮発性メモリに記憶されずに将来の素早いアクセスのために一時的に記憶される中間処理データおよび／またはプロセッサ実行可能コード命令を一時的に保持するように構成され得る。
【００２８】
[0038]  メモリ１６は、プロセッサ１４のうちの１つまたは複数によるアクセスのために、別のメモリ１６または記憶メモリ２４のような別のメモリデバイスからメモリ１６にロードされる、データおよびプロセッサ実行可能コードを少なくとも一時的に記憶するように構成され得る。メモリ１６にロードされるデータまたはプロセッサ実行可能コードは、プロセッサ１４による機能の実行に応答してロードされ得る。機能の実行に応答してデータまたはプロセッサ実行可能コードをメモリ１６にロードすることは、不成功または失敗であるメモリ１６へのメモリアクセス要求に起因し得、これは、要求されたデータまたはプロセッサ実行可能コードがメモリ１６に配置されていないからである。失敗に応答して、別のメモリ１６または記憶メモリ２４へのメモリアクセス要求は、要求されたデータまたはプロセッサ実行可能コードを、別のメモリ１６または記憶メモリ２４からメモリ１６にロードするようにされ得る。機能の実行に応答してデータまたはプロセッサ実行可能コードをメモリ１６にロードすることは、別のメモリ１６または記憶メモリ２４へのメモリアクセス要求に起因し得、データまたはプロセッサ実行可能コードは、後のアクセスのためにメモリ１６にロードされ得る。
【００２９】
[0039]  通信インターフェース１８、通信構成要素２２、アンテナ２６、および／またはネットワークインターフェース２８は、コンピューティングデバイス１０が、遠隔コンピューティングデバイス５０とのワイヤードネットワーク４４、および／またはワイヤレス接続３２を介したワイヤレスネットワーク３０上で通信することを可能にするように揃って動き得る。ワイヤレスネットワーク３０は、それによって遠隔コンピューティングデバイス５０とデータを交換し得るインターネット４０への接続をコンピューティングデバイス１０に提供するために、例えば、ワイヤレス通信のために使用される無線周波数スペクトルを含む、様々なワイヤレス通信技術を使用して実施され得る。
【００３０】
[0040]  記憶メモリインターフェース２０および記憶メモリ２４は、コンピューティングデバイス１０が不揮発性記憶媒体上にデータおよびプロセッサ実行可能コードを記憶することを可能にするように揃って動き得る。記憶メモリ２４は、記憶メモリ２４がプロセッサ１４のうちの１つまたは複数によるアクセスのためのデータまたはプロセッサ実行可能コードを記憶し得るメモリ１６の一実施形態とほぼ同様に構成され得る。不揮発性である記憶メモリ２４は、コンピューティングデバイス１０の電源がシャットオフされた後でも情報を保ち得る。電源がオンに戻され、コンピューティングデバイス１０がリブートすると、記憶メモリ２４上に記憶された情報は、コンピューティングデバイス１０が利用可能であり得る。記憶メモリインターフェース２０は、記憶メモリ２４へのアクセスを制御し、プロセッサ１４が記憶メモリ２４からデータを読み取り、それにデータを書き込むことを可能にし得る。
【００３１】
[0041]  コンピューティングデバイス１０の構成要素の一部または全部は、引き続き必要な機能にサービス提供しながら異なって配列および／または組み合わせされ得る。さらに、コンピューティングデバイス１０は、構成要素の各々の１つに限定されなくてよく、各構成要素の複数のインスタンスがコンピューティングデバイス１０の様々な構成に含まれ得る。
【００３２】
[0042]  図２は、一実施形態を実施するのに好適なマルチコアプロセッサ１４を例示する。マルチコアプロセッサ１４は、複数の同種または異種プロセッサコア２００、２０１、２０２、２０３を有し得る。プロセッサコア２００、２０１、２０２、２０３は、単一プロセッサ１４のプロセッサコア２００、２０１、２０２、２０３が同じ目的のために構成され、同一または同様のパフォーマンス特性を有し得るという点で同種であり得る。例えば、プロセッサ１４は汎用プロセッサであり得、プロセッサコア２００、２０１、２０２、２０３は、同種の汎用プロセッサコアであり得る。代替的に、プロセッサ１４は、グラフィックス処理ユニットまたはデジタルシグナルプロセッサであり得、プロセッサコア２００、２０１、２０２、２０３は、それぞれ、同種のグラフィックスプロセッサコアまたはデジタルシグナルプロセッサコアであり得る。参照の容易さのために、「プロセッサ」および「プロセッサコア」という用語は本明細書において同義で使用され得る。
【００３３】
[0043]  プロセッサコア２００、２０１、２０２、２０３は、単一のプロセッサ１４のプロセッサコア２００、２０１、２０２、２０３が異なる目的のために構成される、および／または異なるパフォーマンス特性を有し得るという点で異種であり得る。このような異種プロセッサコアの異種性は、異なる命令セットアーキテクチャ、パイプライン、動作周波数、等を含み得る。このような異種プロセッサコアの一例は、より遅い低電力のプロセッサコアがよりパワフルかつ電力を大量消費するプロセッサコアと結合され得る「ｂｉｇ.ＬＩＴＴＬＥ」アーキテクチャとして知られるものを含み得る。同様の実施形態において、ＳｏＣ１２は、いくつかの同種または異種プロセッサ１４を含み得る。
【００３４】
[0044]  図２に例示される例において、マルチコアプロセッサ１４は４つのプロセッサコア２００、２０１、２０２、２０３（すなわち、プロセッサコア０、プロセッサコア１、プロセッサコア２、およびプロセッサコア３）を含む。説明の容易さのために、本明細書での例は、図２に例示される４つのプロセッサコア２００、２０１、２０２、２０３を参照し得る。しかしながら、図２に例示され本明細書で説明される４つのプロセッサコア２００、２０１、２０２、２０３は、単に一例として提供されており、様々な実施形態を４コアのプロセッサシステムに限定することを意味するものでは全くない。コンピューティングデバイス１０、ＳｏＣ１２、またはマルチコアプロセッサ１４は、個別にあるいは組み合わせて、本明細書で例示および説明される４つのプロセッサコア２００、２０１、２０２、２０３よりも少なくまたは多く含み得る。
【００３５】
[0045]  図３は、一実施形態によるデータ保護システムを例示する。データ保護システム３００は、コンピューティングデバイスのリソースのための仮想化インターフェースをモニタすることと、リソースコンテンツのいくつかを暗号化し、リソースへのアクセスまたはリソースの使用を要求するコンピューティングデバイス１０の異なる構成要素（「要求構成要素」）に、リソースコンテンツの異なる暗号化された仮想ビューおよび暗号化されていない仮想ビューを提供することによって、リソースコンテンツを保護することとを行うように構成され得る。データ保護システム３００は、仮想化インターフェースモニタ３０２およびリソースコンテンツ暗号デバイス３０４を含み得る。
【００３６】
[0046]  仮想化インターフェースモニタ３０２は、メモリ１６のアドレスロケーション、記憶メモリ２４のディスクブロック、および通信構成要素２２のネットワークカードの待ち行列識別子（network card queue identifier）のような、コンピューティングデバイスのリソースのオーナシップをトラッキングするように構成され得る。リソースのオーナシップは、コンピューティングデバイス１０上で実行される、アプリケーション３１２、オペレーティングシステム３０６、ハイパーバイザ３０８、および／またはＴｒｕｓｔＺｏｎｅ３１０にあるとされ（attributed）得る。
【００３７】
[0047]  コンピューティングデバイスのリソースのオーナシップの属性（attribution）は、複数のデータをリンクさせ、および／または配列するように構成されたデータ構造またはテーブルに仮想化インターフェースモニタ３０２によって記憶され得る。本開示を限定することなく、説明の容易さのために、本明細書での参照が仮想化インターフェースモニタ３０２によって記憶されるオーナシップテーブル（図示せず）に対して行われ、図４を参照してさらに本明細書で説明される。オーナシップテーブルは、オペレーティングシステム３０６、ハイパーバイザ３０８、ＴｒｕｓｔＺｏｎｅ３１０、および／またはアプリケーション３１２のうちの１つを示すように構成されたオーナ識別子（ＩＤ）を、所有されているコンピューティングデバイスのリソースの、仮想アドレスのような、仮想リソース識別子と相関させ得る。
【００３８】
[0048]  コンピューティングデバイスのリソースについての、異なる仮想リソース識別子と物理リソース識別子のマッピング（different virtual resource identifier to physical resource identifier mappings）、例えば、仮想アドレスと物理アドレスのマッピングが、可能性のあるオーナ（potential owner）および実際のオーナのために使用され得、例えば、可能性のある異なるオーナは、同じ物理アドレスにマッピングされた異なる仮想アドレスを使用し得る。異なる仮想リソース識別子と物理リソース識別子のマッピングにより、仮想化インターフェースモニタ３０２は、コンピューティングデバイスのリソースのオーナシップを求める要求または宣言（declaration）の仮想リソース識別子を、所有されているコンピューティングデバイスのリソースとオーナを相関させるために使用し得る。
【００３９】
[0049]  仮想化インターフェースモニタ３０２は、割当てメモリリソースマネジャ（assigning memory resource manager）と、コンピューティングデバイスのリソースのオーナシップが割り当てられたエンティティ（entity assigned ownership）とによるコンピューティングデバイスのリソースのオーナシップの宣言またはそれを求める要求を受信、検出、またはインターセプトし得る。割当てメモリリソースマネジャは、オペレーティングシステム３０６、ハイパーバイザ３０８、および／またはＴｒｕｓｔＺｏｎｅ３１０を含み得る。コンピューティングデバイスのリソースのオーナシップが割り当てられたエンティティは、オペレーティングシステム３０６、ハイパーバイザ３０８、ＴｒｕｓｔＺｏｎｅ３１０、および／またはアプリケーション３１２を含み得る。いくつかの実施形態において、仮想化インターフェースモニタ３０２は、コンピューティングデバイスのリソースのオーナシップを示す項目(entries)が、コンピューティングデバイスのリソースのオーナシップの変更時に削除され得るかまたは無効として示され得るように、オーナシップテーブルを管理し得る。項目がコンピューティングデバイスのリソースの新たなオーナについて追加され得るか、または有効とマークされ得る。
【００４０】
[0050]  いくつかの実施形態において、仮想化インターフェースモニタ３０２は、リソースアクセス要求者の許可された機能を示す認証をトラッキングし得る。機能の認証が、機能の開発元によって予めプログラミングされ得るか、またはコンピューティングデバイス１０上で実行されるコンパイラによって識別され得る。認証が、アプリケーション３１２、オペレーティングシステム３０６、ハイパーバイザ３０８、および／またはＴｒｕｓｔＺｏｎｅ３１０の機能に適用可能であり得る。いくつかの実施形態において、認証された機能を実施する必要があるリソースコンテンツへのアクセスのタイプは、証明書と相関し得る。
【００４１】
[0051]  機能を実施するのに必要なアクセスのタイプは、機能がリソースコンテンツへの不明瞭にされていない完全アクセスを必要とするか、リソースコンテンツへの部分的に不明瞭にされたアクセスを必要とするか、リソースコンテンツへの不明瞭にされたアクセスを必要とするかを示し得る。リソースコンテンツへの不明瞭にされていないアクセスは、リソースコンテンツを不明瞭にするためのいずれの変更も操作もなく、記憶されたリソースコンテンツを見ることを可能にし得、リソースコンテンツの読取りおよび書込みを可能にし得る。リソースコンテンツへの部分的に不明瞭にされたアクセスは、リソースコンテンツの検索または算術操作（arithmetic manipulation）を可能にし得、部分的または完全に準同型の暗号化の適用を通して達成され得る。リソースコンテンツへの不明瞭にされたアクセスは、リソースコンテンツへのアクセスの読取りも書込みもなく実行され得るリソース管理動作を可能にし得、強力な暗号化および署名要件の適用を通して達成され得る。
【００４２】
[0052]  仮想化インターフェースモニタ３０２は、コンピューティングデバイスのリソースへのアクセスを求める要求者への機能認証の属性を、複数のデータをリンクさせ、および／または配列するように構成されたデータ構造またはテーブルに記憶し得る。いくつかの実施形態において、仮想化インターフェースモニタ３０２はまた、認証された機能を実施するのに必要なアクセスのタイプを記憶し得る。本開示を限定することなく、説明の容易さのために、本明細書での参照(reference)が仮想化インターフェースモニタ３０２によって記憶される認証テーブル（図示せず）に対して行われ、図５を参照してさらに本明細書で説明される。
【００４３】
[0053]  仮想化インターフェースモニタ３０２は、アクセス要求者によるコンピューティングデバイスのリソースへのアクセスを求める要求を受信、検出、またはインターセプトし得る。本明細書で説明されるコンピューティングデバイスのリソースのオーナシップのトラッキングと同様の方式で、仮想化インターフェースモニタ３０２は、要求エンティティがオーナであるかどうかを決定するために、コンピューティングデバイスのリソースへのアクセスを求める要求の仮想リソース識別子を使用し得る。仮想化インターフェースモニタ３０２は、コンピューティングデバイスのリソースへのアクセスを求める要求の仮想リソース識別子と相関する要求エンティティを見つけ得る。いくつかの実施形態において、仮想化インターフェースモニタ３０２は、要求の仮想リソース識別子および要求エンティティ識別子を、オーナシップ識別子と比較することによって要求エンティティがオーナであるかどうかを決定するために、オーナシップテーブルを使用し得る。いくつかの実施形態において、仮想化インターフェースモニタ３０２は、要求エンティティについての機能認証を認証テーブルに配置するために、要求エンティティ識別子および／またはコンピューティングデバイスのリソースへの要求されたアクセスあるいはアクセスを求める要求の機能を使用し得る。仮想化インターフェースモニタ３０２は、要求エンティティ識別子と相関するアクセスのタイプおよび／またはコンピューティングデバイスのリソースへのアクセスを求める要求についての機能認証を識別し得る。これら実施形態のいずれかにおいて、仮想化インターフェースモニタ３０２は、オーナシップテーブルおよび／または認証テーブルに記憶されたコンピューティングデバイスのリソースへのアクセスを求める要求に関連する任意のデータを、リソースコンテンツ暗号デバイス３０４に送信し得る。
【００４４】
[0054]  リソースコンテンツ暗号デバイス３０４は、リソースコンテンツの仮想ビューに適用するための不明瞭さのタイプおよび／またはレベルを決定することと、コンピューティングデバイスのリソースへのアクセスを求める要求に応答してリソースコンテンツの仮想ビューを提供することとを行うように構成され得る。不明瞭さのタイプおよび／またはレベルは、暗号化の様々なタイプとレベルを含み得る。コンピューティングデバイスのリソースの仮想ビューに適用される暗号化は、要求エンティティからリソースコンテンツを完全に不明瞭にするための強力な暗号化と署名要件とを含み得る。コンピューティングデバイスのリソースの仮想ビューに適用される暗号化は、リソースコンテンツを要求エンティティから不明瞭にするための部分的または完全に準同型の暗号化を含み得るが、それは、要求エンティティが準同型暗号化に起因する暗号文を検索または算術的に操作することを可能にする。暗号文に対する動作は、要求エンティティが、復号されたリソースコンテンツを読み取ることを可能にすることなく、対応する結果を復号されたリソースコンテンツにもたらし得る。コンピューティングデバイスのリソースの仮想ビューに適用される暗号化は、オーナがリソースコンテンツの仮想コピーにアクセスすることを可能にするために、オーナによって復号され得る暗号化を含み得る。いくつかの実施形態では、暗号化がコンピューティングデバイスのリソースの仮想ビューに適用されないで、オーナがリソースコンテンツの仮想コピーにアクセスすることを可能にすることもある。
【００４５】
[0055]  リソースコンテンツの仮想ビューに適用するための暗号化のタイプおよび／またはレベルを決定するために、リソースコンテンツ暗号デバイス３０４は、仮想化インターフェースモニタ３０２から受信されたデータを、暗号化のタイプおよび／またはレベルと相関させ得る。仮想化インターフェースモニタ３０２から受信されたデータは、例えば、オーナ識別子、要求エンティティ識別子、要求エンティティがコンピューティングデバイスのリソースのオーナであるかどうか、機能認証、アクセスのタイプ、および／またはコンピューティングデバイスのリソースへのアクセスを求める要求の仮想アドレスあるいは対応する物理アドレスのような仮想リソース識別子を含み得る。
【００４６】
[0056]  リソースコンテンツ暗号デバイス３０４は、仮想化インターフェースモニタ３０２からデータを受信し、仮想化インターフェースモニタ３０２からのデータと相関する暗号化のタイプおよび／またはレベルを識別し得る。いくつかの実施形態において、暗号化のタイプおよび／またはレベルは、アクセスデータのタイプの一部として仮想化インターフェースモニタ３０２によって提供され得る。いくつかの実施形態において、リソースコンテンツ暗号デバイス３０４は、仮想化インターフェースモニタ３０２から受信されたデータと暗号化のタイプおよび／またはレベルとの間のプログラミングされた相関を使用して、暗号化のタイプおよび／またはレベルを決定し得る。例えば、要求エンティティがオーナであることを示すデータが、軽度（light）の暗号化と相関し得るか、またはいずれの暗号化とも相関しないことがある一方で、要求エンティティがオーナでないことを示すデータが強力な暗号化と相関し得る。同様に、要求された機能が非オーナの認証された機能であることを示すデータが完全または部分的な準同型暗号化と相関し得、要求された機能が非オーナの認証されていない機能であることを示すデータが強力な暗号化と相関し得る。
【００４７】
[0057]  データ保護システム３００は、要求されたリソースコンテンツをコンピューティングデバイスのリソースから取り出し得、リソースコンテンツ暗号デバイス３０４は、取り出されたリソースコンテンツの仮想ビューに暗号化のタイプおよび／またはレベルを適用し得る。データ保護システム３００は、要求されたリソースコンテンツの不明瞭にされた仮想ビューまたは不明瞭にされていない仮想ビューを要求エンティティに戻し得る。
【００４８】
[0058]  いくつかの実施形態において、データ保護システム３００は、要求されたリソースコンテンツをコンピューティングデバイスのリソースから取り出し得、仮想化インターフェースモニタ３０２は、コンピューティングデバイスのリソースへのアクセスを求める要求のためのアクセスのタイプに基づく信号を送信し得る。異なる信号が、取り出されたリソースコンテンツの仮想ビューに不明瞭さのタイプおよび／またはレベルを適用するようにリソースコンテンツ暗号デバイス３０４をトリガし得る。データ保護システム３００は、要求されたリソースコンテンツの暗号化された仮想ビューまたは暗号化されていない仮想ビューを要求エンティティに戻し得る。
【００４９】
[0059]  データ保護システム３００は、図３に例示されるハードウェアにおいて実施され得る。コンピューティングデバイス１０は、オペレーティングシステム３０６、ハイパーバイザ３０８、ＴｒｕｓｔＺｏｎｅ３１０、および／またはアプリケーション３１２を含むソフトウェアを実行し得る。コンピューティングデバイス１０は、ページテーブルを記憶するランダムアクセスメモリ（ＲＡＭ）を含み得るメモリ１６、トランスレーションルックアサイドバッファ（translation lookaside buffer）３１４、ＣＰＵを含み得るプロセッサ１４、およびデータ保護システム３００のようなハードウェア構成要素を含み得る。データ保護システム３００は、データ保護システム３００を実施するように構成された、ＳｏＣ１２またはプロセッサ１４のような、汎用ハードウェアまたは専用ハードウェアを含み得る。仮想化インターフェースモニタ３０２は、プロセッサ１４またはプロセッサコア２００、２０１、２０２、２０３、およびバッファを含み得るメモリ１６のような、汎用ハードウェアまたは専用ハードウェアを含み得る。リソースコンテンツ暗号デバイス３０４は、プロセッサ１４、プロセッサコア２００、２０１、２０２、２０３および暗号化エンジンまたはハードウェアアクセラレータ（hardware accelerator）、およびバッファを含み得るメモリ１６のような、汎用ハードウェアまたは専用ハードウェアを含み得る。
【００５０】
[0060]  図４は、データ保護システム３００がコンピューティングデバイスのリソースのオーナシップのデータを記憶するために使用し得るオーナシップテーブル４００の非限定的な例を例示する。様々な実装形態が、オーナ識別子、仮想アドレスのような仮想リソース識別子、物理アドレスのような物理リソース識別子、および有効性インジケータを含む、オーナシップデータの異なる組合せおよび順序を含み得る。いくつかの実装形態において、仮想リソース識別子および物理リソース識別子という用語は同義で使用され得る。
【００５１】
[0061]  例となるオーナシップテーブル４００は、オーナ識別子列４０２および仮想リソース識別子列４０４を含み得る。以下でさらに論じられるように、オーナシップテーブル４００はまた、オプションの有効性インジケータ列４０６も含み得る。オーナシップテーブル４００は、各々がコンピューティングデバイスのリソースの異なるオーナシップを表す、複数の行、例えば行４０８〜４１４を含み得る。
【００５２】
[0062]  オーナ識別子列４０２は、コンピューティングデバイスの各オーナまたは可能性のあるオーナについての一意の識別子(unique identifiers)を含み得る。オーナ識別子は、コンピューティングデバイスのリソースのオーナである、コンピューティングデバイスのリソースへのアクセスを要求するエンティティのアイデンティティを伝達するために使用され得る。
【００５３】
[0063]  仮想リソース識別子列４０４は、仮想アドレスのような、仮想リソース識別子を含み得、それは、行４０８〜４１４にあるように、同じ項目の相関するオーナまたは可能性のあるオーナについての、例えば、仮想アドレスと物理アドレスのマップに従ってコンピューティングデバイスのリソースの物理リソース識別子にマッピングされる。上記のように、他のデータが、コンピューティングデバイスのリソースの物理アドレスおよび物理コンピューティングデバイスリソース識別子を含む、コンピューティングデバイスのリソースと、オーナまたは可能性のあるオーナを相関させるために使用され得る。
【００５４】
[0064]  いくつかの実装形態において、オーナシップテーブル４００は、コンピューティングデバイスのリソースの現在のオーナについての項目のみを含む。このような実装形態では、ある項目がコンピューティングデバイスのリソースのオーナシップの変更に応答してオーナシップテーブル４００から取り除かれ得る。項目を取り除くことは、取り除かれる項目を削除すること、ヌルにすること、または上書きすることを伴い得る。
【００５５】
[0065]  いくつかの実装形態において、オーナシップテーブル４００は、オプションの有効性インジケータ列４０６を含み得、それは、項目が、同じ項目のオーナ識別子に関連付けられたオーナによってコンピューティングデバイスのリソースの現在のオーナシップを示すかどうかを示すための値を含み得る。オプションの有効性インジケータ列４０６を含むことは、コンピューティングデバイスのリソースのオーナの過去の項目、現在の項目、および可能性のある項目の記憶を可能にし得る。コンピューティングデバイスのリソースの現在のオーナシップを示す値を含む項目が、行４０８、４１０、および４１４に例示されるように、オプションの有効性インジケータ列４０６に、ブール値（boolean value）「１」のような指定された値を含み得る。コンピューティングデバイスのリソースの過去のオーナシップまたは可能性のあるオーナシップを示す値を含む項目が、行４１２に例示されるように、オプションの有効性インジケータ列４０６に、ブール値「０」のような指定された異なる値を含み得る。オプションの有効性インジケータ列４０６を含む実装形態は、コンピューティングデバイスのリソースのオーナシップの変更に応答して、現在のものではないオーナシップ（non-current ownership）の項目を保ち得る。オプションの有効性インジケータを含む実施形態は、コンピューティングデバイスのリソースのオーナシップが得られることに伴ってオーナシップテーブル４００に新たな項目を追加し得るか、または、オーナシップテーブル４００が、コンピューティングデバイスのリソースとそれらの可能性のあるオーナの可能な組合せの一部または全部で予め占有され（pre-populated）得る。いくつかの実装形態では、オーナシップテーブル４００における項目の数に「Ｎ」個の制限があり得、現在のオーナシップまたは可能性のあるオーナシップを追加するために、置換え基準に従って項目が取り除かれ得る。
【００５６】
[0066]  例となるオーナシップテーブル４００は、様々な実装形態で対処され得る様々なオーナシップの状況を例示する。例えば、行４０８は、オーナ識別子「Ｏ１」によって指定されたオーナエンティティが、オーナおよびコンピューティングデバイスのリソースについての仮想リソース識別子とコンピューティングデバイスのリソースのマッピングに従った仮想リソース識別子「ＶＡ１」によって表されるコンピューティングデバイスのリソースを所有し得ることを例示する。様々な実装形態において、仮想リソース識別子「ＶＡ１」は、オーナおよびコンピューティングデバイスのリソースについての物理アドレスにマッピングされた仮想アドレスであり得る。オプションの有効性インジケータ列４０６を含まない実装形態において、行４０８にデータがあることは、オーナ識別子「Ｏ１」によって指定されたオーナエンティティが、仮想リソース識別子「ＶＡ１」によって表されるコンピューティングデバイスのリソースを現在所有していることを示し得る。オプションの有効性インジケータ列４０６を含む例では、有効性インジケータの値が「１」であるので同じ成果が示され得る。
【００５７】
[0067]  行４１０をさらに含むことは、行４０８の同じオーナエンティティが、オーナおよびコンピューティングデバイスのリソースについての仮想リソース識別子とコンピューティングデバイスのリソースのマッピングに従った、仮想リソース識別子「ＶＡ２」によって表されるコンピューティングデバイスのリソースも所有し得ることを例示する。
【００５８】
[0068]  行４１２は、オーナ識別子「Ｏ２」によって指定されたオーナエンティティが、オーナおよびコンピューティングデバイスのリソースについての仮想リソース識別子とコンピューティングデバイスのリソースのマッピングに従った仮想リソース識別子「ＶＢ１」によって表されるコンピューティングデバイスのリソースのオーナであり得ることを例示する。しかしながら、オプションの有効性インジケータ列４０６における「０」という有効性インジケータの値は、オーナ識別子「Ｏ２」によって指定されたオーナエンティティが、仮想リソース識別子「ＶＢ１」によって示されるコンピューティングデバイスのリソースの、現在のオーナではなくむしろ過去のオーナまたは可能性のあるオーナであることを示し得る。オプションの有効性インジケータ列４０６を含まないいくつかの実装形態において、行４１２はオーナシップテーブル４００から省略され得る。
【００５９】
[0069]  図５は、データ保護システム３００が、コンピューティングデバイスのリソースについての過去の、現在の、および／または可能性のある要求エンティティの機能認証のデータを記憶するために使用し得る認証テーブル５００の非限定的な例を例示する。様々な実装形態が、要求エンティティ識別子、証明書データまたは証明書データ参照（certificate data reference）、およびアクセスタイプを含む、機能認証データの異なる組合せおよび順序を含み得る。
【００６０】
[0070]  いくつかの実装形態において、証明書データおよび証明書データ参照という用語は同義で使用され得る。例となる認証テーブル５００は、要求エンティティ識別子列５０２および証明書列５０４を含む。本明細書でさらに論じられるように、認証テーブル５００はまた、オプションのアクセスタイプ列５０６も含み得る。認証テーブル５００は、各々がコンピューティングデバイスのリソースについての要求エンティティの異なる認証された機能を表す、複数の行、例えば行５０８〜５１４を含み得る。
【００６１】
[0071]  要求エンティティ識別子列５０２は、コンピューティングデバイスの各要求エンティティまたは可能性のある要求エンティティについての一意の識別子を含み得る。要求エンティティ識別子は、コンピューティングデバイスのリソースへのアクセスを要求するエンティティのアイデンティティを伝達するために使用され得る。
【００６２】
[0072]  証明書列５０４は、要求エンティティについての、または要求エンティティの機能についての証明書、あるいは、証明書が記憶されているロケーションへのポインタのような参照(reference)を含み得る。いくつかの実装形態において、認証テーブル５００は、コンピューティングデバイスのリソースについての現在の要求エンティティについての項目のみを含む。このような実装形態では、ある項目が、コンピューティングデバイスのリソースのオーナシップの変化に応答して認証テーブル５００から取り除かれ得、その結果、それらのそれぞれの所有されているコンピューティングデバイスのリソースへのアクセスを要求するオーナはいずれも認証テーブル５００にリストにされないこともある。項目を取り除くことは、取り除かれる項目を削除すること、ヌルにすること、または上書きすることを伴い得る。
【００６３】
[0073]  いくつかの実装形態では、コンピューティングデバイスのリソースへのアクセスを求める要求がなされることに伴って項目(entries)が認証テーブル５００に追加され得たり、または認証テーブル５００が、可能性のある要求エンティティとそれらの証明書の可能な組合せの一部または全部で予め占有され(pre-populated)得たりする。いくつかの実装形態では、コンピューティングデバイスのリソースのオーナシップの変化にかかわらず項目が保たれ得る。いくつかの実装形態では、要求エンティティとしてオーナを認証テーブル５００に含めて、コンピューティングデバイスのリソースのオーナシップが、リソースコンテンツの仮想ビューを暗号化する前に確かめられ得る。いくつかの実装形態では、認証テーブル５００における項目の数に「Ｍ」個の制限があり得、現在の要求エンティティまたは可能性のある要求エンティティを追加するために、項目が置換え基準に従って取り除かれ得る。
【００６４】
[0074]  いくつかの実装形態において、認証テーブル５００は、オプションのアクセスタイプ列５０６を含み得、それは、要求エンティティが許されている、リソースコンテンツへのアクセスのタイプを示すための値を含み得る。オプションのアクセスタイプ列５０６を含むことは、用いる暗号化のタイプを決定するのに時間およびリソースがあまり費やされないこともあるので、より高速な暗号化を可能にし得る。認証された機能および要求エンティティのためのアクセスタイプを示す値を含む項目は、暗号化のタイプおよび／またはレベルと相関するアクセスタイプの識別子を含み得るか、または暗号化のタイプおよび／またはレベルの識別子を含み得る。オプションのアクセスタイプ列５０６における値は、認証された機能および／または要求エンティティがオーナであるかどうかと相関し得る。
【００６５】
[0075]  いくつかの実装形態において、オーナの要求エンティティは、認証された機能についてリソースコンテンツへの不明瞭にされていないアクセスが許可され得、すなわち機能を問わない。行５０８は、要求されたコンピューティングデバイスのリソースのオーナでもある要求エンティティの一例を例示する。行５１０〜５１４は、要求されたコンピューティングデバイスのリソースのオーナではない要求エンティティを例示する。行５１０〜５１４における要求エンティティの各々の認証された機能は、要求エンティティに提供される要求されたリソースコンテンツの仮想ビューにデータ保護システム３００が適用し得る暗号化のタイプおよび／またはレベルを制御する特定されたアクセスタイプと相関し得る。例えば、行５１０は、要求エンティティ「Ｒ１」についての証明書「ＣＡ２」が、要求されたリソースコンテンツの仮想ビューの部分的な不明瞭化のみを可能にし得ることを示す。データ保護システム３００は、要求エンティティ「Ｒ１」によってなされた要求について、要求されたリソースコンテンツの仮想ビューに完全または部分的な準同型暗号化を適用し得る。同様に、行５１２および５１４は、要求エンティティ「Ｒ２」および「ＲＮ」についての証明書「ＣＢ１」および「ＣＣ１」が、それぞれ、要求されたリソースコンテンツの仮想ビューの不明瞭化のみを可能にし得ることを示す。データ保護システム３００は、要求エンティティ「Ｒ２」および「ＲＮ」によってなされた要求についての要求されたリソースコンテンツの仮想ビューに強力な暗号化を適用し得る。
【００６６】
[0076]  データ保護システム３００、仮想化インターフェースモニタ３０２、リソースコンテンツ暗号デバイス３０４、オーナシップテーブル４００、および認証テーブル５００の構成要素が、特許請求の範囲から逸脱することなく様々な実装形態で異なって配列され得る。いくつかの実装形態において、オーナシップテーブル４００および認証テーブル５００は、組み合わされ得るか、より多くのテーブルへと分割され得るか、またはオーナシップテーブル４００および認証テーブル５００のうちの一方に含まれると説明された１つまたは複数の項目を含み得る。
【００６７】
[0077]  図６は、様々な実施形態による、仮想リソースビューを使用してデータを保護するための方法６００を例示する。方法６００は、プロセッサのような汎用ハードウェア上、および／またはデータ保護システム、仮想化インターフェースモニタ、および／またはリソースコンテンツ暗号デバイスを実施する専用ハードウェア上で実行されるソフトウェアを使用してコンピューティングデバイスにおいて実行され得る。
【００６８】
[0078]  ブロック６０２において、コンピューティングデバイスは、コンピューティングデバイスのリソースのオーナシップをオーナに割り当てるようにリソースマネジャを実行し得る。上で論じられたように、リソースマネジャは、オペレーティングシステム、ハイパーバイザ、および／またはＴｒｕｓｔＺｏｎｅを含み得、オーナは、アプリケーション、オペレーティングシステム、ハイパーバイザ、および／またはＴｒｕｓｔＺｏｎｅを含み得る。コンピューティングデバイスのリソースのオーナシップをオーナに割り当てることは、オーナがコンピューティングデバイスのリソースのオーナシップを得る準備ができている場合に、リソースマネジャがオーナにオーナシップを許可することを可能にする。例えば、コンピューティングデバイスのリソースのオーナシップがオーナに割り当てられ得るが、オーナは、コンピューティングデバイスのリソースのオーナシップを得る準備ができる前に他のリソースが利用可能になるのを、または他のプロセスが完了するのを待機していることもある。コンピューティングデバイスのリソースのオーナシップの割当ては、ある時間期間以内にオーナシップが得られない場合満了し得、それゆえ、他のオーナへの割当てのためにコンピューティングデバイスのリソースを利用可能にする。いくつかの実施形態において、コンピューティングデバイスのリソースのオーナシップの割当ては、オーナシップを求める要求、オーナシップについての待ち行列における次のオーナ、リソースの利用可能性のブロードキャストまたは直接信号に応答する最初のオーナ、あるいは電力およびパフォーマンスパラメータを含む様々な基準に基づいて次のオーナを決定するためのアルゴリズムに応じ得る。
【００６９】
[0079]  ブロック６０４において、コンピューティングデバイスは、割り当てられたオーナによるコンピューティングデバイスのリソースのオーナシップを求める要求をモニタし得る。いくつかの実施形態において、コンピューティングデバイスのリソースの割り当てられたオーナは、コンピューティングデバイスのオーナシップに、コンピューティングデバイスのリソースのオーナシップの割当ての受諾を認めるように要求し得る。いくつかの実施形態において、コンピューティングデバイスのリソースのオーナシップを求める要求は、他の構成要素、システム、および／またはコンピューティングデバイスのリソースの割り当てられたオーナのオーナシップの可能性のあるオーナにシグナリングし得る。割り当てられたオーナによるコンピューティングデバイスのリソースのオーナシップを求める要求をモニタするために、プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素が、コンピューティングデバイスのリソースのオーナシップを求める要求を受信、検出、またはインターセプトし得る。
【００７０】
[0080]  ブロック６０６において、コンピューティングデバイスは、コンピューティングデバイスのリソースのオーナシップの変化をトラッキングし得る。プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、コンピューティングデバイスのリソースのオーナであるエンティティを決定するために、コンピューティングデバイスのリソースのオーナシップを求める要求の情報を使用し得る。コンピューティングデバイスのリソースのオーナシップをトラッキングするために、コンピューティングデバイスは、図７を参照して方法７００に関連してさらに説明されるように、オーナシップテーブルのような、テーブルまたはデータ構造を更新し得る。
【００７１】
[0081]  ブロック６０８において、コンピューティングデバイスは、任意のエンティティ、オーナ、または非オーナによるコンピューティングデバイスのリソースにアクセスするための要求をモニタし得る。いくつかの実施形態では、コンピューティングデバイスのリソースのオーナが、リソースコンテンツを読み取るまたはそれに書き込むためにコンピューティングデバイスのリソースにアクセスすることを要求し得る。いくつかの実施形態では、非オーナが、リソースコンテンツの移動、コピー、または検索のような、リソースコンテンツの管理機能を実施するためにコンピューティングデバイスのリソースへのアクセスを正当に（legitimately）要求し得る。しかしながら、非オーナによるコンピューティングデバイスのリソースにアクセスするためのいくつかの要求が、リソースコンテンツへのアクセスを獲得するように非オーナを制御した、または非オーナに影響を及ぼした悪意のある行為者（malicious actor）によって促され得る。コンピューティングデバイスのリソースにアクセスするための要求をモニタするために、プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、コンピューティングデバイスのリソースへのアクセスを求める要求を受信、検出、またはインターセプトし得る。コンピューティングデバイスは、コンピューティングデバイスのリソースにアクセスするための要求で対象とされた（targeted）仮想リソース識別子のような情報を、コンピューティングデバイスのリソースにアクセスするための要求から抽出し得る。それにより、コンピューティングデバイスは、コンピューティングデバイスのリソースにアクセスするための要求において使用されたコンピューティングデバイスのリソースの仮想リソース識別子を変換することを担うコンピューティングデバイスの仮想化インターフェースをモニタし、それら要求に応答し得る。例えば、コンピューティングデバイスは、コンピューティングデバイスのリソースの仮想アドレスを抽出し、仮想アドレスおよび物理アドレスの変換を担う仮想化インターフェースをモニタし得る。
【００７２】
[0082]  決定ブロック６１０において、コンピューティングデバイスは、コンピューティングデバイスのリソースにアクセスするためのモニタされた要求が、コンピューティングデバイスのリソースにアクセスするための要求で対象とされたコンピューティングデバイスのリソースのオーナから生じているかどうかを決定し得る。異なるエンティティ、オーナ、および非オーナは、同じコンピューティングデバイスのリソースに対して、異なる仮想リソース識別子とコンピューティングデバイスのリソースのマップを用い得る。仮想化インターフェースは、コンピューティングデバイスのエンティティのうちのどれがコンピューティングデバイスのリソースにアクセスするための要求を発行したかを識別するために使用され得る。
【００７３】
[0083]  決定ブロック６１０における動作の一部として、プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、コンピューティングデバイスのリソースにアクセスするための要求から抽出された情報を使用し、それをオーナシップテーブルにおける情報と比較し得る。いくつかの実装形態において、コンピューティングデバイスのリソースにアクセスするための要求で対象とされた仮想リソース識別子は、要求エンティティと相関し得る。相関は、コンピューティングデバイスのリソースにアクセスするための要求で対象とされた仮想リソース識別子に要求を行うことになるエンティティを識別するための仮想化インターフェースのマッピングを使用して行われ得る。いくつかの実装形態において、識別された要求者は、オーナシップテーブルにおけるオーナ識別子を兼ね得るエンティティ識別子と相関し得る。
【００７４】
[0084]  いくつかの実装形態において、コンピューティングデバイスのリソースにアクセスするための要求に関するエンティティ識別子および／または仮想リソース識別子は、マッチが見つかったかどうかを決定するためにオーナシップテーブルにおける同じタイプの情報の項目と比較され得る。いくつかの実装形態において、オーナシップテーブルは、現在のオーナの項目のみを含み得、マッチは、要求者がオーナであることを示し得るが、マッチなしは、要求者が非オーナであることを示し得る。いくつかの実装形態において、オーナシップテーブルは、コンピューティングデバイスのリソースの過去のオーナ、現在のオーナ、および／または可能性のあるオーナの項目を含み得、オーナシップテーブルからの追加の情報、例えば有効性インジケータがチェックされて、要求者がオーナまたは非オーナであることもマッチが示すかどうかを決定し得る。例えば、有効性インジケータは、要求者がオーナであることを示す、マッチする項目が有効であることを示し得る。反対に、有効性インジケータは、要求者が非オーナであることを示す、マッチする項目が無効であることを示し得る。
【００７５】
[0085]  コンピューティングデバイスのリソースにアクセスするためのモニタされた要求が、コンピューティングデバイスのリソースにアクセスするための要求で対象とされたコンピューティングデバイスのリソースのオーナから生じていると決定することに応答して（すなわち、決定ブロック６１０＝「はい」）、コンピューティングデバイスは、ブロック６１２において、コンピューティングデバイスのリソースにアクセスするための要求に応答して提供される、リソースコンテンツの不明瞭にされていない／暗号化されていない仮想ビューを提供し得る。特定された仮想リソース識別子についてのコンピューティングデバイスのリソースにアクセスするための要求は、コンピューティングデバイスのリソースのリソースコンテンツを要求者に戻すようにコンピューティングデバイスを促し得る。いくつかの実装形態において、コンピューティングデバイスは、仮想ビューとしてリソースコンテンツを提供するように構成され得る。従って、コンピューティングデバイスは、要求エンティティによるリソースコンテンツの処理中のエラーまたはバグの場合に破損することからリソースコンテンツを保護することができ得る。コンピューティングデバイスはまた、仮想ビューを使用することによって同時にリソースコンテンツへの複数のエンティティの異なるアクセスを提供することができ得る。いくつかの実装形態において、コンピューティングデバイスのリソースのオーナは、リソースコンテンツへの悪意のあるアクセスのために使用されないと信用され得るので、オーナには、オーナのコンピューティングデバイスのリソースからリソースコンテンツの不明瞭にされていない／暗号化されていない仮想ビューが提供される。いくつかの実装形態では、プロセッサ、データ保護システム、および／またはリソースコンテンツ暗号デバイスを含むコンピューティングデバイスの構成要素が、仮想ビューを不明瞭にする／暗号化することなく、リソースコンテンツの仮想ビューを生成またはパスし得る。いくつかの実装形態において、リソースコンテンツの仮想ビューを不明瞭にする／暗号化することが必要でないとき、コンピューティングデバイス構成要素はとばされ（bypassed）得る。
【００７６】
[0086]  コンピューティングデバイスのリソースにアクセスするためのモニタされた要求が、コンピューティングデバイスのリソースにアクセスするための要求で対象とされたコンピューティングデバイスのリソースの非オーナから生じていると決定することに応答して（すなわち、決定ブロック６１０＝「いいえ」）、コンピューティングデバイスは、ブロック６１４において、コンピューティングデバイスのリソースにアクセスするための要求に対する応答で提供されるリソースコンテンツの仮想ビューを不明瞭にし得る。コンピューティングデバイスは、図８を参照して方法８００についてさらに説明されるように、リソースコンテンツの仮想ビューを不明瞭にするための暗号化のタイプおよび／またはレベルを決定し得る。プロセッサ、データ保護システム、および／またはリソースコンテンツ暗号デバイスを含むコンピューティングデバイスの構成要素は、非オーナを介した悪意のあるアクセスからリソースコンテンツを保護するためにリソースコンテンツの仮想ビューを不明瞭にし得る。いくつかの実装形態において、リソースコンテンツの仮想ビューを不明瞭にすることは、非オーナが、リソースコンテンツのクリアなビューを有さずに正当なアクセスおよび管理の機能を実施することを禁止しない。一例において、リソースコンテンツが変化せず、それらのロケーションのみが変更されるので、リソースコンテンツは、ブロックにおいて移動されるとき全く重要でないこともあり、またリソースコンテンツを移動するエンティティもリソースコンテンツのデータの詳細を知る必要はない。別の例において、リソースコンテンツを部分的に不明瞭にすることは、非オーナが必要なフィードバックまたは不明瞭にされていないリソースコンテンツの対応する変更を提供することによって機能を実施するのに十分であり得る、暗号文の何らかの検索および算術操作を可能にし得る。
【００７７】
[0087]  ブロック６１６において、コンピューティングデバイスは、リソースコンテンツの不明瞭にされた／暗号化された仮想ビューを提供し得る。ブロック６１２における不明瞭にされていない／暗号化されていない仮想ビューの規定と同様に、コンピューティングデバイスは、リソースコンテンツの仮想ビューを要求エンティティに提供し得る。しかしながら、非オーナに提供される仮想ビューは不明瞭にされる／暗号化される。
【００７８】
[0088]  ブロック６１８において、コンピューティングデバイスは、所有されているコンピューティングデバイスのリソースの解放（release）をトラッキングし得る。ブロック６０４におけるコンピューティングデバイスのリソースのオーナシップを求める要求をモニタすることと同様の方式で、コンピューティングデバイスは、所有されているコンピューティングデバイスのリソースの解放を示す信号を受信、検出、またはインターセプトし得る。解放信号は、コンピューティングデバイスのリソースがオーナシップのために利用可能であることを、コンピューティングデバイスの他のエンティティおよび構成要素に通知し得る。いくつかの実施形態において、プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、解放信号に応答してオーナシップテーブルを更新し得る。いくつかの実施形態において、前のオーナによるコンピューティングデバイスのリソースのオーナシップを示す項目は、オーナシップテーブルから取り除かれ得るか、またはオーナシップテーブルにおいて無効とマークされ得る。
【００７９】
[0089]  図７は、様々な実施形態によるコンピューティングデバイスのリソースのオーナシップをトラッキングするための方法７００を例示する。方法７００は、プロセッサのような汎用ハードウェア上、および／またはデータ保護システム、仮想化インターフェースモニタ、および／またはリソースコンテンツ暗号デバイスを実施する専用ハードウェア上で実行されるソフトウェアを使用してコンピューティングデバイスにおいて実行され得る。
【００８０】
[0090]  決定ブロック７０２において、コンピューティングデバイスは、コンピューティングデバイスのリソースについての、オーナシップテーブルのような、テーブルまたはデータ構造に項目が存在するかどうかを決定し得る。プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、コンピューティングデバイスのリソースにアクセスするための要求の仮想リソース識別子を、オーナシップテーブルの項目に記憶された対応する情報の値と比較し得る。コンピューティングデバイスのリソースにアクセスするための要求の同じ仮想リソース識別子を項目が有する項目は、コンピューティングデバイス構成要素について項目が存在することを示し得る。さらに、異なるオーナが、同じコンピューティングデバイスのリソースにマッピングするために異なる仮想リソース識別子を使用し得るので、仮想リソース識別子を有する項目は、要求オーナによって所有されたコンピューティングデバイス構成要素について項目が存在することを示し得る。コンピューティングデバイスのリソースにアクセスするための要求の同じ仮想リソース識別子を有する項目の欠如は、コンピューティングデバイス構成要素についていずれの項目も存在しないことを示し得る。しかしながら、コンピューティングデバイスのリソースにアクセスするための要求の同じ仮想リソース識別子を有する項目の欠如は、むしろ、コンピューティングデバイスのリソースのオーナシップを要求する現在のオーナによって過去に所有されていた、現在所有されている、または所有されている可能性のあるコンピューティングデバイス構成要素についての項目の欠如を示し得る。異なるオーナが同じコンピューティングデバイスのリソースにマッピングするために異なる仮想リソース識別子を使用し得るので、コンピューティングデバイスの他の過去のオーナ、現在のオーナ、または可能性のあるオーナについて項目が存在し得る。いくつかの実装形態において、コンピューティングデバイスはまた、他の過去のオーナ、現在のオーナ、または可能性のあるオーナによって使用されたコンピューティングデバイス構成要素の仮想リソース識別子をチェックし得る。
【００８１】
[0091]  コンピューティングデバイスのリソースについてオーナシップテーブルに項目が存在しないと決定することに応答して（すなわち、決定ブロック７０２＝「いいえ」）、コンピューティングデバイスは、ブロック７１０において、コンピューティングデバイスのリソースについてオーナシップテーブルに項目を作成し得る。プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、既存の項目を編集する、または新たな項目を作成するために、オーナシップテーブルに、コンピューティングデバイスのリソースのオーナシップを求める要求の仮想リソース識別子および／または仮想リソース識別子に相関する識別されたオーナ識別子を含むデータを書き込み得る。いくつかの実装形態では、既存の項目が、失効であり得るか、またはコンピューティングデバイスのリソースのオーナシップの状態にもはや関係がないこともあり、上書きされ得る。
【００８２】
[0092]  いくつかの実施形態において、コンピューティングデバイスは、本明細書でさらに詳細に説明されるように、オプションのブロック７１２において、コンピューティングデバイスのリソースの要求オーナについての新たな項目を有効としてマークし得る。コンピューティングデバイスは、図６を参照して説明されたブロック６０８に、任意のエンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタするように進み得る。
【００８３】
[0093]  コンピューティングデバイスのリソースについてのオーナシップテーブルに項目が存在すると決定することに応答して（すなわち、決定ブロック７０２＝「はい」）、コンピューティングデバイスは、決定ブロック７０４において、コンピューティングデバイスのリソースの要求オーナが、コンピューティングデバイスのリソースの以前のオーナと同じであるかどうかを決定し得る。本明細書で論じられるように、コンピューティングデバイスのリソースの過去のオーナ、現在のオーナ、または可能性のあるオーナは、コンピューティングデバイスのリソースのオーナシップを求める要求の仮想リソース識別子または相関するオーナ識別子によって識別され得る。プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、要求オーナが、同じコンピューティングデバイスのリソースについての項目にリストにされたオーナと同じであるかどうかを決定するために、コンピューティングデバイスのリソースを求めるオーナシップ要求のデータと、識別された項目とを比較し得る。
【００８４】
[0094]  コンピューティングデバイスのリソースの要求オーナがコンピューティングデバイスのリソースの以前のオーナと同じではないと決定することに応答して（すなわち、決定ブロック７０４＝「いいえ」）、コンピューティングデバイスは、オプションのブロック７０８において、異なるオーナを有するコンピューティングデバイスのリソースについての項目を取り除く、または無効とマークし得る。プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、コンピューティングデバイスのリソースのオーナシップ要求と同じコンピューティングデバイスのリソースの異なるオーナを有する任意の項目を取り除き得る。いくつかの実施形態において、コンピューティングデバイスのリソースのオーナシップ要求と同じコンピューティングデバイスのリソースについて異なるオーナを有する項目は維持され得るが、オーナシップテーブルにおける項目についての有効性インジケータを設定することによって無効としてマークされ得る。同じコンピューティングデバイスのリソースについての他の項目は、それらの仮想リソース識別子および同じコンピューティングデバイスのリソースへのそれらそれぞれのマッピングによって識別され得る。
【００８５】
[0095]  本明細書でさらに説明されるように、ブロック７１０において、コンピューティングデバイスは、コンピューティングデバイスのリソースについての項目をオーナシップテーブルに作成し得、オプションのブロック７１２において、コンピューティングデバイスは、コンピューティングデバイスのリソースの要求オーナについての新たな項目を有効としてマークし得る。コンピューティングデバイスは、図６を参照して説明されたブロック６０８において、任意のエンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタし得る。
【００８６】
[0096]  コンピューティングデバイスのリソースの要求オーナがコンピューティングデバイスのリソースの以前のオーナと同じであると決定することに応答して（すなわち、決定ブロック７０４＝「はい」）、コンピューティングデバイスは、オプションの決定ブロック７０６において、コンピューティングデバイスのリソースの要求オーナと同じオーナについての項目が有効であるかどうかを決定し得る。プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、同じコンピューティングデバイスのリソースおよびオーナについてのオーナシップテーブルにおける項目についての有効性インジケータの値をチェックし得る。
【００８７】
[0097]  コンピューティングデバイスのリソースの要求オーナと同じオーナについての項目が有効であると決定することに応答して（すなわち、決定ブロック７０６＝「はい」）、コンピューティングデバイスは、図６を参照して説明されたブロック６０８において、任意のエンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタし得る。
【００８８】
[0098]  コンピューティングデバイスのリソースの同じオーナについての項目が無効であると決定することに応答して（すなわち、決定ブロック７０６＝「いいえ」）、コンピューティングデバイスは、オプションのブロック７１２において、コンピューティングデバイスのリソースの同じオーナについての項目を有効としてマークし得る。プロセッサ、データ保護システム、および／または仮想化インターフェースモニタのようなコンピューティングデバイスの構成要素は、項目が有効ではなくむしろ無効であることを示すように、オーナシップテーブルにおける有効性インジケータの値を修正し得る。コンピューティングデバイスは、図６を参照して説明されたブロック６０８において、任意のエンティティによるコンピューティングデバイスのリソースにアクセスするための要求をモニタし得る。
【００８９】
[0099]  図８は、リソースコンテンツの仮想ビューに暗号化を適用するために認証を使用するための一実施形態の方法８００を例示する。方法８００は、プロセッサのような汎用ハードウェア上、および／またはデータ保護システム、仮想化インターフェースモニタ、および／またはリソースコンテンツ暗号デバイスを実施する専用ハードウェア上で実行されるソフトウェアを使用してコンピューティングデバイスにおいて実行され得る。
【００９０】
[0100]  ブロック８０２において、コンピューティングデバイスは、非オーナのコンピューティングデバイスのリソースのアクセス要求者が、機能についての証明書と関連付けられているかどうかを決定し得る。本明細書で論じられるように、非オーナのリソースマネジャおよびアプリケーション、または非オーナの要求エンティティは、それらが所有しないコンピューティングデバイスのリソースを求めるコンピューティングデバイスのリソースのアクセス要求を行い得る。リソースマネジャおよびアプリケーションは、コンピューティングデバイスの開発元によって、またはコンパイラによって認証された機能を実行するように構成され得る。機能の認証は、非オーナの要求エンティティについて可能にされる、リソースコンテンツへのアクセスのレベルを示し得る。プロセッサ、データ保護システム、および／またはリソースコンテンツ暗号デバイスを含むコンピューティングデバイスの構成要素は、非オーナの要求エンティティについての、認証テーブルのような、テーブルまたはデータ構造に項目が存在するかどうかを決定し得る。要求エンティティ識別子は、相関する非オーナの要求エンティティについての認証テーブルにおける項目を示し得る。認証テーブルにおける項目の欠如は、要求エンティティが認証されていないことを示し得る。
【００９１】
[0101]  非オーナの要求エンティティが、機能についての証明書に関連付けられていると決定することに応答して（すなわち、決定ブロック８０２＝「はい」）、コンピューティングデバイスは、決定ブロック８０４において、リソースコンテンツへのアクセスが部分的に不明瞭にされるものとして指定されるか、完全に不明瞭にされるものとして指定されるかを決定し得る。プロセッサ、データ保護システム、および／またはリソースコンテンツ暗号デバイスを含むコンピューティングデバイスの構成要素は、非オーナの要求エンティティと相関するそれぞれの証明書から、または認証テーブルにおける非オーナの要求エンティティについての項目から、アクセスタイプを取り出し得る。いくつかの実装形態において、証明書または証明書へのレファレンス(reference)は、認証テーブルにおける非オーナの要求エンティティについての項目に記憶され得る。コンピューティングデバイスは、認証テーブルから、または証明書へのレファレンスのロケーションから、証明されたものを取り出し得る。証明書のデータから、コンピューティングデバイスは、非オーナの要求エンティティについてのアクセスを取り出し得る。いくつかの実装形態において、認証テーブルは、非オーナの要求エンティティについての項目にアクセスタイプを含み得、コンピューティングデバイスは、認証テーブルにおける対応する項目からアクセスタイプを取り出し得る。本明細書で論じられるように、アクセスタイプは、非オーナの要求エンティティにリソースコンテンツの仮想ビューを提供する際に使用される、暗号化のタイプおよび／またはレベル、あるいは不明瞭化のレベルを指定し得る。
【００９２】
[0102]  リソースコンテンツへのアクセスが部分的に不明瞭にされるものと指定されると決定することに応答して（すなわち、決定ブロック８０４＝「部分的」）、コンピューティングデバイスは、ブロック８０６において、リソースコンテンツの仮想ビューを不明瞭にし得る／暗号化し得る。プロセッサ、データ保護システム、および／またはリソースコンテンツ暗号デバイスを含むコンピューティングデバイスの構成要素は、リソースコンテンツの閲覧、使用、または操作を防ぐが、暗号文の検索または算術操作を可能にするように構成された部分的または完全の準同型暗号化を使用して、リソースコンテンツの仮想ビューを不明瞭にし得る／暗号化し得る。本明細書論じられるように、非オーナの要求エンティティは依然として、リソースコンテンツに対して機能を実施する場合と同様の結果をもたらす、暗号文の検索または算術操作といった、いくつかの機能を、リソースコンテンツへのアクセスなく実施し得る。言い換えると、非オーナの要求エンティティは、リソースコンテンツの読取り、書込み、操作、または解釈をすることはできずにある特定の機能を実施し得るが、依然として、リソースコンテンツの読取り、書込み、操作、または解釈をすることができる場合と同様の結果をもたらし得る。
【００９３】
[0103]  非オーナの要求エンティティが機能についての証明書と関連付けられていないと決定することに応答して（すなわち、決定ブロック８０２＝「いいえ」）、またはリソースコンテンツへのアクセスが完全に不明瞭にされるものと指定されると決定することに応答して（すなわち、決定ブロック８０４＝「完全」）、コンピューティングデバイスは、本明細書でさらに説明されるように、ブロック８０８においてリソースコンテンツの仮想ビューを不明瞭にし得る／暗号化し得る。プロセッサ、データ保護システム、および／またはリソースコンテンツ暗号デバイスを含むコンピューティングデバイスの構成要素は、リソースコンテンツの閲覧、使用、または操作を防ぐように構成された強力な暗号化を使用してリソースコンテンツの仮想ビューを不明瞭にし得る／暗号化し得る。本明細書で論じられるように、非オーナの要求エンティティは依然として、リソースコンテンツへのアクセスなく、管理の機能のようないくつかの機能を実施し得るが、リソースコンテンツを有するデータの不透明な（opaque）ブロックへのアクセスを有する。言い換えると、非オーナの要求エンティティは、リソースコンテンツの読取り、書込み、操作、または解釈をすることはできずに、ある特定の機能を実施し得る。
【００９４】
[0104]  コンピューティングデバイスは、図６を参照して説明されたブロック６１６において、要求エンティティにリソースコンテンツの不明瞭にされた／暗号化された仮想ビューを提供し得る。
【００９５】
[0105]  様々な実施形態（限定されるものでないが、図１〜図８を参照して上で論じられた実施形態を含む）は、幅広く様々なコンピューティングシステムにおいて実施され得、それらは、図９に例示される様々な実施形態との使用に好適な一例となるモバイルコンピューティングデバイスを含み得る。モバイルコンピューティングデバイス９００は、内部メモリ９０６に結合されたプロセッサ９０２を含み得る。プロセッサ９０２は、一般または特定の処理タスクのために指定された１つまたは複数のマルチコア集積回路であり得る。内部メモリ９０６は、揮発性または不揮発性メモリであり得、セキュアなメモリおよび／または暗号化されたメモリ、あるいはセキュアではないメモリおよび／または暗号化されていないメモリ、あるいはこれらの任意の組合せでもあり得る。活用され得るメモリタイプの例は、限定されるものでないが、ＤＤＲ、ＬＰＤＤＲ、ＧＤＤＲ、ＷＩＤＥＩＯ、ＲＡＭ、ＳＲＡＭ、ＤＲＡＭ、Ｐ−ＲＡＭ、Ｒ−ＲＡＭ、Ｍ−ＲＡＭ、ＳＴＴ−ＲＡＭ、および組込み型ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含む。
【００９６】
[0106]  プロセッサ９０２は、モバイルコンピューティングデバイスのディスプレイ９１２に結合され得、それは、タッチスクリーン機能を有することも有さないこともある。いくつかの実装形態において、ディスプレイ９１２は、抵抗性感知タッチスクリーン、容量性感知タッチスクリーン、赤外線感知タッチスクリーン、等のようなタッチスクリーンパネル９１２であり得る。タッチスクリーンディスプレイ９１２は、タッチスクリーンコントローラ９０４およびプロセッサ９０２に結合され得る。
【００９７】
[0107]  モバイルコンピューティングデバイス９００は、互いにおよび／またはプロセッサ９０２に結合された、通信を送信および受信するための、アンテナ９１０および１つまたは複数の無線信号トランシーバ９０８（例えば、Ｐｅａｎｕｔ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ、Ｗｉ−Ｆｉ（登録商標）、ＲＦ無線機）を有し得る。トランシーバ９０８およびアンテナ９１０は、様々なワイヤレス送信プロトコルスタックおよびインターフェースを実施するために、上記回路要素を用いて使用され得る。モバイルコンピューティングデバイス９００は、セルラネットワークを介した通信を可能にし、またプロセッサに結合されたセルラネットワークワイヤレスモデムチップ９１６を含み得る。
【００９８】
[0108]  モバイルコンピューティングデバイス９００は、プロセッサ９０２に結合された周辺デバイス接続インターフェース９１８を含み得る。周辺デバイス接続インターフェース９１８は、１つのタイプの接続を受諾するように単独で構成され得るか、または、ＵＳＢ、ＦｉｒｅＷｉｒｅ、Ｔｈｕｎｄｅｒｂｏｌｔ、またはＰＣＩｅのような、共通または独自の、様々なタイプの物理接続および通信接続を受諾するように構成され得る。周辺デバイス接続インターフェース９１８はまた、同様に構成された周辺デバイス接続ポート（図示せず）にも結合され得る。
【００９９】
[0109]  モバイルコンピューティングデバイス９００はまた、オーディオ出力を提供するためのスピーカ９１４も含み得る。モバイルコンピューティングデバイス９００はまた、本明細書で論じられる構成要素の一部または全部を含むための、プラスチック、金属、または材料の組合せから成る、筐体９２０も含み得る。モバイルコンピューティングデバイス９００は、使い捨てバッテリまたは再充電可能バッテリのような、プロセッサ９０２に結合された電源９２２を含み得る。再充電可能バッテリはまた、モバイルコンピューティングデバイス９００の外部にある電源から充電電流を受け取るための周辺デバイス接続ポートにも結合され得る。モバイルコンピューティングデバイス９００はまた、ユーザ入力を受信するための物理ボタン９２４も含み得る。モバイルコンピューティングデバイス９００はまた、モバイルコンピューティングデバイス９００をオンおよびオフにするための電源ボタン９２６を含み得る。
【０１００】
[0110]  様々な実施形態（限定されるものでないが、図１〜図８を参照して上で論じられた実施形態を含む）は、幅広く様々なコンピューティングシステムにおいて実施され得、それらは、図１０に例示されるラップトップコンピュータ１０００のような、様々なモバイルコンピューティングデバイスを含み得る。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとしての役割をするタッチパッドのタッチ表面１０１７を含み、よって、上述され、タッチスクリーンディスプレイを装備したコンピューティングデバイス上で実施されるものと同様の、ドラッグ、スクロール、およびフリックのジェスチャを受信し得る。ラップトップコンピュータ１０００は典型的に、揮発性メモリ１０１２に結合されたプロセッサ１０１１、およびフラッシュメモリのディスクドライブ１０１３のような、大容量の不揮発性メモリを含む。追加的に、コンピュータ１０００は、ワイヤレスデータリンクに接続され得る電磁放射を送信および受信するための１つまたは複数のアンテナ１００８および／またはプロセッサ１０１１に結合されたセルラ電話トランシーバ１０１６を有し得る。コンピュータ１０００はまた、プロセッサ１０１１に結合されたフロッピー（登録商標）ディスクドライブ１０１４およびコンパクトディスク（ＣＤ）ドライブ１０１５も含み得る。ノートブック構成において、コンピュータの筐体は、プロセッサ１０１１に全て結合されたタッチパッド１０１７、キーボード１０１８、およびディスプレイ１０１９を含む。コンピューティングデバイスの他の構成は、周知のように（例えば、ユニバーサルシリアルバス（ＵＳＢ）入力を介して）プロセッサに結合されたコンピュータマウスまたはトラックボールを含み得、それはまた、様々な実施形態と併せて使用され得る。
【０１０１】
[0111]  様々な実施形態（限定されるものでないが、図１〜図８を参照して上で論じられた実施形態を含む）は、幅広く様々なコンピューティングシステムにおいて実施され得、それらは、サーバのような、様々な市販のコンピューティングデバイスの任意のものを含み得る。一例となるサーバ１１００が図１１に例示される。このようなサーバ１１００は典型的に、揮発性メモリ１１０２およびディスクドライブ１１０４のような大容量の不揮発性メモリに結合された１つまたは複数のマルチコアプロセッサアセンブリ１１０１を含む。図１１に例示されるように、マルチコアプロセッサアセンブリ１１０１は、それらをアセンブリのラックへと挿入することによってサーバ１１００に追加され得る。サーバ１１００はまた、プロセッサ１１０１に結合されたフロッピーディスクドライブ、コンパクトディスク（ＣＤ）またはＤＶＤディスクドライブ１１０６も含み得る。サーバ１１００はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワーク、インターネット、公衆交換電話網、および／またはセルラデータネットワーク（例えば、ＣＤＭＡ、ＴＤＭＡ、ＧＳＭ（登録商標）、ＰＣＳ、３Ｇ、４Ｇ、ＬＴＥ（登録商標）、または他の任意のタイプのセルラデータネットワーク）のような、ネットワーク１１０５とのネットワークインターフェース接続を確立するためのマルチコアプロセッサアセンブリ１１０１に結合されたネットワークアクセスポート１１０３も含み得る。
【０１０２】
[0112]  様々な実施形態の動作を実行するためのプログラマブルプロセッサ上での実行のためのコンピュータプログラムコードまたは「プログラムコード」は、Ｃ、Ｃ＋＋、Ｃ＃、Ｓｍａｌｌｔａｌｋ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｖｉｓｕａｌ Ｂａｓｉｃ、構造化照会言語（Structured Query Language）（例えば、Ｔｒａｎｓａｃｔ-ＳＱＬ）、Ｐｅｒｌのような高水準プログラミング言語で、または他の様々なプログラミング言語で書かれ得る。このアプリケーションで使用されるコンピュータ可読記憶媒体上に記憶されるプログラムコードまたはプログラムは、そのフォーマットがプロセッサによって理解可能である（オブジェクトコードのような）機械言語コードを参照し得る。
【０１０３】
[0113]  前述の方法の説明およびプロセスフロー図は、単に例示的な例として提供されており、様々な実施形態の動作が、提示された順序で行われなければならないことを必要とするまたは暗に示すことを意図したものでない。当業者によって理解されるように、前述の実施形態における動作の順序は、任意の順序で行われ得る。「その後（thereafter）」、「次いで（then）」「次に（next）」等のような用語は、動作の順序を限定することを意図したものでなく、これら用語は単に、方法の説明を通して読み手を導くために使用される。さらに、例えば、「a」、「an」、または「the」という冠詞を使用した、単数形での請求項の要素への任意の参照は、その要素を単数形に限定するものとして解釈されるべきでない。
【０１０４】
[0114]  様々な実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズム動作は、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実施され得る。このハードウェアおよびソフトウェアの互換性を明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、および動作が、概してそれらの機能性の観点から上で説明される。このような機能性が、ハードウェアとして実施されるか、ソフトウェアとして実施されるかは、特定の用途およびシステム全体に課せられる設計制約に依存する。当業者は、説明された機能性を、特定の用途ごとに多様な方法で実施できが、そのような実装形態の判断は、特許請求の範囲からの逸脱をもたらすものとして解釈されるべきでない。
【０１０５】
[0115]  本明細書で開示された実施形態に関連して説明された様々な例示的な論理、論理ブロック、モジュール、および回路を実施するために使用されるハードウェアは、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理回路、ディスクリートハードウェアコンポーネント、あるいは本明細書で説明された機能を実行するように設計されたこれらの任意の組合せで実施または行われ得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、このプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアに連結した１つまたは複数のマイクロプロセッサ、または他の任意のそのような構成として実施され得る。代替的に、いくつかの動作または方法は、所与の機能に固有である回路要素によって行われ得る。
【０１０６】
[0116]  １つまたは複数の実施形態において、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せにおいて実施され得る。ソフトウェアにおいて実施される場合、これら機能は、非一時的なコンピュータ可読媒体または非一時的なプロセッサ可読媒体上で、１つまたは複数の命令またはコードとして記憶され得る。本明細書で開示された方法またはアルゴリズムの動作は、非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体上に存在し得るプロセッサ実行可能なソフトウェアモジュールにおいて具現化され得る。非一時的なコンピュータ可読記憶媒体またはプロセッサ可読記憶媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の記憶媒体であり得る。限定でなく例として、そのような非一時的なコンピュータ可読媒体またはプロセッサ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＦＬＡＳＨメモリ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、または命令あるいはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、かつコンピュータによってアクセスされ得る他の任意の媒体を含み得る。ディスク（disk）およびディスク（disc）は、本明細書で使用されるとき、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスク、およびＢｌｕ−ｒａｙ（登録商標）ディスクを含み、ここで、ディスク（disk）は通常、磁気的にデータを再生するが、ディスク（disc）は、レーザーを用いて光学的にデータを再生する。上記の組合せはまた、非一時的なコンピュータ可読媒体およびプロセッサ可読媒体の範囲内に含まれる。追加的に、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的なプロセッサ可読媒体および／またはコンピュータ可読媒体上で、コードおよび／または命令の１つあるいは任意の組合せあるいはセットとして存在し得る。
【０１０７】
[0117]  開示された実施形態の以上の説明は、当業者が特許請求の範囲を製造または使用することを可能にするために提供される。これら実施形態に対する様々な修正は、当業者にとって容易に明らかとなり、本明細書において定義される一般的な原理は、特許請求の範囲から逸脱することなく他の実施形態に適用され得る。よって、本開示は、本明細書で示された実施形態に限定されることを意図するものでなく、以下の特許請求の範囲および本明細書で開示された原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【図１】
2019512811.tif 000003
【図２】
2019512811.tif 000004
【図３】
2019512811.tif 000005
【図４】
2019512811.tif 000006
【図５】
2019512811.tif 000007
【図６】
2019512811.tif 000008
【図７】
2019512811.tif 000009
【図８】
2019512811.tif 000010
【図９】
2019512811.tif 000011
【図１０】
2019512811.tif 000012
【図１１】
2019512811.tif 000013
【国際調査報告】
2019512811.tif 000014
2019512811.tif 000015
2019512811.tif 000016