JP2014528602A - 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置 - Google Patents

非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置 Download PDF

Info

Publication number
JP2014528602A
JP2014528602A JP2014532506A JP2014532506A JP2014528602A JP 2014528602 A JP2014528602 A JP 2014528602A JP 2014532506 A JP2014532506 A JP 2014532506A JP 2014532506 A JP2014532506 A JP 2014532506A JP 2014528602 A JP2014528602 A JP 2014528602A
Authority
JP
Japan
Prior art keywords
user terminal
server
operating system
image
provisioning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014532506A
Other languages
English (en)
Other versions
JP5940159B2 (ja
Inventor
ビューラー、ピーター
クレール、デイヴィッド
ガルーセス−エリセ、ルイス
グシュヴィント、トーマス
ルーニー、ジョン、ジー
シャーデー、アンドレアス
スコットン、パオロ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014528602A publication Critical patent/JP2014528602A/ja
Application granted granted Critical
Publication of JP5940159B2 publication Critical patent/JP5940159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】非トラステッド・ユーザ端末(4)にサーバ(2)からデータ通信ネットワーク(3)を介してオペレーティング・システム・イメージをプロビジョニングするための方法および装置を提供すること。【解決手段】ポケットUSBデバイスなどのトラステッド・デバイス(5)が、ユーザ端末のブートを制御するためのブートローダ・ロジックと、セキュリティ・データとを含む耐改ざん性ストレージ(9)を有する。トラステッド・デバイス(5)が、非トラステッド・ユーザ端末(4)に接続された際、ユーザ端末は、トラステッド・デバイス上のブートローダ・ロジックを介してブートされる。ブートローダ・ロジックの制御下で、ネットワーク(3)を介してサーバ(2)への接続が確立され、トラステッド・デバイス(5)上のセキュリティ・データを使用してサーバが認証される。この接続を介して、オペレーティング・システムのブート・イメージがサーバ(2)から受け取られる。オペレーティング・システムがユーザ端末(4)において実行されるように、ブート・イメージを使用してオペレーティング・システム・イメージがサーバ(2)からユーザ端末(4)にプロビジョニングされる。【選択図】図3

Description

本発明は、一般に、ユーザ端末へのオペレーティング・システムのプロビジョニングに関する。非トラステッド・ユーザ端末にサーバからデータ通信ネットワークを介してオペレーティング・システム・イメージをプロビジョニングするための方法、装置、およびコンピュータ・プログラムが提供される。
リモート・デスクトップ技術は、ネットワークに接続されたユーザ端末からネットワークを介してユーザがアプリケーションをリモートに実行できるための、広く利用可能な手段である。従来、これは、ユーザがネットワークを介して接続できるサーバにおいて、アプリケーションの複数のインスタンスをサンドボックス上で実行することによって達成されてきた。より最近のシステムでは、個々のユーザが、サーバ・インフラストラクチャ上で実行されるユーザ自身のバーチャル・マシン(VM)にアクセスすることができる。当然ながらこのようなシステムでは、セキュリティが、重要な考慮事項である。この目的で、ユーザ・エンドにおけるリモート・デスクトップ動作を制御するためのクライアント・システムを、当事者にとってトラステッドな専用クライアント・デバイス上に提供することができる。このようなシステムが、http://www.tassacorp.com/white-paper/28に記載されており、その目標は特に、システム・ユーザによってデータが構内からダウンロードおよび除去されるのを防止することである。このシステムでは、専用クライアント・デバイスは、それ自体のクライアント・オペレーティング・システム(動作前にサーバからプリインストールまたはプロビジョニング(ストリーミング)された)を有し、このクライアント・オペレーティング・システムは、ユーザ自身のVMオペレーティング・システム(これ自体はサーバ上で実行される)のリモート・デスクトップ動作のために、リモート・サーバに安全に接続する機能を提供する。仮想デスクトップ環境を提供する別のこのような専用クライアント・デバイスが、http://shop.lenovo.com/us/sitelets/alt-desktop/overviewに記載されている。
リモート・デスクトップの大きな利点は、そのシンプルな管理可能性である。全てのオペレーティング・システム(OS)は、サーバに記憶され、1つの中央位置でバックアップおよびアップグレードされ得る。加えて、上に言及したシステムのようにセキュリティを強化するための専用クライアント・デバイスが提供されない限り、ユーザはどんな任意ユーザ端末も自由に使用することができ、特定のマシンまたは構内に拘束されない。しかし、リモート・デスクトップ・システムは、明瞭な欠点を有する。第1に、うまくスケールしない。すなわち、サーバ・リソース、プロセッサ、メモリ、およびネットワークの必要数量は、ユーザの数に伴って線形に増加する。このインフラストラクチャの代価は、さらに高いレートで増加する。加えて、ユーザ端末はサーバに常に接続されていなければならず、それにより、システムはサーバ停止またはネットワーク停止の影響を受けやすくなり、ユーザはオフラインで作業できなくなる。リモート・デスクトップ解決法に伴う別の根本的な問題は、ユーザ端末上で利用可能な多くのリソースを使用しないことである。
ある代替解決法は、OSをユーザ端末において実行できるように、OSのディスク・イメージをサーバからユーザ端末にプロビジョニングすることである。"OS Streaming Deployment", Clerc, Garces-Erice and Rooney,IPCCC Dec 2010には、OSイメージが端末において完全にインストールされる前にOS動作が開始できるように、ストリーミングによってOSイメージをユーザ端末に展開するためのシステムが記載されている。この場合もやはり、OSが損なわれていないことがユーザに保証されるように、ストリーミング・システムに伴うセキュリティを考慮する必要がある。サーバ上で利用可能なバーチャル・マシンのディスク・イメージを、ユーザ端末上で実行されるハイパーバイザにストリーミングするシステムが知られている。ハイパーバイザは、ストリーミング・プロセス、およびユーザ端末におけるVMの実行を制御する。VMイメージがユーザ端末において完全にインストールされた後は、ユーザはVMをオフラインで実行することができ、イメージに対して加えられた修正は、後日にサーバに返すことができる。Citrix Systems IncorporatedのXenDesktop製品が、ユーザVMをユーザ端末にストリーミングするためのこのようなシステムを提供している(http://www.citrix.com/English/ps2/products/subfeature.asp?contentID=2300411参照)。同様のシステムが、"OS Streaming with Intel vPro",ttp://communities.intel.com/servlet/JiveServlet/download/3629-1-2406/OS%20Streaming%20within%20Intel%20vPro%20technology.pdf.に記載されている。これらのシステムは、ユーザ端末上のリソースを利用するが、ユーザ端末上で実行されるハイパーバイザがトラステッドであることを必要とする。このことは、純粋なリモート・デスクトップ・システムと比較して、このようなシステムの有用性を著しく制限する。というのは、端末のどのユーザも、その端末を全ての後続ユーザに対して損なう可能性があるからである。
リモート・デスクトップ分野の外では、OSのセキュリティを保証する試みは、マシンにインストールするための暗号化済みOSが記憶されたUSB(universal serial bus)ストレージ・デバイスから、ユーザ・マシンをブートすることを含む。このようなUSBドライブ・システムが、http://www.windowsfordevices.com/c/a/News/Spyrus-Secure-Pocket-Drive-gets-patent-Citrix-certification/に記載されている。Systematic Development Group LLCのLOK−ITデバイス(http://www.lok-it.net/)も同様である。USBデバイスからオペレーティング・システムをブートすることはまた、http://en.gentoo-wiki.com/wiki/Booting_encrypted_system_from_USB_stick、およびhttp://linuxconfig.org/secure-online-banking-with-linux-usb-liveにも記載されている。米国特許公開第2010/0287363号A1には、マザーボードにプリインストールされた暗号鍵を使用してOSの妥当性がユーザ・コンピュータによって最初に検証される、別の例が提供されている。
米国特許公開第2010/0287363号A1
http://www.tassacorp.com/white-paper/28 http://shop.lenovo.com/us/sitelets/alt-desktop/overview "OS StreamingDeployment", Clerc, Garces-Erice and Rooney, IPCCC Dec 2010 http://www.citrix.com/English/ps2/products/subfeature.asp?contentID=2300411 "OS Streaming with IntelvPro", ttp://communities.intel.com/servlet/JiveServlet/download/3629-1-2406/OS%20Streaming%20within%20Intel%20vPro%20technology.pdf. http://www.windowsfordevices.com/c/a/News/Spyrus-Secure-Pocket-Drive-gets-patent-Citrix-certification/ http://www.lok-it.net/ http://en.gentoo-wiki.com/wiki/Booting_encrypted_system_from_USB_stick http://linuxconfig.org/secure-online-banking-with-linux-usb-live
本発明は、非トラステッド・ユーザ端末にサーバからOSイメージを安全にプロビジョニングするための非常に効率的なプロセスを提供することを課題とする。
本発明の一態様は、非トラステッド・ユーザ端末にサーバからデータ通信ネットワークを介してオペレーティング・システム・イメージをプロビジョニングする方法を提供する。この方法は、ユーザ端末のブートを制御するためのブートローダ・ロジックとセキュリティ・データとを含む耐改ざん性(tamper−resistant)ストレージを有するトラステッド・デバイスがユーザ端末に接続された際に、
トラステッド・デバイス上の前記ブートローダ・ロジックを介してユーザ端末をブートするステップと、
ブートローダ・ロジックの制御下で、ネットワークを介してサーバへの接続を確立し、トラステッド・デバイス上の前記セキュリティ・データを使用してサーバを認証するステップと、
前記接続を介してサーバからオペレーティング・システムのブート・イメージを受け取るステップと、
オペレーティング・システムがユーザ端末において実行されるように、ブート・イメージを使用してオペレーティング・システム・イメージをサーバからユーザ端末にプロビジョニングするステップとを含む。
本発明の実施形態により、非トラステッド・ユーザ端末にサーバからオペレーティング・システム・イメージを安全にプロビジョニングすることができる。トラステッド・デバイス(好都合には、ポケットUSBデバイスなどの小型ポータブル・デバイス)がユーザに提供され、このデバイスをユーザ端末に接続することができる。このデバイスはシステム・オペレータまたは他のトラステッド・エンティティによってユーザに供給されてよく、このデバイスは、ブートローダ・ロジックとセキュリティ・データとを含む耐改ざん性ストレージを有する。ユーザは、非トラステッドであるが好都合なユーザ端末を選択して、トラステッド・デバイスを接続することができる。接続されると、ユーザ端末は、トラステッド・デバイス上のブートローダ・ロジックを介してブートされる。次いで、ブートローダ・ロジックは、ネットワークを介してサーバへの認証された接続を確立し、必要とされるOSイメージへのアクセスを提供する。このプロセスにおいて、サーバは、トラステッド・デバイスにプリインストールされたセキュリティ・データを使用して認証される。次いで、認証された接続を介してサーバからオペレーティング・システムのブート・イメージが得られ、ブート・イメージを使用して、必要とされるOSイメージがサーバからユーザ端末にプロビジョニングされ、したがって、ユーザ端末においてOSを実行することができる。これにより、非トラステッド端末にネットワークを介してOSイメージを安全にプロビジョニングするための単純明快なシステムが提供される。改ざん防止(tamper−proof)ストレージ中のセキュリティ・データを介して検証されたサーバへの認証された接続は、OSがトラステッド・ソースから得られること、したがってOS自体もユーザにとってトラステッドとなり得ることを保証する。さらに、このシステムによりユーザは、端末がトラステッドであることを必要とせずに、どんな任意ユーザ端末も利用することができ、端末のリソースを活用してOSイメージを実行することができる。ユーザ端末にプリインストールされた、どんなOSまたは他の損なわれている可能性のあるソフトウェアも、システムの動作に必要とされず、したがって、非トラステッド端末の使用に通常なら付きものであるセキュリティ・リスクを回避することができる。このように、トラステッドなOSイメージを、端末の「ベア・メタル」上に、すなわち基本的なマシン・ハードウェアのみを使用して、安全にインストールすることができ、それによりOSのインテグリティを保証することができる。
ユーザ端末にプロビジョニングされるOSイメージは、サーバにおいて維持されるユーザのバーチャル・マシンのOSイメージとすることができる。しかし、ハイパーバイザもまた、述べたプロセスを介して等しく安全にプロビジョニングすることができる。したがって、トラステッド・デバイスからのブート時に、ハイパーバイザのOSイメージである初期OSイメージを端末にプロビジョニングすることができる。次いで、ユーザ端末においてハイパーバイザの制御下でバーチャル・マシンが実行されるように、少なくとも1つのバーチャル・マシン・イメージをサーバからさらにプロビジョニングすることができる。このようにして、ユーザは、端末上で実行される全てのソフトウェア(ハイパーバイザ自体を含む)がサーバから安全にプロビジョニングされた状態で、非トラステッド端末において1つまたは複数のVMを扱うことができる。
ユーザ端末において実行されるようにOSをプロビジョニングすることは、様々な方式で実施することができる。いくつかの基本的な実施形態では、単純に、OSがユーザ端末において動作する前に、OSイメージ全体をダウンロードすることができる。しかし、好ましい実施形態では、ストリーミングによるプロビジョニングを実施し、それにより、ユーザ端末においてOSの動作がより迅速に開始することができる。特に好ましい実施形態では、OSイメージのストリーミング中に、ユーザ端末においてイメージのブロックがローカル・ストレージ(例えばユーザ端末のハード・ディスク)にコピーされ、それにより、オペレーティング・システムのローカル・イメージが築き上げられる。OSの動作において、必要とされるブロックが利用可能ならばそれにローカルにアクセスすることができ、または、利用可能でなければサーバからストリーミングしてローカル・ストレージに追加することができる。動作において修正されたローカルOSイメージのブロックは、好都合なようにネットワークを介してサーバにコピーして返すことができる。この「ストリーミング展開」技法は、OS実行を加速させることができ、最終的にはユーザ端末のオフライン動作を可能にすることができる。特に、OSイメージ・ブロックをコピーすることは、ローカルOSイメージがほぼ完成するまで、すなわち少なくとも、OSがサーバへのプロビジョニング接続から独立して実行できるほど十分に完成するまで、継続することができる。次いでユーザは、サーバから切断して、端末をオフラインで使用することができる。オフライン動作中にローカルOSイメージに加えられた変更は、後の段階でサーバに転送して返すことができる。
いくつかの実施形態では、サーバへの認証された接続は、ユーザ端末を介して、トラステッド・デバイスとサーバとの間で確立することができる。他の実施形態では、この接続は、ユーザ端末とサーバとの間であり、トラステッド・デバイスを介してルーティングされない。セキュリティ強化のために、好ましいプロビジョニング方法は、サーバへの暗号化されたチャネルを確立し、暗号化されたチャネルを介してオペレーティング・システム・イメージをプロビジョニングするステップを含む。この暗号化されたチャネルは、OSブート・イメージが端末に通信される際に経由する最初の認証された接続として確立することができる。しかし、実施を簡略にするためには、暗号化されたチャネルは、ブート・イメージが最初の接続を介して受け取られた後で別個に確立してもよい。これにより、OSイメージ・ブロックは、サーバからの搬送中に暗号化される。ブロックをローカルに記憶することによってローカルOSイメージを築き上げる実施形態では、ブロックをそれらの暗号化された形でローカル・ストレージに記憶することができる。これにより、適切な暗号化解除鍵を有さない無許可の当事者はローカル・ストレージにコピーされたブロックを読み取ることができないことが保証される。最大限のセキュリティのためには、ローカルに書き込まれたブロックの暗号化解除/暗号化を動作中に動的に実施することができる。
特に好ましい実施形態は、サーバとトラステッド・デバイスとの間の安全なデータ通信のために、ユーザ端末を介して、サーバとトラステッド・デバイスとの間で、相互認証されたエンドツーエンドの暗号化済みチャネルを確立することを含む。このチャネルは、前述の、OSイメージをプロビジョニングするための最初の接続または暗号化されたチャネルあるいはその両方とすることができる。しかし、効率的な実装形態では、サーバとトラステッド・デバイスとの間のこのチャネルを、OSプロビジョニング・チャネルとは別個に提供することができ、それにより、トラステッド・デバイスを介してユーザ端末にOSイメージ・ブロックをルーティングする必要はない。サーバとトラステッド・デバイスとの間のこのチャネルは、セキュリティに注意を要するほとんどの通信、例えば、システムの動作において使用される暗号鍵の通信に、使用することができる。例えば、オペレーティング・システム・イメージ・ブロックの暗号化を解除するための鍵を、この安全なチャネルを介してサーバから受け取り、トラステッド・デバイスの安全なストレージに記憶することができる。好ましい実施形態では、この安全なチャネルのセットアップは、ユーザが適切に許可されていることを確認するためのユーザ入力を必要とする。例えば、トラステッド・デバイスのユーザ・インタフェースを介して有効なパスワードもしくはPIN(personal identification number)を入力すること、または、ユーザを識別するスマート・カードをトラステッド・デバイスに挿入することを必要とする。
本発明の第2の態様は、非トラステッド・ユーザ端末にサーバからデータ通信ネットワークを介してオペレーティング・システム・イメージをプロビジョニングするのを制御するためのデバイスを提供する。このデバイスは、デバイスをユーザ端末に接続するための端末インタフェースと、ブートローダ・ロジックおよびセキュリティ・データを含む耐改ざん性ストレージとを備える。ブートローダ・ロジックは、デバイスが端末インタフェースを介してユーザ端末に接続された際に、
ユーザ端末をブートすること、
ネットワークを介してサーバへの接続を確立し、トラステッド・デバイス上の前記セキュリティ・データを使用してサーバを認証すること、
前記接続を介してサーバからオペレーティング・システムのブート・イメージを受け取ること、および、
オペレーティング・システムがユーザ端末において実行されるように、ブート・イメージを使用してオペレーティング・システム・イメージをサーバからユーザ端末にプロビジョニングすることを制御するように適合される。
上に論じたような、ユーザ端末のオフライン使用を可能にするシステムでは、ブートローダ・ロジックはさらに、ユーザ端末のブート時に、オフライン・インジケータがセットされているかどうかチェックするように適合されてよい。オフライン・インジケータがセットされている場合、これは、サーバとの保留セッション中にすでにユーザ端末にプロビジョニングされたローカルOSイメージが、ユーザ端末におけるローカル・ストレージ中で利用可能であることを示す。オフライン・インジケータは、ブートローダ・ロジックからアクセス可能な任意のローカル・ストレージ中で維持されてよいが、ユーザ端末のハード・ディスクの最初にある単純なフラグであることが好都合である。オフライン・インジケータがセットされていることがわかった場合は、次いでブートローダ・ロジックは、ユーザ端末上で実行されるようにローカルOSイメージのブートを制御する。このような、前にプロビジョニングされたローカルOSイメージをブートすることは、ローカル・イメージに対するインテグリティ・チェックをブートローダ・ロジックによって実施するのを条件とすることができる。
本発明の別の態様は、非トラステッド・ユーザ端末にデータ通信ネットワークを介してオペレーティング・システム・イメージをプロビジョニングするための装置を提供する。この装置は、ネットワークを介してオペレーティング・システム・イメージへのアクセスを提供するためのサーバと、デバイスがユーザ端末に接続された際に非トラステッド・ユーザ端末にサーバからオペレーティング・システム・イメージをプロビジョニングするのを制御するための本発明の第2の態様によるデバイスとを備える。
本発明の別の態様は、本発明の第1の態様による方法をコンピュータに実施させるためのプログラム・コード手段を含むコンピュータ・プログラムを提供する。(用語「コンピュータ」は、最も一般的な意味で使用され、コンピュータ・プログラムを実施するためのデータ処理能力を有する任意のデバイス、コンポーネント、またはシステムを含むことは、理解されるであろう。さらに、本発明を具体化するコンピュータ・プログラムは、独立したプログラムを構成してもよく、またはより大きいプログラムの要素であってもよく、コンピュータにロードされるように供給されてよい(例えば、ディスクや電子的伝送などのコンピュータ可読媒体に組み入れられてよい)。コンピュータ・プログラムのプログラム・コード手段は、当該方法を、直接に、あるいは(a)別の言語、コード、もしくは表記法に変換された後と(b)異なる材料形式で複製された後とのいずれかまたは両方で、コンピュータに実施させるように意図された、1組の命令を、任意の言語、コード、または表記法によって任意に表現したものを含んでよい。)
一般に、本明細書で、本発明の一態様の一実施形態に関して特徴が記述される場合、対応する特徴が、適宜、本発明の別の態様の実施形態でも提供されてよい。
次に、本発明の好ましい実施形態を、添付の図面を参照しながら例として述べる。
本発明を具体化するOSプロビジョニング・システムの概略図である。 図1のシステムのトラステッド・デバイスのより詳細な概略図である。 図1のシステムにおけるOSプロビジョニング・プロセスの主要ステップを示す図である。 図1のシステムにおけるOSプロビジョニング・プロセスのより詳細なステップを示す図である。 図4のOSプロビジョニング・プロセスの後続ステップを示す図である。 図4および5のプロセスを介してプロビジョニングされるユーザ端末のアーキテクチャの概略図である。 プロビジョニングされたユーザ端末のオフライン動作におけるステップを示す図である。
図1に、本発明を具体化するOSプロビジョニング・システム1の基本的なコンポーネントを示す。システムはOSサーバ2を含み、OSサーバ2から、データ通信ネットワーク3を介してサーバに接続されたユーザ端末にオペレーティング・システムをプロビジョニングすることができる。サーバ2は、ユーザに代わってOSイメージを維持し、プロビジョニング・プロセスを介してこれらのイメージへのアクセスを提供する。この例では、サーバ2によってプロビジョニングできるOSイメージは、全てのユーザによって一般に使用されるハイパーバイザと、個々のシステム・ユーザに特有である1組のバーチャル・マシンとを含む。サーバ2は、図では単一のブロックとして示されているが、一般には、述べたOSプロビジョニング機能を提供するサーバ・システムの、1つまたは複数のマシンを含み得る。ネットワーク3は、一般に、1つまたは複数のコンポーネント・ネットワークまたはインターネットワークあるいはその両方を含み得る。図では、単一のユーザ端末4がネットワーク3に接続されるのが示されている。ユーザ端末4は、任意の汎用コンピュータ・デバイス、例えば普通のユーザ・コンピュータ(デスクトップ、ラップトップ、PDA(パーソナル・ディジタル・アシスタント)、携帯電話機など)とすることができる。特に、端末4は、ユーザによってもサーバ2のオペレータによってもトラステッドな必要はない。端末4のプロビジョニングは、トラステッド・デバイス5によって制御され、トラステッド・デバイス5は、システム・オペレータによってユーザに供給されたものとすることができ、端末4に接続され得る。トラステッド・デバイス5については様々なフォームファクタを想定することができるが、このデバイスは、ポケット・デバイス、すなわち、ユーザのポケットに入れて容易に持ち運べるサイズの小型ポータブル・デバイスであることが最も好都合である。この好ましい実施形態では、デバイス5は、図2により詳細に示すようなポケットUSBストレージ・デバイスである。
図2は、トラステッド・デバイス5の主なコンポーネントを示す概略ブロック図である。デバイスは、デバイスをユーザ端末4に接続するための端末インタフェース(I/F)(ここではUSBインタフェース6)を有する。デバイスはまた、デバイス・ユーザとの対話のためのユーザ・インタフェース7を有する。この例におけるユーザ・インタフェース7は、表示装置および基本的なキー入力機構を備え、それにより、動作中に情報をユーザに対して表示することができ、ユーザは応答や命令などをデバイスに入力することができる。デバイス5は、デバイスの動作全般を制御するための制御ロジック8を備える。制御ロジック8は、安全な(耐改ざん性)ストレージ9を備え、ストレージ9は、ブートローダ・プログラム・ロジックおよびセキュリティ・データを含む。ブートローダ・ロジック(または単に「ブートローダ」)は、後で詳細に述べる機能を実施するためのプログラム・コード(および任意の関連データ)を含む。ここでのセキュリティ・データは、サーバおよびユーザの認証に使用される暗号証明書と、デバイス5の特定ユーザに割り当てられた暗号公開鍵/秘密鍵の対の秘密鍵(シークレット・キー)skとを含む。制御ロジック8は、ハードウェアとソフトウェアの組合せによって実現することができ、安全なストレージ9は、内容が勝手にいじられるのを阻止するために、任意の好都合な方式で改ざんから物理的に保護される。例えば、ストレージ9は、1つまたは複数の自己破壊型データ・コンテナによって具体化されてよく、したがって、改ざんされると、破壊されるかさもなければデバイスを使用不可能にする。または、制御ロジック8は、耐改ざん性エポキシを使用してデバイス5に埋め込まれた安全なチップとして実現することができる。あるいは、この両方として実現することができる。
トラステッド・デバイス5中のブートローダ・ロジックは、システム1におけるOSプロビジョニング・プロセスの実施を制御するための機能を提供する。ブートローダ・ロジックは一般に、述べた機能を実施するための1つまたは複数のブートローダ・コンポーネント・モジュールを備えてよい。この特定の例では、ブートローダは、マスタ・ブート・レコード(MBR)、ミニブートローダ、およびネットワーク・ブートローダを備える。これらのコンポーネントの動作を、まずシステム1における基本的なOSプロビジョニング・プロセスについて述べる。
図3の流れ図は、このプロセスの主要ステップを示すOSプロビジョニング動作の概観を示している。動作は、ユーザが任意のユーザ端末4を選択して、トラステッド・デバイス5を端末のUSBポートに接続したときに開始する。これは図のステップ20で表される。ステップ21で、ユーザは、端末マシンをオンに切り替える。端末4のファームウェアがUSBストレージを自動的にブートオフするように設定されていてよく(例えば、利用可能な場合の好ましいオプションとして)、または、ユーザは、電源投入時に端末においてこのオプションを通常の方式で選択することができる。安全なストレージ9の、端末ファームウェアから見える部分が、ブート可能にイネーブルにされ、前述のブートローダ・コンポーネントをブート可能パーティション内部に含む。したがって、ステップ22で、端末は、トラステッド・デバイスからブートし、ブートローダ・コンポーネントは、ブートのチェーンを制御して、ついにはネットワーク・ブートローダが開始される。ステップ23で、ネットワーク・ブートローダは、ネットワーク3を介してOSサーバ2に(例えばOSサーバ2の最初のブート・サーバに)接続する。ステップ24で、ネットワーク・ブートローダは、安全なストレージ9のセキュリティ・データに記憶された適切なサーバ証明書(例えば最初のブート・サーバに対する証明書)にアクセスしてサーバを認証し、サーバと安全なHTTPS(Hypertext Transfer Protocol Secure)接続を確立する。ステップ25で、端末にプロビジョニングされることになるOSのブート・イメージが、HTTPS接続を介してサーバから受け取られる。特に、ネットワーク・ブートローダは、安全な接続を介して、(暗号化された)ブート・イメージをサーバからコピーする。この事前サーバ認証は、受け取ったブート・イメージが信頼できるものであることを保証する。このブート・イメージの例については後述するが、このブート・イメージは、プロビジョニング環境を確立するための必要最小限の内容を少なくとも含む。ステップ26で、ネットワーク・ブートローダは、ブート・イメージを使用して、必要とされるOSイメージをユーザ端末4にプロビジョニングする。特に、ブート・イメージを使用してOSプロビジョニング環境がセットアップされ、この環境で、端末マシン上で実行されるようにOSイメージがOSサーバ2からプロビジョニングされる。このプロセスの特定の例については後で詳述する。このようにしてOSイメージがトラステッド・サーバから得られるので、OSのインテグリティを保証することができる。OSイメージは、ステップ26で、必要とされる時間だけ長くプロビジョニングされ(後でさらに論じる)、その後、図3の基本的なプロビジョニング・プロセスは完了する。
この好ましい実施形態では、上述した基本的なプロセスを使用して、ハイパーバイザと、当該ユーザからアクセス可能な1つまたは複数のバーチャル・マシン・イメージとの両方がユーザ端末4にプロビジョニングされる。次いで、ハイパーバイザの制御下で、バーチャル・マシン・イメージをユーザ端末において実行することができる。プロビジョニングは、ストリーミングによって、より詳しくはストリーミング展開によって実施され、これにより、サーバからストリーミングされたイメージのブロックがユーザ端末におけるローカル・ストレージにコピーされ、それにより当該OSのローカル・イメージが築き上げられる。最初のハイパーバイザ・プロビジョニングのためのこのプロセスの主要ステップを、図4に関して以下に述べる。
図4に、OSサーバ2(図の左側に示す)、ユーザ端末4(図の中央右)、およびトラステッド・デバイス5(図の右側)によって実施される、ハイパーバイザのプロビジョニングにおける連続的なステップを示す。この図のステップ(a)は、概して図3のステップ20〜22に対応し、これにより、ユーザ端末4(最初はその「ベア・メタル」状態にある)が、トラステッド・デバイス5上のブートローダ・ロジックを介してブートされる。ステップ(b)で、ネットワーク・ブートローダによって、サーバ2への認証された接続が確立され、これは図3のステップ23および24に対応する。ステップ(c)は、図3のステップ25に対応し、これにより、ハイパーバイザの暗号化済みブート・イメージがサーバ2から受け取られる。ブート・イメージは、ハイパーバイザのカーネルと、ハイパーバイザの後続プロビジョニングを容易にするためのプログラム・ロジックを含む初期RAMディスクとを含む。この例では、RAMディスクは、後述する動作におけるネットワーク接続性に必要とされるデバイス・ドライバと、サーバからのハイパーバイザ・イメージのストリーミング展開を制御するためのストリーミング・ロジックを提供するストリーミング・デバイス・ドライバ(以下「ストリーミング・ドライバ」)と、ストリーミングされたハイパーバイザ・イメージ・ブロックの暗号化/暗号化解除のためのプログラム・ロジックを提供する暗号化モジュールと、トラステッド・デバイスについてのプロキシ・アプリケーションとを含む。次に、ステップ(d)で、ネットワーク・ブートローダは、ハイパーバイザ・ブート・イメージの暗号化を解除し、これを端末のメモリ・ディスクにインストールし、次いでこれをブートする。したがって、ユーザ端末上で、RAMディスクが開始され、ハイパーバイザ(「hyp」)カーネルがブートされる。加えて、ネットワーク・ブートローダは、ユーザ端末4上で、トラステッド・デバイス5についてのプロキシ・アプリケーションを開始する。このプロキシは、プロセスの後続ステップによって必要とされる暗号化/暗号化解除のために、トラステッド・デバイスを介してサーバ2から受け取られたかまたは端末4によって送られた、必要とされるパケットのルーティングを可能にする。このようなプロキシ・アプリケーションは、周知であり、適切な実装形態は当業者には容易に明らかであろう。
プロキシが開始されると、プロセスのステップ(e)で、トラステッド・デバイス5の制御ロジック8は、プロキシ・アプリケーションの助けによってサーバとトラステッド・デバイスとの間で安全にデータを通信するために、ユーザ端末4を介して、OSサーバ2とトラステッド・デバイス5との間で、相互認証されたエンドツーエンドの暗号化済みチャネルを確立する。この安全なチャネルは、この例では、TLS(Transport Layer Security)プロトコルを使用する。TLSセッションの確立において、OSサーバは、安全なストレージ9からの適切な証明書(すなわち、現在のチャネルが確立される対象となるOSサーバ2における特定のサーバ・マシンに対する証明書であり、このサーバ・マシンは、上のステップ(b)で認証されたサーバ・マシンとは異なる可能性がある)を使用して、制御ロジック8によって認証される。加えて、制御ロジック8は、安全なストレージ9中に保持されるユーザ証明書を用いて、トラステッド・デバイスをサーバ2に対して認証する。この認証ステップの一部として、ユーザは、デバイス・ユーザ・インタフェース7を介して適切なPINまたはパスワードを入力することによって自分のデバイス使用権限を証明する必要があるのが理想的である。安全なTLSチャネルが確立されると、トラステッド・デバイス5は、サーバからの暗号化された通信を、安全なストレージ9中に保持される秘密鍵skを使用して暗号化解除することができる。図4のステップ(f)で、この安全なチャネルが制御ロジック8によって使用されて、続いて起こるプロセスにおいてストリーミングされることになるハイパーバイザ・イメージ・ブロックの暗号化解除のための鍵が得られる。このハイパーバイザ・キーは、安全なストレージ9に記憶され、後続の動作で必要とされるのに応じて制御ロジック8によって利用可能にされる。
図4のステップ(g)で、ネットワーク・ブートローダは、上のステップ(d)で受け取ったハイパーバイザ暗号化モジュールおよびストリーミング・ドライバをインストールする。次に、ステップ(h)で、ネットワーク・ブートローダは、iSCSI(internet Small Computer System Interface)プロトコルを使用して、OSサーバへのさらに別の暗号化されたチャネルを確立する。次いで、このチャネルは、ステップ(i)でハイパーバイザ・ストリーミング・ドライバによって使用されて、ハイパーバイザの暗号化済みイメージ・ブロックがOSサーバ2からプロビジョニングされる。このチャネル上のパケットは、トラステッド・デバイス5を介してルーティングされないことに留意されたい。しかし、このチャネルを介してストリーミングされるハイパーバイザ・イメージ・ブロックは、ステップ(f)でTLSチャネルを介してトラステッド・デバイスに送られた鍵に従って暗号化されている。したがって、全てのパケットがデバイス5を介してルーティングされる場合に達成可能であろう速度よりも速い動作を可能にしながらも、セキュリティが保証される。ストリーミング・ドライバは、サーバ2から受け取られたハイパーバイザ・イメージ・ブロックを、ユーザ端末4におけるローカル・ストレージ(この例ではハード・ディスク)に記憶する。このようにして、ストリーミングが進行するにつれてハイパーバイザのローカル・イメージが徐々に築き上げられる。後でさらに論じるように、このストリーミング展開プロセスを、端末が「完全にプロビジョニングされる」まで、すなわちローカル・イメージが実質的に完成されるまで、継続することができる。いずれの場合も、図4のプロセスのステップ(j)で、ネットワーク・ブートローダは、ローカル・ファイル・システムをRAMディスクからハード・ディスクに変更する。次いで、ハイパーバイザ・プロビジョニング・プロセスは完全に確立され、ハイパーバイザは、ストリーミング・ドライバの制御下でユーザ端末において実行される準備が整う。
ハイパーバイザが実行中になれば、1つまたは複数のユーザVMをユーザ端末にさらにプロビジョニングすることができる。ここでの基本的なプロセスを、図4のプロセスの続きとして図5に示す。したがって、図5のステップ(k)で、ハイパーバイザは、OSサーバ2における、現在のユーザにアクセス許可されているバーチャル・マシンのリストを得る。ハイパーバイザは、トラステッド・デバイス5からこのVMリストを得るが、トラステッド・デバイス5は、このVMリストを、上記のステップ(e)で確立された安全なTLSチャネルを介してOSサーバから受け取る。VMリストは、ハイパーバイザのウィンドウ・マネージャを使用して、端末4においてユーザに提示することができる。ステップ(l)で、ユーザは、これらのVMイメージのうちでブートすべき1つまたは複数を選び、この選択は、ハイパーバイザによって、トラステッド・デバイス5の制御ロジック8に渡される。ステップ(m)で、制御ロジック8は、選択された各VMに対するセッション・キーを、安全なTLSチャネルを介してOSサーバ2から得る。これらのセッション・キーは、続いて起こる動作においてそれぞれのVMのイメージ・ブロックを暗号化解除するのに必要とされる。セッション・キーは、安全なストレージ9に記憶され、VM動作を制御するためにハイパーバイザに利用可能にされる。プロビジョニングされることになるバーチャル・マシンに関するメタ・データ、例えばOSタイプ、ハードウェア仕様、メモリ要件などもまた、セッション・キーと共に得られ、制御ロジック8によってハイパーバイザに供給される。各ユーザVMにつき、プロセスのステップ(n)で、ハイパーバイザは、対応するセッション・キーを介したVMイメージ・ブロックの暗号化/暗号化解除のための関連する暗号化モジュールと共に、ストリーミング・ドライバの異なるインスタンスを作成およびインストールする。ステップ(o)で、次いでハイパーバイザは、iSCSIチャネルを介してOSサーバから暗号化済みVMイメージ・ブロックのストリーミングを開始し、ユーザ端末におけるVM実行を可能にする。この場合もやはり、ストリーミング展開は、各VMイメージにつき、ハイパーバイザによってセットアップされた関連するストリーミング・ドライバの制御下で実施され、それにより、端末4においてローカルVMイメージが徐々に築き上げられる。前と同様、これは、ローカルVMイメージが完成されて、完全にプロビジョニングされたマシンが得られるまで、継続することができる。
図6に、上記のプロビジョニング・プロセスを介して得られる仮想システム・アーキテクチャの簡略化された概略図を示す。この例では、VM1およびVM2として符号が付けられた2つのユーザVMが、ハイパーバイザの制御下で実行されるようにユーザ端末にプロビジョニングされると仮定する。ハイパーバイザの機能全体は、影付きブロック30で示される。端末ハード・ディスクは31で表される。物理ディスク31は、第1のパーティションがハイパーバイザに予約され第2のパーティションがユーザVMのセットに予約されるように、区分化される。ハイパーバイザのルート・デバイスは、そのストリーミング・ドライバである。このストリーミング・ドライバは、第1のパーティションへのアクセスを制御し、必要に応じて全てのブロックがローカルにコピーされるのを確実にする。特に、ドライバは、利用可能ならばブロックをローカルに取り出し、または、利用可能でなければブロックをサーバからストリーミングしてローカルにコピーする(ストリーミング・ドライバは、例えば上に言及したIPCCC文書に記載のものに基づくことができ、適切な実装形態は、本明細書における動作の記述から当業者には容易に明らかであろう)。ブロックは、33で示されるハイパーバイザ暗号化モジュールを介して、暗号化された形で記憶され、暗号化されない形で、32で示されるコア・ハイパーバイザ・システムに利用可能にされる。ハイパーバイザ暗号化モジュールは、図4のステップ(f)で得られたハイパーバイザ・キーを使用して、ハイパーバイザ・ブロックの動的な暗号化/暗号化解除を実施する。個々のVMの構成は同様であり、関連するストリーミング・ドライバ・インスタンスが、バーチャル・マシンのディスクとして使用される。各VMのブロックは、そのVM自体のOSに加えて、このOS上で実行されるユーザ・アプリケーションを含み、関連する暗号化モジュールによって、このVMに対するセッション・キーを使用して動的に暗号化/暗号化解除される。したがって、ストリーミング・プロセスは、VM内部で実行されるOSからはトランスペアレントであり、ストリーミングはハイパーバイザ30中で起こる。
ローカルに修正されたイメージ・ブロックは、すぐに、またはいずれか好都合な後の時点で(例えばVMセッション中に定期的に)、ハイパーバイザによってネットワークを介してサーバ2にコピーして返すことができる。VMセッションは、トラステッド・デバイス5が端末4に接続されている間だけ、開いた状態に維持される。トラステッド・デバイスが取り外された場合、ハイパーバイザは、単にセッションをフリーズさせてそれ以上の入力を遮るか、またはセッションを閉じることができる。セッションを閉じることは、書き込まれていないデータをサーバに書き戻し、全てのiSCSIセッションを終了し、VMを閉鎖し、次いでハイパーバイザを終了すること含む。ディスク上のデータは、セッション・キーを介してのみ読み取ることができ、セッション・キーは、セッションの除去に伴って失われる。したがって、ディスク上の全てのデータは、読取不可能になる。セッションはまた、マシンをオフにすることによって打ち切ることもでき、その時点でサーバは、打ち切られたセッションを、クローズドとしてマークすることになる。この場合もやはり、セッション・キーが失われたため、ディスク上のデータは決して読み取ることができない。
ハイパーバイザおよび必要なVMのローカル・イメージによってマシンが完全にプロビジョニングされたと仮定すると、このことは、後続の「オフライン」動作、すなわちサーバ2へのストリーミング接続から独立した実行のための、基礎を提供する。特に、ユーザは、展開を完了するようハイパーバイザにまず通知することによって、オフライン・モードに切り替えることができる。ハイパーバイザは、そのルート・ディスク全体を読み取って、全てのブロックがローカルに利用可能であることを確実にし、全ての開いているバーチャル・マシンに対してこれと同じ動作を実施する。展開を完了すると、ハイパーバイザはまた、安全なTLSチャネルを介してサーバ2からブート・イメージをダウンロードし、これをローカル・ディスクのブート・パーティションに書き込む。このブート・イメージは周知であり、そのサイズおよびシグネチャ(ハッシュ)は、トラステッド・デバイス5上のミニブートローダに知られている。セッション・キーは、デバイス5の安全なストレージ9中で保持され、ハイパーバイザは、オフライン・インジケータ(ここでは、ローカル・ディスクの最初にある単純なフラグ)をセットすることによってパーティションをマークする。
続いてオフライン・モードでセッションを再アクティブ化するのを、図7の各ステップによって示す。ここで、図の左側の垂線は、ユーザ端末4のローカル・ディスクを表し、中央の垂線は、完全にプロビジョニングされたユーザ端末を表す。この図のステップ(a)で示すように、次のブート時、ミニブートローダは、ディスクの最初にあるオフライン・フラグをチェックし、このフラグがセットされていると識別し、したがってブロックのセット全体がローカルに利用可能であると見なす。ステップ(b)で、ミニブートローダは、ブート・イメージをブート・パーティションからメモリにロードし、ステップ(c)で、ローカル・イメージに対するインテグリティ・チェックを実施する。特に、ミニブートローダは、ブート・イメージの暗号ハッシュを計算し、これを既知の値と比較する。このようにしてローカル・イメージのインテグリティが確認された場合にのみ、ユーザはオフライン・モードでセッションを再開することができる。次いで、ミニブートローダによってメモリにロードされた内容から、ハイパーバイザがブートする。(オンラインの場合とは異なり、このブート・イメージは、ハイパーバイザのカーネルおよび初期RAMディスクで構成されてよく、ストリーミング・インフラストラクチャにアクセスするための修正は必要とされないことに留意されたい。マシン上の全ての内容は、それらの起源(トラステッド・インフラストラクチャから前にストリーミングされた)、またはそれらの状態(トラステッド・デバイスから入手可能な鍵で暗号化された)、またはそれらのインテグリティ(暗号化されていないデータはディスク上のブート・イメージのみであり、このブート・イメージは、説明したようにブート時に検証される)、あるいはこれらの全てのおかげで、信頼される。)したがって、ステップ(d)でRAMディスクが開始され、ハイパーバイザ・カーネルがユーザ端末上でブートされる。加えて、ユーザ端末4上でミニブートローダがプロキシを起動する。ステップ(e)で、ミニブートローダは、プロキシを介して、トラステッド・デバイス5からハイパーバイザ・キーを取り出し、ステップ(f)で、ハイパーバイザ暗号化モジュールおよびストリーミング・ドライバをインストールする。ステップ(g)で、ミニブートローダは、ローカル・ファイル・システムをRAMディスクからハード・ディスクに変更する。次いで、ハイパーバイザは、ステップ(h)に示されるようにローカル・ディスクからアクセスされることが可能であり、ストリーミング・ドライバの制御下で実行される準備が整う。ステップ(i)で、ハイパーバイザは、トラステッド・デバイス5から、保留VMに対するセッション・キーを取り出す。各ユーザVMにつき、ステップ(j)で、ハイパーバイザは、関連するストリーミング・ドライバおよび暗号化モジュールをインストールする。次いで、VMは、ステップ(k)で示されるようにローカル・ディスクからアクセスされることが可能であり、回復されたセッション・キーを使用してユーザ端末において実行される準備が整う。
以上により、非トラステッド・ユーザ端末にサーバからOSイメージを安全にプロビジョニングするための非常に効率的なプロセスが提供されることがわかるであろう。デバイス5はトラステッド・ソースを起源とし、安全なストレージ9の内容はユーザまたは端末マシンによって修正できないので、デバイス5は、システムの当事者にとってトラステッドにすることができる。端末マシンにプリインストールされた(損なわれている可能性のある)どんなソフトウェアも、プロビジョニング動作に必要とされない。ハイパーバイザ自体を含めた、端末マシン上で実行される全てのソフトウェアは、サーバから安全にプロビジョニングされる。したがって、プロビジョニング動作をサポートするように設計された専用クライアント・デバイスとは対照的に、ユーザ端末は、システムの当事者にとって非トラステッドな任意のいかなるコンピューティング・デバイスであってもよい。このように、ユーザは、出所、用途、場所などによって制限されることなく、操作する任意の好都合な端末を選択することができ、ユーザのVMを実行するのに端末のローカル・リソースを活用することができる。
前述の例示的な実施形態に多くの変更および修正を加えることができることは理解されるであろう。例として、図4および5で使用される種々のチャネルのうちの1つまたは複数に関連する機能を、他の実施形態で組み合わせることもできる。特に、いくつかの実施形態では、サーバへの最初の認証された接続は、ユーザ端末を介して、トラステッド・デバイスとサーバとの間で確立されてもよい。また、ローカルOSイメージ・ブロックは、望むなら、後続のオフライン・ブートのために端末ハード・ディスク以外のローカル・ストレージ(例えば、USBキー、外部SSD(solid−state drive)、SD(Secure Digital)カードなど)に記憶されてもよい。このようなポータブル・ディスクは、望むなら、後で別の端末において使用することができる。別の例として、いくつかの実施形態では、ハイパーバイザ・キーまたはVMセッション・キーあるいはその両方は、OSサーバによって動的に発行されるのではなく、トラステッド・デバイス5の安全なストレージに事前に記憶されていてもよい。単一のVMセッション・キーが、全てのユーザのVMに対して提供されてもよい。トラステッド・デバイス5の、他のフォームファクタ、例えばUSBインタフェース以外の端末インタフェースを有するフォームファクタも、当然ながら想定することができる。いくつかの実施形態では、ユーザ認証は、トラステッド・デバイスに挿入された、ユーザを識別するスマート・カードを介して実施することができる。他の多くの変更および修正も、本発明の範囲を逸脱することなく、述べた実施形態に加えることができる。

Claims (21)

  1. 非トラステッド・ユーザ端末(4)にサーバ(2)からデータ通信ネットワーク(3)を介してオペレーティング・システム・イメージをプロビジョニングする方法であって、ユーザ端末のブートを制御するためのブートローダ・ロジックとセキュリティ・データとを含む耐改ざん性ストレージ(9)を有するトラステッド・デバイス(5)が前記ユーザ端末に接続された際に、
    前記トラステッド・デバイス(5)上の前記ブートローダ・ロジックを介して前記ユーザ端末(4)をブートするステップと、
    前記ブートローダ・ロジックの制御下で、前記ネットワーク(3)を介して前記サーバ(2)への接続を確立し、前記トラステッド・デバイス(5)上の前記セキュリティ・データを使用して前記サーバを認証するステップと、
    前記接続を介して前記サーバ(2)からオペレーティング・システムのブート・イメージを受け取るステップと、
    前記オペレーティング・システムが前記ユーザ端末(4)において実行されるように、前記ブート・イメージを使用してオペレーティング・システム・イメージを前記サーバ(2)から前記ユーザ端末(4)にプロビジョニングするステップとを含む方法。
  2. 前記オペレーティング・システムがハイパーバイザである、請求項1に記載の方法。
  3. 前記ユーザ端末(4)において前記ハイパーバイザの制御下でバーチャル・マシンが実行されるように、少なくとも1つのバーチャル・マシン・イメージを前記サーバ(2)から前記ユーザ端末(4)にさらにプロビジョニングするステップを含む、請求項2に記載の方法。
  4. 前記ブート・イメージが、前記オペレーティング・システムのカーネルと、前記オペレーティング・システムのプロビジョニングを容易にするための初期RAMディスクとを含み、前記方法が、前記ブート・イメージを受け取った際に、前記ユーザ端末(4)上で前記RAMディスクを開始し前記オペレーティング・システム・カーネルをブートするステップを含む、請求項1ないし3のいずれかに記載の方法。
  5. 前記オペレーティング・システム・イメージがストリーミングによって前記サーバ(2)から前記ユーザ端末(4)にプロビジョニングされる、請求項1ないし4のいずれかに記載の方法。
  6. 前記オペレーティング・システム・イメージのストリーミング中に、前記ユーザ端末(4)において前記イメージのブロックをローカル・ストレージにコピーし、それにより前記オペレーティング・システムのローカル・イメージを築き上げるステップを含む、請求項5に記載の方法。
  7. 前記ブロックを前記ユーザ端末(4)のハード・ディスクにコピーするステップを含む、請求項6に記載の方法。
  8. 前記ブロックをコピーすることが、前記ローカル・オペレーティング・システム・イメージがほぼ完成するまで継続する、請求項6または7に記載の方法。
  9. 前記ユーザ端末(4)において前記オペレーティング・システムの動作中に修正された、前記ローカル・オペレーティング・システム・イメージのブロックを、前記ネットワーク(3)を介して前記サーバ(2)にコピーして返すステップを含む、請求項6ないし8のいずれか一項に記載の方法。
  10. 前記接続が、前記ユーザ端末(4)を介して、前記トラステッド・デバイス(5)と前記サーバ(2)との間で確立される、請求項1ないし9のいずれかに記載の方法。
  11. 前記サーバ(2)への暗号化されたチャネルを確立し、前記暗号化されたチャネルを介して前記オペレーティング・システム・イメージをプロビジョニングするステップを含む、請求項1ないし10のいずれかに記載の方法。
  12. 前記ブロックを暗号化された形で前記ローカル・ストレージに記憶するステップを含む、請求項11、および請求項6ないし9のいずれか一項に記載の方法。
  13. 前記サーバ(2)と前記トラステッド・デバイス(5)との間の安全なデータ通信のために、前記ユーザ端末(4)を介して、前記サーバ(2)と前記トラステッド・デバイス(5)との間で、相互認証されたエンドツーエンドの暗号化済みチャネルを確立するステップを含む、請求項1ないし12のいずれかに記載の方法。
  14. 前記オペレーティング・システム・イメージを暗号化解除するための暗号鍵を、前記相互認証されたチャネルを介して前記サーバ(2)から受け取り、前記鍵を前記トラステッド・デバイス(5)の前記安全なストレージ(9)に記憶するステップを含む、請求項11および13に記載の方法。
  15. 請求項1ないし14のいずれかに記載の方法をコンピュータに実施させるためのプログラム・コード手段を含む、コンピュータ・プログラム。
  16. 非トラステッド・ユーザ端末(4)にサーバ(2)からデータ通信ネットワーク(3)を介してオペレーティング・システム・イメージをプロビジョニングするのを制御するためのデバイス(5)であって、前記デバイス(5)をユーザ端末(4)に接続するための端末インタフェース(7)と、ブートローダ・ロジックおよびセキュリティ・データを含む耐改ざん性ストレージ(9)とを備え、前記デバイスが前記端末インタフェース(7)を介して前記ユーザ端末に接続された際に、前記ブートローダ・ロジックが、
    前記ユーザ端末(4)をブートすること、
    前記ネットワーク(3)を介して前記サーバ(2)への接続を確立し、前記トラステッド・デバイス(5)上の前記セキュリティ・データを使用して前記サーバを認証すること、
    前記接続を介して前記サーバ(2)からオペレーティング・システムのブート・イメージを受け取ること、および、
    前記オペレーティング・システムが前記ユーザ端末(4)において実行されるように、前記ブート・イメージを使用してオペレーティング・システム・イメージを前記サーバ(2)から前記ユーザ端末(4)にプロビジョニングすることを制御するように適合された、デバイス。
  17. 前記ブートローダ・ロジックが、前記ユーザ端末(4)のブート時に、すでに前記サーバ(2)から前記ユーザ端末にプロビジョニングされたローカル・オペレーティング・システム・イメージが前記ユーザ端末におけるローカル・ストレージ中で利用可能であることを示すオフライン・インジケータがセットされているかどうかチェックし、セットされている場合に、前記ユーザ端末(4)上で実行されるように前記ローカル・オペレーティング・システム・イメージのブートを制御するようにさらに適合された、請求項16に記載のデバイス。
  18. 前記ブートローダ・ロジックが、前記ローカル・イメージのインテグリティをチェックし、前記インテグリティが確認されたことを条件として前記ローカル・イメージのブートを制御するようにさらに適合された、請求項17に記載のデバイス。
  19. 前記デバイスのユーザと通信するためのユーザ・インタフェース(6)を備える、請求項16ないし18のいずれか一項に記載のデバイス。
  20. 前記デバイス(5)がポケットUSBデバイスである、請求項16ないし19のいずれか一項に記載のデバイス。
  21. 非トラステッド・ユーザ端末(4)にデータ通信ネットワーク(3)を介してオペレーティング・システム・イメージをプロビジョニングするための装置であって、
    前記ネットワーク(3)を介して前記オペレーティング・システム・イメージへのアクセスを提供するためのサーバ(2)と、
    デバイス(5)が非トラステッド・ユーザ端末(4)に接続された際に前記サーバ(2)から前記ユーザ端末(4)に前記オペレーティング・システム・イメージをプロビジョニングするのを制御するための請求項16ないし20のいずれか一項に記載のデバイス(5)とを備える装置。
JP2014532506A 2011-09-30 2012-07-04 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置 Active JP5940159B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11183535.1 2011-09-30
EP11183535 2011-09-30
PCT/IB2012/053394 WO2013046068A1 (en) 2011-09-30 2012-07-04 Provisioning of operating systems to user terminals

Publications (2)

Publication Number Publication Date
JP2014528602A true JP2014528602A (ja) 2014-10-27
JP5940159B2 JP5940159B2 (ja) 2016-06-29

Family

ID=47994352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014532506A Active JP5940159B2 (ja) 2011-09-30 2012-07-04 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置

Country Status (5)

Country Link
US (1) US9904557B2 (ja)
EP (1) EP2761523B1 (ja)
JP (1) JP5940159B2 (ja)
CN (1) CN103843006B (ja)
WO (1) WO2013046068A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175112A (ja) * 2012-02-27 2013-09-05 Hitachi Ltd 認証装置、および、認証方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084566A1 (en) * 2010-10-04 2012-04-05 Edward Chin Methods and systems for providing and controlling cryptographic secure communications across unsecured networks
US11030305B2 (en) 2010-10-04 2021-06-08 Unisys Corporation Virtual relay device for providing a secure connection to a remote device
GB201313167D0 (en) * 2013-07-24 2013-09-04 Ibm Automatic rotation of display contents of a handheld companion device rigidly attached to a handheld mobile device
US9319380B2 (en) * 2014-03-20 2016-04-19 Bitdefender IPR Management Ltd. Below-OS security solution for distributed network endpoints
US20150288659A1 (en) * 2014-04-03 2015-10-08 Bitdefender IPR Management Ltd. Systems and Methods for Mutual Integrity Attestation Between A Network Endpoint And A Network Appliance
US9258117B1 (en) 2014-06-26 2016-02-09 Amazon Technologies, Inc. Mutual authentication with symmetric secrets and signatures
US10586047B2 (en) * 2014-06-30 2020-03-10 Hewlett-Packard Development Company, L.P. Securely sending a complete initialization package
CN106537366B (zh) * 2014-06-30 2019-07-23 惠普发展公司,有限责任合伙企业 全虚拟机功能
US11283866B2 (en) * 2014-07-07 2022-03-22 Citrix Systems, Inc. Providing remote access to applications through interface hooks
US11310312B2 (en) 2014-07-07 2022-04-19 Citrix Systems, Inc. Peer to peer remote application discovery
US20170139777A1 (en) * 2014-07-11 2017-05-18 Pcms Holdings, Inc. Systems and methods for virtualization based secure device recovery
US10142301B1 (en) * 2014-09-17 2018-11-27 Amazon Technologies, Inc. Encrypted data delivery without intervening decryption
DE102014220616A1 (de) * 2014-10-10 2016-04-14 Bundesdruckerei Gmbh Verfahren zum Laden von ausführbaren Programminstruktionen in eine Chipkarte im Wirkbetrieb
US9921819B2 (en) 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
US10867047B2 (en) * 2015-03-11 2020-12-15 Hewlett-Packard Development Company, L.P. Booting user devices to custom operating system (OS) images
US10169061B2 (en) 2015-05-06 2019-01-01 Ford Global Technologies, Llc Scalable and flexible operating system platform
US10122689B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Load balancing with handshake offload
US10122692B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
CN105338077A (zh) * 2015-10-23 2016-02-17 浪潮(北京)电子信息产业有限公司 一种智能家居管理方法及终端
JP6679303B2 (ja) * 2015-12-25 2020-04-15 Dynabook株式会社 電子機器、方法及びプログラム
US10306472B2 (en) * 2016-01-28 2019-05-28 Cochlear Limited Secure authorization in an implantable medical device system
US10425229B2 (en) * 2016-02-12 2019-09-24 Microsoft Technology Licensing, Llc Secure provisioning of operating systems
US10313121B2 (en) * 2016-06-30 2019-06-04 Microsoft Technology Licensing, Llc Maintaining operating system secrets across resets
US10261920B2 (en) * 2016-09-16 2019-04-16 The United States of America as presented by the Secretary of the Navy Static image RAM drive
US10545776B1 (en) * 2016-09-27 2020-01-28 Amazon Technologies, Inc. Throughput and latency optimized volume initialization
US10069633B2 (en) 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices
US10169563B2 (en) * 2017-01-27 2019-01-01 International Business Machines Corporation Encryption authorization dongle having volatile memory
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10635819B2 (en) * 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10341361B2 (en) * 2017-06-05 2019-07-02 Hewlett Packard Enterprise Development Lp Transmitting secure information
JP7019976B2 (ja) * 2017-06-26 2022-02-16 大日本印刷株式会社 セキュアエレメント、コンピュータプログラム、デバイス、os起動システム及びos起動方法
US10430227B2 (en) 2018-01-09 2019-10-01 Microsoft Technology Licensing, Llc Fast instantiation of virtual machines in distributed computing systems
US10719606B2 (en) * 2018-02-23 2020-07-21 Infineon Technologies Ag Security processor for an embedded system
US10664323B2 (en) 2018-03-07 2020-05-26 Microsoft Technology Licensing, Llc Live migration of virtual machines in distributed computing systems
US11238160B2 (en) * 2018-09-28 2022-02-01 Apple Inc. Boot firmware sandboxing
US10984108B2 (en) * 2018-10-05 2021-04-20 International Business Machines Corporation Trusted computing attestation of system validation state
US11762666B2 (en) * 2019-01-29 2023-09-19 Walmart Apollo, Llc Methods and apparatus for hypervisor boot up
DE102019206302A1 (de) * 2019-05-02 2020-11-05 Continental Automotive Gmbh Verfahren und Vorrichtung zum Übertragen eines Boot-Codes mit verbesserter Datensicherheit
US11397588B2 (en) 2020-05-28 2022-07-26 Hewlett Packard Enterprise Development Lp Operating system installation mechanism
CN112114835B (zh) * 2020-09-28 2024-04-26 恒宝股份有限公司 智能卡生产方法、装置、电子设备及存储介质
US20220179375A1 (en) * 2020-12-04 2022-06-09 Solar Turbines Incorporated Human-machine interface with imaging application
CN112580017B (zh) * 2020-12-25 2023-12-29 深信服科技股份有限公司 认证方法及装置、电子设备、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138414A1 (en) * 2003-12-17 2005-06-23 Zimmer Vincent J. Methods and apparatus to support the storage of boot options and other integrity information on a portable token for use in a pre-operating system environment
US20060129797A1 (en) * 2004-12-15 2006-06-15 Palo Alto Research Center, Inc. Hardware-supported secure network boot
WO2008008675A2 (en) * 2006-07-10 2008-01-17 Device Vm, Inc. Method and apparatus for virtualization of appliances
WO2011075484A2 (en) * 2009-12-14 2011-06-23 Citrix Systems, Inc. A secure virtualization environment bootable from an external media device

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230095B2 (en) * 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
US7764683B2 (en) * 2005-12-16 2010-07-27 Oracle America, Inc. Reliable multicast operating system (OS) provisioning
SE531992C2 (sv) 2006-02-24 2009-09-22 Oniteo Ab Metod och system för säker programvaruprovisionering
US8191063B2 (en) * 2007-09-30 2012-05-29 Symantex Corporation Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US7979260B1 (en) * 2008-03-31 2011-07-12 Symantec Corporation Simulating PXE booting for virtualized machines
CN101396870B (zh) 2008-11-18 2010-06-09 航天材料及工艺研究所 锥形酚醛复合材料结构件整体毛坯预制件搭接成型工艺
US8874888B1 (en) * 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138414A1 (en) * 2003-12-17 2005-06-23 Zimmer Vincent J. Methods and apparatus to support the storage of boot options and other integrity information on a portable token for use in a pre-operating system environment
US20060129797A1 (en) * 2004-12-15 2006-06-15 Palo Alto Research Center, Inc. Hardware-supported secure network boot
WO2008008675A2 (en) * 2006-07-10 2008-01-17 Device Vm, Inc. Method and apparatus for virtualization of appliances
WO2011075484A2 (en) * 2009-12-14 2011-06-23 Citrix Systems, Inc. A secure virtualization environment bootable from an external media device

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016009583; Kuniyasu Suzaki: 'Release:InetBoot(GRUB+BuildRoot+HTTP-FUSE)' Debian Mailing list , 200804 *
JPN6016009584; David Clerc他: 'OS Steaming Deployment' Performance Computing and Communications Conference (IPCCC), 2010 IEEE 29th International , 201012, p.169-p.179 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013175112A (ja) * 2012-02-27 2013-09-05 Hitachi Ltd 認証装置、および、認証方法

Also Published As

Publication number Publication date
EP2761523A4 (en) 2015-04-29
US9904557B2 (en) 2018-02-27
WO2013046068A1 (en) 2013-04-04
US20140317394A1 (en) 2014-10-23
CN103843006B (zh) 2017-05-10
EP2761523A1 (en) 2014-08-06
EP2761523B1 (en) 2019-01-02
CN103843006A (zh) 2014-06-04
JP5940159B2 (ja) 2016-06-29

Similar Documents

Publication Publication Date Title
JP5940159B2 (ja) 非トラステッド・ユーザ端末にオペレーティング・システム・イメージをプロビジョニングするための方法、コンピュータ・プログラム、デバイス、装置
US11228449B2 (en) Secure interface for invoking privileged operations
US9703586B2 (en) Distribution control and tracking mechanism of virtual machine appliances
US9319380B2 (en) Below-OS security solution for distributed network endpoints
RU2542930C2 (ru) Защищенная загрузка и конфигурирование подсистемы с нелокального запоминающего устройства
EP2141625B1 (en) System and method to secure boot UEFI firmware and UEFI-aware operating systems on a mobile internet device (mid)
US10169589B2 (en) Securely booting a computer from a user trusted device
US10474454B2 (en) System and method for updating a trusted application (TA) on a device
US9372988B2 (en) User controllable platform-level trigger to set policy for protecting platform from malware
US9158902B2 (en) Software modification for partial secure memory processing
JP2016509806A (ja) 安全な仮想マシン移行
US9916454B2 (en) User controllable platform-level trigger to set policy for protecting platform from malware
US11741221B2 (en) Using a trusted execution environment to enable network booting
US8738915B2 (en) System and method for establishing perpetual trust among platform domains
JP2010073193A5 (ja)
KR20110050488A (ko) 티켓 인증 보안 설치 및 부트
US9185079B2 (en) Method and apparatus to tunnel messages to storage devices by overloading read/write commands
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
US9270657B2 (en) Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure
US20130276146A1 (en) Method and apparatus to using storage devices to implement digital rights management protection
US8719557B2 (en) System and method for secure client hosted virtualization in an information handling system
US20180198618A1 (en) Apparatus and method for providing secure execution environment for mobile cloud
US11409541B2 (en) Systems and methods for binding secondary operating system to platform basic input/output system
Arthur et al. Existing Applications That Use TPMs
Schaumont et al. Demonstrating end point security in embedded systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160517

R150 Certificate of patent or registration of utility model

Ref document number: 5940159

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150