JP6985385B2 - 仮想セキュリティ環境内でホスティングされるセキュア・サービス - Google Patents

仮想セキュリティ環境内でホスティングされるセキュア・サービス Download PDF

Info

Publication number
JP6985385B2
JP6985385B2 JP2019521371A JP2019521371A JP6985385B2 JP 6985385 B2 JP6985385 B2 JP 6985385B2 JP 2019521371 A JP2019521371 A JP 2019521371A JP 2019521371 A JP2019521371 A JP 2019521371A JP 6985385 B2 JP6985385 B2 JP 6985385B2
Authority
JP
Japan
Prior art keywords
role
image
execution environment
key
service
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
JP2019521371A
Other languages
English (en)
Other versions
JP2019533253A (ja
JP2019533253A5 (ja
Inventor
イー. ピアソン,マルコム
アカール,トルガ
ヴェルマ,ラフール
Original Assignee
マイクロソフト テクノロジー ライセンシング,エルエルシー
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 マイクロソフト テクノロジー ライセンシング,エルエルシー filed Critical マイクロソフト テクノロジー ライセンシング,エルエルシー
Publication of JP2019533253A publication Critical patent/JP2019533253A/ja
Publication of JP2019533253A5 publication Critical patent/JP2019533253A5/ja
Application granted granted Critical
Publication of JP6985385B2 publication Critical patent/JP6985385B2/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/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
    • 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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0822Key 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) using key encryption key
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/041Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 using an encryption or decryption engine integrated in transmitted data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

[0001] コンピュータ・システムが、現在、広く使用されている。一部のそのようなコンピュータ・システムは、それらがサービスをホスティングするリモート・サーバ環境内(クラウド内など)に展開される。
[0002] ホスティングされるサービスは、セキュリティが重要であるサービスである場合がある。たとえば、一部のホスティングされるサービスは、支払いサービス、クレジット・カード処理サービス、バンキング・サービス、または機密情報を処理する様々な他のサービスとすることができる。
[0003] これらのタイプのシステムは、通常は別個のシステム上でホスティングされるインフラストラクチャを有する。たとえば、各ホスティングされるサービスは、別々のまたは別個の物理マシン上でホスティングされ得る。これらのマシンは、物理的セキュリティを提供するために物理的にケージ化された環境内で展開され得る。また、これらのタイプのシステムのコードを記述する開発者または他のプログラマは、やはりそのようなサービスに対して展開される開発されるコードに関するセキュリティを高めるために、相対的に分離されたネットワークで、保護されたまたはケージ化された物理的な施設に入れられることが多い。
[0004] これは、サービスなどに関する複数の欠点をもたらす可能性がある。たとえば、各サービスが、専用の物理マシン(またはサーバ)上で展開され、仮想化が用いられないことが多く、スケーラビリティが非常に難しくなる可能性がある。そのようなサービスをスケーリングするためには、追加の物理マシンが、追加のサービスまたはサービス・インスタンスに関して追加されなければならない。さらに、開発者またはプログラマが、物理的に安全で厳密に制御された環境内でコードを生成することを要求されるので、これが、変更を行うことが非常に難しくなる可能性があるという点で柔軟性のなさにつながる可能性がある。
[0005] 上の議論は、単に全般的な背景情報として提供され、本発明の請求範囲を判定する際の助けとして使用されることは意図されていない。
[0006] 実行環境は、展開された仮想マシンイメージを有する。仮想マシンイメージは、役割によって識別されるサービスを提供する。実行環境は、仮想マシンイメージの尺度を生成し、実行環境内での仮想マシンイメージの動作を可能にする役割鍵を要求するために、その測定値を鍵サービスに供給する。鍵サービスは、仮想マシンイメージが役割にマッピングされるかどうかを判定し、そうである場合には、要求する実行環境に役割鍵を返す。
[0007] この「発明の概要」は、下の「発明を実施するための形態」でさらに説明される選択概念を簡単に紹介するものである。この「発明の概要」は、本発明請求の主要な特徴または必須の特徴を識別することを意図されたものではなく、本発明の請求範囲を判定する際の助けとして使用されることも意図されていない。本発明は、「背景技術」で注記した不利益のいずれかまたはすべてを解決する実施態様に限定されない。
[0008]サービスを開発し、サービスに対応する仮想マシンイメージを生成する、開発チャネルの一例を示す流れ図である。 [0009]クラウド・ケージ・アーキテクチャの一例を示すブロック図である。 [0010]展開サービスの動作の一例を示す流れ図である。 [0011]実行環境の動作の一例を示す流れ図である。 [0012]要求された役割鍵を実行環境に供給する際の鍵サービスの動作の一例を示す流れ図である。 [0013]図1に示されたアーキテクチャ内で使用され得るコンピューティング環境の一例を示すブロック図である。
[0014] 図1は、開発チャネル100の動作の一例を示す流れ図である。開発チャネル100は、実例として、開発者102、ビルド・システム104、署名システム106、仮想マシンイメージ・ジェネレータ108、およびイメージ測定システム110を含む。図1は、開発チャネル100が、クラウド・ケージ123(それ自体は、信頼される実行環境124および126を含む)、クラウド・ケージ展開サービス128、およびクラウド・ケージ鍵サービス130を含むクラウド・アーキテクチャ122に結合され得、他の項目129を含むことができることをも示す。図1は、1つまたは複数のセキュア・サービス・ユーザ・システム131が、ネットワーク132を介してアーキテクチャ122にアクセスできることをも示す。
[0015] 図1に示された例では、開発者102は、実例として、信頼される実行環境124〜126内などのホスティングされるセキュア・サービス内で走行させられるコードであるソース・コード112を開発する。そのようなサービスは、支払いサービス、バンキング・サービス、クレジット・カード処理サービス、または様々な他のサービスのいずれかとすることができる。
[0016] ビルド・システム104は、ソース・コード112を受け取り、コードを実行可能バイナリ(または他のビルドされたコード)114にビルドする。コード114は、実例として、スクリプトおよび様々なデータ・ファイルを含むことができるコンパイルされた実行可能コードである。これは、実例として、署名システム106に供給される。署名システム106は、実例として、署名された実行可能コード116を生成するためにコード114に署名する。コード116が署名されるので、これは、署名が行われた後にコード116が変更されないことを保証することができる。署名は、コード署名者(または署名システム106のアイデンティティ)をも示すことができる。
[0017] その後、仮想マシンイメージ・ジェネレータ108は、適当なオペレーティング・システム・イメージと署名された実行可能コード116とを組み合わせることによって仮想マシンイメージを生成する。結果の仮想マシン(VM)イメージ118は、1つまたは複数のサービスと、実行環境内でこれらのサービスを実施するために展開され得るデータベースとを含むことができる。一例では、仮想マシンイメージ・ジェネレータ108は、仮想マシン用のハード・ディスクとして仮想ハード・ドライブ・フォーマットを使用することができる。これは、複数のオペレーティング・システムが単一のマシン上に常駐することを可能にすることができる。
[0018] その後、イメージ測定システム110は、仮想マシンイメージ118に基づいて1つまたは複数の仮想マシンイメージ測定値120を生成する。測定値120は、実例として、各イメージ118を表す再計算可能な強いアイデンティティを含む。一例では、各測定値120は、対応するVMイメージ118に対して計算された暗号ハッシュ値とすることができる。その後、VMイメージ118およびそれに対応する測定値120は、クラウド環境(またはクラウド・アーキテクチャ)122に供給され得、ここで、1つまたは複数の信頼される実行環境124〜126内の仮想マシンによって実行され得る。
[0019] VMイメージ118は、VMイメージ118をそれが実行するサービスに対応する特定の役割にマッピングする役割−VMイメージ・マッピングと一緒に、クラウド・ケージ展開サービス128に供給され得る。VM測定値120も、VMイメージ118の特定の測定値を役割にマッピングする測定値−役割マッピングと一緒に、クラウド・ケージ鍵サービス130に供給され得る。さらに、VMイメージ118のうちの1つを実行するのに使用されている特定の信頼される実行環境124〜126は、VMイメージ測定値120によって表されるVMイメージ118を展開する特定の信頼される実行環境を識別する信頼される実行環境識別子をクラウド・ケージ鍵サービス130に送ることができる。
[0020] 短く言うと、動作中に、クラウド・ケージ展開サービス128は、信頼される実行環境124〜126に特定のVMイメージを展開することができる。その後、その環境124〜126は、クラウド・ケージ鍵サービス130に役割鍵を要求することができる。クラウド・ケージ鍵サービス130は、特定のVMイメージが特定の役割に適当であるかどうかと要求する実行環境とを識別し、そうである場合には、要求する実行環境がそのサービスを実行するように動作できるようにするために、要求する実行環境に戻って暗号化された役割鍵を返す。
[0021] 図1は、サービス(支払いサービスまたは他のセキュア・サービスなど)が信頼される実行環境124〜126に展開された後に、支払い(または他のセキュア・サービス)ユーザ・システム131が、ネットワーク132およびクラウド121を介して信頼される実行環境のうちの1つ内のサービスにアクセスできることをも示す。たとえば、セキュア・サービスが、クレジット・カード処理サービスである場合には、ユーザ・システム131を、クレジット・カード処理が必要であるクレジット・カード会社のシステムとすることができる。バンキング・サービスの場合には、システム131を、銀行で展開することができる。これらは、例にすぎない。
[0022] ネットワーク132は、広域ネットワーク、ローカル・エリア・ネットワーク、あるいは様々な他の有線もしくは無線のネットワークのいずれかまたはネットワークの組合せなど、様々なネットワークのいずれかとすることができる。一部が、例のために下でリストアップされる。
[0023] 図2は、クラウド121内で展開されたクラウド・ケージ・アーキテクチャ122の一例をより詳細に示すブロック図である。図2に示された項目の一部は、図1に示された項目に類似し、これらは、同様の番号を付けられている。
[0024] 図2に示されたアーキテクチャ122の全体的な動作を説明する前に、図2の項目の一部およびその動作の短い説明をまず提供する。図2に示された例では、クラウド・ケージ123は、1つまたは複数のプロセッサまたはサーバ136、信頼される実行環境124〜126を含むことができ、他の項目を含むこともできる。信頼される実行環境124は、暗号化解除システム141および測定システム142と一緒に、ハイパーバイザ138および1つまたは複数の仮想マシン140を含むことができる。信頼される実行環境124は、他の項目144をも含むことができる。信頼される実行環境126も、ハイパーバイザ146を含むことができ、あるいは、ハイパーバイザ138および146は、仮想マシン140〜148を生成するための単一のハイパーバイザとして実現され得る。実行環境126は、暗号化解除システム149、測定システム150、および様々な他の項目152をも含むことができる。信頼される実行環境124〜126は、同様のものまたは異なるものとすることができる。この説明において、信頼される実行環境124〜126は、同様と仮定され、したがって、信頼される実行環境124の動作だけが、本明細書で提供される。
[0025] 仮想マシン140は、実例として、クラウド・ケージ展開サービス128(下でより詳細に説明される)から仮想マシンイメージを受け取り、そのイメージを実行する。測定システム142は、仮想マシン140上で展開されたイメージを測定することができる。測定値は、イメージに暗号ハッシュ関数を適用することによって生成され得る。たとえば、イメージが、仮想ハード・ディスク・イメージによって表される場合に、測定値は、そのイメージにSHA−256ハッシュを適用することによって生成され得る。これは、一例にすぎず、仮想マシンイメージの測定値を生成する様々な他の形を使用することもできる。VMイメージによって表されたサービスを実行する際に、信頼される実行環境124は、ユーザ・システム131がサービスを使用するために相互作用することのできるアプリケーション・プログラミング・インターフェース(API)151を公開することができる。
[0026] 仮想マシンイメージを信頼される実行環境124に展開するために、クラウド・ケージ展開サービス128を使用することができる。一例では、サービス128は、1つまたは複数のプロセッサまたはサーバ154、展開エンジン156、仮想マシンイメージ・リポジトリ158、役割−仮想マシンイメージ・マッピング160を含むことができ、他の項目162を含むことができる。信頼される実行環境124は、実例として、展開エンジン156に役割(実行すべきサービスを表す)を供給する。その後、展開エンジン156は、役割−VMイメージ・マッピング160にアクセスして、その役割に対応する特定のVMイメージを識別し、VMイメージ・リポジトリ158からそのイメージを入手する。その後、展開エンジン156は、要求する信頼される実行環境124内の仮想マシン140上にそのVMイメージを展開する。これは、下で図3に関してより詳細に説明される。
[0027] VMイメージが仮想マシン140上に展開された後に、信頼される実行環境124は、実例として、それでも、展開された特定のサービス(または役割)を実行するために、それが使用する役割鍵を必要とする。すなわち、展開された仮想マシンイメージは、1つまたは複数のサービスおよびデータベースを表すコードを含むことができるが、その動作を実行するために必要な鍵をまだ有しない。したがって、信頼される実行環境124は、仮想マシン140上に展開されたVMイメージの測定値を生成し、これを、役割(サービスに対応する)と一緒に、動作するために必要な役割鍵を入手するためにクラウド・ケージ鍵サービス130に供給する。
[0028] クラウド・ケージ鍵サービス130は、1つまたは複数のプロセッサまたはサーバ164、仮想信頼される実行環境(VTEE)鍵サービス166、ポリシ・エンジン168、鍵ラッピング暗号エンジン170、VMイメージ測定値ストア172、測定値−役割マッピング174、役割鍵ストア/ジェネレータ176、鍵ラッパー鍵178を含むことができ、様々な他の項目180をも含むことができる。VTEE鍵サービス166は、要求(仮想マシンイメージ測定値、対応する役割、および要求する信頼される実行環境124のアイデンティティ)をポリシ・エンジン168に供給する。ポリシ・エンジン168は、要求する信頼される実行環境がVMイメージによって表される特定の役割を実行するのに適当な環境であることを検証するためにVMイメージ測定値172にアクセスする。エンジン168は、信頼される実行環境124によって供給されたVMイメージ測定値が、鍵の要求内で信頼される実行環境124によって識別された役割にマッピングされるかどうかを識別するために、測定値−役割マッピング174にもアクセスする。ポリシ・エンジン168が、肯定的に評価する場合には、これは、鍵を要求している信頼される実行環境が、識別された役割を実行するのに適当な環境であることを示す。これは、信頼される実行環境124内で展開されたVMイメージ内のコード(たとえば、オペレーティング・システム、コード、データベースなど)の測定値が、信頼される実行環境124によって識別された役割にマッピングすることをも示す。したがって、これは、信頼される実行環境124が適当であることと、コードが変更されておらず、識別された役割にマッピングすることとを示す。
[0029] その場合に、VTEE鍵サービス166は、鍵ラッピング暗号エンジンが、役割鍵ストア/ジェネレータ176から識別された役割の役割鍵を入手し、1つまたは複数の鍵ラッパー鍵178を用いてこれらの鍵をラップしまたは暗号化することを要求する。その後、ラップされた鍵は、VTEE鍵サービス166に戻って供給され、VTEE鍵サービス166は、要求する信頼される実行環境124にそれらを返す。要求する信頼される実行環境124では、それらの鍵は、暗号化解除システム141によって暗号化解除され、その環境内でサービス(または役割)を実行するのに使用され得る。
[0030] 図3は、クラウド・ケージ展開サービス128の動作の一例をより詳細に示す流れ図である。展開エンジン156は、まず、信頼される実行環境124内に展開されなければならない役割を識別する役割識別子を受け取る。これは、図3のブロック190によって示される。役割は、実例として、支払いサービス、クレジット・カード・サービス、その他など、信頼される実行環境124によってホスティングされるセキュア・サービスに対応する。これは、ブロック192によって示される。役割識別子は、任意のストリング194または他の表現196とすることができる。
[0031] その後、展開エンジン156は、役割に対応する特定のVMイメージを識別するために役割−VMイメージ・マッピング160にアクセスする。役割−VMイメージ・マッピングへのアクセスは、ブロック198によって示され、これらのマッピングに基づく、役割がマッピングされるVMイメージの識別は、ブロック200によって示される。一例では、マッピングは、下の式1に示されているように表され、ここで、「イメージ」は、仮想イメージ・フォーマットで表され、「H」は、暗号ハッシュ関数である。
φ:役割→H(イメージ) 式1
[0032] 役割マッピングΦは、役割マッピング署名鍵KΦを用いて署名され得、展開エンジン156は、信頼される実行環境124内の展開マシン上にインストールされた(たとえば、VM 140上にインストールされた)公開鍵認証局に対して署名を妥当性検査することができる。役割マッピング署名の妥当性検査は、ブロック202によって示される。やはり、VMイメージは、ブロック204によって示されるように、適当なオペレーティング・システムのイメージと組み合わされた署名されたコードとすることができる。VMイメージは、ブロック206によって示されるように1つまたは複数のサービスおよびデータベースを表すことができ、VMイメージは、ブロック208によって示されるように、他の形でも識別され得る。
[0033] その後、展開エンジン156は、識別されたVMイメージをVMイメージ・リポジトリ158から入手する。これは、ブロック210によって示される。その後、展開エンジン156は、識別されたVMイメージをクラウド・ベースの信頼される実行環境124に展開する。これは、ブロック212によって示される。
[0034] 図4は、クラウド・ケージ鍵サービス130に役割鍵を要求し、これらの鍵を受け取り、その作業を実行するためにこれらを使用する際の、信頼される実行環境124の動作の一例を示す流れ図である。まず、環境124内で実行されるサービスを表すVMイメージが、信頼される実行環境124内で展開サービス128によって展開済みであると仮定する。これは、ブロック218によって示される。その後、信頼される実行環境124は、それが実行するサービスを表す役割の役割鍵が、動作を実行するのに必要であると判定する。これは、図4の流れ図でブロック220によって示される。
[0035] その後、測定システム142は、仮想マシン140上で展開された、展開されたVMイメージのVMイメージ測定値を生成する。これは、ブロック222によって示される。やはり、上で短く説明したように、VMイメージ測定値は、VMイメージにハッシュ関数を適用することによって入手され得る。これは、ブロック224によって示される。ブロック226によって示されるように、これを他の形で入手することもできる。
[0036] その後、信頼される実行環境124は、役割の役割鍵を入手するために、VMイメージ測定値および役割を識別する役割識別子をクラウド・ケージ鍵サービス130に送り、その結果、信頼される実行環境124は、その動作を実行できるようになる。これは、ブロック228によって示される。
[0037] その後、クラウド・ケージ鍵サービス130は、役割が、要求する信頼される実行環境に適当であることと、鍵が役割に適当であることとを検証する。そうである場合には、サービス130は、クラウド・ケージ123内の要求する信頼される実行環境124にラップされた(または暗号化された)役割鍵を返す。クラウド・ケージ鍵サービス130の動作は、下で図5に関してより詳細に説明され、信頼される実行環境124でのラップされたまたは暗号化された役割鍵の入手は、図4の流れ図のブロック230によって示される。
[0038] その後、信頼される実行環境124内の暗号化解除システム141は、受け取られた役割鍵をアンラップ(または暗号化解除)し、これらを使用して、それが実行しようとしている役割(またはサービス)内の作業を実行する。これは、図3の流れ図内のブロック232および234によって示される。信頼される実行環境内で実行される特定の作業は、信頼される実行環境がホスティングしまたは実行している特定のサービスに依存して大幅に変化する。たとえば、ブロック236によって示されるように、役割鍵を使用して、クレジット・カード情報を暗号化解除することができる。ブロック238によって示されるように、役割鍵を使用して、支払い処理を実行することができる。役割鍵は、もちろん、様々な他の形でも使用され得、これは、ブロック240によって示される。
[0039] 図5は、クラウド・ケージ鍵サービス130の動作の一例をより詳細に示す流れ図である。VTEE鍵サービス166は、まず、実行環境(信頼される実行環境124など)から役割鍵を要求する引用を受け取る。これは、図5の流れ図でブロック250によって示される。上で短く議論したように、引用は、要求する実行環境によって実行される特定の役割を識別する役割識別子252を含むことができる。引用は、実例として、その環境によって生成されたVM測定値をも含む。これは、ブロック254によって示される。引用は、要求を行っている特定の信頼される実行環境を識別する信頼される実行環境識別子256を含むことができる。要求は、他の項目258をも含むことができる。
[0040] その後、要求は、ポリシ・エンジン168に供給され、ここで、引用(または要求)が適当な信頼される実行環境から来たかどうかおよび引用(または要求)が識別された役割に関する正しいオペレーティング・システム、コードなどを有するかどうかを判定するために評価される。これは、図5の流れ図のブロック260によって示される。一例では、ポリシ・エンジン168は、要求する信頼される実行環境が、要求内で受け取られたVMイメージ測定値に対応するかどうかを識別するために、VMイメージ測定値ストア172にアクセスする。たとえば、ポリシ・エンジン168は、VMイメージが、適当な信頼される実行環境上で正しく展開されたかどうかを判定することができる。これは、ブロック262によって示される。
[0041] ポリシ・エンジン168は、要求する信頼される実行環境上で展開された(かつ、VMイメージ測定値によって表される)VMイメージが、識別された役割にマッピングされるかどうかを判定するために測定値−役割マッピング174にもアクセスすることができる。これは、ブロック264によって示される。したがって、VMイメージ測定値を仮定して、ポリシ・エンジン168は、以下のように、VMイメージを役割の集合にマッピングするマッピング174にアクセスすることによって役割の集合を作る。
θ:h→S
={役割|φ(役割)=h}
ただし、
h=H(イメージ) 式2
[0042] 上の式2から、マッピングΦが、イメージh(上の式1に示されているように、H(イメージ)と等しい)を役割の集合Sにマッピングすることがわかる。役割の集合Sは、マッピングΦによってVMイメージ測定値にマッピングされる役割である。役割の集合は、イメージ測定値hへのマッピングを仮定して役割から構成される。
[0043] ポリシ・エンジン168が、要求する信頼される実行環境がVMイメージ測定値によって識別されるVMイメージを走行させるのに適当な環境ではないと判定する場合、または、VMイメージ測定値が要求する信頼される実行環境の役割にマッピングしないと判定する場合のいずれかには、VTEE鍵サービス166は、ポリシ・エンジン168が、引用を肯定的に評価しなかったと判定する。これは、図5のブロック270によって示される。したがって、VTEE鍵サービス166は、ブロック272によって示されるように、役割鍵の要求を否定する。VTEE鍵サービス166は、その否定の評価に応答して、通知、警報、または他のメッセージを送るか、他の動作を実行することができる。これは、ブロック274によって示される。
[0044] しかし、ポリシ・エンジン168が、要求する信頼される実行環境124が、役割を実行するのに適当な感光であると判定すると仮定し、要求する信頼される実行環境によって供給されたVMイメージ測定値が、識別された役割にマッピングすると仮定すると、VTEE鍵サービス166は、ブロック270で、ポリシ・エンジン評価が肯定的または賛成であると判定する。その場合に、VTEE鍵サービス166は、要求する信頼される実行環境124に役割鍵を供給できるようにするために、役割鍵を入手するために鍵ラッピング暗号エンジンと相互作用する。
[0045] それを行うために、VTEE鍵サービス166は、役割識別子を鍵ラッピング暗号エンジン170に供給する。エンジン170は、識別された役割の役割鍵を入手しまたは生成するために、役割鍵ストア/ジェネレータ176にアクセスする。これは、図5の流れ図のブロック276によって示される。その後、エンジン170は、鍵ラッパー鍵178にアクセスし、1つまたは複数の鍵ラッパー鍵178を用いて役割鍵の集合をラップする(または暗号化する)。これは、図5の流れ図のブロック278によって示される。役割鍵は、個別にまたは集合としてラップされ得る。鍵ラッパー鍵は、ブロック280によって示されるように公開鍵とすることができ、役割鍵のラップは、他の形でも実行され得、これは、ブロック282によって示される。
[0046] 役割鍵は、任意の暗号鍵タイプとすることができ、ラップする鍵は、実例として、その特定の役割に関する公開鍵である。ラッパー鍵を入手する際に、エンジン170は、下の式3に示されているように、所与の役割をラップする公開鍵
Figure 0006985385


にマッピングするマップΨにアクセスすることができる。
Figure 0006985385

[0047] Skrは、次のように役割鍵をラップする公開鍵
Figure 0006985385


を用いて暗号化されたラップされた役割鍵の集合
Figure 0006985385


である。
Figure 0006985385

[0048] 鍵ラッピング暗号エンジン170は、役割鍵を入手し、これらを適当な鍵ラッパー鍵178を用いてラップした後に、ラップされた役割鍵をVTEE鍵サービス166に返し、VTEE鍵サービス166は、これらを、要求する信頼される実行環境124に返す。これは、図5の流れ図のブロック284によって示される。
[0049] したがって、クラウド・ケージが、複数の支払いサービスを役割として扱い、これらの役割を上で定義されたVMイメージにマッピングすることを了解されたい。クラウド・ケージ信頼される実行環境内で走行する役割またはサービスのいくつかの例は、とりわけ、仮想ハードウェア・セキュリティ・モジュール(または暗号サービス)、送金エージェント・サービス、送金エージェント・データベースとすることができる。
[0050] 上で説明されたアーキテクチャ内では、一例で、サーバ・ハードウェアのそれぞれが、実例として、ハイ・アシュアランス(high assurance)暗号プロセッサ、相対的に少量の鍵ストレージ、鍵対、およびクラウド・ケージ展開サービス128内の信頼されるハードウェアによってロードされたバイナリ・イメージを測定する能力を有する。ハイ・アシュアランス暗号プロセッサは、検証可能な証明書を有する公開鍵を有することができる。ハイ・アシュアランス暗号プロセッサは、そのハードウェアによって生成された鍵に関するハードウェア内の証明能力をも含むことができる。これは、鍵完全性を特定の鍵証明書に束縛する。さらに、上で議論したように、役割−VMイメージ・マッピングに署名することができる。署名鍵の秘密およびその公開鍵完全性は、別々のシステムによって検証され得、あるいは、これらのシステムは、クラウド・ケージ・アーキテクチャの一部とされ得る。役割鍵およびラッピング鍵は、上で議論したマッピングΦおよびΨに頼る。役割定義コードおよびデータは、署名され、外部機関とすることのできる認証局までさかのぼって検証され得る。
[0051] したがって、本システムが、開発リソースおよび展開リソースを取り巻く物理的なケージ・セキュリティがない場合であっても、セキュリティを保証することがわかる。本システムは、信頼される実行環境上で展開された仮想マシンイメージが変更されていないことを保証する。本システムは、役割鍵を入手する前に、仮想マシンイメージが、これらの鍵を入手するのに適当な仮想マシンイメージであることと、信頼される実行環境が、その仮想マシンイメージを走行させるのに適当な環境であることとをも保証する。役割鍵は、信頼される実行環境がその動作を実行できるようにするために、信頼される実行環境に返される時に、ラップされまたは暗号化される。
[0052] 上の議論が、様々な異なるシステム、構成要素、および/または論理を説明したことに留意されたい。そのようなシステム、構成要素、および/または論理は、これらのシステム、構成要素、および/または論理に関連する機能を実行するハードウェア項目(その一部が下で説明される、プロセッサおよび関連するメモリまたは他の処理構成要素)からなるものとすることができることを了解されたい。さらに、システム、構成要素、および/または論理は、下で説明するように、メモリにロードされ、その後にプロセッサもしくはサーバまたは他のコンピューティング構成要素によって実行されるソフトウェアからなるものとすることができる。システム、構成要素、および/または論理は、そのいくつかの例が下で説明される、ハードウェア、ソフトウェア、ファームウェアなどの異なる組合せからなるものとすることもできる。これらは、上で説明したシステム、構成要素、および/または論理を形成するのに使用され得る異なる構造のいくつかの例にすぎない。他の構造を使用することもできる。
[0053] この議論は、プロセッサおよびサーバに言及した。一実施形態では、プロセッサおよびサーバは、別々に図示されてはいない関連するメモリおよびタイミング回路網と共にコンピュータ・プロセッサを含む。これらは、これらが属し、それによってアクティブ化されるシステムまたはデバイスの機能的部分であり、これらのシステム内の他の構成要素または項目の機能性を容易にする。
[0054] また、複数のユーザ・インターフェース・ディスプレイが議論された。これらは、様々な異なる形態をとることができ、その上に配置された様々な異なるユーザ作動可能な入力機構を有することができる。たとえば、ユーザ作動可能な入力機構は、テキスト・ボックス、チェック・ボックス、アイコン、リンク、ドロップダウン・メニュー、検索ボックスなどとすることができる。これらを、様々な異なる形で作動させることもできる。たとえば、これらを、ポイント・アンド・クリック・デバイス(トラック・ボールまたはマウスなど)を使用して作動させることができる。これらを、ハードウェア・ボタン、スイッチ、ジョイスティックまたはキーボード、サム・スイッチまたサム・パッドなどを使用して作動させることができる。これらを、仮想キーボードまたは他の仮想アクチュエータを使用して作動させることもできる。さらに、これらがその上に表示されるスクリーンがタッチ感知スクリーンである場合に、これらを、タッチ・ジェスチャを使用して作動させることができる。また、これらを表示するデバイスが音声認識構成要素を有する場合に、これらを、音声コマンドを使用して作動させることができる。
[0055] 複数のデータ・ストアも議論された。これらが、それぞれ、複数のデータ・ストアに分解され得ることに留意されたい。すべてを、それらにアクセスするシステムにローカルとすることができ、すべてをリモートとすることができ、あるいは、いくつかをローカルとし、他をリモートすることができる。これらの構成のすべてが、本明細書で企図されている。
[0056] また、図面は、各ブロックに属する機能性を有する複数のブロックを示す。機能性がより少数の構成要素によって実行されるように、より少数のブロックを使用できることに留意されたい。また、より多数のブロックを使用し、機能性をより多数の構成要素の間で分散させることができる。
[0057] アーキテクチャ122は、本明細書ではクラウド・コンピューティング・アーキテクチャとして説明される。クラウド・コンピューティングは、サービスを配信するシステムの物理位置または物理構成のエンドユーザ知識を要求しない、計算サービス、ソフトウェア・サービス、データ・アクセス・サービス、およびストレージ・サービスを提供する。様々な実施形態では、クラウド・コンピューティングは、適当なプロトコルを使用して、インターネットなどの広域ネットワークを介してサービスを配信する。たとえば、クラウド・コンピューティング・プロバイダは、広域ネットワークを介してアプリケーションを配信し、これらのアプリケーションは、ウェブ・ブラウザまたは任意の他のコンピューティング構成要素を介してアクセスされ得る。アーキテクチャ122のソフトウェアまたは構成要素ならびに対応するデータは、リモート位置にあるサーバ上に記憶され得る。クラウド・コンピューティング環境内のコンピューティング・リソースは、リモート・データ・センタ位置で統合され得、あるいは、散在され得る。クラウド・コンピューティング・インフラストラクチャは、ユーザにとって単一のアクセス点に見える場合であっても、共有されるデータ・センタを介してサービスを配信することができる。したがって、本明細書で説明される構成要素および機能は、クラウド・コンピューティング・アーキテクチャを使用して、リモート位置にあるサービス・プロバイダから供給され得る。代替案では、それらは、従来のサーバから供給され得、あるいは、直接にまたは他の形でクライアント・デバイスにインストールされ得る。
[0058] この説明は、公共クラウド・コンピューティングと私有クラウド・コンピューティングとの両方を含むことが意図されている。クラウド・コンピューティング(公共と私有との両方)は、リソースの実質的にシームレスなプール化ならびに基礎になるハードウェア・インフラストラクチャを管理し構成する必要の削減を提供する。
[0059] 公共クラウドは、ベンダによって管理され、通常は、同一のインフラストラクチャを使用して複数の消費者をサポートする。また、公共クラウドは、私有クラウドとは異なって、ハードウェアの管理からエンド・ユーザを解放することができる。私有クラウドは、組織自体によって管理され得、インフラストラクチャは、通常、他の組織と共有されない。組織は、それでも、インストールおよび修復など、ある程度までハードウェアを保守する。
[0060] 図6は、アーキテクチャ100またはその一部(たとえば)を展開できるコンピューティング環境の一例である。図6を参照すると、いくつかの実施形態を実施する例のシステムは、コンピュータ810の形の汎用コンピューティング・デバイスを含む。コンピュータ810の構成要素は、処理ユニット820(プロセッサまたはサーバ136、154、または164を含むことができる)、システム・メモリ830、およびシステム・メモリを含む様々なシステム構成要素を処理ユニット820に結合するシステム・バス821を含むことができるが、これに限定はされない。システム・バス821は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および様々なバス・アーキテクチャのいずれかを使用するローカル・バスを含む複数のタイプのバス構造のいずれかとすることができる。限定ではなく例として、そのようなアーキテクチャは、Industry Standard Architecture(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、およびメザニン・バスとも称するPeripheral Component Interconnect(PCI)バスを含む。図1に関して説明したメモリおよびプログラムを、図6の対応する部分に展開することができる。
[0061] コンピュータ810は、通常は様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ810によってアクセスされ得る任意の使用可能な媒体とすることができ、揮発性媒体と不揮発性媒体との両方、取り外し可能媒体と取り外し不能媒体との両方を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含むことができる。コンピュータ記憶媒体は、変調されたデータ信号または搬送波とは異なり、これを含まない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実施された、揮発性と不揮発性との両方で、取り外し可能と取り外し不能との両方の媒体を含むハードウェア記憶媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリ、もしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくは他の光学ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、もしくは他の磁気ストレージ、または所望の情報を記憶するのに使用でき、コンピュータ810によってアクセスできる任意の他の媒体を含むが、これに限定はされない。通信媒体は、通常、トランスポート機構内でコンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを実施し、すべての情報配信媒体を含む。用語「変調されたデータ信号」は、信号内で情報を符号化する形でその特性のうちの1つまたは複数をセットされまたは変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体とを含む。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
[0062] システム・メモリ830は、読取専用メモリ(ROM)831およびランダム・アクセス・メモリ(RAM)832などの揮発性および/または不揮発性のメモリの形のコンピュータ記憶媒体を含む。スタートアップ中などに、コンピュータ810内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム833(BIOS)が、通常はROM 831内に記憶される。RAM 832は、通常、処理ユニット820から即座にアクセス可能であり、かつ/または処理ユニット820によって現在操作されつつあるデータおよび/またはプログラム・モジュールを含む。限定ではなく例として、図6は、オペレーティング・システム834、アプリケーション・プログラム835、他のプログラム・モジュール836、およびプログラム・データ837を示す。
[0063] コンピュータ810は、他の取り外し可能/取り外し不能な揮発性/不揮発性のコンピュータ記憶媒体をも含むことができる。例としてのみ、図6は、取り外し不能な不揮発性磁気媒体から読み取り、またはこれに書き込むハード・ディスク・ドライブ841と、CD ROMまたは他の光学媒体などの取り外し可能な不揮発性光ディスク856から読み取り、またはこれに書き込む光ディスク・ドライブ855とを示す。例示的なオペレーティング環境内で使用され得る他の取り外し可能/取り外し不能な揮発性/不揮発性のコンピュータ記憶媒体は、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM、および類似物を含むが、これに限定はされない。ハード・ディスク・ドライブ841は、通常、インターフェース840などの取り外し不能メモリ・インターフェースを介してシステム・バス821に接続され、光ディスク・ドライブ855は、通常、インターフェース850などの取り外し可能メモリ・インターフェースによってシステム・バス821に接続される。
[0064] その代わりにまたはそれに加えて、本明細書で説明される機能は、少なくとも部分的に、1つまたは複数のハードウェア論理構成要素によって実行され得る。たとえば、限定なしに、使用され得るハードウェア論理構成要素の実例のタイプは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラム固有標準製品(ASSP)、システムオンアチップ・システム(SOC)、複合プログラム可能論理デバイス(CPLD)などを含む。
[0065] 上で議論され、図6に示されたドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、および他のデータの記憶をコンピュータ810に提供する。図6では、たとえば、ハード・ディスク・ドライブ841は、オペレーティング・システム844、アプリケーション・プログラム845、他のプログラム・モジュール846、およびプログラム・データ847を記憶するものとして図示されている。これらの構成要素が、オペレーティング・システム834、アプリケーション・プログラム835、他のプログラム・モジュール836、およびプログラム・データ837と同一または異なるのいずれかとされ得ることに留意されたい。オペレーティング・システム844、アプリケーション・プログラム845、他のプログラム・モジュール846、およびプログラム・データ847は、少なくともこれらが異なるコピーであることを示すために、ここでは異なる番号を与えられている。
[0066] ユーザは、キーボード862、マイクロホン863、およびマウス、トラックボール、またはタッチパッドなどのポインティング・デバイス861などの入力デバイスを介してコンピュータ810にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)は、ジョイスティック、ゲーム・パッド、衛星パラボラ・アンテナ、スキャナ、または類似物を含むことができる。上記および他の入力デバイスは、しばしば、システム・バスに結合されるユーザ入力インターフェース860を介して処理ユニット820に接続されるが、パラレル・ポート、ゲーム・ポート、またはuniversal serial bus(USB)などの他のインターフェースおよびバス構造によって接続される場合がある。ビジュアル・ディスプレイ891または他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース890などのインターフェースを介してシステム・バス821に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース895を介して接続され得る、スピーカ897およびプリンタ896などの他の周辺出力デバイスを含むこともできる。
[0067] コンピュータ810は、リモート・コンピュータ880などの1つまたは複数のリモート・コンピュータへの論理接続を使用してネットワーク化された環境内で操作される。リモート・コンピュータ880は、パーソナル・コンピュータ、ハンドヘルド・デバイス、サーバ、ルータ、ネットワークPC、ピア・デバイス、または他の一般的なネットワーク・ノードとすることができ、通常は、コンピュータ810に関して上で説明した要素の多くまたはすべてを含む。図6に示された論理接続は、ローカル・エリア・ネットワーク(LAN)871および広域ネットワーク(WAN)873を含むが、他のネットワークを含むこともできる。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ・ネットワーク、イントラネット、およびインターネットにおいてありふれたものである。
[0068] LANネットワーキング環境内で使用される時に、コンピュータ810は、ネットワーク・インターフェースまたはネットワーク・アダプタ870を介してLAN 871に接続される。WANネットワーキング環境内で使用される時に、コンピュータ810は、通常は、モデム872またはインターネットなどのWAN 873を介する通信を確立する他の手段を含む。モデム872は、内蔵または外付けとすることができるが、ユーザ入力インターフェース860または他の適当な機構を介してシステム・バス821に接続され得る。ネットワーク化された環境では、コンピュータ810に関して示されたプログラム・モジュールまたはその部分は、リモート・メモリ・ストレージ・デバイス内に記憶され得る。限定ではなく例として、図6は、リモート・コンピュータ880に常駐するものとしてリモート・アプリケーション・プログラム885を示す。図示のネットワーク接続が例示的であり、コンピュータの間の通信リンクを確立する他の手段が使用され得ることを了解されたい。
[0069] 本明細書で説明される異なる実施形態が、異なる形で組み合わされ得ることにも留意されたい。すなわち、1つまたは複数の実施形態の諸部分を、1つまたは複数の他の実施形態の諸部分と組み合わせることができる。このすべてが、本明細書で企図されている。
[0070] 例1は、
[0071] サービスを識別する役割と、実行環境内で展開される仮想マシンイメージを示す仮想マシン(VM)イメージ測定値とを受け取り、VMイメージ測定値が役割にマッピングされるかどうかを判定し、判定を示す評価信号を生成するポリシ・エンジンと、
[0072] VMイメージ測定値が役割にマッピングされることを示す評価信号に基づいて、役割鍵の集合を入手し、ラップする鍵ラッピング暗号エンジンであって、役割鍵は、役割に対応し、実行環境がサービスを実行することを可能にする、鍵ラッピング暗号エンジンと、
[0073] ラップされた役割鍵の集合を実行環境に提供する鍵サービスと
を含むコンピューティング・システムである。
[0074] 例2は、ポリシ・エンジンが、役割、VMイメージ測定値、および実行環境識別子を、要求する実行環境から受け取るように構成され、実行環境識別子が、要求する実行環境を識別する、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0075] 例3は、ポリシ・エンジンが、実行環境識別子に基づいて要求する実行環境がVMイメージ測定値にマッピングされるかどうかを判定し、判定に基づいて評価信号を生成するように構成される、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0076] 例4は、
役割の複数の異なる集合のそれぞれを異なるVMイメージ測定値にマッピングする測定値−役割マッピングの集合であって、ポリシ・エンジンは、測定値−役割マッピングにアクセスすることによってVMイメージ測定値が役割にマッピングされるかどうかを判定する、測定値−役割マッピングの集合
[0077] をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0078] 例5は、
[0079] 役割鍵の集合を鍵ラッピング暗号エンジンに提供するように構成された役割鍵ストア/ジェネレータと、鍵ラッパー鍵の集合であって、各鍵ラッパー鍵は、所与の役割にマッピングされ、鍵ラッピング暗号エンジンは、役割にマッピングされた1つまたは複数の鍵ラッパー鍵を識別し、識別された1つまたは複数の鍵ラッパー鍵を用いて役割鍵を暗号化する、鍵ラッパー鍵の集合と
をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0080] 例6は、
役割を受け取り、役割に基づいてVMイメージを入手し、VMイメージを実行環境に展開するように構成された展開エンジン
[0081] をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0082] 例7は、
役割をVMイメージにマッピングする役割−イメージ・マッピングの集合であって、展開エンジンは、VMイメージを識別するために役割−イメージ・マッピングの集合にアクセスする、役割−イメージ・マッピングの集合
[0083] をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0084] 例8は、
VMイメージを記憶するVMイメージ・リポジトリであって、展開エンジンは、VMイメージ・リポジトリから展開のためにVMイメージを入手する、VMイメージ・リポジトリ
[0085] をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0086] 例9は、実行環境が、
VMイメージ測定値を生成し、VMイメージ測定値を鍵サービスに提供するように構成された測定システム
[0087] を含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0088] 例10は、測定システムが、VMイメージ測定値を含むハッシュ値を入手するためにVMイメージに対してハッシュ関数を実行する、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0089] 例11は、
[0090] 鍵サービスにおいて、実行環境サービスと、実行環境内で展開される仮想マシンイメージを示す仮想マシン(VM)イメージ測定値とを識別することと、
[0091] VMイメージ測定値が実行環境サービスにマッピングされるかどうかを判定することと、
[0092] 判定を示す評価信号を生成することと、
[0093] VMイメージ測定値が実行環境サービスにマッピングされることを示す評価信号に応答して、役割鍵の集合を入手することであって、役割鍵は、実行環境サービスに対応し、実行環境が実行環境サービスを実行することを可能にする、入手することと、
[0094] 役割鍵の集合内の役割鍵を暗号化することと、
[0095] 実行環境に暗号化された役割鍵の集合を提供することと
を含む、コンピュータ実施される方法である。
[0096] 例12は、
実行環境サービスを識別する役割を受け取ることと、
[0097] VMイメージ測定値を受け取ることと、
[0098] 要求する実行環境から実行環境識別子を受け取ることであって、実行環境識別[0099]子は、要求する実行環境を識別し、VMイメージ測定値が 上 実行環境サービス マッピングされるかどうかを判定することは、実行環境識別子に基づいて要求する実行環境がVMイメージ測定値にマッピングされるかどうかを判定することを含み、評価信号を生成することは、判定に基づいて評価信号を生成することを含む、受け取ることと
をさらに含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
[0100] 例13は、VMイメージ測定値が実行環境サービスにマッピングされるかどうかを判定することが、
[0101] 役割の複数の異なる集合を異なるVMイメージ測定値にマッピングする測定値−役割マッピングの資産にアクセスすることによって、VMイメージ測定値が役割にマッピングされるかどうかを判定すること
を含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
[0102] 例14は、役割鍵を暗号化することが、
[0103] 役割にマッピングされた1つまたは複数の鍵ラッパー鍵を識別することと、
[0104] 識別された1つまたは複数の鍵ラッパー鍵を用いて役割鍵を暗号化することと
を含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
[0105] 例15は、
[0106] 展開システムで役割を受け取ることと、
[0107] 展開システムで、役割をVMイメージにマッピングする役割−イメージ・マッピングの集合にアクセスすることによって、役割に基づいてVMイメージを入手することと、
[0108] VMイメージを実行環境に展開することと
をさらに含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
[0109] 例16は、
[0110] 実行環境内の測定システムを用いてVMイメージ測定値を生成することと、
[0111] VMイメージ測定値を鍵サービスに提供することと
をさらに含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
[0112] 例17は、VMイメージ測定値を生成することが、
[0113] 測定システムを用いて、VMイメージ測定値を含むハッシュ値を入手するためにVMイメージに対してハッシュ関数を実行すること
を含む、いずれかまたはすべての以前の例のコンピュータ実施される方法である。
[0114] 例18は、
[0115] 展開された仮想マシン(VM)イメージによって表され、役割によって識別されるサービスを実行する実行環境と、
[0116] VMイメージ測定値を生成するためにVMイメージにハッシュ関数を適用し、VMイメージ測定値を鍵サービスに提供するように構成された測定システムであって、実行環境は、役割鍵の集合を要求するために鍵サービスに役割およびVMイメージ測定値を提供する、測定システムと、
[0117] 役割鍵の要求された集合を入手するために、鍵サービスからラップされた役割鍵の集合を受け取り、ラップされた役割鍵の集合を暗号化解除する暗号化解除システムであって、実行環境は、要求された役割鍵を使用してサービスを実行する、暗号化解除システムと
を含むコンピューティング・システムである。
[0118] 例19は、鍵サービスが、
[0119] サービスを識別する、実行環境からの役割と、実行環境内で展開される仮想マシンイメージを示すVMイメージ測定値とを受け取り、VMイメージ測定値が役割にマッピングされるかどうかを判定し、判定を示す評価信号を生成するポリシ・エンジンと、
[0120] VMイメージ測定値が役割にマッピングされることを示す評価信号に基づいて、役割鍵の集合を入手し、ラップする鍵ラッピング暗号エンジンであって、鍵サービスは、ラップされた役割鍵の集合を実行環境に提供する、鍵ラッピング暗号エンジンと
を含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0121] 例20は、
[0122] 役割をVMイメージにマッピングする役割−イメージ・マッピングの集合と、VMイメージを記憶するVMイメージ・リポジトリとを含む展開システムと、役割に基づいて役割−イメージ・マッピングにアクセスすることによってVMイメージ・リポジトリから展開のためにVMイメージを入手するように構成され、VMイメージを実行環境に展開するように構成された展開エンジンと
をさらに含む、いずれかまたはすべての以前の例のコンピューティング・システムである。
[0123] 本発明を、構造的特徴および/または方法論的行為に固有の言葉で説明されたが、添付の特許請求の範囲で定義される本発明が、必ずしも上で説明された特定の特徴または行為に限定されないことを理解されたい。そうではなく、上で説明された特定の特徴および行為は、特許請求の範囲を実施する例の形として開示される。

