(57)【要約】      （修正有）【課題】サービスとして暗号処理を行うコンピュータシステムにおいて、暗号処理サービスを受けるユーザがそれぞれの暗号材料の制御を保持することを可能にするキーエクスポート技術を提供する。【解決手段】サービスプロバイダ１０４は、有効期限を有し、デバイス１０８内からエクスポート不可能なドメインキーを使用して、ユーザの暗号キーを暗号化したキートークン１０６をユーザ１０２に提供する。ユーザがユーザの暗号キーで暗号化したデータ１１６を復号化する場合は、データ１１６とキートークン１０６をサービスプロバイダに提供し、サービスプロバイダがドメインキーを使用してキートークン１０６を復号化して、ユーザの暗号キーを取得し、データ１１６を復号化して平文形式のデータ１１４を得る。【選択図】図１
2019118135.tif 000002
【特許請求の範囲】
【請求項１】
暗号サービスのウェブサーバにおいて、前記暗号サービスの顧客に対応付けられたデバイスから、有効期間を指定する暗号キーの要求を受信することと、
暗号材料のハードウェア保護を提供するデバイスにおいて、前記暗号キーを生成することと、
前記デバイス内に記憶され、前記デバイスからプログラム的にエクスポート不可能なドメインキー集合の中から、前記指定された有効期間に合う有効期限を有するドメインキーを選択することであって、前記有効期限に従って特定される時点に前記ドメインキーが永久に前記デバイスによりアクセス不可能となることを引き起こす自動プロセスの少なくとも１つのインスタンスにより前記有効期限は施行される、前記指定された有効期間に合う前記有効期限を有する前記ドメインキーを選択することと、
前記デバイスにおいて、前記生成された暗号キーを暗号化することと、
前記暗号化された暗号キー及び前記暗号キーの識別子を含むトークンを生成することと、
前記顧客に対応付けられた前記デバイスに対し、前記受信された要求に応えて前記トークンを提供することと、
前記デバイスが前記暗号キーへのアクセスを失うことを引き起こす１つまたは複数の処理を行うことと、
を含むコンピュータ実施方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
２０１５年３月３１日に出願された「ＫＥＹ  ＥＸＰＯＲＴ  ＴＥＣＨＮＩＱＵＥＳ」と題する米国特許出願第１４／６７５，６１４号の全開示内容は、全ての目的で参照することにより本出願に組み込まれるものとする。
【背景技術】
【０００２】
多くのデータユーザにとって、データのセキュリティは、数多くの状況において非常に重要である。不正なエンティティによるデータの平文形式での取得を防止することによるなど、データのセキュリティを確保するために、暗号化といった多数の技術がかなり開発されてきた。同時に、コンピュータシステムは、組織の要望が高じるにつれ、より一層複雑となった。一例として、組織は多くの場合、コンピューティングデバイスのネットワークを利用して、それらのユーザに対し堅牢なサービス集合を提供する。ネットワークは、多数の地理的境界線にまたがることが多く、また、他のネットワークと接続することが多い。例えば、組織は、コンピューティングリソースの内部ネットワークと、他に管理されるコンピューティングリソースとの両方を用いて、組織の作業に対応し得る。例えば、組織のコンピュータは、別の組織のサービスを利用しながら、他の組織のコンピュータと通信してデータにアクセスする、及び／またはデータを提供し得る。数多くの事例において、組織は、他の組織により管理されるハードウェアを使用する遠隔ネットワークを構成及び運用することにより、インフラストラクチャ費用を削減し、他の利点を達成する。コンピューティングリソースのこのような構成により、リソースまでのアクセス、及びリソースが保持するデータが安全であることを確保することは、特にこのような構成のサイズ及び複雑さが高まるにつれ、困難となり得る。
【０００３】
組織が複雑なコンピュータシステムを開発して自身の作業に対応することを助長するために、数多くの組織が、サービスとしてコンピューティングリソースのホスティングを開始した。例えば、コンピューティング、データストレージ、アドバンストデータストレージ（例えばデータベース使用）、及びネットワークサービス（例えばホスト型コンピュータネットワーク）等の様々な作業を、顧客の代わりに実行するために、コンピューティングリソースサービスがホストされ得る。このようなサービスは、サービスのプロバイダの顧客に多数の利点（例えば多大な資本投資なしにコンピューティングリソースを設立する能力）を提供する一方、サービスプロバイダが自分の顧客のデータを守るために払う相当な努力にもかかわらず、顧客は多くの場合、他のエンティティによりデータがアクセス可能ではないかという懸念を抱える。
【０００４】
本開示による様々な実施形態が、図面を参照して説明される。
【図面の簡単な説明】
【０００５】
【図１】本開示の様々な態様を例示する図を示す。
【図２】様々な実施形態を実施可能である環境の実施例を示す。
【図３】実施形態による、データ構造の実施例を示す。
【図４】実施形態による、エクスポートキートークンの実施例を示す。
【図５】実施形態による、エクスポートキートークン要求を履行するプロセスの実施例を示す。
【図６】実施形態による、エクスポートキートークンを使用して１つまたは複数の暗号処理を実行する要求を履行するプロセスの実施例を示す。
【図７】実施形態による、エクスポートドメインキーを循環させるプロセスの実施例を示す。
【図８】実施形態による、１つまたは複数の暗号処理を実行する要求を履行するプロセスの実施例を示す。
【図９】実施形態による、エクスポート型顧客キーの有効期間を延長する要求を履行するプロセスの実施例を示す。
【図１０】実施形態による、エクスポート型顧客キーをホスト型顧客キーに変換する要求を履行するプロセスの実施例を示す。
【図１１】実施形態による、ホスト型顧客キーをエクスポート型顧客キーに変換する要求を履行するプロセスの実施例を示す。
【図１２】様々な実施形態を実施可能である環境を例示する。
【発明を実施するための形態】
【０００６】
以下の記述において、様々な実施形態が説明される。説明目的で、実施形態の完全な理解を提供するために、具体的な構成及び詳細が明らかにされる。しかしながら、実施形態は具体的詳細がなくとも実行可能であることは、当業者には明らかであろう。さらに、説明される実施形態を不明瞭にしないために、周知の特徴は省略または簡略化され得る。
【０００７】
本明細書において説明及び提案される技術は、アプリケーションプログラミングインタフェース（ＡＰＩ）により分散コンピュータシステムを操作することを含む。当ＡＰＩは、サービスプロバイダの顧客が暗号サービスを利用することを可能にする一方、顧客に支給される暗号キーにサービスプロバイダがアクセスすることを制限する。実施形態において、サービスプロバイダは、顧客のために暗号処理（例えば暗号化、復号化、並びに電子署名生成及び検証）を行う暗号サービスを運用する。暗号サービスは、暗号処理が行われるデータ、及び暗号処理を行うのに使用される暗号キーのセキュリティを確保するために、ハードウェアセキュリティモジュール等の特別ハードウェアを使用し得る。いくつかの実施例において、サービスプロバイダの暗号サービスのＡＰＩは、サービスプロバイダがアクセスを制限されている暗号キーに関わる要求の提出を可能にするように構成される。
【０００８】
例えば、実施形態において、多数の方法で暗号処理を行う際に使用する暗号キーを、要求（例えばウェブサービス要求）により指定可能なように、ＡＰＩは構成される。一実施例において、暗号処理を行う要求には、暗号サービスにより管理される暗号キー（管理顧客キーとも称されるホスト型顧客キー）の識別子が含まれる。別の実施例において、暗号処理を行う要求には、トークン（エクスポートキートークンと称される）が含まれる。トークンは、暗号処理を実行する際使用する暗号キーの暗号化された複製を含み、暗号キーの複製は別の暗号キー（ラッピングキーまたはエクスポートドメインキーと称される）を使用して復号化可能であり、別の暗号キーは、サービスプロバイダにおける１つまたは複数のデバイス（例えばハードウェアセキュリティモジュールまた暗号材料のハードウェアベース保護を提供する他のデバイス）の秘匿内部として保持される。
【０００９】
１つまたは複数の暗号処理を実行する要求を処理するために、サービスプロバイダは、要求内に指定された暗号キーを取得し得る。ホスト型顧客キーを指定する要求の実施例において、サービスプロバイダは、データストレージから指定ホスト型顧客キーの暗号化された複製を取得し、復号化及び要求される暗号処理（複数可）の実行のために、指定ホスト型顧客キーの暗号化された複製をハードウェアセキュリティモジュールに提供し得る。エクスポートキートークンを含む、あるいは指定する要求の実施例において、エクスポートキートークンを復号化して、顧客キーを取得し、要求される暗号処理（複数可）を実行するために、ハードウェアセキュリティモジュールに対しエクスポートキートークンが提供され得る。少なくとも、要求によりエクスポートキートークンが指定される実施例において、顧客キーの使用が一旦完了すると（例えば要求に対する応答の提供を受けて）、サービスプロバイダはエクスポートキートークンから取得した顧客キーへのアクセスを失い得るため、これにより、当エクスポートキートークンまたは当顧客キーを含む別のエクスポートキートークンを備える別の通信（例えば要求）において当顧客キーが提供されない限り、サービスプロバイダは当顧客キーへアクセスすることを阻止される。顧客キーへのアクセスを失うことは、エクスポートキートークン等、顧客キーを特定可能な全ての情報に対するアクセスを損失することを含み得ることに留意されたい。
【００１０】
様々な実施形態において、暗号サービスは、少なくとも２つのクラスのドメインキーを使用する。１つのクラスはホスト型顧客キーであり、もう１つのクラスはエクスポート型顧客キーである。このように、異なるクラスのドメインキーは、異なる循環スケジュールに従って、循環可能である（例えば暗号キーの枯渇を防ぐために置き換えられる）。一例として、サービスプロバイダはホスト型顧客キーにアクセス可能であるため（それぞれのホスト型顧客キーは現行のドメインキーの下、暗号化された状態で記憶され得る）、サービスプロバイダは、顧客データの損失を生じることなく、エクスポートドメインキーよりも頻繁にドメインキーを循環可能である。特に、サービスプロバイダは、暗号化された顧客キーにアクセスし、期限が切れるドメインキーを使用して顧客キーを復号化し、新しいドメインキーを使用して顧客キーを暗号化し、暗号化した顧客キーを記憶することが可能である。しかしながら、エクスポート型顧客キーに関しては、新たなエクスポートドメインキーへの再暗号化のために顧客がエクスポートキートークンを提供しない場合、エクスポートドメインキーの循環は、顧客データの損失を生じ得る。
【００１１】
異なるクラスのドメインキーの異なる循環スケジュールにより、様々な実施形態において、暗号キーの有効期間に対し柔軟な処理が可能となる。いくつかの実施態様において、暗号サービスのＡＰＩにより、顧客はエクスポート型顧客キーの有効期間を指定可能となる。さらに、サービスプロバイダは、それぞれが異なる有効期限を有するエクスポートドメインキーの集合を保持し得る。サービスプロバイダは、保持される集合から、エクスポートキートークン内で顧客に提供される顧客キーを暗号化するための顧客指定有効期限に合うエクスポートドメインキーを使用し得る。一旦エクスポートドメインキーが期限切れでサービスプロバイダによりもはやアクセス不可能となると、エクスポートキートークンはサービスプロバイダがエクスポートキートークンを復号化するためにもはや利用不可能となり、結果、エクスポートキートークンは顧客キーを取得するためにもはや使用不可能となる。このように、顧客は、データが制限された時間のみアクセス可能となるように確保可能である。他の変形も、本開示の範囲内であるとみなされる。
【００１２】
図１は、様々な実施形態を実施可能である環境１００の実施例を示す。図１の例示において、環境１００は、サービスプロバイダ１０４の顧客１０２との対話を例示するために提示される。サービスプロバイダは、下記により詳しく説明される暗号サービス等の１つまたは複数のサービスを提供するように構成される分散コンピュータシステムであり得るコンピュータシステムを操作するエンティティで有り得る。いくつかの実施例において、サービスプロバイダ１０４は、暗号サービスに加えて、サービスプロバイダの顧客により遠隔かつプログラムで管理可能なハードウェアをサービスプロバイダがホストするサービスのように、インフラストラクチャに分類されるサービスといった他のサービスを提供する。サービスプロバイダと、サービスプロバイダの顧客が例示目的で用いられているが、本明細書において説明される技術は、顧客／サービスプロバイダの関係がない他の状況においても適用可能であることに留意されたい。
【００１３】
実施形態内の図１の実施例において、顧客１０２はサービスプロバイダ１０４からキートークン１０６を受信する。キートークン１０６は、顧客１０２により復号化不可能（すなわち桁外れな計算量なしには復号化不可能）である暗号キーを含む情報の構造化集合であり得る。１つまたは複数の識別子等の他の情報も、キートークン１０６に含まれ得る。キートークンは、図４に関連して下記により詳しく論述される。図１に示される実施例において、サービスプロバイダ１０４のハードウェアセキュリティモジュール１０８の集合体のうちのハードウェアセキュリティモジュール内、または下記により詳しく説明されるような暗号材料のハードウェアベース保護を提供する別のデバイス内で、キートークンは少なくとも部分的に生成される。ハードウェアセキュリティモジュール（ＨＳＭ）が例示目的で全体を通して使用されているが、暗号材料のハードウェアベース保護を提供する他のデバイスも使用してもよいことに留意されたい。このようなデバイスの実施例には、トラステッドプラットフォームモジュール（ＴＰＭ）と、インテルＳｅｃｕｒｅ  Ｇｕａｒｄ  ｅＸｔｅｎｓｉｏｎｓ（ＳＧＸ）技術を利用するプロセッサの孤立領域等の環境における安全実行を含むプロセッサとが含まれる。
【００１４】
キートークン１０６の生成に関与するハードウェアセキュリティモジュールは、顧客１０２のために暗号キーを生成し、その暗号キーを、ハードウェアセキュリティモジュールの集合体１０８内に安全に保持されるドメインキーと称される別の暗号キーを使用して、暗号化し得る。例えば、セキュリティモジュール集合のうちの各セキュリティモジュールは、ドメインキーをプログラム的にエクスポート不可能な情報として保持し得る。プログラム的に（例えばデバイスのインタフェースを通して）デバイスに情報を提供させる正当な方法がない場合に、情報はプログラム的にエクスポート不可能であると言える。例えば、平文形式の情報へアクセス可能なハードウェアに、情報を平文形式で公開させる要求機構（例えばアプリケーションプログラミングインタフェース（ＡＰＩ）コール）がないように、情報は保持され得る。一例として、セキュリティモジュールは、そのメモリの一部または全ての複製が情報を平文形式で含むように当該複製を提供する能力に欠けるように構成され得る。しかしながら、平文形式で情報を取得する正当な方法はない情報が、例示目的で本開示を通して使用されているが、一部の情報は、制限された数の正当な使用を通して取得可能であるように保持されてもよく、これは、様々なセキュリティプロトコルの採用を必要とし、平文形式の情報に対する不正アクセスを阻止可能であり得ることに留意されたい。一般に、プログラム的にエクスポート不可能な情報は、もし平文形式で当情報を取得することが少しでも可能であるならば、当情報を平文形式で取得するには特別な対策が取られなければならない情報である（例えば１つまたは複数の暗号キー）。結果、桁外れな計算量なしには、キートークン１０６の中の顧客１０２用の暗号キーを暗号化するのに使用されたドメインキーへアクセスのないデバイスは、キートークン１０６の中の暗号キーを平文形式で取得することができない。
【００１５】
サービスプロバイダ１０４からキートークン１０６を受信すると、顧客は、キートークン１０６の複製を顧客により管理されるストレージデバイス１１０に保持し得る。ストレージデバイス１１０は、例えば、顧客１０２により管理されるプライベートネットワーク内のストレージデバイス、あるいは一般に、顧客が制御する、もしくは顧客１０２のために顧客以外のエンティティが制御する任意のストレージデバイスであり得る。
【００１６】
顧客１０２は、自身が記憶したキートークン１０６を使用するために、サービスプロバイダ１０４と対話し得る。これを行うために、図１に例示される実施形態において、顧客１０２は、コンピュータデバイスを通して、データ１１４に対し１つまたは複数の暗号処理を行う要求１１２内にキートークン１０６の複製を提供する。要求１１２は、例えば、要求１１２を履行するために必要な１つまたは複数の暗号処理をサービスプロバイダ１０４に行わせるように構成されるウェブサービス要求であり得る。データ１１４は、顧客１０２がサービスプロバイダ１０４により１つまたは複数の暗号処理を行うことで操作したい任意のデータであり得る。一実施形態において、データ１１４は、顧客１０２が他のデータを暗号化するために使用した暗号キーである。しかしながら、本開示の範囲は、データ１１４が暗号キーであることに制限されない。
【００１７】
要求１１２を処理するために、サービスプロバイダ１０４は、キートークン１０６、または顧客１０２の暗号化された暗号キーを含むキートークン１０６の一部を、ハードウェアセキュリティモジュール１０８の集合体のうち、暗号化された暗号キーを復号化するのに使用可能なドメインキーの複製にアクセス可能なハードウェアセキュリティモジュールに対し提供し得る。ハードウェアセキュリティモジュールは、暗号キーを復号化して暗号キーの複製を平文形式で取得し、その平文形式の暗号キーの複製を使用して、要求される１つまたは複数の暗号処理をデータ１１４に対し行い得る。図１のこの特定の実施例において、データ１１４は平文形式でサービスプロバイダ１０４に提供され、サービスプロバイダ、具体的にはサービスプロバイダのハードウェアセキュリティモジュールは、データ１１４に対し暗号化処理を行って暗号化されたデータ１１６を取得し、サービスプロバイダ１０４はこれを顧客１０２に返す。しかしながら、暗号化が図１及び本明細書の他の場所で使用されているが、別の暗号処理が要求され、続いて実行されてもよいことに留意されたい。このような処理には、例えば、暗号化されたデータの復号化、電子署名の生成及び電子署名の検証、ならびに電子証明書の真正性の検証といった関連処理が含まれる。
【００１８】
図２は、本開示の様々な実施形態を実施可能である環境２００の実施例である。実施形態において、当事者２０２は、コンピュータデバイスを使用して、ネットワーク２０４を介してコンピューティングリソースサービスプロバイダ２０６と通信し得る。コンピューティングリソースサービスプロバイダ２０６と当事者２０２の間の通信は、例えば、サービスプロバイダ２０６により運用される多数のサービスのうちの１つであり得る、サービスプロバイダ２０８により運用されるサービス２０８にアクセスするためであり得る。サービスは、２０１３年２月１２日に出願された「Ｄａｔａ  Ｓｅｃｕｒｉｔｙ  Ｓｅｒｖｉｃｅ」と題する米国特許出願第１３／７６４，９６３号、及び／または２０１４年９月１５日に出願された「Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｓｔｅｍ  Ｗｅｂ  ｏｆ  Ｔｒｕｓｔ  Ｐｒｏｖｉｓｉｏｎｉｎｇ」と題する米国特許出願第１４／４８６，７４１号においてより詳しく説明されるような暗号サービスであり得、これらの特許内容は、参照により本明細書に取り込まれるものとする。
【００１９】
サービス２０８は、サービスフロントエンド２１０と、サービスフロントエンド２１０から認可された要求を受信するように構成され、かつこのような要求を履行するために処理を行うように構成されるサービスのコンポーネントであり得るサービスバックエンド２１４とを備え得る。当事者２０２は、コンピューティングリソースサービスプロバイダ２０６により提供されるサービス２０８へのアクセス要求（及び／またはサービス２０８に関連するリソースへのアクセス要求）を発行し得る。要求は、例えば、ウェブサービスのアプリケーションプログラミングインタフェース要求であり得る。当事者は、ユーザ、またはユーザグループ、またはユーザグループに対応付けられた役割、またはこれらのエンティティのうちの１つまたは複数を代表し、１つまたは複数の遠隔（コンピューティングリソースサービスプロバイダ２０６に対し遠隔）コンピュータシステム上で実行中であり得るプロセスであり得る、あるいはその他のこのようなコンピュータシステムエンティティ、ユーザまたはプロセスであり得る。一般に、当事者は、コンピューティングリソースサービスプロバイダにより管理される識別に対応するエンティティであり、コンピューティングリソースサービスプロバイダは、識別の許可を管理する。
【００２０】
当事者２０２は、ポリシー管理サービスまたは別のサービスによる等、コンピューティングリソースサービスプロバイダ２０６により管理される識別に対応し得る。識別は、コンピューティングリソースサービスプロバイダの顧客のアカウントのために管理される多数の識別のうちの１つであり得、コンピューティングリソースサービスプロバイダは、多数の顧客のアカウントを管理し得る。当事者２０２は人に相当し得るが、このような人は、当事者２０２のために処理（例えば要求の生成及び送信）を行い得る好適に構成されたコンピューティングデバイスを通して、コンピューティングリソースサービスプロバイダ２０６と通信し得ることに留意されたい。当事者２０２は、１つまたは複数の接続（例えば伝送制御プロトコル（ＴＣＰ）接続）を介して、コンピューティングリソースサービスプロバイダ２０６と通信し得る。当事者２０２は、コンピュータシステムクライアントデバイスを使用して、コンピューティングリソースサービスプロバイダ２０６と接続し得る。クライアントデバイスには、後述される例示的デバイス等、ネットワークを介してコンピュータシステムと接続可能な任意のデバイスが含まれ得る。ネットワーク２０４には、例えば、インターネット、または後述されるネットワークのうちの別のネットワーク、もしくはそれらの組み合わせが含まれ得る。
【００２１】
コンピューティングリソースサービスプロバイダ２０６は、サービス２０８を通して、仮想マシン（ＶＭ）インスタンス、自動スケーリンググループ、ファイルベースのデータベースストレージシステム、ブロックストレージシステム、冗長データストレージサービス、データアーカイブサービス、データウェアハウスサービス、ユーザアクセス管理サービス、識別管理サービス、コンテンツ管理サービス、及び／または他のこのようなコンピュータシステムサービス等、１つまたは複数のコンピューティングリソースへのアクセスを提供し得る。他の例示的リソースは、ユーザリソース、ポリシーリソース、ネットワークリソース、及び／またはストレージリソースを含むが、これに限定されない。いくつかの実施例において、コンピュータサービスに関連するリソースは、物理デバイス、仮想デバイス、物理及び／または仮想デバイスの組み合わせ、あるいは他のこのようなデバイス実施形態であり得る。このようなサービス及びリソースは、例示目的で提供され、本開示の実施形態は、他のサービス及び／またはリソースを使用してもよいことに留意されたい。
【００２２】
いくつかの実施例において、ウェブサービスアプリケーションプログラミングインタフェース要求（簡潔にウェブサービス要求とも称される）であるサービス２０８へのアクセス要求は、いくつかの実施例において、このような要求を受信し、かつサービス２０８に対応付けられた１つまたは複数のポリシーに従ってそれらを処理するように構成されるウェブサーバを備えるサービスフロントエンド２１０により受信され得る。サービス２０８へのアクセス要求は、電子署名された要求であり得、その結果、電子署名と共に提供され得る。サービスフロントエンド２１０はそれから、検証のため要求及び電子署名を、認証サービス２１６へ送信し得る。認証サービス２１６は、スタンドアロンサービスであり得る、あるいはサービスプロバイダまたは他のエンティティの一部であり得る。認証サービス２１６は、実施形態において、当事者の認証に関わる処理を行うように構成されるコンピュータシステムである。いくつかの実施例において、サービスフロントエンド２１０に提出される要求は、当事者２０２と認証サービス２１６との間で共有される対称暗号キーを使用して、当事者により（すなわち当事者により使用される、または当事者のために作動するコンピューティングデバイスにより）電子署名されている。認証サービスは従って、対称暗号キーの複製を使用して、当事者２０２により生成されたと称される要求の電子署名を検証し得る。しかしながら、別の実施形態において、認証サービス２１６は、例えば、当事者が秘密暗号キーを使用して要求を電子署名した場合等、電子署名の検証に非対称暗号法を用いるように構成され得る。このような実施形態において、認証サービスは、秘密暗号キーに対応する当事者２０２の証明書を電子署名した認証局を信頼するように構成され得る。その結果、いくつかの実施形態において、認証サービスは、証明書により指定された公開暗号キーを使用し得る。一般に、認証サービスは、当事者２０２に対応付けられた認証サービス２１６に登録された暗号キーを使用し得る。
【００２３】
要求が問題なく認証されると、認証サービス２１６はそれから、要求に適用可能なポリシーを取得し得る。ポリシー（アクセス制御ポリシーとも称される）は、ユーザ、グループ、役割、組織、企業、またはその他のこのようなエンティティに対応付けられた許可集合である。各許可は、コンピューティングリソースに対応付けられ、エンティティ（本明細書において「当事者」とも称される）がそのリソースにアクセスしてもよいか否か、どのような条件でアクセスは許可または拒否され得るか、及び／またはどのような種類のアクセスが許可または拒否され得るかを指定し得る。例えば、許可は、「ＵＳＥＲ１」という名のユーザが識別子「１２３４５」で示されるあるデータストレージデバイスにアクセス可能であると指定し得る。より詳しい許可は、ＵＳＥＲ１が、リソース１２３４５から読み出しのみ可能であり、リソース１２３４５へ書き込み不可であると指定し得る。さらにより詳しい許可は、ＵＳＥＲ１が、リソース１２３４５からいつでも読み出し可能であるが、午前９時００分〜午前９時３０分の間の時間だけリソース１２３４５へ書き込み可能であると指定し得る。例えばＵＳＥＲ１が、リソース１２３４５を含み得るデータストレージデバイスの集合へアクセス可能であるように、許可はまた、リソースのクラスまたは集合に対応付けられ得る。アクセス制御ポリシーは、ポリシー管理サービスにより、ポリシー文書、データベース内のレコード、アクセス制御リスト（ＡＣＬ）、またはその他として保持され得る。サービス（例えばサービス２０８）はまた、ポリシー管理サービスに加えて、または代わって、自身のポリシーを保持し得る。
【００２４】
ポリシーは、当事者２０２、要求の履行の一部としてアクセスされるリソース、当事者２０２が含まれるグループ、当事者２０２が担う役割、及び／またはその他に対応付けられているということにより、要求に適用可能となり得る。要求に適用可能なポリシーを取得するために、認証サービス２１６は、図１に関連して前述されたポリシー管理サービスであり得るポリシー管理サービス２２０により管理されるポリシーレポジトリ２１８に対し、クエリを送信し得る。クエリは、要求に適用可能なポリシー集合を特定するのに十分な情報を含む要求であり得る。クエリは、例えば、要求の複製を含み、ならびに／または当業者、リソース、及び／もしくは動作（要求の履行の一部として行われる処理）を特定する情報といった要求内の情報に少なくとも部分的に基づいたパラメータを含み得る。データベースまたはクエリを処理するよう作動可能な他のシステムであり得るポリシーレポジトリは、要求に適用可能な全てのポリシーを提供することで、クエリを処理し得る。要求の認証がうまくいかなかった場合（例えば電子署名が証明不可能であったため）、要求に適用可能なポリシーは取得され得ないことに留意されたい。
【００２５】
要求に適用可能な全てのポリシーを取得すると、認証サービス２１６は認証応答を提供し、適用可能である場合（例えば肯定的な認証応答である場合）、取得されたポリシーは、サービスフロントエンド２１０へ戻る。認証応答は、応答が認証成功である否かを示し得る。サービスフロントエンド２１０はそれから、認可モジュール２１２を使用して、サービス２０８へのアクセス要求の履行が、取得されたポリシーに準拠するか否かを確認し得る。
【００２６】
認可モジュール２１２は、サービスが要求を満たすことが認可されるか否か（すなわち要求の履行が認可されるか否か）を特定するために、要求をポリシー内の１つまたは複数の許可と比較するよう作動可能な、サービスフロントエンド上で実行されるプロセスであり得る。例えば、認可モジュールは、要求が許可されるかどうかを特定するために、要求に対応付けられたＡＰＩコールを、ポリシーにより指定される許可されたＡＰＩコールと、比較し得る。認可モジュール２１２が要求を、ポリシーにより指定される許可と一致することが不可能な場合、認可モジュール２１２は、例えば、サービスフロントエンドに要求を拒否させるメッセージをサービスフロントエンドに対し提供し、かつ拒否された要求はポリシー管理サービス２２０内にログが取られるようにするといった、１つまたは複数のデフォルトの動作を実行し得る。認可を通して要求が、ポリシーにより指定される１つまたは複数の許可と一致する場合、認可モジュール２１２はこれを、最も制約の少ない回答（ポリシーにより定義される）を選択することにより、かつ選択された回答に基づいて、要求の履行が認可されるか否か（すなわち適用可能なポリシーに準拠する否か）をサービスフロントエンドに知らせることにより、解消し得る。認可モジュール２１２はまた、最も制約の多い回答を選択し、またはその他のこのような回答を選択し、選択された回答に基づいて要求の履行が認可されるか否かを、サービスフロントエンドに知らせ得る。図２は認可モジュール２１２をサービスフロントエンド２１０のコンポーネントとして示すが、いくつかの実施形態において、認可モジュール２１２は、コンピューティングリソースサービスプロバイダ２０６により提供される独立したサービスであり、フロントエンドサービスは、認可モジュール２１２とネットワークを介して通信し得ることに留意されたい。
【００２７】
実施形態において、サービスバックエンド２１４は、前述のような、ハードウェアセキュリティモジュール２２２または他のセキュリティモジュールの集合体を含む。サービスフロントエンド２１０が受信した、ハードウェアセキュリティモジュールによる暗号処理の実行を求める要求を処理するために、サービスフロントエンド２１０は、実行する処理、暗号処理を実行するために使用する暗号キー、及び適用可能であれば暗号処理が実行されるべき対象データ（例えば平文または暗号文）を指定する要求を、ハードウェアセキュリティモジュールに送信し得る。フロントエンド２１０は、処理を行うためにハードウェアセキュリティモジュールを選択し得る、あるいは別のコンポーネント（例えば負荷分散装置）が選択を行い得る。暗号処理の実行結果は、結果がそれぞれの要求に応じて提供され得るように、処理を行ったハードウェアセキュリティモジュールからサービスフロントエンド２１０に提供され得る。
【００２８】
実施形態において、コンピューティングリソースサービスプロバイダ２０６は、データストレージサービスにデータストレージ処理（例えばデータオブジェクトの記憶及び検索）を行わせるＡＰＩを提供するコンピュータシステムであり得るデータストレージサービス２０６を含む。サービスフロントエンド２１０は、ハードウェアセキュリティモジュール２２２内に保持されるドメインキーにより暗号化された暗号キー（例えばホスト型顧客キー）を記憶するデータストレージサービスと通信し得る。例えば、フロントエンド２１０により受信された要求が顧客キーの使用を要する場合、フロントエンド２１０はデータストレージサービス２２４に対し、顧客キー（ドメインキーの下暗号化された顧客キー）を取得するよう要求を提出し得る。フロントエンド２１０は、暗号化された顧客キーを受信し、復号化及び暗号処理の実行のために、ハードウェアセキュリティモジュールに暗号化された顧客キーを提供し得る。同様に、ハードウェアセキュリティモジュールが新たな顧客キーを生成する（すなわち顧客キーを暗号化するドメインキーを循環する）時、ハードウェアセキュリティモジュールは、ドメインキーを使用して顧客キーを暗号化し、暗号化された顧客キーをフロントエンド２１０へ提供し、今度はフロントエンド２１０が、暗号化された顧客キーと共に要求を持続的記憶のためにデータストレージサービス２２４へ送信し得る。
【００２９】
図２はコンピューティングリソースサービスプロバイダの分散システムの特定の構成を示すが、他の構成も本開示の範囲内であるとみなされることに留意されたい。例えば、認証及び認可決定は、分散システムの別のコンポーネント（例えばサービスフロントエンド２１０）により行われてもよい。別の実施例として、１つまたは複数のハードウェアセキュリティモジュールまたは暗号材料のハードウェア保護を提供する他のデバイスは、別のサービスプロバイダまたは顧客自身といった、コンピューティングリソースサービスプロバイダ２０６とは異なるエンティティによりホストされてもよい。このようなハードウェアセキュリティモジュールに暗号処理を行わせるために、サービスバックエンド２１４内のサーバは、ネットワークを介して（例えばインターネット、あるいはハードウェアセキュリティモジュールがサービスバックエンド２１４と同じデータセンタ内にホストされる場合は内部ネットワークを介して）メッセージを送信し得る。ハードウェアセキュリティモジュールをホストするエンティティが、暗号処理の実行を認可された要求と認可されなかった要求とを区別可能にするために、このようなメッセージは認証され得る。別の実施例において、ハードウェアセキュリティモジュール２２２は、同じコンピューティングリソースサービスプロバイダ２０６の独立したサービスによりホストされる。例えば、サービス２０８は、暗号処理の結果を利用するサービス（例えば仮想データストレージデバイスまたは他のサービス）を提供し得る。このような実施例において、相互サービスＡＰＩコールがあるサービスから別のサービスへ送信され、別のサービスに、ハードウェアセキュリティモジュールを使用して暗号処理を行わせ得る。このようなコールは、例えば、あるサービスにより、顧客からの要求を履行するために行われるプロビジョニングまたは他のワークフローに従って行われ得る。
【００３０】
図３は、実施形態による、エクスポートドメインキーの集合を保持するために使用され得るデータ構造３００の実施例を示す。図３の実施例において、データ構造３００はテーブルであるが、他のデータ構造も本開示の範囲内であるとみなされる。図３において例示されるように、データ構造３００は、３つの列を含み、各列は、それぞれのエクスポートドメインキーに関する異なる情報に対応する。第１列３０２は、エクスポートドメインキーの識別子を記録するために使用される。暗号キーを暗号化するのに使用されるエクスポートドメインキーが追跡可能となるように、識別子は、エクスポートドメインキーの参照番号として機能する。例えば、エクスポートキートークンは、エクスポートキートークン内の暗号キーを暗号化するのに使用されたエクスポートドメインキーの識別子を含み得る。このようにエクスポートキートークンが別の時に提供される場合、エクスポートキートークン内の暗号化された暗号キーを復号化するために適切なエクスポートドメインキーが識別され（例えば複数のエクスポートドメインキーから選択され）、アクセスされ得る。この特定の実施例において、エクスポートドメインキーの識別子は、シーケンス番号である。しかしながら、他の種類の識別子を使用してもよいことに留意されたい。
【００３１】
データ構造３００の第２列３０４は、それぞれのエクスポートドメインキーの有効期限に対応する。前記のように、エクスポートドメインキーが破棄され、よってエクスポートキートークン内で暗号化された顧客キーにアクセスする機構としてエクスポートキートークンが使用不可能となるまでの指定された時間の間にエクスポートキートークンが使用可能であるように、暗号サービスは、それぞれが異なる有効期限を有する多数のエクスポートドメインキーへ、いずれの時点でもアクセス可能であり得る。図３の実施例において、データ構造３００の第２列３０４内の各エントリは、２４時間異なる有効期限を有する。このように、データ構造３００は、２４時間異なるエクスポートドメインキーの有効期限を記録する。しかしながら、２４時間異なる有効期限は例示であり、他の有効期限を使用してもよいことに留意されたい。例えば、連続した有効期限は、２４時間より短い時間、または２４時間より長い時間異なっていてもよく、連続した有効期限の時間差は必ずしも統一していない。
【００３２】
各エクスポートドメインキーの各有効期限は、有効期限に従って特定される時間に、ドメインキーへこれまでアクセス可能だった全てのセキュリティモジュールがエクスポートドメインキーにアクセス不可能と（例えば永続的にそのように）なることを引き起こす自動化プロセスの少なくとも１つのインスタンスにより施行され得ることに留意されたい。例えば、セキュリティモジュールの集合体内の各セキュリティモジュールは、ドメインキーの有効期限が切れるとドメインキーを回復不可能に削除する自動化プロセスのインスタンスを実行し得る。自動化プロセスのコードの完全性の遠隔証明または他の暗号証明は、ドメインキーへのアクセスが提供される前に、独立して検証（例えば別のセキュリティモジュールまたは他のコンピューティングデバイスにより）されなければならないように、セキュリティモジュールは構成され得る。セキュリティモジュールはまた、改ざんが起きるとセキュリティモジュールがドメインキーへのアクセスを失うことを引き起こす改ざん対策機構と共に構成され、また、モジュールへの電力を取り除くことによりセキュリティモジュールがドメインキーへのアクセスを失うことを引き起こすように構成され得る（例えばドメインキーのストレージは揮発性メモリに限定されるため）。有効期限の施行は、別のデバイスにより実行される自動化プロセスにより行われ得ることに留意されたい。このような実施例において、自動化プロセスを実行するデバイスは、ドメインキーの有効期限に従ってドメインキーを破棄するために（例えば破棄する特定のドメインキーを同定する命令により）、セキュリティモジュールへ命令を送信し得る。このような自動化プロセスは、セキュリティモジュールがドメインキーを破棄する命令を履行しない場合に、通知の送信または他の処理を含み得る。
【００３３】
データ構造３００内の第３列３０６は、それぞれのエクスポートドメインキー識別子及び同じ行の有効期限に対応するエクスポートドメインキー用である。実施例として、データ構造３００の第１データ包含行において、第３列３０６内のエントリに記憶されるエクスポートドメインキーは、３１４１５９２６のエクスポートドメインキー識別子を有し、２０１５年３月２４日午前１２時００分の有効期限を有する。
【００３４】
データ構造３００等のデータ構造を使用することで、顧客またはその他により指定されるエクスポートキートークンの有効期間が可能となるエクスポートドメインキーが選択され得る。例えば、顧客は、３０日の有効期間を有する暗号キーを要求し得る。データ構造３００は、３０日の有効期間を可能とする有効期限を有するエクスポートドメインキーの場所を特定するために使用され得る。エクスポートドメインキーには、要求される有効期間以下である最長有効期間を有するエクスポートドメインキー、または代替実施形態において、要求される有効期間以上である最短有効期間を有するエクスポートドメインキーが選択され得る。いくつかの実施例において、エクスポートドメインキーに、要求される有効期間以下である最長有効期間を有するエクスポートドメインキーが選択されるか、または要求される有効期間以上である最短有効期間を有するエクスポートドメインキーが選択されるかは、構成可能な設定であり、これはエクスポートキートークン要求のパラメータにおいて選択可能であり得る。
【００３５】
図３に示されるデータ構造３００は、例示目的で提供され、多数が本開示の範囲内であるとみなされることに留意されたい。例えば、図３は、特定の順序で記憶された特定の種類の情報を示す。異なる種類の情報及び異なる順序も、本開示の範囲内であるとみなされる。別の実施例として、図３は、エクスポートドメインキーごとに、有効期限値及びエクスポートドメインキー識別子のストレージを示す。代替実施形態において、エクスポートドメインキーの有効期限はエクスポートドメインキー識別子として使用され、従ってエクスポートドメインキー識別子の列は省略され得る。他の変形も、本開示の範囲内であるとみなされる。
【００３６】
図４は、様々な実施形態による、例示的エクスポートキートークン４０２の図解４００を示す。図４に例示されるように、エクスポートキートークン４０２は、様々なコンポーネントを含む。例えば、実施形態において、エクスポートキートークン４０２は顧客キーに対応し、顧客キーを特定するために、エクスポートキートークン４０２は、顧客キーの識別子集合を含み得ることがわかる。当実施例において、エクスポートキートークン４０２は、内部顧客キー識別子４０４と、外部キー識別子４０６とを含む。内部顧客キー識別子４０４は、顧客により使用される顧客キーの識別子であり得る。同様に、外部顧客キー識別子４０６は、エクスポートキートークン４０２を生成したサービスプロバイダにより使用される顧客キーの識別子として機能し得る。例示的実施形態において、サービスプロバイダに対する顧客からの顧客キーの要求には、パラメータとして、顧客が自身のコンピュータシステムの内部で顧客キーに使用する内部顧客キー識別子４０４が含まれ得る。外部顧客キー識別子４０６は、ポリシー及び他のアクセス制御機構の顧客キーとの対応付けを可能にするため等、サービスプロバイダによる使用のために、サービスプロバイダにより生成され得る。しかしながら、顧客が内部顧客キー識別子を指定しない時、またはこのような識別子への対応が提供されない時等、エクスポートキートークン４０２には内部顧客キー識別子４０４があり得ないことに留意されたい。いくつかの実施例において、外部顧客キー識別子４０６は、内部顧客キー識別子として機能し、このような実施例において、外部顧客キー識別子４０６は繰り返し使用され得る、あるいはエクスポートキートークン４０２の１つの構成要素が外部顧客キー識別子４０６になり得る。
【００３７】
さらに、図４に例示されるように、実施形態において、エクスポートキートークン４０２は、エクスポートドメインキーの下で暗号化された顧客キーの暗号化された複製４０８を含む。従って、エクスポートキートークン４０２の顧客キーを暗号化するために使用された特定のエクスポートドメインキーの識別を可能にするために、エクスポートキートークン４０２は、エクスポートドメインキー識別子４１０を含み得る。このように、サービスプロバイダがエクスポートキートークン４０２を受信すると、サービスプロバイダは、エクスポートキートークン４０２内の顧客キーの暗号化された複製４０８を復号化する適切なエクスポートドメインキーを取得するために、エクスポートドメインキー識別子４１０を使用可能である。
【００３８】
他の情報もエクスポートキートークン４０２に含まれ得る。例えば、顧客キーの暗号化に使用された非初期化ベクトルまたは他の情報がエクスポートキートークン４０２に含まれ得るが、このような情報は図に例示されない。別の実施例として、エクスポートキートークン４０２は、エクスポートキートークン４０２に含まれる情報の電子署名を含み得る。電子署名は、エクスポートキートークン４０２の完全性の検証を可能にし得る。電子署名は、例えば、外部顧客キー識別子４０６、及びエクスポートドメインキー識別子４１０、及び／または顧客キーの暗号化された複製４０８を含む他の情報が、意図せず、または悪意を持って変更されていないことを検証するために、使用され得る。サービスプロバイダにより秘密に保持される秘密暗号キー、またはサービスプロバイダにより秘密に保持される対称暗号キー等、サービスプロバイダがアクセス可能な暗号キーを使用して、電子署名は生成され得る。一般に、エクスポートキートークン４０２の一部または全ての完全性を検証するためにサービスプロバイダにより使用可能な全ての認証情報が使用され得る。
【００３９】
前記のように、暗号サービスにより、顧客がエクスポートキートークンを要求することが可能になり得る。図５は従って、実施形態による、エクスポートキートークン要求を処理するプロセス５００の実施例を示す。プロセス５００は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。プロセス５００の実行に伴う様々な処理の実行は、下記により詳しく説明されるように、暗号サービスの異なるコンポーネントにより生じ得る。実施形態において、プロセス５００は、エクスポートキートークン要求を受信すること（５０２）を含む。要求（５０２）は、例えば、プロセス５００を実行するシステムを有するサービスプロバイダの顧客のコンピューティングデバイスから受信されるウェブサービス要求であり得る。要求は、ウェブサーバ等の暗号サービスの好適なコンポーネントにより受信され得る（５０２）。
【００４０】
受信した要求（５０２）を処理するために、暗号サービスのウェブサーバまたは別のコンポーネントは、要求が真正であるか否かを判定し得る（５０４）。要求が真正であるか否かの判定（５０４）は、様々な実施形態による様々な方法で実行され得る。いくつかの実施例において、要求は、暗号的に検証可能であるように、電子署名される。従って、要求が真正であるか否かの判定（５０４）は、受信した要求（５０２）の電子署名を検証することを含み得る。例えば、顧客とサービスプロバイダとの間で秘密に共有される対称暗号キーを使用して生成される対称電子署名は、公開暗号キーに対応する秘密暗号キーであり得、公開暗号キーは、秘密暗号キーに対応する電子証明書等において、要求と共に提供あるいは指定される。図２に関連して前述されたように、電子署名を検証するために、認証サービスが使用され得る。別の実施例として、トランスポート層セキュリティ（ＴＬＳ）セッション等、暗号で保護された通信セッションを介して、要求は受信される（５０２）。セッションの確立には、ある種の認証が必要であり得たため、従って暗号で保護された通信セッションを介して要求が受信された（５０２）という事実は、要求の真正性を示す。一般に、要求の真正性の検証は、要求が、要求に対応付けられたエンティティにより提出されたことを検証するために、認証情報を使用して行われ得る。
【００４１】
要求が真正ではないと判定された場合（５０４）（すなわち要求の真正性が検証不可能である場合）、プロセス５００は要求を拒否すること（５０６）を含み得る。様々な実施形態による様々な方法で、要求は拒否され得る。いくつかの実施例において、例えば、拒否を示す要求応答が提供される。別の実施例として、何も動作は行われ得ず、要求はタイムアウトさせられ得る。要求の拒否（５０６）に関連して他の動作も行われてもよく、このような動作は、プロセス５００を実行するシステムの具体的な実施態様に依拠し得る。
【００４２】
要求が真正であると判定された場合（５０４）、プロセス５００は、暗号サービスのウェブサーバまたは他のコンポーネントにより、要求の履行が認可されるか否かを判定すること（５０８）を含み得る。要求の履行が認可されるか否かの判定は、様々な実施形態による様々な方法で実行され得る。前述の図２を参照すると、要求の履行が認可されるか否かの判定（５０８）は、要求に適用可能な全てのポリシーが要求の履行を許可するか否かを検証することを含み得る。一般に、サービスプロバイダは、要求の履行を制御する条件を保持し、要求の履行が認可されるか否かの検証（５０８）は、このような条件が要求の履行を許可するか否かを検証することを含み得る。
【００４３】
要求の履行が認可されないと判定された場合（５０８）、プロセス５００は、前述のように要求を拒否すること（５０６）を含み得る。例えば、要求を受信した（５０２）ウェブサーバは、要求が生じた元であると指定されるアドレス宛てに、メッセージを送信し得る。要求の履行が認可されると判定された場合（５０８）、プロセス５００を実行するシステムは、要求を履行するための処理集合を実行し得る。当実施例において、プロセス５００は、受信した要求（５０２）において指定される有効期間に合う有効期限を有するエクスポートドメインキーを選択すること（５１０）を含む。ウェブサーバまたはセキュリティモジュールが、エクスポートドメインキーを選択し得る。有効期間は、例えば要求のパラメータとして指定され得る、あるいは別の方法で、例えばデフォルトで指定され得る。プロセス５００はまた、顧客キーを生成すること（５１２）を含み得る。プロセス５００を実行するシステムのウェブサーバまたは他のコンポーネントは、例えば、セキュリティモジュールに顧客キーを生成させる（５１２）指示をセキュリティモジュールへ送信し得る。セキュリティモジュールは、例えば擬似乱数発生器または他の機構（例えば少なくとも一部が秘密に保持される情報に適用されるキー導出関数）を使用して、顧客キーを生成し得る（５１２）。図５は、顧客キーの生成（５１２）をプロセス５００の一部として示しているが、顧客キー生成は、プロセス５００と非同期的に行われてもよいことに留意されたい。例えば、顧客キーは事前に生成され、事前に生成された顧客キーが取得されてもよい。別の実施例において、エクスポートキートークン要求は、エクスポートキートークン内で暗号化される顧客キーの複製を含む。
【００４４】
顧客キーが一旦生成されると（５１２）、顧客キーを生成した（５１２）セキュリティモジュールは、選択したエクスポートドメインキーを使用して生成した顧客キーを暗号化し得る（５１４）。セキュリティモジュールは、例えば、選択したエクスポートドメインキーにメモリからアクセスし、生成した顧客キー及び選択したエクスポートドメインキーを暗号アルゴリズムへ投入し、これにより生成した顧客キーの暗号化された複製がもたらされる。生成した顧客キーの暗号化された複製が一旦取得されると、プロセス５００を実行するシステムは、暗号化された顧客キーを有するエクスポートキートークンを生成し得る（５１６）。
【００４５】
エクスポートキートークンが生成される（５１６）方法は、様々な実施形態により変わり得る。いくつかの実施例において、顧客キーを生成及び暗号化したセキュリティモジュールは、さらにエクスポートキートークンを生成し得る（５１６）。また別の実施例において、セキュリティモジュールは、暗号化された顧客キーの複製を、プロセス５００を実行するシステムのウェブサーバといった別のサーバへ提供し、これによりサーバは暗号化された顧客キーの複製を使用してエクスポートキートークンを生成し得る（５１６）。どのように生成されるか（５１６）に関わらず、エクスポートキートークンは要求を受信した（５０２）ウェブサーバにより取得され、ウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る（５１８）。
【００４６】
生成されたエクスポートキートークンが一旦提供されると（５１８）、またはエクスポートキートークンが生成された（５１６）後の時点で、プロセス５００を実行するシステムは、顧客キーへのアクセスを失い得る（５２０）。顧客キーの一部または全てを記憶するメモリ位置をゼロランダムデータまたは非ランダムデータ等の異なるデータで上書きすることにより、あるいは顧客キーの一部または全てが記憶されるメモリを、プロセス５００を実行するシステムが引き続き作動するに伴い他のデータで最終的に上書きされるように再割り当てすること等により、様々な実施形態による様々な方法で、アクセスは失われ得る。前記のように、顧客キーが取得可能な他の情報（例えばエクスポートキートークンの全ての複製）に対するアクセスは失われ得る。このようにある時点で、サービスプロバイダは顧客キーへのアクセスを失くし、これにより、万一サービスプロバイダで深刻なセキュリティ違反が起こっても、顧客キーへのアクセスは顧客により制御される。例えば、サービスプロバイダは、顧客が後続の要求またはその他でエクスポートキートークンを提供しない限り、顧客キーへアクセス不可能である。
【００４７】
前記のように、サービスプロバイダの顧客は、サービスプロバイダに、エクスポートキートークン内で暗号化された暗号キーを使用して暗号処理を行わせるために、サービスプロバイダに対しエクスポートキートークンを提供し返すことが可能である。図６は、エクスポートキートークンを使用して暗号処理を実行する要求を処理するプロセス６００の実施例を示す。プロセス６００は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。下記においてより詳しく記されるように、暗号サービスの異なるコンポーネントは、異なる処理を行い得る。実施形態において、プロセス６００は、エクスポートキートークンを使用して１つまたは複数の暗号処理を実行する要求を受信すること（６００）を含む。要求は、例えば、要求のパラメータとしてエクスポートキートークンを含み得る。顧客から受信する全ての要求と同様に、要求は、プロセス６００を実行する暗号サービスのサービスフロントエンドのウェブサーバにより受信され得る（６０２）。図５に関連して前述されたように、プロセス６００を実行するシステムは、図２に関連して前述されたように要求が真正であるか否かを判定し得る（６０４）。要求が真正ではないと判定された場合（６０４）（すなわち要求の真正性が検証不可能である場合）、前述のように要求は拒否され得る（６０６）。しかしながら、要求が真正であると判定された場合（６０４）、プロセス６００は、要求の履行が認可されるか否かを判定すること（６０８）を含み得る。要求の履行が認可されないと判定された場合（６０８）、または一般に要求が認可されると判定不可能である場合、プロセス６００を実行するシステムは、前述のように要求を拒否し得る（６０６）。
【００４８】
しかしながら、要求の履行が認可されると判定された場合（６０８）、プロセス６００を実行するシステムは、エクスポートドメインキーが利用可能であるか否かを判定し得る（６１０）。前記のように、顧客キーは、有効期限を有するエクスポートドメインキーを使用して、エクスポートキートークンのために暗号化され得る。エクスポートドメインキーの有効期限が切れると、暗号サービスは、暗号サービス及び一般にサービスプロバイダがエクスポートドメインキーへのアクセスを失うことを引き起こし得る処理集合を実行し得る。従って、エクスポートキートークンを使用して１つまたは複数の暗号処理を実行する要求が受信されると、エクスポートキートークン内の顧客キーを暗号化するのに使用されたエクスポートドメインキーの有効期限は切れたか否か、その結果サービスプロバイダはエクスポートドメインキーへのアクセスを失ったか否かによって、要求は履行可能であり得る、またはあり得ない。エクスポートドメインキーが利用可能であるか否かの判定（６１０）は、様々な実施形態による様々な方法で実行され得る。いくつかの実施例において、ウェブサーバは、エクスポートキートークン内のエクスポートドメインキーの識別子を使用して、有効なエクスポートドメインキーのリストまたは他のデータ構造内に当識別子が存在するか否かを確認する。このような処理も、セキュリティモジュールにより行われ得る。
【００４９】
例えばエクスポートドメインキーの有効期限が切れて、その結果サービスプロバイダはエクスポートドメインキーへのアクセスを失ったことから、エクスポートドメインキーは利用可能ではないと判定された場合（６１０）、プロセス６００を実行するシステムは、前述のように要求を拒否し得る（６０６）。しかしながら、プロセス６００を実行するシステムが、特にエクスポートドメインキーが利用可能か否かを判定する（６１０）当システムの部分が、エクスポートドメインキーは利用可能であると判定した場合、プロセス６００を実行するシステムは、エクスポートキートークン内で特定されるエクスポートドメインキーを選択し得る（６１２）。エクスポートキートークンを記憶するセキュリティモジュールにより要求を受信した（６０２）ウェブサーバ、またはその他により、選択は行われ得る。エクスポートドメインキーは、選択されると（６１２）、顧客キーを復号化されるために使用され得る（６１４）。プロセス６００を実行するシステムのセキュリティモジュールは、選択されたエクスポートドメインキーを使用して顧客キーを復号化する（６１４）システムのコンポーネントであり得る。
【００５０】
選択されたエクスポートドメインキーを使用して顧客キーを復号化する（６１４）システムのコンポーネントが復号化した顧客キーへのアクセスを一旦有すると、そのコンポーネントは、復号化した顧客キーを使用して、要求された１つまたは複数の暗号処理を実行し得る（６１６）。例えば、暗号サービスのセキュリティモジュールは、復号化した顧客キーを使用して、要求内に含まれる、またはデータの取得を可能にするために要求内で言及されること等により、要求内に含まれる、または指定されるデータを、暗号化または復号化し得る。上記のように、暗号化及び／または復号化の代わりに、暗号化及び／または復号化に加えて、他の暗号処理が行われ得る。例えば、電子署名が生成されたと称される対象データと共に電子署名は要求に含まれ、１つまたは複数の暗号処理は、電子署名を検証することを含み得る。他の動作は、電子証明書が信頼できるか否かを判定することと、電子証明書を使用して１つまたは複数の暗号処理を実行することとを含み得る。
【００５１】
受信した要求（６０２）の履行のために１つまたは複数の暗号処理を実行すると（６１６）、１つまたは複数の暗号処理の実行の１つまたは複数の結果を含む要求応答が生成され、要求に応えて提供され得る（６１８）。例えば、セキュリティモジュールは、１つまたは複数の暗号処理の１つまたは複数の結果を、プロセス６００を実行するシステムの要求を受信した（６０２）ウェブサーバに対し提供し得る。要求が生じた元であるネットワーク宛先として要求内に特定されるネットワーク宛先（例えばインターネットプロトコル（ＩＰ）アドレス）へ、応答は提供され得る。
【００５２】
一旦、復号化された顧客キーを使用して１つまたは複数の暗号処理が実行され、復号化された顧客キーがプロセス６００を実行するシステムにはもう必要なくなると、プロセス６００を実行するシステムは、前述のように、システムが顧客キーへのアクセスを失うことを引き起こす処理集合を行うことで、顧客キーへのアクセスを失い得る（６２０）。
【００５３】
前述のように、暗号サービスにより使用されるエクスポートドメインキーは、様々な時点で循環され得る。図７は、エクスポートドメインキーの集合を保持し、エクスポートドメインキーの循環規則を施行するプロセス７００の実施例を示す。プロセス７００は、任意の好適なシステムにより、例えば暗号サービス内の各セキュリティモジュール等により、あるいは暗号サービス内のキー循環規則を施行する役割を担うコンピュータシステム等の他のコンピュータシステムにおいて、実行され得る。実施形態において、プロセス７００は、エクスポートドメインキー循環トリガーを検出すること（７０２）を含む。エクスポートドメインキー循環トリガーは、発生するとプロセス７００の追加処理が実行されるイベントであり得る。いくつかの実施例において、エクスポートドメインキー循環トリガーは、クロックがある値に達することである。別の実施例において、トリガーは、別のコンピュータシステムから命令を受信することであり得る。様々な実施形態により、他のトリガーも使用され得る。例えば、暗号処理においてエクスポートドメインキーが使用された回数を数える、または見積もるカウンタは、回数が閾値を超えると、トリガーとなり得る。他のトリガーも、本開示の範囲内であるとみなされる。
【００５４】
エクスポートドメインキー循環トリガーを検出すると（７０２）、プロセス７０４を実行するシステムは、有効期限の切れたエクスポートドメインキーの集合を選択し得る（７０４）。有効期限の切れた全てのエクスポートドメインキーを特定するために、図３に関連して前述されたデータ構造等のデータ構造、またはその変形が参照され得る。有効期限の切れたエクスポートドメインキーの集合が一旦選択されると（７０４）、プロセス７００を実行するシステムは、全ての有効期限の切れたエクスポートドメインキーへのアクセス喪失を引き起こし得る（７０６）。全ての有効期限の切れたエクスポートドメインキーへのアクセス喪失が引き起こされる（７０６）方法は、様々な実施形態により変わり得る。いくつかの実施例において、有効期限の切れたエクスポートドメインキーを記憶するために、１つまたは複数のメモリ位置が使用される。有効期限の切れたエクスポートドメインキーを記憶する１つまたは複数のメモリ位置は、ランダムまたは非ランダムデータで上書きされ得る。別の実施例として、このようなメモリは、メモリを使用するその他のプロセスにより当メモリが上書き可能なように、割り当てを取り消され得る。よって特定の時間の経過後（例えば１時間または１日）、当１つまたは複数のメモリ位置が上書きされる可能性は高い。一般に、有効期限の切れたエクスポートドメインキーへのアクセスが喪失され得るいずれの方法も、本開示の範囲内であるとみなされる。
【００５５】
図７に例示されるように、プロセス７００はまた、有効期限の切れたエクスポートドメインキーの集合を置き換える置換エクスポートドメインキーの集合を生成すること（７０８）を含む。置換エクスポートドメインキーは、様々な実施形態による様々な方法で生成され得る。いくつかの実施例において、置換エクスポートドメインキーは、擬似乱数発生器を使用して生成される。置換エクスポートドメインキーを生成する別の方法は、キー導出関数の使用及び／または他の処理を含む。一般に、暗号キーが生成され得るいずれの方法も、本開示の範囲内であるとみなされる。
【００５６】
置換エクスポートドメインキーに達する識別子が特定され得る（７１０）。置換エクスポートドメインキーの識別子を特定する方法は、様々な実施態様により変わり得る。例えば、いくつかの例において、エクスポートドメインキーの識別子はシーケンス値であり、識別子には、使用されるシーケンスにおいて次の未使用のシーケンス値が選択され得る。シーケンスは、例えば、整数シーケンスであり得る。各置換エクスポートドメインキーの有効期限も、決定され得る（７１２）。様々な実施形態による様々な方法で、有効期限は決定され得る（７１２）。実施例として、置き換えられているエクスポートドメインキーの有効期限に、指定される時間が追加され得る。指定される時間は、例えば３６５日であり得るが、他の時間も本開示の範囲内であるとみなされる。
【００５７】
生成された全ての置換エクスポートドメインキー（７０８）がそれぞれの識別子及び有効期限を一旦有すると、生成された置換エクスポートドメインキーの集合（７０８）は、識別子及び有効期限と対応付けられた状態で記憶され得る。図３の実施例を参照すると、例えば、生成された置換エクスポートドメインキーごとに、データ構造３００に行が追加され得る。一般に、置換エクスポートドメインキーがそれらの識別子及び／または有効期限と直接的または間接的に対応付けられた状態で記憶され得るいずれかの方法が、使用され得る。
【００５８】
前述のように、本開示の様々な実施形態において、暗号サービスにより、顧客は、ホスト型暗号キーと、サービスプロバイダがアクセスを失うエクスポートキートークン内で暗号化された顧客キーとを、柔軟に使用することが可能となり得る。図８は、このような暗号サービスにより受信される要求を履行するプロセス８００の実施例を示す。プロセス８００は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。暗号サービスの異なるコンポーネントは、プロセス８００の異なる処理を、後述される方法等で実行し得る。実施形態において、プロセス８００は、１つまたは複数の暗号処理を実行する要求を受信すること（８０２）を含む。要求は、前述のように様々な方法で受信され得る（８０２）。要求は、例えば、前述のように暗号サービスフロントエンドのウェブサーバにより受信され得る（８０２）。
【００５９】
要求を受信すると（８０２）、プロセスは前述のように、要求が真正であるか否を判定すること（８０４）と、要求の履行が認可されるか否かを判定すること（８０８）とを含み得る。要求が真正ではないと判定された場合（８０４）（すなわち要求の真正性が検証不可能である場合）、プロセス８００は要求を拒否すること（８０６）を含み得る。同様に、要求の履行が認可されないと判定された場合（８０８）、プロセス８００は、要求を拒否することを含み得る。
【００６０】
プロセス８００を実行するシステムが、要求は真正であり、かつ要求の履行が認可されると判定すると、プロセス８００は、要求がエクスポートキートークンを含むか否かを判定すること（８１０）を含み得る。前述のように、エクスポートキートークンは、１つまたは複数の暗号処理を実行する要求のパラメータで任意に提供され得る。従って、要求がエクスポートキートークンを有するか否かを判定すること（８１０）は、要求を構文解析することと、このようなエクスポートキートークンが要求のパラメータとして含まれているか否かを判定することとを含み得る。暗号サービスのフロントエンドのウェブサーバは、例えば、要求がエクスポートキートークンを含んでいるか否かを判定する。
【００６１】
要求がエクスポートキートークンを有さないと判定された場合（８１０）、プロセス８００は、プロバイダホスト型顧客キーを使用して要求を処理すること（８１２）を含み得る。実施例として、プロセス８００を実行する暗号サービスのウェブまたは他のサーバは、独立したデータストレージサービスから等、データストレージ場所からプロバイダホスト型顧客キーの暗号化された複製を取得し得る。一旦取得されると、サーバは、プロバイダホスト型顧客キーの暗号化された複製を、セキュリティモジュールに提供し得る。多数の顧客のためにホストされる多数のプロバイダホスト型顧客キーから、プロセス８００を実行するシステムがプロバイダホスト型顧客キーを選択するために使用するプロバイダホスト型顧客キーの識別子を、要求は含み得ることに留意されたい。識別子を具体的に指定する必要のないデフォルトのプロバイダホスト型顧客キーを顧客が有する時等、プロバイダホスト型顧客キーを特定する他の方法も使用され得る。
【００６２】
一旦セキュリティモジュールに提供されると、セキュリティモジュールは、ドメインキーを使用して暗号化された複製を復号化し、プロバイダホスト型顧客キーを平文形式で取得し得る。セキュリティモジュールはそれから、プロバイダホスト型顧客キーを使用して、要求を履行するための１つまたは複数の暗号処理を実行し、受信された要求（８０２）に応えて、実行された１つまたは複数の暗号処理の結果をサーバが含むようにサーバへ提供し得る。セキュリティモジュールはそれから、セキュリティモジュールがプロバイダホスト型顧客キーの暗号化された複製から取得したプロバイダホスト型顧客キーの平文複製に対し、アクセスを失い得る。
【００６３】
プロセス８００を実行するシステムが、実際に要求はエクスポートキートークンを有すると判定した場合（８１０）、プロセス８００を実行するシステムは、エクスポートキートークンを使用して要求を処理し得る（８１４）。図６に関連して前述されたように、要求を処理するために、エクスポートキートークンが使用され得る。
【００６４】
前述のように、顧客がエクスポートキートークンを要求する場合、要求の履行結果として返されるエクスポートキートークン内で暗号化された顧客キーの有効期間を、このような要求は指定し得る。いくつかの状況において、エクスポートキートークンを使用するサービスプロバイダの顧客は、エクスポートキートークン内で暗号化された暗号キーの有効期間を延長することを所望し得る。例えば、顧客は、エクスポートキートークン暗号キーの有効期間の期限が切れた後の時点で、データにアクセスする必要があり得る。図９は、エクスポートキートークン内で暗号化された顧客キーの有効期間を延長する要求を処理するプロセス９００の実施例を示す。プロセス９００は、前述のように暗号サービスによる等、任意の好適なシステムにより実行され、暗号サービスの異なるコンポーネントは、下記により詳しく説明されるように、プロセス９００内の異なる処理を行い得る。
【００６５】
実施形態において、プロセス９００は、エクスポートキートークン内で暗号化された顧客キーの有効期間を延長する要求を受信することを含む。図２に関連して前述されたように、暗号サービスフロントエンドのウェブサーバによる等、様々な方法で要求は受信され得る（９０２）。前述の他の要求と同様に、プロセス９００は、要求が真正であるか否を判定すること（９０４）と、要求の履行が認可されるか否かを判定すること（９０８）とを含み得る。要求が真正ではないと判定された場合（９０４）（すなわち要求の真正性が検証不可能である場合）、または要求の履行が認可されないと判定された場合、前述のように、プロセス９００は要求を拒否すること（９０６）を含み得る。
【００６６】
図９に例示されるように、プロセス９００を実行するシステムが、要求は真正であると判定し（９０４）、かつ要求の履行が認可されると判定すると（９０８）、プロセス９００は、エクスポートドメインキーが利用可能か否かを判定すること（９１０）を含み得る。例えば、エクスポートキートークン内で暗号化された暗号キーの有効期限前に要求が受信された場合、エクスポートドメインキーは利用可能であり得る。同様に、エクスポートキートークン内で暗号化された顧客キーの有効期限後に要求が受信された場合（９０２）、エクスポートドメインキーは利用不可能であり得る。エクスポートドメインキーが利用可能であるか否かの判定（９１０）は、異なる実施態様による異なるコンポーネントにより実行され得る。いくつかの実施形態において、例えば、判定（９１０）は暗号サービスのウェブまたは他のサーバにより行われ、一方別の実施形態において、判定（９１０）はセキュリティモジュールにより行われる。
【００６７】
プロセス９００を実行するシステムがエクスポートドメインキーは利用不可能であると判定した場合（９１０）、プロセス９００は、前述のように要求を拒否すること（９０６）を含み得る。しかしながら、エクスポートドメインキーが利用可能であると判定された場合（９１０）、エクスポートキートークン内で特定されるエクスポートドメインキーが選択され得る（９１２）。エクスポートキートークン内で特定されるエクスポートドメインキーを選択するために（９１２）、図３に関連して前述されたようなデータ構造が使用され得る。エクスポートドメインキーはそれから、顧客キーを復号化するために使用され得る（９１４）。
【００６８】
前記のように、エクスポートキートークンは、権限のあるセキュリティモジュールの中でのみ利用可能であり得るため、結果、エクスポートドメインキーの選択（９１２）及びエクスポートキートークン内の顧客キーの復号化は、セキュリティモジュールにより行われ得る。受信された要求（９０２）において指定される要求有効期間に合うエクスポートドメインキーが選択され得る（９１６）。選択（９１６）は、図３に関連して前述されたようなデータ構造を参照するセキュリティモジュールにより行われ得る。要求有効期間に合うエクスポートドメインキーを選択する（９１６）セキュリティモジュールは、選択したエクスポートドメインキーを使用して顧客キーを暗号化し得る（９１８）。
【００６９】
選択されたエクスポートドメインキー（９１６）の下暗号化された顧客キーが一旦取得されると、プロセス９００は、暗号化された顧客キーを有するエクスポートキートークンを生成すること（９２０）を含み得る。エクスポートキートークンの生成は、顧客キーを暗号化したセキュリティモジュールにより、またはサーバにより起こり得る。例えば、いくつかの実施態様において、エクスポートキートークンは、権限のあるセキュリティモジュールの集合体の外部からアクセス不可能な暗号キーを使用して、セキュリティモジュールにより電子署名される。その結果、セキュリティモジュールは、エクスポートキートークンの生成（９２０）の責任を担い得る。セキュリティモジュールがエクスポートキートークンを生成する場合（９２０）、セキュリティモジュールは、プロセス９００を実行する暗号サービスのフロントエンドのウェブサーバに対し、エクスポートキートークンを提供し得る。どのようにフロントエンドのウェブサーバがエクスポートキートークンを取得するかに関わらず、ウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る（９２２）。本明細書において説明される他のプロセスと同様に、顧客キーがいずれの暗号処理の実行にももはや必要なくなった後の時点で、プロセス９００は、前述のように顧客キーへのアクセスを失うこと（９２４）を含み得る。
【００７０】
いくつかの実施例において、サービスプロバイダの顧客は、エクスポートキートークンを使用して、その顧客キーへの制限付きアクセスをサービスプロバイダに許可し得る。例えば、顧客は、サービスプロバイダをより信用し始め、及び／または自身のコンピューティングリソースを保持する顧客の負担を軽減するために、サービスプロバイダにより追加サービスが実行されることを所望し得る。図１０は、エクスポート型顧客キーをホスト型顧客キーに変換する要求を処理するプロセス１０００の実施例を示す。プロセス１０００は、前述のように暗号サービスによる等、任意の好適なシステムにより実行され、暗号サービスの異なるコンポーネントは、プロセス１０００の異なる処理を実行し得る。実施形態において、プロセス１０００は、エクスポート型顧客キーをホスト型顧客キーへ変換する要求を受信すること（１００２）を含む。要求は、前述のように、暗号サービスのフロントエンドのウェブサーバにより受信され得る（１００２）。要求は、例えば、受信された要求（１００２）のパラメータとしてエクスポートキートークンを含み得る。エクスポートキートークンを伴う様々な処理を実行する要求に関わる前述の他のプロセスと同様に、プロセス１０００は、前述のように、要求が真正であるか否かを判定すること（１００４）と、要求の履行が認可されるか否かを判定すること（１００８）と、好適なエクスポートドメインキーが利用可能であるか否かを判定すること（１０１０）とを含み得る。
【００７１】
好適なエクスポートドメインキーとは、要求において受信されたエクスポートキートークンから顧客キーの平文複製を取得するために使用可能なエクスポートドメインキーであり得る。要求が真正ではない（すなわち要求の真正性が検証不可能である）、要求の履行が認可されない、または好適なエクスポートドメインキーは利用不可能であると判定された場合、プロセス１０００は要求を拒否すること（１００６）を含み得る。しかしながら、要求が真正であると判定され（１００４）、要求の履行が認可されると判定され（１００８）、かつ好適なエクスポートドメインキーが利用可能であると判定された（１０１０）場合、プロセス１０００を実行するシステムは、要求において受信されたエクスポートキートークン内で特定されるエクスポートドメインキーを選択し得る（１０１２）。
【００７２】
前述のように、エクスポートドメインキーの選択は、プロセス１０００を実行する暗号サービスのセキュリティモジュールまたはウェブもしくは他のサービスにより行われ得る。プロセス１０００を実行する暗号サービスのセキュリティモジュールは、エクスポートキートークンを使用して顧客キーを復号化し得る（１０１４）。セキュリティモジュールはそれから、少なくともいくつかのエクスポートドメインキーより短い循環スケジュールを有する暗号キー等、セキュリティモジュールがホスト型顧客キーに使用するように構成される暗号キーであり得るドメインキーを選択し得る（１０１６）。セキュリティモジュールはそれから、ドメインキーを使用して顧客キーを暗号化し得る（１０１８）。暗号サービスのセキュリティモジュールまたはウェブもしくは他のサーバは、暗号化した顧客キーを有するキートークンを生成し得る（１０２０）。キートークンは、図４に関連して前述されたエクスポートキートークンのように、構造化され得る。いくつかの実施態様において、キートークンが内部顧客識別子４０４を有し得ないことを除いて、図４に関連して前述されたエクスポートキートークン４０２のようにキートークンは構造化される。しかし、いくつかの実施態様により、ホスト型顧客キーに内部顧客キー識別子を使用することは可能である。
【００７３】
セキュリティモジュールがキートークンを生成した後（１０２０）、セキュリティモジュールは、要求を受信した（１００２）暗号サービスのウェブサーバに対しキートークンを提供し、生成したキートークン（１０２０）をウェブサーバが記憶することを可能にし得る（１０２２）。いくつかの実施例において、ウェブサーバは、データストレージサービスに対し要求を送信し、データストレージサービスに、データストレージサービスのデータストレージデバイス等のコンピューティングリソースを使用してキートークンを記憶させる。一般に、プロセス１０００を実行する暗号サービスのサービスプロバイダによりホストされる及び／または制御されるハードウェアにキートークンが記憶され得るいずれの方法も、本開示の範囲内であるとみなされる。いくつかの実施形態において、セキュリティモジュールは、自身でデータストレージサービスに対し要求を送信し、このようなストレージの通知をウェブサーバに提供して、要求が履行されたことを示す要求応答を提供し得ることにも留意されたい。さらに、いくつかの代替実施形態において、セキュリティモジュールは、キートークンを生成せずに、セキュリティモジュールの外部からアクセス不可能な自身のローカルメモリにキートークンを記憶し得る。このような代替実施形態において、多数のセキュリティモジュールが顧客キーへのアクセスを有し得るように、セキュリティモジュール間において安全な転送が行われ得る。
【００７４】
いくつかの実施例において、サービスプロバイダの顧客は、様々な理由から、自分のホスト型顧客キーをエクスポート型顧客キーへ変換することを所望し得る。図１１は、従って、ホスト型顧客キーをエクスポート型顧客キーに変換する要求を処理するプロセス１１００の実施例を示す。プロセス１１００は、前述の暗号サービス等、任意の好適なシステムにより実行され得る。実施形態において、プロセス１１００は、ホスト型顧客キーをエクスポート型顧客キーへ変換する要求を受信すること（１１０２）を含む。要求は、プロセス１１００を実行する暗号サービスのフロントエンドのウェブサーバにより受信され得る（１１０２）。要求は、サービスプロバイダによりホストされる他のホスト型顧客キーからホスト型顧客キーを区別するのに利用可能なホスト型顧客キーの識別子を、パラメータとして含み得る。本明細書において説明される他のプロセスと同様に、プロセス１１００は、要求が真正であるか否を判定すること（１１０４）と、要求の履行が認可されるか否かを判定すること（１１０８）とを含み得る。要求が真正であると判定されなかった場合（１１０４）、または要求の履行が認可されないと判定された場合（１１０８）、プロセス１１００は要求を拒否すること（１１０６）を含み得る。
【００７５】
しかしながら、要求が真正であると判定され（１１０４）、かつ要求の履行が認可されると判定された（１１０８）場合、プロセス１１００は、データストレージから、受信された要求（１１０２）において指定されるホスト型顧客キーの暗号化された複製を備えるキートークンを取得すること（１１１０）を含み得る。本明細書において説明される、顧客キーの平文複製へのアクセスを伴わない多数の処理と同様に、プロセス１１００を実行する暗号サービスのウェブまたは他のサーバ、あるいはそのセキュリティモジュールによる等、異なる実施形態による異なるコンポーネントにより、キートークンは取得され得る（１１１０）。
【００７６】
どのようにキートークンがデータストレージから取得されるか（１１１０）に関わらず、プロセス１１００を実行する暗号サービスのセキュリティモジュールにより、キートークンは取得され得る。従って、図１１に例示されるように、セキュリティモジュールは、ドメインキーを使用して顧客キーを復号化し得る（１１１２）。セキュリティモジュールは、受信された要求（１１０２）内にパラメータとして指定される、あるいは非明示的に指定される（例えばデフォルトで指定される）有効期間に合うエクスポートドメインキーを選択し（１１１４）、選択したエクスポートドメインキーを使用して顧客キーを暗号化し得る（１１１６）。前述のような好適なコンポーネントが、暗号化された顧客キーを有するエクスポートキートークンを生成し得る（１１１８）。
【００７７】
生成されるエクスポートキートークン（１１１８）は、図４に関連して前述されたように構成され、例えば、受信された要求（１１０２）のパラメータとして指定され得る前述の内部顧客キー識別子４０４等の様々な識別子を含み得る。プロセス１１００を実行する暗号サービスのフロントエンドのウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る（１１２０）。本明細書において説明される他のプロセスと同様に、顧客キーの平文複製がもはや必要なくなった時、前述のように、プロセス１１００は顧客キーへのアクセスを失うこと（１１２２）を含み得る。
【００７８】
図５〜図１１は、暗号サービスまたは他のコンピュータシステムにより実行され得る様々なプロセスを例示する。プロセスは、様々な処理が特定の順序で行われることを示す。１つの処理の実行が他の処理に依存していない時等、処理の順序は例示されるものとは異なり得ることに留意されたい。例えば、要求の真正性及び要求履行の認可の判定は、異なる順序で、または並行して行われ得る。１つの処理の出力が他の処理への入力として使用されない時等、特定の順序で実行されることが要求されない他のペアの処理は、例示とは異なる順序で、または並行して行われ得る。実施例として、本明細書において説明される数多くのプロセスは、暗号サービスが顧客キーの全ての平文複製へのアクセスを失うことを引き起こす処理集合を実行することを含む。図面に例示される全てのプロセスにおいて、アクセス喪失を引き起こす処理集合は、プロセスの最後に起こる。しかしながら、システムのアクセス喪失を引き起こす処理は、顧客キーの平文複製に対し行われる、あるいは顧客キーの平文複製を使用して行われる全ての処理が完了した後等、任意の好適な時点で行われ得る。他の変形も、本開示の範囲内であるとみなされる。
【００７９】
例えば、いくつかの実施形態において、エクスポートドメインキーの期限切れは、エクスポートドメインキーへの完全なアクセス喪失を引き起こし、エクスポートドメインキーの下、暗号化された情報（例えば顧客キー）は、桁外れな計算量なしには回復不可能となる。いくつかの実施形態において、サービスプロバイダは、エクスポートドメインキーの有効期間が終わったデータの回復を許可するため等、期限が切れた後のエクスポートドメインキーの取得を許可し得る。サービスプロバイダは、例えば、エクスポートドメインキーの期限が切れた後、限定された時間、エクスポートドメインキーの複製をオフラインレポジトリに保持し得る。そのため、エクスポートドメインキーの複製がオフラインレポジトリから取得可能である間、エクスポートドメインキーは取得されて情報が復号化可能となる。別の実施例として、秘密暗号キーがオフラインレポジトリ（例えばデータセンタの鍵のかかった部屋の金庫の中）に保持され得る。対応する公開キーは、エクスポートドメインキーの複製を暗号化するために使用され、暗号化された複製は、データストレージシステムに記憶され得る。より後の時点で、秘密暗号キーはアクセスされ破棄され、これによりエクスポートドメインキーを回復する全ての潜在能力は取り除かれる。他の変形も、本開示の範囲内であるとみなされる。
【００８０】
論述されるように、本開示の多数の変形は、対称及び／または非対称暗号プリミティブを使用し得る様々な暗号処理の実行を伴う。対称キーアルゴリズムは、ブロック暗号、ストリーム暗号、電子署名スキームを含む、データに暗号処理を行う様々なスキームを含み得る。例示的対称キーアルゴリズムは、高度暗号化規格（ＡＥＳ）、データ暗号化規格（ＤＥＳ）、トリプルＤＥＳ（３ＤＥＳ）、Ｓｅｒｐｅｎｔ、Ｔｗｏｆｉｓｈ、ｂｌｏｗｆｉｓｈ、ＣＡＳＴ５、ＲＣ４、及び国際データ暗号化アルゴリズム（ＩＤＥＡ）を含む。対称キーアルゴリズムはまた、一方向関数の出力を生成するのに使用されるものも含み、ハッシュベースメッセージ認証符号（ＨＭＡＣ）、一般にメッセージ認証符号（ＭＡＣ）、ＰＢＫＤＦ２、及びＢｃｒｙｐｔを使用するアルゴリズムも含み得る。非対称キーアルゴリズムも、データに暗号処理を行う様々なスキームを含み得る。例示的アルゴリズムは、Ｄｉｆｆｉｅ‐Ｈｅｌｌｍａｎキー交換プロトコル、電子署名規格（ＤＳＳ）、電子署名アルゴリズム、ＥｌＧａｍａｌアルゴリズム、様々な楕円曲線アルゴリズム、パスワード認証キー共有技術、Ｐａｉｌｌｉｅｒ暗号システム、ＲＳＡ暗号アルゴリズム（ＰＫＣＳ＃１）、Ｃｒａｍｅｒ‐Ｓｈｏｕｐ暗号システム、ＹＡＫ認証キー共有プロトコル、ＮＴＲＵ暗号システム、及びＭｃＥｌｉｅｃｅ暗号システム等を使うものを含む。楕円曲線アルゴリズムは、楕円曲線Ｄｉｆｆｉｅ‐Ｈｅｌｌｍａｎ（ＥＣＤＨ）キー共有スキーム、楕円曲線統合暗号化スキーム（ＥＣＩＥＳ）、楕円曲線電子署名アルゴリズム（ＥＣＤＳＡ）、ＥＣＭＱＶキー共有スキーム、及びＥＣＱＶ暗黙的証明書スキームを含む。他のアルゴリズム及びアルゴリズムの組み合わせも、本開示の範囲内であるとみなされ、前述が網羅的なリストであるという意図はない。
【００８１】
図１２は、様々な実施形態による態様を実行する例示的環境１２００の態様を示す。説明のためにウェブベースの環境が使われているが、様々な実施形態を実行するために、異なる環境が適宜使用され得ることが理解されるであろう。環境は電子クライアントデバイス１２０２を含み、当電子クライアントデバイス１２０２には、要求、メッセージ、または情報を好適なネットワーク１２０４を介して送受信し、いくつかの実施形態において、デバイスのユーザへ情報を伝達し返すように作動可能な任意の好適なデバイスが含まれ得る。このようなクライアントデバイスの実施例には、パーソナルコンピュータ、携帯電話、手持ち型メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋め込み式コンピュータシステム、及び電子書籍リーダ等が含まれる。ネットワークには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、またはその他のこのようなネットワーク及び／またはこれらの組み合せを含む、任意の好適なネットワークが含まれ得る。このようなシステムに使用されるコンポーネントは、選択されるネットワーク及び／または環境の種類に少なくとも部分的に依拠し得る。このようなネットワークを介して通信を行うプロトコル及びコンポーネントはよく知られているため、本明細書では詳しく論述しない。ネットワークを介した通信は、有線、または無線接続、及びこれらの組み合せにより実行可能となり得る。当実施例において、要求を受信し、要求に応じてコンテンツを提供するウェブサーバ１２０６が環境に含まれることから、ネットワークにはインターネットが含まれるが、当業者にとって明らかであるように、他のネットワークに関しては、同様の目的にかなう代替デバイスも使用可能である。
【００８２】
例示的環境には、少なくとも１つのアプリケーションサーバ１２０８とデータストア１２１０とが含まれる。例示的環境には、いくつかのアプリケーションサーバ、レイヤーもしくは他の要素、プロセス、またはコンポーネントが存在し、これらは、好適なデータストアからデータを取得するといったタスクを実行するために相互に作用できるように連結あるいは構成され得ることを理解されたい。本明細書において使用されるサーバは、ハードウェアデバイスまたは仮想コンピュータシステム等、様々な方法で実施され得る。いくつかの文脈において、サーバは、コンピュータシステム上で実行されるプログラミングモジュールを指し得る。本明細書において使用される用語「データストア」は、特に明記しない限り、または文脈から明らかでない限り、データ記憶、データアクセス、及びデータ取得が可能な任意のデバイスまたはデバイスの組み合わせを指し、これは、任意の標準、分散、仮想、またはクラスタ環境における任意の数のデータサーバ、データベース、データストレージデバイス、データ記憶媒体、及びこれらの任意の組み合わせを含み得る。アプリケーションサーバには、クライアントデバイス用の１つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合し、アプリケーションのデータアクセス及びビジネスロジックの一部または全てを取り扱う任意の好適なハードウェア、ソフトウェア、及びファームウェアが含まれ得る。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、そしてテキスト、画像、音声、映像、及び／またはユーザ提供に利用可能な他のコンテンツを含むがこれに限定されないコンテンツを生成可能である。生成されたコンテンツは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、ジャバスクリプト、階層式スタイルシート（ＣＳＳ）、または別の好適なクライアント側構造化言語の形式で、ウェブサーバによりユーザへ提供され得る。ユーザが聴覚的に、視覚的に、及び／または触覚、味覚、及び／または嗅覚を含む他の感覚を通して知覚可能な形式を含むがこれに限定されない１つまたは複数の形式でコンテンツを提供するように、クライアントデバイスへ転送されるコンテンツはクライアントデバイスにより処理され得る。全ての要求及び応答の取り扱い、並びにクライアントデバイス１２０２とアプリケーションサーバ１２０８との間のコンテンツ配信は、ＰＨＰ：ハイパーテキストプリプロセッサ（ＰＨＰ）、Ｐｙｔｈｏｎ、Ｒｕｂｙ、Ｐｅｒｌ、Ｊａｖａ（登録商標）、ＨＴＭＬ、ＸＭＬ、または当実施例における別の好適なサーバ側構造化言語を使用して、ウェブサーバにより取り扱われ得る。本明細書において論述される構造化コードは、本明細書の別の箇所に論述される任意の好適なデバイスまたはホストマシン上で実行可能であるため、ウェブ及びアプリケーションサーバは必須ではなく、単なる例示的コンポーネントにすぎないことを理解されたい。さらに、本明細書において説明される単一デバイスにより実行される処理は、文脈から明らかでない限り、分散及び／または仮想システムを形成し得る多数のデバイスにより集合的に実行されてもよい。
【００８３】
データストア１２１０は、本開示の特定の態様に関連するデータを記憶するために、いくつかの個別のデータテーブル、データベース、データ文書、動的データストレージスキーム、及び／または他のデータストレージ機構及び媒体を含み得る。例えば、例示されるデータストアは、コンテンツを生成側に提供するために使用され得る生成データ１２１２及びユーザ情報１２１６を記憶する機構を含み得る。データストアはまた、報告、分析、もしくはその他のこのような目的に使用され得るログデータ１２１４を記憶する機構も含むことが示される。ページ画像情報、及びアクセス権限情報等、データストアに記憶される必要があり得る多数の他の態様が存在する可能性があり、これらは、データストア１２１０内の上記の機構のうちの好適ないずれかに、または追加機構に記憶され得ることを理解されたい。データストア１２１０は、対応付けられたロジックを通して、アプリケーションサーバ１２０８から指示を受信し、指示に応じてデータを取得、更新、あるいは処理するように作動可能である。アプリケーションサーバ１２０８は、受信された指示に応じて、静的データ、動的データ、または静的データ及び動的データの組み合わせを提供し得る。ウェブログ（ブログ）に使用されるデータ等の動的データ、ショッピングアプリケーション、ニュースサービス、及び他のこのようなアプリケーションは、本明細書において説明されるサーバ側構造化言語により生成され得る、またはアプリケーションサーバ上で作動する、もしくはアプリケーションサーバの制御下で作動するコンテンツ管理システム（ＣＭＳ）により提供され得る。一実施例において、ユーザにより操作されるデバイスを通したユーザは、ある種類のアイテムの検索要求を提出し得る。この場合、データストアは、ユーザ情報にアクセスしてユーザの身元確認を行い、カタログ詳細情報にアクセスして当種類のアイテムに関する情報を取得し得る。取得された情報はそれから、ユーザデバイス１２０２のブラウザを介してユーザが見ることが可能なウェブページ上の結果一覧内等で、ユーザに返され得る。特定の注目アイテムに関する情報は、ブラウザの専用ページまたは専用ウィンドウにおいて見ることが可能である。しかしながら、本開示の実施形態は、必ずしもウェブページという状況に限定されず、コンテンツに対する要求とは限らない通常の要求の処理に、より一般的に適用可能であり得ることに留意されたい。
【００８４】
各サーバは、そのサーバの一般管理及び動作に関する実行可能プログラム命令を提供するオペレーティングシステムを通常含み、かつ命令を記憶するコンピュータ可読記憶媒体（例えばハードディスク、ランダムアクセスメモリ、読取専用メモリ等）を通常含み、当命令がサーバのプロセッサにより実行されると、サーバはその所定機能を実行可能となる。サーバのオペレーティングシステム及び一般機能の好適な実装は、周知であり、または市販されており、当業者は、特に本明細書の開示を踏まえて、容易に実装するだろう。
【００８５】
一実施形態における環境は、１つまたは複数のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続された、いくつかのコンピュータシステム及びコンポーネントを利用する分散及び／または仮想コンピューティング環境である。しかしながら、このようなシステムは、図１２に例示されるコンポーネントよりも数の少ない、または多いコンポーネントを有するシステムにおいても同等によく作動し得ることが、当業者には理解されるだろう。従って、図１２におけるシステム１２００の描写は、本来例示としてみなされるべきであり、開示範囲を限定するものではない。
【００８６】
様々な実施形態はさらに、多様な動作環境において実施可能であり、いくつかの事例において、多数のアプリケーションのうちのいずれかを作動させるのに使用可能な１つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る。ユーザまたはクライアントデバイスには、標準のオペレーティングシステムを実行するデスクトップ、ラップトップ、またはタブレットコンピュータ、並びにモバイルソフトウェアを実行し、多数のネットワーク及びメッセージ通信プロトコルに対応可能なセルラー、無線、及び手持ち型デバイス等、多数の汎用パーソナルコンピュータのうちのいずれかが含まれ得る。このようなシステムはまた、開発及びデータベース管理等のために、様々な市販のオペレーティングシステム及び他の周知のアプリケーションのうちのいずれかを実行する多数のワークステーションを含み得る。これらのデバイスには、ダミー端末、シンクライアント、ゲーム機、及びネットワークを介して通信可能な他のデバイス等、他の電子デバイスも含まれ得る。これらのデバイスには、仮想マシン、ハイパーバイザ、及びネットワークを介して通信可能な他の仮想デバイス等、仮想デバイスも含まれ得る。
【００８７】
伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、開放型システム間相互接続（ＯＳＩ）モデルの様々なレイヤーで作動するプロトコル、ファイル転送プロトコル（ＦＴＰ）、ユニバーサルプラグアンドプレイ（ＵｐｎＰ）、ネットワークファイルシステム（ＮＦＳ）、共通インターネットファイルシステム（ＣＩＦＳ）、及びアップルトーク等、様々な市販のプロトコルのうちのいずれかを使用する通信に対応する、当業者によく知られる少なくとも１つのネットワークを、本開示の様々な実施形態は利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びこれらの任意の組み合わせであり得る。
【００８８】
ウェブサーバを使用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバ、ＦＴＰサーバ、共通ゲートウェイインタフェース（ＣＧＩ）サーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、Ａｐａｃｈｅサーバ、及びビジネスアプリケーションサーバを含む様々なサーバまたは中階層アプリケーションのうちのいずれかを実行可能である。サーバ（複数可）はまた、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋等の任意のプログラミング言語、またはＲｕｂｙ、ＰＨＰ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬ等の任意のスクリプト言語、並びにこれらの組み合せで書かれた１つまたは複数のスクリプトもしくはプログラムとして実装され得る１つまたは複数のウェブアプリケーションを実行すること等により、ユーザデバイスからの要求に応じてプログラムまたはスクリプトを実行可能であり得る。サーバ（複数可）はまた、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、及びＩＢＭ（登録商標）から市販されるデータベースサーバ、並びにＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓ、ＳＱＬｉｔｅ、ＭｏｎｇｏＤＢ等のオープンソースサーバ、及び構造化または非構造化データの記憶、取得、及びアクセスを実行可能なその他のサーバを含むが、これに限定されないデータベースサーバを含み得る。データベースサーバには、テーブルベースサーバ、文書ベースサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、もしくはこれらの組み合わせ、及び／または他のデータベースサーバが含まれ得る。
【００８９】
環境には、前述のように、様々なデータストア、並びに他のメモリ及び記憶媒体が含まれ得る。これらは、コンピュータのうちの１つまたは複数のローカルにある（及び／または中に存在する）記憶媒体上、あるいはネットワーク上でコンピュータのうちの任意または全てから遠隔にある記憶媒体上等、様々な場所に存在し得る。特定集合の実施形態において、当業者によく知られるストレージエリアネットワーク（ＳＡＮ）に情報は存在し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を実行するために必要な任意のファイルは、ローカル及び／またはリモートに適宜記憶され得る。システムに含まれるコンピュータ化デバイスはそれぞれ、例えば少なくとも１つの中央処理装置（ＣＰＵまたはプロセッサ）と、少なくとも１つの入力デバイス（例えばマウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）と、少なくとも１つの出力デバイス（例えばディスプレイデバイス、プリンタ、またはスピーカ）とを含む、バスを介して電気的に結合され得るハードウェア要素を含み得る。このようなシステムはまた、ディスクドライブ、光学ストレージデバイス、及び、ランダムアクセスメモリ（ＲＡＭ）もしくは読出専用メモリ（ＲＯＭ）等のソリッドステートストレージデバイス、並びに着脱可能媒体デバイス、メモリカード、フラッシュカード等といった、１つまたは複数のストレージデバイスを含み得る。
【００９０】
このようなデバイスはまた、前述のように、コンピュータ可読記憶媒体リーダと、通信デバイス（例えばモデム、ネットワークカード（無線または有線）、赤外線通信デバイス等）と、作業メモリとを含み得る。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び／またはより永久的に保有、記憶、送信、及び取得するためのリモート、ローカル、固定、及び／または着脱可能の記憶デバイス並びに記憶媒体に相当するコンピュータ可読記憶媒体と接続、または当コンピュータ可読記憶媒体を受けるように構成され得る。システム及び様々なデバイスはまた通常、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステム及びアプリケーションプログラムを含む、少なくとも１つの作業メモリデバイス内に配置された多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替実施形態は、前述の実施形態からの多数の変形形態を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され、及び／または特定要素がハードウェア、ソフトウェア（アプレット等のポータブルソフトウェアを含む）、またはその両方に実装され得る。さらに、ネットワーク入力／出力デバイス等の他のコンピューティングデバイスへの接続が採用され得る。
【００９１】
コードや部分的コードを含む記憶媒体及びコンピュータ可読媒体には、当技術分野において既知または既に使用されている任意の好適な媒体が含まれ得る。任意の好適な媒体には、コンピュータ可読命令、データ構造、ブログラムモジュール、もしくは他のデータといった情報の記憶及び／または送信に関する任意の方法または技術で実行される揮発性及び不揮発性、着脱可能及び着脱不可能媒体が挙げられるが、これに限定されない記憶媒体及び通信媒体が含まれる。記憶媒体及び通信媒体には、ＲＡＭ、ＲＯＭ、電気的消去可能プログラム可能読出専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用され、システムデバイスによりアクセス可能なその他の媒体が含まれる。本明細書において提供される開示及び教示に基づいて、当業者は、様々な実施形態を実施する他のやり方及び／または方法を理解するだろう。
【００９２】
従って、明細書及び図面は、限定的ではなく例示的であるとみなされるべきである。しかしながら、これらに対し、特許請求の範囲に明記される本発明のより広い趣旨と範囲から逸脱せずに、様々な修正及び変更が行われてもよいことは、明白である。
【００９３】
他の変形は、本開示の趣旨の範囲内で行われる。従って、開示される技術は、様々な修正及び代替構造を許容可能であるが、これらのうちの特定の例示的実施形態が、図面に示され、詳しく前述されている。しかしながら、本発明を、開示される特定の形式（複数可）に限定する意図はなく、それとは逆に、添付の請求項で定義される本発明の趣旨と範囲に入る全ての修正、代替構造、及び同等物を対象とする意図があることを理解されたい。
【００９４】
開示される実施形態を説明する文脈における（特に以下の請求項の文脈における）用語「ａ」、「ａｎ」、「ｔｈｅ」、及び同様の指示語の使用は、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、単数と複数の両方を対象にすると解釈されるべきである。「ｃｏｍｐｒｉｓｉｎｇ（備える）」、「ｈａｖｉｎｇ（有する）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、及び「ｃｏｎｔａｉｎｉｎｇ（含む）」の用語は、特に断りのない限り、無制限用語（すなわち「含むがこれに限定されない」という意味）として解釈されるべきである。用語「ｃｏｎｎｅｃｔｅｄ（結合された）」は、修正されず物理的結合を指す場合、介在するものがあるとしても、部分的または全体的に、何かの中に含まれる、何かへ取り付けられる、または何かと一緒に結合される、と解釈されるべきである。本明細書における値の範囲の詳述は、本明細書において特に指示のない限り、範囲内に入る個々の値を個別に指す簡略な方法として用いられることを単に意図し、そして個々の値は、本明細書において個別に詳述されているかのように明細書に組み込まれる。用語「ｓｅｔ（集合）」（例えば「項目集合」）または「ｓｕｂｓｅｔ（部分集合）」の使用は、特に明記がないか、文脈と矛盾しない限り、１つまたは複数の要素を含む非空集合として解釈されるべきである。さらに、特に明記がないか、文脈と矛盾しない限り、対応集合の「ｓｕｂｓｅｔ（部分集合）」の用語は、必ずしも対応集合の真部分集合を示すとは限らず、部分集合と対応集合は等しくてもよい。
【００９５】
形式「Ａ、Ｂ、及びＣのうちの少なくとも１つ」または「Ａ、Ｂ及びＣのうちの少なくとも１つ」の語句等の接続的文体は、特に明記がないか、または明らかに文脈と矛盾しない限り、項目、項等が、ＡまたはＢまたはＣのいずれか、あるいはＡ及びＢ及びＣの集合の任意の非空部分集合であり得ることを示すよう、一般に使用される文脈で理解される。例えば、３つの要素を有する集合の実施例において、接続的語句「少なくともＡ、Ｂ、及びＣのうちの１つ」及び「少なくともＡ、Ｂ及びＣのうちの１つ」は、｛Ａ｝、｛Ｂ｝、｛Ｃ｝、｛Ａ、Ｂ｝、｛Ａ、Ｃ｝、｛Ｂ、Ｃ｝、｛Ａ、Ｂ、Ｃ｝の集合のうちのいずれかを指す。従って、このような接続的文体は一般に、ある実施形態において少なくとも１つのＡ、少なくとも１つのＢ、及び少なくとも１つのＣ、それぞれが存在する必要があることを意味する意図はない。
【００９６】
本明細書において説明されるプロセスの処理は、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、任意の好適な順序で行うことが可能である。本明細書において説明されるプロセス（あるいはそれらの変形形態及び／または組み合わせ）は、実行可能命令で構成される１つまたは複数のコンピュータシステムの制御下で実行され、ハードウェアまたはそれらの組み合わせにより、１つまたは複数のプロセッサ上で集合的に実行されるコード（例えば実行可能命令、１つまたは複数のコンピュータプログラム、もしくは１つまたは複数のアプリケーション）として、実装され得る。コードは、例えば、１つまたは複数のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読記憶媒体に保存され得る。コンピュータ可読記憶媒体は、非一時的であり得る。
【００９７】
本明細書において提供されるあらゆる全ての実施例または例示語（例えば「等」）の使用は、単に本発明の実施形態をより分かり易くすることを意図し、特に請求のない限り本発明の範囲を限定するものではない。本明細書におけるどの文体も、任意の非請求要素が本発明の実施に必須であるかのように解釈されるべきではない。
【００９８】
本明細書において説明される本開示の実施形態には、本発明を実施するための本発明者が知る最適な形態が含まれる。これらの実施形態の変形形態は、前述の説明を読むことで、当業者に明らかとなるだろう。本発明者は、当業者がこのような変形形態を適宜採用することを見込み、また本発明者は、本開示の実施形態が本明細書において具体的に説明される以外の方法で実行されることを意図する。従って、本開示の範囲は、本明細書に添付される請求項において詳述される内容の全ての変更及び均等物を、適用法令により認可したものとして含む。さらに、これらの全ての可能な変形形態における前述の要素のいずれの組み合わせも、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、本開示の範囲に含まれる。
【００９９】
本明細書において引用される公報、特許出願、及び特許を含む全ての参考文献は、各文献が参照により組み込まれるよう個々に具体的に示され、かつその全体が本明細書において記載されるのと同程度に、参照により本明細書に組み込まれるものとする。
【０１００】
本開示の実施形態は、以下の条項を以って説明され得る。
１．暗号サービスのウェブサーバにおいて、前記暗号サービスの顧客に対応付けられたデバイスから、有効期間を指定する暗号キーの要求を受信することと、
暗号材料のハードウェア保護を提供するデバイスにおいて、前記暗号キーを生成することと、
前記デバイス内に記憶され、前記デバイスからプログラム的にエクスポート不可能なドメインキー集合の中から、前記指定された有効期間に合う有効期限を有するドメインキーを選択することであって、前記有効期限に従って特定される時点に前記ドメインキーが永久に前記デバイスによりアクセス不可能となることを引き起こす自動プロセスの少なくとも１つのインスタンスにより前記有効期限は施行される、前記指定された有効期間に合う前記有効期限を有する前記ドメインキーを選択することと、
前記デバイスにおいて、前記生成された暗号キーを暗号化することと、
前記暗号化された暗号キー及び前記暗号キーの識別子を含むトークンを生成することと、
前記顧客に対応付けられた前記デバイスに対し、前記受信された要求に応えて前記トークンを提供することと、
前記デバイスが前記暗号キーへのアクセスを失うことを引き起こす１つまたは複数の処理を行うことと、
を含むコンピュータ実施方法。
【０１０１】
２．前記暗号サービスがポリシーを使用して、前記暗号キーを用いて暗号処理を実行する要求の履行を制御するように、前記ポリシーと前記暗号キーの前記識別子を対応付けることをさらに含む、条項１に記載のコンピュータ実施方法。
【０１０２】
３．前記ウェブサーバにおいて、ホスト型暗号キーの第２要求を受信することと、
前記デバイスにおいて、前記ホスト型暗号キーを生成することと、
前記デバイスに記憶される第２ドメインキーを使用して、前記ホスト型暗号キーを暗号化することと、
前記暗号サービスへアクセス可能な場所に前記暗号化されたホスト型暗号キーを記憶することと
をさらに含む、条項１または２に記載のコンピュータ実施方法。
【０１０３】
４．前記ドメインキーは、エクスポート型暗号キーのために支給される前記ドメインキー集合の第１部分集合に属する第１ドメインキーであり、
前記第２ドメインキーは、ホスト型暗号キーのために支給される前記ドメインキー集合の第２部分集合に属する、
条項３に記載のコンピュータ実施方法。
【０１０４】
５．１つまたは複数のサービスを実施するように構成される少なくとも１つのコンピューティングデバイスを備えるシステムであって、前記１つまたは複数のサービスは、
暗号キーの要求を受信し、
前記暗号キーの前記要求を履行するように構成され、前記暗号キーの前記要求を履行することは、
前記暗号キーを取得することと、
暗号材料を使用して前記取得された暗号キーを暗号化することであって、前記暗号材料は、前記暗号材料のハードウェア保護をそれぞれが提供するハードウェアデバイス集合の外側からアクセス不可能であり、前記暗号材料は、前記ハードウェアデバイス集合から前記暗号材料がアクセス不可能となる時間に対応する有効期限を有し、前記有効期限は、前記システムにより実行される自動化プロセスにより施行される、前記暗号材料を使用して前記取得された暗号キーを暗号化することと、
前記暗号化された暗号キーを提供することと、
前記ハードウェアデバイス集合が前記取得された暗号キーへのアクセスを失うことを引き起こすことと、
により行われる、前記システム。
【０１０５】
６．前記１つまたは複数のサービスはさらに、前記暗号キーの識別子を含むトークンを生成するように構成され、
前記暗号化された暗号キーを提供することは、前記生成されたトークンを提供することを含む、
条項５に記載のシステム。
【０１０６】
７．前記１つまたは複数のサービスはさらに、
前記暗号キーを使用して暗号処理を行う第２要求であって、前記暗号化された暗号キーを含む前記第２要求を受信し、
前記暗号材料が今もなお利用可能であることを条件として、前記暗号化された暗号キーを復号化し、前記暗号キーを使用して前記暗号処理を実行することにより、前記第２要求を履行する、
ように構成される、条項５または６に記載のシステム。
【０１０７】
８．前記１つまたは複数のサービスはさらに、
前記暗号処理を実行する第３要求であって、前記１つまたは複数のサービスにより管理される第２暗号キーの識別子を指定する前記要求を受信し、
前記要求を履行するように構成され、前記要求を履行することは少なくとも、
データストレージ場所から前記第２暗号キーの暗号化された複製を取得することと、
前記第２暗号キーの前記暗号化された複製を復号化することと、
前記第２暗号キーを使用して前記暗号処理を実行することと
により行われる、条項７に記載のシステム。
【０１０８】
９．前記１つまたは複数のサービスはさらに、
前記暗号キーの許可集合を指定するポリシーを前記暗号キーと対応付け、
前記ポリシーに従って前記暗号キーを使用する要求の履行を制御する、
ように構成される、条項５〜８のいずれかに記載のシステム。
【０１０９】
１０．前記１つまたは複数のサービスはさらに、前記暗号材料へのアクセスを前記１つまたは複数のサービスが失う時間を示す前記暗号材料の有効期限に少なくとも部分的に基づいて、前記暗号材料を選択するように構成される、条項５〜９のいずれかに記載のシステム。
【０１１０】
１１．前記ハードウェアデバイスはハードウェアセキュリティモジュールである、
条項５〜１０のいずれかに記載のシステム。
【０１１１】
１２．前記暗号キーを取得することは、
前記１つまたは複数のサービスにアクセス可能なデータストレージシステムから前記暗号キーの暗号化された複製を取得することと、
前記暗号材料とは異なる別の暗号材料を使用して前記暗号キーの前記暗号化された複製を復号化することと、
を含む、条項５〜１１のいずれかに記載のシステム。
【０１１２】
１３．実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が第１エンティティのコンピュータシステムの１つまたは複数のプロセッサにより実行されると、前記命令により前記コンピュータシステムは少なくとも、
キートークンの第１要求に関して、
第１暗号キーの暗号化された複製と、前記第１暗号キーを暗号化するのに使用された第２暗号キーを識別するのに使用可能な情報を含むキートークンを取得することであって、前記第２暗号キーは、前記第２暗号キーを管理するハードウェアデバイス集合の外側からアクセス不可能であり、前記キートークンを取得することは、前記キートークンが生成された後に前記第１暗号キーが前記エンティティへアクセス不可能になることを引き起こし、前記第２暗号キーは、前記ハードウェアデバイス集合へ前記第２暗号キーがアクセス不可能となる時間を示す有効期限を有する、前記キートークンを取得することと、
第２エンティティに対応付けられた、キートークンの第２要求に関して、
前記キートークンを取得することと、
前記有効期限により示される前記時間がまだ経過していない場合、前記ハードウェアデバイス集合内のハードウェアデバイスに、前記第１暗号キーを復号化させ、前記復号化された第１暗号キーを使用して１つまたは複数の暗号処理を実行させ、前記１つまたは複数の暗号処理の結果を前記コンピュータシステムへ提供させることと、
前記提供される結果に少なくとも部分的に基づく前記第２要求への応答を提供することと、
を実行する、前記非一時的コンピュータ可読記憶媒体。
【０１１３】
１４．前記キートークンを取得する前記命令は、前記１つまたは複数のプロセッサにより実行されると、前記第１要求の受信結果として前記キートークンが生成されることを前記コンピュータシステムに引き起こさせるように前記命令が構成される、
条項１３に記載の非一時的コンピュータ可読記憶媒体。
【０１１４】
１５．前記キートークンを取得する前記命令は、前記１つまたは複数のプロセッサにより実行されると、前記ハードウェアデバイス集合の前記ハードウェアデバイスのうちの１つに対し、前記キートークンの生成を引き起こす命令を前記コンピュータシステムに発行させるように前記命令が構成される、
条項１３または１４に記載の非一時的コンピュータ可読記憶媒体。
【０１１５】
１６．前記命令は、前記第２要求に関して実行されると前記コンピュータシステムに、
前記第１暗号キーの識別子に少なくとも部分的に基づいて、前記第１暗号キーを使用するための許可集合を定義するポリシー集合を特定させ、
前記要求の履行が前記特定されたポリシー集合に準拠するか否かを判定させる
命令をさらに含み、
前記ハードウェアデバイスが前記第１暗号キーを復号化し、前記復号化された第１暗号キーを使用して前記１つまたは複数の暗号処理を実行することを前記コンピュータシステムに引き起こさせる前記命令の実行は、前記要求の履行が前記特定されたポリシー集合に準拠するという判定を条件とする、
条項１３〜１５のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【０１１６】
１７．前記第１エンティティは前記コンピュータシステムを運用するサービスプロバイダであり、前記第２エンティティは前記サービスプロバイダの顧客である、
条項１３〜１６のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【０１１７】
１８．前記第２要求は前記キートークンを含み、
前記コンピュータシステムに前記キートークンを取得させる前記命令は、前記１つまたは複数のプロセッサにより実行されると、前記コンピュータシステムに前記第２要求から前記キートークンを特定させる、
条項１３〜１７のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【０１１８】
１９．前記ハードウェアデバイス集合は複数のハードウェアセキュリティモジュールを備える、
条項１３〜１８のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【０１１９】
２０．前記コンピュータシステムに前記キートークンを取得させる前記命令は、前記１つまたは複数のプロセッサにより実行されると、前記第１要求内で指定される有効期間に合う有効期限を有する前記第２暗号キーに依って前記第２暗号キーの選択を行うやり方で前記コンピュータシステムに前記キートークンを取得させる、
条項１３〜１９のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【図１】
2019118135.tif 000003
【図２】
2019118135.tif 000004
【図３】
2019118135.tif 000005
【図４】
2019118135.tif 000006
【図５】
2019118135.tif 000007
【図６】
2019118135.tif 000008
【図７】
2019118135.tif 000009
【図８】
2019118135.tif 000010
【図９】
2019118135.tif 000011
【図１０】
2019118135.tif 000012
【図１１】
2019118135.tif 000013
【図１２】
2019118135.tif 000014
【手続補正書】
【提出日】平成31年4月24日(2019.4.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号キーおよび少なくとも１つのトークンを含む、データオブジェクトを暗号化するための暗号処理要求を取得することと、
暗号材料のハードウェアベース保護を提供するデバイスを含み、前記少なくとも１つのトークンを検証すること、および、正当であると判定された前記少なくとも１つのトークンおよび前記暗号処理要求の前記暗号キーへのアクセスを認可するアクセスポリシーに従って前記暗号処理要求に従った前記暗号キーを用いて前記データオブジェクトを暗号化すること、を含む処理の１または複数を実行するハードウェアセキュリティモジュールに、前記暗号処理要求を送信することと、
前記暗号処理要求の処理結果を含む応答を、前記ハードウェアセキュリティモジュールから取得することと、
前記暗号処理要求に応答して、前記応答を送信することと、
を含む方法。
【請求項２】
前記少なくとも１つのトークンは、予め定められた時間の間に使用可能である、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのトークンは、前記暗号キーに少なくとも部分的に基づいて生成される、請求項１または２に記載の方法。
【請求項４】
前記少なくとも１つのトークンは、前記暗号キーの識別子を含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
１または複数のハードウェアセキュリティモジュールと、
プロセッサとメモリを含む少なくとも１つのコンピューティングデバイスと、を備えるシステムであって、
前記メモリは、実行されると前記システムに、
暗号キーおよび少なくとも１つのトークンを含む、データを復号化するための暗号処理要求を取得することと、
前記暗号処理要求の前記暗号キーに関連付けられたアクセスポリシーが、前記暗号キーへのアクセス管理に認可されているかどうかを判定することと、
前記少なくとも１つのトークンを検証することと、
前記少なくとも１つのトークンが正当であり、前記アクセスポリシーが前記暗号処理要求の前記暗号キーへのアクセス管理に認可されていると判定すると、前記暗号キーを用いて前記データを復号化することによって前記暗号処理要求を処理することと、
を実行させる命令を含む、システム。
【請求項６】
前記少なくとも１つのトークンは、前記少なくとも１つのトークンの完全性の検証に使用可能な電子署名を含む、請求項５に記載のシステム。
【請求項７】
前記暗号処理要求は、リクエスタの証明書によって電子署名される、請求項５または６に記載のシステム。
【請求項８】
前記暗号処理要求は、前記暗号処理要求に関連付けられた電子署名の検証のために認証サービスに提供される、請求項５から７のいずれか一項に記載のシステム。
【請求項９】
前記暗号キーは、前記１または複数のハードウェアセキュリティモジュールに記憶されたドメインキーの集合の中から選択されたドメインキーに基づいて暗号化される、請求項５から８のいずれか一項に記載のシステム。
【請求項１０】
前記ドメインキーの集合は、前記１または複数のハードウェアセキュリティの外部からアクセス不可能である、請求項９に記載のシステム。
【請求項１１】
前記ドメインキーの集合の各ドメインキーは、有効期限と関連づけられる、請求項９または１０に記載のシステム。
【請求項１２】
前記暗号処理要求を処理する前記命令は、前記システムに前記ドメインキーを用いて前記暗号キーを復号化することを実行させる命令をさらに含む、請求項９から１１のいずれか一項に記載のシステム。
【請求項１３】
命令を有するプログラムであって、前記命令は、コンピュータシステムの１または複数のプロセッサにより実行されると、前記コンピュータシステムに、少なくとも、
少なくとも１つのハードウェアセキュリティモジュールを含む１または複数のシステムにおいて、暗号キーおよび前記少なくとも１つのハードウェアセキュリティモジュールにより電子署名された少なくとも１つのトークンを含む暗号処理要求を取得することと、
前記１または複数のシステムによって、前記暗号処理要求の前記暗号キーに関連付けられたアクセスポリシーが、前記暗号キーへのアクセス管理に認可されているかどうかを判定することと、
前記１または複数のシステムによって、前記少なくとも１つのトークンに関連付けられた電子署名を検証することによって、前記少なくとも１つのトークンを検証することと、
前記少なくとも１つのトークンが正当であり、前記アクセスポリシーが前記暗号処理要求の前記暗号キーへのアクセス管理に認可されていると判定すると、前記１または複数のシステムによって、前記暗号処理要求を処理することと、
を実行させる、プログラム。
【請求項１４】
前記暗号処理要求は、データを暗号化または復号化するための要求を含む、請求項１３に記載のプログラム。
【請求項１５】
前記暗号処理要求は、データに関連付けられた電子署名を検証するための要求を含む、請求項１３に記載のプログラム。
【請求項１６】
前記命令は、前記システムに前記暗号処理要求の処理後に前記暗号キーへのアクセスを喪失することを実行させる命令をさらに含む、請求項１３から１５のいずれか一項に記載のプログラム。
【請求項１７】
前記アクセスポリシーは、前記暗号処理要求の履行を許す許可の集合を示す情報を含む、請求項１３から１６のいずれか一項に記載のプログラム。
【請求項１８】
前記少なくとも１つのトークンを検証するための前記命令は、前記システムに前記少なくとも１つのトークンに関連付けられた有効期間が有効期限を過ぎたかどうか判定することを実行させる命令をさらに含む、請求項１３から１７のいずれか一項に記載のプログラム。
【請求項１９】
前記命令は、前記システムに前記少なくとも１つのトークンに関連付けられた前記有効期間が有効期限を過ぎたと判定すると、前記暗号処理要求の処理を拒否することを実行させる命令をさらに含む、請求項１８に記載のプログラム。
【請求項２０】
前記命令は、前記システムに前記少なくとも１つのトークンに関連付けられた前記有効期間を延長することを実行させる命令をさらに含む、請求項１８または１９に記載のプログラム。
【外国語明細書】
2019118135000001.pdf