特許第6499310号(P6499310)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン・テクノロジーズ、インコーポレイテッドの特許一覧

<>
  • 特許6499310-キーエクスポート技術 図000002
  • 特許6499310-キーエクスポート技術 図000003
  • 特許6499310-キーエクスポート技術 図000004
  • 特許6499310-キーエクスポート技術 図000005
  • 特許6499310-キーエクスポート技術 図000006
  • 特許6499310-キーエクスポート技術 図000007
  • 特許6499310-キーエクスポート技術 図000008
  • 特許6499310-キーエクスポート技術 図000009
  • 特許6499310-キーエクスポート技術 図000010
  • 特許6499310-キーエクスポート技術 図000011
  • 特許6499310-キーエクスポート技術 図000012
  • 特許6499310-キーエクスポート技術 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6499310
(24)【登録日】2019年3月22日
(45)【発行日】2019年4月10日
(54)【発明の名称】キーエクスポート技術
(51)【国際特許分類】
   H04L 9/08 20060101AFI20190401BHJP
【FI】
   H04L9/00 601B
【請求項の数】15
【全頁数】37
(21)【出願番号】特願2017-549404(P2017-549404)
(86)(22)【出願日】2016年3月25日
(65)【公表番号】特表2018-511247(P2018-511247A)
(43)【公表日】2018年4月19日
(86)【国際出願番号】US2016024302
(87)【国際公開番号】WO2016160597
(87)【国際公開日】20161006
【審査請求日】2017年10月27日
(31)【優先権主張番号】14/675,614
(32)【優先日】2015年3月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506223509
【氏名又は名称】アマゾン・テクノロジーズ、インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】カンパーニャ、マシュー ジョン
(72)【発明者】
【氏名】ロス、グレゴリー ブランチェク
【審査官】 行田 悦資
(56)【参考文献】
【文献】 特開2010−087888(JP,A)
【文献】 国際公開第2014/126813(WO,A1)
【文献】 特開2006−120089(JP,A)
【文献】 特開平10−041933(JP,A)
【文献】 特開2007−208887(JP,A)
【文献】 特開2014−140132(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
暗号サービスのウェブサーバにおいて、前記暗号サービスの顧客に対応付けられたデバイスから、有効期間を指定する暗号キーの要求を受信することと、
暗号材料のハードウェア保護を提供するデバイスにおいて、前記暗号キーを生成することと、
前記デバイス内に記憶され、前記デバイスからプログラム的にエクスポート不可能なドメインキー集合の中から、前記指定された有効期間に合う有効期限を有するドメインキーを選択することであって、前記有効期限に従って特定される時点に前記ドメインキーが永久に前記デバイスによりアクセス不可能となることを引き起こす自動プロセスの少なくとも1つのインスタンスにより前記有効期限は施行される、前記指定された有効期間に合う前記有効期限を有する前記ドメインキーを選択することと、
前記デバイスにおいて、前記選択されたドメインキーを使用して前記生成された暗号キーを暗号化することと、
前記暗号化された暗号キー及び前記暗号キーの識別子を含むトークンを生成することと、
前記顧客に対応付けられた前記デバイスに対し、前記受信された要求に応えて前記トークンを提供することと、
前記デバイスが前記暗号キーへのアクセスを失うことを引き起こす1つまたは複数の処理を行うことと、
を含むコンピュータ実施方法。
【請求項2】
前記暗号サービスがポリシーを使用して、前記暗号キーを用いて暗号処理を実行する要求の履行を制御するように、前記ポリシーと前記暗号キーの前記識別子を対応付けることをさらに含む、
請求項1に記載のコンピュータ実施方法。
【請求項3】
前記ウェブサーバにおいて、ホスト型暗号キーの第2要求を受信することと、
前記デバイスにおいて、前記ホスト型暗号キーを生成することと、
前記デバイスに記憶される第2ドメインキーを使用して、前記ホスト型暗号キーを暗号化することと、
前記暗号サービスへアクセス可能な場所に前記暗号化されたホスト型暗号キーを記憶することと
をさらに含む、請求項1または2に記載のコンピュータ実施方法。
【請求項4】
前記ドメインキーは、エクスポート型暗号キーのために支給される前記ドメインキー集合の第1部分集合に属する第1ドメインキーであり、
前記第2ドメインキーは、ホスト型暗号キーのために支給される前記ドメインキー集合の第2部分集合に属する、
請求項3に記載のコンピュータ実施方法。
【請求項5】
1つまたは複数のサービスを実施する少なくとも1つのコンピューティングデバイスを備えるシステムであって、前記1つまたは複数のサービスは、
暗号キーの要求を受信し、
前記暗号キーの前記要求を履行し、前記暗号キーの前記要求を履行することは、
前記暗号キーを取得することと、
暗号材料を使用して前記取得された暗号キーを暗号化することであって、前記暗号材料は、前記暗号材料のハードウェア保護をそれぞれが提供するハードウェアデバイス集合の外側からアクセス不可能であり、前記暗号材料は、前記ハードウェアデバイス集合から前記暗号材料がアクセス不可能となる時間に対応する有効期限を有し、前記有効期限は、前記システムにより実行される自動化プロセスにより施行される、前記暗号材料を使用して前記取得された暗号キーを暗号化することと、
前記暗号化された暗号キーを提供することと、
前記ハードウェアデバイス集合が前記取得された暗号キーへのアクセスを失うことを引き起こすことと、
により行われる、システム。
【請求項6】
前記1つまたは複数のサービスはさらに、前記暗号キーの識別子を含むトークンを生成し、
前記暗号化された暗号キーを提供することは、前記生成されたトークンを提供することを含む、
請求項5に記載のシステム。
【請求項7】
前記1つまたは複数のサービスはさらに、
前記暗号キーを使用して暗号処理を行う第2要求であって、前記暗号化された暗号キーを含む前記第2要求を受信し、
前記暗号材料が利用可能であることを条件として、前記暗号化された暗号キーを復号化し、前記暗号キーを使用して前記暗号処理を実行することにより、前記第2要求を履行する
請求項5または6に記載のシステム。
【請求項8】
前記1つまたは複数のサービスはさらに、
前記暗号処理を実行する第3要求であって、前記1つまたは複数のサービスにより管理される第2暗号キーの識別子を指定する前記第3要求を受信し、
前記第3要求を履行し、前記第3要求を履行することは少なくとも、
データストレージ場所から前記第2暗号キーの暗号化された複製を取得することと、
前記第2暗号キーの前記暗号化された複製を復号化することと、
前記第2暗号キーを使用して前記暗号処理を実行することと
により行われる、請求項7に記載のシステム。
【請求項9】
前記1つまたは複数のサービスはさらに、
前記暗号キーの許可集合を指定するポリシーを前記暗号キーと対応付け、
前記ポリシーに従って前記暗号キーを使用する要求の履行を制御する、
請求項5から8のいずれか一項に記載のシステム。
【請求項10】
前記1つまたは複数のサービスはさらに、前記暗号材料へのアクセスを前記1つまたは複数のサービスが失う時間を示す前記暗号材料の有効期限に少なくとも部分的に基づいて、前記暗号材料を選択する、請求項5から9のいずれか一項に記載のシステム。
【請求項11】
前記ハードウェアデバイスはハードウェアセキュリティモジュールである、
請求項5から10のいずれか一項に記載のシステム。
【請求項12】
前記暗号キーを取得することは、
前記1つまたは複数のサービスにアクセス可能なデータストレージシステムから前記暗号キーの暗号化された複製を取得することと、
前記暗号材料とは異なる別の暗号材料を使用して前記暗号キーの前記暗号化された複製を復号化することと、
を含む、請求項5から11のいずれか一項に記載のシステム。
【請求項13】
命令を有するプログラムであって、前記命令が第1エンティティのコンピュータシステムの1つまたは複数のプロセッサにより実行されると、前記命令により前記コンピュータシステムは少なくとも、
キートークンの第1要求に関して、
第1暗号キーの暗号化された複製と、前記第1暗号キーを暗号化するのに使用された第2暗号キーを識別するのに使用可能な情報を含むキートークンを取得することであって、前記第2暗号キーは、前記第2暗号キーを管理するハードウェアデバイス集合の外側からアクセス不可能であり、前記キートークンを取得することは、前記キートークンが生成された後に前記第1暗号キーが前記エンティティへアクセス不可能になることを引き起こし、前記第2暗号キーは、前記ハードウェアデバイス集合へ前記第2暗号キーがアクセス不可能となる時間を示す有効期限を有する、前記キートークンを取得することと、
第2エンティティに対応付けられた、キートークンの第2要求に関して、
前記キートークンを取得することと、
前記有効期限により示される前記時間がまだ経過していない場合、前記ハードウェアデバイス集合内のハードウェアデバイスに、前記第1暗号キーを復号化させ、前記復号化された第1暗号キーを使用して1つまたは複数の暗号処理を実行させ、前記1つまたは複数の暗号処理の結果を前記コンピュータシステムへ提供させることと、
前記提供される結果に少なくとも部分的に基づく前記第2要求への応答を提供することと、
を実行する、プログラム。
【請求項14】
前記キートークンを取得する前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記第1要求の受信結果として前記キートークンが生成されることを前記コンピュータシステムに引き起こさせる、
請求項13に記載のプログラム。
【請求項15】
前記キートークンを取得する前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記ハードウェアデバイス集合の前記ハードウェアデバイスのうちの1つに対し、前記キートークンの生成を引き起こす命令を前記コンピュータシステムに発行させる、
請求項13または14に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
2015年3月31日に出願された「KEY EXPORT TECHNIQUES」と題する米国特許出願第14/675,614号の全開示内容は、全ての目的で参照することにより本出願に組み込まれるものとする。
【背景技術】
【0002】
多くのデータユーザにとって、データのセキュリティは、数多くの状況において非常に重要である。不正なエンティティによるデータの平文形式での取得を防止することによるなど、データのセキュリティを確保するために、暗号化といった多数の技術がかなり開発されてきた。同時に、コンピュータシステムは、組織の要望が高じるにつれ、より一層複雑となった。一例として、組織は多くの場合、コンピューティングデバイスのネットワークを利用して、それらのユーザに対し堅牢なサービス集合を提供する。ネットワークは、多数の地理的境界線にまたがることが多く、また、他のネットワークと接続することが多い。例えば、組織は、コンピューティングリソースの内部ネットワークと、他に管理されるコンピューティングリソースとの両方を用いて、組織の作業に対応し得る。例えば、組織のコンピュータは、別の組織のサービスを利用しながら、他の組織のコンピュータと通信してデータにアクセスする、及び/またはデータを提供し得る。数多くの事例において、組織は、他の組織により管理されるハードウェアを使用する遠隔ネットワークを構成及び運用することにより、インフラストラクチャ費用を削減し、他の利点を達成する。コンピューティングリソースのこのような構成により、リソースまでのアクセス、及びリソースが保持するデータが安全であることを確保することは、特にこのような構成のサイズ及び複雑さが高まるにつれ、困難となり得る。
【0003】
組織が複雑なコンピュータシステムを開発して自身の作業に対応することを助長するために、数多くの組織が、サービスとしてコンピューティングリソースのホスティングを開始した。例えば、コンピューティング、データストレージ、アドバンストデータストレージ(例えばデータベース使用)、及びネットワークサービス(例えばホスト型コンピュータネットワーク)等の様々な作業を、顧客の代わりに実行するために、コンピューティングリソースサービスがホストされ得る。このようなサービスは、サービスのプロバイダの顧客に多数の利点(例えば多大な資本投資なしにコンピューティングリソースを設立する能力)を提供する一方、サービスプロバイダが自分の顧客のデータを守るために払う相当な努力にもかかわらず、顧客は多くの場合、他のエンティティによりデータがアクセス可能ではないかという懸念を抱える。
【0004】
本開示による様々な実施形態が、図面を参照して説明される。
【図面の簡単な説明】
【0005】
図1】本開示の様々な態様を例示する図を示す。
図2】様々な実施形態を実施可能である環境の実施例を示す。
図3】実施形態による、データ構造の実施例を示す。
図4】実施形態による、エクスポートキートークンの実施例を示す。
図5】実施形態による、エクスポートキートークン要求を履行するプロセスの実施例を示す。
図6】実施形態による、エクスポートキートークンを使用して1つまたは複数の暗号処理を実行する要求を履行するプロセスの実施例を示す。
図7】実施形態による、エクスポートドメインキーを循環させるプロセスの実施例を示す。
図8】実施形態による、1つまたは複数の暗号処理を実行する要求を履行するプロセスの実施例を示す。
図9】実施形態による、エクスポート型顧客キーの有効期間を延長する要求を履行するプロセスの実施例を示す。
図10】実施形態による、エクスポート型顧客キーをホスト型顧客キーに変換する要求を履行するプロセスの実施例を示す。
図11】実施形態による、ホスト型顧客キーをエクスポート型顧客キーに変換する要求を履行するプロセスの実施例を示す。
図12】様々な実施形態を実施可能である環境を例示する。
【発明を実施するための形態】
【0006】
以下の記述において、様々な実施形態が説明される。説明目的で、実施形態の完全な理解を提供するために、具体的な構成及び詳細が明らかにされる。しかしながら、実施形態は具体的詳細がなくとも実行可能であることは、当業者には明らかであろう。さらに、説明される実施形態を不明瞭にしないために、周知の特徴は省略または簡略化され得る。
【0007】
本明細書において説明及び提案される技術は、アプリケーションプログラミングインタフェース(API)により分散コンピュータシステムを操作することを含む。当APIは、サービスプロバイダの顧客が暗号サービスを利用することを可能にする一方、顧客に支給される暗号キーにサービスプロバイダがアクセスすることを制限する。実施形態において、サービスプロバイダは、顧客のために暗号処理(例えば暗号化、復号化、並びに電子署名生成及び検証)を行う暗号サービスを運用する。暗号サービスは、暗号処理が行われるデータ、及び暗号処理を行うのに使用される暗号キーのセキュリティを確保するために、ハードウェアセキュリティモジュール等の特別ハードウェアを使用し得る。いくつかの実施例において、サービスプロバイダの暗号サービスのAPIは、サービスプロバイダがアクセスを制限されている暗号キーに関わる要求の提出を可能にするように構成される。
【0008】
例えば、実施形態において、多数の方法で暗号処理を行う際に使用する暗号キーを、要求(例えばウェブサービス要求)により指定可能なように、APIは構成される。一実施例において、暗号処理を行う要求には、暗号サービスにより管理される暗号キー(管理顧客キーとも称されるホスト型顧客キー)の識別子が含まれる。別の実施例において、暗号処理を行う要求には、トークン(エクスポートキートークンと称される)が含まれる。トークンは、暗号処理を実行する際使用する暗号キーの暗号化された複製を含み、暗号キーの複製は別の暗号キー(ラッピングキーまたはエクスポートドメインキーと称される)を使用して復号化可能であり、別の暗号キーは、サービスプロバイダにおける1つまたは複数のデバイス(例えばハードウェアセキュリティモジュールまた暗号材料のハードウェアベース保護を提供する他のデバイス)の秘匿内部として保持される。
【0009】
1つまたは複数の暗号処理を実行する要求を処理するために、サービスプロバイダは、要求内に指定された暗号キーを取得し得る。ホスト型顧客キーを指定する要求の実施例において、サービスプロバイダは、データストレージから指定ホスト型顧客キーの暗号化された複製を取得し、復号化及び要求される暗号処理(複数可)の実行のために、指定ホスト型顧客キーの暗号化された複製をハードウェアセキュリティモジュールに提供し得る。エクスポートキートークンを含む、あるいは指定する要求の実施例において、エクスポートキートークンを復号化して、顧客キーを取得し、要求される暗号処理(複数可)を実行するために、ハードウェアセキュリティモジュールに対しエクスポートキートークンが提供され得る。少なくとも、要求によりエクスポートキートークンが指定される実施例において、顧客キーの使用が一旦完了すると(例えば要求に対する応答の提供を受けて)、サービスプロバイダはエクスポートキートークンから取得した顧客キーへのアクセスを失い得るため、これにより、当エクスポートキートークンまたは当顧客キーを含む別のエクスポートキートークンを備える別の通信(例えば要求)において当顧客キーが提供されない限り、サービスプロバイダは当顧客キーへアクセスすることを阻止される。顧客キーへのアクセスを失うことは、エクスポートキートークン等、顧客キーを特定可能な全ての情報に対するアクセスを損失することを含み得ることに留意されたい。
【0010】
様々な実施形態において、暗号サービスは、少なくとも2つのクラスのドメインキーを使用する。1つのクラスはホスト型顧客キーであり、もう1つのクラスはエクスポート型顧客キーである。このように、異なるクラスのドメインキーは、異なる循環スケジュールに従って、循環可能である(例えば暗号キーの枯渇を防ぐために置き換えられる)。一例として、サービスプロバイダはホスト型顧客キーにアクセス可能であるため(それぞれのホスト型顧客キーは現行のドメインキーの下、暗号化された状態で記憶され得る)、サービスプロバイダは、顧客データの損失を生じることなく、エクスポートドメインキーよりも頻繁にドメインキーを循環可能である。特に、サービスプロバイダは、暗号化された顧客キーにアクセスし、期限が切れるドメインキーを使用して顧客キーを復号化し、新しいドメインキーを使用して顧客キーを暗号化し、暗号化した顧客キーを記憶することが可能である。しかしながら、エクスポート型顧客キーに関しては、新たなエクスポートドメインキーへの再暗号化のために顧客がエクスポートキートークンを提供しない場合、エクスポートドメインキーの循環は、顧客データの損失を生じ得る。
【0011】
異なるクラスのドメインキーの異なる循環スケジュールにより、様々な実施形態において、暗号キーの有効期間に対し柔軟な処理が可能となる。いくつかの実施態様において、暗号サービスのAPIにより、顧客はエクスポート型顧客キーの有効期間を指定可能となる。さらに、サービスプロバイダは、それぞれが異なる有効期限を有するエクスポートドメインキーの集合を保持し得る。サービスプロバイダは、保持される集合から、エクスポートキートークン内で顧客に提供される顧客キーを暗号化するための顧客指定有効期限に合うエクスポートドメインキーを使用し得る。一旦エクスポートドメインキーが期限切れでサービスプロバイダによりもはやアクセス不可能となると、エクスポートキートークンはサービスプロバイダがエクスポートキートークンを復号化するためにもはや利用不可能となり、結果、エクスポートキートークンは顧客キーを取得するためにもはや使用不可能となる。このように、顧客は、データが制限された時間のみアクセス可能となるように確保可能である。他の変形も、本開示の範囲内であるとみなされる。
【0012】
図1は、様々な実施形態を実施可能である環境100の実施例を示す。図1の例示において、環境100は、サービスプロバイダ104の顧客102との対話を例示するために提示される。サービスプロバイダは、下記により詳しく説明される暗号サービス等の1つまたは複数のサービスを提供するように構成される分散コンピュータシステムであり得るコンピュータシステムを操作するエンティティで有り得る。いくつかの実施例において、サービスプロバイダ104は、暗号サービスに加えて、サービスプロバイダの顧客により遠隔かつプログラムで管理可能なハードウェアをサービスプロバイダがホストするサービスのように、インフラストラクチャに分類されるサービスといった他のサービスを提供する。サービスプロバイダと、サービスプロバイダの顧客が例示目的で用いられているが、本明細書において説明される技術は、顧客/サービスプロバイダの関係がない他の状況においても適用可能であることに留意されたい。
【0013】
実施形態内の図1の実施例において、顧客102はサービスプロバイダ104からキートークン106を受信する。キートークン106は、顧客102により復号化不可能(すなわち桁外れな計算量なしには復号化不可能)である暗号キーを含む情報の構造化集合であり得る。1つまたは複数の識別子等の他の情報も、キートークン106に含まれ得る。キートークンは、図4に関連して下記により詳しく論述される。図1に示される実施例において、サービスプロバイダ104のハードウェアセキュリティモジュール108の集合体のうちのハードウェアセキュリティモジュール内、または下記により詳しく説明されるような暗号材料のハードウェアベース保護を提供する別のデバイス内で、キートークンは少なくとも部分的に生成される。ハードウェアセキュリティモジュール(HSM)が例示目的で全体を通して使用されているが、暗号材料のハードウェアベース保護を提供する他のデバイスも使用してもよいことに留意されたい。このようなデバイスの実施例には、トラステッドプラットフォームモジュール(TPM)と、インテルSecure Guard eXtensions(SGX)技術を利用するプロセッサの孤立領域等の環境における安全実行を含むプロセッサとが含まれる。
【0014】
キートークン106の生成に関与するハードウェアセキュリティモジュールは、顧客102のために暗号キーを生成し、その暗号キーを、ハードウェアセキュリティモジュールの集合体108内に安全に保持されるドメインキーと称される別の暗号キーを使用して、暗号化し得る。例えば、セキュリティモジュール集合のうちの各セキュリティモジュールは、ドメインキーをプログラム的にエクスポート不可能な情報として保持し得る。プログラム的に(例えばデバイスのインタフェースを通して)デバイスに情報を提供させる正当な方法がない場合に、情報はプログラム的にエクスポート不可能であると言える。例えば、平文形式の情報へアクセス可能なハードウェアに、情報を平文形式で公開させる要求機構(例えばアプリケーションプログラミングインタフェース(API)コール)がないように、情報は保持され得る。一例として、セキュリティモジュールは、そのメモリの一部または全ての複製が情報を平文形式で含むように当該複製を提供する能力に欠けるように構成され得る。しかしながら、平文形式で情報を取得する正当な方法はない情報が、例示目的で本開示を通して使用されているが、一部の情報は、制限された数の正当な使用を通して取得可能であるように保持されてもよく、これは、様々なセキュリティプロトコルの採用を必要とし、平文形式の情報に対する不正アクセスを阻止可能であり得ることに留意されたい。一般に、プログラム的にエクスポート不可能な情報は、もし平文形式で当情報を取得することが少しでも可能であるならば、当情報を平文形式で取得するには特別な対策が取られなければならない情報である(例えば1つまたは複数の暗号キー)。結果、桁外れな計算量なしには、キートークン106の中の顧客102用の暗号キーを暗号化するのに使用されたドメインキーへアクセスのないデバイスは、キートークン106の中の暗号キーを平文形式で取得することができない。
【0015】
サービスプロバイダ104からキートークン106を受信すると、顧客は、キートークン106の複製を顧客により管理されるストレージデバイス110に保持し得る。ストレージデバイス110は、例えば、顧客102により管理されるプライベートネットワーク内のストレージデバイス、あるいは一般に、顧客が制御する、もしくは顧客102のために顧客以外のエンティティが制御する任意のストレージデバイスであり得る。
【0016】
顧客102は、自身が記憶したキートークン106を使用するために、サービスプロバイダ104と対話し得る。これを行うために、図1に例示される実施形態において、顧客102は、コンピュータデバイスを通して、データ114に対し1つまたは複数の暗号処理を行う要求112内にキートークン106の複製を提供する。要求112は、例えば、要求112を履行するために必要な1つまたは複数の暗号処理をサービスプロバイダ104に行わせるように構成されるウェブサービス要求であり得る。データ114は、顧客102がサービスプロバイダ104により1つまたは複数の暗号処理を行うことで操作したい任意のデータであり得る。一実施形態において、データ114は、顧客102が他のデータを暗号化するために使用した暗号キーである。しかしながら、本開示の範囲は、データ114が暗号キーであることに制限されない。
【0017】
要求112を処理するために、サービスプロバイダ104は、キートークン106、または顧客102の暗号化された暗号キーを含むキートークン106の一部を、ハードウェアセキュリティモジュール108の集合体のうち、暗号化された暗号キーを復号化するのに使用可能なドメインキーの複製にアクセス可能なハードウェアセキュリティモジュールに対し提供し得る。ハードウェアセキュリティモジュールは、暗号キーを復号化して暗号キーの複製を平文形式で取得し、その平文形式の暗号キーの複製を使用して、要求される1つまたは複数の暗号処理をデータ114に対し行い得る。図1のこの特定の実施例において、データ114は平文形式でサービスプロバイダ104に提供され、サービスプロバイダ、具体的にはサービスプロバイダのハードウェアセキュリティモジュールは、データ114に対し暗号化処理を行って暗号化されたデータ116を取得し、サービスプロバイダ104はこれを顧客102に返す。しかしながら、暗号化が図1及び本明細書の他の場所で使用されているが、別の暗号処理が要求され、続いて実行されてもよいことに留意されたい。このような処理には、例えば、暗号化されたデータの復号化、電子署名の生成及び電子署名の検証、ならびに電子証明書の真正性の検証といった関連処理が含まれる。
【0018】
図2は、本開示の様々な実施形態を実施可能である環境200の実施例である。実施形態において、当事者202は、コンピュータデバイスを使用して、ネットワーク204を介してコンピューティングリソースサービスプロバイダ206と通信し得る。コンピューティングリソースサービスプロバイダ206と当事者202の間の通信は、例えば、サービスプロバイダ206により運用される多数のサービスのうちの1つであり得る、サービスプロバイダ208により運用されるサービス208にアクセスするためであり得る。サービスは、2013年2月12日に出願された「Data Security Service」と題する米国特許出願第13/764,963号、及び/または2014年9月15日に出願された「Distributed System Web of Trust Provisioning」と題する米国特許出願第14/486,741号においてより詳しく説明されるような暗号サービスであり得、これらの特許内容は、参照により本明細書に取り込まれるものとする。
【0019】
サービス208は、サービスフロントエンド210と、サービスフロントエンド210から認可された要求を受信するように構成され、かつこのような要求を履行するために処理を行うように構成されるサービスのコンポーネントであり得るサービスバックエンド214とを備え得る。当事者202は、コンピューティングリソースサービスプロバイダ206により提供されるサービス208へのアクセス要求(及び/またはサービス208に関連するリソースへのアクセス要求)を発行し得る。要求は、例えば、ウェブサービスのアプリケーションプログラミングインタフェース要求であり得る。当事者は、ユーザ、またはユーザグループ、またはユーザグループに対応付けられた役割、またはこれらのエンティティのうちの1つまたは複数を代表し、1つまたは複数の遠隔(コンピューティングリソースサービスプロバイダ206に対し遠隔)コンピュータシステム上で実行中であり得るプロセスであり得る、あるいはその他のこのようなコンピュータシステムエンティティ、ユーザまたはプロセスであり得る。一般に、当事者は、コンピューティングリソースサービスプロバイダにより管理される識別に対応するエンティティであり、コンピューティングリソースサービスプロバイダは、識別の許可を管理する。
【0020】
当事者202は、ポリシー管理サービスまたは別のサービスによる等、コンピューティングリソースサービスプロバイダ206により管理される識別に対応し得る。識別は、コンピューティングリソースサービスプロバイダの顧客のアカウントのために管理される多数の識別のうちの1つであり得、コンピューティングリソースサービスプロバイダは、多数の顧客のアカウントを管理し得る。当事者202は人に相当し得るが、このような人は、当事者202のために処理(例えば要求の生成及び送信)を行い得る好適に構成されたコンピューティングデバイスを通して、コンピューティングリソースサービスプロバイダ206と通信し得ることに留意されたい。当事者202は、1つまたは複数の接続(例えば伝送制御プロトコル(TCP)接続)を介して、コンピューティングリソースサービスプロバイダ206と通信し得る。当事者202は、コンピュータシステムクライアントデバイスを使用して、コンピューティングリソースサービスプロバイダ206と接続し得る。クライアントデバイスには、後述される例示的デバイス等、ネットワークを介してコンピュータシステムと接続可能な任意のデバイスが含まれ得る。ネットワーク204には、例えば、インターネット、または後述されるネットワークのうちの別のネットワーク、もしくはそれらの組み合わせが含まれ得る。
【0021】
コンピューティングリソースサービスプロバイダ206は、サービス208を通して、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースのデータベースストレージシステム、ブロックストレージシステム、冗長データストレージサービス、データアーカイブサービス、データウェアハウスサービス、ユーザアクセス管理サービス、識別管理サービス、コンテンツ管理サービス、及び/または他のこのようなコンピュータシステムサービス等、1つまたは複数のコンピューティングリソースへのアクセスを提供し得る。他の例示的リソースは、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むが、これに限定されない。いくつかの実施例において、コンピュータサービスに関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組み合わせ、あるいは他のこのようなデバイス実施形態であり得る。このようなサービス及びリソースは、例示目的で提供され、本開示の実施形態は、他のサービス及び/またはリソースを使用してもよいことに留意されたい。
【0022】
いくつかの実施例において、ウェブサービスアプリケーションプログラミングインタフェース要求(簡潔にウェブサービス要求とも称される)であるサービス208へのアクセス要求は、いくつかの実施例において、このような要求を受信し、かつサービス208に対応付けられた1つまたは複数のポリシーに従ってそれらを処理するように構成されるウェブサーバを備えるサービスフロントエンド210により受信され得る。サービス208へのアクセス要求は、電子署名された要求であり得、その結果、電子署名と共に提供され得る。サービスフロントエンド210はそれから、検証のため要求及び電子署名を、認証サービス216へ送信し得る。認証サービス216は、スタンドアロンサービスであり得る、あるいはサービスプロバイダまたは他のエンティティの一部であり得る。認証サービス216は、実施形態において、当事者の認証に関わる処理を行うように構成されるコンピュータシステムである。いくつかの実施例において、サービスフロントエンド210に提出される要求は、当事者202と認証サービス216との間で共有される対称暗号キーを使用して、当事者により(すなわち当事者により使用される、または当事者のために作動するコンピューティングデバイスにより)電子署名されている。認証サービスは従って、対称暗号キーの複製を使用して、当事者202により生成されたと称される要求の電子署名を検証し得る。しかしながら、別の実施形態において、認証サービス216は、例えば、当事者が秘密暗号キーを使用して要求を電子署名した場合等、電子署名の検証に非対称暗号法を用いるように構成され得る。このような実施形態において、認証サービスは、秘密暗号キーに対応する当事者202の証明書を電子署名した認証局を信頼するように構成され得る。その結果、いくつかの実施形態において、認証サービスは、証明書により指定された公開暗号キーを使用し得る。一般に、認証サービスは、当事者202に対応付けられた認証サービス216に登録された暗号キーを使用し得る。
【0023】
要求が問題なく認証されると、認証サービス216はそれから、要求に適用可能なポリシーを取得し得る。ポリシー(アクセス制御ポリシーとも称される)は、ユーザ、グループ、役割、組織、企業、またはその他のこのようなエンティティに対応付けられた許可集合である。各許可は、コンピューティングリソースに対応付けられ、エンティティ(本明細書において「当事者」とも称される)がそのリソースにアクセスしてもよいか否か、どのような条件でアクセスは許可または拒否され得るか、及び/またはどのような種類のアクセスが許可または拒否され得るかを指定し得る。例えば、許可は、「USER1」という名のユーザが識別子「12345」で示されるあるデータストレージデバイスにアクセス可能であると指定し得る。より詳しい許可は、USER1が、リソース12345から読み出しのみ可能であり、リソース12345へ書き込み不可であると指定し得る。さらにより詳しい許可は、USER1が、リソース12345からいつでも読み出し可能であるが、午前9時00分〜午前9時30分の間の時間だけリソース12345へ書き込み可能であると指定し得る。例えばUSER1が、リソース12345を含み得るデータストレージデバイスの集合へアクセス可能であるように、許可はまた、リソースのクラスまたは集合に対応付けられ得る。アクセス制御ポリシーは、ポリシー管理サービスにより、ポリシー文書、データベース内のレコード、アクセス制御リスト(ACL)、またはその他として保持され得る。サービス(例えばサービス208)はまた、ポリシー管理サービスに加えて、または代わって、自身のポリシーを保持し得る。
【0024】
ポリシーは、当事者202、要求の履行の一部としてアクセスされるリソース、当事者202が含まれるグループ、当事者202が担う役割、及び/またはその他に対応付けられているということにより、要求に適用可能となり得る。要求に適用可能なポリシーを取得するために、認証サービス216は、図1に関連して前述されたポリシー管理サービスであり得るポリシー管理サービス220により管理されるポリシーレポジトリ218に対し、クエリを送信し得る。クエリは、要求に適用可能なポリシー集合を特定するのに十分な情報を含む要求であり得る。クエリは、例えば、要求の複製を含み、ならびに/または当業者、リソース、及び/もしくは動作(要求の履行の一部として行われる処理)を特定する情報といった要求内の情報に少なくとも部分的に基づいたパラメータを含み得る。データベースまたはクエリを処理するよう作動可能な他のシステムであり得るポリシーレポジトリは、要求に適用可能な全てのポリシーを提供することで、クエリを処理し得る。要求の認証がうまくいかなかった場合(例えば電子署名が証明不可能であったため)、要求に適用可能なポリシーは取得され得ないことに留意されたい。
【0025】
要求に適用可能な全てのポリシーを取得すると、認証サービス216は認証応答を提供し、適用可能である場合(例えば肯定的な認証応答である場合)、取得されたポリシーは、サービスフロントエンド210へ戻る。認証応答は、応答が認証成功である否かを示し得る。サービスフロントエンド210はそれから、認可モジュール212を使用して、サービス208へのアクセス要求の履行が、取得されたポリシーに準拠するか否かを確認し得る。
【0026】
認可モジュール212は、サービスが要求を満たすことが認可されるか否か(すなわち要求の履行が認可されるか否か)を特定するために、要求をポリシー内の1つまたは複数の許可と比較するよう作動可能な、サービスフロントエンド上で実行されるプロセスであり得る。例えば、認可モジュールは、要求が許可されるかどうかを特定するために、要求に対応付けられたAPIコールを、ポリシーにより指定される許可されたAPIコールと、比較し得る。認可モジュール212が要求を、ポリシーにより指定される許可と一致することが不可能な場合、認可モジュール212は、例えば、サービスフロントエンドに要求を拒否させるメッセージをサービスフロントエンドに対し提供し、かつ拒否された要求はポリシー管理サービス220内にログが取られるようにするといった、1つまたは複数のデフォルトの動作を実行し得る。認可を通して要求が、ポリシーにより指定される1つまたは複数の許可と一致する場合、認可モジュール212はこれを、最も制約の少ない回答(ポリシーにより定義される)を選択することにより、かつ選択された回答に基づいて、要求の履行が認可されるか否か(すなわち適用可能なポリシーに準拠する否か)をサービスフロントエンドに知らせることにより、解消し得る。認可モジュール212はまた、最も制約の多い回答を選択し、またはその他のこのような回答を選択し、選択された回答に基づいて要求の履行が認可されるか否かを、サービスフロントエンドに知らせ得る。図2は認可モジュール212をサービスフロントエンド210のコンポーネントとして示すが、いくつかの実施形態において、認可モジュール212は、コンピューティングリソースサービスプロバイダ206により提供される独立したサービスであり、フロントエンドサービスは、認可モジュール212とネットワークを介して通信し得ることに留意されたい。
【0027】
実施形態において、サービスバックエンド214は、前述のような、ハードウェアセキュリティモジュール222または他のセキュリティモジュールの集合体を含む。サービスフロントエンド210が受信した、ハードウェアセキュリティモジュールによる暗号処理の実行を求める要求を処理するために、サービスフロントエンド210は、実行する処理、暗号処理を実行するために使用する暗号キー、及び適用可能であれば暗号処理が実行されるべき対象データ(例えば平文または暗号文)を指定する要求を、ハードウェアセキュリティモジュールに送信し得る。フロントエンド210は、処理を行うためにハードウェアセキュリティモジュールを選択し得る、あるいは別のコンポーネント(例えば負荷分散装置)が選択を行い得る。暗号処理の実行結果は、結果がそれぞれの要求に応じて提供され得るように、処理を行ったハードウェアセキュリティモジュールからサービスフロントエンド210に提供され得る。
【0028】
実施形態において、コンピューティングリソースサービスプロバイダ206は、データストレージサービスにデータストレージ処理(例えばデータオブジェクトの記憶及び検索)を行わせるAPIを提供するコンピュータシステムであり得るデータストレージサービス206を含む。サービスフロントエンド210は、ハードウェアセキュリティモジュール222内に保持されるドメインキーにより暗号化された暗号キー(例えばホスト型顧客キー)を記憶するデータストレージサービスと通信し得る。例えば、フロントエンド210により受信された要求が顧客キーの使用を要する場合、フロントエンド210はデータストレージサービス224に対し、顧客キー(ドメインキーの下暗号化された顧客キー)を取得するよう要求を提出し得る。フロントエンド210は、暗号化された顧客キーを受信し、復号化及び暗号処理の実行のために、ハードウェアセキュリティモジュールに暗号化された顧客キーを提供し得る。同様に、ハードウェアセキュリティモジュールが新たな顧客キーを生成する(すなわち顧客キーを暗号化するドメインキーを循環する)時、ハードウェアセキュリティモジュールは、ドメインキーを使用して顧客キーを暗号化し、暗号化された顧客キーをフロントエンド210へ提供し、今度はフロントエンド210が、暗号化された顧客キーと共に要求を持続的記憶のためにデータストレージサービス224へ送信し得る。
【0029】
図2はコンピューティングリソースサービスプロバイダの分散システムの特定の構成を示すが、他の構成も本開示の範囲内であるとみなされることに留意されたい。例えば、認証及び認可決定は、分散システムの別のコンポーネント(例えばサービスフロントエンド210)により行われてもよい。別の実施例として、1つまたは複数のハードウェアセキュリティモジュールまたは暗号材料のハードウェア保護を提供する他のデバイスは、別のサービスプロバイダまたは顧客自身といった、コンピューティングリソースサービスプロバイダ206とは異なるエンティティによりホストされてもよい。このようなハードウェアセキュリティモジュールに暗号処理を行わせるために、サービスバックエンド214内のサーバは、ネットワークを介して(例えばインターネット、あるいはハードウェアセキュリティモジュールがサービスバックエンド214と同じデータセンタ内にホストされる場合は内部ネットワークを介して)メッセージを送信し得る。ハードウェアセキュリティモジュールをホストするエンティティが、暗号処理の実行を認可された要求と認可されなかった要求とを区別可能にするために、このようなメッセージは認証され得る。別の実施例において、ハードウェアセキュリティモジュール222は、同じコンピューティングリソースサービスプロバイダ206の独立したサービスによりホストされる。例えば、サービス208は、暗号処理の結果を利用するサービス(例えば仮想データストレージデバイスまたは他のサービス)を提供し得る。このような実施例において、相互サービスAPIコールがあるサービスから別のサービスへ送信され、別のサービスに、ハードウェアセキュリティモジュールを使用して暗号処理を行わせ得る。このようなコールは、例えば、あるサービスにより、顧客からの要求を履行するために行われるプロビジョニングまたは他のワークフローに従って行われ得る。
【0030】
図3は、実施形態による、エクスポートドメインキーの集合を保持するために使用され得るデータ構造300の実施例を示す。図3の実施例において、データ構造300はテーブルであるが、他のデータ構造も本開示の範囲内であるとみなされる。図3において例示されるように、データ構造300は、3つの列を含み、各列は、それぞれのエクスポートドメインキーに関する異なる情報に対応する。第1列302は、エクスポートドメインキーの識別子を記録するために使用される。暗号キーを暗号化するのに使用されるエクスポートドメインキーが追跡可能となるように、識別子は、エクスポートドメインキーの参照番号として機能する。例えば、エクスポートキートークンは、エクスポートキートークン内の暗号キーを暗号化するのに使用されたエクスポートドメインキーの識別子を含み得る。このようにエクスポートキートークンが別の時に提供される場合、エクスポートキートークン内の暗号化された暗号キーを復号化するために適切なエクスポートドメインキーが識別され(例えば複数のエクスポートドメインキーから選択され)、アクセスされ得る。この特定の実施例において、エクスポートドメインキーの識別子は、シーケンス番号である。しかしながら、他の種類の識別子を使用してもよいことに留意されたい。
【0031】
データ構造300の第2列304は、それぞれのエクスポートドメインキーの有効期限に対応する。前記のように、エクスポートドメインキーが破棄され、よってエクスポートキートークン内で暗号化された顧客キーにアクセスする機構としてエクスポートキートークンが使用不可能となるまでの指定された時間の間にエクスポートキートークンが使用可能であるように、暗号サービスは、それぞれが異なる有効期限を有する多数のエクスポートドメインキーへ、いずれの時点でもアクセス可能であり得る。図3の実施例において、データ構造300の第2列304内の各エントリは、24時間異なる有効期限を有する。このように、データ構造300は、24時間異なるエクスポートドメインキーの有効期限を記録する。しかしながら、24時間異なる有効期限は例示であり、他の有効期限を使用してもよいことに留意されたい。例えば、連続した有効期限は、24時間より短い時間、または24時間より長い時間異なっていてもよく、連続した有効期限の時間差は必ずしも統一していない。
【0032】
各エクスポートドメインキーの各有効期限は、有効期限に従って特定される時間に、ドメインキーへこれまでアクセス可能だった全てのセキュリティモジュールがエクスポートドメインキーにアクセス不可能と(例えば永続的にそのように)なることを引き起こす自動化プロセスの少なくとも1つのインスタンスにより施行され得ることに留意されたい。例えば、セキュリティモジュールの集合体内の各セキュリティモジュールは、ドメインキーの有効期限が切れるとドメインキーを回復不可能に削除する自動化プロセスのインスタンスを実行し得る。自動化プロセスのコードの完全性の遠隔証明または他の暗号証明は、ドメインキーへのアクセスが提供される前に、独立して検証(例えば別のセキュリティモジュールまたは他のコンピューティングデバイスにより)されなければならないように、セキュリティモジュールは構成され得る。セキュリティモジュールはまた、改ざんが起きるとセキュリティモジュールがドメインキーへのアクセスを失うことを引き起こす改ざん対策機構と共に構成され、また、モジュールへの電力を取り除くことによりセキュリティモジュールがドメインキーへのアクセスを失うことを引き起こすように構成され得る(例えばドメインキーのストレージは揮発性メモリに限定されるため)。有効期限の施行は、別のデバイスにより実行される自動化プロセスにより行われ得ることに留意されたい。このような実施例において、自動化プロセスを実行するデバイスは、ドメインキーの有効期限に従ってドメインキーを破棄するために(例えば破棄する特定のドメインキーを同定する命令により)、セキュリティモジュールへ命令を送信し得る。このような自動化プロセスは、セキュリティモジュールがドメインキーを破棄する命令を履行しない場合に、通知の送信または他の処理を含み得る。
【0033】
データ構造300内の第3列306は、それぞれのエクスポートドメインキー識別子及び同じ行の有効期限に対応するエクスポートドメインキー用である。実施例として、データ構造300の第1データ包含行において、第3列306内のエントリに記憶されるエクスポートドメインキーは、31415926のエクスポートドメインキー識別子を有し、2015年3月24日午前12時00分の有効期限を有する。
【0034】
データ構造300等のデータ構造を使用することで、顧客またはその他により指定されるエクスポートキートークンの有効期間が可能となるエクスポートドメインキーが選択され得る。例えば、顧客は、30日の有効期間を有する暗号キーを要求し得る。データ構造300は、30日の有効期間を可能とする有効期限を有するエクスポートドメインキーの場所を特定するために使用され得る。エクスポートドメインキーには、要求される有効期間以下である最長有効期間を有するエクスポートドメインキー、または代替実施形態において、要求される有効期間以上である最短有効期間を有するエクスポートドメインキーが選択され得る。いくつかの実施例において、エクスポートドメインキーに、要求される有効期間以下である最長有効期間を有するエクスポートドメインキーが選択されるか、または要求される有効期間以上である最短有効期間を有するエクスポートドメインキーが選択されるかは、構成可能な設定であり、これはエクスポートキートークン要求のパラメータにおいて選択可能であり得る。
【0035】
図3に示されるデータ構造300は、例示目的で提供され、多数が本開示の範囲内であるとみなされることに留意されたい。例えば、図3は、特定の順序で記憶された特定の種類の情報を示す。異なる種類の情報及び異なる順序も、本開示の範囲内であるとみなされる。別の実施例として、図3は、エクスポートドメインキーごとに、有効期限値及びエクスポートドメインキー識別子のストレージを示す。代替実施形態において、エクスポートドメインキーの有効期限はエクスポートドメインキー識別子として使用され、従ってエクスポートドメインキー識別子の列は省略され得る。他の変形も、本開示の範囲内であるとみなされる。
【0036】
図4は、様々な実施形態による、例示的エクスポートキートークン402の図解400を示す。図4に例示されるように、エクスポートキートークン402は、様々なコンポーネントを含む。例えば、実施形態において、エクスポートキートークン402は顧客キーに対応し、顧客キーを特定するために、エクスポートキートークン402は、顧客キーの識別子集合を含み得ることがわかる。当実施例において、エクスポートキートークン402は、内部顧客キー識別子404と、外部キー識別子406とを含む。内部顧客キー識別子404は、顧客により使用される顧客キーの識別子であり得る。同様に、外部顧客キー識別子406は、エクスポートキートークン402を生成したサービスプロバイダにより使用される顧客キーの識別子として機能し得る。例示的実施形態において、サービスプロバイダに対する顧客からの顧客キーの要求には、パラメータとして、顧客が自身のコンピュータシステムの内部で顧客キーに使用する内部顧客キー識別子404が含まれ得る。外部顧客キー識別子406は、ポリシー及び他のアクセス制御機構の顧客キーとの対応付けを可能にするため等、サービスプロバイダによる使用のために、サービスプロバイダにより生成され得る。しかしながら、顧客が内部顧客キー識別子を指定しない時、またはこのような識別子への対応が提供されない時等、エクスポートキートークン402には内部顧客キー識別子404があり得ないことに留意されたい。いくつかの実施例において、外部顧客キー識別子406は、内部顧客キー識別子として機能し、このような実施例において、外部顧客キー識別子406は繰り返し使用され得る、あるいはエクスポートキートークン402の1つの構成要素が外部顧客キー識別子406になり得る。
【0037】
さらに、図4に例示されるように、実施形態において、エクスポートキートークン402は、エクスポートドメインキーの下で暗号化された顧客キーの暗号化された複製408を含む。従って、エクスポートキートークン402の顧客キーを暗号化するために使用された特定のエクスポートドメインキーの識別を可能にするために、エクスポートキートークン402は、エクスポートドメインキー識別子410を含み得る。このように、サービスプロバイダがエクスポートキートークン402を受信すると、サービスプロバイダは、エクスポートキートークン402内の顧客キーの暗号化された複製408を復号化する適切なエクスポートドメインキーを取得するために、エクスポートドメインキー識別子410を使用可能である。
【0038】
他の情報もエクスポートキートークン402に含まれ得る。例えば、顧客キーの暗号化に使用された非初期化ベクトルまたは他の情報がエクスポートキートークン402に含まれ得るが、このような情報は図に例示されない。別の実施例として、エクスポートキートークン402は、エクスポートキートークン402に含まれる情報の電子署名を含み得る。電子署名は、エクスポートキートークン402の完全性の検証を可能にし得る。電子署名は、例えば、外部顧客キー識別子406、及びエクスポートドメインキー識別子410、及び/または顧客キーの暗号化された複製408を含む他の情報が、意図せず、または悪意を持って変更されていないことを検証するために、使用され得る。サービスプロバイダにより秘密に保持される秘密暗号キー、またはサービスプロバイダにより秘密に保持される対称暗号キー等、サービスプロバイダがアクセス可能な暗号キーを使用して、電子署名は生成され得る。一般に、エクスポートキートークン402の一部または全ての完全性を検証するためにサービスプロバイダにより使用可能な全ての認証情報が使用され得る。
【0039】
前記のように、暗号サービスにより、顧客がエクスポートキートークンを要求することが可能になり得る。図5は従って、実施形態による、エクスポートキートークン要求を処理するプロセス500の実施例を示す。プロセス500は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。プロセス500の実行に伴う様々な処理の実行は、下記により詳しく説明されるように、暗号サービスの異なるコンポーネントにより生じ得る。実施形態において、プロセス500は、エクスポートキートークン要求を受信すること(502)を含む。要求(502)は、例えば、プロセス500を実行するシステムを有するサービスプロバイダの顧客のコンピューティングデバイスから受信されるウェブサービス要求であり得る。要求は、ウェブサーバ等の暗号サービスの好適なコンポーネントにより受信され得る(502)。
【0040】
受信した要求(502)を処理するために、暗号サービスのウェブサーバまたは別のコンポーネントは、要求が真正であるか否かを判定し得る(504)。要求が真正であるか否かの判定(504)は、様々な実施形態による様々な方法で実行され得る。いくつかの実施例において、要求は、暗号的に検証可能であるように、電子署名される。従って、要求が真正であるか否かの判定(504)は、受信した要求(502)の電子署名を検証することを含み得る。例えば、顧客とサービスプロバイダとの間で秘密に共有される対称暗号キーを使用して生成される対称電子署名は、公開暗号キーに対応する秘密暗号キーであり得、公開暗号キーは、秘密暗号キーに対応する電子証明書等において、要求と共に提供あるいは指定される。図2に関連して前述されたように、電子署名を検証するために、認証サービスが使用され得る。別の実施例として、トランスポート層セキュリティ(TLS)セッション等、暗号で保護された通信セッションを介して、要求は受信される(502)。セッションの確立には、ある種の認証が必要であり得たため、従って暗号で保護された通信セッションを介して要求が受信された(502)という事実は、要求の真正性を示す。一般に、要求の真正性の検証は、要求が、要求に対応付けられたエンティティにより提出されたことを検証するために、認証情報を使用して行われ得る。
【0041】
要求が真正ではないと判定された場合(504)(すなわち要求の真正性が検証不可能である場合)、プロセス500は要求を拒否すること(506)を含み得る。様々な実施形態による様々な方法で、要求は拒否され得る。いくつかの実施例において、例えば、拒否を示す要求応答が提供される。別の実施例として、何も動作は行われ得ず、要求はタイムアウトさせられ得る。要求の拒否(506)に関連して他の動作も行われてもよく、このような動作は、プロセス500を実行するシステムの具体的な実施態様に依拠し得る。
【0042】
要求が真正であると判定された場合(504)、プロセス500は、暗号サービスのウェブサーバまたは他のコンポーネントにより、要求の履行が認可されるか否かを判定すること(508)を含み得る。要求の履行が認可されるか否かの判定は、様々な実施形態による様々な方法で実行され得る。前述の図2を参照すると、要求の履行が認可されるか否かの判定(508)は、要求に適用可能な全てのポリシーが要求の履行を許可するか否かを検証することを含み得る。一般に、サービスプロバイダは、要求の履行を制御する条件を保持し、要求の履行が認可されるか否かの検証(508)は、このような条件が要求の履行を許可するか否かを検証することを含み得る。
【0043】
要求の履行が認可されないと判定された場合(508)、プロセス500は、前述のように要求を拒否すること(506)を含み得る。例えば、要求を受信した(502)ウェブサーバは、要求が生じた元であると指定されるアドレス宛てに、メッセージを送信し得る。要求の履行が認可されると判定された場合(508)、プロセス500を実行するシステムは、要求を履行するための処理集合を実行し得る。当実施例において、プロセス500は、受信した要求(502)において指定される有効期間に合う有効期限を有するエクスポートドメインキーを選択すること(510)を含む。ウェブサーバまたはセキュリティモジュールが、エクスポートドメインキーを選択し得る。有効期間は、例えば要求のパラメータとして指定され得る、あるいは別の方法で、例えばデフォルトで指定され得る。プロセス500はまた、顧客キーを生成すること(512)を含み得る。プロセス500を実行するシステムのウェブサーバまたは他のコンポーネントは、例えば、セキュリティモジュールに顧客キーを生成させる(512)指示をセキュリティモジュールへ送信し得る。セキュリティモジュールは、例えば擬似乱数発生器または他の機構(例えば少なくとも一部が秘密に保持される情報に適用されるキー導出関数)を使用して、顧客キーを生成し得る(512)。図5は、顧客キーの生成(512)をプロセス500の一部として示しているが、顧客キー生成は、プロセス500と非同期的に行われてもよいことに留意されたい。例えば、顧客キーは事前に生成され、事前に生成された顧客キーが取得されてもよい。別の実施例において、エクスポートキートークン要求は、エクスポートキートークン内で暗号化される顧客キーの複製を含む。
【0044】
顧客キーが一旦生成されると(512)、顧客キーを生成した(512)セキュリティモジュールは、選択したエクスポートドメインキーを使用して生成した顧客キーを暗号化し得る(514)。セキュリティモジュールは、例えば、選択したエクスポートドメインキーにメモリからアクセスし、生成した顧客キー及び選択したエクスポートドメインキーを暗号アルゴリズムへ投入し、これにより生成した顧客キーの暗号化された複製がもたらされる。生成した顧客キーの暗号化された複製が一旦取得されると、プロセス500を実行するシステムは、暗号化された顧客キーを有するエクスポートキートークンを生成し得る(516)。
【0045】
エクスポートキートークンが生成される(516)方法は、様々な実施形態により変わり得る。いくつかの実施例において、顧客キーを生成及び暗号化したセキュリティモジュールは、さらにエクスポートキートークンを生成し得る(516)。また別の実施例において、セキュリティモジュールは、暗号化された顧客キーの複製を、プロセス500を実行するシステムのウェブサーバといった別のサーバへ提供し、これによりサーバは暗号化された顧客キーの複製を使用してエクスポートキートークンを生成し得る(516)。どのように生成されるか(516)に関わらず、エクスポートキートークンは要求を受信した(502)ウェブサーバにより取得され、ウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る(518)。
【0046】
生成されたエクスポートキートークンが一旦提供されると(518)、またはエクスポートキートークンが生成された(516)後の時点で、プロセス500を実行するシステムは、顧客キーへのアクセスを失い得る(520)。顧客キーの一部または全てを記憶するメモリ位置をゼロランダムデータまたは非ランダムデータ等の異なるデータで上書きすることにより、あるいは顧客キーの一部または全てが記憶されるメモリを、プロセス500を実行するシステムが引き続き作動するに伴い他のデータで最終的に上書きされるように再割り当てすること等により、様々な実施形態による様々な方法で、アクセスは失われ得る。前記のように、顧客キーが取得可能な他の情報(例えばエクスポートキートークンの全ての複製)に対するアクセスは失われ得る。このようにある時点で、サービスプロバイダは顧客キーへのアクセスを失くし、これにより、万一サービスプロバイダで深刻なセキュリティ違反が起こっても、顧客キーへのアクセスは顧客により制御される。例えば、サービスプロバイダは、顧客が後続の要求またはその他でエクスポートキートークンを提供しない限り、顧客キーへアクセス不可能である。
【0047】
前記のように、サービスプロバイダの顧客は、サービスプロバイダに、エクスポートキートークン内で暗号化された暗号キーを使用して暗号処理を行わせるために、サービスプロバイダに対しエクスポートキートークンを提供し返すことが可能である。図6は、エクスポートキートークンを使用して暗号処理を実行する要求を処理するプロセス600の実施例を示す。プロセス600は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。下記においてより詳しく記されるように、暗号サービスの異なるコンポーネントは、異なる処理を行い得る。実施形態において、プロセス600は、エクスポートキートークンを使用して1つまたは複数の暗号処理を実行する要求を受信すること(600)を含む。要求は、例えば、要求のパラメータとしてエクスポートキートークンを含み得る。顧客から受信する全ての要求と同様に、要求は、プロセス600を実行する暗号サービスのサービスフロントエンドのウェブサーバにより受信され得る(602)。図5に関連して前述されたように、プロセス600を実行するシステムは、図2に関連して前述されたように要求が真正であるか否かを判定し得る(604)。要求が真正ではないと判定された場合(604)(すなわち要求の真正性が検証不可能である場合)、前述のように要求は拒否され得る(606)。しかしながら、要求が真正であると判定された場合(604)、プロセス600は、要求の履行が認可されるか否かを判定すること(608)を含み得る。要求の履行が認可されないと判定された場合(608)、または一般に要求が認可されると判定不可能である場合、プロセス600を実行するシステムは、前述のように要求を拒否し得る(606)。
【0048】
しかしながら、要求の履行が認可されると判定された場合(608)、プロセス600を実行するシステムは、エクスポートドメインキーが利用可能であるか否かを判定し得る(610)。前記のように、顧客キーは、有効期限を有するエクスポートドメインキーを使用して、エクスポートキートークンのために暗号化され得る。エクスポートドメインキーの有効期限が切れると、暗号サービスは、暗号サービス及び一般にサービスプロバイダがエクスポートドメインキーへのアクセスを失うことを引き起こし得る処理集合を実行し得る。従って、エクスポートキートークンを使用して1つまたは複数の暗号処理を実行する要求が受信されると、エクスポートキートークン内の顧客キーを暗号化するのに使用されたエクスポートドメインキーの有効期限は切れたか否か、その結果サービスプロバイダはエクスポートドメインキーへのアクセスを失ったか否かによって、要求は履行可能であり得る、またはあり得ない。エクスポートドメインキーが利用可能であるか否かの判定(610)は、様々な実施形態による様々な方法で実行され得る。いくつかの実施例において、ウェブサーバは、エクスポートキートークン内のエクスポートドメインキーの識別子を使用して、有効なエクスポートドメインキーのリストまたは他のデータ構造内に当識別子が存在するか否かを確認する。このような処理も、セキュリティモジュールにより行われ得る。
【0049】
例えばエクスポートドメインキーの有効期限が切れて、その結果サービスプロバイダはエクスポートドメインキーへのアクセスを失ったことから、エクスポートドメインキーは利用可能ではないと判定された場合(610)、プロセス600を実行するシステムは、前述のように要求を拒否し得る(606)。しかしながら、プロセス600を実行するシステムが、特にエクスポートドメインキーが利用可能か否かを判定する(610)当システムの部分が、エクスポートドメインキーは利用可能であると判定した場合、プロセス600を実行するシステムは、エクスポートキートークン内で特定されるエクスポートドメインキーを選択し得る(612)。エクスポートキートークンを記憶するセキュリティモジュールにより要求を受信した(602)ウェブサーバ、またはその他により、選択は行われ得る。エクスポートドメインキーは、選択されると(612)、顧客キーを復号化されるために使用され得る(614)。プロセス600を実行するシステムのセキュリティモジュールは、選択されたエクスポートドメインキーを使用して顧客キーを復号化する(614)システムのコンポーネントであり得る。
【0050】
選択されたエクスポートドメインキーを使用して顧客キーを復号化する(614)システムのコンポーネントが復号化した顧客キーへのアクセスを一旦有すると、そのコンポーネントは、復号化した顧客キーを使用して、要求された1つまたは複数の暗号処理を実行し得る(616)。例えば、暗号サービスのセキュリティモジュールは、復号化した顧客キーを使用して、要求内に含まれる、またはデータの取得を可能にするために要求内で言及されること等により、要求内に含まれる、または指定されるデータを、暗号化または復号化し得る。上記のように、暗号化及び/または復号化の代わりに、暗号化及び/または復号化に加えて、他の暗号処理が行われ得る。例えば、電子署名が生成されたと称される対象データと共に電子署名は要求に含まれ、1つまたは複数の暗号処理は、電子署名を検証することを含み得る。他の動作は、電子証明書が信頼できるか否かを判定することと、電子証明書を使用して1つまたは複数の暗号処理を実行することとを含み得る。
【0051】
受信した要求(602)の履行のために1つまたは複数の暗号処理を実行すると(616)、1つまたは複数の暗号処理の実行の1つまたは複数の結果を含む要求応答が生成され、要求に応えて提供され得る(618)。例えば、セキュリティモジュールは、1つまたは複数の暗号処理の1つまたは複数の結果を、プロセス600を実行するシステムの要求を受信した(602)ウェブサーバに対し提供し得る。要求が生じた元であるネットワーク宛先として要求内に特定されるネットワーク宛先(例えばインターネットプロトコル(IP)アドレス)へ、応答は提供され得る。
【0052】
一旦、復号化された顧客キーを使用して1つまたは複数の暗号処理が実行され、復号化された顧客キーがプロセス600を実行するシステムにはもう必要なくなると、プロセス600を実行するシステムは、前述のように、システムが顧客キーへのアクセスを失うことを引き起こす処理集合を行うことで、顧客キーへのアクセスを失い得る(620)。
【0053】
前述のように、暗号サービスにより使用されるエクスポートドメインキーは、様々な時点で循環され得る。図7は、エクスポートドメインキーの集合を保持し、エクスポートドメインキーの循環規則を施行するプロセス700の実施例を示す。プロセス700は、任意の好適なシステムにより、例えば暗号サービス内の各セキュリティモジュール等により、あるいは暗号サービス内のキー循環規則を施行する役割を担うコンピュータシステム等の他のコンピュータシステムにおいて、実行され得る。実施形態において、プロセス700は、エクスポートドメインキー循環トリガーを検出すること(702)を含む。エクスポートドメインキー循環トリガーは、発生するとプロセス700の追加処理が実行されるイベントであり得る。いくつかの実施例において、エクスポートドメインキー循環トリガーは、クロックがある値に達することである。別の実施例において、トリガーは、別のコンピュータシステムから命令を受信することであり得る。様々な実施形態により、他のトリガーも使用され得る。例えば、暗号処理においてエクスポートドメインキーが使用された回数を数える、または見積もるカウンタは、回数が閾値を超えると、トリガーとなり得る。他のトリガーも、本開示の範囲内であるとみなされる。
【0054】
エクスポートドメインキー循環トリガーを検出すると(702)、プロセス704を実行するシステムは、有効期限の切れたエクスポートドメインキーの集合を選択し得る(704)。有効期限の切れた全てのエクスポートドメインキーを特定するために、図3に関連して前述されたデータ構造等のデータ構造、またはその変形が参照され得る。有効期限の切れたエクスポートドメインキーの集合が一旦選択されると(704)、プロセス700を実行するシステムは、全ての有効期限の切れたエクスポートドメインキーへのアクセス喪失を引き起こし得る(706)。全ての有効期限の切れたエクスポートドメインキーへのアクセス喪失が引き起こされる(706)方法は、様々な実施形態により変わり得る。いくつかの実施例において、有効期限の切れたエクスポートドメインキーを記憶するために、1つまたは複数のメモリ位置が使用される。有効期限の切れたエクスポートドメインキーを記憶する1つまたは複数のメモリ位置は、ランダムまたは非ランダムデータで上書きされ得る。別の実施例として、このようなメモリは、メモリを使用するその他のプロセスにより当メモリが上書き可能なように、割り当てを取り消され得る。よって特定の時間の経過後(例えば1時間または1日)、当1つまたは複数のメモリ位置が上書きされる可能性は高い。一般に、有効期限の切れたエクスポートドメインキーへのアクセスが喪失され得るいずれの方法も、本開示の範囲内であるとみなされる。
【0055】
図7に例示されるように、プロセス700はまた、有効期限の切れたエクスポートドメインキーの集合を置き換える置換エクスポートドメインキーの集合を生成すること(708)を含む。置換エクスポートドメインキーは、様々な実施形態による様々な方法で生成され得る。いくつかの実施例において、置換エクスポートドメインキーは、擬似乱数発生器を使用して生成される。置換エクスポートドメインキーを生成する別の方法は、キー導出関数の使用及び/または他の処理を含む。一般に、暗号キーが生成され得るいずれの方法も、本開示の範囲内であるとみなされる。
【0056】
置換エクスポートドメインキーに達する識別子が特定され得る(710)。置換エクスポートドメインキーの識別子を特定する方法は、様々な実施態様により変わり得る。例えば、いくつかの例において、エクスポートドメインキーの識別子はシーケンス値であり、識別子には、使用されるシーケンスにおいて次の未使用のシーケンス値が選択され得る。シーケンスは、例えば、整数シーケンスであり得る。各置換エクスポートドメインキーの有効期限も、決定され得る(712)。様々な実施形態による様々な方法で、有効期限は決定され得る(712)。実施例として、置き換えられているエクスポートドメインキーの有効期限に、指定される時間が追加され得る。指定される時間は、例えば365日であり得るが、他の時間も本開示の範囲内であるとみなされる。
【0057】
生成された全ての置換エクスポートドメインキー(708)がそれぞれの識別子及び有効期限を一旦有すると、生成された置換エクスポートドメインキーの集合(708)は、識別子及び有効期限と対応付けられた状態で記憶され得る。図3の実施例を参照すると、例えば、生成された置換エクスポートドメインキーごとに、データ構造300に行が追加され得る。一般に、置換エクスポートドメインキーがそれらの識別子及び/または有効期限と直接的または間接的に対応付けられた状態で記憶され得るいずれかの方法が、使用され得る。
【0058】
前述のように、本開示の様々な実施形態において、暗号サービスにより、顧客は、ホスト型暗号キーと、サービスプロバイダがアクセスを失うエクスポートキートークン内で暗号化された顧客キーとを、柔軟に使用することが可能となり得る。図8は、このような暗号サービスにより受信される要求を履行するプロセス800の実施例を示す。プロセス800は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。暗号サービスの異なるコンポーネントは、プロセス800の異なる処理を、後述される方法等で実行し得る。実施形態において、プロセス800は、1つまたは複数の暗号処理を実行する要求を受信すること(802)を含む。要求は、前述のように様々な方法で受信され得る(802)。要求は、例えば、前述のように暗号サービスフロントエンドのウェブサーバにより受信され得る(802)。
【0059】
要求を受信すると(802)、プロセスは前述のように、要求が真正であるか否を判定すること(804)と、要求の履行が認可されるか否かを判定すること(808)とを含み得る。要求が真正ではないと判定された場合(804)(すなわち要求の真正性が検証不可能である場合)、プロセス800は要求を拒否すること(806)を含み得る。同様に、要求の履行が認可されないと判定された場合(808)、プロセス800は、要求を拒否することを含み得る。
【0060】
プロセス800を実行するシステムが、要求は真正であり、かつ要求の履行が認可されると判定すると、プロセス800は、要求がエクスポートキートークンを含むか否かを判定すること(810)を含み得る。前述のように、エクスポートキートークンは、1つまたは複数の暗号処理を実行する要求のパラメータで任意に提供され得る。従って、要求がエクスポートキートークンを有するか否かを判定すること(810)は、要求を構文解析することと、このようなエクスポートキートークンが要求のパラメータとして含まれているか否かを判定することとを含み得る。暗号サービスのフロントエンドのウェブサーバは、例えば、要求がエクスポートキートークンを含んでいるか否かを判定する。
【0061】
要求がエクスポートキートークンを有さないと判定された場合(810)、プロセス800は、プロバイダホスト型顧客キーを使用して要求を処理すること(812)を含み得る。実施例として、プロセス800を実行する暗号サービスのウェブまたは他のサーバは、独立したデータストレージサービスから等、データストレージ場所からプロバイダホスト型顧客キーの暗号化された複製を取得し得る。一旦取得されると、サーバは、プロバイダホスト型顧客キーの暗号化された複製を、セキュリティモジュールに提供し得る。多数の顧客のためにホストされる多数のプロバイダホスト型顧客キーから、プロセス800を実行するシステムがプロバイダホスト型顧客キーを選択するために使用するプロバイダホスト型顧客キーの識別子を、要求は含み得ることに留意されたい。識別子を具体的に指定する必要のないデフォルトのプロバイダホスト型顧客キーを顧客が有する時等、プロバイダホスト型顧客キーを特定する他の方法も使用され得る。
【0062】
一旦セキュリティモジュールに提供されると、セキュリティモジュールは、ドメインキーを使用して暗号化された複製を復号化し、プロバイダホスト型顧客キーを平文形式で取得し得る。セキュリティモジュールはそれから、プロバイダホスト型顧客キーを使用して、要求を履行するための1つまたは複数の暗号処理を実行し、受信された要求(802)に応えて、実行された1つまたは複数の暗号処理の結果をサーバが含むようにサーバへ提供し得る。セキュリティモジュールはそれから、セキュリティモジュールがプロバイダホスト型顧客キーの暗号化された複製から取得したプロバイダホスト型顧客キーの平文複製に対し、アクセスを失い得る。
【0063】
プロセス800を実行するシステムが、実際に要求はエクスポートキートークンを有すると判定した場合(810)、プロセス800を実行するシステムは、エクスポートキートークンを使用して要求を処理し得る(814)。図6に関連して前述されたように、要求を処理するために、エクスポートキートークンが使用され得る。
【0064】
前述のように、顧客がエクスポートキートークンを要求する場合、要求の履行結果として返されるエクスポートキートークン内で暗号化された顧客キーの有効期間を、このような要求は指定し得る。いくつかの状況において、エクスポートキートークンを使用するサービスプロバイダの顧客は、エクスポートキートークン内で暗号化された暗号キーの有効期間を延長することを所望し得る。例えば、顧客は、エクスポートキートークン暗号キーの有効期間の期限が切れた後の時点で、データにアクセスする必要があり得る。図9は、エクスポートキートークン内で暗号化された顧客キーの有効期間を延長する要求を処理するプロセス900の実施例を示す。プロセス900は、前述のように暗号サービスによる等、任意の好適なシステムにより実行され、暗号サービスの異なるコンポーネントは、下記により詳しく説明されるように、プロセス900内の異なる処理を行い得る。
【0065】
実施形態において、プロセス900は、エクスポートキートークン内で暗号化された顧客キーの有効期間を延長する要求を受信することを含む。図2に関連して前述されたように、暗号サービスフロントエンドのウェブサーバによる等、様々な方法で要求は受信され得る(902)。前述の他の要求と同様に、プロセス900は、要求が真正であるか否を判定すること(904)と、要求の履行が認可されるか否かを判定すること(908)とを含み得る。要求が真正ではないと判定された場合(904)(すなわち要求の真正性が検証不可能である場合)、または要求の履行が認可されないと判定された場合、前述のように、プロセス900は要求を拒否すること(906)を含み得る。
【0066】
図9に例示されるように、プロセス900を実行するシステムが、要求は真正であると判定し(904)、かつ要求の履行が認可されると判定すると(908)、プロセス900は、エクスポートドメインキーが利用可能か否かを判定すること(910)を含み得る。例えば、エクスポートキートークン内で暗号化された暗号キーの有効期限前に要求が受信された場合、エクスポートドメインキーは利用可能であり得る。同様に、エクスポートキートークン内で暗号化された顧客キーの有効期限後に要求が受信された場合(902)、エクスポートドメインキーは利用不可能であり得る。エクスポートドメインキーが利用可能であるか否かの判定(910)は、異なる実施態様による異なるコンポーネントにより実行され得る。いくつかの実施形態において、例えば、判定(910)は暗号サービスのウェブまたは他のサーバにより行われ、一方別の実施形態において、判定(910)はセキュリティモジュールにより行われる。
【0067】
プロセス900を実行するシステムがエクスポートドメインキーは利用不可能であると判定した場合(910)、プロセス900は、前述のように要求を拒否すること(906)を含み得る。しかしながら、エクスポートドメインキーが利用可能であると判定された場合(910)、エクスポートキートークン内で特定されるエクスポートドメインキーが選択され得る(912)。エクスポートキートークン内で特定されるエクスポートドメインキーを選択するために(912)、図3に関連して前述されたようなデータ構造が使用され得る。エクスポートドメインキーはそれから、顧客キーを復号化するために使用され得る(914)。
【0068】
前記のように、エクスポートキートークンは、権限のあるセキュリティモジュールの中でのみ利用可能であり得るため、結果、エクスポートドメインキーの選択(912)及びエクスポートキートークン内の顧客キーの復号化は、セキュリティモジュールにより行われ得る。受信された要求(902)において指定される要求有効期間に合うエクスポートドメインキーが選択され得る(916)。選択(916)は、図3に関連して前述されたようなデータ構造を参照するセキュリティモジュールにより行われ得る。要求有効期間に合うエクスポートドメインキーを選択する(916)セキュリティモジュールは、選択したエクスポートドメインキーを使用して顧客キーを暗号化し得る(918)。
【0069】
選択されたエクスポートドメインキー(916)の下暗号化された顧客キーが一旦取得されると、プロセス900は、暗号化された顧客キーを有するエクスポートキートークンを生成すること(920)を含み得る。エクスポートキートークンの生成は、顧客キーを暗号化したセキュリティモジュールにより、またはサーバにより起こり得る。例えば、いくつかの実施態様において、エクスポートキートークンは、権限のあるセキュリティモジュールの集合体の外部からアクセス不可能な暗号キーを使用して、セキュリティモジュールにより電子署名される。その結果、セキュリティモジュールは、エクスポートキートークンの生成(920)の責任を担い得る。セキュリティモジュールがエクスポートキートークンを生成する場合(920)、セキュリティモジュールは、プロセス900を実行する暗号サービスのフロントエンドのウェブサーバに対し、エクスポートキートークンを提供し得る。どのようにフロントエンドのウェブサーバがエクスポートキートークンを取得するかに関わらず、ウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る(922)。本明細書において説明される他のプロセスと同様に、顧客キーがいずれの暗号処理の実行にももはや必要なくなった後の時点で、プロセス900は、前述のように顧客キーへのアクセスを失うこと(924)を含み得る。
【0070】
いくつかの実施例において、サービスプロバイダの顧客は、エクスポートキートークンを使用して、その顧客キーへの制限付きアクセスをサービスプロバイダに許可し得る。例えば、顧客は、サービスプロバイダをより信用し始め、及び/または自身のコンピューティングリソースを保持する顧客の負担を軽減するために、サービスプロバイダにより追加サービスが実行されることを所望し得る。図10は、エクスポート型顧客キーをホスト型顧客キーに変換する要求を処理するプロセス1000の実施例を示す。プロセス1000は、前述のように暗号サービスによる等、任意の好適なシステムにより実行され、暗号サービスの異なるコンポーネントは、プロセス1000の異なる処理を実行し得る。実施形態において、プロセス1000は、エクスポート型顧客キーをホスト型顧客キーへ変換する要求を受信すること(1002)を含む。要求は、前述のように、暗号サービスのフロントエンドのウェブサーバにより受信され得る(1002)。要求は、例えば、受信された要求(1002)のパラメータとしてエクスポートキートークンを含み得る。エクスポートキートークンを伴う様々な処理を実行する要求に関わる前述の他のプロセスと同様に、プロセス1000は、前述のように、要求が真正であるか否かを判定すること(1004)と、要求の履行が認可されるか否かを判定すること(1008)と、好適なエクスポートドメインキーが利用可能であるか否かを判定すること(1010)とを含み得る。
【0071】
好適なエクスポートドメインキーとは、要求において受信されたエクスポートキートークンから顧客キーの平文複製を取得するために使用可能なエクスポートドメインキーであり得る。要求が真正ではない(すなわち要求の真正性が検証不可能である)、要求の履行が認可されない、または好適なエクスポートドメインキーは利用不可能であると判定された場合、プロセス1000は要求を拒否すること(1006)を含み得る。しかしながら、要求が真正であると判定され(1004)、要求の履行が認可されると判定され(1008)、かつ好適なエクスポートドメインキーが利用可能であると判定された(1010)場合、プロセス1000を実行するシステムは、要求において受信されたエクスポートキートークン内で特定されるエクスポートドメインキーを選択し得る(1012)。
【0072】
前述のように、エクスポートドメインキーの選択は、プロセス1000を実行する暗号サービスのセキュリティモジュールまたはウェブもしくは他のサービスにより行われ得る。プロセス1000を実行する暗号サービスのセキュリティモジュールは、エクスポートキートークンを使用して顧客キーを復号化し得る(1014)。セキュリティモジュールはそれから、少なくともいくつかのエクスポートドメインキーより短い循環スケジュールを有する暗号キー等、セキュリティモジュールがホスト型顧客キーに使用するように構成される暗号キーであり得るドメインキーを選択し得る(1016)。セキュリティモジュールはそれから、ドメインキーを使用して顧客キーを暗号化し得る(1018)。暗号サービスのセキュリティモジュールまたはウェブもしくは他のサーバは、暗号化した顧客キーを有するキートークンを生成し得る(1020)。キートークンは、図4に関連して前述されたエクスポートキートークンのように、構造化され得る。いくつかの実施態様において、キートークンが内部顧客識別子404を有し得ないことを除いて、図4に関連して前述されたエクスポートキートークン402のようにキートークンは構造化される。しかし、いくつかの実施態様により、ホスト型顧客キーに内部顧客キー識別子を使用することは可能である。
【0073】
セキュリティモジュールがキートークンを生成した後(1020)、セキュリティモジュールは、要求を受信した(1002)暗号サービスのウェブサーバに対しキートークンを提供し、生成したキートークン(1020)をウェブサーバが記憶することを可能にし得る(1022)。いくつかの実施例において、ウェブサーバは、データストレージサービスに対し要求を送信し、データストレージサービスに、データストレージサービスのデータストレージデバイス等のコンピューティングリソースを使用してキートークンを記憶させる。一般に、プロセス1000を実行する暗号サービスのサービスプロバイダによりホストされる及び/または制御されるハードウェアにキートークンが記憶され得るいずれの方法も、本開示の範囲内であるとみなされる。いくつかの実施形態において、セキュリティモジュールは、自身でデータストレージサービスに対し要求を送信し、このようなストレージの通知をウェブサーバに提供して、要求が履行されたことを示す要求応答を提供し得ることにも留意されたい。さらに、いくつかの代替実施形態において、セキュリティモジュールは、キートークンを生成せずに、セキュリティモジュールの外部からアクセス不可能な自身のローカルメモリにキートークンを記憶し得る。このような代替実施形態において、多数のセキュリティモジュールが顧客キーへのアクセスを有し得るように、セキュリティモジュール間において安全な転送が行われ得る。
【0074】
いくつかの実施例において、サービスプロバイダの顧客は、様々な理由から、自分のホスト型顧客キーをエクスポート型顧客キーへ変換することを所望し得る。図11は、従って、ホスト型顧客キーをエクスポート型顧客キーに変換する要求を処理するプロセス1100の実施例を示す。プロセス1100は、前述の暗号サービス等、任意の好適なシステムにより実行され得る。実施形態において、プロセス1100は、ホスト型顧客キーをエクスポート型顧客キーへ変換する要求を受信すること(1102)を含む。要求は、プロセス1100を実行する暗号サービスのフロントエンドのウェブサーバにより受信され得る(1102)。要求は、サービスプロバイダによりホストされる他のホスト型顧客キーからホスト型顧客キーを区別するのに利用可能なホスト型顧客キーの識別子を、パラメータとして含み得る。本明細書において説明される他のプロセスと同様に、プロセス1100は、要求が真正であるか否を判定すること(1104)と、要求の履行が認可されるか否かを判定すること(1108)とを含み得る。要求が真正であると判定されなかった場合(1104)、または要求の履行が認可されないと判定された場合(1108)、プロセス1100は要求を拒否すること(1106)を含み得る。
【0075】
しかしながら、要求が真正であると判定され(1104)、かつ要求の履行が認可されると判定された(1108)場合、プロセス1100は、データストレージから、受信された要求(1102)において指定されるホスト型顧客キーの暗号化された複製を備えるキートークンを取得すること(1110)を含み得る。本明細書において説明される、顧客キーの平文複製へのアクセスを伴わない多数の処理と同様に、プロセス1100を実行する暗号サービスのウェブまたは他のサーバ、あるいはそのセキュリティモジュールによる等、異なる実施形態による異なるコンポーネントにより、キートークンは取得され得る(1110)。
【0076】
どのようにキートークンがデータストレージから取得されるか(1110)に関わらず、プロセス1100を実行する暗号サービスのセキュリティモジュールにより、キートークンは取得され得る。従って、図11に例示されるように、セキュリティモジュールは、ドメインキーを使用して顧客キーを復号化し得る(1112)。セキュリティモジュールは、受信された要求(1102)内にパラメータとして指定される、あるいは非明示的に指定される(例えばデフォルトで指定される)有効期間に合うエクスポートドメインキーを選択し(1114)、選択したエクスポートドメインキーを使用して顧客キーを暗号化し得る(1116)。前述のような好適なコンポーネントが、暗号化された顧客キーを有するエクスポートキートークンを生成し得る(1118)。
【0077】
生成されるエクスポートキートークン(1118)は、図4に関連して前述されたように構成され、例えば、受信された要求(1102)のパラメータとして指定され得る前述の内部顧客キー識別子404等の様々な識別子を含み得る。プロセス1100を実行する暗号サービスのフロントエンドのウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る(1120)。本明細書において説明される他のプロセスと同様に、顧客キーの平文複製がもはや必要なくなった時、前述のように、プロセス1100は顧客キーへのアクセスを失うこと(1122)を含み得る。
【0078】
図5図11は、暗号サービスまたは他のコンピュータシステムにより実行され得る様々なプロセスを例示する。プロセスは、様々な処理が特定の順序で行われることを示す。1つの処理の実行が他の処理に依存していない時等、処理の順序は例示されるものとは異なり得ることに留意されたい。例えば、要求の真正性及び要求履行の認可の判定は、異なる順序で、または並行して行われ得る。1つの処理の出力が他の処理への入力として使用されない時等、特定の順序で実行されることが要求されない他のペアの処理は、例示とは異なる順序で、または並行して行われ得る。実施例として、本明細書において説明される数多くのプロセスは、暗号サービスが顧客キーの全ての平文複製へのアクセスを失うことを引き起こす処理集合を実行することを含む。図面に例示される全てのプロセスにおいて、アクセス喪失を引き起こす処理集合は、プロセスの最後に起こる。しかしながら、システムのアクセス喪失を引き起こす処理は、顧客キーの平文複製に対し行われる、あるいは顧客キーの平文複製を使用して行われる全ての処理が完了した後等、任意の好適な時点で行われ得る。他の変形も、本開示の範囲内であるとみなされる。
【0079】
例えば、いくつかの実施形態において、エクスポートドメインキーの期限切れは、エクスポートドメインキーへの完全なアクセス喪失を引き起こし、エクスポートドメインキーの下、暗号化された情報(例えば顧客キー)は、桁外れな計算量なしには回復不可能となる。いくつかの実施形態において、サービスプロバイダは、エクスポートドメインキーの有効期間が終わったデータの回復を許可するため等、期限が切れた後のエクスポートドメインキーの取得を許可し得る。サービスプロバイダは、例えば、エクスポートドメインキーの期限が切れた後、限定された時間、エクスポートドメインキーの複製をオフラインレポジトリに保持し得る。そのため、エクスポートドメインキーの複製がオフラインレポジトリから取得可能である間、エクスポートドメインキーは取得されて情報が復号化可能となる。別の実施例として、秘密暗号キーがオフラインレポジトリ(例えばデータセンタの鍵のかかった部屋の金庫の中)に保持され得る。対応する公開キーは、エクスポートドメインキーの複製を暗号化するために使用され、暗号化された複製は、データストレージシステムに記憶され得る。より後の時点で、秘密暗号キーはアクセスされ破棄され、これによりエクスポートドメインキーを回復する全ての潜在能力は取り除かれる。他の変形も、本開示の範囲内であるとみなされる。
【0080】
論述されるように、本開示の多数の変形は、対称及び/または非対称暗号プリミティブを使用し得る様々な暗号処理の実行を伴う。対称キーアルゴリズムは、ブロック暗号、ストリーム暗号、電子署名スキームを含む、データに暗号処理を行う様々なスキームを含み得る。例示的対称キーアルゴリズムは、高度暗号化規格(AES)、データ暗号化規格(DES)、トリプルDES(3DES)、Serpent、Twofish、blowfish、CAST5、RC4、及び国際データ暗号化アルゴリズム(IDEA)を含む。対称キーアルゴリズムはまた、一方向関数の出力を生成するのに使用されるものも含み、ハッシュベースメッセージ認証符号(HMAC)、一般にメッセージ認証符号(MAC)、PBKDF2、及びBcryptを使用するアルゴリズムも含み得る。非対称キーアルゴリズムも、データに暗号処理を行う様々なスキームを含み得る。例示的アルゴリズムは、Diffie‐Hellmanキー交換プロトコル、電子署名規格(DSS)、電子署名アルゴリズム、ElGamalアルゴリズム、様々な楕円曲線アルゴリズム、パスワード認証キー共有技術、Paillier暗号システム、RSA暗号アルゴリズム(PKCS#1)、Cramer‐Shoup暗号システム、YAK認証キー共有プロトコル、NTRU暗号システム、及びMcEliece暗号システム等を使うものを含む。楕円曲線アルゴリズムは、楕円曲線Diffie‐Hellman(ECDH)キー共有スキーム、楕円曲線統合暗号化スキーム(ECIES)、楕円曲線電子署名アルゴリズム(ECDSA)、ECMQVキー共有スキーム、及びECQV暗黙的証明書スキームを含む。他のアルゴリズム及びアルゴリズムの組み合わせも、本開示の範囲内であるとみなされ、前述が網羅的なリストであるという意図はない。
【0081】
図12は、様々な実施形態による態様を実行する例示的環境1200の態様を示す。説明のためにウェブベースの環境が使われているが、様々な実施形態を実行するために、異なる環境が適宜使用され得ることが理解されるであろう。環境は電子クライアントデバイス1202を含み、当電子クライアントデバイス1202には、要求、メッセージ、または情報を好適なネットワーク1204を介して送受信し、いくつかの実施形態において、デバイスのユーザへ情報を伝達し返すように作動可能な任意の好適なデバイスが含まれ得る。このようなクライアントデバイスの実施例には、パーソナルコンピュータ、携帯電話、手持ち型メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋め込み式コンピュータシステム、及び電子書籍リーダ等が含まれる。ネットワークには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、またはその他のこのようなネットワーク及び/またはこれらの組み合せを含む、任意の好適なネットワークが含まれ得る。このようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境の種類に少なくとも部分的に依拠し得る。このようなネットワークを介して通信を行うプロトコル及びコンポーネントはよく知られているため、本明細書では詳しく論述しない。ネットワークを介した通信は、有線、または無線接続、及びこれらの組み合せにより実行可能となり得る。当実施例において、要求を受信し、要求に応じてコンテンツを提供するウェブサーバ1206が環境に含まれることから、ネットワークにはインターネットが含まれるが、当業者にとって明らかであるように、他のネットワークに関しては、同様の目的にかなう代替デバイスも使用可能である。
【0082】
例示的環境には、少なくとも1つのアプリケーションサーバ1208とデータストア1210とが含まれる。例示的環境には、いくつかのアプリケーションサーバ、レイヤーもしくは他の要素、プロセス、またはコンポーネントが存在し、これらは、好適なデータストアからデータを取得するといったタスクを実行するために相互に作用できるように連結あるいは構成され得ることを理解されたい。本明細書において使用されるサーバは、ハードウェアデバイスまたは仮想コンピュータシステム等、様々な方法で実施され得る。いくつかの文脈において、サーバは、コンピュータシステム上で実行されるプログラミングモジュールを指し得る。本明細書において使用される用語「データストア」は、特に明記しない限り、または文脈から明らかでない限り、データ記憶、データアクセス、及びデータ取得が可能な任意のデバイスまたはデバイスの組み合わせを指し、これは、任意の標準、分散、仮想、またはクラスタ環境における任意の数のデータサーバ、データベース、データストレージデバイス、データ記憶媒体、及びこれらの任意の組み合わせを含み得る。アプリケーションサーバには、クライアントデバイス用の1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合し、アプリケーションのデータアクセス及びビジネスロジックの一部または全てを取り扱う任意の好適なハードウェア、ソフトウェア、及びファームウェアが含まれ得る。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、そしてテキスト、画像、音声、映像、及び/またはユーザ提供に利用可能な他のコンテンツを含むがこれに限定されないコンテンツを生成可能である。生成されたコンテンツは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、ジャバスクリプト、階層式スタイルシート(CSS)、または別の好適なクライアント側構造化言語の形式で、ウェブサーバによりユーザへ提供され得る。ユーザが聴覚的に、視覚的に、及び/または触覚、味覚、及び/または嗅覚を含む他の感覚を通して知覚可能な形式を含むがこれに限定されない1つまたは複数の形式でコンテンツを提供するように、クライアントデバイスへ転送されるコンテンツはクライアントデバイスにより処理され得る。全ての要求及び応答の取り扱い、並びにクライアントデバイス1202とアプリケーションサーバ1208との間のコンテンツ配信は、PHP:ハイパーテキストプリプロセッサ(PHP)、Python、Ruby、Perl、Java(登録商標)、HTML、XML、または当実施例における別の好適なサーバ側構造化言語を使用して、ウェブサーバにより取り扱われ得る。本明細書において論述される構造化コードは、本明細書の別の箇所に論述される任意の好適なデバイスまたはホストマシン上で実行可能であるため、ウェブ及びアプリケーションサーバは必須ではなく、単なる例示的コンポーネントにすぎないことを理解されたい。さらに、本明細書において説明される単一デバイスにより実行される処理は、文脈から明らかでない限り、分散及び/または仮想システムを形成し得る多数のデバイスにより集合的に実行されてもよい。
【0083】
データストア1210は、本開示の特定の態様に関連するデータを記憶するために、いくつかの個別のデータテーブル、データベース、データ文書、動的データストレージスキーム、及び/または他のデータストレージ機構及び媒体を含み得る。例えば、例示されるデータストアは、コンテンツを生成側に提供するために使用され得る生成データ1212及びユーザ情報1216を記憶する機構を含み得る。データストアはまた、報告、分析、もしくはその他のこのような目的に使用され得るログデータ1214を記憶する機構も含むことが示される。ページ画像情報、及びアクセス権限情報等、データストアに記憶される必要があり得る多数の他の態様が存在する可能性があり、これらは、データストア1210内の上記の機構のうちの好適ないずれかに、または追加機構に記憶され得ることを理解されたい。データストア1210は、対応付けられたロジックを通して、アプリケーションサーバ1208から指示を受信し、指示に応じてデータを取得、更新、あるいは処理するように作動可能である。アプリケーションサーバ1208は、受信された指示に応じて、静的データ、動的データ、または静的データ及び動的データの組み合わせを提供し得る。ウェブログ(ブログ)に使用されるデータ等の動的データ、ショッピングアプリケーション、ニュースサービス、及び他のこのようなアプリケーションは、本明細書において説明されるサーバ側構造化言語により生成され得る、またはアプリケーションサーバ上で作動する、もしくはアプリケーションサーバの制御下で作動するコンテンツ管理システム(CMS)により提供され得る。一実施例において、ユーザにより操作されるデバイスを通したユーザは、ある種類のアイテムの検索要求を提出し得る。この場合、データストアは、ユーザ情報にアクセスしてユーザの身元確認を行い、カタログ詳細情報にアクセスして当種類のアイテムに関する情報を取得し得る。取得された情報はそれから、ユーザデバイス1202のブラウザを介してユーザが見ることが可能なウェブページ上の結果一覧内等で、ユーザに返され得る。特定の注目アイテムに関する情報は、ブラウザの専用ページまたは専用ウィンドウにおいて見ることが可能である。しかしながら、本開示の実施形態は、必ずしもウェブページという状況に限定されず、コンテンツに対する要求とは限らない通常の要求の処理に、より一般的に適用可能であり得ることに留意されたい。
【0084】
各サーバは、そのサーバの一般管理及び動作に関する実行可能プログラム命令を提供するオペレーティングシステムを通常含み、かつ命令を記憶するコンピュータ可読記憶媒体(例えばハードディスク、ランダムアクセスメモリ、読取専用メモリ等)を通常含み、当命令がサーバのプロセッサにより実行されると、サーバはその所定機能を実行可能となる。サーバのオペレーティングシステム及び一般機能の好適な実装は、周知であり、または市販されており、当業者は、特に本明細書の開示を踏まえて、容易に実装するだろう。
【0085】
一実施形態における環境は、1つまたは複数のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続された、いくつかのコンピュータシステム及びコンポーネントを利用する分散及び/または仮想コンピューティング環境である。しかしながら、このようなシステムは、図12に例示されるコンポーネントよりも数の少ない、または多いコンポーネントを有するシステムにおいても同等によく作動し得ることが、当業者には理解されるだろう。従って、図12におけるシステム1200の描写は、本来例示としてみなされるべきであり、開示範囲を限定するものではない。
【0086】
様々な実施形態はさらに、多様な動作環境において実施可能であり、いくつかの事例において、多数のアプリケーションのうちのいずれかを作動させるのに使用可能な1つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る。ユーザまたはクライアントデバイスには、標準のオペレーティングシステムを実行するデスクトップ、ラップトップ、またはタブレットコンピュータ、並びにモバイルソフトウェアを実行し、多数のネットワーク及びメッセージ通信プロトコルに対応可能なセルラー、無線、及び手持ち型デバイス等、多数の汎用パーソナルコンピュータのうちのいずれかが含まれ得る。このようなシステムはまた、開発及びデータベース管理等のために、様々な市販のオペレーティングシステム及び他の周知のアプリケーションのうちのいずれかを実行する多数のワークステーションを含み得る。これらのデバイスには、ダミー端末、シンクライアント、ゲーム機、及びネットワークを介して通信可能な他のデバイス等、他の電子デバイスも含まれ得る。これらのデバイスには、仮想マシン、ハイパーバイザ、及びネットワークを介して通信可能な他の仮想デバイス等、仮想デバイスも含まれ得る。
【0087】
伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、開放型システム間相互接続(OSI)モデルの様々なレイヤーで作動するプロトコル、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UpnP)、ネットワークファイルシステム(NFS)、共通インターネットファイルシステム(CIFS)、及びアップルトーク等、様々な市販のプロトコルのうちのいずれかを使用する通信に対応する、当業者によく知られる少なくとも1つのネットワークを、本開示の様々な実施形態は利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びこれらの任意の組み合わせであり得る。
【0088】
ウェブサーバを使用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル(HTTP)サーバ、FTPサーバ、共通ゲートウェイインタフェース(CGI)サーバ、データサーバ、Java(登録商標)サーバ、Apacheサーバ、及びビジネスアプリケーションサーバを含む様々なサーバまたは中階層アプリケーションのうちのいずれかを実行可能である。サーバ(複数可)はまた、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはRuby、PHP、Perl、Python、もしくはTCL等の任意のスクリプト言語、並びにこれらの組み合せで書かれた1つまたは複数のスクリプトもしくはプログラムとして実装され得る1つまたは複数のウェブアプリケーションを実行すること等により、ユーザデバイスからの要求に応じてプログラムまたはスクリプトを実行可能であり得る。サーバ(複数可)はまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販されるデータベースサーバ、並びにMySQL、Postgres、SQLite、MongoDB等のオープンソースサーバ、及び構造化または非構造化データの記憶、取得、及びアクセスを実行可能なその他のサーバを含むが、これに限定されないデータベースサーバを含み得る。データベースサーバには、テーブルベースサーバ、文書ベースサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、もしくはこれらの組み合わせ、及び/または他のデータベースサーバが含まれ得る。
【0089】
環境には、前述のように、様々なデータストア、並びに他のメモリ及び記憶媒体が含まれ得る。これらは、コンピュータのうちの1つまたは複数のローカルにある(及び/または中に存在する)記憶媒体上、あるいはネットワーク上でコンピュータのうちの任意または全てから遠隔にある記憶媒体上等、様々な場所に存在し得る。特定集合の実施形態において、当業者によく知られるストレージエリアネットワーク(SAN)に情報は存在し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を実行するために必要な任意のファイルは、ローカル及び/またはリモートに適宜記憶され得る。システムに含まれるコンピュータ化デバイスはそれぞれ、例えば少なくとも1つの中央処理装置(CPUまたはプロセッサ)と、少なくとも1つの入力デバイス(例えばマウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)と、少なくとも1つの出力デバイス(例えばディスプレイデバイス、プリンタ、またはスピーカ)とを含む、バスを介して電気的に結合され得るハードウェア要素を含み得る。このようなシステムはまた、ディスクドライブ、光学ストレージデバイス、及び、ランダムアクセスメモリ(RAM)もしくは読出専用メモリ(ROM)等のソリッドステートストレージデバイス、並びに着脱可能媒体デバイス、メモリカード、フラッシュカード等といった、1つまたは複数のストレージデバイスを含み得る。
【0090】
このようなデバイスはまた、前述のように、コンピュータ可読記憶媒体リーダと、通信デバイス(例えばモデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)と、作業メモリとを含み得る。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び/またはより永久的に保有、記憶、送信、及び取得するためのリモート、ローカル、固定、及び/または着脱可能の記憶デバイス並びに記憶媒体に相当するコンピュータ可読記憶媒体と接続、または当コンピュータ可読記憶媒体を受けるように構成され得る。システム及び様々なデバイスはまた通常、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステム及びアプリケーションプログラムを含む、少なくとも1つの作業メモリデバイス内に配置された多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替実施形態は、前述の実施形態からの多数の変形形態を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され、及び/または特定要素がハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、またはその両方に実装され得る。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が採用され得る。
【0091】
コードや部分的コードを含む記憶媒体及びコンピュータ可読媒体には、当技術分野において既知または既に使用されている任意の好適な媒体が含まれ得る。任意の好適な媒体には、コンピュータ可読命令、データ構造、ブログラムモジュール、もしくは他のデータといった情報の記憶及び/または送信に関する任意の方法または技術で実行される揮発性及び不揮発性、着脱可能及び着脱不可能媒体が挙げられるが、これに限定されない記憶媒体及び通信媒体が含まれる。記憶媒体及び通信媒体には、RAM、ROM、電気的消去可能プログラム可能読出専用メモリ(EEPROM)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読取専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用され、システムデバイスによりアクセス可能なその他の媒体が含まれる。本明細書において提供される開示及び教示に基づいて、当業者は、様々な実施形態を実施する他のやり方及び/または方法を理解するだろう。
【0092】
従って、明細書及び図面は、限定的ではなく例示的であるとみなされるべきである。しかしながら、これらに対し、特許請求の範囲に明記される本発明のより広い趣旨と範囲から逸脱せずに、様々な修正及び変更が行われてもよいことは、明白である。
【0093】
他の変形は、本開示の趣旨の範囲内で行われる。従って、開示される技術は、様々な修正及び代替構造を許容可能であるが、これらのうちの特定の例示的実施形態が、図面に示され、詳しく前述されている。しかしながら、本発明を、開示される特定の形式(複数可)に限定する意図はなく、それとは逆に、添付の請求項で定義される本発明の趣旨と範囲に入る全ての修正、代替構造、及び同等物を対象とする意図があることを理解されたい。
【0094】
開示される実施形態を説明する文脈における(特に以下の請求項の文脈における)用語「a」、「an」、「the」、及び同様の指示語の使用は、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、単数と複数の両方を対象にすると解釈されるべきである。「comprising(備える)」、「having(有する)」、「including(含む)」、及び「containing(含む)」の用語は、特に断りのない限り、無制限用語(すなわち「含むがこれに限定されない」という意味)として解釈されるべきである。用語「connected(結合された)」は、修正されず物理的結合を指す場合、介在するものがあるとしても、部分的または全体的に、何かの中に含まれる、何かへ取り付けられる、または何かと一緒に結合される、と解釈されるべきである。本明細書における値の範囲の詳述は、本明細書において特に指示のない限り、範囲内に入る個々の値を個別に指す簡略な方法として用いられることを単に意図し、そして個々の値は、本明細書において個別に詳述されているかのように明細書に組み込まれる。用語「set(集合)」(例えば「項目集合」)または「subset(部分集合)」の使用は、特に明記がないか、文脈と矛盾しない限り、1つまたは複数の要素を含む非空集合として解釈されるべきである。さらに、特に明記がないか、文脈と矛盾しない限り、対応集合の「subset(部分集合)」の用語は、必ずしも対応集合の真部分集合を示すとは限らず、部分集合と対応集合は等しくてもよい。
【0095】
形式「A、B、及びCのうちの少なくとも1つ」または「A、B及びCのうちの少なくとも1つ」の語句等の接続的文体は、特に明記がないか、または明らかに文脈と矛盾しない限り、項目、項等が、AまたはBまたはCのいずれか、あるいはA及びB及びCの集合の任意の非空部分集合であり得ることを示すよう、一般に使用される文脈で理解される。例えば、3つの要素を有する集合の実施例において、接続的語句「少なくともA、B、及びCのうちの1つ」及び「少なくともA、B及びCのうちの1つ」は、{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}の集合のうちのいずれかを指す。従って、このような接続的文体は一般に、ある実施形態において少なくとも1つのA、少なくとも1つのB、及び少なくとも1つのC、それぞれが存在する必要があることを意味する意図はない。
【0096】
本明細書において説明されるプロセスの処理は、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、任意の好適な順序で行うことが可能である。本明細書において説明されるプロセス(あるいはそれらの変形形態及び/または組み合わせ)は、実行可能命令で構成される1つまたは複数のコンピュータシステムの制御下で実行され、ハードウェアまたはそれらの組み合わせにより、1つまたは複数のプロセッサ上で集合的に実行されるコード(例えば実行可能命令、1つまたは複数のコンピュータプログラム、もしくは1つまたは複数のアプリケーション)として、実装され得る。コードは、例えば、1つまたは複数のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読記憶媒体に保存され得る。コンピュータ可読記憶媒体は、非一時的であり得る。
【0097】
本明細書において提供されるあらゆる全ての実施例または例示語(例えば「等」)の使用は、単に本発明の実施形態をより分かり易くすることを意図し、特に請求のない限り本発明の範囲を限定するものではない。本明細書におけるどの文体も、任意の非請求要素が本発明の実施に必須であるかのように解釈されるべきではない。
【0098】
本明細書において説明される本開示の実施形態には、本発明を実施するための本発明者が知る最適な形態が含まれる。これらの実施形態の変形形態は、前述の説明を読むことで、当業者に明らかとなるだろう。本発明者は、当業者がこのような変形形態を適宜採用することを見込み、また本発明者は、本開示の実施形態が本明細書において具体的に説明される以外の方法で実行されることを意図する。従って、本開示の範囲は、本明細書に添付される請求項において詳述される内容の全ての変更及び均等物を、適用法令により認可したものとして含む。さらに、これらの全ての可能な変形形態における前述の要素のいずれの組み合わせも、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、本開示の範囲に含まれる。
【0099】
本明細書において引用される公報、特許出願、及び特許を含む全ての参考文献は、各文献が参照により組み込まれるよう個々に具体的に示され、かつその全体が本明細書において記載されるのと同程度に、参照により本明細書に組み込まれるものとする。
【0100】
本開示の実施形態は、以下の条項を以って説明され得る。
1.暗号サービスのウェブサーバにおいて、前記暗号サービスの顧客に対応付けられたデバイスから、有効期間を指定する暗号キーの要求を受信することと、
暗号材料のハードウェア保護を提供するデバイスにおいて、前記暗号キーを生成することと、
前記デバイス内に記憶され、前記デバイスからプログラム的にエクスポート不可能なドメインキー集合の中から、前記指定された有効期間に合う有効期限を有するドメインキーを選択することであって、前記有効期限に従って特定される時点に前記ドメインキーが永久に前記デバイスによりアクセス不可能となることを引き起こす自動プロセスの少なくとも1つのインスタンスにより前記有効期限は施行される、前記指定された有効期間に合う前記有効期限を有する前記ドメインキーを選択することと、
前記デバイスにおいて、前記生成された暗号キーを暗号化することと、
前記暗号化された暗号キー及び前記暗号キーの識別子を含むトークンを生成することと、
前記顧客に対応付けられた前記デバイスに対し、前記受信された要求に応えて前記トークンを提供することと、
前記デバイスが前記暗号キーへのアクセスを失うことを引き起こす1つまたは複数の処理を行うことと、
を含むコンピュータ実施方法。
【0101】
2.前記暗号サービスがポリシーを使用して、前記暗号キーを用いて暗号処理を実行する要求の履行を制御するように、前記ポリシーと前記暗号キーの前記識別子を対応付けることをさらに含む、条項1に記載のコンピュータ実施方法。
【0102】
3.前記ウェブサーバにおいて、ホスト型暗号キーの第2要求を受信することと、
前記デバイスにおいて、前記ホスト型暗号キーを生成することと、
前記デバイスに記憶される第2ドメインキーを使用して、前記ホスト型暗号キーを暗号化することと、
前記暗号サービスへアクセス可能な場所に前記暗号化されたホスト型暗号キーを記憶することと
をさらに含む、条項1または2に記載のコンピュータ実施方法。
【0103】
4.前記ドメインキーは、エクスポート型暗号キーのために支給される前記ドメインキー集合の第1部分集合に属する第1ドメインキーであり、
前記第2ドメインキーは、ホスト型暗号キーのために支給される前記ドメインキー集合の第2部分集合に属する、
条項3に記載のコンピュータ実施方法。
【0104】
5.1つまたは複数のサービスを実施するように構成される少なくとも1つのコンピューティングデバイスを備えるシステムであって、前記1つまたは複数のサービスは、
暗号キーの要求を受信し、
前記暗号キーの前記要求を履行するように構成され、前記暗号キーの前記要求を履行することは、
前記暗号キーを取得することと、
暗号材料を使用して前記取得された暗号キーを暗号化することであって、前記暗号材料は、前記暗号材料のハードウェア保護をそれぞれが提供するハードウェアデバイス集合の外側からアクセス不可能であり、前記暗号材料は、前記ハードウェアデバイス集合から前記暗号材料がアクセス不可能となる時間に対応する有効期限を有し、前記有効期限は、前記システムにより実行される自動化プロセスにより施行される、前記暗号材料を使用して前記取得された暗号キーを暗号化することと、
前記暗号化された暗号キーを提供することと、
前記ハードウェアデバイス集合が前記取得された暗号キーへのアクセスを失うことを引き起こすことと、
により行われる、前記システム。
【0105】
6.前記1つまたは複数のサービスはさらに、前記暗号キーの識別子を含むトークンを生成するように構成され、
前記暗号化された暗号キーを提供することは、前記生成されたトークンを提供することを含む、
条項5に記載のシステム。
【0106】
7.前記1つまたは複数のサービスはさらに、
前記暗号キーを使用して暗号処理を行う第2要求であって、前記暗号化された暗号キーを含む前記第2要求を受信し、
前記暗号材料が今もなお利用可能であることを条件として、前記暗号化された暗号キーを復号化し、前記暗号キーを使用して前記暗号処理を実行することにより、前記第2要求を履行する、
ように構成される、条項5または6に記載のシステム。
【0107】
8.前記1つまたは複数のサービスはさらに、
前記暗号処理を実行する第3要求であって、前記1つまたは複数のサービスにより管理される第2暗号キーの識別子を指定する前記要求を受信し、
前記要求を履行するように構成され、前記要求を履行することは少なくとも、
データストレージ場所から前記第2暗号キーの暗号化された複製を取得することと、
前記第2暗号キーの前記暗号化された複製を復号化することと、
前記第2暗号キーを使用して前記暗号処理を実行することと
により行われる、条項7に記載のシステム。
【0108】
9.前記1つまたは複数のサービスはさらに、
前記暗号キーの許可集合を指定するポリシーを前記暗号キーと対応付け、
前記ポリシーに従って前記暗号キーを使用する要求の履行を制御する、
ように構成される、条項5〜8のいずれかに記載のシステム。
【0109】
10.前記1つまたは複数のサービスはさらに、前記暗号材料へのアクセスを前記1つまたは複数のサービスが失う時間を示す前記暗号材料の有効期限に少なくとも部分的に基づいて、前記暗号材料を選択するように構成される、条項5〜9のいずれかに記載のシステム。
【0110】
11.前記ハードウェアデバイスはハードウェアセキュリティモジュールである、
条項5〜10のいずれかに記載のシステム。
【0111】
12.前記暗号キーを取得することは、
前記1つまたは複数のサービスにアクセス可能なデータストレージシステムから前記暗号キーの暗号化された複製を取得することと、
前記暗号材料とは異なる別の暗号材料を使用して前記暗号キーの前記暗号化された複製を復号化することと、
を含む、条項5〜11のいずれかに記載のシステム。
【0112】
13.実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が第1エンティティのコンピュータシステムの1つまたは複数のプロセッサにより実行されると、前記命令により前記コンピュータシステムは少なくとも、
キートークンの第1要求に関して、
第1暗号キーの暗号化された複製と、前記第1暗号キーを暗号化するのに使用された第2暗号キーを識別するのに使用可能な情報を含むキートークンを取得することであって、前記第2暗号キーは、前記第2暗号キーを管理するハードウェアデバイス集合の外側からアクセス不可能であり、前記キートークンを取得することは、前記キートークンが生成された後に前記第1暗号キーが前記エンティティへアクセス不可能になることを引き起こし、前記第2暗号キーは、前記ハードウェアデバイス集合へ前記第2暗号キーがアクセス不可能となる時間を示す有効期限を有する、前記キートークンを取得することと、
第2エンティティに対応付けられた、キートークンの第2要求に関して、
前記キートークンを取得することと、
前記有効期限により示される前記時間がまだ経過していない場合、前記ハードウェアデバイス集合内のハードウェアデバイスに、前記第1暗号キーを復号化させ、前記復号化された第1暗号キーを使用して1つまたは複数の暗号処理を実行させ、前記1つまたは複数の暗号処理の結果を前記コンピュータシステムへ提供させることと、
前記提供される結果に少なくとも部分的に基づく前記第2要求への応答を提供することと、
を実行する、前記非一時的コンピュータ可読記憶媒体。
【0113】
14.前記キートークンを取得する前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記第1要求の受信結果として前記キートークンが生成されることを前記コンピュータシステムに引き起こさせるように前記命令が構成される、
条項13に記載の非一時的コンピュータ可読記憶媒体。
【0114】
15.前記キートークンを取得する前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記ハードウェアデバイス集合の前記ハードウェアデバイスのうちの1つに対し、前記キートークンの生成を引き起こす命令を前記コンピュータシステムに発行させるように前記命令が構成される、
条項13または14に記載の非一時的コンピュータ可読記憶媒体。
【0115】
16.前記命令は、前記第2要求に関して実行されると前記コンピュータシステムに、
前記第1暗号キーの識別子に少なくとも部分的に基づいて、前記第1暗号キーを使用するための許可集合を定義するポリシー集合を特定させ、
前記要求の履行が前記特定されたポリシー集合に準拠するか否かを判定させる
命令をさらに含み、
前記ハードウェアデバイスが前記第1暗号キーを復号化し、前記復号化された第1暗号キーを使用して前記1つまたは複数の暗号処理を実行することを前記コンピュータシステムに引き起こさせる前記命令の実行は、前記要求の履行が前記特定されたポリシー集合に準拠するという判定を条件とする、
条項13〜15のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【0116】
17.前記第1エンティティは前記コンピュータシステムを運用するサービスプロバイダであり、前記第2エンティティは前記サービスプロバイダの顧客である、
条項13〜16のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【0117】
18.前記第2要求は前記キートークンを含み、
前記コンピュータシステムに前記キートークンを取得させる前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記コンピュータシステムに前記第2要求から前記キートークンを特定させる、
条項13〜17のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【0118】
19.前記ハードウェアデバイス集合は複数のハードウェアセキュリティモジュールを備える、
条項13〜18のいずれかに記載の非一時的コンピュータ可読記憶媒体。
【0119】
20.前記コンピュータシステムに前記キートークンを取得させる前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記第1要求内で指定される有効期間に合う有効期限を有する前記第2暗号キーに依って前記第2暗号キーの選択を行うやり方で前記コンピュータシステムに前記キートークンを取得させる、
条項13〜19のいずれかに記載の非一時的コンピュータ可読記憶媒体。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12