Claims (20)

  1. 少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサによって実行可能な命令を記憶するメモリとを備えるコンピューティング・システムであって、
    前記命令は、実行されると、
    ポリシ・エンジンであって、実行環境によって実行されるべきサービスを表す役割を識別する役割識別子を受け取り、前記実行環境内で展開される仮想マシンイメージを示す仮想マシン(VM)イメージ測定値を受け取り、測定値−役割マッピングに基づいて、前記VMイメージ測定値が前記役割にマッピングされるかどうかを判定し、前記判定を示す評価信号を生成するように構成されたポリシ・エンジンと、
    鍵ラッピング暗号エンジンであって、前記VMイメージ測定値が前記役割にマッピングされることを示す前記評価信号に基づいて、役割に対応する役割鍵の集合をラップし、前記実行環境が前記サービスを実行することを可能にするように構成された鍵ラッピング暗号エンジンと、
    ラップされた役割鍵の前記集合を前記実行環境に提供する鍵サービスと、
    を提供する、コンピューティング・システム。
  2. 前記ポリシ・エンジンは、前記役割識別子、前記VMイメージ測定値、および実行環境識別子を、要求する実行環境から受け取るように構成され、前記実行環境識別子は、前記要求する実行環境を識別する、請求項1に記載のコンピューティング・システム。
  3. 前記ポリシ・エンジンは、前記要求する実行環境が前記VMイメージ測定値にマッピングされるかどうかを前記実行環境識別子に基づいて判定し、前記判定に基づいて前記評価信号を生成するように構成される、請求項2に記載のコンピューティング・システム。
  4. 前記ポリシ・エンジンは、複数の異なる役割のそれぞれを異なるVMイメージ測定値にマッピングする測定値−役割マッピングの集合にアクセスし、前記VMイメージ測定値が前記役割にマッピングされるかどうかを前記測定値−役割マッピングの集合に基づいて判定するように構成されている、請求項2に記載のコンピューティング・システム。
  5. 前記命令は、
    役割鍵の前記集合を前記鍵ラッピング暗号エンジンに提供するように構成された役割鍵ストア/ジェネレータと、
    鍵ラッパー鍵の集合であって、各鍵ラッパー鍵は、所与の役割にマッピングされ、前記鍵ラッピング暗号エンジンは、前記役割にマッピングされた1つまたは複数の鍵ラッパー鍵を識別し、前記識別された1つまたは複数の鍵ラッパー鍵を用いて前記役割鍵を暗号化する、鍵ラッパー鍵の集合と、
    を提供する、請求項4に記載のコンピューティング・システム。
  6. 前記命令は、
    展開エンジンであって、前記役割識別子を受け取り、前記役割識別子に基づいて前記VMイメージを入手し、前記VMイメージを前記実行環境に展開するように構成された展開エンジンを提供する、請求項1に記載のコンピューティング・システム。
  7. 前記命令は、
    役割をVMイメージにマッピングする役割−イメージ・マッピングの集合を提供し、
    前記展開エンジンは、前記VMイメージを識別するために役割−イメージ・マッピングの前記集合にアクセスするように構成されている、請求項6に記載のコンピューティング・システム。
  8. 前記命令は、
    前記VMイメージを記憶するように構成されたVMイメージ・リポジトリを提供し、
    前記展開エンジンは、前記VMイメージ・リポジトリから展開のために前記VMイメージを入手するように構成されている、請求項7に記載のコンピューティング・システム。
  9. 前記実行環境は、前記VMイメージ測定値を生成し、前記VMイメージ測定値を前記鍵サービスに提供するように構成された測定システムを含む、請求項6に記載のコンピューティング・システム。
  10. 前記測定システムは、前記VMイメージ測定値を含むハッシュ値を入手するために前記VMイメージに対してハッシュ関数を実行する、請求項9に記載のコンピューティング・システム。
  11. コンピューティング・システムによって実行される方法であって、
    サービスを実行するように構成された実行環境に関連付けられるサービスを識別することと、
    前記実行環境内で展開される仮想マシンイメージを示す仮想マシン(VM)イメージ測定値を識別することと、
    測定値−役割マッピングに基づいて、前記VMイメージ測定値が前記サービスにマッピングされるかどうかを判定することと、
    前記判定を示す評価信号を生成することと、
    前記VMイメージ測定値が前記サービスにマッピングされることを示す前記評価信号に応答して、前記サービスに対応する役割鍵の集合を入手することと、
    前記実行環境が前記サービスを実行することを可能にすることと、
    役割鍵の前記集合内の前記役割鍵を暗号化することと、
    前記実行環境に暗号化された役割鍵の前記集合を提供することと、
    を含む方法。
  12. 前記サービスを識別する役割識別子を受け取ることと、
    前記VMイメージ測定値を受け取ることと、
    要求する実行環境から実行環境識別子を受け取ることであって、前記実行環境識別子は、前記要求する実行環境を識別し、前記VMイメージ測定値が前記実行環境サービスにマッピングされるかどうかを判定することは、前記要求する実行環境が前記VMイメージ測定値にマッピングされるかどうかを前記実行環境識別子に基づいて判定することを含み、
    前記評価信号を生成することは、前記判定に基づいて前記評価信号を生成することを含む、実行環境識別子を受け取ることと、
    をさらに含む、請求項11に記載の方法。
  13. 前記VMイメージ測定値が前記サービスにマッピングされるかどうかを判定することは、
    役割の複数の異なる集合を異なるVMイメージ測定値にマッピングする測定値−役割マッピングの資産にアクセスすることによって、前記VMイメージ測定値が前記役割にマッピングされるかどうかを判定すること
    を含む、請求項12に記載の方法。
  14. 前記役割鍵を暗号化することは、
    前記役割にマッピングされた1つまたは複数の鍵ラッパー鍵を識別することと、
    前記識別された1つまたは複数の鍵ラッパー鍵を用いて前記役割鍵を暗号化することと、
    を含む、請求項13に記載の方法。
  15. 展開システムで、役割を受け取ることと、
    前記展開システムで、役割をVMイメージにマッピングする役割−イメージ・マッピングの集合にアクセスすることによって、役割に基づいてVMイメージを入手することと、
    前記VMイメージを前記実行環境に展開することと、
    を更に含む、請求項11に記載の方法。
  16. 前記実行環境内の測定システムを用いて前記VMイメージ測定値を生成することと、
    前記VMイメージ測定値を鍵サービスに提供することと、
    を更に含む、請求項15に記載の方法。
  17. 前記VMイメージ測定値を生成することが、測定システムを用いて、VMイメージ測定値を含むハッシュ値を入手するためにVMイメージに対してハッシュ関数を実行することを含む、請求項16に記載の方法。
  18. 少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサによって実行可能な命令を記憶するメモリとを備えるコンピューティング・システムであって、
    前記命令は、実行されると、
    展開された仮想マシン(VM)イメージによって表され、役割によって識別されるサービスを実行し、
    VMイメージ測定値を生成するために前記VMイメージにハッシュ関数を適用し、
    前記役割及び前記VMイメージ測定値を鍵サービスに提供し、役割鍵の集合を要求し、
    前記鍵サービスからラップされた役割鍵の集合を受け取り、
    ラップされた役割鍵の前記集合を暗号化解除し、要求された役割鍵の集合を入手し、
    前記要求された役割鍵を使用して前記サービスを実行するように、
    前記コンピューティング・システムを構成する、コンピューティング・システム。
  19. 前記命令は、
    前記サービスを識別する役割と、実行環境内で展開される仮想マシンイメージを示す仮想マシンイメージ測定値とを前記実行環境から受け取り、
    前記VMイメージ測定値が前記役割にマッピングされることを判定し、
    前記判定を示す評価信号を生成し、
    前記VMイメージ測定値が前記役割にマッピングされることを示す前記評価信号に基づいて、役割鍵の集合をラップし、
    前記実行環境にラップされた役割鍵の前記集合を提供するように、
    前記コンピューティング・システムを構成する、請求項18に記載のコンピューティング・システム。
  20. 前記命令は、
    役割をVMイメージにマッピングする役割−イメージ・マッピングの集合にアクセスし、
    前記役割に基づいて前記役割−イメージ・マッピングにアクセスすることにより、VMイメージ・リポジトリから展開のためのVMイメージを入手し、
    前記VMイメージを前記実行環境に展開するように、
    前記コンピューティング・システムを構成する、請求項19に記載のコンピューティング・システム。
