JP2019118135A - キーエクスポート技術 - Google Patents

キーエクスポート技術 Download PDF

Info

Publication number
JP2019118135A
JP2019118135A JP2019047189A JP2019047189A JP2019118135A JP 2019118135 A JP2019118135 A JP 2019118135A JP 2019047189 A JP2019047189 A JP 2019047189A JP 2019047189 A JP2019047189 A JP 2019047189A JP 2019118135 A JP2019118135 A JP 2019118135A
Authority
JP
Japan
Prior art keywords
key
request
export
customer
cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019047189A
Other languages
English (en)
Other versions
JP6838799B2 (ja
Inventor
ジョン カンパーニャ、マシュー
John Campagna Matthew
ジョン カンパーニャ、マシュー
ブランチェク ロス、グレゴリー
Branchek Roth Gregory
ブランチェク ロス、グレゴリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2019118135A publication Critical patent/JP2019118135A/ja
Application granted granted Critical
Publication of JP6838799B2 publication Critical patent/JP6838799B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】サービスとして暗号処理を行うコンピュータシステムにおいて、暗号処理サービスを受けるユーザがそれぞれの暗号材料の制御を保持することを可能にするキーエクスポート技術を提供する。【解決手段】サービスプロバイダ104は、有効期限を有し、デバイス108内からエクスポート不可能なドメインキーを使用して、ユーザの暗号キーを暗号化したキートークン106をユーザ102に提供する。ユーザがユーザの暗号キーで暗号化したデータ116を復号化する場合は、データ116とキートークン106をサービスプロバイダに提供し、サービスプロバイダがドメインキーを使用してキートークン106を復号化して、ユーザの暗号キーを取得し、データ116を復号化して平文形式のデータ114を得る。【選択図】図1

Description

関連出願の相互参照
2015年3月31日に出願された「KEY EXPORT TECHNIQUES」と題する米国特許出願第14/675,614号の全開示内容は、全ての目的で参照することにより本出願に組み込まれるものとする。
多くのデータユーザにとって、データのセキュリティは、数多くの状況において非常に重要である。不正なエンティティによるデータの平文形式での取得を防止することによるなど、データのセキュリティを確保するために、暗号化といった多数の技術がかなり開発されてきた。同時に、コンピュータシステムは、組織の要望が高じるにつれ、より一層複雑となった。一例として、組織は多くの場合、コンピューティングデバイスのネットワークを利用して、それらのユーザに対し堅牢なサービス集合を提供する。ネットワークは、多数の地理的境界線にまたがることが多く、また、他のネットワークと接続することが多い。例えば、組織は、コンピューティングリソースの内部ネットワークと、他に管理されるコンピューティングリソースとの両方を用いて、組織の作業に対応し得る。例えば、組織のコンピュータは、別の組織のサービスを利用しながら、他の組織のコンピュータと通信してデータにアクセスする、及び/またはデータを提供し得る。数多くの事例において、組織は、他の組織により管理されるハードウェアを使用する遠隔ネットワークを構成及び運用することにより、インフラストラクチャ費用を削減し、他の利点を達成する。コンピューティングリソースのこのような構成により、リソースまでのアクセス、及びリソースが保持するデータが安全であることを確保することは、特にこのような構成のサイズ及び複雑さが高まるにつれ、困難となり得る。
組織が複雑なコンピュータシステムを開発して自身の作業に対応することを助長するために、数多くの組織が、サービスとしてコンピューティングリソースのホスティングを開始した。例えば、コンピューティング、データストレージ、アドバンストデータストレージ(例えばデータベース使用)、及びネットワークサービス(例えばホスト型コンピュータネットワーク)等の様々な作業を、顧客の代わりに実行するために、コンピューティングリソースサービスがホストされ得る。このようなサービスは、サービスのプロバイダの顧客に多数の利点(例えば多大な資本投資なしにコンピューティングリソースを設立する能力)を提供する一方、サービスプロバイダが自分の顧客のデータを守るために払う相当な努力にもかかわらず、顧客は多くの場合、他のエンティティによりデータがアクセス可能ではないかという懸念を抱える。
本開示による様々な実施形態が、図面を参照して説明される。
本開示の様々な態様を例示する図を示す。 様々な実施形態を実施可能である環境の実施例を示す。 実施形態による、データ構造の実施例を示す。 実施形態による、エクスポートキートークンの実施例を示す。 実施形態による、エクスポートキートークン要求を履行するプロセスの実施例を示す。 実施形態による、エクスポートキートークンを使用して1つまたは複数の暗号処理を実行する要求を履行するプロセスの実施例を示す。 実施形態による、エクスポートドメインキーを循環させるプロセスの実施例を示す。 実施形態による、1つまたは複数の暗号処理を実行する要求を履行するプロセスの実施例を示す。 実施形態による、エクスポート型顧客キーの有効期間を延長する要求を履行するプロセスの実施例を示す。 実施形態による、エクスポート型顧客キーをホスト型顧客キーに変換する要求を履行するプロセスの実施例を示す。 実施形態による、ホスト型顧客キーをエクスポート型顧客キーに変換する要求を履行するプロセスの実施例を示す。 様々な実施形態を実施可能である環境を例示する。
以下の記述において、様々な実施形態が説明される。説明目的で、実施形態の完全な理解を提供するために、具体的な構成及び詳細が明らかにされる。しかしながら、実施形態は具体的詳細がなくとも実行可能であることは、当業者には明らかであろう。さらに、説明される実施形態を不明瞭にしないために、周知の特徴は省略または簡略化され得る。
本明細書において説明及び提案される技術は、アプリケーションプログラミングインタフェース(API)により分散コンピュータシステムを操作することを含む。当APIは、サービスプロバイダの顧客が暗号サービスを利用することを可能にする一方、顧客に支給される暗号キーにサービスプロバイダがアクセスすることを制限する。実施形態において、サービスプロバイダは、顧客のために暗号処理(例えば暗号化、復号化、並びに電子署名生成及び検証)を行う暗号サービスを運用する。暗号サービスは、暗号処理が行われるデータ、及び暗号処理を行うのに使用される暗号キーのセキュリティを確保するために、ハードウェアセキュリティモジュール等の特別ハードウェアを使用し得る。いくつかの実施例において、サービスプロバイダの暗号サービスのAPIは、サービスプロバイダがアクセスを制限されている暗号キーに関わる要求の提出を可能にするように構成される。
例えば、実施形態において、多数の方法で暗号処理を行う際に使用する暗号キーを、要求(例えばウェブサービス要求)により指定可能なように、APIは構成される。一実施例において、暗号処理を行う要求には、暗号サービスにより管理される暗号キー(管理顧客キーとも称されるホスト型顧客キー)の識別子が含まれる。別の実施例において、暗号処理を行う要求には、トークン(エクスポートキートークンと称される)が含まれる。トークンは、暗号処理を実行する際使用する暗号キーの暗号化された複製を含み、暗号キーの複製は別の暗号キー(ラッピングキーまたはエクスポートドメインキーと称される)を使用して復号化可能であり、別の暗号キーは、サービスプロバイダにおける1つまたは複数のデバイス(例えばハードウェアセキュリティモジュールまた暗号材料のハードウェアベース保護を提供する他のデバイス)の秘匿内部として保持される。
1つまたは複数の暗号処理を実行する要求を処理するために、サービスプロバイダは、要求内に指定された暗号キーを取得し得る。ホスト型顧客キーを指定する要求の実施例において、サービスプロバイダは、データストレージから指定ホスト型顧客キーの暗号化された複製を取得し、復号化及び要求される暗号処理(複数可)の実行のために、指定ホスト型顧客キーの暗号化された複製をハードウェアセキュリティモジュールに提供し得る。エクスポートキートークンを含む、あるいは指定する要求の実施例において、エクスポートキートークンを復号化して、顧客キーを取得し、要求される暗号処理(複数可)を実行するために、ハードウェアセキュリティモジュールに対しエクスポートキートークンが提供され得る。少なくとも、要求によりエクスポートキートークンが指定される実施例において、顧客キーの使用が一旦完了すると(例えば要求に対する応答の提供を受けて)、サービスプロバイダはエクスポートキートークンから取得した顧客キーへのアクセスを失い得るため、これにより、当エクスポートキートークンまたは当顧客キーを含む別のエクスポートキートークンを備える別の通信(例えば要求)において当顧客キーが提供されない限り、サービスプロバイダは当顧客キーへアクセスすることを阻止される。顧客キーへのアクセスを失うことは、エクスポートキートークン等、顧客キーを特定可能な全ての情報に対するアクセスを損失することを含み得ることに留意されたい。
様々な実施形態において、暗号サービスは、少なくとも2つのクラスのドメインキーを使用する。1つのクラスはホスト型顧客キーであり、もう1つのクラスはエクスポート型顧客キーである。このように、異なるクラスのドメインキーは、異なる循環スケジュールに従って、循環可能である(例えば暗号キーの枯渇を防ぐために置き換えられる)。一例として、サービスプロバイダはホスト型顧客キーにアクセス可能であるため(それぞれのホスト型顧客キーは現行のドメインキーの下、暗号化された状態で記憶され得る)、サービスプロバイダは、顧客データの損失を生じることなく、エクスポートドメインキーよりも頻繁にドメインキーを循環可能である。特に、サービスプロバイダは、暗号化された顧客キーにアクセスし、期限が切れるドメインキーを使用して顧客キーを復号化し、新しいドメインキーを使用して顧客キーを暗号化し、暗号化した顧客キーを記憶することが可能である。しかしながら、エクスポート型顧客キーに関しては、新たなエクスポートドメインキーへの再暗号化のために顧客がエクスポートキートークンを提供しない場合、エクスポートドメインキーの循環は、顧客データの損失を生じ得る。
異なるクラスのドメインキーの異なる循環スケジュールにより、様々な実施形態において、暗号キーの有効期間に対し柔軟な処理が可能となる。いくつかの実施態様において、暗号サービスのAPIにより、顧客はエクスポート型顧客キーの有効期間を指定可能となる。さらに、サービスプロバイダは、それぞれが異なる有効期限を有するエクスポートドメインキーの集合を保持し得る。サービスプロバイダは、保持される集合から、エクスポートキートークン内で顧客に提供される顧客キーを暗号化するための顧客指定有効期限に合うエクスポートドメインキーを使用し得る。一旦エクスポートドメインキーが期限切れでサービスプロバイダによりもはやアクセス不可能となると、エクスポートキートークンはサービスプロバイダがエクスポートキートークンを復号化するためにもはや利用不可能となり、結果、エクスポートキートークンは顧客キーを取得するためにもはや使用不可能となる。このように、顧客は、データが制限された時間のみアクセス可能となるように確保可能である。他の変形も、本開示の範囲内であるとみなされる。
図1は、様々な実施形態を実施可能である環境100の実施例を示す。図1の例示において、環境100は、サービスプロバイダ104の顧客102との対話を例示するために提示される。サービスプロバイダは、下記により詳しく説明される暗号サービス等の1つまたは複数のサービスを提供するように構成される分散コンピュータシステムであり得るコンピュータシステムを操作するエンティティで有り得る。いくつかの実施例において、サービスプロバイダ104は、暗号サービスに加えて、サービスプロバイダの顧客により遠隔かつプログラムで管理可能なハードウェアをサービスプロバイダがホストするサービスのように、インフラストラクチャに分類されるサービスといった他のサービスを提供する。サービスプロバイダと、サービスプロバイダの顧客が例示目的で用いられているが、本明細書において説明される技術は、顧客/サービスプロバイダの関係がない他の状況においても適用可能であることに留意されたい。
実施形態内の図1の実施例において、顧客102はサービスプロバイダ104からキートークン106を受信する。キートークン106は、顧客102により復号化不可能(すなわち桁外れな計算量なしには復号化不可能)である暗号キーを含む情報の構造化集合であり得る。1つまたは複数の識別子等の他の情報も、キートークン106に含まれ得る。キートークンは、図4に関連して下記により詳しく論述される。図1に示される実施例において、サービスプロバイダ104のハードウェアセキュリティモジュール108の集合体のうちのハードウェアセキュリティモジュール内、または下記により詳しく説明されるような暗号材料のハードウェアベース保護を提供する別のデバイス内で、キートークンは少なくとも部分的に生成される。ハードウェアセキュリティモジュール(HSM)が例示目的で全体を通して使用されているが、暗号材料のハードウェアベース保護を提供する他のデバイスも使用してもよいことに留意されたい。このようなデバイスの実施例には、トラステッドプラットフォームモジュール(TPM)と、インテルSecure Guard eXtensions(SGX)技術を利用するプロセッサの孤立領域等の環境における安全実行を含むプロセッサとが含まれる。
キートークン106の生成に関与するハードウェアセキュリティモジュールは、顧客102のために暗号キーを生成し、その暗号キーを、ハードウェアセキュリティモジュールの集合体108内に安全に保持されるドメインキーと称される別の暗号キーを使用して、暗号化し得る。例えば、セキュリティモジュール集合のうちの各セキュリティモジュールは、ドメインキーをプログラム的にエクスポート不可能な情報として保持し得る。プログラム的に(例えばデバイスのインタフェースを通して)デバイスに情報を提供させる正当な方法がない場合に、情報はプログラム的にエクスポート不可能であると言える。例えば、平文形式の情報へアクセス可能なハードウェアに、情報を平文形式で公開させる要求機構(例えばアプリケーションプログラミングインタフェース(API)コール)がないように、情報は保持され得る。一例として、セキュリティモジュールは、そのメモリの一部または全ての複製が情報を平文形式で含むように当該複製を提供する能力に欠けるように構成され得る。しかしながら、平文形式で情報を取得する正当な方法はない情報が、例示目的で本開示を通して使用されているが、一部の情報は、制限された数の正当な使用を通して取得可能であるように保持されてもよく、これは、様々なセキュリティプロトコルの採用を必要とし、平文形式の情報に対する不正アクセスを阻止可能であり得ることに留意されたい。一般に、プログラム的にエクスポート不可能な情報は、もし平文形式で当情報を取得することが少しでも可能であるならば、当情報を平文形式で取得するには特別な対策が取られなければならない情報である(例えば1つまたは複数の暗号キー)。結果、桁外れな計算量なしには、キートークン106の中の顧客102用の暗号キーを暗号化するのに使用されたドメインキーへアクセスのないデバイスは、キートークン106の中の暗号キーを平文形式で取得することができない。
サービスプロバイダ104からキートークン106を受信すると、顧客は、キートークン106の複製を顧客により管理されるストレージデバイス110に保持し得る。ストレージデバイス110は、例えば、顧客102により管理されるプライベートネットワーク内のストレージデバイス、あるいは一般に、顧客が制御する、もしくは顧客102のために顧客以外のエンティティが制御する任意のストレージデバイスであり得る。
顧客102は、自身が記憶したキートークン106を使用するために、サービスプロバイダ104と対話し得る。これを行うために、図1に例示される実施形態において、顧客102は、コンピュータデバイスを通して、データ114に対し1つまたは複数の暗号処理を行う要求112内にキートークン106の複製を提供する。要求112は、例えば、要求112を履行するために必要な1つまたは複数の暗号処理をサービスプロバイダ104に行わせるように構成されるウェブサービス要求であり得る。データ114は、顧客102がサービスプロバイダ104により1つまたは複数の暗号処理を行うことで操作したい任意のデータであり得る。一実施形態において、データ114は、顧客102が他のデータを暗号化するために使用した暗号キーである。しかしながら、本開示の範囲は、データ114が暗号キーであることに制限されない。
要求112を処理するために、サービスプロバイダ104は、キートークン106、または顧客102の暗号化された暗号キーを含むキートークン106の一部を、ハードウェアセキュリティモジュール108の集合体のうち、暗号化された暗号キーを復号化するのに使用可能なドメインキーの複製にアクセス可能なハードウェアセキュリティモジュールに対し提供し得る。ハードウェアセキュリティモジュールは、暗号キーを復号化して暗号キーの複製を平文形式で取得し、その平文形式の暗号キーの複製を使用して、要求される1つまたは複数の暗号処理をデータ114に対し行い得る。図1のこの特定の実施例において、データ114は平文形式でサービスプロバイダ104に提供され、サービスプロバイダ、具体的にはサービスプロバイダのハードウェアセキュリティモジュールは、データ114に対し暗号化処理を行って暗号化されたデータ116を取得し、サービスプロバイダ104はこれを顧客102に返す。しかしながら、暗号化が図1及び本明細書の他の場所で使用されているが、別の暗号処理が要求され、続いて実行されてもよいことに留意されたい。このような処理には、例えば、暗号化されたデータの復号化、電子署名の生成及び電子署名の検証、ならびに電子証明書の真正性の検証といった関連処理が含まれる。
図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号においてより詳しく説明されるような暗号サービスであり得、これらの特許内容は、参照により本明細書に取り込まれるものとする。
サービス208は、サービスフロントエンド210と、サービスフロントエンド210から認可された要求を受信するように構成され、かつこのような要求を履行するために処理を行うように構成されるサービスのコンポーネントであり得るサービスバックエンド214とを備え得る。当事者202は、コンピューティングリソースサービスプロバイダ206により提供されるサービス208へのアクセス要求(及び/またはサービス208に関連するリソースへのアクセス要求)を発行し得る。要求は、例えば、ウェブサービスのアプリケーションプログラミングインタフェース要求であり得る。当事者は、ユーザ、またはユーザグループ、またはユーザグループに対応付けられた役割、またはこれらのエンティティのうちの1つまたは複数を代表し、1つまたは複数の遠隔(コンピューティングリソースサービスプロバイダ206に対し遠隔)コンピュータシステム上で実行中であり得るプロセスであり得る、あるいはその他のこのようなコンピュータシステムエンティティ、ユーザまたはプロセスであり得る。一般に、当事者は、コンピューティングリソースサービスプロバイダにより管理される識別に対応するエンティティであり、コンピューティングリソースサービスプロバイダは、識別の許可を管理する。
当事者202は、ポリシー管理サービスまたは別のサービスによる等、コンピューティングリソースサービスプロバイダ206により管理される識別に対応し得る。識別は、コンピューティングリソースサービスプロバイダの顧客のアカウントのために管理される多数の識別のうちの1つであり得、コンピューティングリソースサービスプロバイダは、多数の顧客のアカウントを管理し得る。当事者202は人に相当し得るが、このような人は、当事者202のために処理(例えば要求の生成及び送信)を行い得る好適に構成されたコンピューティングデバイスを通して、コンピューティングリソースサービスプロバイダ206と通信し得ることに留意されたい。当事者202は、1つまたは複数の接続(例えば伝送制御プロトコル(TCP)接続)を介して、コンピューティングリソースサービスプロバイダ206と通信し得る。当事者202は、コンピュータシステムクライアントデバイスを使用して、コンピューティングリソースサービスプロバイダ206と接続し得る。クライアントデバイスには、後述される例示的デバイス等、ネットワークを介してコンピュータシステムと接続可能な任意のデバイスが含まれ得る。ネットワーク204には、例えば、インターネット、または後述されるネットワークのうちの別のネットワーク、もしくはそれらの組み合わせが含まれ得る。
コンピューティングリソースサービスプロバイダ206は、サービス208を通して、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースのデータベースストレージシステム、ブロックストレージシステム、冗長データストレージサービス、データアーカイブサービス、データウェアハウスサービス、ユーザアクセス管理サービス、識別管理サービス、コンテンツ管理サービス、及び/または他のこのようなコンピュータシステムサービス等、1つまたは複数のコンピューティングリソースへのアクセスを提供し得る。他の例示的リソースは、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むが、これに限定されない。いくつかの実施例において、コンピュータサービスに関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組み合わせ、あるいは他のこのようなデバイス実施形態であり得る。このようなサービス及びリソースは、例示目的で提供され、本開示の実施形態は、他のサービス及び/またはリソースを使用してもよいことに留意されたい。
いくつかの実施例において、ウェブサービスアプリケーションプログラミングインタフェース要求(簡潔にウェブサービス要求とも称される)であるサービス208へのアクセス要求は、いくつかの実施例において、このような要求を受信し、かつサービス208に対応付けられた1つまたは複数のポリシーに従ってそれらを処理するように構成されるウェブサーバを備えるサービスフロントエンド210により受信され得る。サービス208へのアクセス要求は、電子署名された要求であり得、その結果、電子署名と共に提供され得る。サービスフロントエンド210はそれから、検証のため要求及び電子署名を、認証サービス216へ送信し得る。認証サービス216は、スタンドアロンサービスであり得る、あるいはサービスプロバイダまたは他のエンティティの一部であり得る。認証サービス216は、実施形態において、当事者の認証に関わる処理を行うように構成されるコンピュータシステムである。いくつかの実施例において、サービスフロントエンド210に提出される要求は、当事者202と認証サービス216との間で共有される対称暗号キーを使用して、当事者により(すなわち当事者により使用される、または当事者のために作動するコンピューティングデバイスにより)電子署名されている。認証サービスは従って、対称暗号キーの複製を使用して、当事者202により生成されたと称される要求の電子署名を検証し得る。しかしながら、別の実施形態において、認証サービス216は、例えば、当事者が秘密暗号キーを使用して要求を電子署名した場合等、電子署名の検証に非対称暗号法を用いるように構成され得る。このような実施形態において、認証サービスは、秘密暗号キーに対応する当事者202の証明書を電子署名した認証局を信頼するように構成され得る。その結果、いくつかの実施形態において、認証サービスは、証明書により指定された公開暗号キーを使用し得る。一般に、認証サービスは、当事者202に対応付けられた認証サービス216に登録された暗号キーを使用し得る。
要求が問題なく認証されると、認証サービス216はそれから、要求に適用可能なポリシーを取得し得る。ポリシー(アクセス制御ポリシーとも称される)は、ユーザ、グループ、役割、組織、企業、またはその他のこのようなエンティティに対応付けられた許可集合である。各許可は、コンピューティングリソースに対応付けられ、エンティティ(本明細書において「当事者」とも称される)がそのリソースにアクセスしてもよいか否か、どのような条件でアクセスは許可または拒否され得るか、及び/またはどのような種類のアクセスが許可または拒否され得るかを指定し得る。例えば、許可は、「USER1」という名のユーザが識別子「12345」で示されるあるデータストレージデバイスにアクセス可能であると指定し得る。より詳しい許可は、USER1が、リソース12345から読み出しのみ可能であり、リソース12345へ書き込み不可であると指定し得る。さらにより詳しい許可は、USER1が、リソース12345からいつでも読み出し可能であるが、午前9時00分〜午前9時30分の間の時間だけリソース12345へ書き込み可能であると指定し得る。例えばUSER1が、リソース12345を含み得るデータストレージデバイスの集合へアクセス可能であるように、許可はまた、リソースのクラスまたは集合に対応付けられ得る。アクセス制御ポリシーは、ポリシー管理サービスにより、ポリシー文書、データベース内のレコード、アクセス制御リスト(ACL)、またはその他として保持され得る。サービス(例えばサービス208)はまた、ポリシー管理サービスに加えて、または代わって、自身のポリシーを保持し得る。
ポリシーは、当事者202、要求の履行の一部としてアクセスされるリソース、当事者202が含まれるグループ、当事者202が担う役割、及び/またはその他に対応付けられているということにより、要求に適用可能となり得る。要求に適用可能なポリシーを取得するために、認証サービス216は、図1に関連して前述されたポリシー管理サービスであり得るポリシー管理サービス220により管理されるポリシーレポジトリ218に対し、クエリを送信し得る。クエリは、要求に適用可能なポリシー集合を特定するのに十分な情報を含む要求であり得る。クエリは、例えば、要求の複製を含み、ならびに/または当業者、リソース、及び/もしくは動作(要求の履行の一部として行われる処理)を特定する情報といった要求内の情報に少なくとも部分的に基づいたパラメータを含み得る。データベースまたはクエリを処理するよう作動可能な他のシステムであり得るポリシーレポジトリは、要求に適用可能な全てのポリシーを提供することで、クエリを処理し得る。要求の認証がうまくいかなかった場合(例えば電子署名が証明不可能であったため)、要求に適用可能なポリシーは取得され得ないことに留意されたい。
要求に適用可能な全てのポリシーを取得すると、認証サービス216は認証応答を提供し、適用可能である場合(例えば肯定的な認証応答である場合)、取得されたポリシーは、サービスフロントエンド210へ戻る。認証応答は、応答が認証成功である否かを示し得る。サービスフロントエンド210はそれから、認可モジュール212を使用して、サービス208へのアクセス要求の履行が、取得されたポリシーに準拠するか否かを確認し得る。
認可モジュール212は、サービスが要求を満たすことが認可されるか否か(すなわち要求の履行が認可されるか否か)を特定するために、要求をポリシー内の1つまたは複数の許可と比較するよう作動可能な、サービスフロントエンド上で実行されるプロセスであり得る。例えば、認可モジュールは、要求が許可されるかどうかを特定するために、要求に対応付けられたAPIコールを、ポリシーにより指定される許可されたAPIコールと、比較し得る。認可モジュール212が要求を、ポリシーにより指定される許可と一致することが不可能な場合、認可モジュール212は、例えば、サービスフロントエンドに要求を拒否させるメッセージをサービスフロントエンドに対し提供し、かつ拒否された要求はポリシー管理サービス220内にログが取られるようにするといった、1つまたは複数のデフォルトの動作を実行し得る。認可を通して要求が、ポリシーにより指定される1つまたは複数の許可と一致する場合、認可モジュール212はこれを、最も制約の少ない回答(ポリシーにより定義される)を選択することにより、かつ選択された回答に基づいて、要求の履行が認可されるか否か(すなわち適用可能なポリシーに準拠する否か)をサービスフロントエンドに知らせることにより、解消し得る。認可モジュール212はまた、最も制約の多い回答を選択し、またはその他のこのような回答を選択し、選択された回答に基づいて要求の履行が認可されるか否かを、サービスフロントエンドに知らせ得る。図2は認可モジュール212をサービスフロントエンド210のコンポーネントとして示すが、いくつかの実施形態において、認可モジュール212は、コンピューティングリソースサービスプロバイダ206により提供される独立したサービスであり、フロントエンドサービスは、認可モジュール212とネットワークを介して通信し得ることに留意されたい。
実施形態において、サービスバックエンド214は、前述のような、ハードウェアセキュリティモジュール222または他のセキュリティモジュールの集合体を含む。サービスフロントエンド210が受信した、ハードウェアセキュリティモジュールによる暗号処理の実行を求める要求を処理するために、サービスフロントエンド210は、実行する処理、暗号処理を実行するために使用する暗号キー、及び適用可能であれば暗号処理が実行されるべき対象データ(例えば平文または暗号文)を指定する要求を、ハードウェアセキュリティモジュールに送信し得る。フロントエンド210は、処理を行うためにハードウェアセキュリティモジュールを選択し得る、あるいは別のコンポーネント(例えば負荷分散装置)が選択を行い得る。暗号処理の実行結果は、結果がそれぞれの要求に応じて提供され得るように、処理を行ったハードウェアセキュリティモジュールからサービスフロントエンド210に提供され得る。
実施形態において、コンピューティングリソースサービスプロバイダ206は、データストレージサービスにデータストレージ処理(例えばデータオブジェクトの記憶及び検索)を行わせるAPIを提供するコンピュータシステムであり得るデータストレージサービス206を含む。サービスフロントエンド210は、ハードウェアセキュリティモジュール222内に保持されるドメインキーにより暗号化された暗号キー(例えばホスト型顧客キー)を記憶するデータストレージサービスと通信し得る。例えば、フロントエンド210により受信された要求が顧客キーの使用を要する場合、フロントエンド210はデータストレージサービス224に対し、顧客キー(ドメインキーの下暗号化された顧客キー)を取得するよう要求を提出し得る。フロントエンド210は、暗号化された顧客キーを受信し、復号化及び暗号処理の実行のために、ハードウェアセキュリティモジュールに暗号化された顧客キーを提供し得る。同様に、ハードウェアセキュリティモジュールが新たな顧客キーを生成する(すなわち顧客キーを暗号化するドメインキーを循環する)時、ハードウェアセキュリティモジュールは、ドメインキーを使用して顧客キーを暗号化し、暗号化された顧客キーをフロントエンド210へ提供し、今度はフロントエンド210が、暗号化された顧客キーと共に要求を持続的記憶のためにデータストレージサービス224へ送信し得る。
図2はコンピューティングリソースサービスプロバイダの分散システムの特定の構成を示すが、他の構成も本開示の範囲内であるとみなされることに留意されたい。例えば、認証及び認可決定は、分散システムの別のコンポーネント(例えばサービスフロントエンド210)により行われてもよい。別の実施例として、1つまたは複数のハードウェアセキュリティモジュールまたは暗号材料のハードウェア保護を提供する他のデバイスは、別のサービスプロバイダまたは顧客自身といった、コンピューティングリソースサービスプロバイダ206とは異なるエンティティによりホストされてもよい。このようなハードウェアセキュリティモジュールに暗号処理を行わせるために、サービスバックエンド214内のサーバは、ネットワークを介して(例えばインターネット、あるいはハードウェアセキュリティモジュールがサービスバックエンド214と同じデータセンタ内にホストされる場合は内部ネットワークを介して)メッセージを送信し得る。ハードウェアセキュリティモジュールをホストするエンティティが、暗号処理の実行を認可された要求と認可されなかった要求とを区別可能にするために、このようなメッセージは認証され得る。別の実施例において、ハードウェアセキュリティモジュール222は、同じコンピューティングリソースサービスプロバイダ206の独立したサービスによりホストされる。例えば、サービス208は、暗号処理の結果を利用するサービス(例えば仮想データストレージデバイスまたは他のサービス)を提供し得る。このような実施例において、相互サービスAPIコールがあるサービスから別のサービスへ送信され、別のサービスに、ハードウェアセキュリティモジュールを使用して暗号処理を行わせ得る。このようなコールは、例えば、あるサービスにより、顧客からの要求を履行するために行われるプロビジョニングまたは他のワークフローに従って行われ得る。
図3は、実施形態による、エクスポートドメインキーの集合を保持するために使用され得るデータ構造300の実施例を示す。図3の実施例において、データ構造300はテーブルであるが、他のデータ構造も本開示の範囲内であるとみなされる。図3において例示されるように、データ構造300は、3つの列を含み、各列は、それぞれのエクスポートドメインキーに関する異なる情報に対応する。第1列302は、エクスポートドメインキーの識別子を記録するために使用される。暗号キーを暗号化するのに使用されるエクスポートドメインキーが追跡可能となるように、識別子は、エクスポートドメインキーの参照番号として機能する。例えば、エクスポートキートークンは、エクスポートキートークン内の暗号キーを暗号化するのに使用されたエクスポートドメインキーの識別子を含み得る。このようにエクスポートキートークンが別の時に提供される場合、エクスポートキートークン内の暗号化された暗号キーを復号化するために適切なエクスポートドメインキーが識別され(例えば複数のエクスポートドメインキーから選択され)、アクセスされ得る。この特定の実施例において、エクスポートドメインキーの識別子は、シーケンス番号である。しかしながら、他の種類の識別子を使用してもよいことに留意されたい。
データ構造300の第2列304は、それぞれのエクスポートドメインキーの有効期限に対応する。前記のように、エクスポートドメインキーが破棄され、よってエクスポートキートークン内で暗号化された顧客キーにアクセスする機構としてエクスポートキートークンが使用不可能となるまでの指定された時間の間にエクスポートキートークンが使用可能であるように、暗号サービスは、それぞれが異なる有効期限を有する多数のエクスポートドメインキーへ、いずれの時点でもアクセス可能であり得る。図3の実施例において、データ構造300の第2列304内の各エントリは、24時間異なる有効期限を有する。このように、データ構造300は、24時間異なるエクスポートドメインキーの有効期限を記録する。しかしながら、24時間異なる有効期限は例示であり、他の有効期限を使用してもよいことに留意されたい。例えば、連続した有効期限は、24時間より短い時間、または24時間より長い時間異なっていてもよく、連続した有効期限の時間差は必ずしも統一していない。
各エクスポートドメインキーの各有効期限は、有効期限に従って特定される時間に、ドメインキーへこれまでアクセス可能だった全てのセキュリティモジュールがエクスポートドメインキーにアクセス不可能と(例えば永続的にそのように)なることを引き起こす自動化プロセスの少なくとも1つのインスタンスにより施行され得ることに留意されたい。例えば、セキュリティモジュールの集合体内の各セキュリティモジュールは、ドメインキーの有効期限が切れるとドメインキーを回復不可能に削除する自動化プロセスのインスタンスを実行し得る。自動化プロセスのコードの完全性の遠隔証明または他の暗号証明は、ドメインキーへのアクセスが提供される前に、独立して検証(例えば別のセキュリティモジュールまたは他のコンピューティングデバイスにより)されなければならないように、セキュリティモジュールは構成され得る。セキュリティモジュールはまた、改ざんが起きるとセキュリティモジュールがドメインキーへのアクセスを失うことを引き起こす改ざん対策機構と共に構成され、また、モジュールへの電力を取り除くことによりセキュリティモジュールがドメインキーへのアクセスを失うことを引き起こすように構成され得る(例えばドメインキーのストレージは揮発性メモリに限定されるため)。有効期限の施行は、別のデバイスにより実行される自動化プロセスにより行われ得ることに留意されたい。このような実施例において、自動化プロセスを実行するデバイスは、ドメインキーの有効期限に従ってドメインキーを破棄するために(例えば破棄する特定のドメインキーを同定する命令により)、セキュリティモジュールへ命令を送信し得る。このような自動化プロセスは、セキュリティモジュールがドメインキーを破棄する命令を履行しない場合に、通知の送信または他の処理を含み得る。
データ構造300内の第3列306は、それぞれのエクスポートドメインキー識別子及び同じ行の有効期限に対応するエクスポートドメインキー用である。実施例として、データ構造300の第1データ包含行において、第3列306内のエントリに記憶されるエクスポートドメインキーは、31415926のエクスポートドメインキー識別子を有し、2015年3月24日午前12時00分の有効期限を有する。
データ構造300等のデータ構造を使用することで、顧客またはその他により指定されるエクスポートキートークンの有効期間が可能となるエクスポートドメインキーが選択され得る。例えば、顧客は、30日の有効期間を有する暗号キーを要求し得る。データ構造300は、30日の有効期間を可能とする有効期限を有するエクスポートドメインキーの場所を特定するために使用され得る。エクスポートドメインキーには、要求される有効期間以下である最長有効期間を有するエクスポートドメインキー、または代替実施形態において、要求される有効期間以上である最短有効期間を有するエクスポートドメインキーが選択され得る。いくつかの実施例において、エクスポートドメインキーに、要求される有効期間以下である最長有効期間を有するエクスポートドメインキーが選択されるか、または要求される有効期間以上である最短有効期間を有するエクスポートドメインキーが選択されるかは、構成可能な設定であり、これはエクスポートキートークン要求のパラメータにおいて選択可能であり得る。
図3に示されるデータ構造300は、例示目的で提供され、多数が本開示の範囲内であるとみなされることに留意されたい。例えば、図3は、特定の順序で記憶された特定の種類の情報を示す。異なる種類の情報及び異なる順序も、本開示の範囲内であるとみなされる。別の実施例として、図3は、エクスポートドメインキーごとに、有効期限値及びエクスポートドメインキー識別子のストレージを示す。代替実施形態において、エクスポートドメインキーの有効期限はエクスポートドメインキー識別子として使用され、従ってエクスポートドメインキー識別子の列は省略され得る。他の変形も、本開示の範囲内であるとみなされる。
図4は、様々な実施形態による、例示的エクスポートキートークン402の図解400を示す。図4に例示されるように、エクスポートキートークン402は、様々なコンポーネントを含む。例えば、実施形態において、エクスポートキートークン402は顧客キーに対応し、顧客キーを特定するために、エクスポートキートークン402は、顧客キーの識別子集合を含み得ることがわかる。当実施例において、エクスポートキートークン402は、内部顧客キー識別子404と、外部キー識別子406とを含む。内部顧客キー識別子404は、顧客により使用される顧客キーの識別子であり得る。同様に、外部顧客キー識別子406は、エクスポートキートークン402を生成したサービスプロバイダにより使用される顧客キーの識別子として機能し得る。例示的実施形態において、サービスプロバイダに対する顧客からの顧客キーの要求には、パラメータとして、顧客が自身のコンピュータシステムの内部で顧客キーに使用する内部顧客キー識別子404が含まれ得る。外部顧客キー識別子406は、ポリシー及び他のアクセス制御機構の顧客キーとの対応付けを可能にするため等、サービスプロバイダによる使用のために、サービスプロバイダにより生成され得る。しかしながら、顧客が内部顧客キー識別子を指定しない時、またはこのような識別子への対応が提供されない時等、エクスポートキートークン402には内部顧客キー識別子404があり得ないことに留意されたい。いくつかの実施例において、外部顧客キー識別子406は、内部顧客キー識別子として機能し、このような実施例において、外部顧客キー識別子406は繰り返し使用され得る、あるいはエクスポートキートークン402の1つの構成要素が外部顧客キー識別子406になり得る。
さらに、図4に例示されるように、実施形態において、エクスポートキートークン402は、エクスポートドメインキーの下で暗号化された顧客キーの暗号化された複製408を含む。従って、エクスポートキートークン402の顧客キーを暗号化するために使用された特定のエクスポートドメインキーの識別を可能にするために、エクスポートキートークン402は、エクスポートドメインキー識別子410を含み得る。このように、サービスプロバイダがエクスポートキートークン402を受信すると、サービスプロバイダは、エクスポートキートークン402内の顧客キーの暗号化された複製408を復号化する適切なエクスポートドメインキーを取得するために、エクスポートドメインキー識別子410を使用可能である。
他の情報もエクスポートキートークン402に含まれ得る。例えば、顧客キーの暗号化に使用された非初期化ベクトルまたは他の情報がエクスポートキートークン402に含まれ得るが、このような情報は図に例示されない。別の実施例として、エクスポートキートークン402は、エクスポートキートークン402に含まれる情報の電子署名を含み得る。電子署名は、エクスポートキートークン402の完全性の検証を可能にし得る。電子署名は、例えば、外部顧客キー識別子406、及びエクスポートドメインキー識別子410、及び/または顧客キーの暗号化された複製408を含む他の情報が、意図せず、または悪意を持って変更されていないことを検証するために、使用され得る。サービスプロバイダにより秘密に保持される秘密暗号キー、またはサービスプロバイダにより秘密に保持される対称暗号キー等、サービスプロバイダがアクセス可能な暗号キーを使用して、電子署名は生成され得る。一般に、エクスポートキートークン402の一部または全ての完全性を検証するためにサービスプロバイダにより使用可能な全ての認証情報が使用され得る。
前記のように、暗号サービスにより、顧客がエクスポートキートークンを要求することが可能になり得る。図5は従って、実施形態による、エクスポートキートークン要求を処理するプロセス500の実施例を示す。プロセス500は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。プロセス500の実行に伴う様々な処理の実行は、下記により詳しく説明されるように、暗号サービスの異なるコンポーネントにより生じ得る。実施形態において、プロセス500は、エクスポートキートークン要求を受信すること(502)を含む。要求(502)は、例えば、プロセス500を実行するシステムを有するサービスプロバイダの顧客のコンピューティングデバイスから受信されるウェブサービス要求であり得る。要求は、ウェブサーバ等の暗号サービスの好適なコンポーネントにより受信され得る(502)。
受信した要求(502)を処理するために、暗号サービスのウェブサーバまたは別のコンポーネントは、要求が真正であるか否かを判定し得る(504)。要求が真正であるか否かの判定(504)は、様々な実施形態による様々な方法で実行され得る。いくつかの実施例において、要求は、暗号的に検証可能であるように、電子署名される。従って、要求が真正であるか否かの判定(504)は、受信した要求(502)の電子署名を検証することを含み得る。例えば、顧客とサービスプロバイダとの間で秘密に共有される対称暗号キーを使用して生成される対称電子署名は、公開暗号キーに対応する秘密暗号キーであり得、公開暗号キーは、秘密暗号キーに対応する電子証明書等において、要求と共に提供あるいは指定される。図2に関連して前述されたように、電子署名を検証するために、認証サービスが使用され得る。別の実施例として、トランスポート層セキュリティ(TLS)セッション等、暗号で保護された通信セッションを介して、要求は受信される(502)。セッションの確立には、ある種の認証が必要であり得たため、従って暗号で保護された通信セッションを介して要求が受信された(502)という事実は、要求の真正性を示す。一般に、要求の真正性の検証は、要求が、要求に対応付けられたエンティティにより提出されたことを検証するために、認証情報を使用して行われ得る。
要求が真正ではないと判定された場合(504)(すなわち要求の真正性が検証不可能である場合)、プロセス500は要求を拒否すること(506)を含み得る。様々な実施形態による様々な方法で、要求は拒否され得る。いくつかの実施例において、例えば、拒否を示す要求応答が提供される。別の実施例として、何も動作は行われ得ず、要求はタイムアウトさせられ得る。要求の拒否(506)に関連して他の動作も行われてもよく、このような動作は、プロセス500を実行するシステムの具体的な実施態様に依拠し得る。
要求が真正であると判定された場合(504)、プロセス500は、暗号サービスのウェブサーバまたは他のコンポーネントにより、要求の履行が認可されるか否かを判定すること(508)を含み得る。要求の履行が認可されるか否かの判定は、様々な実施形態による様々な方法で実行され得る。前述の図2を参照すると、要求の履行が認可されるか否かの判定(508)は、要求に適用可能な全てのポリシーが要求の履行を許可するか否かを検証することを含み得る。一般に、サービスプロバイダは、要求の履行を制御する条件を保持し、要求の履行が認可されるか否かの検証(508)は、このような条件が要求の履行を許可するか否かを検証することを含み得る。
要求の履行が認可されないと判定された場合(508)、プロセス500は、前述のように要求を拒否すること(506)を含み得る。例えば、要求を受信した(502)ウェブサーバは、要求が生じた元であると指定されるアドレス宛てに、メッセージを送信し得る。要求の履行が認可されると判定された場合(508)、プロセス500を実行するシステムは、要求を履行するための処理集合を実行し得る。当実施例において、プロセス500は、受信した要求(502)において指定される有効期間に合う有効期限を有するエクスポートドメインキーを選択すること(510)を含む。ウェブサーバまたはセキュリティモジュールが、エクスポートドメインキーを選択し得る。有効期間は、例えば要求のパラメータとして指定され得る、あるいは別の方法で、例えばデフォルトで指定され得る。プロセス500はまた、顧客キーを生成すること(512)を含み得る。プロセス500を実行するシステムのウェブサーバまたは他のコンポーネントは、例えば、セキュリティモジュールに顧客キーを生成させる(512)指示をセキュリティモジュールへ送信し得る。セキュリティモジュールは、例えば擬似乱数発生器または他の機構(例えば少なくとも一部が秘密に保持される情報に適用されるキー導出関数)を使用して、顧客キーを生成し得る(512)。図5は、顧客キーの生成(512)をプロセス500の一部として示しているが、顧客キー生成は、プロセス500と非同期的に行われてもよいことに留意されたい。例えば、顧客キーは事前に生成され、事前に生成された顧客キーが取得されてもよい。別の実施例において、エクスポートキートークン要求は、エクスポートキートークン内で暗号化される顧客キーの複製を含む。
顧客キーが一旦生成されると(512)、顧客キーを生成した(512)セキュリティモジュールは、選択したエクスポートドメインキーを使用して生成した顧客キーを暗号化し得る(514)。セキュリティモジュールは、例えば、選択したエクスポートドメインキーにメモリからアクセスし、生成した顧客キー及び選択したエクスポートドメインキーを暗号アルゴリズムへ投入し、これにより生成した顧客キーの暗号化された複製がもたらされる。生成した顧客キーの暗号化された複製が一旦取得されると、プロセス500を実行するシステムは、暗号化された顧客キーを有するエクスポートキートークンを生成し得る(516)。
エクスポートキートークンが生成される(516)方法は、様々な実施形態により変わり得る。いくつかの実施例において、顧客キーを生成及び暗号化したセキュリティモジュールは、さらにエクスポートキートークンを生成し得る(516)。また別の実施例において、セキュリティモジュールは、暗号化された顧客キーの複製を、プロセス500を実行するシステムのウェブサーバといった別のサーバへ提供し、これによりサーバは暗号化された顧客キーの複製を使用してエクスポートキートークンを生成し得る(516)。どのように生成されるか(516)に関わらず、エクスポートキートークンは要求を受信した(502)ウェブサーバにより取得され、ウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る(518)。
生成されたエクスポートキートークンが一旦提供されると(518)、またはエクスポートキートークンが生成された(516)後の時点で、プロセス500を実行するシステムは、顧客キーへのアクセスを失い得る(520)。顧客キーの一部または全てを記憶するメモリ位置をゼロランダムデータまたは非ランダムデータ等の異なるデータで上書きすることにより、あるいは顧客キーの一部または全てが記憶されるメモリを、プロセス500を実行するシステムが引き続き作動するに伴い他のデータで最終的に上書きされるように再割り当てすること等により、様々な実施形態による様々な方法で、アクセスは失われ得る。前記のように、顧客キーが取得可能な他の情報(例えばエクスポートキートークンの全ての複製)に対するアクセスは失われ得る。このようにある時点で、サービスプロバイダは顧客キーへのアクセスを失くし、これにより、万一サービスプロバイダで深刻なセキュリティ違反が起こっても、顧客キーへのアクセスは顧客により制御される。例えば、サービスプロバイダは、顧客が後続の要求またはその他でエクスポートキートークンを提供しない限り、顧客キーへアクセス不可能である。
前記のように、サービスプロバイダの顧客は、サービスプロバイダに、エクスポートキートークン内で暗号化された暗号キーを使用して暗号処理を行わせるために、サービスプロバイダに対しエクスポートキートークンを提供し返すことが可能である。図6は、エクスポートキートークンを使用して暗号処理を実行する要求を処理するプロセス600の実施例を示す。プロセス600は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。下記においてより詳しく記されるように、暗号サービスの異なるコンポーネントは、異なる処理を行い得る。実施形態において、プロセス600は、エクスポートキートークンを使用して1つまたは複数の暗号処理を実行する要求を受信すること(600)を含む。要求は、例えば、要求のパラメータとしてエクスポートキートークンを含み得る。顧客から受信する全ての要求と同様に、要求は、プロセス600を実行する暗号サービスのサービスフロントエンドのウェブサーバにより受信され得る(602)。図5に関連して前述されたように、プロセス600を実行するシステムは、図2に関連して前述されたように要求が真正であるか否かを判定し得る(604)。要求が真正ではないと判定された場合(604)(すなわち要求の真正性が検証不可能である場合)、前述のように要求は拒否され得る(606)。しかしながら、要求が真正であると判定された場合(604)、プロセス600は、要求の履行が認可されるか否かを判定すること(608)を含み得る。要求の履行が認可されないと判定された場合(608)、または一般に要求が認可されると判定不可能である場合、プロセス600を実行するシステムは、前述のように要求を拒否し得る(606)。
しかしながら、要求の履行が認可されると判定された場合(608)、プロセス600を実行するシステムは、エクスポートドメインキーが利用可能であるか否かを判定し得る(610)。前記のように、顧客キーは、有効期限を有するエクスポートドメインキーを使用して、エクスポートキートークンのために暗号化され得る。エクスポートドメインキーの有効期限が切れると、暗号サービスは、暗号サービス及び一般にサービスプロバイダがエクスポートドメインキーへのアクセスを失うことを引き起こし得る処理集合を実行し得る。従って、エクスポートキートークンを使用して1つまたは複数の暗号処理を実行する要求が受信されると、エクスポートキートークン内の顧客キーを暗号化するのに使用されたエクスポートドメインキーの有効期限は切れたか否か、その結果サービスプロバイダはエクスポートドメインキーへのアクセスを失ったか否かによって、要求は履行可能であり得る、またはあり得ない。エクスポートドメインキーが利用可能であるか否かの判定(610)は、様々な実施形態による様々な方法で実行され得る。いくつかの実施例において、ウェブサーバは、エクスポートキートークン内のエクスポートドメインキーの識別子を使用して、有効なエクスポートドメインキーのリストまたは他のデータ構造内に当識別子が存在するか否かを確認する。このような処理も、セキュリティモジュールにより行われ得る。
例えばエクスポートドメインキーの有効期限が切れて、その結果サービスプロバイダはエクスポートドメインキーへのアクセスを失ったことから、エクスポートドメインキーは利用可能ではないと判定された場合(610)、プロセス600を実行するシステムは、前述のように要求を拒否し得る(606)。しかしながら、プロセス600を実行するシステムが、特にエクスポートドメインキーが利用可能か否かを判定する(610)当システムの部分が、エクスポートドメインキーは利用可能であると判定した場合、プロセス600を実行するシステムは、エクスポートキートークン内で特定されるエクスポートドメインキーを選択し得る(612)。エクスポートキートークンを記憶するセキュリティモジュールにより要求を受信した(602)ウェブサーバ、またはその他により、選択は行われ得る。エクスポートドメインキーは、選択されると(612)、顧客キーを復号化されるために使用され得る(614)。プロセス600を実行するシステムのセキュリティモジュールは、選択されたエクスポートドメインキーを使用して顧客キーを復号化する(614)システムのコンポーネントであり得る。
選択されたエクスポートドメインキーを使用して顧客キーを復号化する(614)システムのコンポーネントが復号化した顧客キーへのアクセスを一旦有すると、そのコンポーネントは、復号化した顧客キーを使用して、要求された1つまたは複数の暗号処理を実行し得る(616)。例えば、暗号サービスのセキュリティモジュールは、復号化した顧客キーを使用して、要求内に含まれる、またはデータの取得を可能にするために要求内で言及されること等により、要求内に含まれる、または指定されるデータを、暗号化または復号化し得る。上記のように、暗号化及び/または復号化の代わりに、暗号化及び/または復号化に加えて、他の暗号処理が行われ得る。例えば、電子署名が生成されたと称される対象データと共に電子署名は要求に含まれ、1つまたは複数の暗号処理は、電子署名を検証することを含み得る。他の動作は、電子証明書が信頼できるか否かを判定することと、電子証明書を使用して1つまたは複数の暗号処理を実行することとを含み得る。
受信した要求(602)の履行のために1つまたは複数の暗号処理を実行すると(616)、1つまたは複数の暗号処理の実行の1つまたは複数の結果を含む要求応答が生成され、要求に応えて提供され得る(618)。例えば、セキュリティモジュールは、1つまたは複数の暗号処理の1つまたは複数の結果を、プロセス600を実行するシステムの要求を受信した(602)ウェブサーバに対し提供し得る。要求が生じた元であるネットワーク宛先として要求内に特定されるネットワーク宛先(例えばインターネットプロトコル(IP)アドレス)へ、応答は提供され得る。
一旦、復号化された顧客キーを使用して1つまたは複数の暗号処理が実行され、復号化された顧客キーがプロセス600を実行するシステムにはもう必要なくなると、プロセス600を実行するシステムは、前述のように、システムが顧客キーへのアクセスを失うことを引き起こす処理集合を行うことで、顧客キーへのアクセスを失い得る(620)。
前述のように、暗号サービスにより使用されるエクスポートドメインキーは、様々な時点で循環され得る。図7は、エクスポートドメインキーの集合を保持し、エクスポートドメインキーの循環規則を施行するプロセス700の実施例を示す。プロセス700は、任意の好適なシステムにより、例えば暗号サービス内の各セキュリティモジュール等により、あるいは暗号サービス内のキー循環規則を施行する役割を担うコンピュータシステム等の他のコンピュータシステムにおいて、実行され得る。実施形態において、プロセス700は、エクスポートドメインキー循環トリガーを検出すること(702)を含む。エクスポートドメインキー循環トリガーは、発生するとプロセス700の追加処理が実行されるイベントであり得る。いくつかの実施例において、エクスポートドメインキー循環トリガーは、クロックがある値に達することである。別の実施例において、トリガーは、別のコンピュータシステムから命令を受信することであり得る。様々な実施形態により、他のトリガーも使用され得る。例えば、暗号処理においてエクスポートドメインキーが使用された回数を数える、または見積もるカウンタは、回数が閾値を超えると、トリガーとなり得る。他のトリガーも、本開示の範囲内であるとみなされる。
エクスポートドメインキー循環トリガーを検出すると(702)、プロセス704を実行するシステムは、有効期限の切れたエクスポートドメインキーの集合を選択し得る(704)。有効期限の切れた全てのエクスポートドメインキーを特定するために、図3に関連して前述されたデータ構造等のデータ構造、またはその変形が参照され得る。有効期限の切れたエクスポートドメインキーの集合が一旦選択されると(704)、プロセス700を実行するシステムは、全ての有効期限の切れたエクスポートドメインキーへのアクセス喪失を引き起こし得る(706)。全ての有効期限の切れたエクスポートドメインキーへのアクセス喪失が引き起こされる(706)方法は、様々な実施形態により変わり得る。いくつかの実施例において、有効期限の切れたエクスポートドメインキーを記憶するために、1つまたは複数のメモリ位置が使用される。有効期限の切れたエクスポートドメインキーを記憶する1つまたは複数のメモリ位置は、ランダムまたは非ランダムデータで上書きされ得る。別の実施例として、このようなメモリは、メモリを使用するその他のプロセスにより当メモリが上書き可能なように、割り当てを取り消され得る。よって特定の時間の経過後(例えば1時間または1日)、当1つまたは複数のメモリ位置が上書きされる可能性は高い。一般に、有効期限の切れたエクスポートドメインキーへのアクセスが喪失され得るいずれの方法も、本開示の範囲内であるとみなされる。
図7に例示されるように、プロセス700はまた、有効期限の切れたエクスポートドメインキーの集合を置き換える置換エクスポートドメインキーの集合を生成すること(708)を含む。置換エクスポートドメインキーは、様々な実施形態による様々な方法で生成され得る。いくつかの実施例において、置換エクスポートドメインキーは、擬似乱数発生器を使用して生成される。置換エクスポートドメインキーを生成する別の方法は、キー導出関数の使用及び/または他の処理を含む。一般に、暗号キーが生成され得るいずれの方法も、本開示の範囲内であるとみなされる。
置換エクスポートドメインキーに達する識別子が特定され得る(710)。置換エクスポートドメインキーの識別子を特定する方法は、様々な実施態様により変わり得る。例えば、いくつかの例において、エクスポートドメインキーの識別子はシーケンス値であり、識別子には、使用されるシーケンスにおいて次の未使用のシーケンス値が選択され得る。シーケンスは、例えば、整数シーケンスであり得る。各置換エクスポートドメインキーの有効期限も、決定され得る(712)。様々な実施形態による様々な方法で、有効期限は決定され得る(712)。実施例として、置き換えられているエクスポートドメインキーの有効期限に、指定される時間が追加され得る。指定される時間は、例えば365日であり得るが、他の時間も本開示の範囲内であるとみなされる。
生成された全ての置換エクスポートドメインキー(708)がそれぞれの識別子及び有効期限を一旦有すると、生成された置換エクスポートドメインキーの集合(708)は、識別子及び有効期限と対応付けられた状態で記憶され得る。図3の実施例を参照すると、例えば、生成された置換エクスポートドメインキーごとに、データ構造300に行が追加され得る。一般に、置換エクスポートドメインキーがそれらの識別子及び/または有効期限と直接的または間接的に対応付けられた状態で記憶され得るいずれかの方法が、使用され得る。
前述のように、本開示の様々な実施形態において、暗号サービスにより、顧客は、ホスト型暗号キーと、サービスプロバイダがアクセスを失うエクスポートキートークン内で暗号化された顧客キーとを、柔軟に使用することが可能となり得る。図8は、このような暗号サービスにより受信される要求を履行するプロセス800の実施例を示す。プロセス800は、前述の暗号サービスによる等、任意の好適なシステムにより実行され得る。暗号サービスの異なるコンポーネントは、プロセス800の異なる処理を、後述される方法等で実行し得る。実施形態において、プロセス800は、1つまたは複数の暗号処理を実行する要求を受信すること(802)を含む。要求は、前述のように様々な方法で受信され得る(802)。要求は、例えば、前述のように暗号サービスフロントエンドのウェブサーバにより受信され得る(802)。
要求を受信すると(802)、プロセスは前述のように、要求が真正であるか否を判定すること(804)と、要求の履行が認可されるか否かを判定すること(808)とを含み得る。要求が真正ではないと判定された場合(804)(すなわち要求の真正性が検証不可能である場合)、プロセス800は要求を拒否すること(806)を含み得る。同様に、要求の履行が認可されないと判定された場合(808)、プロセス800は、要求を拒否することを含み得る。
プロセス800を実行するシステムが、要求は真正であり、かつ要求の履行が認可されると判定すると、プロセス800は、要求がエクスポートキートークンを含むか否かを判定すること(810)を含み得る。前述のように、エクスポートキートークンは、1つまたは複数の暗号処理を実行する要求のパラメータで任意に提供され得る。従って、要求がエクスポートキートークンを有するか否かを判定すること(810)は、要求を構文解析することと、このようなエクスポートキートークンが要求のパラメータとして含まれているか否かを判定することとを含み得る。暗号サービスのフロントエンドのウェブサーバは、例えば、要求がエクスポートキートークンを含んでいるか否かを判定する。
要求がエクスポートキートークンを有さないと判定された場合(810)、プロセス800は、プロバイダホスト型顧客キーを使用して要求を処理すること(812)を含み得る。実施例として、プロセス800を実行する暗号サービスのウェブまたは他のサーバは、独立したデータストレージサービスから等、データストレージ場所からプロバイダホスト型顧客キーの暗号化された複製を取得し得る。一旦取得されると、サーバは、プロバイダホスト型顧客キーの暗号化された複製を、セキュリティモジュールに提供し得る。多数の顧客のためにホストされる多数のプロバイダホスト型顧客キーから、プロセス800を実行するシステムがプロバイダホスト型顧客キーを選択するために使用するプロバイダホスト型顧客キーの識別子を、要求は含み得ることに留意されたい。識別子を具体的に指定する必要のないデフォルトのプロバイダホスト型顧客キーを顧客が有する時等、プロバイダホスト型顧客キーを特定する他の方法も使用され得る。
一旦セキュリティモジュールに提供されると、セキュリティモジュールは、ドメインキーを使用して暗号化された複製を復号化し、プロバイダホスト型顧客キーを平文形式で取得し得る。セキュリティモジュールはそれから、プロバイダホスト型顧客キーを使用して、要求を履行するための1つまたは複数の暗号処理を実行し、受信された要求(802)に応えて、実行された1つまたは複数の暗号処理の結果をサーバが含むようにサーバへ提供し得る。セキュリティモジュールはそれから、セキュリティモジュールがプロバイダホスト型顧客キーの暗号化された複製から取得したプロバイダホスト型顧客キーの平文複製に対し、アクセスを失い得る。
プロセス800を実行するシステムが、実際に要求はエクスポートキートークンを有すると判定した場合(810)、プロセス800を実行するシステムは、エクスポートキートークンを使用して要求を処理し得る(814)。図6に関連して前述されたように、要求を処理するために、エクスポートキートークンが使用され得る。
前述のように、顧客がエクスポートキートークンを要求する場合、要求の履行結果として返されるエクスポートキートークン内で暗号化された顧客キーの有効期間を、このような要求は指定し得る。いくつかの状況において、エクスポートキートークンを使用するサービスプロバイダの顧客は、エクスポートキートークン内で暗号化された暗号キーの有効期間を延長することを所望し得る。例えば、顧客は、エクスポートキートークン暗号キーの有効期間の期限が切れた後の時点で、データにアクセスする必要があり得る。図9は、エクスポートキートークン内で暗号化された顧客キーの有効期間を延長する要求を処理するプロセス900の実施例を示す。プロセス900は、前述のように暗号サービスによる等、任意の好適なシステムにより実行され、暗号サービスの異なるコンポーネントは、下記により詳しく説明されるように、プロセス900内の異なる処理を行い得る。
実施形態において、プロセス900は、エクスポートキートークン内で暗号化された顧客キーの有効期間を延長する要求を受信することを含む。図2に関連して前述されたように、暗号サービスフロントエンドのウェブサーバによる等、様々な方法で要求は受信され得る(902)。前述の他の要求と同様に、プロセス900は、要求が真正であるか否を判定すること(904)と、要求の履行が認可されるか否かを判定すること(908)とを含み得る。要求が真正ではないと判定された場合(904)(すなわち要求の真正性が検証不可能である場合)、または要求の履行が認可されないと判定された場合、前述のように、プロセス900は要求を拒否すること(906)を含み得る。
図9に例示されるように、プロセス900を実行するシステムが、要求は真正であると判定し(904)、かつ要求の履行が認可されると判定すると(908)、プロセス900は、エクスポートドメインキーが利用可能か否かを判定すること(910)を含み得る。例えば、エクスポートキートークン内で暗号化された暗号キーの有効期限前に要求が受信された場合、エクスポートドメインキーは利用可能であり得る。同様に、エクスポートキートークン内で暗号化された顧客キーの有効期限後に要求が受信された場合(902)、エクスポートドメインキーは利用不可能であり得る。エクスポートドメインキーが利用可能であるか否かの判定(910)は、異なる実施態様による異なるコンポーネントにより実行され得る。いくつかの実施形態において、例えば、判定(910)は暗号サービスのウェブまたは他のサーバにより行われ、一方別の実施形態において、判定(910)はセキュリティモジュールにより行われる。
プロセス900を実行するシステムがエクスポートドメインキーは利用不可能であると判定した場合(910)、プロセス900は、前述のように要求を拒否すること(906)を含み得る。しかしながら、エクスポートドメインキーが利用可能であると判定された場合(910)、エクスポートキートークン内で特定されるエクスポートドメインキーが選択され得る(912)。エクスポートキートークン内で特定されるエクスポートドメインキーを選択するために(912)、図3に関連して前述されたようなデータ構造が使用され得る。エクスポートドメインキーはそれから、顧客キーを復号化するために使用され得る(914)。
前記のように、エクスポートキートークンは、権限のあるセキュリティモジュールの中でのみ利用可能であり得るため、結果、エクスポートドメインキーの選択(912)及びエクスポートキートークン内の顧客キーの復号化は、セキュリティモジュールにより行われ得る。受信された要求(902)において指定される要求有効期間に合うエクスポートドメインキーが選択され得る(916)。選択(916)は、図3に関連して前述されたようなデータ構造を参照するセキュリティモジュールにより行われ得る。要求有効期間に合うエクスポートドメインキーを選択する(916)セキュリティモジュールは、選択したエクスポートドメインキーを使用して顧客キーを暗号化し得る(918)。
選択されたエクスポートドメインキー(916)の下暗号化された顧客キーが一旦取得されると、プロセス900は、暗号化された顧客キーを有するエクスポートキートークンを生成すること(920)を含み得る。エクスポートキートークンの生成は、顧客キーを暗号化したセキュリティモジュールにより、またはサーバにより起こり得る。例えば、いくつかの実施態様において、エクスポートキートークンは、権限のあるセキュリティモジュールの集合体の外部からアクセス不可能な暗号キーを使用して、セキュリティモジュールにより電子署名される。その結果、セキュリティモジュールは、エクスポートキートークンの生成(920)の責任を担い得る。セキュリティモジュールがエクスポートキートークンを生成する場合(920)、セキュリティモジュールは、プロセス900を実行する暗号サービスのフロントエンドのウェブサーバに対し、エクスポートキートークンを提供し得る。どのようにフロントエンドのウェブサーバがエクスポートキートークンを取得するかに関わらず、ウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る(922)。本明細書において説明される他のプロセスと同様に、顧客キーがいずれの暗号処理の実行にももはや必要なくなった後の時点で、プロセス900は、前述のように顧客キーへのアクセスを失うこと(924)を含み得る。
いくつかの実施例において、サービスプロバイダの顧客は、エクスポートキートークンを使用して、その顧客キーへの制限付きアクセスをサービスプロバイダに許可し得る。例えば、顧客は、サービスプロバイダをより信用し始め、及び/または自身のコンピューティングリソースを保持する顧客の負担を軽減するために、サービスプロバイダにより追加サービスが実行されることを所望し得る。図10は、エクスポート型顧客キーをホスト型顧客キーに変換する要求を処理するプロセス1000の実施例を示す。プロセス1000は、前述のように暗号サービスによる等、任意の好適なシステムにより実行され、暗号サービスの異なるコンポーネントは、プロセス1000の異なる処理を実行し得る。実施形態において、プロセス1000は、エクスポート型顧客キーをホスト型顧客キーへ変換する要求を受信すること(1002)を含む。要求は、前述のように、暗号サービスのフロントエンドのウェブサーバにより受信され得る(1002)。要求は、例えば、受信された要求(1002)のパラメータとしてエクスポートキートークンを含み得る。エクスポートキートークンを伴う様々な処理を実行する要求に関わる前述の他のプロセスと同様に、プロセス1000は、前述のように、要求が真正であるか否かを判定すること(1004)と、要求の履行が認可されるか否かを判定すること(1008)と、好適なエクスポートドメインキーが利用可能であるか否かを判定すること(1010)とを含み得る。
好適なエクスポートドメインキーとは、要求において受信されたエクスポートキートークンから顧客キーの平文複製を取得するために使用可能なエクスポートドメインキーであり得る。要求が真正ではない(すなわち要求の真正性が検証不可能である)、要求の履行が認可されない、または好適なエクスポートドメインキーは利用不可能であると判定された場合、プロセス1000は要求を拒否すること(1006)を含み得る。しかしながら、要求が真正であると判定され(1004)、要求の履行が認可されると判定され(1008)、かつ好適なエクスポートドメインキーが利用可能であると判定された(1010)場合、プロセス1000を実行するシステムは、要求において受信されたエクスポートキートークン内で特定されるエクスポートドメインキーを選択し得る(1012)。
前述のように、エクスポートドメインキーの選択は、プロセス1000を実行する暗号サービスのセキュリティモジュールまたはウェブもしくは他のサービスにより行われ得る。プロセス1000を実行する暗号サービスのセキュリティモジュールは、エクスポートキートークンを使用して顧客キーを復号化し得る(1014)。セキュリティモジュールはそれから、少なくともいくつかのエクスポートドメインキーより短い循環スケジュールを有する暗号キー等、セキュリティモジュールがホスト型顧客キーに使用するように構成される暗号キーであり得るドメインキーを選択し得る(1016)。セキュリティモジュールはそれから、ドメインキーを使用して顧客キーを暗号化し得る(1018)。暗号サービスのセキュリティモジュールまたはウェブもしくは他のサーバは、暗号化した顧客キーを有するキートークンを生成し得る(1020)。キートークンは、図4に関連して前述されたエクスポートキートークンのように、構造化され得る。いくつかの実施態様において、キートークンが内部顧客識別子404を有し得ないことを除いて、図4に関連して前述されたエクスポートキートークン402のようにキートークンは構造化される。しかし、いくつかの実施態様により、ホスト型顧客キーに内部顧客キー識別子を使用することは可能である。
セキュリティモジュールがキートークンを生成した後(1020)、セキュリティモジュールは、要求を受信した(1002)暗号サービスのウェブサーバに対しキートークンを提供し、生成したキートークン(1020)をウェブサーバが記憶することを可能にし得る(1022)。いくつかの実施例において、ウェブサーバは、データストレージサービスに対し要求を送信し、データストレージサービスに、データストレージサービスのデータストレージデバイス等のコンピューティングリソースを使用してキートークンを記憶させる。一般に、プロセス1000を実行する暗号サービスのサービスプロバイダによりホストされる及び/または制御されるハードウェアにキートークンが記憶され得るいずれの方法も、本開示の範囲内であるとみなされる。いくつかの実施形態において、セキュリティモジュールは、自身でデータストレージサービスに対し要求を送信し、このようなストレージの通知をウェブサーバに提供して、要求が履行されたことを示す要求応答を提供し得ることにも留意されたい。さらに、いくつかの代替実施形態において、セキュリティモジュールは、キートークンを生成せずに、セキュリティモジュールの外部からアクセス不可能な自身のローカルメモリにキートークンを記憶し得る。このような代替実施形態において、多数のセキュリティモジュールが顧客キーへのアクセスを有し得るように、セキュリティモジュール間において安全な転送が行われ得る。
いくつかの実施例において、サービスプロバイダの顧客は、様々な理由から、自分のホスト型顧客キーをエクスポート型顧客キーへ変換することを所望し得る。図11は、従って、ホスト型顧客キーをエクスポート型顧客キーに変換する要求を処理するプロセス1100の実施例を示す。プロセス1100は、前述の暗号サービス等、任意の好適なシステムにより実行され得る。実施形態において、プロセス1100は、ホスト型顧客キーをエクスポート型顧客キーへ変換する要求を受信すること(1102)を含む。要求は、プロセス1100を実行する暗号サービスのフロントエンドのウェブサーバにより受信され得る(1102)。要求は、サービスプロバイダによりホストされる他のホスト型顧客キーからホスト型顧客キーを区別するのに利用可能なホスト型顧客キーの識別子を、パラメータとして含み得る。本明細書において説明される他のプロセスと同様に、プロセス1100は、要求が真正であるか否を判定すること(1104)と、要求の履行が認可されるか否かを判定すること(1108)とを含み得る。要求が真正であると判定されなかった場合(1104)、または要求の履行が認可されないと判定された場合(1108)、プロセス1100は要求を拒否すること(1106)を含み得る。
しかしながら、要求が真正であると判定され(1104)、かつ要求の履行が認可されると判定された(1108)場合、プロセス1100は、データストレージから、受信された要求(1102)において指定されるホスト型顧客キーの暗号化された複製を備えるキートークンを取得すること(1110)を含み得る。本明細書において説明される、顧客キーの平文複製へのアクセスを伴わない多数の処理と同様に、プロセス1100を実行する暗号サービスのウェブまたは他のサーバ、あるいはそのセキュリティモジュールによる等、異なる実施形態による異なるコンポーネントにより、キートークンは取得され得る(1110)。
どのようにキートークンがデータストレージから取得されるか(1110)に関わらず、プロセス1100を実行する暗号サービスのセキュリティモジュールにより、キートークンは取得され得る。従って、図11に例示されるように、セキュリティモジュールは、ドメインキーを使用して顧客キーを復号化し得る(1112)。セキュリティモジュールは、受信された要求(1102)内にパラメータとして指定される、あるいは非明示的に指定される(例えばデフォルトで指定される)有効期間に合うエクスポートドメインキーを選択し(1114)、選択したエクスポートドメインキーを使用して顧客キーを暗号化し得る(1116)。前述のような好適なコンポーネントが、暗号化された顧客キーを有するエクスポートキートークンを生成し得る(1118)。
生成されるエクスポートキートークン(1118)は、図4に関連して前述されたように構成され、例えば、受信された要求(1102)のパラメータとして指定され得る前述の内部顧客キー識別子404等の様々な識別子を含み得る。プロセス1100を実行する暗号サービスのフロントエンドのウェブサーバは、生成されたエクスポートキートークンを要求に応えて提供し得る(1120)。本明細書において説明される他のプロセスと同様に、顧客キーの平文複製がもはや必要なくなった時、前述のように、プロセス1100は顧客キーへのアクセスを失うこと(1122)を含み得る。
図5〜図11は、暗号サービスまたは他のコンピュータシステムにより実行され得る様々なプロセスを例示する。プロセスは、様々な処理が特定の順序で行われることを示す。1つの処理の実行が他の処理に依存していない時等、処理の順序は例示されるものとは異なり得ることに留意されたい。例えば、要求の真正性及び要求履行の認可の判定は、異なる順序で、または並行して行われ得る。1つの処理の出力が他の処理への入力として使用されない時等、特定の順序で実行されることが要求されない他のペアの処理は、例示とは異なる順序で、または並行して行われ得る。実施例として、本明細書において説明される数多くのプロセスは、暗号サービスが顧客キーの全ての平文複製へのアクセスを失うことを引き起こす処理集合を実行することを含む。図面に例示される全てのプロセスにおいて、アクセス喪失を引き起こす処理集合は、プロセスの最後に起こる。しかしながら、システムのアクセス喪失を引き起こす処理は、顧客キーの平文複製に対し行われる、あるいは顧客キーの平文複製を使用して行われる全ての処理が完了した後等、任意の好適な時点で行われ得る。他の変形も、本開示の範囲内であるとみなされる。
例えば、いくつかの実施形態において、エクスポートドメインキーの期限切れは、エクスポートドメインキーへの完全なアクセス喪失を引き起こし、エクスポートドメインキーの下、暗号化された情報(例えば顧客キー)は、桁外れな計算量なしには回復不可能となる。いくつかの実施形態において、サービスプロバイダは、エクスポートドメインキーの有効期間が終わったデータの回復を許可するため等、期限が切れた後のエクスポートドメインキーの取得を許可し得る。サービスプロバイダは、例えば、エクスポートドメインキーの期限が切れた後、限定された時間、エクスポートドメインキーの複製をオフラインレポジトリに保持し得る。そのため、エクスポートドメインキーの複製がオフラインレポジトリから取得可能である間、エクスポートドメインキーは取得されて情報が復号化可能となる。別の実施例として、秘密暗号キーがオフラインレポジトリ(例えばデータセンタの鍵のかかった部屋の金庫の中)に保持され得る。対応する公開キーは、エクスポートドメインキーの複製を暗号化するために使用され、暗号化された複製は、データストレージシステムに記憶され得る。より後の時点で、秘密暗号キーはアクセスされ破棄され、これによりエクスポートドメインキーを回復する全ての潜在能力は取り除かれる。他の変形も、本開示の範囲内であるとみなされる。
論述されるように、本開示の多数の変形は、対称及び/または非対称暗号プリミティブを使用し得る様々な暗号処理の実行を伴う。対称キーアルゴリズムは、ブロック暗号、ストリーム暗号、電子署名スキームを含む、データに暗号処理を行う様々なスキームを含み得る。例示的対称キーアルゴリズムは、高度暗号化規格(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暗黙的証明書スキームを含む。他のアルゴリズム及びアルゴリズムの組み合わせも、本開示の範囲内であるとみなされ、前述が網羅的なリストであるという意図はない。
図12は、様々な実施形態による態様を実行する例示的環境1200の態様を示す。説明のためにウェブベースの環境が使われているが、様々な実施形態を実行するために、異なる環境が適宜使用され得ることが理解されるであろう。環境は電子クライアントデバイス1202を含み、当電子クライアントデバイス1202には、要求、メッセージ、または情報を好適なネットワーク1204を介して送受信し、いくつかの実施形態において、デバイスのユーザへ情報を伝達し返すように作動可能な任意の好適なデバイスが含まれ得る。このようなクライアントデバイスの実施例には、パーソナルコンピュータ、携帯電話、手持ち型メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋め込み式コンピュータシステム、及び電子書籍リーダ等が含まれる。ネットワークには、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、衛星ネットワーク、またはその他のこのようなネットワーク及び/またはこれらの組み合せを含む、任意の好適なネットワークが含まれ得る。このようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境の種類に少なくとも部分的に依拠し得る。このようなネットワークを介して通信を行うプロトコル及びコンポーネントはよく知られているため、本明細書では詳しく論述しない。ネットワークを介した通信は、有線、または無線接続、及びこれらの組み合せにより実行可能となり得る。当実施例において、要求を受信し、要求に応じてコンテンツを提供するウェブサーバ1206が環境に含まれることから、ネットワークにはインターネットが含まれるが、当業者にとって明らかであるように、他のネットワークに関しては、同様の目的にかなう代替デバイスも使用可能である。
例示的環境には、少なくとも1つのアプリケーションサーバ1208とデータストア1210とが含まれる。例示的環境には、いくつかのアプリケーションサーバ、レイヤーもしくは他の要素、プロセス、またはコンポーネントが存在し、これらは、好適なデータストアからデータを取得するといったタスクを実行するために相互に作用できるように連結あるいは構成され得ることを理解されたい。本明細書において使用されるサーバは、ハードウェアデバイスまたは仮想コンピュータシステム等、様々な方法で実施され得る。いくつかの文脈において、サーバは、コンピュータシステム上で実行されるプログラミングモジュールを指し得る。本明細書において使用される用語「データストア」は、特に明記しない限り、または文脈から明らかでない限り、データ記憶、データアクセス、及びデータ取得が可能な任意のデバイスまたはデバイスの組み合わせを指し、これは、任意の標準、分散、仮想、またはクラスタ環境における任意の数のデータサーバ、データベース、データストレージデバイス、データ記憶媒体、及びこれらの任意の組み合わせを含み得る。アプリケーションサーバには、クライアントデバイス用の1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合し、アプリケーションのデータアクセス及びビジネスロジックの一部または全てを取り扱う任意の好適なハードウェア、ソフトウェア、及びファームウェアが含まれ得る。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、そしてテキスト、画像、音声、映像、及び/またはユーザ提供に利用可能な他のコンテンツを含むがこれに限定されないコンテンツを生成可能である。生成されたコンテンツは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、ジャバスクリプト、階層式スタイルシート(CSS)、または別の好適なクライアント側構造化言語の形式で、ウェブサーバによりユーザへ提供され得る。ユーザが聴覚的に、視覚的に、及び/または触覚、味覚、及び/または嗅覚を含む他の感覚を通して知覚可能な形式を含むがこれに限定されない1つまたは複数の形式でコンテンツを提供するように、クライアントデバイスへ転送されるコンテンツはクライアントデバイスにより処理され得る。全ての要求及び応答の取り扱い、並びにクライアントデバイス1202とアプリケーションサーバ1208との間のコンテンツ配信は、PHP:ハイパーテキストプリプロセッサ(PHP)、Python、Ruby、Perl、Java(登録商標)、HTML、XML、または当実施例における別の好適なサーバ側構造化言語を使用して、ウェブサーバにより取り扱われ得る。本明細書において論述される構造化コードは、本明細書の別の箇所に論述される任意の好適なデバイスまたはホストマシン上で実行可能であるため、ウェブ及びアプリケーションサーバは必須ではなく、単なる例示的コンポーネントにすぎないことを理解されたい。さらに、本明細書において説明される単一デバイスにより実行される処理は、文脈から明らかでない限り、分散及び/または仮想システムを形成し得る多数のデバイスにより集合的に実行されてもよい。
データストア1210は、本開示の特定の態様に関連するデータを記憶するために、いくつかの個別のデータテーブル、データベース、データ文書、動的データストレージスキーム、及び/または他のデータストレージ機構及び媒体を含み得る。例えば、例示されるデータストアは、コンテンツを生成側に提供するために使用され得る生成データ1212及びユーザ情報1216を記憶する機構を含み得る。データストアはまた、報告、分析、もしくはその他のこのような目的に使用され得るログデータ1214を記憶する機構も含むことが示される。ページ画像情報、及びアクセス権限情報等、データストアに記憶される必要があり得る多数の他の態様が存在する可能性があり、これらは、データストア1210内の上記の機構のうちの好適ないずれかに、または追加機構に記憶され得ることを理解されたい。データストア1210は、対応付けられたロジックを通して、アプリケーションサーバ1208から指示を受信し、指示に応じてデータを取得、更新、あるいは処理するように作動可能である。アプリケーションサーバ1208は、受信された指示に応じて、静的データ、動的データ、または静的データ及び動的データの組み合わせを提供し得る。ウェブログ(ブログ)に使用されるデータ等の動的データ、ショッピングアプリケーション、ニュースサービス、及び他のこのようなアプリケーションは、本明細書において説明されるサーバ側構造化言語により生成され得る、またはアプリケーションサーバ上で作動する、もしくはアプリケーションサーバの制御下で作動するコンテンツ管理システム(CMS)により提供され得る。一実施例において、ユーザにより操作されるデバイスを通したユーザは、ある種類のアイテムの検索要求を提出し得る。この場合、データストアは、ユーザ情報にアクセスしてユーザの身元確認を行い、カタログ詳細情報にアクセスして当種類のアイテムに関する情報を取得し得る。取得された情報はそれから、ユーザデバイス1202のブラウザを介してユーザが見ることが可能なウェブページ上の結果一覧内等で、ユーザに返され得る。特定の注目アイテムに関する情報は、ブラウザの専用ページまたは専用ウィンドウにおいて見ることが可能である。しかしながら、本開示の実施形態は、必ずしもウェブページという状況に限定されず、コンテンツに対する要求とは限らない通常の要求の処理に、より一般的に適用可能であり得ることに留意されたい。
各サーバは、そのサーバの一般管理及び動作に関する実行可能プログラム命令を提供するオペレーティングシステムを通常含み、かつ命令を記憶するコンピュータ可読記憶媒体(例えばハードディスク、ランダムアクセスメモリ、読取専用メモリ等)を通常含み、当命令がサーバのプロセッサにより実行されると、サーバはその所定機能を実行可能となる。サーバのオペレーティングシステム及び一般機能の好適な実装は、周知であり、または市販されており、当業者は、特に本明細書の開示を踏まえて、容易に実装するだろう。
一実施形態における環境は、1つまたは複数のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続された、いくつかのコンピュータシステム及びコンポーネントを利用する分散及び/または仮想コンピューティング環境である。しかしながら、このようなシステムは、図12に例示されるコンポーネントよりも数の少ない、または多いコンポーネントを有するシステムにおいても同等によく作動し得ることが、当業者には理解されるだろう。従って、図12におけるシステム1200の描写は、本来例示としてみなされるべきであり、開示範囲を限定するものではない。
様々な実施形態はさらに、多様な動作環境において実施可能であり、いくつかの事例において、多数のアプリケーションのうちのいずれかを作動させるのに使用可能な1つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含み得る。ユーザまたはクライアントデバイスには、標準のオペレーティングシステムを実行するデスクトップ、ラップトップ、またはタブレットコンピュータ、並びにモバイルソフトウェアを実行し、多数のネットワーク及びメッセージ通信プロトコルに対応可能なセルラー、無線、及び手持ち型デバイス等、多数の汎用パーソナルコンピュータのうちのいずれかが含まれ得る。このようなシステムはまた、開発及びデータベース管理等のために、様々な市販のオペレーティングシステム及び他の周知のアプリケーションのうちのいずれかを実行する多数のワークステーションを含み得る。これらのデバイスには、ダミー端末、シンクライアント、ゲーム機、及びネットワークを介して通信可能な他のデバイス等、他の電子デバイスも含まれ得る。これらのデバイスには、仮想マシン、ハイパーバイザ、及びネットワークを介して通信可能な他の仮想デバイス等、仮想デバイスも含まれ得る。
伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、開放型システム間相互接続(OSI)モデルの様々なレイヤーで作動するプロトコル、ファイル転送プロトコル(FTP)、ユニバーサルプラグアンドプレイ(UpnP)、ネットワークファイルシステム(NFS)、共通インターネットファイルシステム(CIFS)、及びアップルトーク等、様々な市販のプロトコルのうちのいずれかを使用する通信に対応する、当業者によく知られる少なくとも1つのネットワークを、本開示の様々な実施形態は利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及びこれらの任意の組み合わせであり得る。
ウェブサーバを使用する実施形態において、ウェブサーバは、ハイパーテキスト転送プロトコル(HTTP)サーバ、FTPサーバ、共通ゲートウェイインタフェース(CGI)サーバ、データサーバ、Java(登録商標)サーバ、Apacheサーバ、及びビジネスアプリケーションサーバを含む様々なサーバまたは中階層アプリケーションのうちのいずれかを実行可能である。サーバ(複数可)はまた、Java(登録商標)、C、C#、もしくはC++等の任意のプログラミング言語、またはRuby、PHP、Perl、Python、もしくはTCL等の任意のスクリプト言語、並びにこれらの組み合せで書かれた1つまたは複数のスクリプトもしくはプログラムとして実装され得る1つまたは複数のウェブアプリケーションを実行すること等により、ユーザデバイスからの要求に応じてプログラムまたはスクリプトを実行可能であり得る。サーバ(複数可)はまた、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)から市販されるデータベースサーバ、並びにMySQL、Postgres、SQLite、MongoDB等のオープンソースサーバ、及び構造化または非構造化データの記憶、取得、及びアクセスを実行可能なその他のサーバを含むが、これに限定されないデータベースサーバを含み得る。データベースサーバには、テーブルベースサーバ、文書ベースサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、もしくはこれらの組み合わせ、及び/または他のデータベースサーバが含まれ得る。
環境には、前述のように、様々なデータストア、並びに他のメモリ及び記憶媒体が含まれ得る。これらは、コンピュータのうちの1つまたは複数のローカルにある(及び/または中に存在する)記憶媒体上、あるいはネットワーク上でコンピュータのうちの任意または全てから遠隔にある記憶媒体上等、様々な場所に存在し得る。特定集合の実施形態において、当業者によく知られるストレージエリアネットワーク(SAN)に情報は存在し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属する機能を実行するために必要な任意のファイルは、ローカル及び/またはリモートに適宜記憶され得る。システムに含まれるコンピュータ化デバイスはそれぞれ、例えば少なくとも1つの中央処理装置(CPUまたはプロセッサ)と、少なくとも1つの入力デバイス(例えばマウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)と、少なくとも1つの出力デバイス(例えばディスプレイデバイス、プリンタ、またはスピーカ)とを含む、バスを介して電気的に結合され得るハードウェア要素を含み得る。このようなシステムはまた、ディスクドライブ、光学ストレージデバイス、及び、ランダムアクセスメモリ(RAM)もしくは読出専用メモリ(ROM)等のソリッドステートストレージデバイス、並びに着脱可能媒体デバイス、メモリカード、フラッシュカード等といった、1つまたは複数のストレージデバイスを含み得る。
このようなデバイスはまた、前述のように、コンピュータ可読記憶媒体リーダと、通信デバイス(例えばモデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)と、作業メモリとを含み得る。コンピュータ可読記憶媒体リーダは、コンピュータ可読情報を一時的及び/またはより永久的に保有、記憶、送信、及び取得するためのリモート、ローカル、固定、及び/または着脱可能の記憶デバイス並びに記憶媒体に相当するコンピュータ可読記憶媒体と接続、または当コンピュータ可読記憶媒体を受けるように構成され得る。システム及び様々なデバイスはまた通常、クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステム及びアプリケーションプログラムを含む、少なくとも1つの作業メモリデバイス内に配置された多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替実施形態は、前述の実施形態からの多数の変形形態を有し得ることを理解されたい。例えば、カスタマイズされたハードウェアも使用され、及び/または特定要素がハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、またはその両方に実装され得る。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が採用され得る。
コードや部分的コードを含む記憶媒体及びコンピュータ可読媒体には、当技術分野において既知または既に使用されている任意の好適な媒体が含まれ得る。任意の好適な媒体には、コンピュータ可読命令、データ構造、ブログラムモジュール、もしくは他のデータといった情報の記憶及び/または送信に関する任意の方法または技術で実行される揮発性及び不揮発性、着脱可能及び着脱不可能媒体が挙げられるが、これに限定されない記憶媒体及び通信媒体が含まれる。記憶媒体及び通信媒体には、RAM、ROM、電気的消去可能プログラム可能読出専用メモリ(EEPROM)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読取専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用され、システムデバイスによりアクセス可能なその他の媒体が含まれる。本明細書において提供される開示及び教示に基づいて、当業者は、様々な実施形態を実施する他のやり方及び/または方法を理解するだろう。
従って、明細書及び図面は、限定的ではなく例示的であるとみなされるべきである。しかしながら、これらに対し、特許請求の範囲に明記される本発明のより広い趣旨と範囲から逸脱せずに、様々な修正及び変更が行われてもよいことは、明白である。
他の変形は、本開示の趣旨の範囲内で行われる。従って、開示される技術は、様々な修正及び代替構造を許容可能であるが、これらのうちの特定の例示的実施形態が、図面に示され、詳しく前述されている。しかしながら、本発明を、開示される特定の形式(複数可)に限定する意図はなく、それとは逆に、添付の請求項で定義される本発明の趣旨と範囲に入る全ての修正、代替構造、及び同等物を対象とする意図があることを理解されたい。
開示される実施形態を説明する文脈における(特に以下の請求項の文脈における)用語「a」、「an」、「the」、及び同様の指示語の使用は、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、単数と複数の両方を対象にすると解釈されるべきである。「comprising(備える)」、「having(有する)」、「including(含む)」、及び「containing(含む)」の用語は、特に断りのない限り、無制限用語(すなわち「含むがこれに限定されない」という意味)として解釈されるべきである。用語「connected(結合された)」は、修正されず物理的結合を指す場合、介在するものがあるとしても、部分的または全体的に、何かの中に含まれる、何かへ取り付けられる、または何かと一緒に結合される、と解釈されるべきである。本明細書における値の範囲の詳述は、本明細書において特に指示のない限り、範囲内に入る個々の値を個別に指す簡略な方法として用いられることを単に意図し、そして個々の値は、本明細書において個別に詳述されているかのように明細書に組み込まれる。用語「set(集合)」(例えば「項目集合」)または「subset(部分集合)」の使用は、特に明記がないか、文脈と矛盾しない限り、1つまたは複数の要素を含む非空集合として解釈されるべきである。さらに、特に明記がないか、文脈と矛盾しない限り、対応集合の「subset(部分集合)」の用語は、必ずしも対応集合の真部分集合を示すとは限らず、部分集合と対応集合は等しくてもよい。
形式「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、それぞれが存在する必要があることを意味する意図はない。
本明細書において説明されるプロセスの処理は、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、任意の好適な順序で行うことが可能である。本明細書において説明されるプロセス(あるいはそれらの変形形態及び/または組み合わせ)は、実行可能命令で構成される1つまたは複数のコンピュータシステムの制御下で実行され、ハードウェアまたはそれらの組み合わせにより、1つまたは複数のプロセッサ上で集合的に実行されるコード(例えば実行可能命令、1つまたは複数のコンピュータプログラム、もしくは1つまたは複数のアプリケーション)として、実装され得る。コードは、例えば、1つまたは複数のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形式で、コンピュータ可読記憶媒体に保存され得る。コンピュータ可読記憶媒体は、非一時的であり得る。
本明細書において提供されるあらゆる全ての実施例または例示語(例えば「等」)の使用は、単に本発明の実施形態をより分かり易くすることを意図し、特に請求のない限り本発明の範囲を限定するものではない。本明細書におけるどの文体も、任意の非請求要素が本発明の実施に必須であるかのように解釈されるべきではない。
本明細書において説明される本開示の実施形態には、本発明を実施するための本発明者が知る最適な形態が含まれる。これらの実施形態の変形形態は、前述の説明を読むことで、当業者に明らかとなるだろう。本発明者は、当業者がこのような変形形態を適宜採用することを見込み、また本発明者は、本開示の実施形態が本明細書において具体的に説明される以外の方法で実行されることを意図する。従って、本開示の範囲は、本明細書に添付される請求項において詳述される内容の全ての変更及び均等物を、適用法令により認可したものとして含む。さらに、これらの全ての可能な変形形態における前述の要素のいずれの組み合わせも、本明細書において特に指示がないか、または明らかに文脈と矛盾しない限り、本開示の範囲に含まれる。
本明細書において引用される公報、特許出願、及び特許を含む全ての参考文献は、各文献が参照により組み込まれるよう個々に具体的に示され、かつその全体が本明細書において記載されるのと同程度に、参照により本明細書に組み込まれるものとする。
本開示の実施形態は、以下の条項を以って説明され得る。
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暗号キーの識別子を指定する前記要求を受信し、
前記要求を履行するように構成され、前記要求を履行することは少なくとも、
データストレージ場所から前記第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に記載の非一時的コンピュータ可読記憶媒体。
16.前記命令は、前記第2要求に関して実行されると前記コンピュータシステムに、
前記第1暗号キーの識別子に少なくとも部分的に基づいて、前記第1暗号キーを使用するための許可集合を定義するポリシー集合を特定させ、
前記要求の履行が前記特定されたポリシー集合に準拠するか否かを判定させる
命令をさらに含み、
前記ハードウェアデバイスが前記第1暗号キーを復号化し、前記復号化された第1暗号キーを使用して前記1つまたは複数の暗号処理を実行することを前記コンピュータシステムに引き起こさせる前記命令の実行は、前記要求の履行が前記特定されたポリシー集合に準拠するという判定を条件とする、
条項13〜15のいずれかに記載の非一時的コンピュータ可読記憶媒体。
17.前記第1エンティティは前記コンピュータシステムを運用するサービスプロバイダであり、前記第2エンティティは前記サービスプロバイダの顧客である、
条項13〜16のいずれかに記載の非一時的コンピュータ可読記憶媒体。
18.前記第2要求は前記キートークンを含み、
前記コンピュータシステムに前記キートークンを取得させる前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記コンピュータシステムに前記第2要求から前記キートークンを特定させる、
条項13〜17のいずれかに記載の非一時的コンピュータ可読記憶媒体。
19.前記ハードウェアデバイス集合は複数のハードウェアセキュリティモジュールを備える、
条項13〜18のいずれかに記載の非一時的コンピュータ可読記憶媒体。
20.前記コンピュータシステムに前記キートークンを取得させる前記命令は、前記1つまたは複数のプロセッサにより実行されると、前記第1要求内で指定される有効期間に合う有効期限を有する前記第2暗号キーに依って前記第2暗号キーの選択を行うやり方で前記コンピュータシステムに前記キートークンを取得させる、
条項13〜19のいずれかに記載の非一時的コンピュータ可読記憶媒体。

Claims (1)

  1. 暗号サービスのウェブサーバにおいて、前記暗号サービスの顧客に対応付けられたデバイスから、有効期間を指定する暗号キーの要求を受信することと、
    暗号材料のハードウェア保護を提供するデバイスにおいて、前記暗号キーを生成することと、
    前記デバイス内に記憶され、前記デバイスからプログラム的にエクスポート不可能なドメインキー集合の中から、前記指定された有効期間に合う有効期限を有するドメインキーを選択することであって、前記有効期限に従って特定される時点に前記ドメインキーが永久に前記デバイスによりアクセス不可能となることを引き起こす自動プロセスの少なくとも1つのインスタンスにより前記有効期限は施行される、前記指定された有効期間に合う前記有効期限を有する前記ドメインキーを選択することと、
    前記デバイスにおいて、前記生成された暗号キーを暗号化することと、
    前記暗号化された暗号キー及び前記暗号キーの識別子を含むトークンを生成することと、
    前記顧客に対応付けられた前記デバイスに対し、前記受信された要求に応えて前記トークンを提供することと、
    前記デバイスが前記暗号キーへのアクセスを失うことを引き起こす1つまたは複数の処理を行うことと、
    を含むコンピュータ実施方法。
JP2019047189A 2015-03-31 2019-03-14 キーエクスポート技術 Active JP6838799B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/675,614 2015-03-31
US14/675,614 US10469477B2 (en) 2015-03-31 2015-03-31 Key export techniques

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017549404A Division JP6499310B2 (ja) 2015-03-31 2016-03-25 キーエクスポート技術

Publications (2)

Publication Number Publication Date
JP2019118135A true JP2019118135A (ja) 2019-07-18
JP6838799B2 JP6838799B2 (ja) 2021-03-03

Family

ID=55661646

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017549404A Active JP6499310B2 (ja) 2015-03-31 2016-03-25 キーエクスポート技術
JP2019047189A Active JP6838799B2 (ja) 2015-03-31 2019-03-14 キーエクスポート技術

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017549404A Active JP6499310B2 (ja) 2015-03-31 2016-03-25 キーエクスポート技術

Country Status (9)

Country Link
US (2) US10469477B2 (ja)
EP (1) EP3278533A1 (ja)
JP (2) JP6499310B2 (ja)
KR (2) KR101985187B1 (ja)
CN (2) CN107534667B (ja)
AU (3) AU2016243115B2 (ja)
CA (2) CA3147153A1 (ja)
SG (1) SG11201707796PA (ja)
WO (1) WO2016160597A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9930066B2 (en) 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
US10747888B2 (en) 2014-06-30 2020-08-18 Nicira, Inc. Method and apparatus for differently encrypting data messages for different logical networks
US10798073B2 (en) * 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
GB2556638B (en) * 2016-12-02 2018-12-12 Gurulogic Microsystems Oy Protecting usage of key store content
US10489307B2 (en) * 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
KR102468390B1 (ko) * 2017-05-31 2022-11-18 삼성에스디에스 주식회사 토큰 관리 방법 및 이를 수행하기 위한 서버
WO2018236420A1 (en) 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
US10505938B2 (en) * 2017-07-21 2019-12-10 Schlage Lock Company Llc Leveraging flexible distributed tokens in an access control system
US10536267B2 (en) * 2017-09-15 2020-01-14 Visa International Service Association Cryptographic services utilizing commodity hardware
KR101967380B1 (ko) * 2017-10-31 2019-08-13 삼성에스디에스 주식회사 키 관리 시스템
US11095446B2 (en) * 2018-02-27 2021-08-17 Anchor Labs, Inc. Cryptoasset custodial system with different rules governing access to logically separated cryptoassets and proof-of-stake blockchain support
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
US20200036705A1 (en) * 2018-07-27 2020-01-30 Jasper Chee Pang LEE Strong password by convention methods and systems
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US11082235B2 (en) 2019-02-14 2021-08-03 Anchor Labs, Inc. Cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys
US11240022B1 (en) * 2019-04-11 2022-02-01 Wells Fargo Bank, N.A. Passive encryption rotation keys
US11698981B2 (en) * 2019-06-14 2023-07-11 Mongodb, Inc. Systems and methods for client-side and field-level encryption with dynamic schema databases
US11494763B2 (en) 2019-08-19 2022-11-08 Anchor Labs, Inc. Cryptoasset custodial system with custom logic
US11301845B2 (en) 2019-08-19 2022-04-12 Anchor Labs, Inc. Cryptoasset custodial system with proof-of-stake blockchain support
US11100497B2 (en) 2019-08-20 2021-08-24 Anchor Labs, Inc. Risk mitigation for a cryptoasset custodial system using a hardware security key
US11562349B2 (en) 2019-08-20 2023-01-24 Anchor Labs, Inc. Risk mitigation for a cryptoasset custodial system using data points from multiple mobile devices
US11501291B2 (en) * 2019-08-23 2022-11-15 Anchor Labs, Inc. Cryptoasset custodial system using encrypted and distributed client keys
US11259082B2 (en) 2019-10-22 2022-02-22 Synamedia Limited Systems and methods for data processing, storage, and retrieval from a server
US11838413B2 (en) * 2019-10-22 2023-12-05 Synamedia Limited Content recognition systems and methods for encrypted data structures
US11159330B1 (en) 2019-10-24 2021-10-26 Whatsapp Llc. Rendering online content via secured URL
US11308228B1 (en) 2019-10-24 2022-04-19 Whatsapp Inc. Providing access for online content via secured URL
CN110809035B (zh) * 2019-10-25 2021-12-03 广州查正源电子科技有限公司 一种去中心化防伪数据生成和管理方法及系统
US11522684B2 (en) 2020-09-24 2022-12-06 Capital One Services, Llc Key rotation service
TWI769961B (zh) * 2020-12-11 2022-07-01 熵碼科技股份有限公司 基於物理不可複製函數的密鑰管理系統及其操作方法
US11223489B1 (en) 2021-02-23 2022-01-11 Garantir LLC Advanced security control implementation of proxied cryptographic keys
US11218317B1 (en) 2021-05-28 2022-01-04 Garantir LLC Secure enclave implementation of proxied cryptographic keys
US11418329B1 (en) 2021-05-28 2022-08-16 Garantir LLC Shared secret implementation of proxied cryptographic keys
US11502827B1 (en) * 2021-09-03 2022-11-15 Garantir LLC Exporting remote cryptographic keys

Family Cites Families (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868877A (en) 1988-02-12 1989-09-19 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US4918728A (en) 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
US5146498A (en) 1991-01-10 1992-09-08 Motorola, Inc. Remote key manipulations for over-the-air re-keying
US5201000A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Method for generating public and private key pairs without using a passphrase
US5495533A (en) 1994-04-29 1996-02-27 International Business Machines Corporation Personal key archive
US5761306A (en) 1996-02-22 1998-06-02 Visa International Service Association Key replacement in a public key cryptosystem
JPH1041933A (ja) 1996-07-22 1998-02-13 Fuji Xerox Co Ltd 復号装置
US6253323B1 (en) 1996-11-01 2001-06-26 Intel Corporation Object-based digital signatures
US6546492B1 (en) 1999-03-26 2003-04-08 Ericsson Inc. System for secure controlled electronic memory updates via networks
JP2000295209A (ja) 1999-04-09 2000-10-20 Ntt Data Corp 鍵管理方法、鍵管理システム及び記録媒体
SE9904094D0 (sv) 1999-11-12 1999-11-12 Protegrity Research & Dev Method for reencryption of a database
US6826609B1 (en) 2000-03-31 2004-11-30 Tumbleweed Communications Corp. Policy enforcement in a secure data file delivery system
DE10025626A1 (de) 2000-05-24 2001-11-29 Deutsche Telekom Ag Verschlüsseln von abzuspeichernden Daten in einem IV-System
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US6986040B1 (en) 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel
US20050120232A1 (en) 2000-11-28 2005-06-02 Yoshihiro Hori Data terminal managing ciphered content data and license acquired by software
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7050583B2 (en) 2001-03-29 2006-05-23 Etreppid Technologies, Llc Method and apparatus for streaming data using rotating cryptographic keys
CA2358048A1 (en) 2001-09-25 2003-03-25 Luis Rueda A cryptosystem for data security
US7200747B2 (en) 2001-10-31 2007-04-03 Hewlett-Packard Development Company, L.P. System for ensuring data privacy and user differentiation in a distributed file system
US7243366B2 (en) 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US20020076044A1 (en) 2001-11-16 2002-06-20 Paul Pires Method of and system for encrypting messages, generating encryption keys and producing secure session keys
US7580972B2 (en) 2001-12-12 2009-08-25 Valve Corporation Method and system for controlling bandwidth on client and server
US7117366B2 (en) 2002-01-08 2006-10-03 International Business Machines Corporation Public key based authentication method for transaction delegation in service-based computing environments
US7376967B1 (en) 2002-01-14 2008-05-20 F5 Networks, Inc. Method and system for performing asynchronous cryptographic operations
JP3897613B2 (ja) 2002-02-27 2007-03-28 株式会社日立製作所 公開鍵暗号方式における登録局サーバの運用方法、登録局サーバ、及びプログラム
US20030188188A1 (en) 2002-03-15 2003-10-02 Microsoft Corporation Time-window-constrained multicast for future delivery multicast
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US7778606B2 (en) 2002-05-17 2010-08-17 Network Security Technologies, Inc. Method and system for wireless intrusion detection
US20040009815A1 (en) 2002-06-26 2004-01-15 Zotto Banjamin O. Managing access to content
US7620680B1 (en) 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US7877607B2 (en) 2002-08-30 2011-01-25 Hewlett-Packard Development Company, L.P. Tamper-evident data management
FR2844656B1 (fr) 2002-09-18 2005-01-28 France Telecom Procede de signature electronique, programme et serveur pour la mise en oeuvre du procede
US20040107345A1 (en) 2002-10-21 2004-06-03 Brandt David D. System and methodology providing automation security protocols and intrusion detection in an industrial controller environment
US7565419B1 (en) 2002-11-22 2009-07-21 Symantec Operating Corporation Conflict resolution in a peer to peer network
US20040143733A1 (en) 2003-01-16 2004-07-22 Cloverleaf Communication Co. Secure network data storage mediator
GB2400699B (en) 2003-04-17 2006-07-05 Hewlett Packard Development Co Security data provision method and apparatus and data recovery method and system
US7409545B2 (en) * 2003-09-18 2008-08-05 Sun Microsystems, Inc. Ephemeral decryption utilizing binding functions
JP2005151529A (ja) 2003-10-20 2005-06-09 Sony Corp データ伝送方法、データ伝送装置及びデータ受信装置
US7296023B2 (en) 2004-01-15 2007-11-13 International Business Machines Corporation Method and apparatus for persistent real-time collaboration
EP2267624B1 (en) 2004-04-19 2017-07-12 Lumension Security S.A. A generic framework for runtime interception and execution control of interpreted languages
JP4532484B2 (ja) 2004-05-17 2010-08-25 三菱電機株式会社 量子暗号通信装置
US20060010323A1 (en) 2004-07-07 2006-01-12 Xerox Corporation Method for a repository to provide access to a document, and a repository arranged in accordance with the same method
CN101019371A (zh) 2004-07-15 2007-08-15 松下电器产业株式会社 时刻认证装置、时刻认证方法、计算机程序、记录介质、集成电路及时刻认证系统
US20060021018A1 (en) 2004-07-21 2006-01-26 International Business Machines Corporation Method and system for enabling trust infrastructure support for federated user lifecycle management
EP1784943A4 (en) 2004-08-31 2011-08-03 Ntt Docomo Inc RECEPTION OF CRYPTOGRAPHIC DIGITAL CERTIFICATES
US20080091941A1 (en) 2004-09-03 2008-04-17 Nec Corporation Group Signature System, Member Status Judging Device, Group Signature Method And Member Status Judging Program
JP2006120089A (ja) 2004-10-25 2006-05-11 Ntt Docomo Inc データ管理システム及びデータ管理方法
JP2006127349A (ja) 2004-11-01 2006-05-18 Ntt Communications Kk デジタル著作権管理装置およびプログラム
JP4714482B2 (ja) 2005-02-28 2011-06-29 株式会社日立製作所 暗号通信システムおよび方法
US7900247B2 (en) 2005-03-14 2011-03-01 Microsoft Corporation Trusted third party authentication for web services
US7774826B1 (en) 2005-03-18 2010-08-10 Novell, Inc. System and method for determining effective policy profiles in a client-server architecture
US8295492B2 (en) 2005-06-27 2012-10-23 Wells Fargo Bank, N.A. Automated key management system
US7784087B2 (en) 2005-08-04 2010-08-24 Toshiba Corporation System and method for securely sharing electronic documents
US8566607B2 (en) 2005-08-26 2013-10-22 International Business Machines Corporation Cryptography methods and apparatus used with a processor
JP4569464B2 (ja) 2005-12-20 2010-10-27 沖電気工業株式会社 マルチホップネットワークにおける鍵更新システム,鍵管理装置,通信端末および鍵情報構築方法
US7912994B2 (en) 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
JP4226606B2 (ja) 2006-02-06 2009-02-18 株式会社コナミデジタルエンタテインメント 通信装置、通信方法、ならびに、プログラム
US7925023B2 (en) * 2006-03-03 2011-04-12 Oracle International Corporation Method and apparatus for managing cryptographic keys
US8064604B2 (en) 2006-04-04 2011-11-22 Oracle International Corporation Method and apparatus for facilitating role-based cryptographic key management for a database
US9002018B2 (en) 2006-05-09 2015-04-07 Sync Up Technologies Corporation Encryption key exchange system and method
US20070283446A1 (en) 2006-06-05 2007-12-06 Kabushiki Kaisha Toshiba System and method for secure handling of scanned documents
US20080028470A1 (en) 2006-07-25 2008-01-31 Mark Remington Systems and Methods for Vulnerability Detection and Scoring with Threat Assessment
US8689287B2 (en) 2006-08-17 2014-04-01 Northrop Grumman Systems Corporation Federated credentialing system and method
US20100316219A1 (en) 2007-08-06 2010-12-16 David Boubion Systems and methods for simultaneous integrated multiencrypted rotating key communication
US7953978B2 (en) 2006-09-07 2011-05-31 International Business Machines Corporation Key generation and retrieval using key servers
US8407806B2 (en) 2006-09-29 2013-03-26 Purusharth Agrawal Digital data distribution detection, deterrence and disablement system and method
GB2443244A (en) 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
CN101166259B (zh) * 2006-10-16 2010-11-10 华为技术有限公司 手机电视业务保护方法、系统、手机电视服务器及终端
US8090098B2 (en) 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
PL2052548T3 (pl) 2006-12-12 2012-08-31 Fraunhofer Ges Forschung Koder, dekoder oraz sposoby kodowania i dekodowania segmentów danych reprezentujących strumień danych w dziedzinie czasu
US20080172562A1 (en) 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
JP4890309B2 (ja) 2007-03-19 2012-03-07 株式会社リコー 情報処理装置及び情報保護方法
US8218761B2 (en) 2007-04-06 2012-07-10 Oracle International Corporation Method and apparatus for generating random data-encryption keys
US9413686B2 (en) 2007-06-04 2016-08-09 Qualcomm Incorporated Establishing a unique end-to-end management key
US20080319909A1 (en) 2007-06-25 2008-12-25 Perkins George S System and method for managing the lifecycle of encryption keys
WO2009012388A1 (en) 2007-07-17 2009-01-22 Peirson William Howard Jr Systems and processes for obtaining and managing electronic signatures for real estate transaction documents
US8111828B2 (en) 2007-07-31 2012-02-07 Hewlett-Packard Development Company, L.P. Management of cryptographic keys for securing stored data
US8140847B1 (en) 2007-09-18 2012-03-20 Jianqing Wu Digital safe
CN101400059B (zh) 2007-09-28 2010-12-08 华为技术有限公司 一种active状态下的密钥更新方法和设备
KR100980831B1 (ko) 2007-12-12 2010-09-10 한국전자통신연구원 일회용 패스워드를 이용한 신뢰성 있는 통신 시스템 및방법
US8495357B2 (en) 2007-12-19 2013-07-23 International Business Machines Corporation Data security policy enforcement
WO2009104873A2 (en) 2008-02-19 2009-08-27 Lg Electronics Inc. Method and device for managing authorization of right object in digital rights management
US8681990B2 (en) 2008-03-28 2014-03-25 International Business Machines Corporation Renewal management for data items
US8225106B2 (en) 2008-04-02 2012-07-17 Protegrity Corporation Differential encryption utilizing trust modes
US8494168B1 (en) 2008-04-28 2013-07-23 Netapp, Inc. Locating cryptographic keys stored in a cache
US8589697B2 (en) 2008-04-30 2013-11-19 Netapp, Inc. Discarding sensitive data from persistent point-in-time image
US20090300356A1 (en) 2008-05-27 2009-12-03 Crandell Jeffrey L Remote storage encryption system
US20100014662A1 (en) 2008-06-19 2010-01-21 Sami Antti Jutila Method, apparatus and computer program product for providing trusted storage of temporary subscriber data
WO2009157142A1 (ja) 2008-06-23 2009-12-30 パナソニック株式会社 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路
US8261320B1 (en) 2008-06-30 2012-09-04 Symantec Corporation Systems and methods for securely managing access to data
GB0811897D0 (en) 2008-06-30 2008-07-30 Steed Darren Intelligent file encapsulation
JP4620146B2 (ja) 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
US8302170B2 (en) 2008-09-22 2012-10-30 Bespoke Innovations S.A.R.L. Method for enhancing network application security
US8804950B1 (en) 2008-09-30 2014-08-12 Juniper Networks, Inc. Methods and apparatus for producing a hash value based on a hash function
JP2010087888A (ja) 2008-09-30 2010-04-15 Onkyo Corp 暗号鍵配信システム、暗号鍵配信サーバ、コンテンツ配信サーバ、及びクライアント
US8699704B2 (en) 2010-01-13 2014-04-15 Entropic Communications, Inc. Secure node admission in a communication network
US9165154B2 (en) 2009-02-16 2015-10-20 Microsoft Technology Licensing, Llc Trusted cloud computing and services framework
US8245037B1 (en) 2009-02-17 2012-08-14 Amazon Technologies, Inc. Encryption key management
US8284945B2 (en) 2009-06-02 2012-10-09 Hewlett-Packard Development Company, L.P. Automatic change of symmetrical encryption key
US9031876B2 (en) 2009-06-19 2015-05-12 Hewlett-Packard Development Company, L.P. Managing keys for encrypted shared documents
US8799322B2 (en) 2009-07-24 2014-08-05 Cisco Technology, Inc. Policy driven cloud storage management and cloud storage policy router
US8904169B2 (en) 2009-09-15 2014-12-02 Symantec Corporation Just in time trust establishment and propagation
US9311465B2 (en) 2009-09-21 2016-04-12 James McNulty Secure information storage and retrieval apparatus and method
IL201351A0 (en) 2009-10-01 2010-05-31 Michael Feldbau Device and method for electronic signature via proxy
DE102009046436A1 (de) 2009-11-05 2011-05-12 Robert Bosch Gmbh Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
WO2011073894A1 (en) 2009-12-18 2011-06-23 Koninklijke Philips Electronics N.V. Digital rights management using attribute-based encryption
GB201000288D0 (en) 2010-01-11 2010-02-24 Scentrics Information Security System and method of enforcing a computer policy
US20110213971A1 (en) 2010-03-01 2011-09-01 Nokia Corporation Method and apparatus for providing rights management at file system level
US8667269B2 (en) 2010-04-02 2014-03-04 Suridx, Inc. Efficient, secure, cloud-based identity services
EP2378451B1 (en) 2010-04-19 2018-07-04 Vodafone Holding GmbH User authentication in a tag-based service
US8601263B1 (en) 2010-05-18 2013-12-03 Google Inc. Storing encrypted objects
US20120079289A1 (en) 2010-09-27 2012-03-29 Skymedi Corporation Secure erase system for a solid state non-volatile memory device
US8401186B2 (en) 2010-11-29 2013-03-19 Beijing Z&W Technology Consulting Co., Ltd. Cloud storage data access method, apparatus and system based on OTP
US8565422B2 (en) * 2010-12-03 2013-10-22 Salesforce.Com, Inc. Method and system for enryption key versioning and key rotation in a multi-tenant environment
KR101145766B1 (ko) 2010-12-10 2012-05-16 고려대학교 산학협력단 보안 서비스 제공 시스템 및 방법
US8478858B2 (en) 2011-02-01 2013-07-02 Limelight Networks, Inc. Policy management for content storage in content delivery networks
US8588426B2 (en) 2011-02-21 2013-11-19 Blackberry Limited Methods and apparatus to secure communications in a mobile network
EP2515499B1 (de) * 2011-04-21 2015-10-28 Wibu-Systems AG Verfahren zum Erzeugen eines kryptographischen Schlüssels für ein geschütztes digitales Datenobjekt auf Basis von aktuellen Komponenten eines Rechners
US8850593B2 (en) 2011-05-12 2014-09-30 Hewlett-Packard Development Company, L.P. Data management using a virtual machine-data image
US9076020B2 (en) 2011-05-13 2015-07-07 Microsoft Technology Licensing, Llc Protected mode for mobile communication and other devices
US9049023B2 (en) 2011-05-24 2015-06-02 Zeutro Llc Outsourcing the decryption of functional encryption ciphertexts
US9106632B2 (en) 2011-05-26 2015-08-11 First Data Corporation Provisioning by delivered items
KR20120134509A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 어플리케이션 개발 시스템에서 디바이스용 어플리케이션을 생성 및 설치하기 위한 장치 및 방법
US8516244B2 (en) 2011-06-10 2013-08-20 Zeutro Llc System, apparatus and method for decentralizing attribute-based encryption information
US20120323990A1 (en) 2011-06-15 2012-12-20 Microsoft Corporation Efficient state reconciliation
US8806204B2 (en) 2011-06-20 2014-08-12 Liaison Technologies, Inc. Systems and methods for maintaining data security across multiple active domains
US8751807B2 (en) 2011-06-23 2014-06-10 Azuki Systems Inc. Method and system for secure over-the-top live video delivery
US9009315B2 (en) 2011-07-28 2015-04-14 Telefonaktiebolaget L M Ericsson (Publ) Hierarchical delegation and reservation of lookup keys
US8798273B2 (en) 2011-08-19 2014-08-05 International Business Machines Corporation Extending credential type to group Key Management Interoperability Protocol (KMIP) clients
US8788843B2 (en) 2011-10-28 2014-07-22 LogMeln, Inc. Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
US8774403B2 (en) 2011-12-08 2014-07-08 Dark Matter Labs, Inc. Key creation and rotation for data encryption
US8639951B2 (en) 2011-12-19 2014-01-28 International Business Machines Corporation States for breakout appliance in a mobile data network
US8954758B2 (en) 2011-12-20 2015-02-10 Nicolas LEOUTSARAKOS Password-less security and protection of online digital assets
US9449183B2 (en) 2012-01-28 2016-09-20 Jianqing Wu Secure file drawer and safe
US9237446B2 (en) 2012-05-24 2016-01-12 Blackberry Limited System and method for controlling access to media content
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
WO2014011453A2 (en) 2012-07-09 2014-01-16 Jvl Ventures, Llc Systems, methods, and computer program products for integrating third party services with a mobile wallet
US9137222B2 (en) 2012-10-31 2015-09-15 Vmware, Inc. Crypto proxy for cloud storage services
US8713311B1 (en) 2012-11-07 2014-04-29 Google Inc. Encryption using alternate authentication key
US8997197B2 (en) 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US10038679B2 (en) 2012-12-24 2018-07-31 Intel Corporation Centralized secure device pairing
JP6112874B2 (ja) 2013-01-21 2017-04-12 キヤノン株式会社 通信装置、通信装置の制御方法、および、プログラム
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
US9311500B2 (en) * 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9094453B2 (en) 2013-11-06 2015-07-28 Google Technology Holdings LLC Method and apparatus for associating mobile devices using audio signature detection

Also Published As

Publication number Publication date
US20200099674A1 (en) 2020-03-26
CN113381857A (zh) 2021-09-10
JP6838799B2 (ja) 2021-03-03
EP3278533A1 (en) 2018-02-07
US10469477B2 (en) 2019-11-05
KR20190062615A (ko) 2019-06-05
WO2016160597A1 (en) 2016-10-06
AU2019203153B9 (en) 2021-06-24
KR20170131577A (ko) 2017-11-29
AU2019203153B2 (en) 2021-06-10
CA3147153A1 (en) 2016-10-06
SG11201707796PA (en) 2017-10-30
KR101985187B1 (ko) 2019-06-04
US11374916B2 (en) 2022-06-28
JP6499310B2 (ja) 2019-04-10
JP2018511247A (ja) 2018-04-19
CA2980590C (en) 2022-04-12
US20170006018A1 (en) 2017-01-05
AU2016243115A1 (en) 2017-10-19
CN107534667A (zh) 2018-01-02
AU2021229223A1 (en) 2021-10-07
AU2016243115B2 (en) 2019-02-07
KR102311843B1 (ko) 2021-10-14
CN107534667B (zh) 2021-07-30
AU2019203153A1 (en) 2019-05-30
CA2980590A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
JP6838799B2 (ja) キーエクスポート技術
US20240126895A1 (en) Data security using request-supplied keys
US10511633B2 (en) Trusted-code generated requests
US11329962B2 (en) Pluggable cipher suite negotiation
US11184155B2 (en) Cryptographic key management for imported cryptographic keys
US20220166631A1 (en) Complete forward access sessions
US9973481B1 (en) Envelope-based encryption method
US11570158B2 (en) Efficient use of keystreams
US9596263B1 (en) Obfuscation and de-obfuscation of identifiers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201204

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210208

R150 Certificate of patent or registration of utility model

Ref document number: 6838799

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250