JP6357158B2 - 仮想マシンによる安全なデータ処理 - Google Patents

仮想マシンによる安全なデータ処理 Download PDF

Info

Publication number
JP6357158B2
JP6357158B2 JP2015536244A JP2015536244A JP6357158B2 JP 6357158 B2 JP6357158 B2 JP 6357158B2 JP 2015536244 A JP2015536244 A JP 2015536244A JP 2015536244 A JP2015536244 A JP 2015536244A JP 6357158 B2 JP6357158 B2 JP 6357158B2
Authority
JP
Japan
Prior art keywords
instance
virtual machine
key
machine instance
data
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.)
Active
Application number
JP2015536244A
Other languages
English (en)
Other versions
JP2015537428A5 (ja
JP2015537428A (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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2015537428A publication Critical patent/JP2015537428A/ja
Publication of JP2015537428A5 publication Critical patent/JP2015537428A5/ja
Application granted granted Critical
Publication of JP6357158B2 publication Critical patent/JP6357158B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Description

本発明は、仮想マシンを実行することに関する。本発明は、仮想マシンインスタンスにキーを発行することに更に関する。
近年、クラウドコンピューティングが重要なパラダイムになっている。クラウドコンピューティングでは、コンピューティング資源が商品として貸与される場合がある。典型的なクラウドコンピューティングモデルでは、クラウドプロバイダが物理サーバ上で実行される仮想サーバを提供する。本明細書では、仮想サーバが物理サーバと同様の機能を遠隔利用者に提供することができる。複数の仮想サーバが単一の物理サーバ上で実行可能であり、そのため、必要とされる物理サーバがより少なくなり得る。サービスプロバイダは、1つ又は複数の仮想マシンインスタンスとしてクラウドサーバ上で実行され得る、1つ又は複数の仮想マシンイメージを提供することができる。
クラウドコンピューティングではデータ保護が重要である。データのセーフガード保護には暗号化が潜在的に重要な役割を果たす。例えば、仮想マシンのファイルシステムの最上部で暗号化ファイルシステムが実行される場合がある。更に、Amazon Web Services(Seattle, Washington, USA)によって提供されるAmazon S3は、仮想マシンが暗号化形式でデータを記憶することを可能にするサーバサイド暗号化(SSE:Server Side Encryption)を提供する。
ディスクイメージ暗号化は、静止時に、つまり、システムへの電力供給がオフにされており、攻撃者が何らかの方法でシステムのディスク又は他の外部記憶域へのアクセスした(一般に「オフライン攻撃」として知られている)場合に、データを保護することを目的とする技法である。同様の攻撃は、或る重要な違いを伴って仮想マシン(VM:virtual machine)にも加えられることがあり、その違いとはつまり、システムへの物理的アクセスが無くても攻撃が加えられ得ることである。攻撃者が仮想化ホスト又はハイパーバイザに(ローカルに又は遠隔的に)危害を加える場合、攻撃者はそのVMゲストの攻撃に移ることができる。カーネルベースの仮想マシン(Linux(登録商標) KVM)と呼ばれるシステムは、ゲストのディスクイメージを暗号化し、ゲストを始動させるために暗号化パスフレーズ又は暗号化キーを要求することにより、実行されていないゲストをシステム管理者が保護することを可能にする。
Porticor Virtual Private Data system(Porticor LTD,Ramat Hasharon)は、ディスクやファイル等の各データオブジェクトが、マスタキーと固有キーとの2つに分けられる一意キーによって暗号化される準同型分割キー暗号化技術を使用する。マスタキーは全てのデータオブジェクトに共通であり、アプリケーション所有者が保持し続けるのに対し、第2の固有キーはデータオブジェクトごとに異なり、仮想キー管理サービスによって記憶される。アプリケーションがデータ記憶域にアクセスするとき、データを動的に暗号化及び復号するために、キーの両方の部分が使用される。
米国特許出願公開第2010/0211782 A1号は、クラウド内に記憶されるデータに対する検索可能暗号化技法を含むネットワークデータサービスに与えられるデジタルエスクロパターンを開示し、これは、単一データ暴露点を回避するために信頼性を複数のエンティティにわたって分散させる。一実施形態では、キー生成器、暗号技術プロバイダ、及びクラウドサービスプロバイダがそれぞれ別々のエンティティとして提供され、データのパブリッシャがデータをクラウドサービスプロバイダに機密に発行し、次いでその暗号化データを、サブスクライバの要求に応答して生成されたキー情報内に符号化されるサブスクライバ識別情報、例えばサブスクライバの役割に基づき、そのデータを要求するサブスクライバに選択的に公開できるようにする。
米国特許出願公開第2011/0296201 A1号は、仮想化サーバ上での仮想マシン(VM)の高信頼の実行を、例えば仮想化サーバ上でVMを実行するために可能にするように構成される方法及び機器を開示する。ハードウェアトラストアンカを用いて物理的なマルチコアCPUが構成され得る。VM(又はハイパーバイザ)がCPUコアのうちの1つの上で実行されるとき、命令及びデータを暗号化/復号するために使用されるセッションキーを管理するようにトラストアンカ自体を構成することができる。例外により文脈切換えが行われる場合、VM(又はハイパーバイザ)に割り当てられたメモリ及びキャッシュのコンテンツを暗号化/復号するために使用されるセッションキーをトラストアンカがスワップする。
仮想マシンインスタンスの改善された処理を有することが有利であろう。この問題により良く対処するために、本発明の第1の態様は、
仮想マシンインスタンスに一意に関連するインスタンス承認証明書を受け取るためのインスタンス承認ユニットと、
仮想マシンインスタンスに関連するインスタンス承認証明書に基づいてデータキーを得るための要求を生成するためのデータキーユニットと、
データキーに基づいてデータ項目を復号するための復号ユニットと
を含む、仮想マシンインスタンスを作成するための実行環境を含むシステムを提供する。
インスタンス承認証明書は、仮想マシンインスタンスに一意に関連するため、仮想マシンインスタンスに自らを識別する方法を与える。このように仮想マシンインスタンスから生じているものとしてデータキーを得るための要求を認識することができ、このようにして、仮想マシンインスタンスにとって外部のエンティティが、仮想マシンインスタンスにデータキーを発行できるかどうか、及び例えば複数の入手可能なデータキーのうちのどのデータキーを仮想マシンインスタンスに発行できるのかを要求に基づいて判定することができる。
仮想マシンインスタンスは、利用者又は利用者のグループに関連するユーザ証明書を得るためのユーザ証明書ユニットを更に含むことができる。このようにして、仮想マシンインスタンスは、仮想マシンインスタンスに関連するインスタンス承認証明書、並びに利用者又は利用者のグループに関連するユーザ証明書の両方を有する。データキーユニットは、ユーザ証明書に更に基づいて要求を生成するように構成され得る。これにより、要求の受け手が仮想マシンインスタンス及び利用者の両方を識別できるようになり、そのため要求の受け手は、両方のエンティティに基づいて特定のデータキーを与えるかどうかを判定することができる。或いは、ユーザ証明書に更に基づいてデータ項目を復号するように復号ユニットが構成されても良い。このようにして、ユーザ証明書をデータキーと合わせて使用してデータを復号することができる。何れにせよ、仮想マシンインスタンスは、非暗号化形式のデータ項目にアクセスするためにユーザ証明書及びインスタンス承認証明書の両方を必要とする。
インスタンス承認ユニットは、インスタンス承認証明書を得るための要求を発行するように構成されても良く、この要求は仮想マシンインスタンスに固有の少なくとも1つの属性を示す。これにより、仮想マシンインスタンスは、インスタンス承認証明書を能動的に要求できるようになる。少なくとも1つの属性は、例えば仮想マシンインスタンスを一緒に一意に識別する1組の属性であり得る。
本システムは、仮想マシンインスタンスに関連する承認コードをキーサーバにおいて登録し、その承認コードを仮想マシンインスタンスに与えるためのインスタンス所有者ユニットを更に含むことができ、前述の少なくとも1つの属性は承認コードを含む。これにより、所有者ユニットは、仮想マシンインスタンスの復号能力を制御できるようになる。
インスタンス所有者ユニットは、仮想マシンの実行環境に承認コードを含む命令を送るように構成され得る。実行環境は、命令を受け取ることに応答して仮想マシンインスタンスを作成し、仮想マシンインスタンスに承認コードを与えるように構成され得る。これにより、インスタンス所有者は、承認コードに関連する復号能力を有する仮想マシンインスタンスを実行環境に作成させることができる。
インスタンス所有者ユニット及び実行環境は、ネットワークによって接続される2つの別々のハードウェアエンティティ上に実装することができる。本システムは、仮想マシンインスタンスに与えられる承認コード及び/又は仮想マシンインスタンスに発行されるデータキーを制御することにより、遠隔地からネットワークを経由でインスタンス所有者ユニットによって操作される仮想マシンインスタンスの信頼性を高めることを可能にする。
データキーユニットは、仮想マシンインスタンスによって発行される一連の要求内の要求の位置を示すコードを、データキーを得るための要求内に含めるように構成され得る。これにより、仮想マシンインスタンスの違法コピーが検出できるようになり、その理由は、2つの仮想マシンインスタンスが同じインスタンス承認証明書を使用した場合、仮想マシンインスタンスによって発行される一連の要求内の要求の位置を示すコードによってそのことが明らかにされ得るからである。具体的には、後続の要求における狭義単調増加していない位置が検出され得る。
仮想マシンインスタンスは、データキー及びデータキーを使用して復号されたデータを揮発性メモリ内に保つように、且つ/又はデータキー及びデータキーを使用して復号されたデータを使用後に消去するように構成され得る。これにより、データキー及び/又はデータ項目が固定記憶装置上に記憶されること、及び/又は必要以上に長い間メモリ内にあることを防ぐ。
本発明の別の態様では、
仮想マシンインスタンスを、仮想マシンインスタンスに固有の少なくとも1つの属性に基づいて識別するためのインスタンス識別ユニットと、
インスタンス承認証明書を判定し、インスタンス承認証明書を仮想マシンインスタンスに一意に関連付けるためのインスタンス承認判定部と、
仮想マシンインスタンスにインスタンス承認証明書を与えるためのインスタンス承認提供ユニットと、
仮想マシンインスタンスからデータキーを得るための要求を受け取るためのデータキー要求受信部であって、データキーを得るための要求は、インスタンス承認証明書に関連するインスタンス承認コンポーネントを含む、データキー要求受信部と、
インスタンス承認コンポーネントに基づき、仮想マシンインスタンスがデータキーの受取りを承認されているかどうかを判定するためのデータ承認ユニットと、
仮想マシンインスタンスがデータキーの受取りを承認されている場合に、仮想マシンインスタンスにデータキーを与えるためのデータキー提供ユニットと
を含む、仮想マシンインスタンスにキーを発行するためのキーサーバシステムが提供される。
このキーサーバシステムは、仮想マシンインスタンスへのデータキーの配布を制御することができる。仮想マシンインスタンスに固有の属性、及び仮想マシンインスタンスに一意に関連するインスタンス承認証明書の後続の発行により、仮想マシンインスタンスの認証が承認プロセスと共により安全にされる。更に、「違法な」仮想マシンインスタンスにはインスタンス承認証明書が与えられなくても良く、そのためかかるインスタンスはデータキーを得るための有効な要求を生成できないため、「違法な」仮想マシンインスタンスを無効にすることができる。データ承認ユニットは、仮想マシンインスタンスがデータキーの受取りを承認されているかどうかを判定するために1つ又は複数のポリシを使用することができる。かかるポリシは、何が許可され何が許可されていないのかを示すことができ、静的又は動的とすることができ、データの特性、上述の属性、並びに他の箇所で言及する関連する利用者及び/又は位置に依拠し得る。少なくとも1つの属性は、例えば仮想マシンインスタンスを一緒に一意に識別する1組の属性であり得る。
キーサーバシステムは、仮想マシンインスタンスからインスタンス承認証明書を得るための要求を受け取るためのインスタンス証明書要求受信部であって、要求は仮想マシンインスタンスに固有の属性を示す、インスタンス証明書要求受信部と、属性に基づいて仮想マシンインスタンスの有効性を確認するためのインスタンス検証ユニットとを更に含むことができる。これにより、仮想マシンインスタンス自体が、仮想マシンインスタンス承認証明書を要求できるようになる。仮想マシンインスタンスに固有の属性を使用し、キーサーバシステムに対して仮想マシンインスタンスを識別することが可能になる。
インスタンス検証ユニットは、仮想マシンインスタンスの位置を示す属性に更に基づき、仮想マシンインスタンスの有効性の確認を行うように構成されても良く、又はデータ承認ユニットは、仮想マシンインスタンスの位置に更に基づき、仮想マシンインスタンスがデータキーの受取りを承認されているかどうかの判定を行うように構成される。これにより、仮想マシンインスタンスの位置をモニタし、適切な位置にない仮想マシンインスタンスに対するインスタンス承認証明書又はデータキーを拒否できるようになる。仮想マシンインスタンスの位置は、例えば仮想マシンインスタンスがその上で実行される、プロセッサ、メモリ、及び/又は記憶域を含む物理装置の位置とすることができる。
データキーを得るための要求は、仮想マシンインスタンスの利用者又は利用者のグループに関連するユーザ証明書を更に示すことができる。データ承認ユニットは、データキーを得るための要求と共に受け取られるユーザ証明書の指示及びデータキーによって保護されているデータのアクセスポリシに更に基づき、仮想マシンインスタンスがデータキーの受取りを承認されているかどうかの判定を行うように構成され得る。このようにして、仮想マシンインスタンスが適切なユーザ証明書を保持する場合にのみ、承認されている仮想マシンインスタンスのみにデータキーが与えられる。
キーサーバシステムは、承認要求、証明書、及び/又はデータキーに関する通信に関係する情報のログを取るためのログユニットを含むことができる。かかるロギング情報は、例えば過去の事象の解析を行うために、不正使用を示すあり得る任意のパターンを検出するために使用され得る。
別の態様では、本発明は、仮想マシンインスタンスとしてインスタンス化可能な仮想マシンイメージを提供し、この仮想マシンイメージは、
仮想マシンインスタンスに一意に関連するインスタンス承認証明書を仮想マシンインスタンスに受け取らせるための命令コードと、
仮想マシンインスタンスに関連するインスタンス承認証明書に基づいてデータキーを得るための要求を仮想マシンインスタンスに生成させるための命令コードと、
データキーに基づいてデータ項目を仮想マシンインスタンスに復号させるための命令コードと
を含む。
別の態様では、本発明は仮想マシンインスタンスを実行する方法を提供し、この方法は、仮想マシンインスタンスによる、
仮想マシンインスタンスに一意に関連するインスタンス承認証明書を受け取るステップと、
仮想マシンインスタンスに関連するインスタンス承認証明書に基づき、データキーを得るための要求を生成するステップと、
データキーに基づいてデータ項目を復号するステップと
を含む。
別の態様では、本発明は仮想マシンインスタンスにキーを発行する方法を提供し、この方法は、
仮想マシンインスタンスを、仮想マシンインスタンスに固有の少なくとも1つの属性に基づいて識別するステップと、
インスタンス承認証明書を判定し、そのインスタンス承認証明書を仮想マシンインスタンスに一意に関連付けるステップと、
インスタンス承認証明書を仮想マシンインスタンスに与えるステップと、
仮想マシンインスタンスからデータキーを得るための要求を受け取るステップであって、データキーを得るための要求はインスタンス承認証明書に関連するインスタンス承認コンポーネントを含む、ステップと、
インスタンス承認コンポーネントに基づき、仮想マシンインスタンスがデータキーの受取りを承認されているかどうかを判定するステップと、
仮想マシンインスタンスがデータキーの受取りを承認されている場合に、仮想マシンインスタンスにデータキーを与えるステップと
を含む。
別の態様では、本発明は、本明細書に記載の任意の方法をプロセッサシステムに実行させるための命令を含むコンピュータプログラム製品を提供する。
上述の本発明の実施形態、実装形態、及び/又は態様の2つ以上が、有用と見なされる任意の方法で組み合わせられても良いことが当業者によって理解される。
記載するシステムの修正形態及び改変形態に対応する、システム、仮想マシンインスタンス、キーサーバシステム、方法、及び/又はコンピュータプログラム製品の修正形態及び改変形態が、本明細書に基づいて当業者によって実行され得る。
本発明のこれらの及び他の態様が図面から明らかであり、図面を参照して以下で説明される。図中、同様のアイテムは同じ参照番号によって示されている。
仮想マシンインスタンスが実行され得る実行環境のブロック図である。 キーサーバシステムのブロック図である。 仮想マシンイメージのブロック図である。 仮想マシンインスタンスを実行する方法のフローチャートである。 仮想マシンインスタンスにキーを発行する方法のフローチャートである。
仮想マシンは、通常のホストオペレーティングシステム又は専用のハイパーバイザ内の隔離されたゲストオペレーティングシステムインストレーションと見なされ得る。例えば仮想マシンは、ソフトウェアエミュレーション又はハードウェア仮想化によって実装され得る。ソフトウェアエミュレーション及びハードウェア仮想化の両方が一緒に実装されても良い。仮想マシン内で実行されるソフトウェアは、仮想マシンによって提供される資源及び抽象化に限定される可能性があり、自らの仮想環境から抜け出すことができない。とはいえ当初、仮想マシンは、実際のマシンの隔離された効率的な複製を提供することを目的としていた。しかし、現在の仮想マシンの用途は、実際の如何なるハードウェアにも直接の対応関係を有さない仮想マシンを含む。
仮想マシンインスタンスは、例えば仮想マシンの実行開始時に仮想マシン内に含まれるデータを規定する仮想マシンイメージを含む、タイプ定義(type definition)を有することができる。実際の仮想マシンは、実行環境内で実行されるとき、用語、仮想マシンインスタンスによって仮想マシンのタイプ定義と区別され得る。
図1は、仮想マシンインスタンス10を実行するためのシステムの態様を示す。本システムは、仮想マシンインスタンス10の実行を制御する実行環境11を含むことができる。実行環境11は、分散コンピュータシステム上で動作可能であり得る複数の仮想マシンインスタンス10の実行を制御するように構成され得る。本システムは、図1に示すように実行環境11の一部であり得るインスタンスクリエータ15を含むことができ、又はインスタンスクリエータ15は、実行環境11とは別のユニットとして構成されても良い。インスタンスクリエータ15は、例えば仮想マシンの命令コードを定める仮想マシンイメージ(不図示)に基づいて仮想マシンインスタンス10を作成することができる。インスタンスクリエータ15は、場合により仮想マシンイメージと連動し、仮想マシンインスタンス10が幾つかの命令コードを含むような方法で1つ又は複数の仮想マシンインスタンス10を作成するように動作可能であり得る。集合的に特定の機能を担う命令コードをユニットと呼ぶ場合がある。かかるユニットはソフトウェアモジュール内に論理的に配置されても良いが、複数のソフトウェアモジュールにわたって分割されても良い。
仮想マシンインスタンス10は、インスタンス承認証明書を受け取るように構成されるインスタンス承認ユニット1を含むことができる。このインスタンス承認証明書は、権限のある機関によって仮想マシンインスタンスの外部で作成され得る。更に、インスタンス承認証明書は、仮想マシンインスタンス10に一意に関連し得る。つまり、同じ承認証明書が他の如何なる仮想マシンインスタンス10にも与えられることはない。
仮想マシンインスタンスは、仮想マシンインスタンス10に関連するインスタンス承認証明書に基づいてデータキーを得るための要求を生成するように構成される、データキーユニット2を更に含むことができる。例えば、承認証明書が要求内に含められても良く、又は仮想マシンが承認証明書を保持することを証明する情報が要求内に含められても良い。要求は、1つ又は複数のデータ項目、例えばコンテンツ項目や保護された患者記録項目を更に示すことができ、データ項目は暗号化され得る。要求は、その1つ又は複数のデータ項目のためのデータキーを得るための要求を伴い得る。
データキーユニット2は、要求に応答して仮想マシンインスタンス10に送信され得るデータキーを受け取るように更に構成され得る。
仮想マシンインスタンスは、データキーに基づいてデータ項目7を復号するように構成される復号ユニット3を更に含むことができる。例えば、データ項目7は外部データベースから暗号化形式で取得される。仮想マシンインスタンスが暗号化データ項目7にアクセスする方法は、当業者に知られている任意の方法で良い。例えば、暗号化データ項目7は、データベースインターフェイス又はファイルシステムを介して取得され得る。任意の暗号化アルゴリズムが利用され得る。
仮想マシンインスタンス10は、利用者又は利用者のグループに関連するユーザ証明書を得るように構成されるユーザ証明書ユニット4を更に含むことができ、データキーユニット2がユーザ証明書に更に基づいて要求を生成するように構成され、又は復号ユニット3がユーザ証明書に更に基づいてデータ項目7を復号するように構成される。何れにせよ、これにより、上記の仮想マシン認証方法にユーザ認証方法が追加される。ユーザ証明書は、承認された利用者しか秘密データにアクセスし得ないことを確実にするために使用され得る。インスタンス承認証明書は、そのような承認されたアクセスが、承認された仮想マシンインスタンスによってのみ行われることを確実にするために使用され得る。このようにして、未承認の(及び場合により悪意のある)仮想マシンインスタンスは、インスタンス承認証明書が無いため、例え何とかユーザ証明書を得たとしても、秘密データへの未承認のアクセスを得るために使用することができない。
インスタンス承認ユニット1は、インスタンス承認証明書を得るための要求を発行するように構成することができ、この要求は仮想マシンインスタンスに固有の少なくとも1つの属性を示す。例えば、この要求は、インスタンス承認証明書を提供する役割を担うサーバに送られ得る。属性は、例えばインスタンスの作成時刻、プロセスID、ネットワークアドレス、及び仮想マシンインスタンスを(一緒に)識別できる他の種類のパラメータを示し得る。「仮想マシンインスタンスに固有の少なくとも1つの属性」とは、全体として仮想マシンインスタンスに固有であり、又は仮想マシンインスタンスを一意に識別する1組の値であり得る。
実装形態の一例では、本システムが、仮想マシンインスタンス10に関連する承認コードをキーサーバシステム6において登録し、仮想マシンインスタンス10に承認コードを与えるためのインスタンス所有者ユニット5を含むことができる。インスタンス承認ユニット1は、承認コードを示す属性をインスタンス承認証明書を得るための要求内に含めるように構成され得る。
インスタンス所有者ユニット5は、承認コードを含む命令を仮想マシンの実行環境11に送るように構成されても良く、実行環境11は、命令を受け取ることに応答して仮想マシンインスタンス10を作成し、仮想マシンインスタンス10に承認コードを与えるように構成される。例えば、矢印14で示すように、インスタンス所有者ユニット5は、実行環境11の制御ユニット13に承認コードを含む命令を送るように構成され得る。次いで、制御ユニット13がインスタンスクリエータ15と共同して仮想マシンインスタンス10を作成し、仮想マシンインスタンス10に承認コードを与える。或いは、図1の矢印12で示すように、インスタンス所有者ユニット5は、仮想マシンインスタンス10のインスタンス承認ユニット1に承認コードを送るように構成され得る。
実行環境11は、仮想マシンインスタンス10を作成するとき、仮想マシンインスタンス10にインスタンス承認証明書を自動で与え、どのインスタンス承認証明書を使用するのかに関してキーサーバシステム6と交渉するように代わりに構成されても良い。
データキーユニット2は、仮想マシンインスタンス10によって発行される一連のデータキーを得るための要求内の要求の位置を示すコードを、データキーを得るための要求内に含めるように構成され得る。キー要求の番号付けを使用することにより、より多くのエンティティ、例えば複数の仮想マシンインスタンスが同じインスタンス承認証明書を使用している場合に、この番号付けが検出され得る。コードは、例えばシーケンス番号を含むことができる。セキュリティを高めるために、例えばこのシーケンス番号が暗号化されても良く、又はシーケンス番号のハッシュコード若しくは署名が使用されても良い。
仮想マシンインスタンス10は、データキー及び/若しくはデータキーを使用して復号されたデータを揮発性メモリ内に保つように、且つ/又はデータキー及びデータキーを使用して復号されたデータを使用後に消去するように構成され得る。このようにして、即座の使用に必要であるよりも長く秘密データが実行環境11内に保たれることはない。データ項目7が再び必要な場合、データキーが再び要求されても良い。
図2は、仮想マシンインスタンス10にキーを発行するためのキーサーバシステム6を示す。キーサーバシステム6及び/又は実行環境11は、同じ又は別のサーバシステム上に実装され得る。
このキーサーバシステムは、インスタンス承認証明書の発行を担うモジュールを含むインスタンス証明書発行元32を含むことができる。更に、このキーサーバシステムは、データキーの発行を担うモジュールを含むデータキー発行元31を含むことができる。これを図2に示す。但し、これはキーサーバシステム6の実装形態の非限定的なアーキテクチャの一例に過ぎない。
キーサーバシステム6は、仮想マシンインスタンス10に固有の少なくとも1つの属性に基づいて仮想マシンインスタンス10を識別するように構成される、インスタンス識別ユニット20を含むことができる。例えばキーサーバシステムは、仮想マシンインスタンス10ごとに1つ又は複数の代表的属性を含む表を保持することができる。
キーサーバシステム6は、インスタンス承認証明書を判定するように構成されるインスタンス承認判定部21を更に含むことができる。例えば、インスタンス承認判定部21は、例えば擬似乱数生成器、具体的には暗号学的に安全な擬似乱数生成器を使用し、インスタンス承認証明書を生成するように構成され得る。インスタンス承認証明書は、例えば暗号化キーを示すことができる。インスタンス承認判定部は、インスタンス承認証明書を仮想マシンインスタンス10に一意に関連付けるように構成され得る。この関連付けは、例えば上記の表によって実施されても良い。データベースの使用等、他の実装形態も当業者にとって実現可能である。
キーサーバシステム6は、仮想マシンインスタンス10にインスタンス承認証明書を与えるように構成されるインスタンス承認提供ユニット22を含むことができる。例えば証明書は、通信プロトコルを使用して仮想マシンインスタンス10に送られる。
キーサーバシステム6は、仮想マシンインスタンス10からデータキーを得るための要求を受け取るように構成されるデータキー要求受信部23を更に含むことができる。データキーを得るための要求は、インスタンス承認証明書に関連するインスタンス承認コンポーネントを含むことができる。このコンポーネントは、別個のデータ要素や、暗号化署名等、要求の別のデータ要素の特定の変換等の任意の適切な形態を有し得る。
キーサーバシステム6は、インスタンス承認コンポーネントに基づき、仮想マシンインスタンス10がデータキーの受取りを承認されているかどうかを判定するように構成される、データ承認ユニット24を更に含むことができる。この機能は、インスタンス承認コンポーネントに関連する暗号化キーを検証することを伴い得る。
キーサーバシステム6は、データ承認ユニット24によって判定される通り、仮想マシンインスタンス10がデータキーの受取りを承認されている場合に、仮想マシンインスタンス10にデータキーを与えるように構成される、データキー提供ユニット25を更に含むことができる。
キーサーバシステム6は、仮想マシンインスタンス10からインスタンス承認証明書を得るための要求を受け取るように構成される、インスタンス証明書要求受信部27を更に含むことができる。この要求は、仮想マシンインスタンス10に固有の属性を示し得る。
キーサーバシステム6は、インスタンス証明書要求受信部27によって受け取られる属性の指示に基づき、仮想マシンインスタンス10の有効性を確認するように構成されるインスタンス検証ユニット28を更に含むことができる。
インスタンス検証ユニット28は、仮想マシンインスタンス10の位置を示す属性に更に基づき、仮想マシンインスタンス10の有効性の確認を行うように構成され得る。更に、データ承認ユニット24は、仮想マシンインスタンス10の位置に更に基づき、仮想マシンインスタンス10がデータキーの受取りを承認されているかどうかの判定を行うように構成され得る。
データキーを得るための要求は、仮想マシンインスタンス10の利用者又は利用者のグループに関連するユーザ証明書を更に示すことができる。更に、データ承認ユニット24は、データキーを得るための要求と共に受け取られるユーザ証明書の指示及びデータキーによって保護されているデータのアクセスポリシに更に基づき、仮想マシンインスタンス10がデータキーの受取りを承認されているかどうかの判定を行うように構成され得る。
キーサーバシステム6は、承認要求、証明書、及び/又はデータキーに関する通信に関係する情報のログを取るためのログユニット29、30を更に含むことができる。ロギングは、インスタンス証明書発行元32によって、及び同様にデータキー発行元31によって行われ得る。ロギングは、単一のログユニット又は2つの別個のログユニット29、30によって行われ得る。
図3は、仮想マシンイメージ100のコンポーネントを示す。仮想マシンイメージ100は、仮想マシンの定義を提供することができる。仮想マシンイメージ100に基づいて仮想マシンインスタンス10を作成するように、実行環境11が構成され得る。仮想マシンイメージは、仮想マシンインスタンス10に一意に関連するインスタンス承認証明書を仮想マシンインスタンス10に受け取らせるための命令コード101、仮想マシンインスタンス10に関連するインスタンス承認証明書に基づいてデータキーを得るための要求を仮想マシンインスタンス10に生成させるための命令コード102、及び/又はデータキーに基づいてデータ項目を仮想マシンインスタンス10に復号させるための命令コード103を含むことができる。この仮想マシンイメージ100は、とりわけ本開示の中の仮想マシンインスタンス10に関する説明及び図面に基づき、当業者によって拡張され且つ/又は修正され得る。
図4は、仮想マシンインスタンスを実行する方法を示す。仮想マシンは、実行中に
− 仮想マシンインスタンスに一意に関連するインスタンス承認証明書を受け取るステップ(201)、
− 仮想マシンインスタンスに関連するインスタンス承認証明書に基づき、データキーを得るための要求を生成するステップ(202)、及び/又は
− データキーに基づいてデータ項目を復号するステップ(203)
を行うことができる。
図5は、仮想マシンインスタンスにキーを発行する方法を示す。この方法は、
− 仮想マシンインスタンスに固有の少なくとも1つの属性に基づいて仮想マシンインスタンスを識別するステップ(301)、
− インスタンス承認証明書を判定し、そのインスタンス承認証明書を仮想マシンインスタンスに一意に関連付けるステップ(302)、
− インスタンス承認証明書を仮想マシンインスタンスに与えるステップ(303)、
− 仮想マシンインスタンスからデータキーを得るための要求を受け取るステップであって、データキーを得るための要求はインスタンス承認証明書に関連するインスタンス承認コンポーネントを含む、ステップ(304)、
− インスタンス承認コンポーネントに基づき、仮想マシンインスタンスがデータキーの受取りを承認されているかどうかを判定するステップ(305)、及び/又は
− 仮想マシンインスタンスがデータキーの受取りを承認されている場合に、仮想マシンインスタンスにデータキーを与えるステップ(306)
を含むことができる。
これらの方法は、本開示の説明及び図面に基づいて当業者によって拡張され且つ/又は修正され得る。更に、本明細書に開示する方法及びシステムは、コンピュータプログラム製品の形式で少なくとも部分的に実装され得る。
本明細書に開示する技法は、例えばクラウドコンピューティングにおける仮想マシンのセキュリティに関する1つ又は複数の問題に対処するために使用され得る。例えば、ビルトインの職掌分散及びセキュリティパーティショニングを提供することにより、単一障害点の致命的な問題が回避され得る。保護はよりデータ中心に、且つよりきめ細かくされ得る。更に、キー管理が改善され得る。
仮想マシンインスタンスへの未承認のアクセス又は仮想マシンイメージの損失若しくは窃盗は、「クラウド」にコンピューティングをアウトソースしたデータ所有者に制御権が残されない状態で、関連データの著しい機密性の侵害を招く可能性がある。本明細書に開示する技法を使用してこの問題が低減され得る。データは暗号化されても良く、仮想マシンインスタンスが外部のキーサービスに暗号化データオブジェクトのキーを要求する方法が提供され得る。これにより、データ及びキーの両方にアクセスできる個々の当事者の力にセキュリティが依拠する状況の代わりに、クラウドユーザ及び/又は仮想マシン用の実行環境を有するクラウドプロバイダ等、2つの当事者間で責任を分けることができる。
クラウド仮想マシンインスタンスによってデータ復号キーを動的に得るための方法は、1)クラウド仮想マシンインスタンスが一意の識別情報及び承認を得るステップ、2)クラウド仮想マシンインスタンスが暗号化データオブジェクトのキーをキーサービスにおいて要求するステップ、3)キーサービスがその要求を処理し、仮想マシンが承認されているかどうかを評価し、肯定的な評価の場合はデータオブジェクトのキーで応答するステップを含むことができる。
本明細書に開示する技法は、復号キーが他の場所で保持されている間、データがほぼ永続的に暗号化形式のままであることを可能にする。データを復号するためのキーは、指定され、承認された仮想マシンにしか発行されなくても良い。データは、その処理時においてのみ、非暗号化形式で入手することができ得る。復号データは、最早必要なくなるや否や削除され得る。キーは一時的に発行され、メモリ内にのみ保たれることができ、持続的に記憶される必要はない。このように、持続的な記憶を控えることが、実行環境11によって強制され得る。
幾つかの実施形態を以下に示す。これらの実施形態は、通信のやり取りのシーケンスによって示され、かかるシーケンスは以下に示す幾つかの対話表によって示される。対話表では以下の表示法を使用する。「情報源−[メッセージ(パラメータ,...)]→宛先」。この表示法は、エンティティ「情報源」が「メッセージ」によって示される種類であって、パラメータ「パラメータ,...」を有するメッセージを別のエンティティであり、そのメッセージを受け取る「宛先」に送ることを意味する。かかるメッセージの伝達は、メッセージ、ウェブサービスの起動、APIの呼び出し、又は他の任意の通信プロトコルの形式を取ることができる。
仮想マシンインスタンス内で使用されるデータオブジェクトは、暗号化され得る。データオブジェクトは、数値やテキスト値、データベースセル、ファイル、更にはファイルシステム等、任意の種類のデータとすることができる。これらのデータオブジェクトが使用される場合、仮想マシンインスタンスによって、正しい復号キーがキーサーバに要求される。このサーバは、セキュリティを高めるために仮想マシンインスタンスとは独立にホストされ得る。表1は、仮想マシン用の暗号化システムに関与し得る様々なステップを示す。
表1:対話図 インスタンス化、パーソナル化、キーの取得
1.サービスプロバイダ−[インスタンス作成()]→クラウド管理サーバ
2.クラウド管理サーバ−[インスタンス作成(VMイメージ)]→クラウドサーバ
3.VMインスタンス−[パーソナル化要求(VMインスタンス属性,f(VMイメージキー))]→キーサーバ
4.キーサーバ−[パーソナル化応答(VMインスタンス識別情報,VMインスタンスキー)]→VMインスタンス
5.VMインスタンス−[キー要求(データID,h(VMインスタンスキー))]→キーサーバ
6.キーサーバ−[キー応答(データキー)]→VMインスタンス
典型的には、サービスプロバイダは、新たなインスタンスの作成を制御する人間又はエンティティにインターフェイスを提供することができる。従って、サービスプロバイダは、インスタンスを作成するためのコマンドをクラウド管理サーバに発行する。クラウド管理サーバは、例えばコンピューティング資源をサービスとして提供する第三者によってホストされても良い。クラウドサーバは、仮想マシンがその上で実行されるサーバシステムであり得る。VMインスタンスとは仮想マシンインスタンスの意味であり、VMイメージは仮想マシンイメージの意味である。表1のステップ1及びステップ2では、仮想マシンイメージから仮想マシンインスタンスを作成して始動させる。これらのステップは、クラウドサーバ上に仮想マシンイメージをインスタンス化するようにクラウド管理サーバに命令する、サービスプロバイダによって開始され得る。仮想マシンイメージ(VMイメージ)は、サービスプロバイダのアプリケーションを含む。ステップ1及びステップ2の結果は、クラウドサーバ上でイメージのインスタンスが実行されることである。
ステップ3及びステップ4では、仮想マシンインスタンスをパーソナル化し、承認する。仮想マシンイメージは複数回インスタンス化され得、複数の同一インスタンスをもたらすため、ステップ3及びステップ4はインスタンスを区別するための、セキュリティに使用されるパーソナル化を実現する。これは、とりわけ復号キーをどのインスタンスに送るのかを正確に知るべきであるキーサーバに当てはまる。これにより、悪意のある内部者又は部外者によって仮想マシンイメージが未承認でインスタンス化されること等のリスクに対処することができる。これにより、攻撃者が発見されないままであるリスクが減らされる。VMインスタンスは、ステップ3で、VMインスタンスを一意に識別する1組の1つ又は複数の属性をキーサーバに送る。1組の属性は、任意選択的に、VMインスタンスを作成するために使用されたイメージの識別情報を含むことができる。VMインスタンスは、ステップ3で、VMイメージに関連するキーであるVMイメージキー(fは所定の任意の関数を表す)をキーサーバに更に送る。ステップ4で、キーサーバが、インスタンスの識別情報の任意選択的な指示及びインスタンスキー(VMインスタンスキー)によって応答する。上記で説明したように、この識別情報及びキーは、任意の適切な仮想マシンイメージ承認証明書と置換され得る。
仮想マシンインスタンスをパーソナル化するために、インスタンスは、場合により自らを他のインスタンスと区別するために使用可能な幾つかの属性を含む。インスタンスを識別するための属性の例は、公開IPアドレス、インスタンスを起動するために使用されるイメージID、及びインスタンスのIDを含む。インスタンスを承認することは、正当なインスタンスだけが復号データキーにアクセスできることを確実にし得る。承認するために、インスタンスは例えば仮想マシンのイメージキーを使用する。ステップ3で、キーを使用してパーソナル化要求に署名し、但しf()は、この場合は署名関数を表す。この署名は、仮想マシンインスタンスに固有の1組の属性の一部である。キーサーバは、VMインスタンスを承認するプロセスの一環として、承認済みのイメージキーが使用されていることを任意選択的に確認する。キーサーバは、提供される他の属性に関する幾らかの検査も行う。属性は、仮想マシンを区別できるようにするため、実用上のパーソナル化を可能にする。属性は、イメージキーに次いで、VMインスタンスを承認するための承認プロセス内で使用されても良い。これらの確認及び検査が肯定的である場合、ステップ4で、キーサーバは、その後の対話で使用されるインスタンスの識別情報、及びそのインスタンスが承認されていることを証明し、その後の対話を保護するために(例えば署名、認証、復号等)実際に使用されるインスタンスキーによって応答する。インスタンスの識別情報及びインスタンスキーは、その後の要求における承認証明書の役割を果たす。他の種類の承認証明書が使用されても良い。
ステップ5及びステップ6では、データを復号できるようにするためにデータキーを取得する。仮想マシンインスタンスは、データIDによって特定のデータオブジェクトを識別することにより、特定のデータオブジェクトのキーを要求する。仮想マシンインスタンスは、例えばインスタンスキー(ステップ5のh()で示す)から作成されるインスタンス識別情報及び署名を含む、自らの承認証明書も提示する。キーサーバはその要求を評価し、肯定的な評価の後、データキーによって要求に応答する。
仮想マシンインスタンスが復号キーを得ると、仮想マシンインスタンスはデータオブジェクトを復号して処理することができる。インスタンスは、最早必要なくなれば復号データを削除すべきである。
インスタンスは、オペレーティングシステムによって提供される機能を使用することにより、全てのキー及び復号データをメモリ内に保持し、それらがディスクにスワップアウトされるのを防ぐように構成され得る。更に、キー及びデータの寿命が制限されるべきである。復号データ及びデータキーは、最早必要なくなれば期限切れにすべきである。インスタンスキーは、インスタンスの実行が停止した後に破棄される。
ステップ5の修正形態では、利用者に依拠する承認に基づいて復号キーへのアクセスを更に制御するために、このステップが仮想マシンインスタンスの利用者のユーザ証明書を含み、そのため上記の表1のステップ5が、
5.VMインスタンス−[キー要求(データID,h(VMインスタンスキー),h(ユーザキー))]→キーサーバ
によって置換される。
この修正形態は、特定の仮想マシンの承認された利用者への復号キーの配布を更に制限し、それによりセキュリティ及び信用を高める。具体的には、利用者に依拠する承認は、データが特定の利用者に関連する多くの事例に適合する。かかる承認された利用者がVMインスタンスに関連する場合にのみ、復号キーがVMインスタンスに配布される。
データは、様々な方法で特定の利用者に関連し得る。利用者がデータの主題であることを理由に、又はデータを管理するポリシに従って利用者がデータの指定の利用者であることを理由に、利用者識別情報とデータとの間の直接の関連が与えられる場合がある。役割及び属性の使用により、データ−利用者間の関連が間接的である場合もある。このようにして、特定の役割をもつ利用者が、キーサーバによって強化されるデータにアクセスすることを承認され得る。役割ベースの、及び属性ベースのデータ−利用者間の関連の場合、1人の利用者ではなく利用者のグループがデータに関連し得る。
利用者は、VMインスタンスへの認証によってVMインスタンスに関連付けられ得る。例えば、利用者は、仮想マシンインスタンス上でホストされているウェブサイトにログインしている場合がある。かかる認証セッションは短く又は長く持続することができる。利用者がログオフするとき、又は認証セッションが失効等の他の手段によって終了するとき、VMインスタンスは、キーサーバから取得したその利用者に関連するキーを削除する。これにより、利用者に依拠する承認が有効に終了する。
利用者に依拠する承認は、ユーザキーに基づく署名、認証トークン、又は認証アサーション等、ユーザ証明書(上記の例ではh(ユーザキー)として示す)を含めることを伴う。かかる証明書は、ユーザ認証プロセスの一環として取得され得る。
別の修正形態では、利用者に依拠する承認が、利用者に依拠するデータキーも含む。一実施形態では、VMインスタンスがステップ6でデータキーを暗号化形式で受け取り、この暗号化データキーを利用者に依拠するキーを用いて復号し、これにより、データを復号するためのキーがもたらされる。別の実施形態では、これがキーサーバに委ねられる。別個のキーサーバが、利用者に依拠するキーの管理を担う場合がある。
別の例では、例えば仮想マシンイメージの直接攻撃、例えば未承認のクローニング、窃盗、又は未承認のインスタンス作成を防ぐ。イメージから仮想マシンインスタンスを作成する/始動させる一環として、明確な承認が取り入れられる。以下のステップ0〜3は、上記の表1のステップ1〜3を置換することができる。
表2:対話図 インスタンスの承認
0.サービスプロバイダ−[インスタンス登録(承認コード)]→キーサーバ
1.サービスプロバイダ−[インスタンス作成(承認コード)]→クラウド管理サーバ
2.クラウド管理サーバ−[インスタンス作成(VMイメージ,承認コード)]→クラウドサーバ
3.VMインスタンス−[パーソナル化要求(VMインスタンス属性,VMイメージキー,承認コード)]→キーサーバ
ステップ0では、キーサーバにおいて承認コードを登録するサービスプロバイダによって始動されるインスタンスを事前承認する。ステップ1及びステップ2で、引き続きインスタンスを作成する。これらのステップの全てが承認コードを含む。この承認コードは、例えば承認コードを無作為に生成することにより、サービスプロバイダによって作成される。承認コードは、例えばクラウドサーバによる作成時に仮想マシンイメージに与えられる。ステップ3では、この承認コードがパーソナル化要求内に含められ、その後、キーサーバが、仮想マシンインスタンスから得られた承認コードが、サービスプロバイダから直接受け取られた承認コードと同一であることを検証する。キーサーバは、これらのコードが同一である場合にのみインスタンス承認証明書を発行する。この例は、管理インターフェイスから仮想マシンインスタンスに承認コードパラメータを渡せるように、所謂ハイパーバイザを強化することもできる。
より単純な代替形態では承認コードを使用しないが、代わりに、キーサーバによって測定されるステップ0からステップ3の間の既定の最長時間Tが、インスタンスの作成が正当且つ承認済みであると見なすことを可能にする。
改変形態では、以下の対話により、サービスプロバイダが、新たなインスタンスをパーソナル化しないようにキーサーバに明確に信号で伝えることにより、仮想マシンイメージの更なるインスタンス化を完全に防ぐこともできる。
表3:対話図 イメージのロック
a.サービスプロバイダ−[ロック(VMイメージ)]→キーサーバ
高度な例では、実行中の仮想マシンインスタンスの未承認のクローニングに対する更なる保護策が提供される。この機能強化は、表1のステップ5においてシーケンス番号を含めることを伴う。
表4:対話図 シーケンス番号
5.VMインスタンス−[キー要求(データID,シーケンス番号)]→キーサーバ
このステップ5は、キーサーバへのキー要求内に仮想マシンインスタンスによってシーケンス番号の指示を含めることを含む。VMインスタンスは、キーサーバ内で実装される対応するシーケンス番号と一致した方法で、各要求後にシーケンス番号を増やし又は他の方法で更新する。キーサーバは、インスタンスからのシーケンス番号が厳密な昇順で受け取られることを確認することができる。これによりキーサーバは、クローンされたインスタンスを検出できるようになり、かかるクローンは、オリジナルによって使用されるシーケンス番号を推測することができず、従ってキーの要求を試みると検出されることになる。
別の高度な例では、インスタンスを実行後に明確にロックすることにより、実行中の仮想マシンインスタンスのクローニングを防ぐ。この例は以下の追加のステップを含む。
表5:対話図 インスタンスのロック
b.サービスプロバイダ−[ロック(VMインスタンス)]→クラウド管理サーバ
c.クラウド管理サーバ−[ロック(VMインスタンス)]→クラウドサーバ
ステップb及びステップcは何時でも、例えば表1のステップ1及びステップ2の直後に呼び出され得る。ロック命令は、例えばクラウドプロバイダの管理者、サービスプロバイダ、場合により悪意のある部外者による、実行中のインスタンスのスナップショットを作る将来の如何なる命令も許可しないようにクラウド(管理)サーバに信号を送る。
キーサーバは、何らかの種類の対話、更には全ての対話、例えばインスタンス登録、パーソナル化要求、及びキー要求のログを取るように構成され得る。キーサーバは、このログへのアクセスをサービスプロバイダに与えることができ、このことは透明性及び追跡可能性に貢献する。キーサーバは、攻撃及び攻撃の試みを示唆し得るパターン及び異常を求めてログを自動解析することもできる。最後に、キーサーバは、自らのアプリケーションがクラウド上でどのように実行されるのかを制御するために、支援され又は自動化された手段をサービスプロバイダに提供することができる。代替的な例では、キーサーバがローカルにログを取るのではなく、リモートロギングサーバにログを取る。この代替的実施形態では、ロギングに関係する機能がこのロギングサーバによって提供され得る。ロギング機能は、ロギング情報の完全性を保護して、ロギング情報が改竄されていないことを確実にすることができる。
修正形態の別の例では、仮想マシンインスタンス及びデータの位置を考慮に入れることによって、データオブジェクトのアクセス及び使用の追跡可能性と制御を可能にするために、キーサーバが追加機能を備える。このことは、とりわけ特定のプライバシ立法、例えばデータが特定の国及び/又は管轄区域内でのみ記憶され、処理されることを義務付けるEUプライバシ指令に準拠することを可能にする。
例えば、キーサーバは、オブジェクトの位置情報を追跡する。この追跡は、要求側の仮想マシンインスタンスの位置情報を確認し又は要求することによって実現され得る。別の例では、特定の位置、即ち対象データに関し、知られており許可されている位置を有する仮想マシンインスタンスから生じるキー要求だけを受け付けるようにキーサーバがキー要求を処理する。データが使用され得る場所はポリシ内に表され得る。VMインスタンスの位置は、例えばVMインスタンスがホストされているサーバの地理的位置とすることができる。
キーサーバが仮想マシン及び/又はデータの位置情報を得るために、様々な方法が使用され得る:
− 仮想マシンインスタンス及びインスタンスをホストするサーバの位置を有する(静的)データベース。インスタンス及び/又はサーバは、例えばそのIPアドレスによって識別され得る。
− クラウド内の信頼できるロケーションオーソリティ(Trusted Location Authority)によって発行され得る認定タイムスタンプと同様のメカニズムにより、位置情報を仮想マシンインスタンス(又はデータオブジェクト)に(動的に)結合する。例えば、この信頼できるロケーションオーソリティは、クラウド内の全ての仮想マシンインスタンス及び/又はデータの位置情報を管理する、クラウドインフラ内の管理コントローラであり得る。
− キーサーバは、クラウド内のオブジェクトの経路を認証ツリーが示した状態で、データオブジェクトから幾つかの認定位置スタンプを定期的に(例えば1日1回)受け取る。例えば、認証ツリーはルートを有するハッシュツリーを使用して計算されても良く、別の当事者によって確認可能である。
この例は、クラウド内のオブジェクトの位置の確認可能な真正性及び追跡可能性を可能にする。最初の2つの方法は、要求側の仮想マシンインスタンスの位置をキーサーバに知らせて効率的且つ安全な実現を得るために、表1のステップ3(パーソナル化)又はステップ5(キー要求)と組み合わせられても良い。
別の例では、VMインスタンスが、インスタンス承認証明書を得るための要求を属性に基づいて生成せず、発行もしない。代わりに、キーサーバには、インスタンス承認証明書を発行するための命令が別のエンティティから与えられる。
表5:管理者ユーザによって行われる承認セットアップ
3.管理者−[承認証明書要求(属性)]→キーサーバ
4.キーサーバ−[承認証明書応答(承認証明書)]→管理者
4a.管理者−[承認証明書提供(承認証明書)]→VMインスタンス
本明細書では、表5のステップ3、ステップ4、及びステップ4aが、例えば表1のステップ3及びステップ4を置換することができる。当初、パーソナル化要求/パーソナル化応答とラベル付けしていたメッセージが、ここでは承認証明書要求/承認証明書応答に名称変更されている。管理者は、ポータルを介してキーサーバにアクセスし、新たな仮想マシンインスタンスの承認証明書を要求することができる。この要求の一環として、管理者は新たなインスタンスの一意識別情報(上記の対話表5の「属性」で示す)等の何らかの詳細を生成し又は入力することができる。要求を処理した後、キーサーバは、管理者に送られる一意のコードを作成することができる。このコードは、承認証明書の代わりになる。その後、ステップ4aで、仮想マシンインスタンスを承認するために管理者が承認証明書を用いて仮想マシンインスタンスを構成する。
上記の方式で使用されるインスタンス承認証明書の良い例は、インスタンスキーを含む。キーサーバから取得されるインスタンスキーの保有者は、インスタンスキーを使用してVMインスタンスがキーを保持し、従ってVMインスタンスが承認されていることを証明する。キー又は他の証明書を非暗号化形式で送ることはセキュリティの脆弱性をもたらし得る。従って、インスタンスキー又は他のインスタンス証明書が使用時にデジタル保護され得る。例えば、この保護は、キーハッシュ関数によって行われても良い。改変形態では、インスタンスキーが対称キーではなく、任意選択的に認可証を有する秘密キーである。インスタンスは、この秘密キーを使用し、例えばデータキーを得るための要求等の要求に署名することにより、自らが実際にインスタンスであることをキーサーバに証明することができる。別の改変形態では、承認証明書がキーではなく、ソフトウェアトークン又はアサーション、即ちインスタンスを承認するキーサーバによって署名され、後でキーサーバに提示され得るステートメントである。別の改変形態では、承認証明書が属性ベースのキーセットによって実現される。その場合、インスタンスは1組のキーを取得し、各キーは役割等の特定の属性に関連する。インスタンスはその後、それらのキーのサブセットを、例えばデータキーを得るための要求内でキーサーバに提示する。提示されるキーは、要求を効率的に処理するためにキーサーバによって使用され、インスタンスごとにキーが1つあるよりも細かい細分性を可能にする。
本明細書に開示した技法の応用例、とりわけ個人健康情報(PHI:personal health information)を含む健康管理クラウドアプリケーション等、より強いデータ保護を必要とする応用例が、クラウドコンピューティングの分野内にあり得る。
データオブジェクトの暗号化を含む、クラウドコンピューティング内のデータを保護するための方法を提供することができ、この方法は、仮想マシンインスタンスがキーサーバにキー要求を送り、仮想マシンインスタンスが承認される場合、キーサーバが暗号化データオブジェクト用の復号キーで応答するステップを有する。この方法は、仮想マシンインスタンスがキーサーバにパーソナル化要求を送り、キーサーバがパーソナル化された識別情報及び承認キーで応答するステップにより、仮想マシンインスタンスをまずパーソナル化し、承認するように拡張され得る。この方法は、キー要求がユーザ証明書を含み、キーが要求されているデータに関してキーサーバが利用者の承認を評価するステップにより、利用者に依拠する承認を含むように拡張され得る。この方法は、新たな仮想マシンインスタンスをキーサーバにおいて登録することにより、クラウドユーザが新たな仮想マシンインスタンスを事前承認し、キーサーバが仮想マシンインスタンスからの更なる要求を処理する前に承認の有無を検証するステップにより、仮想マシンイメージの窃盗及び未承認のインスタンス化を防ぐように拡張され得る。この方法は、パーソナル化された仮想マシンインスタンスがキー要求内にシーケンス番号を含め、キーサーバが、キー要求に応答する前にシーケンス番号が狭義単調増加していることを確認するステップにより、仮想マシンインスタンスのクローニングを防ぐように拡張され得る。この方法は、仮想マシンインスタンスの持続的な記憶又はコピーを無効にするロック要求をクラウドユーザがクラウドサーバに送るステップにより、静止時のクローニング及びスナップショットの作成を防ぐように拡張され得る。この方法は、キーサーバが、インスタンス登録、パーソナル化要求、キー要求等の仮想マシンの動作のログを取るステップにより、仮想マシンインスタンスの動作を追跡し、制御するように拡張され得る。この方法は、キーサーバが仮想マシンインスタンスの位置情報を取得し、要求されたキーを返す評価の際にその情報を使用するステップにより、許可された位置的領域外にデータオブジェクトが移動され、かかる領域外でデータオブジェクトが使用され、又はアクセスされるのを防ぐように拡張され得る。
データキーを得るための要求が受け付けられるべきかどうかがキーサーバシステム6によって判定され/評価される一環として、リスク評価を行って要求の正当性(例えば、インスタンスが危害を受けていることを示唆し得る、インスタンスが自らの通常のパターン以外に不合理な数のデータキーを要求しないかどうか)を判定することができる。このために、キーサーバシステムはそのロギングを使用する。
本発明はコンピュータプログラム、とりわけ本発明を実践するのに適した担体上の又は担体内のコンピュータプログラムにも当てはまることが理解される。プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形態等にあるコード中間ソース及びオブジェクトコードの形式、又は本発明による方法を実施する際の使用に適した他の任意の形式を取ることができる。かかるプログラムは多くの異なるアーキテクチャ設計を有し得ることも理解されよう。例えば、本発明による方法又はシステムの機能を実装するプログラムコードは、1つ又は複数のサブルーチンに細分されても良い。これらのサブルーチンの間で機能を分散させる多くの異なる方法が当業者には明らかである。サブルーチンは、独立プログラムを形成するように1つの実行可能ファイル内に一緒に記憶され得る。そのような実行可能ファイルは、コンピュータ実行可能命令、例えばプロセッサ命令及び/又はインタプリタ命令(例えばJava(登録商標)インタプリタ命令)を含むことができる。或いは、サブルーチンの1つ、複数、又は全てが少なくとも1つの外部ライブラリファイル内に記憶され、例えば実行時に主プログラムに静的に又は動的にリンクされても良い。主プログラムは、サブルーチンの少なくとも1つに対する少なくとも1つの呼び出しを含む。サブルーチンは、互いへの呼び出しを含むこともできる。コンピュータプログラム製品に関する実施形態は、本明細書に記載した方法の少なくとも1つの各処理ステップに対応するコンピュータ実行可能命令を含む。これらの命令はサブルーチンに細分され、且つ/又は静的に若しくは動的にリンクされ得る1つ又は複数のファイル内に記憶されても良い。コンピュータプログラム製品に関する別の実施形態は、本明細書に記載したシステム及び/又は製品の少なくとも1つの各手段に対応するコンピュータ実行可能命令を含む。これらの命令はサブルーチンに細分され、且つ/又は静的に若しくは動的にリンクされ得る1つ又は複数のファイル内に記憶されても良い。
コンピュータプログラムの担体は、プログラムを運ぶことができる任意のエンティティ又は装置とすることができる。例えば担体は、ROM、例えばCD ROMや半導体ROM、又は磁気記録媒体、例えばフラッシュドライブやハードディスク等の記憶媒体を含むことができる。更に担体は、電気ケーブル若しくは光ケーブルにより、又は無線若しくは他の手段によって伝えることができる電気信号や光信号等の伝送可能担体とすることができる。プログラムがそのような信号内に具体化される場合、担体は、そのようなケーブル又は他の装置若しくは手段によって構成され得る。或いは担体は、プログラムが埋め込まれる集積回路とすることができ、集積回路は関連する方法を実行するように適合され、又は関連する方法を実行する際に使用されるように適合される。
上述の実施形態は本発明を限定するのではなく例示するものであり、当業者は添付の特許請求の範囲から逸脱することなく多くの代替的実施形態を設計できることに留意すべきである。特許請求の範囲では、括弧の間に配置される如何なる参照符号も、請求項を限定するものとして解釈すべきでない。動詞「含む」及びその活用形を使用することは、請求項の中で述べるもの以外の要素又はステップの存在を排除しない。要素の前にくる冠詞「a」又は「an」は、その要素が複数存在することを排除しない。本発明は、幾つかの別個の要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実施され得る。幾つかの手段を列挙する装置の請求項では、それらの手段の幾つかが、ハードウェアの同一アイテムによって具体化され得る。或る手段が互いに異なる従属項の中で引用されるという単なる事実は、これらの手段の組み合わせを有利に使用できないことを示すものではない。