JP2019521371A 2016-10-25 2017-10-16 仮想セキュリティ環境内でホスティングされるセキュア・サービス Active JP6985385B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/333,573 US10310885B2 (en) 2016-10-25 2016-10-25 Secure service hosted in a virtual security environment
US15/333,573 2016-10-25
PCT/US2017/056703 WO2018080814A1 (en) 2016-10-25 2017-10-16 Secure service hosted in a virtual security environment

Publications (3)

Publication Number Publication Date
JP2019533253A JP2019533253A (ja) 2019-11-14
JP2019533253A5 JP2019533253A5 (ja) 2020-10-22
JP6985385B2 true JP6985385B2 (ja) 2021-12-22

Family

ID=60191522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019521371A Active JP6985385B2 (ja) 2016-10-25 2017-10-16 仮想セキュリティ環境内でホスティングされるセキュア・サービス

Country Status (6)

Country Link
US (2) US10310885B2 (ja)
EP (2) EP3532975B1 (ja)
JP (1) JP6985385B2 (ja)
KR (1) KR102435719B1 (ja)
CN (2) CN115795511A (ja)
WO (1) WO2018080814A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11214789B2 (en) 2016-05-03 2022-01-04 Flodesign Sonics, Inc. Concentration and washing of particles with acoustics
US11475147B2 (en) * 2018-02-20 2022-10-18 International Business Machines Corporation Implementing policy-based container-level encryption
US11599375B2 (en) * 2020-02-03 2023-03-07 EMC IP Holding Company LLC System and method virtual appliance creation
US11799670B2 (en) * 2020-12-11 2023-10-24 Vmware, Inc. Secure end-to-end deployment of workloads in a virtualized environment using hardware-based attestation
CN115146276A (zh) * 2021-03-31 2022-10-04 华为云计算技术有限公司 一种云服务系统以及基于云服务的数据处理方法
US11900089B2 (en) * 2021-05-04 2024-02-13 Red Hat, Inc. Automatically configuring and deploying a software operator in a distributed computing environment from a package
CN116680687A (zh) * 2023-06-09 2023-09-01 北京火山引擎科技有限公司 数据处理方法、装置、设备和存储介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260224B1 (en) * 2003-06-30 2007-08-21 Microsoft Corporation Automated secure key transfer
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7719711B2 (en) 2006-03-30 2010-05-18 Kabushiki Kaisha Toshiba Image data processing apparatus and method
US8064604B2 (en) * 2006-04-04 2011-11-22 Oracle International Corporation Method and apparatus for facilitating role-based cryptographic key management for a database
US8249257B2 (en) * 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US8539551B2 (en) * 2007-12-20 2013-09-17 Fujitsu Limited Trusted virtual machine as a client
US8259948B2 (en) 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
JP5365008B2 (ja) * 2008-01-23 2013-12-11 日本電気株式会社 サービス評価装置、方法及びプログラム
US9559842B2 (en) 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
US8341427B2 (en) * 2009-02-16 2012-12-25 Microsoft Corporation Trusted cloud computing and services framework
US20100306076A1 (en) 2009-05-29 2010-12-02 Ebay Inc. Trusted Integrity Manager (TIM)
KR101270991B1 (ko) * 2009-12-21 2013-06-04 한국전자통신연구원 계층적 역할 기반 접근 제어를 위한 키 트리 구성 및 키 분배 방법
WO2011116459A1 (en) 2010-03-25 2011-09-29 Enomaly Inc. System and method for secure cloud computing
US20110246778A1 (en) * 2010-03-31 2011-10-06 Emc Corporation Providing security mechanisms for virtual machine images
US20120102220A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Routing traffic in an online service with high availability
US20120151209A1 (en) 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
US8713628B2 (en) 2011-02-08 2014-04-29 Verizon Patent And Licensing Inc. Method and system for providing cloud based network security services
US9100188B2 (en) 2011-04-18 2015-08-04 Bank Of America Corporation Hardware-based root of trust for cloud environments
US20130061310A1 (en) 2011-09-06 2013-03-07 Wesley W. Whitmyer, Jr. Security server for cloud computing
CA2889387C (en) 2011-11-22 2020-03-24 Solano Labs, Inc. System of distributed software quality improvement
US20130179676A1 (en) 2011-12-29 2013-07-11 Imation Corp. Cloud-based hardware security modules
US20120266209A1 (en) * 2012-06-11 2012-10-18 David Jeffrey Gooding Method of Secure Electric Power Grid Operations Using Common Cyber Security Services
JP6357158B2 (ja) * 2012-10-12 2018-07-11 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 仮想マシンによる安全なデータ処理
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US9367339B2 (en) * 2013-07-01 2016-06-14 Amazon Technologies, Inc. Cryptographically attested resources for hosting virtual machines
US9819661B2 (en) * 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US10089458B2 (en) 2013-09-26 2018-10-02 Citrix Systems, Inc. Separate, disposable execution environment for accessing unverified content
US9258331B2 (en) 2013-12-27 2016-02-09 Trapezoid, Inc. System and method for hardware-based trust control management
US9652631B2 (en) * 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US20160149877A1 (en) 2014-06-05 2016-05-26 Cavium, Inc. Systems and methods for cloud-based web service security management basedon hardware security module
US9571279B2 (en) * 2014-06-05 2017-02-14 Cavium, Inc. Systems and methods for secured backup of hardware security modules for cloud-based web services
US9246690B1 (en) * 2014-09-03 2016-01-26 Amazon Technologies, Inc. Secure execution environment services
CN104486307B (zh) * 2014-12-03 2017-08-15 中国电子科技集团公司第三十研究所 一种基于同态加密的分权密钥管理方法
CN105224387A (zh) 2015-09-07 2016-01-06 浪潮集团有限公司 一种云计算下虚拟机的安全部署方法

