(57)【特許請求の範囲】
【請求項１】
ターゲットコンピューティングデバイスを保護する方法であって：
前記ターゲットコンピューティングデバイスのために、外部バンド外ハードウェアトラストアンカーを通信可能にアクティベートさせ、前記ハードウェアトラストアンカーは、前記ターゲットコンピューティングデバイスとの関連においてバンド外であり；
前記ターゲットコンピューティングデバイスのコンピューティング環境への前記ハードウェアトラストアンカーのバインドに基づいて、前記ハードウェアトラストアンカーによって、前記ターゲットコンピューティングデバイスの信用状態を確立する；
処理を有し、前記確立する処理は、
前記ハードウェアトラストアンカーによって、ターゲットコンピューティングデバイス上に前記ターゲットコンピューティングデバイスの仮想マシンを起動し、
前記起動された仮想マシンを含む前記ターゲットコンピューティングデバイスを分析することに基づいて、セキュリティ診断情報を取得し、前記ターゲットコンピューティングデバイスの検証された分析値に従って、前記仮想マシンの信用状態を信用された前記仮想マシンに変更し、かつ、
他の起動されたコンピューティング環境による前記ハードウェアトラストアンカーとの通信を許容しない前記信用された仮想マシンに対して前記ハードウェアトラストアンカーを適用するというセキュリティポリシに基づいて、前記ハードウェアトラストアンカーによって、前記ターゲットコンピューティングデバイスの前記信用状態を連続的に維持する；
処理によって実行され、
前記ターゲットコンピューティングデバイスの前記信用状態を連続的に維持する処理は、ユーザに前記信用状態のライブフィードバックを提供する処理、
を含む、方法。
【請求項２】
前記セキュリティポリシは、前記信用された仮想マシンの修正を制限する処理、及び／又は、前記信用された仮想マシンにおける実行をターゲットプロセスに制限する処理、
を含む、請求項１記載の方法。
【請求項３】
前記ライブフィードバックは、前記ターゲットコンピューティングデバイスにおいて起動されているアプリケーションの情報を提供する処理、
を含む、請求項１記載の方法。
【請求項４】
前記ターゲットコンピューティングデバイスの前記信用状態を連続的に維持する処理は、
サーバとバンド外通信を確立し、
前記サーバと協働して、セキュリティ診断を実施する処理と、前記信用状態を回復するためのセキュリティ回復プロセスを実行する処理と、を含む前記ターゲットコンピューティングデバイスの前記信用状態を維持する、
処理を含む請求項１記載の方法。
【請求項５】
ターゲットコンピューティングデバイスを保護する装置であって：
コンピュータプロセッサを有し、
前記コンピュータプロセッサは、
外部バンド外通信をハードウェアトラストアンカーと確立し、前記ハードウェアトラストアンカーは、前記ターゲットコンピューティングデバイスとの関連においてバンド外であり；
前記ターゲットコンピューティングデバイスのコンピューティング環境への前記ハードウェアトラストアンカーのバインドに基づいて、前記ターゲットコンピューティングデバイスの信用状態を確立する；
処理を実行し、前記確立する処理は、
ターゲットコンピューティングデバイス上に前記ターゲットコンピューティングデバイスの仮想マシンを起動し、
前記起動された仮想マシンを含む前記ターゲットコンピューティングデバイスを分析することに基づいて、セキュリティ診断情報を取得し、前記ターゲットコンピューティングデバイスの検証された分析値に従って、前記仮想マシンの信用状態を信用された前記仮想マシンに変更し、かつ、
他の起動されたコンピューティング環境による前記ハードウェアトラストアンカーとの通信を許容しない前記信用された仮想マシンに対して前記ハードウェアトラストアンカーを適用するというセキュリティポリシに基づいて、前記ターゲットコンピューティングデバイスの前記信用状態を連続的に維持する；
処理によって実行され、
前記ターゲットコンピューティングデバイスの前記信用状態を連続的に維持する処理は、ユーザに前記信用状態のライブフィードバックを提供する処理、
を含む、装置。
【請求項６】
外部のバンド外ハードウェアトラストアンカーを構成し、前記ハードウェアトラストアンカーは、ターゲットコンピューティングデバイスとの関連においてバンド外であり、
前記ターゲットコンピューティングデバイスの分析に基づいて、前記ターゲットコンピューティングデバイスを検証し、
検証された前記ターゲットコンピューティングデバイスにおいて、前記ターゲットコンピューティングデバイス上に前記ターゲットコンピューティングデバイスの仮想マシンを起動することを含む信用されたコンピューティングベース（ＴＣＢ）を確立し、前記仮想マシンの信用状態を信用された仮想マシンに変更するように、前記起動された仮想マシンを分析し、かつ、
他の起動されたコンピューティング環境による前記ハードウェアトラストアンカーとの通信を許容しない前記信用された仮想マシンに対して前記ハードウェアトラストアンカーを適用するというセキュリティポリシに従って、前記ハードウェアトラストアンカーを前記ＴＣＢの前記信用された仮想マシンにバインドすることによって、前記ターゲットコンピューティングデバイスの信用状態を連続的に維持する、
処理を有し、
前記ターゲットコンピューティングデバイスの前記信用状態を連続的に維持する処理は、ユーザに前記信用状態のライブフィードバックを提供する処理、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書において開示される実施形態は、コンピュータのセキュリティに関する。
【背景技術】
【０００２】
この出願は、２００９年９月９日に出願の米国特許出願第１２／５５６,１４８号の優先権を主張し、この引用により本出願に組み込まれる。
【０００３】
ターゲットマシン（コンピューティング装置／コンピュータ）のプログラムを実行することによって、アンチウイルスおよびアンチ・マルウェア・ツールが動作する。そして、それはデータを集め、悪意のあるソフトウェアを検出することを試みる。この後に、結果が、ターゲットマシン周辺機器／リソース（モニタ、など）を使用して示される。しかしながら、このアプローチには課題が存在する。第１に、アンチ・ウィルス・ソフトウェアそのものはウイルスおよび／またはマルウェアのターゲットおよび／または犠牲者であり得る場合がある。このような場合には、その役割を果たすことができない。第２に、特定のマルウェアの主目的が、「あなたのコンピュータは、感染している」のようなメッセージを示すことでアンチ・マルウェアを「頒布（sell）」することである。マシン上の仮想マシンの場合には、ユーザには、単一のマシンにある異なる環境（ＶＭ）を区別できないという問題があり、正しいマシンであるにもかかわらず、潜在的に障害のある環境を使用していると思わされてしまうことがある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Tal  Garfinkel  and  Mendel  Rosenblum,  When  Virtual  is  Harder  than  Real:  Security  Challenges  in  Virtual  Machine  Based  Computing  Environments,  in  10th  Workshop  on  Hot  Topics  in  Operating  Systems,  2005
【非特許文献２】Steven  J.  Vaughan-Nichols,  Virtualization  Sparks  Security  Concerns,  Computer,  41(8):13-15,  2008.
【非特許文献３】Samual  T.  King  and  Peter  M.  Chen,  SubVirt:  implementing  malware  with  virtual  machines,  in  Security  and  Privacy,  2006  IEEE  Symposium  on  page  14,  2006
【非特許文献４】Shane  Balfe,  Eimear  Gallery,  Chris  J.  Mitchell,  and  Kenneth  G.  Paterson.  Challenges  for  trusted  computing,  IEEE  Security  and  Privacy,  6(6):60-66,  2008
【非特許文献５】Jonathan  M.  McCune,  Adrian  Perrig,  Arvind  Seshadri,  and  Leendert  van  Doorn,  Turtles  all  the  way  down:  Research  challenges  in  user-based  attestation,  in  Proceedings  of  the  Workshop  on  Hot  Topics  in  Security  (HotSec),  August  2007
【非特許文献６】Bryan  Parno,  Bootstrapping  trust  in  a  “trusted”  platform,  in  HOTSEC’08:  Proceedings  of  the  3rd  conference  on  Hot  topics  in  security,  USENIX  Association,  pages  1-6,  Berkeley,  CA,  USA,  2008
【非特許文献７】Tal  Garfinkel,  Ben  Pfaff,  Jim  Chow,  Mendel  Rosenblum,  and  Dan  Boneh,  Terra:  a  virtual  machine-based  platform  for  trusted  computing,  in  SOSP  ’03:  Proceedings  of  the  nineteenth  ACM  symposium  on  Operating  systems  principles,  pages  193-206,  New  York,  NY,  USA,  2003
【非特許文献８】Tal  Garfinkel  and  Mendel  Rosenblum,  When  Virtual  is  Harder  than  Real:  Security  Challenges  in  Virtual  Machine  Based  Computing  Environments,  in  10th  Workshop  on  Hot  Topics  in  Operating  Systems,  2005
【非特許文献９】Steven  J.  Vaughan-Nichols,  Virtualization  Sparks  Security  Concerns,  Computer,  41(8):13-15,  2008
【非特許文献１０】TCG  Infrastructure  Workgroup,  Subject  key  attestation  evidence  extension,  [Online]  <URL:https://www.trustedcomputinggroup.org/specs/IWG/IWG  SKAE  Extension1-00.pdf>,  June  2005
【非特許文献１１】Samuel  T.  King  and  Peter  M.  Chen,  SubVirt:  implementing  malware  with  virtual  machines,  in  Security  and  Privacy,  2006  IEEE  Symposium  on,  page  14,  2006
【非特許文献１２】James  Hendricks  and  Leendert  van  Doorn,  Secure  bootstrap  is  not  enough:  shoring  up  the  trusted  computing  base,  in  Proceedings  of  the  11th  workshop  on  ACM  SIGOPS  European  workshop.  ACM  New  York,  NY,  USA,  2004
【非特許文献１３】Jesus  Molina  and  William  A.  Arbaugh,  “Using  independent  auditors  as  intrusion  detection  systems,”  In  Proc.  of  the  4th  International  Conference  on  Information  and  Communications  Security  (ICICS’02),  pages  291-302,  Singapore,  December  2002
【非特許文献１４】Jesus  Molina,  Houcheng  Lee,  Sung  Lee,  and  Zhexuan  Song,  A  Mobile  Trusted  Platform  Module  (mTPM)  Architecture,  in  Proc.  of  2nd  Workshop  on  Advances  in  Trusted  Computing  (WATC06),  2006
【非特許文献１５】Michael  Becher,  Maximillian  Dornseif,  and  Christian  N.  Klein,  FireWire  all  your  memory  are  belong  to  us,  in  Proceedings  of  CanSecWest,  2005.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この種の結果が純正のアンチ・ウィルス・ツールからの表示である場合であっても、ユーザはスクリーンに示される悪意のあるソフトウェア検出の結果を信じなくなってしまうことがある。この解決策としては、感染したマシンを感染したマシンの記憶装置と異なる記憶装置、例えば、ハードディスクドライブに関連するＣＤ又はＵＳＢドライブから起動することである。その後、ユーザは、悪意のあるソフトウェアをスキャンすることになる。しかしながら、この対策は、コンピュータに関する高度な知識を必要とする。例えば、再起動、そして、感染したマシンを単に再起動させるだけのＣＤやＵＳＰドライブの知識が必要である。
【課題を解決するための手段】
【０００６】
本発明の一実施形態の方法、装置（コンピューティング装置／デバイス）及びそのコンピュータ可読媒体を提供する。この実施形態によって、ターゲットシステムのセキュリティ検査に従って、ターゲットコンピュータシステム（ターゲットマシン）の健全性又は、「信用（トラスト）状態」を検証することができる。実施形態の一側面は、ハードウェアトラストアンカーとして、ハードウェア（コンピューティングハードウェア）バンド外信用診断装置を用いて、ターゲットコンピュータシステムの信用状態の診断を提供する。ハードウェアトラストアンカーとしては、例えば、外部ハードウェアバンド外信用診断デバイス、及び／又は、ターゲットコンピュータシステムに対するデータ通信接続に係る別の通信接続のないハードウェアトラストアンカーとして、ハードウェア隔離された（hardware  isolated）（バンド内）信用診断装置（例えば、バンド内外部ハードウェア信用診断デバイス）が挙げられる。実施形態の側面に従って、ハードウェアバンド外及び／又はバンド内トラストアンカーは、両者とも信用され、ターゲットコンピュータシステムの信用状態を検証する。実施形態の側面に従って、ＯＯＢ及び／又はバンド内トラストアンカーを含むこのハードウェアトラストアンカーは、ターゲットコンピュータシステムと通信できる外部ハードウェアトラストアンカーとして、及び／又は、ターゲットコンピュータシステムの内部にある／インプリメントされた信用されたプラットフォームモジュール（ＴＰＭ）として、又は、これらを組み合わせたものとして、ターゲットコンピュータシステムに対して外部に存在する。
【０００７】
実施形態に従って、「信用状態」は、ターゲットコンピュータシステムのセキュリティ検査に従ったターゲットコンピュータ上のターゲット仮想マシンを含むターゲットコンピュータシステムの信用状態を検証することを含む。
【０００８】
留意すべき点としては、上述の一般的な記述及び以下の詳細な記述の両者は、例示的で、説明的なものであり、請求項に係る発明を限定するためのものではない。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態の機能及び物理コンポーネントのブロック図である。
【００１０】
【図２】本発明の実施形態に従ったターゲットマシンの信用状態を報告するフローチャートを示す図である。
【００１１】
【図３Ａ】本発明の実施形態に従ったコンピュータシステムのブロック図である。
【００１２】
【図３Ｂ】本発明の実施形態に従った図３Ａのコンピュータシステムのブロック図である。
【図３Ｃ】本発明の実施形態に従った図３Ａのコンピュータシステムのブロック図である。
【００１３】
【図４】本発明の実施形態に従った外部ハードウェアトラストアンカーデバイスを伴うターゲットマシンの診断のフローチャートを示す図である。
【図５】本発明の実施形態に従った外部ハードウェアトラストアンカーデバイスを伴うターゲットマシンの診断のフローチャートを示す図である。
【図６】本発明の実施形態に従った外部ハードウェアトラストアンカーデバイスを伴うターゲットマシンの診断のフローチャートを示す図である。
【００１４】
【図７】本発明の実施形態に従った、外部バンド外ハードウェアトラストアンカーデバイスを伴うターゲットコンピュータの診断を示す図である。
【００１５】
【図８】本発明の実施形態に従ったコンピュータの基本的ブロック図である。
【発明を実施するための形態】
【００１６】
本明細書では、方法、装置（コンピューティング装置／デバイス）及びそのコンピュータ可読媒体を開示している。ターゲットコンピュータシステムのセキュリティ検査に従って、ターゲットコンピュータシステム（ターゲットマシン）の健康状態すなわち「信用状態（trust  state）」を検証する。実施形態の側面では、ハードウェアトラストアンカーとして、ハードウェア（コンピューティングハードウェア）バンド外（ＯＯＢ：out  of  band）信用診断装置を用いて、ターゲットコンピュータシステムの信用状態の診断が提供される。例えば、外部ハードウェアバンド信用診断デバイス、及び／又は、ターゲットコンピュータシステムに対して他のデータ通信接続を持たないハードウェアトラストアンカー（例えば、外部ハードウェアバンド内信用診断デバイス）としてハードウェア上分離された（バンド内）信用診断装置が挙げられる。実施形態の側面に従って、ハードウェアバンド外、及び／又は、バンド内トラストアンカーは、両者とも信用され、かつターゲットコンピュータシステムの信用状態を検証する。実施形態の側面に従って、ＯＯＢ及び／又はバンド内トラストアンカーを含むハードウェアトラストアンカーは、ターゲットコンピュータシステムに通信可能に接続することができ、及び／又は、ターゲットコンピュータシステムに独立のコンピューティング回路（トラストアンカーチップ）として及び／又は、ターゲットコンピュータシステム内に信用されたプラットフォームモジュール（ＴＰＭ：Trusted  Platform  Module）の部分として組み込まれ／インプリメントされた形で集積化される。あるいは、これらのいかなる組合せも含まれる。実施形態の側面に従って、この「信用状態」は、ターゲットコンピューティングシステムの信用状態を検証することを含む。ターゲットコンピューティングシステムには、ターゲットコンピュータシステムのセキュリティ検査に従ったターゲットコンピュータシステム上のターゲット仮想マシンを含む。
【００１７】
仮想環境において、現在のセキュリティ技術がポータブル仮想環境に適用される場合、ほとんどの技術は役立たないことが証明されている。従来のセキュリティツールが適用されるとしても、その改造にコストがかかりすぎる。そして操作性を犠牲にし、保護を減少させる。本実施例はその代替措置を提供する。これが、ハードウェアトラストアンカーであり、これは外部に位置し、及び／又は、ターゲットコンピュータに集積化され得る。このハードウェアトラストアンカーは、海洋のいかり（アンカー）と同様に、ハードウェアマシンに仮想マシンを強固に固定することにより、共通の脅威から仮想環境を保護する。実施形態では、ハードウェアトラストアンカーを仮想化されたシステムに利用する。トラストアンカーは、仮想マシンを保護し、かつ、仮想マシンが導入されるプラットフォームの忠実度を担保するメカニズムを提供する。より重要なことは、このハードウェアトラストアンカーは、ターゲットシステムの現状の「信用状態」をユーザに知らせる。これによって、セキュリティの認識を高め、ベストプラクティスを強化する。ハードウェアトラストアンカーデバイスの例が示され、ポータブル仮想環境の柔軟性を犠牲にすることなく、最適なセキュリティが提供される。実施形態に従って、ユーザは、２つの分離された環境で同一のコンピュータをトランスペアレントに利用することができる。一方の環境は、トラストアンカーにバインドされており、これは、厳格なセキュリティポリシを実施する。例えば、ターゲットのセキュアーな処理又はターゲットのセキュアーなアプリケーション（例えば、バンキング）のみ、又は、他のコンピューティングデバイスと共に実施される。そして他方の環境は、完全に管理されておらず、ユーザによって変更可能な環境である。
【００１８】
モバイルコンピューティングとしての仮想化技術は、モバイルコンピューティングを必要とする企業のために有用なものとなった。本明細書におけるモバイルコンピューティングは、コンピューティング環境の仮想化を意味し、これをコンピュータシステム間においてトランスポート／トランスファーを行う。例えば、ネットワーク伝送、コンピュータ可読の記録メディア等によってこれがなされる。一方で、仮想マシン（ＶＭ）は、ユーザに対して柔軟性を提供する。ユーザは、全ての仕事の環境（ＯＳ、アプリケーション）をトランスポートできるばかりでなく、簡単に仕事の環境を作り替えることができる。他方では、この新しい技術は、どのようにしてこの仮想プラットフォームを保護するかと言うパラダイムの変更を強いることとなった（非特許文献１、２参照）。
ユーザに対して、多くの仮想マシンを生成し、かつ共有することを可能とさせる同様の柔軟性によっても、セキュリティの脅威が発生し、管理の困難さを招く。加えて、仮想マシンが導入されるターゲットプラットフォームの仮想化のソフトウェアは、破壊されるであろう。これによって個人データがターゲットプラットフォームで導入されている他の仮想マシンにリークすることとなる。あいにく、仮想マシンを保護するとしている現在のアンチウイルス及び他のセキュリティ関連の製品は、Samual  Tが述べているように、仮想マシンレイヤをターゲットとするルートキット（root  kits）又はマルウェアを特定することができない（非特許文献３参照）。
更に、ユーザは、異なる環境同士を区別することが困難である。すなわち、現実の環境と本物ＶＭと単一のマシンに常駐し偽りの／偽物の／悪意のあるＶＭとである。そして、正しいものの代わりに、潜在的に破壊された環境を利用してしまうことに簡単にだまされてしまう。仮想マシンを複製することは非常に単純である。初心者のアタッカーであっても、ユーザにとって区別のつかない悪意のある環境を構築することが容易にできる。ユーザが異なる環境を区別するのを援助することは、実施形態により解決されるべき課題の一つである。
【００１９】
それ故、それを仮想マシンに適応させる前に現在のセキュリティ設計の徹底的な再調査を実行することが必要である。具体的には、仮想マシンは、直接的に仮想マシンが乗っているターゲットプラットフォームを調査することができないため、事前にクリーンであるかをチェックしておく必要がある。信用されたコンピューティング（trusted  computing）は、このニーズを満たし、（遠隔での）証明（attestation）のための信用できる分析値（measurements）を提供している。（オンラインでのTrusted  Computing  Groupを参照されたい<URL:  https://www.trustedcomputinggroup.org>.）信用されたコンピューティングは、暗号化リポジトリ（cryptographic  repository）に格納された連鎖された分析（chained  measurements）を利用する。この暗号化リポジトリは、証明のために第三者にオンデマンドで提供されている。しかしながら、信用されたコンピューティングは、内在する問題が存在しないわけではない。これについては非特許文献４参照。多くの場合、信用できる形で分析をエンドユーザに提供する容易なメカニズムは存在しない。なぜなら、ターゲットマシンが安全で無い場合、適切なメッセージが表示されているかを保証することができないからである。加えて、信用の連鎖（chain  of  trust）は、いずれかの場所から開始される。そして、これはある程度のインフラストラクチャを必要とする。興味深いことに、仮想化と信用コンピューティングは、同様の問題を抱えている。すなわち、分析値（measurement）を収集し検証する「アンカー」が欠如しており、かつ、信用できる情報と信用できない情報とを、ユーザに提供することである。これらの問題を解決するために、実施形態においては、ハードウェアトラストアンカーが提供される。通常の舟の碇と同様に、このハードウェアトラストアンカーの目的は、修正を防止することによって、ターゲットコンピューティング環境を「不動（immobile）」を保持することである。これによって、アーキテクチャに対して、サポートの場所（point）を提供する。
【実施例】
【００２０】
実施形態の側面に従って、ハードウェアトラストアンカーは、以下の項目の1つ以上を提供する。すなわち、（１）ターゲットコンピュータシステムの「信用状態」として、ターゲットコンピュータシステムの分析値を取得し及び／又は検証する。（２）ＶＭの場合には、パーソナライズするために必要なデータ（あるいは、ＶＭ全体のイメージでもよい）。（３）ターゲットプラットフォームにおいてＶＭ環境が機能するようにする。（４）ＶＭ及びＶＭが機能している信用されたコンピューティングベース（ＴＣＢ）（ターゲットコンピュータシステム）の「信用状態」を忠実に報告する。あるいは、上記のいかなる組合せであってもよい。分析メカニズムをインプリメントするために一定の範囲の技術が、ハードウェアトラストアンカーによって利用され、ハードウェアトラストアンカーと信用されたコンピューティング技術とによって、良好なインプリメンテーション結果が提供される。これについての一般的事項は、非特許文献５及び６を参照。
【００２１】
セキュリティ検査（security  audit）は、以下の1つ以上に関連する。すなわち、ターゲットマシン及び／又はＶＭの分析（measurement）のコンファメーション、実行及び／又はモニタリングすること、ハードウェアアンカーに仮想マシンを固定（又はバインド）すること（すなわち、バインドとは通信可能なようにバインドすることであり、実施し、モニタリングし、及び／又は、レポート（フィードバック）することである。これは、実環境及び／又は仮想環境に関連し、かつこれを介したセキュリティポリシのハードウェアトラストアンカーによってなされる。これは、例えば、修正及び／又は実環境／ＶＭ環境における実行に対する厳格な制限を含む）、キー／証明書の安全な記憶装置、通信のための特定の実環境／ＶＭ環境へのハードウェアトラストアンカーの適用の実行、アップデートの信憑性、ユーザ及び／又はアドミニストレータの検証、ターゲットマシンへの信用されたコンピューティングベース(ＴＣＢ)の検証及び／又はインストール、セキュリティ診断、セキュリティ回復、又は、これらのいかなる組合せも挙げることができる。信用されたコンピューティングベース（ＴＣＢ）は、ターゲットコンピュータシステムにおける信用された状態の維持のためのハードウェア及び／又はソフトウェア要素の制御に対して必要とされるセキュリティ、又は、これらの要素を提供することに関連する。
【００２２】
分析（measurement）は、いかなる長さの入力データシーケンスの固定長のデジタル表現にも関連する。分析は、例えば、オペレーティング環境（例えば、ＯＳ、（メモリ、ハードディスク等の）コンピュータ可読媒体上のデータ、構成された周辺機器／デバイスに係るデータ）の全部及び／又は部分、及び／又は、ファイル（例えば、ソフトウエアアプリケーションのファイル、データファイル等）、ＶＭの場合には、ターゲットコンピューティングデバイスのいかなるＶＭのいかなるＶＭハードディスク及び／又はメモリーイメージ、及び／又はファイル（例えばソフトウエアアプリケーションのファイル、テータファイル）のいかなる仮想マシン（ＶＭ）イメージ、のデジタル表現であってもよい。そして、これは、例えば他の分析値と比較することによりターゲットマシン及び／又はターゲットマシンのＶＭのいかなる変更をも検出する。
【００２３】
信用されたコンピューティング：信用されたコンピューティング（ＴＣＧ：Trusted  Computing  Group）基礎（foundation）は、信用されたプラットフォームモジュール（ＴＰＭ：Trusted  Platform  Module）である。https://www.  trustedcomputinggroup.org/specs/TPM/は、信用されたプラットフォームモジュールの仕様であり、ハードウェア信用ルートである（hardware  root-of-trust）最も一般的なＴＰＭのインプリメンテーションは、コンピュータに物理的に接続されたチップである。このＴＰＭは、適切に定義された命令を利用して、ソフトウェアによりアクセスされる。この命令セットによって、暗号化、署名、キー生成、及びランダム番号生成等の暗号機能を提供する。ＴＰＭは、不揮発性メモリに、限られた量の情報を格納することもできる。加えて、このＴＰＭは、拡張可能なプラットフォーム構成レジスタ（ＰＣＲ：Platform  Configuration  Registers）を含んでいる。最新のバージョンにおいては、総数２４個のＰＣＲがＴＰＭに存在している。ＣＰＲは、プラットフォームの現在のステータスに関する分析値（measurement）を記憶するために利用される。ＰＣＲは、システムが起動した際にリセットされる。そして、リセットされるか拡張される（extended）かのいずれかであり、直接的に修正することはできない。ＰＣＲの拡張は、暗号式（cryptographic  equation）を利用して実行することができる。
Extend(PCRN;  value)  =  Hash(PCRN  ||  value)      (1)
【００２４】
ここで、||の記号は、二つのアレーを連結することを意味する。そして、“Hash”は、暗号的ハッシュ関数、とりわけＳＨＡ１を適用することを意味する。ターゲットプラットフォームの最初の分析エンティティは、デフォルトで信用されているとする。なぜなら、他のいかなるエンティティも以前に分析していないからである。この初期の分析エンティティ（measuring  entity）は、分析のための信用のコアルート（ＣＲＴ：Core  Root  of  Trust）と呼ばれている。強化されたセキュリティのために、このＣＲＴがＴＰＭチップそのものの中に記憶されてもよい。以下、起動している全てのソフトウエアエンティティは、いかなる他のソフトウェアを起動する前においても、このＣＰＲを拡張することによって、信用の連鎖（chain  of  trust）を続けることが期待されている。検証パーティ（verification  party）がＰＣＲを利用することによって、それぞれの分析は、記録され、かつ暗号的に検証される（cryptographically  verified）。検証のために、検証パーティにこれらの分析値を送るアクションは、証明（attestation）と呼ばれる。検証に署名（sign）するために、証明キーがＴＰＭの中で利用される。したがって、このＴＰＭは、ターゲットマシンの分析のための暗号のレポジトリ（cryptographic  repository）として捉えることができる。
【００２５】
デスクトップ仮想化：他のソフトウェア上で完全なＯＳをユーザが使用することができる技術である仮想化は、モバイルユーザに対して改善されたユーザ体験を提供する。仮想化ソフトウェアは、ハードウェアリソースをパーティションで区切り、かつ複数の環境の実行を可能とする。この仮想化ソフトウェアは、通常バーチャルマシンモニタ（ＶＭＭ）または、ハイパーバイザと呼ばれる。この技術とサーバアドミニストレータとの関係は密接である。一つのハードウェアに幾つかのコンピューティング環境を共存させることにより、アドミニストレータは、ハードウェアリソースを最小化させることができる。デスクトップコンピューティングにおいて、異なるプラットフォーム間で、完全なオペレーティングシステムを移動させることができる。
【００２６】
初期の頃は、デスクトップにおいて、セキュリティ上の利益が存在した、これは、非特許文献７に記載されている。そして、これは、新たなセキュリティ上の問題の浮上により終わりを遂げる（非特許文献８参照）。
非特許文献９においては、多くの場合に、現在のセキュリティツール及び技術でハンドリングできないことが記載されている。仮想化のセキュリティに対する最も大切なファクタの一つは、実環境／ＶＭ環境を含むターゲットプラットフォームのインテグリティー（完全性）を確保することである。これは、いかなる環境の分析をも含むターゲットプラットフォームの分析を実行することによって達成することができる。
【００２７】
個別の分析（distinct  measurement）及び通信を実行するために開発された技術を含む、ハードウェアトラストアンカーに係る実施形態について、以下に説明する。
【００２８】
実施形態の一態様によれば、モバイル環境（すなわち、ＶＭ）が、既知（known）であるが不正と思われる（possibly  corrupted）マシン（ターゲットマシン）によって利用されている場合には、データ漏洩は、防止される。最も単純な例としては、会社の従業員が、会社外のプラットフォーム、例えば従業員の家のコンピュータに仕事の環境を構築した場合である。他の、考えられるシナリオとしては、オンラインゲームに対して「チートプルーフ（cheat  proof）」ゲームクライアントを生成することである。本実施形態の利点としては、ユーザのセキュリティの認識を向上させ、かつ、日々の業務に対する透明性を維持することによって、ユーザの経験を強化できることである。ユーザは、ユーザの他の環境を変更する必要がない。ターゲットプラットフォームが環境の間を完全に遮断する限り、このユーザの他の環境は安全でないソフトウェアを含む場合がある。本実施形態も、複雑なアーキテクチャは必要ない。例えば、ＰＫＩ又はプライバシーＣＡである。この点については、非特許文献１０を参照されたい。ＰＫＩ又はプライバシーＣＡは特定の目的に利用され、このような解決策にも用いられる。本実施形態は、現実のケースにおいて、継続的なインターネット接続をも必要としない（非特許文献１１参照）。
【００２９】
脅威のモデルとしては、以下が挙げられる。（１）ＶＭ環境が起動する前に、アタッカーがターゲット環境を修正する。（２）アタッカーが、ユーザに対して、似ている外観であるが、正しくなく、本物でなく、又はトロイの木馬であるＶＭ環境を選択するようミスリードする。（３）ユーザが、間違って、安全でないターゲットプラットフォームでＶＭ環境を起動することを許可する。
【００３０】
以下、実施形態のコンポーネント及びアクタについて説明する。
【００３１】
図１は、本発明の実施形態に係る機能的及び物理的なコンポーネントのブロック図を示している。この実施形態は、4つのメインコンポーネントを含んでいる。すなわち、以下のコンポーネントである。コンポーネントとして、ソフトウェア環境１０２を含むターゲットコンピュータ又はコンピュータマシンであるターゲットプラットフォーム１００が含まれる。そして、ソフトウェア環境１０２は、実環境であっても、仮想マシン（ＶＭ）としての仮想環境であってもよい。他の２つのコンポーネントとしては、ユーザデータ１０４、及びハードウェアトラストアンカー２００が挙げられる。ユーザデータ１０４上でポリシを確立し、かつ、安定した環境１０２を維持するために、環境１０２とユーザデータ１０４とを分離することが必要である。このコンセプトは、ゲームコンソールシステムと比較した場合に分かりやすい。例えば、ソニープレイステーション（登録商標）である。ソニープレイステーションのユーザは、（ほとんど）不変のプラットフォーム（ゲームコンソール）に（ほとんど）不変（immutable）の環境（ゲーム）を起動することができる。同時に、ゲームデータを外部メモリスティック又は内部メモリに格納することによって、パーソナライズすることができる。ゲームコンソールに対する唯一必要な条件は、環境（ゲーム）が簡単に複製されてはならないということである。加えて、本実施形態は、データが漏洩から守られていることが担保されていることが必要である。
【００３２】
次に、本実施形態のアーキテクチャのこの４つの主要なコンポーネントについて説明する。ターゲットプラットフォーム１００は、ソフトウェア環境１０２が導入された（実行可能な）コンピュータである。ターゲットプラットフォーム１００は、信用されたコンピューティングベース（ＴＣＢ）と呼ばれる「信用されたコンピュータ環境」１０３を起動することが必要なハードウェア及びソフトウェアを含む（非特許文献１２参照）。さらに、必要に応じて、他の環境及びハードウェア周辺装置を含む（実施形態の側面に従って、セキュリティを最大に高めるために、全てのハードウェアは、ＴＣＢの一部と認識されることが必要である）。ターゲットプラットフォーム１００のこのＴＣＢは、仮想マシン、例えばバーチャルマシンモニタ（ＶＭＭ）を起動するための仮想化技術を含む。このようにして、ＴＣＢは、環境１０２ａ−ｎの間の分離を提供し、ハードウェアトラストアンカーに対して誠実にＴＣＢのインテグリティを報告しなければならない。そして、ＴＣＢは、キーの安全なストレージを含まなければならない。そして、通信のために特定の環境に対してトラストアンカーの割り当て（assignment）を行使しなければならない。
【００３３】
環境１０２は、ソフトウェア、オペレーティングシステム、及びユーザがアクティビティを遂行するために必要な非一時的なデータ（non-transient  data）を含む実マシン／仮想マシンのいずれであってもよい。実施形態の側面に従って、ＶＭは、ハードウェアトラストアンカーを絡ませたアップデートのプロセスによってのみ修正することができる。上記のようにしなければ、仮想マシンは、変更することができなくなってしまう。環境１０２は、その状態を報告し、かつユーザの作成したデータを保存するための、ハードウェアトラストアンカー２００と通信するメカニズムを含む。
【００３４】
ユーザデータ１０４は、ユーザに関連するデータを含む。このユーザデータには、例えば、ユーザにより作成され、変更されたデータ等の、あらゆるデータが含まれる。これらのドキュメントは、アドミニストレータが規定したポリシに従う。このポリシは、環境１０２及びハードウェアトラストアンカー２００によって行使され得る。このユーザデータ１０４は、ハードウェアトラストアンカー内、ターゲットプラットフォーム１００内、及び／又は、他のコンピュータにリモート的に存在し、これらのいずれかに保存され保護される。
【００３５】
このハードウェアトラストアンカー２００は、ターゲットプラットフォーム１００を検証し、ユーザデータ１０４を保護し、ユーザ及びアドミニストレータを認証し、ターゲットプラットフォーム１００及び／又は環境１０２の信用状態情報をユーザに伝えるために利用されるための、ターゲットプラットフォーム１００から見て外部エンティティであってもよく、及び／又は、ターゲットプラットフォーム１００の内部の独立した集積化されたエンティティであってもよい。このハードウェアトラストアンカー２００は、例えば分析（measurement）のようなセキュリティに関連する検査データ（audit  data）をターゲットプラットフォーム１００から収集し、環境１０２にいかなるユーザデータ１０４をも転送するために、通信チャネルを必要とする。
【００３６】
実施形態の側面に従って、ハードウェアトラストアンカー２００は、独立してターゲットシステムを検査（audit）することができる。この独立した検査とは、アクティブに、プラットフォーム１００との最小限のインタラアクション、又はこれとのインターラクション無しに、プラットフォーム１００の検査に関連するデータを収集することを意味する。しかしながら、この独立したセキュリティ検査は、ハードウェアトラストアンカー２００をダイレクトアクセスバスに接続することによってのみ可能である。ダイレクトアクセスバスとしては、例えばＰＣＩ、又はＦＩＲＥＷＩＲＥが挙げられる。これらにおいては、ＤＭＡのような特別な伝送を介してターゲットプラットフォーム１００のリソース（メモリ、ハードディスク）にアクセすることが可能である。これについては、非特許文献１３、１４，及び１５を参照されたい。しかしながら、アプリケーションによっては、ダイレクトアクセスバスを利用することが勧められない場合がある。なぜなら、検査のために、これらのバスを外部の周辺機器に開放することは、潜在的なセキュリティの脅威に対して、扉を開くことにもなり得るからである。また、ハードウェアトラストアンカーは、ターゲットプラットフォーム１００のリソースを読むことができるばかりでなく、これに書き込むこともできるからである。実施形態の側面に従って、ハードウェアトラストアンカーは、セキュリティ検査（audit）データを受信することができる。例えば、ＵＳＢなどの信用されたチャネルを介したプラットフォーム１００からの分析値である。例えば分析値のような、セキュリティ検査データは、このセキュリティ検査データが真正であることの認証を提供する。ハードウェアトラストアンカーは、例えば、トラストアンカー２００上に、及び／又は、ターゲットプラットフォーム１００、及び／又は、他のバンド外ディスプレイに、信用状態又はセキュリティ検査結果をリアルタイム（ライブ）で表示することにより、ターゲットプラットフォームとは独立に、ユーザに対して信用状態情報、又はセキュリティ検査を表示することができる。この情報の表示がクリアであればあるほど、セキュリティの問題がより確実に防止され得る。
【００３７】
この実施形態は、インプリメンテーションのフレキシビリティに基づいたものである。したがって、異なるコンポーネントは、異なる技術でインプリメントすることができる。この実施形態においては、二つの既存のアクタが存在しうる。すなわち、ユーザ１０６とアドミニストレータ１０８である。ユーザ１０６は、ターゲットプラットフォーム１００、及びユーザデータ１０４に対して、最初のコントロールをすることができる。そして、ユーザデータ１０４を使って仕事をするために、環境１０２を利用し得る。アドミニストレータ１０８は、環境１０２を生成し、ハードウェアトラストアンカー２００を提供しセットアップする。そして、ユーザ／所有者１０６によってコントロールされたターゲットプラットフォーム１００上において正しい信用されたコンピューティングベースが存在することを確認する。図１において、異なるコンポーネント間の関係が示されている。ユーザ１０６によってコントロールされるコンポーネントは、実線で表現されており、アドミニストレータ１０８によってコントロールされるコンポーネントは、破線で示されている。
【００３８】
図２は、本発明の実施形態に従ったターゲットマシンの信用状態を報告するフローチャートを示している。最初のフェーズ２１０において、アドミニストレータ１０８は、トラストアンカー２００をユーザ１０６にパーソナライズし、コンピューティング環境（例えば、ハードウェアトラストアンカー２００を環境１０２）にバインドする。第2のフェーズ２２０において、ユーザ１０６は、ハードウェアトラストアンカー２００を利用して、ターゲットプラットフォーム１００に要求されたＴＣＢ１０３を検証しインストールする（もし必要であれば）。この処理２２０は、直接アドミニストレータが実行することもできる。この第２のフェーズ２２０の後、ユーザ１０６は、この環境１０２においてターゲットプラットフォーム１００を利用することができる。
【００３９】
この第２のフェーズ２２０において、ハードウェアトラストアンカー２００は、まず、環境１０２が起動しているターゲットプラットフォーム１００を検証する。ＴＣＢ１０３は、小さいため、ターゲットプラットフォーム１００は、限定された状態の集合に存在することとなる。状態は、以前にハードウェアトラストアンカー２００に格納されたものである。この第２のフェーズ２２０において、第２の処理として、ターゲットプラットフォーム１００は、これが信用された周辺機器であるか否かを判断するためにハードウェアトラストアンカー２００のインテグリティを検証する。この第２のフェーズ２２０のターゲットプラットフォーム１００及びハードウェアトラストアンカー２００の検証は、いかなる順番及び組合せで実行されてもよい。ターゲットプラットフォーム１００及びハードウェアトラストアンカー２００の二つの検証のいずれかが失敗した場合、ハードウェアトラストアンカー２００は、本明細書に説明するように、ポリシに依存して様々なアクションを実行することができる。結果の如何を問わず、ハードウェアトラストアンカーによって実行されたアクションは、ユーザ１０６に表示される。
【００４０】
検証が成功した場合には、２３０において、ハードウェアトラストアンカー２００は、ターゲットプラットフォーム１００のセキュリティ検査を実行する。例えば、ソフトウェア環境１０２は、ターゲットプラットフォーム１００によって分析され、ハードウェアトラストアンカー２００によってチェックされるよう、ハードウェアトラストアンカー２００が制御する。ターゲットプラットフォーム１００の「信用状態」が確立すると、２４０において、その環境１０２は、トラストアンカー２００によって不変のものとなる。そして、このトラストアンカー２００は、ターゲットプラットフォーム１００の信用状態を継続的にモニタリングし、ユーザに報告する。例えば、２４０において、ハードウェアトラストアンカー２００は、以前に分析された環境１０２だけがユーザデータ１０４にアクセスできることを担保する。
【００４１】
実施形態の側面に従って、環境１０２は、大きなＶＭである場合があるため、分析は複雑であり時間のかかるものとなり得る。仮想マシンの分析に関しては、本明細書及び米国特許出願１２／２４６，１４４において説明した。この特許出願は、引用により本明細書に組み込まれる。
【００４２】
２１０において、バインドの一部として、ターゲットプラットフォーム１００は、ハードウェアトラストアンカー２００を、２１０で起動している（実、又は仮想のいずれかの）ソフトウェア環境１０２にのみ割り当てる。このことにより、他のもの、例えば、ターゲットプラットフォーム１００において、その後起動した実環境、及び／又は、仮想ソフトウェア環境が、ハードウェアトラストアンカー２００と通信することを許容しない。２３０において、ユーザ認証が成功した後には、ユーザデータはロックが解除され、ユーザ１０６によってドキュメントが利用できるようになり、環境をパーソナライズする。
【００４３】
２４０において、ソフトウェア環境１０２は、セキュリティ状態をハードウェアトラストアンカー２００に連絡する（例えば、起動されているプログラム等）。したがって、アタッカーは、ユーザ１０６に対して、ターゲットプラットフォーム上の類似している悪意のある環境を利用させるようにだますことはできない。実施形態の側面に従って、（安全な又は信用された）環境１０２において作られたいかなるデータも、他のソフトウェア環境による悪用及び可能性のあるデータの漏洩を防止するために、自動的にハードウェアトラストアンカー２００に格納される。
【００４４】
以上、（許可又は拒絶）の２つの可能性を含むポリシに関して説明した。しかしながら、ハードウェアトラストアンカー２００は、このような白黒のアプローチに限られるものではない。例えば、ハードウェアトラストアンカー２００は、ソフトウェア検査の結果（例えば、ターゲットプラットフォーム１００の分析）に依存して、適切な環境を選択し、又はポリシに基づいて選択的にユーザデータを開放することができる。したがって、ハードウェアトラストアンカーは、幅広いセキュリティポリシをインプリメントすることができ、かつ、アドミニストレータに対して自由度を与えることとなる。
【００４５】
一旦、ユーザ１０６が環境１０２を利用した場合、ユーザ１０６は、ハードウェアトラストアンカー２００を、ターゲットプラットフォーム１００から取り除かなければならない。これによって、この環境１０２に残されたメモリートレースが消去されなければならない（例えば、環境１０２をシャットダウンし、環境１０２をリブートする）。
【００４６】
図３Ａは、本発明の実施形態に従ったコンピュータシステムのブロック図を示す。ハードウェアトラストアンカー２００は、ＴＰＭ８１４ａ、トラストコンピューティンググループ（ＴＣＧ）ソフトウエアスタック（ＴＳＳ）３０２、キーマネージメントソフトウエア／ハードウェア３０４、例えばユーザデータ１０４のようなデータを格納した安全なストレージ３０６、指紋／掌紋センサ及び認証器のようなユーザチェッカ／認証器８１６（ソフトウェア、及び／又は、コンピュータハードウェア）、及びホストセキュリティチェッカ３１０を含む。ホストセキュリティチェッカ３１０は、セキュリティを検査する。例えば、ターゲットプラットフォーム１００の分析の収集を制御し、及び／又は、収集する。ハードウェアトラストアンカー２００は、ターゲットプラットフォーム１００の内部にあるか、外部にあってもよい。
【００４７】
図３Ａにおいて、ターゲットホスト１００は、仮想環境１０２を含む。非限定的な例として、ターゲットホスト１００は、仮想マシンモニタ（ＶＭＭ）及びＸＥＮによるハイパーバイザ３２０を実行し、ハイパーバイザ３２０は、ハイパーバイザ３２０がブートしたときに自動的にブートする第１の仮想化オペレーティングシステム「ドメイン０」すなわちドメインゼロ（Ｄｏｍ０）を含む。Ｄｏｍ０は、特別の管理特権を与えられており、かつ、物理ハードウェアに直接アクセスできる。Ｄｏｍ０の後、他の仮想化オペレーティングシステムがユーザ仮想マシン（ＶＭ）３３０ａ−ｎとしてセットアップすなわち起動される。ユーザＶＭ３３０は、いかなるオペレーティングシステムであってもよい。例えば、マイクロソフトウィンドウズ（登録商標）、アップルＯＳ（登録商標）、ＬＩＮＵＸ（登録商標）等が挙げられる。２３０において、ターゲットホスト１００は、セキュリティが検査されたときに（例えば、分析されたときに）、ユーザＶＭ３３０ａは、信用されたＶＭ３３０ａ＿Ｔとなる。起動しているセキュリティ検査器３４０は、例えば、ターゲットホスト１００の分析を実行し又はこれを得ることによって、ターゲットホスト１００のセキュリティを検査する。実施形態の側面に従って、ホストセキュリティチェッカ／コントロール３１０及びセキュリティ検査器３４０は、トラストアンカー２００、及び／又は、ターゲットホスト１００の１つ以上のコンピュータプロセッサのいかなる組合せによっても実行可能な１つ以上のソフトウェアのいかなる組合せであってもよい。
【００４８】
ユーザの経験に対して、実施形態においては、エンタープライズ環境１０２に焦点を当てる。この場合、ユーザは、仕事の環境をラップトップ又はパーソナルデスクトップ上で利用したいと欲する。最終目的は、ユーザに対して隠れたものではなくトランスペアレントなポリシ決定をすることによる、モバイル仮想環境１０２を担保することである。ユーザに対して信用の連鎖を確実に知らせるよう保ち、かつ、適切なセキュリティ環境を強化することである。
【００４９】
まず、ユーザは、ハードウェアトラストアンカー（例えば、本明細書に記載した外部Ｋ９モバイルサーバ）を選択したターゲットマシン１００のＵＳＢポートに挿入する。ターゲットマシン１００は、必要とされるキー及び信用されたコンピューティングベース（ＴＣＢ）を持っており（方法、及び／又は、制御された又は提供されたハードウェア／ソフトウエアコンポーネント）、最初のコンフィギュレーションを実行する。すなわち、図２における処理２２０であり、この点は以下に説明する。実施形態の側面に従い、図３において、ＴＣＢは、ハイパーバイザ３２０、Ｄｏｍ０（３２５）、及びターゲットプラットフォーム１００のＢＩＯＳを含んでいる。
【００５０】
図３Ｂないし図３Ｃは、本発明の実施形態に従った図３Ａのコンピュータシステムの状態図である。本節において信用された仮想マシンと呼ぶ動作環境（ＴＶＭ）３３０ａ＿Ｔは、ユーザ仮想マシン（ＵＶＭ）３３０ａと呼ばれるユーザ環境と共存している。プラットフォーム１００にハードウェアトラストアンカー２００を接続する前に、ＴＶＭ３３０ａ＿Ｔは、ユーザに対してトランスペアレントのままとなっている。これは、全てのＴＣＢでも同じである。仮想マシン技術は、ユーザ１０６にトランスペアレントのままである。すなわち、ユーザに対して、物理ハードウェアを直接実行している単一のＯＳによるマシンを使用しているように感じさせる。この感じは、ＵＶＭ３３０ａがネイティブに近いスピードであることによって達成される。
【００５１】
このハードウェアトラストアンカー２００が挿入（又は場合によっては、オンされ／接続）されると、Ｄｏｍ０は、ハードウェアトラストアンカー２００を検出し、そして、２４５ａにおいて、ハードウェアトラストアンカー２００のイニシャライゼーションルーチン２４７と協働して、Ｄｏｍ０は、２４５ｂで、仮想マシン３３０ａを起動する。２４９において、ＴＣＢは、セキュリティ検査器３４０、及び／又は、ホストセキュリティチェッカ／コントロール３１０と協働して、ターゲットプラットフォーム１００の分析値（measurements）を分析し、及び／又は、これをハードウェアトラストアンカー２００に送る。ハードウェアトラストアンカー２００が、正しく分析値を検証した場合、この仮想マシン３３０ａは、ＴＶＭ３３０ａ＿Ｔとして、認識され又は変更される。そして、メッセージが、ハードウェアトラストアンカー２００及びＴＶＭ３３０ａ＿Ｔにより、ユーザ１０６に表示される。一旦ハードウェアトラストアンカー２００が分析値を検証すると、３５０において、ＴＣＢは、ＴＶＭ３３０ａ＿ＴのショートカットをＵＶＭ３３０ａのデスクトップに割り当てる。同時に、ハードウェアトラストアンカー２００は、ユーザチェッカ８１６によって、ユーザからの生体認証を要求する。正しいユーザ認証が得られると、ユーザデータ３０６がアンロックされ、ＴＶＭプログラムへのショートカット及びユーザデータがデスクトップ上に現れる。ユーザの認証から、ＴＭｂ３３０ａ＿ＴのショートカットがＵＶＭ３３０ａに現れるまでに、約３−１０秒を要する。これには、ハードウェアトラストアンカー２００の全ての検証が含まれる。
【００５２】
ユーザが新たなショートカットをクリックすると、プログラムがＴＶＭ３３０ａ＿Ｔ上で起動する。そして、ＵＶＭ３３０ａにおいてユーザは、これに対しインターラクト（対話操作）することができる。ユーザがＴＶＭ３３０ａ＿Ｔベースのアプリケーションを利用している間、ハードウェアトラストアンカー２００は、同一のアイコンを表示する。このアイコンは、ユーザが信用されたスペースで作業していることを保証するものである。二つのＶＭすなわち３３０ａ及び３３０ａ＿Ｔは、デスクトップ上で視覚的にマージされるが、これらの環境の間には、依然としてＴＣＢによって隔離がなされている。例えば、ＵＶＭ３３０ａにインストールされた悪意のあるソフトウェアとしてのキーロガーは、ＴＶＭ３３０ａ＿Ｔによって起動されたプログラムの中でタイプされた情報をインターセプトすることはできない。また、ＵＶＭ３３０ａベースのクロスサイトスクリプティングアタック（cross  site  scripting  attack）は、ＴＶＭ３３０ａ＿Ｔベースのブラウザには（たとえ両者が同時にオープンになっていたとしても）影響しない。ＴＶＭ３３０ａ＿Ｔにおいてプログラムが閉じられると、ハードウェアトラストアンカー２００の関連するアイコンが消失する。これによって、このアプリケーションがＴＶＭ３３０ａ＿Ｔ上でもはや動作していないことをユーザに知らせる。
【００５３】
ハードウェアトラストアンカー２００は、「コンパス」のような役割を演じる。すなわち、ユーザに対してどのプログラムがこのハードウェアトラストアンカー２００にバインドされているかを知らせることになる。更に、ＴＶＭ３３０ａ＿Ｔ上で動作しているプログラムだけが、ハードウェアトラストアンカー２００に格納されたユーザデータ３０６にアクセスできる。したがって、ハードウェアトラストアンカー２００に格納された作業文書は、ＴＶＭ３３０ａ＿Ｔを介してのみ利用可能である。
【００５４】
２３０において、ハードウェアトラストアンカー２００が分析値を受信しなかった場合、例えば、５秒後に、ハードウェアトラストアンカー２００は、ユーザに知らせ、回復処理を実行する。ハードウェアトラストアンカー２００は、例えば、ＵＳＢドライブとして振る舞い、通常の業務のＸクライアント／Ｘサーバを起動することをユーザに許可する。２３０において、分析値が正しくなかった場合、ハードウェアトラストアンカー２００は、やはり回復処理を開始する。例えば、バンド外ハードウェアトラストアンカーがＯＯＢ接続を利用している場合、又は、バンド内ハードウェアトラストアンカーが「信用できない」ホップとしてターゲットプラットフォーム１００を利用している場合、ハードウェアトラストアンカーは、アドミニストレータサイト（ヘルスチェックサーバ）にアクセスして、不明の分析値が正当（valid）であるかを見極める。このアドミニストレータサイトは、プライベートキーによってこの分析値に署名することができ、ハードウェアトラストアンカー２００は、アドミニストレータからの埋め込まれたパブリックキーを利用することによって、この結果を検証することができる。なお、インプリメンテーションの技術的な詳細は、後述する。
【００５５】
図４ないし図６は、本発明の実施形態に従った、外部のハードウェアトラストアンカーを用いた、ターゲットプラットフォーム１００の診断のフローチャートを示している。例示的フローチャートにおいて、ターゲットプラットフォーム１００のターゲット仮想化ソフトウェア環境１０２、及びターゲットプラットフォーム１００の分析値の収集のみが、ターゲットプラットフォーム１００のセキュリティ検査として示されている。しかしながら、実施形態は、仮想化されたソフトウェア環境１０２、及びセキュリティ検査としてのターゲットプラットフォーム１００の分析値の収集、に限定されるものではない。したがって、本明細書で説明するように、ハードウェアトラストアンカー２００は、健全性（ヘルス）を検査し、又は、ターゲット物理ソフトウェア環境１０２を信用することができ、かつ、ターゲットソフトウエア環境１０２を含むターゲットプラットフォーム１００に関連する他のセキュリティ検査オペレーションを実行することができる。別の言葉で説明すれば、本実施形態は、セキュリティ診断のための分析値、及びセキュリティ診断情報で収集できる診断情報に限定されるものではない。
【００５６】
図４におけるオペレーション４００において、ターゲットコンピューティング環境１００に対して、ハードウェアトラストアンカー（ＨＴＡ）２００がアクティベートされる。例えば、ハードウェアトラストアンカー２００がターゲットコンピューティング環境、すなわち、ターゲットＰＣ１００に接続される。４０４において、ＨＴＡが、例えば、ターゲットマシン１００の分析値を受信、及び／又は、アクティブ（直接的に）収集することによって、ターゲットプラットフォーム１００のセキュリティ検査を実行することができるか否かが判断される。４０４において、分析値が収集できない場合、４０６において、ターゲットプラットフォーム１００の検証は失敗する。そして、４０８において、この診断結果がＨＴＡ２００のディスプレイ８０２に表示される。４０４において、分析値が収集できた場合には、４１０において、その分析値がＨＴＡ２００によって受信され、かつ、ＨＴＡ２００は、その分析値のソースをチェックする。４１０において、その分析値が、ターゲットプラットフォーム１００のＴＰＭ８１４ｂによって収集されたか否かが判断される。そして、そうであれば、４１６ＴＰＭ証明キー（attestation  key）が検証される。もし、分析値のソースがＴＰＭ８１４ｂ以外である場合、分析値の署名が検証される。４１８において、この署名の検証の結果が、ＨＴＡ２００のディスプレイ８０２上にユーザに対して表示される。４２０において、分析値の署名検証が正しいか否かが判断される。４２０において、分析値の署名が検証されない場合、４０８において、失敗のメッセージが表示される。４２０において、分析値の署名が検証された場合、セキュリティ検査が５００において継続され、分析値の検証が図５においてなされる。分析値の検証が成功した場合、４１８において、その成功がユーザに表示される。５００において、分析値の検証が失敗した場合には、４３２において、失敗した分析値の検証結果がユーザに表示される。
【００５７】
図５の５００において、ＨＴＡは、分析値がすぐに検証できるか、又は、すぐに検証するべきかを決定する。例えば、ＨＴＡ７００が、ＯＯＢ接続７１４でサーバ７１０に接続している場合、セキュリティ検査は、図６の６００において継続する。ＨＴＡ２００が５０２において、内部で分析値を検証する場合、５０２において、ＨＴＡ２００は、受信した分析値を内部で検証する。例えば、５０２において、分析値が、メモリ／ストレージデバイスの特定のファイル、又は領域の変化を表示している場合、この表示は、トラブルシューティング、及び／又は、回復（remediation）のために利用される。５０６において、ターゲットプラットフォーム１００が、いずれかの回復を要求しているか否かを判断する。回復が必要であると、５０６において判断された場合、５０８において、いずれかの回復のためのパッチ／クリーナのソフトウェア／データがあるか否かが判断される。そして、そうであれば、５１０において、そのパッチ／クリーナをターゲットプラットフォーム１００にプッシュできるか否かが判断される。５１２において、そのパッチ／クリーナが、ターゲットプラットフォーム１００にプッシュされ、かつ実行される。５０４において、パッチ／クリーナの利用可能性の結果、及び／又は、パッチ／クリーナをターゲットプラットフォーム１００にプッシュすることにより回復が可能か否かを、ＨＴＡ２００のディスプレイ８０２上にユーザのために表示する。
【００５８】
図６において、６００で、サーバ７００は、分析値、及び／又は、（場合によっては）リモートサーバ７１０に送られた分析値の署名の検証結果を検証する。サーバ７１０は、分析値を例えば、（可能であればＴＰＭ８１４ｂ等からの署名を利用して）検証し、結果、及び／又は、回復、及び／又は、パッチをＨＴＡ２００に送信する。６０４において、ＯＯＢ  ＨＴＡ７００は、サーバ７１０から受信した分析値の検証結果、及び／又は、回復を処理する。６０６において、ＨＴＡ７００は、いずれかの回復（例えば、パッチ及び／又はクリーナソフトウエア等）があるか否かを判断する。もしそうであれば、６１２において、そのパッチ／クリーナの署名が検証される。６１０において、６１２の検証の結果、及び／又は、６０６におけるパッチ／クリーナがあるか否か、がＨＴＡ７００のディスプレイ８０２上に、ユーザのために表示される。６１２において、パッチ／クリーナがターゲットプラットフォーム１００にプッシュできるか否かも判断される。もしそうであれば、６１４において、パッチ／クリーナが、ターゲットプラットフォーム１００にプッシュされ、かつ実行される。このパッチ／クリーナが、ターゲットプラットフォーム１００に送信することができない場合、６１０においては、ＨＴＡ７００のディスプレイ８０２上にユーザに対してその結果が表示される。
【００５９】
図７は、本発明の実施形態に従ったコンピュータシステムのブロック図を示している。図７において、外部のバンド外（ＯＯＢ：out-of-band）ハードウェアトラストアンカー７００は、ターゲットコンピューティング環境１００のセキュリティヘルスを検証し、かつ維持する。ＯＯＢデバイス７００は、ターゲットコンピュータ１００に、挿入、及び／又は、通信接続される。そして、ターゲットコンピュータ１００は、セキュリティ検査器３４０を起動する、例えば、ターゲットプラットフォーム１００の状態を収集するための内部分析値収集プログラムを起動する。一つの代替の方法としては、ターゲットシステム１００が、ＯＯＢハードウェアトラストアンカー７００によりホスとされるセキュリティ検査器３４０を起動することである。例えば、デバイス７００をストレージデバイス（例えばＣＤ−ＲＯＭ、ＵＳＢデバイス等）としてマスキングし、セキュリティ検査器を実行することによって、これを起動してもよい。
【００６０】
他の代替の方策としては、ＯＯＢハードウェアトラストアンカー７００そのものが、ターゲットシステム１００の状態を直接収集することができるセキュリティ検査器３４０を、開始させることである。これは、ターゲットシステム１００のメモリ及びリソースに直接アクセスできる例えばＦＩＲＥＷＩＲＥのコネクタによって可能となる。
【００６１】
その後、検証中のターゲットシステム１００は、収集されたデータをポータブルデバイス７００、又は、（場合によっては）そのデータはポータブルデバイス７００によって収集される。このポータブルデバイス７００は、ホストセキュリティ診断ソフトウェア３１０により、及び／又は、７１０と協働してその結果を検証し、それ自身のディスプレイメカニズムを用いて、回復をユーザに知らせる。例えば、ポータブルデバイス７００上のディスプレイ８０２は、「あなたは二つのウイルスを持っている」と表示することができる。この告知は、明確でなければならない。したがって、ユーザは、検証中のターゲットシステム１００の状態を明確に理解することができ、報告された問題を回復させるために必要なステップをとることができる。
【００６２】
図７において、ＯＯＢハードウェアトラストアンカー７００は、ターゲットコンピューティング環境１００（例えばＰＣ）と、有線又は無線ネットワーク７１２に接続されている。そして、ターゲットコンピューティング環境１００のセキュリティ診断を制御する。バンド外（ＯＯＢ）は、コンピュータ環境に独立であるということ、又は、ターゲットコンピューティング環境１００と排他的（exclusive）であることを意味する。実施形態の側面に従って、ＯＯＢは、ＯＯＢネットワーク接続を含む。これは、リモートデバイス７１０に接続するネットワーク接続とは異なり、ターゲットコンピューティング環境１００によって利用されるネットワーク接続とは、独立的又は排他的である。実施形態の側面に従って、セキュリティ診断とは、コンピューティング環境のオペレーションに関連するいかなる診断であってもよい。たとえば、（非限定的に）悪意のあるソフトウェア検出／悪意のあるソフトウェア処理防止、コンピューティング環境コンフィギュレーション／セッティング／プロパティ管理（検索、セッティング、分析）、コンピューティング環境分析値等が挙げられる。
【００６３】
実施形態の側面に従って、このＯＯＢハードウェアトラストアンカー７００は、バンド外セキュリティヘルスチェック検証器、又はセキュリティ診断器である。これは、外部の診断に用いるコンピューティングデバイスであってもよい。例えば、ハンドヘルド・コンピューティングデバイス・セキュリティヘルスチェック検証器７００が挙げられ、これは、例えば、ディスプレイ８０２を介して、情報を出力するよう構成されている。多くの場合、悪意のあるソフトウェアからの改竄（tampering）及び策略（trickery）を防止するために、ヘルスチェック検証器７００のためにオフロードとなっている。別の言葉で説明すれば、この外部ＯＯＢ接続７１４は、ターゲットマシンのネットワーク７１２とは関連せず、すなわち、排他的であるということである。バンド外診断器、例えば、外部診断デバイス（例えば、ハンドヘルド診断デバイス）７００は、ターゲットマシン１００の状態によって影響されることはない。実施形態の側面に従って、このバンド外診断器７００は信用されている。
【００６４】
非限定的な例として外部診断デバイスを利用することによって、ユーザとのインターラクション能力（統合されたディスプレイ等）を持つポータブルＯＯＢセキュリティ検証器すなわちセキュリティ診断デバイス７００は、ターゲットプラットフォーム１００と、例えばＵＳＢ又はＦＩＲＥＷＩＲＥなどの既存のコネクタ７１２を用いて接続される。典型的なＯＯＢセキュリティ検証デバイス７００は、ユーザが、より信用できるものであり、例えばＩＰＯＤ（登録商標）又は携帯電話、及び／又は、信用されるために検証されたものである。例えば、ＩＰＯＤ又は携帯電話は、例えば、ユーザ１０６から、信用されたデバイスである。これらは、デスクトップコンピュータ等のターゲットマシン１００に関連して、高度なネットワークの隔離の特徴を備えている。
【００６５】
ＯＯＢセキュリティ検証器７００は、ＯＯＢセキュリティ検証器７００のリポジトリ（コンピュータ可読の記憶媒体）に予め格納された、分析値コレクタ等の、対悪意のあるソフトウェア（anti-malicious  software）と呼ばれる、必要な診断ソフトウェアを含んでいる。別の例としては、対ウイルスベンダは、対ウイルスソフトウエアの一部として、このＯＯＢセキュリティ検査器７００のための対ウイルスソフトウエアを販売してもよい。
【００６６】
他の代替例としては、単一目的の外部、及び／又は、内部ハードウェア２００、７００を設計することができる。そして、これをターゲットシステム１００において（この中において接続し又はアクティベートし）セキュリティヘルスの検証又は診断に利用することができる。この動作は、ターゲットシステム１００の「デジタル温度計」のようなものである。これは、ちょうど人間の体温の熱を計ることによって疾病を治療するのと似ている。
【００６７】
実施形態の側面に従って、収集されたデータは、信用されたソース（例えば、組み込まれたブラックボックス例えばＴＰＭ８１４）から、又は、信用されていないソース（例えば、システムで動作しているソフトウェア３１０、３４０であって、その結果は、悪意のあるソフトエア（マルウエア、ウイルス等）によって改竄されたもの）から来るものである。このポータブルデバイス２００、７００は、情報を収集するために用いたメカニズムに基づいて、これらのセキュリティ診断の信用の推定を、ユーザに与える。例えば、信用されたハードウェア例えばＴＰＭ８１４により保証されている場合、これは、結果と共に「極めて高い自信」を表示することができる。結果が、仮想マシンモニタ／マネジャ３３０からのものである場合、これは、「高い自信」を表示することができる。結果が、販売されている対ウイルスソフトウエアとの協働でホストセキュリティチェッカ３１０、及び／又は、セキュリティ検査器３４０により提供されたものである場合、これは、「低い自信」を表示してもよい。以下、同様である。
【００６８】
データソースの品質を検証するための異なる技術が存在する。ＴＰＭ８１４などの組み込まれたデバイスは、証明されたプライベートキーを用いることによりレポートに署名することができる。これは、セキュリティ検査器２００、７００に対するレポートそのもののインテグリティを示すものである。ホストセキュリティチェッカ３１０及びセキュリティ検査器が、同じソースからのものである場合（例えば、対ウイルスベンダが両方を提供するような場合）、両プログラムは、相互に鍵付きハッシュ（keyed  hash）、例えばＨＭＡＣの手段により、相互に検証することができる。この場合、収集を制御する、及び／又は、ターゲットホスト１００からのセキュリティデータを収集する、ホストセキュリティチェッカソフトウエア３１０は、レポートの鍵付きハッシュを生成する。この生成は、ホスト１００で動作しているソフトウェア３４０と、セキュリティ検査器デバイス２００、７００で動作しているソフトウェアとの間の事前にハッシュされたキー（pre-hashed  key）を用いて行われる。したがって、セキュリティ検査器デバイス２００、７００内のソフトウェア３１０は、鍵付きハッシュを再生成することによって、そのレポートの有効性を検証することができる。一般的に、暗号化手法の検証技術（ＨＭＡＣ、署名キー）は、ターゲットホストコンピュータ１００によって利用され得る。これによって、受け取ったセキュリティ検査器デバイス２００、７００に対する信用を証明することができる。
【００６９】
実施形態の側面に従って、ポータブルセキュリティ検査器が、外部接続機能（例えばＷＩＦＩ、又は携帯電話ネットワーク）を有するポータブルＯＯＢセキュリティ検査器デバイス７００である場合、最終的な検証は、リモートサーバ７１０においてなされてもよい。そして、回復ツール、例えばマルウエアクリーナは、検証器デバイス７００にダウンロードすることができ、そして、その後、これは、検証しているターゲットシステム１００にプッシュされる。この操作は、診断が下された後に、医者が薬を患者に提供するのと似たものと捉えることができる。
【００７０】
実施形態の側面に従って、ハードウェアトラストアンカー又はセキュリティ診断デバイス２００、７００は、ターゲットコンピューティング環境に依存して、診断及びユーザアクションのガイドの組合せを実行する。ハードウェアトラストアンカーのオペレーションは、以下に列挙する診断アクションの１つ以上を含む。（１）ターゲット環境１００の情報収集器３４０に認識されると、ハードウェアトラストアンカー７００は、分析（ファイルにおける変更の検出、悪意のあるソフトウェアの検出等）／その回復のために診断情報を受け取る（例えば、メモリ、オペレーティングシステム、イニシャライゼーション／レジストリファイル、ストレージデバイス、ファイル内の変更を検出するためのファイルの分析値等に関する情報を収集する）。（２）ハードウェアトラストアンカーがストレージデバイスとして認識されうる場合、診断情報収集器３４０を実行する。（３）ターゲット環境１００のオペレーティングシステムが壊れていると判断される場合、又は、機能していない場合、ターゲット環境の情報を収集するために、他のオペレーティングシステムでターゲット環境１００をリブートする。（４）ターゲット環境１００の欠陥のあるＯＳに応答して、又は、それ以外の場合には、診断情報を収集する仮想マシン（ＶＭ）を起動するために、ターゲットマシン環境１００上で、バーチャルマシンモニタ／マネジャ（ＶＭＭ）を起動するか、既にインストールされているものを利用する。ＶＭが感染している場合、ＶＭＭを診断情報収集器３４０として制御／管理する。そして、ＶＭを診断する。なぜなら、ＶＭＭは、ＶＭの実行をサポートしている全ての情報にアクセスできるからである。ターゲット環境１００のオペレーティングシステムが、破壊されているか、動作しないと判断される場合、ターゲット環境１００（例えばメモリ、リソース、ファイル、デバイス等）の状態を直接収集する接続（例えばＦＩＲＥＷＩＲＥ等）を確立する。
【００７１】
診断アクションのいかなる組合せでも、実行することができる。実施形態の側面に従って、ハードウェアトラストアンカーは、（状況に応じて）ターゲットコンピューティング環境１００の診断情報、及び／又は、ＯＯＢ接続７１４から受信した回復情報に基づいて、診断アクションを介して、インターラクティブにユーザに対してガイド行う。実施形態の側面に従って、ハードウェアトラストアンカーは、ターゲットコンピューティング環境１００から何も実行しないことにより、又は、ホストセキュリティチェッカソフトウエア３１０のみを実行することにより、排他的又は独立である。そして、ターゲットコンピューティング環境１００の感染から保護されているという利益を提供している。実施形態の側面に従って、ハードウェアトラストアンカーは、読み取り専用である。実施形態の側面に従って、ハードウェアトラストアンカーは、読み取り専用仮想マシンである。ハードウェアトラストアンカーの読み取り専用の特徴を達成するためには、幾つかの方策がある。まず、ハードウェアトラストアンカーをＶＭとしてインプリメントすることである。そして、特定のＶＭＭが、ＶＭＭが終了した後、初期状態にこのＶＭイメージを戻しリストアすることによって、この読み取り専用機能をサポートする。例えば、ＶＭイメージを起動する前に、ＶＭイメージのスナップショットを生成し、そして、ＶＭＭを終了した後、このスナップショットをリストアすることである。あるいは、ハードウェアトラストアンカーが外部コンピューティングデバイスである場合、そのデバイスを読み取り専用又は書き込み不能に設定する。
【００７２】
通常のユーザは、自身のコンピュータがウイルスに完成していると信じると、そのコンピュータに触ることもためらう場合がある。画面をスプラッシュさせたりするマルウェアの技術は、感染したシステムにおけるユーザの自信を低下させる。一つの実施形態の利点としては、バンド外の外部デバイスの助けによる検証は、技術的に未熟なユーザに対して、自信を持って診断が正しいということをより確かに与える。そして、回復のために必要なオペレーションをユーザに理解させることを助ける。更に、システムの診断及び回復を提供する非常に信用されているバンド外の外部デバイス（例えばＩＰＯＤ又はＩｐｈｏｎｅ（登録商標）（例えば携帯電話））をユーザが利用する場合、ユーザは、示されたアクションを実行することによって、ユーザは、より積極的にシステムをクリーンにすることとなろう。このことによって、システムを容易にかつ適切にシステムを修復することができる。
【００７３】
実施形態の側面に従って、外部ハードウェア、バンド内トラストアンカーは、ハンドヘルドデバイスヘルスチェック（信用状態）検証器であり、例えば、ディスプレイを介して、情報を出力するよう構成されている。そして、ターゲットマシンに既に確立している他の通信接続なして、バンド内でターゲットコンピューティングシステムのセキュリティ検査を行う。多くのケースの場合、これは、ウイルスによる改竄及び策略を防止するために、ヘルスチェック検証器に対してオフロードとなっている。この実施形態は、実質的に外部ハードウェアバンド内トラストアンカー（例えば、ハンドヘルドＯＯＢ診断デバイス）は、ターゲットマシンの状態に影響されないことを担保する。
【００７４】
実施形態の側面に従って、外部ハードウェアＯＯＢトラストアンカーは、ハンドヘルドデバイスヘルス（信用状態）チェック検証器であり、例えば、ディスプレイを介して、情報を出力するよう構成されている。そして、バンド外（ＯＯＢ接続）で、有線又は無線で通信するよう構成されている。ターゲットマシンとの間、あるいは他のコンピューティング装置／デバイスとの間で既に存在する確立した通信とは独立の通信であり、かつ排他的である。そしてターゲットコンピュータマシンのＯＯＢセキュリティ検査がなされる。多くの場合、これは、ウイルスによる改竄及び策略を防止するために、ヘルスチェック検証器に対してオフロードである。別の言葉で説明するとすれば、ＯＯＢ接続は、ターゲットマシンの接続とは関連せず、又は、独立であり、及び／又は、排他的であるということである。この実施形態は、実質的に、外部ハードウェアＯＯＢトラストアンカー（例えばハンドヘルドバンド内診断デバイス）は、ターゲットマシンの状態に影響されないと言うことである。
【００７５】
外部ハードウェアＯＯＢトラストアンカーの場合、利点としては、なじみのあるデバイスを利用するということである。例えばＩＰＯＤ（登録商標）であり、外部ハードウェアＯＯＢ診断デバイスとして、ターゲットコンピューティング環境のいかなる診断結果も検証し、かつ表示する。例えば、対ウイルス収集、ターゲットコンピューティング環境の「信用状態」に関する情報の提供、及び回復技術の提案又はインプリメンテーションが挙げられる。この実施形態の利点は、ターゲットコンピューティング環境のネットワーク接続がディスエーブルである場合、及び／又は、例えば悪意のあるソフトウェアのために機能していない場合における、ターゲットコンピューティング環境のＯＯＢ診断である。実施形態の側面に従って、外部ハードウェアＯＯＢ診断デバイスは、ターゲットコンピューティング環境へのアクセッシビリティの判断に依存した診断の組合せを実行する。
【００７６】
ターゲットの仮想マシンに対するこの実施形態の他の例示的な利点は、以下の通りである。１．ハードウェアトラストアンカーに基づき仮想マシンを保護する一般的なアーキテクチャ。モバイル仮想マシンのセキュリティの課題が提示されているが、可能なインプリメンテーションの自由度を残している。なぜなら、ハードウェアトラストアンカーは、例えばモバイル／ポータブルコンピュータ、ＣＰＵを含むＵＳＢドライブ、携帯電話、又は、特別にデザインされたデバイス等、異なる候補のモバイルデバイスに組みこむことができるからである。３．実践的なユーザの経験が考慮されている。特別の単一目的の組込デバイスにおけるハードウェアトラストアンカーに基づいた実施形態を提供することによって、実施形態の実用性が強調されている。ターゲット仮想マシンとハードウェアトラストアンカーとの間の通信のためのドライバ及びソフトウェアが構築された。セキュリティ及び安定性を改善するために、例えばＸＥＮ仮想マシンモニタを改良し、仮想マシンモニタの修正が行われた。
【００７７】
図８は、本発明の実施形態のコンピュータの機能ブロック図を示している。すなわち、このコンピュータは、ヘルスチェック検証器としての外部ハードウェアトラストアンカーデバイス２００の例である。更に、このコンピュータは、ターゲットマシン又はターゲットコンピューティング環境１００の例である。図８において、コンピュータはいかなるコンピューティングデバイスであってもよい。通常、コンピュータは、ディスプレイ又は出力ユニット８０２を含み、ユーザインタフェースを表示し、又は、例えばダイオード等の、情報や表示を出力する。コンピュータコントローラ８０４（例えば、ハードウェア中央処理装置）は、（例えば、コンピュータプログラム、又はソフトウェア等の）命令を実行する。これは、装置を制御し、オペレーションを実行する。通常、メモリ８０６は、コントローラ８０４による実行のための命令を記憶する。信用プラットフォームモジュール（ＴＰＭ）８１４が提供されてもよい。実施形態の側面に従って、この装置は、いかなるコンピュータ可読媒体８１０、及び／又はコミュニケーション伝送媒体インタフェース８１２のデータをも読み／書き／処理する。ユーザ認証装置８１６は、指紋／掌紋センサ、又はユーザを認証するための他のソフトウェア／コンピューティングハードウェアであってもよい。ディスプレイ８０２、ＣＰＵ８０４（例えば、命令すなわちソフトウェアを処理するハードウェアロジックベースのコンピュータプロセッサ）、メモリ８０６、コンピュータ可読媒体８１０、コミュニケーション伝送メディアインターフェース８１２、ＴＰＭ８１４、及びユーザ認証装置８１６は、データバス８０８によって通信する。生成されたいかなる結果も、コンピューティングハードウェアのディスプレイ上に表示される。
【００７８】
したがって、本発明の実施形態の側面に従って、記載された特徴、機能、オペレーション、及び／又は、利点の１つ以上のいかなる組合せも提供され得る。組合せは、１つだけ、又は複数を含んでもよい。実施形態は、装置（マシン）としてインプリメントされてもよい。これは、コンピューティングハードウェア（すなわち、コンピューティング装置）を含む。例えば（非限定的例示として）、保存でき、読み出すことができ、及び／又はデータを出力することができ、他のコンピュータと（ネットワークで）通信できるいかなるコンピュータをも含む。加えて、装置は、相互又は他の装置との間のコンピュータネットワークコミュニケーション内に１つ以上の装置を含む。加えて、コンピュータプロセッサは、１つ以上の装置において１つ以上のプロセッサを含んでもよく、１つ以上のコンピュータプロセッサ、及び／又は、装置のいかなる組合せをも含む。実施形態の側面は、１つ以上の装置、及び／又は、コンピュータプロセッサに対し、本明細書に記載されたオペレーションを実行させることに関連する。生成された結果は、ディスプレイ上に表示させることができる。
【００７９】
実施形態をインプリメントするプログラム／ソフトウェアは、コンピュータ可読の記憶媒体に格納してもよい。コンピュータ可読の格納媒体は、磁気記憶装置、光ディスク、磁気光ディスク、及び／又は、揮発性、及び／又は、不揮発性半導体メモリ（例えば、ＲＡＭ、ＲＯＭ等）が含まれる。磁気記憶装置の例としては、ハードディスクドライブ（ＨＤＤ）、フレキシブルディスク（ＦＤ）、及び磁気テープ（ＭＴ）が含まれる。光ディスクの例としては、ＤＶＤ、ＤＶＤ-ＲＯＭ、ブルーレイディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷが含まれる。
【００８０】
実施形態をインプリメントするプログラム／ソフトウェアは、データ信号として、通信メディア伝送を介したものも含まれ／エンコードされる。データ信号は、通信メディア中を移動する。通信メディアとしては、例えば、有線ネットワーク、又は無線ネットワークが挙げられ、例えば、キャリア信号に組み込まれる。このデータ信号は、いわゆるベースバンド信号によって伝送されてもよい。キャリア信号は、電気的、磁気的、又は電磁気学的形態、又は、光、音、その他の形態で伝送されてもよい。
【００８１】
本明細書において記載した、全ての実施形態及び条件の記述は、説明を目的とするものであり、本発明及び発明者の貢献によって本技術を発展させるためのコンセプトを、読者に理解させるためのものである。そして、このように記載された実施形態及び条件は、限定をするものではない。加えて、本明細書におけるこのような実施形態の構成は、本発明の長所及び短所を示すことに関連するものである。本発明の実施形態を詳細に説明したが、本発明の精神及び技術的範囲を超えない範囲で、様々な変更、置き換え、修正がこれになされ得ることに留意すべきである。
【図１】
0005510550.tif 000002
【図２】
0005510550.tif 000003
【図３Ａ】
0005510550.tif 000004
【図３Ｂ】
0005510550.tif 000005
【図３Ｃ】
0005510550.tif 000006
【図４】
0005510550.tif 000007
【図５】
0005510550.tif 000008
【図６】
0005510550.tif 000009
【図７】
0005510550.tif 000010
【図８】
0005510550.tif 000011