Claims (18)

  1. 仮想マシンインスタンスを実行するためのシステムであって、
    仮想マシンインスタンスを作成するための実行環境を含み、前記仮想マシンインスタンスは、
    前記仮想マシンインスタンスの外部で作成され前記仮想マシンインスタンスに一意に関連するインスタンス承認証明書を受け取るためのインスタンス承認ユニットと、
    データキーを得るための要求を、前記仮想マシンインスタンスに関連する前記インスタンス承認証明書に基づいて生成するためのデータキーユニットと、
    前記データキーに基づいてデータ項目を復号するための復号ユニットと
    を含む、システム。
  2. 前記仮想マシンインスタンスが、利用者又は利用者のグループに関連するユーザ証明書を得るためのユーザ証明書ユニットを更に含み、前記データキーユニットが、前記ユーザ証明書に更に基づいて前記要求を生成する、請求項1に記載のシステム。
  3. 前記仮想マシンインスタンスが、利用者又は利用者のグループに関連するユーザ証明書を得るためのユーザ証明書ユニットを更に含み、前記復号ユニットが、前記ユーザ証明書に更に基づいて前記データ項目を復号する、請求項1に記載のシステム。
  4. 前記インスタンス承認ユニットが、前記インスタンス承認証明書を得るための要求を発行し、前記要求は前記仮想マシンインスタンスに固有の少なくとも1つの属性を示す、請求項1乃至3の何れか一項に記載のシステム。
  5. 前記仮想マシンインスタンスに関連する承認コードをキーサーバにおいて登録し、前記承認コードを前記仮想マシンインスタンスに与えるためのインスタンス所有者ユニットを更に含み、
    前記少なくとも1つの属性が前記承認コードを示す、請求項に記載のシステム。
  6. 前記インスタンス所有者ユニットが、仮想マシンの前記実行環境に承認コードを含む命令を送り、前記実行環境が、前記命令を受け取ることに応答して前記仮想マシンインスタンスを作成し、前記仮想マシンインスタンスに前記承認コードを与える、請求項に記載のシステム。
  7. 前記データキーユニットは、前記仮想マシンインスタンスによって発行される一連の要求内の前記要求の位置を示すコードを、前記データキーを得るための前記要求内に含める、請求項1乃至の何れか一項に記載のシステム。
  8. 前記仮想マシンインスタンスが、前記データキー及び/若しくは前記データキーを使用して復号されたデータを揮発性メモリ内に保、請求項1乃至の何れか一項に記載のシステム。
  9. 前記仮想マシンインスタンスが、前記データキー及び前記データキーを使用して復号されたデータを使用後に消去する、請求項1乃至8の何れか一項に記載のシステム。
  10. 仮想マシンインスタンスにキーを発行するためのキーサーバシステムであって、
    仮想マシンインスタンスを、前記仮想マシンインスタンスに固有の少なくとも1つの属性に基づいて識別するためのインスタンス識別ユニットと、
    インスタンス承認証明書を生成し、前記インスタンス承認証明書を前記仮想マシンインスタンスに一意に関連付けるためのインスタンス承認判定部と、
    前記仮想マシンインスタンスに前記インスタンス承認証明書を与えるためのインスタンス承認提供ユニットと、
    データキーを得るための要求を、前記仮想マシンインスタンスから受け取るためのデータキー要求受信部であって、前記データキーを得るための前記要求は、前記インスタンス承認証明書に関連するインスタンス承認コンポーネントを含む、データキー要求受信部と、
    前記インスタンス承認コンポーネントに基づき、前記仮想マシンインスタンスが前記データキーの受取りを承認されているかどうかを判定するためのデータ承認ユニットと、
    前記仮想マシンインスタンスが前記データキーの受取りを承認されている場合に、前記仮想マシンインスタンスに前記データキーを与えるためのデータキー提供ユニットと
    を含む、キーサーバシステム。
  11. 前記インスタンス承認証明書を得るための要求を、前記仮想マシンインスタンスから受け取るためのインスタンス証明書要求受信部であって、前記要求は前記仮想マシンインスタンスに固有の前記属性を示す、インスタンス証明書要求受信部と、
    前記属性に基づいて前記仮想マシンインスタンスの有効性を確認するためのインスタンス検証ユニットと
    を更に含む、請求項10に記載のキーサーバシステム。
  12. 前記データ承認ユニットが、前記仮想マシンインスタンスの位置に更に基づき、前記仮想マシンインスタンスが前記データキーの受取りを承認されているかどうかの前記判定を行う、請求項10又は11に記載のキーサーバシステム。
  13. 前記インスタンス検証ユニットが、前記仮想マシンインスタンスの位置を示す属性に更に基づき、前記仮想マシンインスタンスの前記有効性の前記確認を行う、請求項11に記載のキーサーバシステム。
  14. 前記データキーを得るための前記要求が、前記仮想マシンインスタンスの利用者又は利用者のグループに関連するユーザ証明書を更に示し、
    前記データ承認ユニットが、前記データキーを得るための前記要求と共に受け取られる前記ユーザ証明書の指示及び前記データキーによって保護されているデータのアクセスポリシに更に基づき、前記仮想マシンインスタンスが前記データキーの受取りを承認されているかどうかの前記判定を行う、
    請求項10乃至13の何れか一項に記載のキーサーバシステム。
  15. 仮想マシンインスタンスとしてインスタンス化可能な仮想マシンイメージであって、
    前記仮想マシンインスタンスの外部で作成され前記仮想マシンインスタンスに一意に関連するインスタンス承認証明書を前記仮想マシンインスタンスに受け取らせるための命令コードと、
    データキーを得るための要求を、前記仮想マシンインスタンスに関連する前記インスタンス承認証明書に基づいて前記仮想マシンインスタンスに生成させるための命令コードと、
    前記データキーに基づいてデータ項目を前記仮想マシンインスタンスに復号させるための命令コードと
    を含み、
    各命令コードが、インスタンスクリエータにより実行される、仮想マシンイメージ。
  16. 仮想マシンインスタンスを実行する方法であって、前記仮想マシンインスタンスによる、
    インスタンス承認ユニットにて、前記仮想マシンインスタンスの外部で作成され前記仮想マシンインスタンスに一意に関連するインスタンス承認証明書を受け取るステップと、
    データキーユニットにて、データキーを得るための要求を、前記仮想マシンインスタンスに関連する前記インスタンス承認証明書に基づき生成するステップと、
    復号ユニットにて、前記データキーに基づいてデータ項目を復号するステップと
    を含む、方法。
  17. 仮想マシンインスタンスにキーを発行する方法であって、
    インスタンス識別ユニットにて、仮想マシンインスタンスを、前記仮想マシンインスタンスに固有の少なくとも1つの属性に基づいて識別するステップと、
    インスタンス承認判定部にて、インスタンス承認証明書を生成し、前記インスタンス承認証明書を前記仮想マシンインスタンスに一意に関連付けるステップと、
    インスタンス承認提供ユニットにて、前記インスタンス承認証明書を前記仮想マシンインスタンスに与えるステップと、
    データキー要求受信部にて、データキーを得るための要求を、前記仮想マシンインスタンスから受け取るステップであって、前記データキーを得るための前記要求は前記インスタンス承認証明書に関連するインスタンス承認コンポーネントを含む、ステップと、
    データ承認ユニットにて、前記インスタンス承認コンポーネントに基づき、前記仮想マシンインスタンスが前記データキーの受取りを承認されているかどうかを判定するステップと、
    データキー提供ユニットにて、前記仮想マシンインスタンスが前記データキーの受取りを承認されている場合に、前記仮想マシンインスタンスに前記データキーを与えるステップと
    を含む、方法。
  18. 請求項16又は17に記載の方法をプロセッサシステムに実行させるための命令を含む、コンピュータプログラム。