Also Published As

Publication number Publication date
KR20190067819A (ko) 2019-06-17
EP3532975A1 (en) 2019-09-04
US10310885B2 (en) 2019-06-04
CN115795511A (zh) 2023-03-14
CN109844748B (zh) 2023-01-06
CN109844748A (zh) 2019-06-04
US20190243678A1 (en) 2019-08-08
JP2019533253A (ja) 2019-11-14
KR102435719B1 (ko) 2022-08-23
EP3731121A1 (en) 2020-10-28
EP3731121B1 (en) 2023-04-12
US10871984B2 (en) 2020-12-22
EP3532975B1 (en) 2020-07-15
WO2018080814A1 (en) 2018-05-03
US20180113730A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
JP6985385B2 (ja) 仮想セキュリティ環境内でホスティングされるセキュア・サービス
RU2759331C2 (ru) Распечатывание данных с запечатывающим анклавом
EP3087524B1 (en) Virtual machine assurances
US7908476B2 (en) Virtualization of file system encryption
US9536063B2 (en) Methods and apparatus for protecting software from unauthorized copying
US20140075522A1 (en) Reliable verification of hypervisor integrity
KR20160040322A (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US20080229115A1 (en) Provision of functionality via obfuscated software
CN112650985A (zh) 使用隐式数据签名人工智能水印的方法和系统
JP2022099293A (ja) コンピューテーションを標的トラステッド実行環境(tee)において実行されるように生成するための方法、システム、およびコンピュータ・プログラム(クラウド・インフラストラクチャにおけるセキュアな/暗号化された仮想マシンのプロビジョニング)
US20220198064A1 (en) Provisioning secure/encrypted virtual machines in a cloud infrastructure
CN112650988A (zh) 使用内核加密数据的方法和系统
Akram et al. An introduction to the trusted platform module and mobile trusted module
Zobaed et al. Confidential computing across edge-to-cloud for machine learning: A survey study
US11809568B2 (en) Hypervisor having local keystore
US20220198070A1 (en) Provisioning secure/encrypted virtual machines in a cloud infrastructure
US20240126530A1 (en) Software compliance management for hybrid environment
Arthur et al. TPM Software Stack
Gray Implementing TPM Commands in the Copland Remote Attestation Language
CN112650989A (zh) 使用命令加密数据的方法和系统
Lu et al. A Trusted Computing Base for Information System Classified Protection
CN112650987A (zh) 使用内核签名人工智能水印的方法和系统
CN112650991A (zh) 使用内核签名输出的方法和系统
CN114282208A (zh) 到可信执行环境的安全软件工作负载供应
CN112650990A (zh) 使用查询来签名人工智能水印的方法和系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200910

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211028

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211125

R150 Certificate of patent or registration of utility model

Ref document number: 6985385

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150