JP2015536244A 2012-10-12 2013-09-09 仮想マシンによる安全なデータ処理 Active JP6357158B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261712887P 2012-10-12 2012-10-12
US61/712,887 2012-10-12
PCT/IB2013/058394 WO2014057369A1 (en) 2012-10-12 2013-09-09 Secure data handling by a virtual machine

Publications (3)

Publication Number Publication Date
JP2015537428A JP2015537428A (ja) 2015-12-24
JP2015537428A5 JP2015537428A5 (ja) 2016-10-27
JP6357158B2 true JP6357158B2 (ja) 2018-07-11

Family

ID=49674350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015536244A Active JP6357158B2 (ja) 2012-10-12 2013-09-09 仮想マシンによる安全なデータ処理

Country Status (7)

Country Link
US (1) US9635013B2 (ja)
EP (1) EP2907071B1 (ja)
JP (1) JP6357158B2 (ja)
CN (1) CN104756127B (ja)
BR (1) BR112015007854A2 (ja)
RU (1) RU2648941C2 (ja)
WO (1) WO2014057369A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102222891B1 (ko) * 2019-12-06 2021-03-04 한국항공우주연구원 인공위성 소프트웨어를 검증하는 시뮬레이터, 인공위성 소프트웨어를 검증하는 방법 및 컴퓨터 프로그램

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078754B1 (en) * 2013-09-24 2018-09-18 Amazon Technologies, Inc. Volume cryptographic key management
US9231923B1 (en) * 2013-11-12 2016-01-05 Amazon Technologies, Inc. Secure data destruction in a distributed environment using key protection mechanisms
US10095532B2 (en) * 2014-04-28 2018-10-09 Netkine, Inc. Providing excess compute resources with virtualization
US9607170B2 (en) * 2014-05-02 2017-03-28 Henry R. Williams Compromise free cloud data encryption and security
WO2015168913A1 (zh) * 2014-05-08 2015-11-12 华为技术有限公司 一种证书获取方法和设备
US9819650B2 (en) 2014-07-22 2017-11-14 Nanthealth, Inc. Homomorphic encryption in a healthcare network environment, system and methods
US9652276B2 (en) * 2014-09-17 2017-05-16 International Business Machines Corporation Hypervisor and virtual machine protection
US11455181B1 (en) * 2014-09-19 2022-09-27 Amazon Technologies, Inc. Cross-network connector appliances
US9489510B1 (en) * 2014-09-24 2016-11-08 Amazon Technologies, Inc. Detecting generation of virtual machine authentication
US11563566B2 (en) * 2014-10-27 2023-01-24 Micro Focus Llc Key splitting
DE102015210734B4 (de) 2014-10-31 2021-03-04 Hewlett Packard Enterprise Development Lp Verwaltung kryptographischer schlüssel
JP6414863B2 (ja) 2014-12-30 2018-10-31 華為技術有限公司Huawei Technologies Co.,Ltd. 仮想化システムにおける暗号復号方法および装置、およびシステム
GB201513039D0 (en) * 2015-07-23 2015-09-09 Eaton Ind France Sas Shutting down of a virtual system
US10019580B2 (en) * 2015-11-19 2018-07-10 Federal Reserve Bank Of Philadelphia Integrity checking for computing devices
KR102510868B1 (ko) * 2016-07-07 2023-03-16 삼성에스디에스 주식회사 클라이언트 시스템 인증 방법, 클라이언트 장치 및 인증 서버
CN106302417A (zh) * 2016-08-05 2017-01-04 浪潮(北京)电子信息产业有限公司 一种虚拟化信息传输方法及系统
US10303899B2 (en) * 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
EP3516573A1 (en) * 2016-09-22 2019-07-31 Telefonaktiebolaget LM Ericsson (PUBL) Version control for trusted computing
US10310885B2 (en) * 2016-10-25 2019-06-04 Microsoft Technology Licensing, Llc Secure service hosted in a virtual security environment
KR102511451B1 (ko) 2016-11-09 2023-03-17 삼성전자주식회사 리치 실행 환경에서 보안 어플리케이션을 안전하게 실행하는 컴퓨팅 시스템
WO2018213744A2 (en) 2017-05-18 2018-11-22 Visa International Service Association Reducing compromise of sensitive data in virtual machine
EP3416086A1 (en) * 2017-06-15 2018-12-19 Gemalto Sa Method for managing an instance of a class
US11017127B2 (en) * 2018-01-31 2021-05-25 Seagate Technology Llc Storage compute appliance with internal data encryption
CN109508224B (zh) * 2018-11-15 2022-07-05 中国电子科技网络信息安全有限公司 一种基于kvm虚拟机的用户数据隔离防护系统及方法
RU2747465C2 (ru) * 2019-07-17 2021-05-05 Акционерное общество "Лаборатория Касперского" Система и способ устранения проблем функционирования сервисов в сети передачи данных, содержащей виртуальные машины
RU2748963C2 (ru) * 2019-07-17 2021-06-02 Акционерное общество "Лаборатория Касперского" Система и способ выявления проблем функционирования сервисов в сети передачи данных, содержащей виртуальные машины
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11550944B2 (en) * 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
EP4173232A1 (en) * 2020-06-29 2023-05-03 Illumina, Inc. Temporary cloud provider credentials via secure discovery framework
US11604673B2 (en) 2020-07-30 2023-03-14 Red Hat, Inc. Memory encryption for virtual machines by hypervisor-controlled firmware
WO2023187442A1 (en) * 2022-03-29 2023-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Cloud native key management using physical network function

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510523B1 (en) * 1999-02-22 2003-01-21 Sun Microsystems Inc. Method and system for providing limited access privileges with an untrusted terminal
JP2001285282A (ja) * 2000-03-30 2001-10-12 Mitsubishi Electric Corp 認証方式
US7624269B2 (en) * 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
US8549592B2 (en) * 2005-07-12 2013-10-01 International Business Machines Corporation Establishing virtual endorsement credentials for dynamically generated endorsement keys in a trusted computing platform
US20070204166A1 (en) * 2006-01-04 2007-08-30 Tome Agustin J Trusted host platform
US8479264B2 (en) * 2006-09-29 2013-07-02 Micron Technology, Inc. Architecture for virtual security module
US7822206B2 (en) * 2006-10-26 2010-10-26 International Business Machines Corporation Systems and methods for management and auto-generation of encryption keys
JP2010282242A (ja) * 2007-08-20 2010-12-16 Nec Corp アクセス制御システム、アクセス制御方法およびアクセス制御用プログラム
JP4342595B1 (ja) * 2008-05-09 2009-10-14 株式会社東芝 情報処理装置、情報処理システム、および暗号化情報管理方法
US8752165B2 (en) 2008-05-29 2014-06-10 Apple Inc. Provisioning secrets in an unsecured environment
US8336079B2 (en) * 2008-12-31 2012-12-18 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
US8341427B2 (en) 2009-02-16 2012-12-25 Microsoft Corporation Trusted cloud computing and services framework
EP2278514B1 (en) * 2009-07-16 2018-05-30 Alcatel Lucent System and method for providing secure virtual machines
US8812871B2 (en) 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
WO2011152910A1 (en) * 2010-06-02 2011-12-08 Vmware, Inc. Securing customer virtual machines in a multi-tenant cloud
JP5589583B2 (ja) * 2010-06-15 2014-09-17 富士ゼロックス株式会社 監視ポータル、監視システム、端末、そのプログラム
WO2011159842A2 (en) * 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US8694777B2 (en) * 2010-08-13 2014-04-08 International Business Machines Corporation Securely identifying host systems
US20120054486A1 (en) 2010-08-31 2012-03-01 MindTree Limited Securing A Virtual Environment And Virtual Machines
US8443365B2 (en) * 2010-11-03 2013-05-14 Hewlett-Packard Development Company, L.P. Methods and systems to clone a virtual machine instance
US8607067B1 (en) * 2011-03-01 2013-12-10 Amazon Technologies, Inc. Techniques for attesting to information
US8495356B2 (en) 2010-12-31 2013-07-23 International Business Machines Corporation System for securing virtual machine disks on a remote shared storage subsystem
US9021264B2 (en) * 2011-02-03 2015-04-28 Cloudlink Technologies Inc. Method and system for cloud based storage
US9749291B2 (en) * 2011-07-15 2017-08-29 International Business Machines Corporation Securing applications on public facing systems
US8583920B1 (en) * 2012-04-25 2013-11-12 Citrix Systems, Inc. Secure administration of virtual machines
US8863255B2 (en) * 2012-09-14 2014-10-14 Netflix, Inc. Security credential deployment in cloud environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102222891B1 (ko) * 2019-12-06 2021-03-04 한국항공우주연구원 인공위성 소프트웨어를 검증하는 시뮬레이터, 인공위성 소프트웨어를 검증하는 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
BR112015007854A2 (pt) 2017-07-04
RU2648941C2 (ru) 2018-03-28
EP2907071B1 (en) 2018-11-14
JP2015537428A (ja) 2015-12-24
RU2015117644A (ru) 2016-12-10
US20150244710A1 (en) 2015-08-27
CN104756127A (zh) 2015-07-01
EP2907071A1 (en) 2015-08-19
CN104756127B (zh) 2018-03-27
WO2014057369A1 (en) 2014-04-17
US9635013B2 (en) 2017-04-25

Similar Documents

Publication Publication Date Title
JP6357158B2 (ja) 仮想マシンによる安全なデータ処理
US11126754B2 (en) Personalized and cryptographically secure access control in operating systems
CN110120869B (zh) 密钥管理系统及密钥服务节点
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
JP6114832B2 (ja) 仮想マシンのための管理制御方法、装置及びシステム
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US8683214B2 (en) Method and device that verifies application program modules
US11640448B2 (en) License confirmation via embedded confirmation challenge
US20070039046A1 (en) Proof of execution using random function
US20140052994A1 (en) Object Signing Within a Cloud-based Architecture
KR101817152B1 (ko) 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법
CN103051451A (zh) 安全托管执行环境的加密认证
JP2017225054A (ja) プロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラム
JP6590807B2 (ja) プライバシー機密情報の交換を制御するための方法およびシステム
CA2425006C (en) Saving and retrieving data based on symmetric key encryption
Galibus et al. Elements of cloud storage security: concepts, designs and optimized practices
CN106971105B (zh) 一种基于iOS的应用程序遭遇假面攻击的防御方法
US11411733B1 (en) Systems and methods for identity and access control
CA3090139A1 (en) System and method for secure access management
Galanou et al. Matee: Multimodal attestation for trusted execution environments
CN104580161A (zh) 一种基于安全标识文件的软件实名认证方法和装置
CA3042984C (en) Balancing public and personal security needs
Alawneh Mitigating the risk of insider threats when sharing credentials.
NZ726067B2 (en) System and methods for using cipher objects to protect data

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160908

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171211

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: 20180518

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180615

R150 Certificate of patent or registration of utility model

Ref document number: 6357158

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250