JP2017069989A - パラメータベースのキー導出 - Google Patents

パラメータベースのキー導出 Download PDF

Info

Publication number
JP2017069989A
JP2017069989A JP2017007876A JP2017007876A JP2017069989A JP 2017069989 A JP2017069989 A JP 2017069989A JP 2017007876 A JP2017007876 A JP 2017007876A JP 2017007876 A JP2017007876 A JP 2017007876A JP 2017069989 A JP2017069989 A JP 2017069989A
Authority
JP
Japan
Prior art keywords
key
signature
message
keys
information
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
JP2017007876A
Other languages
English (en)
Other versions
JP6527179B2 (ja
Inventor
ビー.ロス グレゴリー
B Roth Gregory
ビー.ロス グレゴリー
ジェフリー ベーム ブラッドリー
Jeffery Behm Bradley
ジェフリー ベーム ブラッドリー
ディー.クラヘン エリック
D Crahen Eric
ディー.クラヘン エリック
エム.アイラック クリスティアン
M Ilac Cristian
エム.アイラック クリスティアン
アール.フィッチ ナザン
R Fitch Nathan
アール.フィッチ ナザン
ジェイソン ブランドワイン エリック
Jason Brandwine Eric
ジェイソン ブランドワイン エリック
ロス オニール ケヴィン
Ross O'neill Kevin
ロス オニール ケヴィン
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
Priority claimed from US13/248,962 external-priority patent/US9178701B2/en
Priority claimed from US13/248,953 external-priority patent/US9203613B2/en
Priority claimed from US13/248,973 external-priority patent/US9197409B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2017069989A publication Critical patent/JP2017069989A/ja
Priority to JP2019089153A priority Critical patent/JP6895478B2/ja
Application granted granted Critical
Publication of JP6527179B2 publication Critical patent/JP6527179B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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
    • 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
    • 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/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】認証のためのシステムおよび方法を提供する。【解決手段】認証のためのシステムおよび方法は、認証当事者と認証者との間で共有される秘密信用情報からキーを生成する。このキーの生成は、キーを生成するために使用される結果として秘密信用情報よりも小さな使用範囲で使用可能な生成されたキーを生成する、特殊情報を利用することを伴い得る。さらに、キーの生成は関数の複数の起動を伴い得、少なくとも関数の起動のサブセットのそれぞれが、関数の以前の起動から生成されたキーよりも小さな範囲の許容できる使用を有するキーをもたらす。生成されたキーは、署名キーとしてメッセージに署名するために使用され得る。1つ以上のアクションが、メッセージおよび/またはそのメッセージが送信された様式が、キーの使用の制限に準拠するかどうかに応じて行われ得る。【選択図】図1

Description

コンピューティング環境は多くの形態をとる。例として、組織は多くの場合、コンピューティングデバイスのネットワークを利用して、強固なサービスのセットをそれらのユーザに提供する。ネットワークは多くの場合、複数の地理的境界に及び、しばしば他のネットワークとつながっている。組織は、例えば、コンピューティングリソースの内部ネットワークおよび他者によって管理されるコンピューティングリソースの両方を使用してその事業を支援し得る。組織のコンピュータは、例えば、他の組織のコンピュータと通信して、別の組織のサービスを使用している間、データにアクセスおよび/または提供し得る。多くの場合において、組織は他の組織によって管理されるハードウェアを使用して、遠隔ネットワークを構成および操作し、それによってインフラコストを低減し、他の利益を得る。
多様なコンピューティング環境は多種多様な応用に有用であることが証明されているが、そのような環境は多くの課題を提示する。例えば、ある組織的目標を増進させるためにコンピュータリソースを構成することは、別の組織的目標の増進に悪影響を及ぼし得る。例えば、コンピューティングリソースのセキュリティの効率的な管理は、多くの場合、データおよびサービスへの効率的なアクセスを犠牲にし得る。セキュリティと効率性の目標のバランスをとることは、極めて困難であり得、しばしば多大な労力とリソースを必要とする。
関連出願の相互参照
本出願は、2011年9月29日に提出された米国特許出願第13/248,962号、表題「PARAMETER BASED KEY DERIVATION」(代理人整理番号90204−813889(029400PC))、2011年9月29日に提出された同第13/248,953号、表題「TECHNIQUES FOR CLIENT CONSTRUCTED SESSIONS」(代理人整理番号90204−818478(032300US))、および2011年9月29日に提出された同第13/248,973号、表題「KEY DERIVATION TECHNIQUES」(代理人整理番号90204−813890(029500US))に対する優先権を主張し、それらの全開示は、参照により本明細書に組み込まれる。
少なくとも1つの実施形態に従って、本開示の様々な態様を実現するために使用され得る、コンピューティング環境の例示説明となる実施例を示す。 少なくとも1つの実施形態に従って、複数のフォルトゾーンを管理するコンピューティングリソースプロバイダを含む、環境の例示説明となる実施例を示す。 少なくとも1つの実施形態に従って、図2のフォルトゾーン内の環境の例示説明となる実施例を示す。 少なくとも1つの実施形態に従って、図3に示される環境等の環境を支援するために使用され得る、コンピューティングリソース構成の例示説明となる実施例を示す。 少なくとも1つの実施形態に従って、コンピューティング環境に関与する様々な要素に異なる範囲の権限が割り当てられ得る例示の様式を示す図表である。 少なくとも1つの実施形態に従って、メッセージ署名検証プロセスの参加者間で情報が通信され得る例示の様式を示す図表である。 一実施形態に従って、メッセージに署名するためのプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、署名検証のためのプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、キーを配布する例示の様式を示す図表である。 少なくとも1つの実施形態に従って、様々な範囲の権限を提供する様式で、キーを配布する例示の様式を示す図表である。 少なくとも1つの実施形態に従って、キー導出のプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、複数制限キー導出を示す図表である。 少なくとも1つの実施形態に従って、署名を導出するための関数の例示説明となる実施例である。 少なくとも1つの実施形態に従って、どのように複数キー導出が実行および使用され得るかの、例示説明となる実施例である。 少なくとも1つの実施形態に従って、キーが導出され得る例示の様式を示す図表である。 少なくとも1つの実施形態に従って、キーが導出され得る方法の別の実施例を示す図表である。 少なくとも1つの実施形態に従って、キーが導出され得る方法のさらに別の実施例を示す図表である。 少なくとも1つの実施形態に従って、セッションを開始するためのプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、セッションキーを生成するためのプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、セッションの間に1つ以上のコンピューティングリソースへのアクセスを得るためのプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、1つ以上のコンピューティングリソースに対して要求されたアクセスを付与するかどうかを決定するためのプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、権限を委任するためのプロセスの例示説明となる実施例を示すフローチャートである。 少なくとも1つの実施形態に従って、権限の複数の委任の例示説明となる実施例を表す図表である。 複数の権限からのキーを使用してキーが導出され得る様式の例示説明となる実施例を表す図表である。
以下の説明において、様々な実施形態が説明される。説明の目的で、実施形態の完全な理解を提供するために、特定の構成および詳細が記載される。しかしながら、実施形態が特定の詳細なしに実施され得ることも当業者には明らかとなるであろう。さらに、説明される実施形態を曖昧にしないために、良く知られた特徴は、省略または簡素化され得る。
本明細書において記載および提案される技法は、様々な実施形態に従って、キー生成のためのシステムおよび方法を含む。キーは、様々な目的で、例えば、メッセージ署名スキームにおける認証および参加に使用され得る。一実施形態において、コンピューティングリソースプロバイダは、サービスのユーザデバイスから受信された電子要求に少なくとも部分的に基づいて、コンピューティングサービスを顧客に提供する。サービスは、提供され得る任意の適切なサービスであってよく、限定するものではないが、データへのアクセス、操作を行うためのコンピューティングリソースへのアクセス、データストレージサービスへのアクセス等が挙げられる。
サービスが安全な様式で提供されることを保証するために、本開示の様々な実施形態は、要求が正規であることを保証するために、要求(「メッセージ」とも称される)を認証する技法を利用する。一実施形態において、要求は、以下でさらに詳述されるように、ハッシュメッセージ認証符号(HMAC)アルゴリズムまたは他の適切なアルゴリズムを使用して認証される。
一実施形態において、認証当事者(例えば、サービスのユーザまたはユーザの代わりに動作する当事者)および認証者(例えば、サービスのプロバイダまたはプロバイダの代わりに動作する当事者)の両方は、キーと称され得る秘密信用情報を共有する。認証者は、複数のユーザのために共有された秘密信用情報を記憶し得る。トランザクションの一部として、認証当事者は、共有された秘密信用情報を使用して要求に署名し得、それによって署名を形成する。署名は、要求とともに認証者に提供され得る。認証者は、共有された秘密信用情報のそれ自体のコピーを使用し得、受信された要求のための署名を生成し、生成された署名が受信された署名と一致するかどうかを比較することによって(例えば、受信された署名と同一であることによって)、共有された秘密信用情報を使用して要求が署名されたかどうかを決定する。共有された秘密信用情報を使用して要求が署名されたことが決定された場合、要求は本物であると見なされてよく、したがって要求が満たされるべきであることが決定され得る。
上記対話は対称であるため(すなわち、両方がそれらの役割を果たしているときに共通の情報を利用する)、認証者が保持する共有された秘密信用情報を使用して、両方が認証当事者を認証するか、またはそれらの代わりに動作することができる。結果として、これらの信用を保護するために高度のセキュリティが望ましい。高度のセキュリティを維持することは、マイナスの性能および可用性の結果を有し得る。例えば、高度のセキュリティを維持することは、キーストレージのための集中型システムを維持することを含み得る。しかしながら、ユーザおよび/またはサービスの追加が集中型システムに大きな負荷をかけるため、そのような集中型システムは、スケーリングボトルネックを引き起こし得る。そのような集中型システムが機能しない場合、要求を認証することは困難または不可能であり得る。したがって、集中化は、セキュリティに対する利点およびサービスのスケーリングおよびサービスの可用性に対する欠点の両方を提供する。
一実施形態において、そのようなシステム(および他のシステム)のマイナスの影響は、認証当事者が共有された秘密信用情報を有し、したがって、アーチファクトとともに署名された要求において特定されるアクセスを得る権限が当てられている可能性が高いことを証明するために使用され得る、共有された秘密信用情報アーチファクトから導出する署名プロトコルを利用することによって低減される。一実施形態において、そのようなアーチファクトは、共有された信用情報自体の代わりに、共有された信用情報の導出に少なくとも部分的に基づく値を署名として許容するように認証者コンピュータシステムを構成することによって得られる。共有された信用情報の導出は、以下でより完全に記載されるように、その導出が共有された信用情報の実際の決定を可能にしないようにするものであり得る。
例えば、一実施形態において、認証当事者は、
HMAC(M,HMAC(X,credential))
を伴う署名を行うことができ、Mはメッセージであり、HMAC(X,credential)は、共有された秘密信用情報から導出されたアーチファクトである。Xの値は、認証当事者および認証者の両方に知られているなんらかの値であってよく、公的に入手可能であり得る。例えば、Xは現在の日付であってよく、既定の様式で符号化されて、HMAC(X,credential)が、認証当事者および認証者によって一貫して計算されることを保証し得る。別の例として、Xは、アーチファクトが使用可能であるサービスの識別子であってよい。さらに別の実施例として、Xは、複数の意味論的意味を符号化し得、認証当事者および認証者の両方が一貫してアーチファクトを計算するような様式で提供され得る。意味論的意味は、キーの使用に対する制限であってよく、キーを形成する導出がこれ以上使用されるべきでないことを示す意味を含む。本パラグラフの前述の実施例を組み合わせると、Xは、「20110825/DDS」として符号化されてよく、スラッシュの左側の文字列は日付を表し、スラッシュの右側の文字列は、Xで計算されたアーチファクトが使用可能であるサービス名を表す。一般的に、Xは、認証当事者および認証者の両方に一貫して符号化された任意の値または一式の値であり得る。以下で論じられるように、HMAC関数以外の他の適切な関数が使用され得ることに留意すべきである。
HMACを利用する実施例に戻ると、一実施形態において、Xの値は、追加の利点を提供するために選択される。記述されるように、Xは、(必ずしもそうではないが)1つ以上の意味論的意味に対応し得る。一実施形態において、タイムスタンプ、サービス名、地域名等の意味論的意味を使用して、本開示の技法により形成されたアーチファクトが、Xから導出されたキーの使用に関する対応する制限を提供するシステムを提供する。このようにして、生成されたキーの漏洩が望ましくない当事者による認証を許可し得るにもかかわらず、キーを符号化するために使用される制限は、キーが漏洩されたときに、悪影響を最小限に抑えることを可能にする。例として、キーを導出するために使用される時間制限は、システムが、送信された署名が、署名送信時に有効であったキーで署名されたかどうかを確認するための効率的な方法を提供する。具体的な例として、現在の日付を使用してキーを導出させ、認証者システムがその現在の日付に送信された署名のみを許容する場合、認証者システムは、異なる日付で導出されたキーを使用して生成された署名が無効であることを決定する。同様に、特定のサービスの識別子で導出されたキーは、別のサービスとの併用で無効となる。他の実施例が以下に提供される。
記述されるように、本開示の様々な技法は、複数のパラメータを使用してキーを導出することを可能にする。一実施形態において、キーは、HMAC関数の複数の使用を通じて複数のパラメータから導出される。例えば、キーは以下のように計算されてよく、
S=HMAC(…HMAC(HMAC(HMAC(K,P1),P2),P3)…,PN
式中、Kは、共有された秘密信用情報であり、Piはパラメータである。キー、Ksを使用して署名を生成してもよく、
S=HMAC(KS,M)
式中、Mは、正規化され得るメッセージである。このようにして、キーは、階層化様式で導出され、キーの部分的導出が分散システムの様々な構成要素に伝えられることを可能にする。例えば、KP1=HMAC(K,P1)が計算されて、分散システムの1つ以上の構成要素に伝えられてよい。KP1を受信する構成要素は、KP2=HMAC(KP1,P2)を計算してよく、式中、P2は、各構成要素に対して同じであり得るか、または一部または全部の構成要素に対して異なり得る。様々な構成要素によって計算されたKP2の値は、その計算を分散システムの他の構成要素に伝えてよく、KP3=HMAC(KP2,P3)を計算し得る。各構成要素は、それが計算した結果、および他の構成要素によって算定および計算される可能な結果をキャッシュし得る。このようにして、導出されたキーの算定が分散システムの他の構成要素によって行われ得るため、共有された秘密キーを記憶するデータストア周辺のさらなるセキュリティが提供され得る。
本開示の技法は、セッションの開始も提供する。例えば、論じられるように、共有された秘密信用情報および1つ以上のパラメータが、キーを導出するために使用され得る。したがって、セッションのパラメータが、そのセッション中に使用され得る秘密情報を生成するために使用され得る。信用情報は、要求したユーザによって、またはいくつかの実施形態において、信用情報が伝えられ、1つ以上のコンピューティングリソースへのアクセスが委任されたユーザによって使用されてよい。そのような場合、そのようなアクセスの受任者は、共有された秘密信用情報ではなく、共有された秘密信用情報から導出されたキーを使用するため、より高レベルのセキュリティが維持され、受任者による将来の使用を防ぐために、共有された秘密信用情報を回転させる必要がない。以下でさらに詳述されるように、受任者は、本開示の技法を使用して委任者になってもよく、それらの多くは以下でさらに詳述される。
図1は、様々な実施形態に従って、本開示の態様を実現するための、例示の環境100の態様を示す。当然のことながら、ウェブベース環境が説明の目的で使用されるが、様々な実施形態を実現するために異なる環境が適宜使用されてよい。環境は、電子クライアントデバイス102を含み、それには、適切なネットワーク104によって要求、メッセージ、または情報を送信および受信し、デバイスのユーザに情報を返信するように動作可能な任意の適切なデバイスを含み得る。そのようなクライアントデバイスの例としては、パーソナルコンピュータ、携帯電話、携帯型メッセージングデバイス、ラップトップコンピュータ、セットトップボックス、パーソナルデータアシスタント、電子書籍リーダ等が挙げられる。ネットワークは、イントラネット、インターネット、セルラーネットワーク、ローカルエリアネットワーク、または任意の他のそのようなネットワークもしくはそれらの組み合わせを含む、任意の適切なネットワークを含むことができる。そのようなシステムに使用される構成要素は、選択されるネットワークおよび/または環境のタイプに少なくとも部分的に依存し得る。そのようなネットワークを介して通信するためのプロトコルおよび構成要素は、よく知られているため、本明細書において詳述されない。ネットワーク上の通信は、有線または無線接続、およびそれらの組み合わせによって使用可能であり得る。この例において、要求を受信し、それに応答してコンテンツを提供するために、環境がウェブサーバ106を含むので、ネットワークは、インターネットを含むが、他のネットワークの場合、当業者には明らかとなるように、同様の目的を果たす代替デバイスが使用され得る。
実例となる環境は、少なくとも1つのアプリケーションサーバ108およびデータストア110を含む。連鎖され得るか、または他の方法で構成されてよく、適切なデータストアからデータを取得する等のタスクを行うように相互にやりとりすることができる、いくつかのアプリケーションサーバ、階層、または他の要素、プロセス、もしくは構成要素が存在し得ることが理解されるべきである。本明細書において使用されるとき、「データストア」という用語は、データを記憶し、アクセスし、検索取得することができる、任意のデバイスまたはデバイスの組み合わせを指し、任意の組み合わせおよび数のデータサーバ、データベース、データストレージデバイス、およびデータストレージ媒体を、任意の標準、分散、またはクラスタ化環境に含み得る。アプリケーションサーバは、クライアントデバイスのための1つ以上のアプリケーションの態様を実行するために、必要に応じてデータストアと統合するための任意の適切なハードウェアおよびソフトウェアを含んでよく、アプリケーションのためのデータアクセスおよびビジネス論理の大部分を処理する。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、ユーザに伝送されるテキスト、グラフィック、オーディオ、および/またはビデオ等のコンテンツを生成することができ、この例ではHTML、XML、または別の適切な構造化言語の形態で、ウェブサーバによってユーザに提供され得る。全ての要求および応答の処理、ならびにクライアントデバイス102とアプリケーションサーバ108との間のコンテンツの送達は、ウェブサーバによって処理され得る。本明細書において論じられる構造化符号は、本明細書の他の部分で論じられる任意の適切なデバイスまたはホストマシン上で実行され得るため、ウェブサーバおよびアプリケーションサーバは必要とされず、単なる例示の構成要素であることが理解されるべきである。
データストア110は、特定の態様に関するデータを記憶するために、いくつかの別個のデータテーブル、データベース、または他のデータストレージ機構および媒体を含み得る。例えば、例示されるデータストアは、生産データ112およびユーザ情報116を記憶するための機構を含み、それらの情報は、生産サイドのコンテンツを提供するために使用され得る。データストアは、報告、分析、または他のそのような目的に使用され得る、ログデータ114を記憶するための機構を含むことも示される。例えば、ページ画像情報のため、および正しい情報にアクセスするためにデータストアに記憶される必要があり得る、多くの他の態様が存在し得ることを理解されるべきであり、必要に応じて上に列挙された機構のいずれにも、またはデータストア110内の追加の機構内にも記憶され得る。データストア110は、それと関連付けられた論理を通じて、アプリケーションサーバ108から命令を受信し、それに応答してデータを取得、更新、または他の方法で処理するように動作可能である。一実施例において、ユーザは、あるタイプのアイテムの検索要求を送信してもよい。この場合、データストアは、ユーザ情報にアクセスしてユーザの識別を検証してよく、カタログ詳細情報にアクセスして、そのタイプのアイテムに関する情報を得ることができる。次に情報は、例えば、ユーザデバイス102上のブラウザを介してユーザが見ることができるウェブページ上に列挙する結果において、ユーザに戻され得る。対象の特定のアイテムに関する情報は、ブラウザの専用ページまたはウィンドウ内で見ることができる。
各サーバは、通常、そのサーバの一般的な管理および操作のための実行可能なプログラム命令を提供するオペレーティングシステムを含み、通常、サーバのプロセッサによって実行されるとき、サーバがその意図される機能を実行することができる命令を記憶するコンピュータ可読ストレージ媒体(例えば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリ等)を含む。サーバのオペレーティングシステムおよび一般的な機能性に適切な実装は、既知であるか、または市販されており、特に本明細書における開示に照らして、当業者によって容易に実装される。
一実施形態における環境は、1つ以上のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続されるいくつかのコンピュータシステムおよび構成要素を利用する、分散コンピューティング環境である。しかしながら、当業者であれば、そのようなシステムが、図1に示されるよりも少数または多数の構成要素を有するシステム内で等しく良好に動作し得ることを理解するであろう。したがって、図1におけるシステム100の描写は、性質的に例示的であると見なされるべきであり、本開示の範囲に限定するものではない。
図2は、少なくとも1つの実施形態に従って、複数のフォルトゾーン204を管理するコンピューティングリソースプロバイダ202を含む環境200の例示説明となる実施例を示す。コンピューティングリソースプロバイダは、一実施形態において、1人以上の顧客206のためにコンピュータハードウェアを運用する組織である。コンピューティングリソースプロバイダは、様々な方法でコンピューティングリソースを提供し得る。例えば、一実施形態において、コンピューティングリソースプロバイダ202は、顧客206によって使用するための構成されるハードウェアを管理する。コンピューティングリソースプロバイダ202は、顧客206がハードウェアを使用してコンピューティングリソースを、プログラムによって構成することを可能にするインターフェースを提供する。例えば、コンピューティングリソースプロバイダは、顧客によってプログラムで制御される仮想コンピュータシステムを実行する、ハードウェアサーバを維持してよい。別の実施例として、コンピューティングリソースプロバイダ202は、高耐久性データストレージおよびブロックレベルのデータストレージ等の遠隔データストレージソリューションを提供するために、様々なデータストアを管理し得る。
フォルトゾーンは、一実施形態において、各フォルトゾーンが別のフォルトゾーンの故障に耐えるように、1つ以上のフォルト境界によって分離されるコンピューティングリソースの集合である。実施例として、各フォルトゾーン204は、別個のデータセンターであってよい。したがって、恐らく停電または他の妨害イベントに起因して1つのデータセンターが運転を中断した場合、他のデータセンターは、運転を継続し得る。フォルトゾーンはそれぞれ、異なる地理的場所にあってよく、フォルトゾーンのうちのいくつか、または全部が地政学的境界によって分離され得る。例えば、フォルトゾーンの2つ以上は異なる国にあってよい。例示の目的で、本開示は、フォルトゾーンがデータセンターである多数の例を提供することに留意すべきである。しかしながら、フォルトゾーンは、多数の他の方法で定義され得る。例えば、同じデータセンター内の別個の部屋は、様々な実施形態に従うと、別個のフォルトゾーンとして見なされ得る。別の実施例として、同じ場所にあるが、異なるバックアップ発電機により支援される、および/または異なるネットワークリソースにより支援されるコンピューティングリソースは、異なるフォルトゾーンとして見なされ得る。さらに別の実施例として、データセンターを、データセンターの各群がフォルトゾーンとして見なされ得るように群化してもよい。さらに、フォルトゾーンに障害が発生し得る多くの理由があり得、送電網の稼働、パブリックネットワークの稼働、電力の政治的主張に関する理由、および他の理由を含む。
一実施形態において、顧客206は、インターネット等のネットワーク208によってコンピューティングリソースプロバイダ202と通信する。顧客206は、フォルトゾーン204の1つ以上において構成されたリソースを有してよく、リソースを構成および操作するために、コンピューティングリソースプロバイダのウェブサービスアプリケーションプログラミングインターフェース(API)を起動させるメッセージ等の電子メッセージを送信することによってリソースと通信し得る。顧客は、顧客のリソースに影響を及ぼす、可能性のある障害の影響を低下させるために、複数のフォルトゾーン内のリソースを利用してよい。コンピューティングリソースプロバイダ202のリソースを利用して公衆がアクセス可能なウェブサイトを運営する顧客は、例えば、別個の複数フォルトゾーン内にウェブサーバおよび他のサーバを維持し、1つのフォルトゾーン内のサーバが故障した場合に、別のフォルトゾーン内のサーバにアクセスすることによって、公衆が依然としてウェブサイトにアクセスできるようにする。
図3は、フォルトゾーン302の内側の環境300の例示説明となる実施例を示し、そのフォルトゾーンは、図2に例示されるコンピューティングリソースプロバイダのフォルトゾーンであり得る。フォルトゾーン302は、一実施形態において、顧客のために様々なサービスを提供するために使用されるコンピューティングリソースを含む。例えば、図3に示されるように、フォルトゾーン302は、永続的データストレージサービスを提供するために使用されるコンピューティングリソースを含み、顧客のために比較的大量のデータを安価に重複して記憶し得る。そのようなサービスは、大量のデータストレージおよび/またはデータストレージのセキュリティが必要とされるが、入力/出力性能が高優先度でない場合に使用され得る。フォルトゾーン306は、ブロックレベルのストレージデバイス、物理デバイス、および/または仮想デバイスの使用を顧客に提供する、ブロックデータストレージサービス306を含んでもよい。顧客は、例えば、ブロックレベルのストレージデバイスを、同じく顧客に利用されるコンピュータシステムに取り付けてもよい。コンピューティングサービスを顧客に提供し得る仮想コンピュータシステムサービス308も示される。一実施形態において、仮想コンピュータシステムサービス308は、コンピューティングリソースプロバイダによって維持される物理サーバ上の顧客のための仮想コンピュータシステムを実装することによって、コンピューティングサービスを提供するが、物理コンピュータシステムが顧客使用のために顧客に割り当てられる等の変型が可能である。仮想コンピュータシステムに関する一実施形態において、顧客は、それらのニーズに従って仮想コンピュータシステムをプログラムで管理してよい。例えば、図3に示されるように、顧客は、仮想コンピューティングサービスプロバイダの顧客のサーバ顧客に対する仮想コンピュータシステムサービス308の仮想コンピュータシステムを構成してもよい。仮想コンピュータシステムは、例えば、公衆がアクセス可能なウェブサイトを稼働するように構成されてよい。仮想コンピューティングリソースプロバイダの顧客およびその顧客の顧客は、様々な実施形態において、図2に関して上述のネットワーク208であり得る、ネットワーク310によりサービスと通信することによって、フォルトゾーン302内で運用される様々なサービスにアクセスしてよい。
図3に示される様々な実施形態が、図面に示され、本明細書に記載される全ての例示的な実施形態と同様に、性質的に例示であり、変型も本開示の範囲内であると見なされることに留意すべきである。例えば、例示されるものとは異なる他のサービスは、例示されるサービスに加えて、または代わりにフォルトゾーン302内で提供され得る。図3において省略(「・・・」)で示されるように、例えば、追加のサービスがフォルトゾーン302内で稼働され得る。さらに、いくつかのサービスは他のサービスを利用してもよい。例えば、複数のサービス(例えば、ブロックレベルのデータストレージサービス306および仮想コンピュータシステムサービス308)は、関連データベースサービス、電子メールサービス、および一般に、コンピューティングリソースプロバイダのリソースを使用して提供され得る任意のタイプのコンピューティングサービス等の他のサービスを提供するために一緒に利用されてよい。
図3に例示されるように、コンピューティングリソースプロバイダのサービスのそれぞれは、別個の検証手段312を含んでよい。検証手段は、コンピューティングデバイス、コンピューティングデバイスの集合、アプリケーションモジュール、または顧客によって、および可能性として他のコンピュータシステムによって行われた様々な証明を検証する他のリソースであってもよい。一実施形態において、検証手段312のそれぞれは、以下でさらに詳述されるように、本明細書において様々な実施形態に従って生成され、次にコンピューティングリソースにアクセスする要求と併せて顧客によって提供されるメッセージ署名を検証する。キーおよび他の関連情報は、中央キー権限者から検証手段に伝播されて、検証手段が情報を検証することを可能にし得る。検証手段を有する各サービスは、特定の実施形態の例示説明となる実施例であるが、他の設定が本開示の範囲内であることに留意すべきである。例えば、単一の検証手段が、複数のサービス、ひいては全サービスを支援し得、さらには複数のフォルトゾーンを支援し得る。
図4は、少なくとも1つの実施形態に従って、図3に示される環境等の環境を支援するために使用され得る、コンピューティングリソース構成の例示説明となる実施例を示す。図4は、図3内のフォルトゾーンがデータセンターである特定の実施例を特定的に示す。したがって、図4に戻ると、データセンター402は、複数のサーバラック404〜406を含んでよい。データセンター402は、図4に示されるデータセンター等の本開示の様々な実施形態において使用され得る、1つ以上のデータセンターの実施例である。サーバラック404とサーバラック406との間の省略(「・・・」)は、データセンター402が、任意の適切な数のサーバラックを含んでよいことを示すが、明確にするために、図4では2つのみが示される。各サーバラック404〜406は、複数のサーバコンピュータ408〜414および416〜422に対する電力およびデータ通信等のサービスの維持に関与し得る。ここでも省略(「・・・」)は、サーバラック404〜406が任意の適切な数のサーバコンピュータを含み得ることを示す。例えば、サーバコンピュータ408〜422は、1つ以上の仮想コンピュータシステム(VCS)サーバおよび/または1つ以上のデータストアサーバを含み得る。各サーバ408〜422は、実装リソース専用ユニットに対応し得る。
図4において、各サーバラック404〜406は、ラックスイッチ424〜426を含むように描かれる。ラックスイッチ424および426は、デジタルデータのパケットと、それらそれぞれの一式のサーバコンピュータ408〜414および416〜422とのスイッチングに関与し得る。ラックスイッチ424〜426は、データセンタースイッチング構造428に通信で接続され、次にデータセンター402を、インターネットを含む1つ以上の他のコンピュータネットワークに接続する、一式のエッジルータ430に通信で接続され得る。スイッチング構造は、1つ以上のスイッチング層に配列された1つ以上のスイッチタイプの複数の相互接続されたスイッチ432〜438(明確にするために、図4では4つのみが示される)、ならびにルータ、ゲートウェイ、ブリッジ、ハブ、リピータ、ファイヤーウォール、コンピュータ、およびそれらの適切な組み合わせを含む、任意の適切な一式のネットワーキング構成要素を含み得る。少なくとも1つの実施形態において、ラックスイッチ424〜426およびエッジルータ430は、スイッチング構造428の一部として見なされる。ラックスイッチ424〜426、エッジルータ430、およびスイッチング構造428の構成要素は、図2のネットワークハードウェア224の例である。
上記のように、本開示の様々な実施形態は、異なる理由で付与される様々なレベルの権限を可能にする。図5は、コンピューティング環境に関与する様々な要素が、少なくとも1つの実施形態に従って、異なる範囲の権限を割り当てられ得る例示の様式を示す図表である。図5において、コンピューティングリソースプロバイダ502が示される。一実施形態において、コンピューティングリソースプロバイダ502は、図5に例示されるように、そのリソースに対して権限を有し、その権限をリソースの使用において、様々な参加者の間で分配することができる。本明細書における他の例示および説明と一致する例示の目的で、図5は、ドメインに対して権限を有するコンピューティングリソースプロバイダ502を示す。しかしながら、本開示の実施形態は、権限ドメインの他の所有者にも適用可能である。例えば、権限の所有者は、政府もしくは政府機関、別の機関の下部組織、または一般にいくつかのドメインに対して権限を有する任意のエンティティであってよい。
図5の例示説明となる実施例に戻ると、コンピューティングリソースプロバイダ502は、異なるサブエンティティが、異なるサブドメインに対して権限を有することを可能にすることによってその権限を管理する。例えば、この図に示されるように、コンピューティングリソースプロバイダのいくつかのフォルトゾーン504のそれぞれには、コンピューティングリソースプロバイダ502のドメインの対応するサブドメインが提供される。したがって、各フォルトゾーンは、それ自体のリソースに対して権限を有し得るが、別のフォルトゾーンのリソースに対しては権限を有さない(しかしながら、いくつかの例では、いくつかのサブドメインに対する権限が共有されてもよい)。したがって、一実施形態に従って、フォルトゾーンは、フォルトゾーン内のコンピューティングリソースへのアクセスをユーザに提供し得るが、別のフォルトゾーンのコンピューティングリソースへのアクセスは提供し得ない。
上記のように、各フォルトゾーンは、1つ以上のサービス506を含み得る。したがって、図5に示されるように、各サービスは、対応するフォルトゾーン506のドメインのサブドメインに対応可能であり得る。したがって、サービスは、一実施形態において、そのサービスによってアクセス可能なリソースへのアクセスを提供することができるが、他のサービスによってアクセス可能なリソースへのアクセスは提供できない。各サービスは、1人以上の顧客508に提供され得るため、各顧客は、対応するサービス506の権限のサブドメインに関与し得る。したがって、一実施形態において、顧客は、対応するサービスに関与するそれ自体のリソースへのアクセスを提供し得るが、別の顧客に対するアクセスは提供し得ない。具体的な例示説明となる実施例として、サービスが仮想コンピューティングリソースサービスである場合、顧客は、それ自体の仮想コンピュータシステムへのアクセス(例えば、パブリックアクセス)を提供し得るが、許可なしでは、他の顧客の仮想コンピュータシステムへのアクセスを提供することはできない。
記載のとおり、図5に示される権限の特定の割り当ては、例示説明の目的であり、多数の変型が本開示の範囲内であると見なされる。記載のとおり、本開示の実施形態は、コンピューティングリソースプロバイダによって管理されるドメインの外側にある権限のドメインに適用可能であり、サブドメインは、特定のニーズおよび環境に従って決定され得る。さらに、図5は、権限の最小サブドメインを有する仮想リソースプロバイダの顧客を示す。しかしながら、本開示の技術は、顧客ドメインを1つ以上のサブドメインに分割することを可能にし得る。
本開示の様々な実施形態は、メッセージ署名に関する。図6は、少なくとも1つの実施形態に従って、メッセージ署名検証プロセスの参加者の間で情報が通信され得る例示の様式を示す図表600である。一実施形態において、キーソース602は、メッセージ送信者604および署名検証手段606の両方にキーを提供する。キーソースは、少なくともメッセージ送信者604および署名検証手段606にキーを提供するように構成されたコンピュータシステムであり得る。キーソースはまた、本明細書に記載される様々な実施形態を含む、様々な技術を使用してキーを生成し得るか、または別のソースから生成されたキーを得てもよい。メッセージ送信者604は、メッセージおよび署名を署名検証手段606に送信するように構成されたコンピュータシステム、または署名検証手段606に関連して動作する他の構成要素であり得る。メッセージ送信者604のコンピュータシステムは、例えば、コンピューティングリソースプロバイダの顧客のコンピュータシステムであり得る。署名検証手段606は、以下で論じられるように、メッセージおよび署名を受信し、その署名を分析してメッセージが本物であることを検証するように構成されたコンピュータシステムであり得る。つまり、署名検証手段606は、受信された署名およびメッセージを分析して、署名が正しいキーKを使用して生成されたかどうかを決定し得る。図6は、キーソース602が、メッセージ送信者604と署名検証手段606とを分離することを示すが、メッセージ送信者または署名検証手段のいずれかもキーソースであり得ることに留意すべきである。例えば、コンピューティングリソースプロバイダの顧客は、それら自身のキーを提供し得る。次に顧客キーは、署名の検証のために署名検証手段に提供されてよい。さらに、メッセージ送信者604および署名検証手段606は、それぞれ異なるキーをキーソース602から受信し得る。例えば、メッセージ送信者604は、キーを受容してよく、署名検証手段606は、本開示の様々な実施形態を使用して、メッセージ送信者604によって受信されたキーから導出されたキーを受信し得る。
図6に示されるように、署名検証手段606は、メッセージおよび対応する署名をメッセージ送信者604から受信する。メッセージは、例えば、コンピューティングサービス608へのアクセスの電子要求であり得る。メッセージは、例えば、ウェブサービスに対するAPIコールを符号化し得る。署名およびメッセージの分析が、そのメッセージが本物であることを示す場合、次に署名検証手段は、メッセージ送信者が要求されたアクセスを有し得ることをサービス(またはそのサービスへのアクセスを制御する構成要素)を通知する。例えば、署名検証手段は、受信されたメッセージをサービスに渡し、そのサービスが要求を満たすことを可能にし得る。したがって、サービスは、上述の様々なサービス等の要求を満たすために動作可能なコンピュータシステムであってよい。図6の様々な構成要素および他の構成要素に関する様々な説明は、それらの構成要素が、ある動作を行うように構成されたコンピュータシステムとして実装され得るとして説明するが、構成要素は、その動作を行うように集約的に構成されたコンピューティングデバイスのネットワーク等の複数のコンピューティングデバイスをも含み得ることに留意されたい。
図7は、一実施形態に従って、メッセージに署名するためのプロセス700の例示説明となる実施例を示すフローチャートである。プロセス700(もしくは本明細書に記載される任意の他のプロセス、あるいはそれらの変型および/または組み合わせ)の一部または全部は、実行可能な命令を備えて構成された1つ以上のコンピュータシステムの制御下で行われてよく、1つ以上のプロセッサ上でハードウェアにより集約的に実行するコード(例えば、実行可能な命令、1つ以上のコンピュータプログラム、もしくは1つ以上のアプリケーション)、またはそれらの組み合わせとして実装されてよい。コードは、コンピュータ可読ストレージ媒体上で、例えば、1つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態で記憶されてもよい。コンピュータ可読ストレージ媒体は、非一時的であり得る。
一実施形態において、プロセス700は、キーKを得ること701を含む。キーは、任意の適切な様式で得ることができる。例えば、キーは、プロセス700を行うコンピュータシステムによって生成されてよい。キーは、プロセス700を行うコンピュータシステムによって電子的に受信され得る。一般的に、キーを得ることは、任意の適切な様式で行われてよい。キーは、利用される特定の署名アルゴリズムのための任意の適切なキーであってよい。例えば、ハッシュベースのメッセージ認証符号(HMAC)スキームが、セキュアハッシュアルゴリズム(SHA)−256暗号ハッシュ関数とともに使用されている場合、キーは、例えば、64バイト以下のシーケンス等のバイトシーケンスであり得る。異なる暗号ハッシュ関数、例えば、SHA−224、SHA−384、およびSHA−512も使用され得る。
一実施形態において、プロセスは、メッセージMを正規化して、正規化されたメッセージMcを形成することも含む。メッセージを正規化することは、検証手段がそのメッセージの署名が有効であるかどうかを検証することを可能にする形式で、メッセージ内に情報を配置することを含み得る。一般に、多くの情報通信プロトコルは、メッセージを成すビットを変換するが、そのメッセージは意味的に同一のままである。結果として、2つの意味的に同一のメッセージが、異なるビットセットを含んでよく、したがって異なる署名を生じ得る。したがって、正規化は、署名が検証され得ることを保証する、単純な方法を可能にする。しかしながら、本開示のいくつかの実施形態は、メッセージの正規化を必要としないことに留意すべきである。例えば、利用される様々なプロトコルが、異なるビットセットを含む意味的に同一のメッセージを生じない場合、正規化は必須でない場合があり、省略されてよい。一般的に、正規化は、署名されたメッセージの操作なしに、署名検証が良好に行われ得るいかなる場合においても省略されてよい。
一実施形態において、署名は、HMAC(K,Mc)を計算することによって生成され、HMAC()は、上述のようなHMAC関数である。HMAC関数は、本開示の様々な実施形態に対してそれらを特に有用にするいくつかの特性を有する。例えば、HMAC関数は、コンピュータシステムによって効率的に計算することができ、それによって他のタスクに対して使用可能なコンピューティングリソースを残す。さらに、HMAC関数は原像計算困難性(非変換性)である。例えば、KがキーでありMがメッセージである署名S=HMAC(K,M)が与えられた場合、本質的にキーKに関する情報は得られない。例えば、SからKを決定することは、計算上不可能であるか、または少なくとも実践的はない。HMAC関数は第二原像計算困難性でもある。言い換えれば、S=HMAC(K,M)およびMが与えられた場合、S=HMAC(K,M′)となるように、Mとは異なるメッセージM′を決定することは不可能であるか、または少なくとも計算上実践的でない。さらに、HMAC関数は、偽造困難性である。例えば、S=HMAC(K,M)のオラクルが与えられた場合、そのオラクルをN回(Nは正の整数)クエリすることは、最大N個の署名−メッセージ対を可能にする。言い換えれば、一式の署名−メッセージ対が与えられた場合、キーを決定することや、またはそのセット内にないメッセージに対して正しい署名を生成する関数を決定することは不可能であるか、または計算上実践的でない。
HMAC関数は、様々な実施形態に対して特に有用であるが、他の関数も使用することができる。例えば、HMAC関数の上記特性を持つ任意の関数が使用されてもよい。さらに、必ずしも上記特性の全部(またはいずれか)を有するとは限らない他の関数は、例えば、セキュリティが最大の関心事でない場合、および/またはセキュリティが関心事であるが、他の機構を通じて維持される場合に使用され得る。様々な実施形態の様々な例示説明は、HMAC関数への特定の入力を示すが、変型も可能であることに留意すべきである。例えば、HMAC関数(または他の関数)の入力は異なり得る。上述のように、例えば、ある入力はキーである。しかしながら、この入力は、キーから導出され得るか、またはそうでなければ少なくとも部分的にキーに基づき得る。例示説明となる実施例として、入力は、接尾辞、接頭辞、またはその他としてキーに追加される、署名スキーム識別子(恐らくバージョン識別子)等の情報とともにキーを含み得る。別の実施例として、入力は、別のキーであり得る、キーの情報へのマッピングを使用することによって得られる情報であってよい。同様に、メッセージとして示される入力は、メッセージから導出され得る。本開示の範囲内であると考えられる別の例示の変型として、署名は、HMAC関数の出力ではないが、HMAC関数(または他の適切な関数)の出力から導出された1つ以上の値であり得る。いくつかの実施形態において、キーおよびメッセージは、逆順で関数に渡され得る。
図7の説明に戻り、署名がHMAC(K,Mc)を計算することによって一旦生成されると、その署名およびメッセージMは、署名を検証するコンピューティングデバイス、またはメッセージおよび署名の通信のためにインターフェースを提供するコンピューティングデバイス等の署名検証プロセスに関与する別のコンピューティングデバイスであり得る、受信者に提供される708。本明細書に明示的に記載される全ての実施形態と同様に、変型は、本開示の範囲内であると見なされる。例えば、正規化されたメッセージMCが、メッセージMの代わりに、またはそれに加えて受信者に提供され得る。さらに、メッセージMおよび署名を受信者に提供することは、キーをキー識別子と関連付けるデータストアにおいて、識別するために使用され得るキー識別子等の他の情報を提供することを含んでもよい。さらに、以下に論じられる、ポリシーを符号化するパラメータ等の他の情報が、メッセージMおよび署名とともに提供されてよい。
図8は、少なくとも一実施形態に従って、署名検証のためのプロセス800の例示説明となる実施例を示すフローチャートである。図8に示されるプロセス800は、図2に記載されるような検証手段によって行われてよい。さらに、プロセス800は、署名およびメッセージの受信に応答して、例えば、図7のプロセス700を行った別のコンピュータシステムに応答して行われてよい。一実施形態において、プロセス800は、上述のように、キーKを得ること802を含む。キーKを得ることは、様々な実施形態において他の動作を含んでもよい。例えば、プロセス800が、複数のキーから(例えば、コンピューティングリソースプロバイダの複数の顧客から)生成された署名を検証するコンピュータシステムによって使用される場合、キーKを得ることは、データストア内の複数のキーからキーを選択することを含む。データストアは、様々なキーを、検証のための署名を送信するものと関連付けてよい。例えば、コンピューティングリソースプロバイダの各顧客は、データストアを参照し、適切なキーを識別するために使用されるキー識別子(または複数のキー識別子)を有してよい。キー識別子は、メッセージおよびその署名の送信に関連して送信され得るか、またはそうでなければログイン信用情報の送信時等に決定され得る。キー識別子の受信者(例えば、メッセージ検証手段)は、データストアを参照してキー識別子に対応するキーがデータストア内にあるかどうかを決定してよく、そうでない場合は、次に、例えば、本明細書に記載される技術を使用して、共有された秘密信用情報から直接または間接的にキーを導出することによってキー自体を生成してよい。これを可能にするために、受信者は、一実施形態において、受信者が既に持っている情報(例えば、共有された秘密信用情報から導出されたキー)からキーを導出するために必要な情報を符号化する、キー導出パスへのアクセスを有してよい。この情報は、署名の付いたメッセージの送信者から受信者に提供され得るか、またはそうでなければ受信者が入手できるようにし得る。例えば、受信者は、現在の日付で、その割り当てられた領域およびコードを使用してキーを自動的に生成するようにプログラム化され得る。一般的に、署名を生成するために使用されたキー(またはいくつかの実施形態では、署名を検証するために使用され得る別のキー)を得る任意の方法を使用することができる。受信者は、目前の要求、または受信者に既知である、ある種の他の特性に関して、許容できるキーおよび許容できないキー導出パスに関してポリシーを実施し得る。
一実施形態において、署名SおよびメッセージMが受信される804。署名SおよびメッセージMは、図7のプロセス700を行ったコンピューティングデバイス等の送信者から電子的で受信され得る。次にメッセージMは、一実施形態に従って、Mcを決定するように正規化される806。メッセージMの正規化は、様々な実施形態において、署名Sが検証され得ることを保証する。したがって、一実施形態において、プロセス800は、HMAC(K,Mc)を計算することによって署名S′を生成すること808を含む。一実施形態において、S′は、HMAC(K,Mc)に等しいが、S′は、様々な実施形態においてHMAC(K,Mc)から導出され得る。例示の目的で、プロセス800の残りは、S′=HMAC(K,Mc)であるが、数値的変型が本開示の範囲内であるという前提で説明される。
したがって、一実施形態において、S′が受信された署名Sに等しいかどうかの決定が行われる810。言い換えれば、例えば、それがキーKを使用して生成された署名であるため、受信された署名が十分であるかどうかの決定が行われる。したがって、一実施形態において、S′およびSが等しくないことが決定された場合810、署名は検証されない812。しかしながら、S′がSに等しい場合、署名が検証される814。署名が検証されたかどうかに応じて、適切な動作が行われ得る。例えば、メッセージが、コンピューティングリソースへのアクセスの要求であった場合、要求されたアクセスは(少なくとも一時的に)否定され得る。同様に、メッセージがコンピューティングリソースへのアクセスの要求であり、署名が検証された場合、要求されたアクセスが許可され得る。しかしながら、行われる適切な動作は、署名が受信および検証される理由(複数可)に応じて様々な実施形態において広く異なり得ることに留意すべきである。
上記のとおり、本開示の様々な実施形態は、多数の環境に適用する。多くの環境において、セキュリティ管理の様々な態様の集中管理を有することが有用である。図9は、例えば、少なくとも一実施形態に従って、キーを配布する例示の様式を示す図表900である。図9において、中央キー権限者は、ある組織によって利用される様々なキーを含む、1つ以上のデータストア(集約的に「データストア」と称される)を維持する。キーは、例えば、組織のコンピューティングデバイスのユーザに対応し得る。ユーザ群の各ユーザには、例えば、1つ以上のキーが割り当てられてよい。一実施形態において、少なくともいくつかのキーが、組織の顧客(および/または顧客のユーザ)に対応する。例えば、一実施形態において、組織は、コンピューティングリソースプロバイダであり、コンピューティングリソースプロバイダの各顧客は、顧客のユーザが、コンピューティングリソースプロバイダによって維持されるコンピューティングリソースにアクセスすることを許可する1つ以上のキーに対応する。図7とともに上述の変型に従って、図8のプロセス800の他の適合もまた、本開示の範囲内である。
図9に示されるように、キー権限者902は、キーを複数のキーゾーン904に伝播する。キーゾーンは、受信されたキーが有効である組織のドメインであり得る。例えば、図2を参照すると、各キーゾーン904は、データセンター等のフォルトゾーンに対応し得る。キーゾーンは、必ずしもそうとは限らないが、地理的に定義され得る。例えば、各キーゾーンは、国、地域、または他の地理的に定義された地域に対応し得る。キーゾーンは、他の方法で定義されてもよい。例えば、各キーゾーンは、コンピューティングリソースプロバイダによって組織の顧客に提供されるサービス等に対応し得る。キーゾーンは、示されてはいないが、サブゾーンを有し得る。例えば、キーゾーンは、国に対応し得る。その国の内には複数の地域が存在し得、それぞれキーゾーンのサブゾーンに対応する。キーは、そのような実施形態においてサブゾーンに伝播され得る。
図9に示されるように、キーゾーン904は、キーゾーンの1つ以上の検証手段906にキーを伝播し得る。例えば、キーゾーンがデータセンターに対応する場合、データセンターのコンピューティングデバイスは、そのデータセンター内でコンピューティングリソースによって支援される複数のサービスのそれぞれに対する検証手段にキーを伝播し得る。このように、検証手段を使用して、様々な要求に関連して送信された署名を検証することができる。これは、特に要求が行われるサービスからキー権限者902が地理的に遠位である場合、キー権限者自体のコンピューティングリソースが署名を検証するのを軽減し、待ち時間および帯域幅要件も減少させる。
キー伝播は様々な方法で行われてよい。一実施形態において、キーは、様々な受信者に対して、セキュアチャネルにより配布される。いくつかの実施形態において、キー権限者は、各キーゾーンに同一のキーを伝播する。またいくつかのキーは、複数のキーゾーンにおいて使用可能であり得る。キー権限者902は、複数のキーゾーンにおいて使用可能であるキーを、それらの複数のキーゾーンに伝播し得る一方で、それらのキーが使用できないキーゾーンにキーを伝播しないようにする。このようにして、コンピューティングリソースプロバイダの実施例において、キー権限者902は、顧客に対するキーを、その顧客がキーを使用できるキーゾーンのみに、例えば、顧客のコンピューティングリソースを維持するために使用されるデータセンター等に伝播し得る。
本開示の様々な実施形態はまた、多くの利益を提供する様式でキー伝播を提供する。図10は、少なくとも一実施形態に従って、様々な権限の範囲を提供する様式でキーを配布する例示の様式を示す図表1000である。図10にあるように、図表1000は、例えば、図9に関連する上記説明に従って、キーを直接または間接的に様々なキーゾーン1004および検証手段1006に伝播するキーKを有するキー権限者1002を含む。例示の目的で、図表1000は、単一のキーK、およびKから導出されたキーに関して説明されるが、本明細書に記載される実施形態では、キー権限者が多数のキーに対してそのような動作を行うときに適用される。
図10に示されるように、キーKは、Kから導出される他のキーの基礎として使用される。例えば、KからキーK1が導出され、第1のキーゾーン(キーゾーン1)に伝播される。したがって、キーK1(またはキーK1から導出されたキー)は、第1のキーゾーンにおいて使用可能であるが、K1(またはキーK1から導出されたキー)を有しない他のキーゾーンでは使用できない。同様に、多数の他のキーゾーンのそれぞれは、キーKから導出された対応する異なるキーを受信する。図10は、キー権限者1002から対応するキーゾーンに伝播されるキーKから導出されたキーを示すが、変型も可能であることを留意すべきである。例えば、キーKは、キーゾーンに伝播されてよく、キーKを受信する各キーゾーンは、キーKを使用して1つ以上の対応するキーを導出し得る。例えば、「キーゾーン1」と標識されるキーゾーン1004は、キーKを受信して、K1を導出し得る。一般的に、キー導出および伝播に関与する様々なタスクは、様々な実施形態に例示されるものとは異なって行われてもよい。
図10の例示説明となる実施例に示されるように、キーゾーン1004によって受信されたキーを使用して、さらに伝播されるキーを導出する。例えば、「キーゾーン2」と標識されるキーゾーン1004を参照すると、キーKから導出されるキーK2を使用して追加のキーK2′およびK2′′を導出する。キーK2′およびK2′′は、署名を検証する際に検証手段1006によって使用するために、対応する検証手段1006に伝播される。したがって、K2′を受信する検証手段は、一実施形態において、K2′′を使用して生成された署名を検証することができるが、K2′を受信しなかった検証手段は、署名を検証することができない。図9および10に示される様式(またはその変型)でキーを伝播することによって利益が得られる。例えば、1つ以上の集中型検証手段の代わりに複数の場所にある多数の検証手段にキーを伝播することによって、より短い待ち時間が達成される。さらに、図10を参照すると、導出されたキーを、次いで追加のキーを導出する他のデバイスに伝播することによって、複数の場所にある複数のデバイス上に計算を拡散することができ、それによってより迅速なキー導出およびフォルトトレランスの増加を可能にする。
キーの導出は、多数の方法で行われ得る。図11は、少なくとも一実施形態に従って、キー導出のプロセス1100の例示説明となる実施例を示すフローチャートである。一実施形態において、プロセス100は、例えば、上述の様式でキーKiを得ること1002を含む。キーKiは、上述のような任意の適切なキーであり得る。さらに、キーKiは、必ずしもそうとは限らないが、例えば、プロセス1100または別のプロセスの実行によって、別のキーから導出され得る。キーKiを得ると、新たなキーがKiから導出される。図11の例示説明となる実施例において、新たなキーKi+1は、HMAC(Ki,Ri+1)として計算され(または少なくとも部分的にそれに基づき)、式中、Ri+1は、キーKi+1に対する1つ以上の制限を識別する情報である。Ri+1は、例えば、どこでキーKi+1が使用可能であるかを示す情報を符号化するビットのシーケンスであり得る。例えば、Ri+1は、キーKi+1が使用され得るキーゾーンを符号化し得る。制限は、地理、時間、ユーザ識別、サービス等に少なくとも部分的に基づいてよい。例となる制限は、以下の説明において提供される。
さらに、以下でさらに論じられるように、プロセス1100は、キーを導出するために複数可使用されてもよい。例えば、プロセス1100(またはその変型)を使用して生成されたキーは、同一または別の制限を使用して、別のキーを生成するために使用されてよい。図の用語を使用すると、Ri+1は、例えば、Ki+1が使用され得る場所を示す情報を符号化するビットのシーケンスであり得る。Ki+1は、プロセスの次の反復のためにキーKiとなる。例えば、プロセス1100を使用して地理的制限に基づいてキーを生成した場合、生成されたキーは、日付に基づく制限を有するキーを生成するために使用され得る。そのようなプロセスは、キーを導出するために複数の制限を使用するために複数回利用されてよい。以下でさらに完全に論じられるように、キーを導出するために複数の制限を使用することによって、1つ以上の検証手段が、署名を検証する間に、ポリシーを実施することができる。簡潔な例示的実施例として、署名検証プロセスの一部として、検証手段は、現在の日付の符号化等の制限を使用して、予想される署名を決定し得る。異なる日付で生成された署名が提供された場合、一実施形態に従うと、その署名の検証は失敗する。一般に、署名の使用がキーを導出するために使用された制限に準拠しない場合、一実施形態に従って、署名の検証は失敗し得る。
図12は、少なくとも一実施形態に従った、複数の制限を使用するキーの導出の例示説明となる実施例を示す図表1200である。図12において、キーは、複数の制限を使用して導出される。この実施例において、キーおよび日付制限を使用して、日付キー(図ではKdate)を決定する。図において、日付は、2011年7月15日に対応して20110715として符号化するが、日付は異なって符号化されてもよく、一般に、情報は、図に示されるものとは異なって符号化されてもよい。日付キーは、地域制限とともに使用されて、地域キー(Kregion)を導出する。この実施例において、地域は、米国内のいくつかの地域の1つに対応し得る、地域識別子「USA−zone−1」で符号化される。Kregionキーは、サービス制限とともに使用され、サービスキーKserviceを導出する。この実施例において、サービスは、その頭字語VCSによって符号化された仮想コンピュータシステムサービスである。Kserviceキーは、要求識別子とともに使用され、署名キー、つまりサービスに対する要求に署名するために使用されるキーを導出する。この実施例において、要求識別子は「vcs_request」であり、VCSサービスに提出され得る特定タイプの要求に対応し得る。例えば、「vcs_request」は、仮想コンピュータシステムを提供、停止、または別の方法で修正する要求に対応し得る。署名キーは、要求とともに送信され得る署名を生成するために使用される。署名は、上記のような任意の適切な様式で生成され得る。
図12に示されるように、要求は、署名を生成するためのHMAC関数への入力として、メッセージMcを形成するように正規化され得る。当然のことながら、正規化が必須でない場合、およびHMAC関数以外の関数が使用される場合を含む変型が、様々な実施形態に従って利用されてもよい。さらに、図12は、一実施形態に従って、署名の導出の特定の例を示す。しかしながら、署名を導出する際に、より多数または少数の制限が使用されてよく、制限は、例示されるものとは異なる順序で使用されてもよい。さらに、図12は署名の導出を示すが、全てのアプリケーションにおいて署名として見なされない場合がある他のオブジェクトを導出するためにこの技術が適用されてもよい。例えば、図12(および他の場所)で示される技術は、一般にキーを導出するために使用され得る。
図13は、少なくとも一実施形態に従って、署名を導出するための関数1300の例示説明となる実施例である。図13に示されるように、署名は以下のように計算される。
HMAC(HMAC(HMAC(HMAC(HMAC(K,date),region),service),protocol),Mc)
この実施例において、Kはキーであり、「date」は日付の符号化であり、「region」は地域の識別子の符号化であり、「service」はサービスの識別子の符号化であり、「protocol」は、特定のメッセージ符号化プロトコルに対応し、Mcは正規化されたメッセージである。したがって、図13に例示されるように、署名は、同一のHMAC関数を複数回、それぞれ異なる制限をHMAC関数への入力として用いて計算することによって計算される。署名キーは、この実施例において、
HMAC(HMAC(HMAC(HMAC(K,date),region),service),protocol)
であり、それ自体はHMAC関数を複数回、それぞれ異なる制限を用いて使用することによって導出される。
図13の実施例において、様々な制限は、それぞれドメインを定義し、定義されたドメインの交点は、署名キーを用いて生成された署名が有効となる様式を定義する。この特定の実施例において、図13に示される署名キーを用いて生成された署名は、特定された日付で、特定された地域において、特定されたプロトコルを使用して特定されたサービスに有効となる。したがって、要求が署名キーを使用するが、署名キーへの入力によって特定されたものとは異なる日付で署名される場合、要求への署名は、要求が特定されたサービスのために特定の地域において行われた場合であっても無効であると見なされ得る。
本明細書に記載される他の実施形態と同様に、変型は本開示の範囲内であると見なされる。例えば、図13は、HMAC関数の反復使用を示す。署名を導出するために複数の関数が使用されてよく、いくつかの実施形態において、HMAC関数は、導出の全ての部分で使用されるわけではない。また記載されるように、異なる制限および異なる数の制限が、様々な実施形態において使用されてもよい。
キー導出は、様々な実施形態に従って、多くの方法で行われ得る。例えば、単一のコンピューティングデバイスが、いくつかの実施形態に従って、署名キーを計算することができる。他の実施形態に従うと、複数のコンピューティングデバイスが、署名キーを集約的に計算し得る。特定の例示説明となる実施例として、図13を参照すると、1つのコンピュータが、
Kregion=HMAC(HMAC(K,date),region)
を計算してよく、別のコンピュータが、
署名キー=HMAC(Kregion,Service)
を計算し得る。
別の実施例として、別個のコンピュータシステムが、署名キーの計算において異なる層を実行し得る。前節の実施例を参照すると、単一のコンピュータがKregionを計算する代わりに、1つのコンピュータが、
Kdate=HMAC(K,date)
を計算してよく、別のコンピュータが、
Kregion=HMAC(Kdate,region)
を計算し得る。
図14は、少なくとも一実施形態に従って、複数のキー導出がどのように実行および使用され得るかの例示説明となる実施例である。特に、図14は、署名キー(または様々な他の実施形態では他のキー)を集約的に計算するコンピュータシステムの分散セットの構成部員を示す例示の図表1500を示す。図14に示されるように、そのセットの各構成部員は、キーを生成して、生成されたキーを別のコンピュータシステムに提供する、キープロバイダコンピュータシステム1402である。例えば、Key Provider1と標識されるキープロバイダは、(別のソースから、またはそのキー自体を生成することによって)キーKを得て、キーおよび制限(R1と標識される)を使用して、キーK1を生成する。Key Provider1は、キーK1をKey Provider2に渡し、それがK2および別の制限R2を使用して別のキーK2を生成する。Key Provider2は、キーK2をKey Provider3に渡し、それがK3および別の制限R3を使用して、別のキーK3を生成する。キープロバイダが特定の実施形態においていくつ存在するかに応じて、このプロセスは、Key ProviderNー1がキーKN-1をKey ProviderNに渡すまで継続してよく、それがKN-1および別の制限RNを使用して別の署名キーKNを生成する。キーKNは、次に検証手段コンピュータシステム1404に渡される。キーKまたはKから導出された任意のキー(複数可)(一般に図面ではKiと称される)は、例えば、セキュアキー交換アルゴリズムを通じて、署名者コンピュータシステム1406に渡されてもよい。
署名者コンピュータシステム1406は、また、様々な実施形態において、例えば、制限R1〜RNが署名者に提供され、および/または公的に提供される場合、それ自体がKNを生成してもよい。さらに、署名者コンピュータシステム1406は、様々な実施形態において、それ自体がKNを導出するためにプロセスの一部のみを行い得る。例えば、署名者は、(恐らく適切なキープロバイダコンピュータシステムから)Kiを得てよく、いくつかの整数iはN未満であり、制限Ri+1〜RNである。署名者は、次にKiおよび制限Ri+1〜RNを使用して署名キーKNを生成する。他の変型も本開示の範囲内であると見なされる。
署名者コンピュータシステム1406は、キーKNを使用して、検証手段1404によって検証されるメッセージを署名し得る。例えば、例示説明されるように、署名者1406は、署名S=HMAC(KN,MC)を計算し、MCは、メッセージMの正規化バージョンであり、これも検証手段に送信される。検証手段はKNを有するため、検証手段は、独立して、メッセージMを正規化し、HMAC(KN,MC)を計算して、計算の結果が受信された署名Sと一致するかどうかを決定することができる。
図14に示されるプロセスの変型、および本明細書に記載される他のプロセスは、HMAC関数の複数使用を伴うものとして示されるが、キーを導出するために複数の異なる関数が使用されてもよいことを留意すべきである。例えば、異なるタイプのメッセージ認証符号(MAC)関数が、キーを導出する際に異なる時点で使用され得る。例えば、あるタイプのMAC関数の出力が、別のタイプのMAC関数への入力の基礎として使用され得る。一般に、他のタイプの関数が、キー導出プロセスにおいて、HMAC関数の代わりに、および/またはそれに加えて使用されてよく、様々な実施形態において、キーを導出するために同一タイプの関数を複数回使用する必要はなく、関数が要求されるたびに異なる関数が使用されてもよい。
図15は、少なくとも一実施形態に従って、キーが複数の制限を使用して導出され得る例示の様式を示す図表1500である。図15に示される実施例は、コンピューティングリソースプロバイダの顧客等の顧客に関する。しかしながら、記載されるように、図15に関連して説明される技術を含む本明細書に記載される技術は、多くの他の文脈において使用されてもよい。
示されるように、顧客キーKcustは、一式の顧客長期キーの一部であり、それぞれが顧客によって一定期間、例えば、顧客がキーを更新する、新しいキーが割り当てられるか、またはそうでなければキーを変更するまで使用されるキーであってよい。キーは、1人以上の顧客によって無期限に使用されてもよい。顧客キーKcustは、例えば、上に例示説明される様式で1つ以上の地域キーを導出するために使用される。例えば、図15に示されるように、2つの地域キーが、例えば、HMAC(Kcust,USA‐E‐1)およびHMAC(Kcust,USA‐N‐1)を計算することによって生成されてよく、式中、USA‐E‐1およびUSA‐N‐1は、それぞれの地域の識別子である。同様に、地域キーは、日付キーを符号化するために使用される日付によって有効性が制限され得る日付キーを導出するために使用されてよい。日付キーのそれぞれは、例えば、上記の様式でサービスキーを導出するために使用され得る。
このように、様々な実施形態において、サービスキーは、その日付で、キーを符号化するために使用される地域内のみにおいて、それぞれのサービスと併せて使用され得る。新たな日付キーは、それぞれの日に生成されてよいが、地域キーおよび顧客長期キーは、より低頻度で生成され得る。例えば、図15において、また本開示の他の場所で示される複数の制限キー導出は、多くの利点を提供する。例えば、署名キーが破られる場合(例えば、第三者によって不正に得られる場合)、図15に関連して記載される様式でキーを導出することによって、セキュリティ違反は特定の領域、特定の日付、および特定のサービスに関連して制限される。他のサービスは影響を受けないままである。同様の利点は、キーが導出され得る他の方法で適用可能である。
図16は、例えば、少なくとも一実施形態に従って、キーが導出され得る別の例示の様式を示す図表1600である。図16は、図16のものに類似する様式で概念を示す。図16においては、しかしながら、顧客長期キーが、日付キーを導出するために使用される。日付キーは、地域キーを導出するために使用される。地域キーは、サービスキーを導出するために使用される。導出は、本明細書に記載される様々な実施形態に従って達成され得る。
図17は、少なくとも一実施形態に従って、キーが導出され得るさらに別の例示の様式を示す図表1700である。図17において、顧客長期キーが、月キーを導出するために使用される。月キーは、地域キーを導出するために使用される。地域キーは、日付キーを導出するために使用される。日付キーは、サービスキーを定義するために使用される。様々なキーの導出は、上記説明と一致する様式で行われてよい。
論じられるように、本開示の様々な技術は、セッションを生成する新規の方法を可能にする。セッションは、一式の1つ以上の動作が許可される期間であってよく、セッションの満了(または他の終了)によって、その一式の1つ以上の動作が許可されなくなる。図18は、少なくとも一実施形態に従って、セッションを開始するためのプロセス1800の例示説明となる実施例を示すフローチャートである。プロセス1800は、任意の適切なコンピューティングデバイスによって、またはコンピューティングデバイスの任意の適切な集合によって全体的に行われてよい。例えば、プロセス1800は、コンピューティングリソースプロバイダの顧客のクライアントデバイスによって行われ得る。別の実施例として、別の実施形態において、図3を参照すると、フォルトゾーンのサービスのうちの1つは、セッションサービスであってよく、そのサービスを提供することに関与する1つ以上のコンピューティングデバイスが、プロセス1800を行い得る。
図18に戻ると、一実施形態において、プロセス1800は、キーKを得ること1802を含む。キーKは、例えば、上記の様式で、他のキーを使用して導出されたキー等の任意の適切なキーであり得る。例えば、キーKは、プロセス1800の実行に関与するコンピューティングデバイスに伝播されていてもよい。ある時点で(例えば、図に示されるように、キーKを得るとき)、一実施形態において、セッションを開始する要求が受信され得る1804。要求は、上記のような電子要求であってよい。さらに、要求は、一実施形態において、本開示の様々な技術を使用して署名および検証される。また、要求は、プロセス1800を実現するために使用される特定の環境に応じて、異なる要求であってよい。例えば、プロセス1800がクライアントデバイス(例えば、コンピューティングリソースプロバイダの顧客の顧客デバイス)によって行われてセッションを生成する場合、そのセッションを開始する要求は、クライアントデバイスのモジュールによって受信されてよい。
一実施形態において、セッションのためのセッションパラメータが決定される1806。セッションパラメータは、生成されるセッションに対する1つ以上の制限を示す情報であり得る。例示のパラメータとしては、限定するものではないが、期間、生成されるセッションキーの許容されるユーザの識別子、生成されるセッションキーが使用可能である1つ以上のサービス、セッションキーを使用して行われ得る動作に対する制限、上記の制限のいずれか、およびその他が挙げられる。パラメータは、生成されるセッションキーを伴う計算が一貫していることを保証する既定のフォーマット要件に従って電子的に符号化され得る。例えば、日付は、フォーマットYYYYMMDDで符号化される必要があり得る。他のパラメータは、それら独自のフォーマット要件を有し得る。さらに、セッションパラメータを決定することは、様々な方法で行われてよい。例えば、パラメータは、セッションのデフォルトパラメータであってよく、セッションキーが、セッション開始の要求者に許可された動作範囲に対して、既定の期間(例えば、24時間の期間)のみ使用可能であるようにする。別の実施例として、パラメータは、受信された要求の一部として、またはそうでなければそれに関連して提供されてよい。例えば、パラメータは、要求者からのユーザ入力に従って生成され得、既定のスキームに従って符号化され得る。
一実施形態において、パラメータが決定されると、パラメータを使用して、セッションキーKsを計算する1808。セッションキーKsを計算することは、多数の方法で行われてよい。例えば、一実施形態において、セッションキーKSは、以下のように(またはそうでなければ少なくとも部分的に基づいて)計算されてよく、
HMAC(K,Session_Parameters)
式中、Session_Parametersは、決定された1806パラメータの符号化である。Session_Parametersは、計算の一貫性を保証する既定の様式で符号化されてよい。セッションキーKSは、図19に関連して以下に記載される様式等の他の方法で計算されてもよい。
一旦セッションキーKSが計算されると1808、一実施形態において、セッションキーKSは使用するために提供される。セッションキーを提供することは、様々な実施形態において多くの方法で行われ得る。例えば、セッションキーは、要求者がそのセッションキーを用いてメッセージに署名することを可能にするように、要求者のモジュールに提供されてよい。セッションキーは、他のデバイスがそのセッションキーを用いてメッセージに署名することを可能にするように、ネットワークにより別のデバイスに提供されてもよい。例えば、セッションキーは、セッションが開始される受任者に提供されてもよい。例えば、要求者は、セッションを開始する要求内で、またはそれに関連して受任者を特定していてもよい。セッションキーは、電子メールまたは他の電子アドレス等の要求者(すなわち、委任者)によって提供された情報に従って、電子的に提供されてよい。
記載されるように、図19は、一実施形態に従って、署名を生成するために使用され得るプロセス1900の例示説明となる実施例を示す。プロセス1900は、図18に関連して上述のプロセス1800を行う1つ以上のコンピューティングデバイス等の1つ以上のコンピューティングデバイスによって行われ得る。プロセス1900は、図19に示されるように、上記のようにセッションパラメータを受信することを含む。得られたセッションパラメータを用いて、一実施形態において、中間キーΚi+1が、以下のように計算され1904、
i+1=HMAC(Ki,Pi
式中、Kiは、Ki+1の第1の計算のための図18の記載におけるキーKであってよく、Piは、セッションパラメータのi番目のパラメータである。セッションパラメータは、キー署名の計算の一貫性を保証するために、既定の順序に従って順序付けされてよい。
一実施形態において、セッションキーを生成する際に使用される追加のパラメータがあるかどうかの決定が行われる1906。追加のパラメータがある場合、一実施形態において、指数iは1つ増加し1908、Κi+1が再度計算される1904。しかしながら、追加のパラメータがないと決定された場合は、次にKSがΚi+1の値に設定される1910。
図20は、少なくとも一実施形態に従って、セッション中に1つ以上のコンピューティングリソースへのアクセスを得るためのプロセス2000の例示説明となる実施例を示すフローチャートである。図20は、1つ以上のコンピューティングリソースへのアクセスを得るためのプロセス2000を提示するが、本明細書に記載される他のプロセスと同様に、プロセス2000は、署名プロセスが使用される任意の状況に対して修正されてよいことを留意すべきである。プロセス2000は、図1に示されるクライアントコンピュータシステム、および/または本明細書の他の場所に記載される顧客コンピュータシステム等の1つ以上のコンピューティングリソースへのアクセスを要求するユーザのコンピュータシステムによって行われ得る。一実施形態において、プロセス2000は、セッションキーKSを得ることを含む。セッションキーは、電子メッセージ等の任意の適切な様式で得ることができる。セッションキーは、1つ以上のコンピューティングリソースへのアクセスの委任者のコンピュータシステム、またはKSを生成するためのプロセスを行った1つ以上のコンピュータシステムと関連して動作するコンピュータシステム等の別のコンピュータシステムから得られてもよい。
一実施形態において、要求Rが生成される2004。要求Rは、上記のようにメッセージであってよい。要求Rは、次に正規化され2006、一実施形態において、署名は、例えば、その署名をHMAC(KS,RC)として(またはそうでなければそれに少なくとも部分的に基づいて)計算することによって正規化されたメッセージから計算される2008。署名が生成されると、署名Sおよび要求Rが提供される2010。例えば、上述のように、署名Sおよび要求Rは、要求を管理し、署名を検証することに関与するコンピュータシステムのインターフェースに電子的に提供され得る。署名Sおよび要求Rは、一般的な署名およびメッセージと同様に、単一の通信、別個の通信において一緒に、または複数の通信によって集約的に提供されてよい。他の情報が、署名Sおよび要求Rに関連して提供されてもよい。例えば、識別情報が、受信された署名を検証するために用いる署名を生成するために、検証手段が適切なキーを選択することを可能にするように提供され得る。識別は、例えば、比較のために署名を生成する際に使用されるべきキーの識別子であり得る。他の情報が、様々な実施形態において適宜提供および使用されてもよい。
図21は、少なくとも一実施形態に従って、1つ以上のコンピューティングリソースに対して要求されたアクセスを許可するかどうかを決定するための、プロセス2100の例示説明となる実施例を示すフローチャートである。図12に示されるように、プロセス2100は、署名キーKsを得ること2102を含む。署名キーを得ることに関する本明細書における他の記述と同様に、署名キーは、例えば、その署名キーを別のソースから受信する、署名キーをメモリから検索取得する、署名キーを使用可能な情報から計算する等によって、様々な方法で得ることができる。
一実施形態において、受信された要求Rは、例えば、上記の様式で正規化されて、RCを形成する。本明細書に記載される他のプロセスと同様に、変型が可能であることに留意すべきである。例えば、プロセス2100(または別のプロセス)の変型を行うコンピュータシステムは、単に正規化されたメッセージを受信してよく、正規化は、別のコンピューティングデバイスによって行われてもよい。図21の説明に戻ると、署名S′が、HMAC(KS,RC)として(またはそうでなければそれに少なくとも部分的に基づいて)計算される。計算された署名キーS′を受信された署名Sと比較して2110、2つの署名が同等であるかどうかを決定する。2つの署名が同等でないと決定された場合、セッションは、無効であると決定され2112、要求の却下等の適切な動作が行われ得る。2つの署名が同等であると決定された場合、セッションは有効であると見なされ2114、1つ以上のコンピューティングリソースへのアクセスを付与する等の適切な動作が行われ得る。
本開示の技術は、上述のように、権限の委任を許可するために使用されてよい。図22は、少なくとも一実施形態に従って、権限を委任するためのプロセス2200の例示説明となる実施例を示すフローチャートである。プロセス2200は、コンピューティングデバイス、例えば、1つ以上のコンピューティングリソースへのアクセスを委任しようとするユーザのコンピューティングデバイス、またはコンピューティングリソースプロバイダのコンピューティングデバイス、あるいは任意の適切なコンピューティングデバイスによって行われてよい。図に示されるように、プロセス2200は、セッションキーKsiを得ること2202を含む。得られたセッションキーKsiは、上記のキーが得られるものとして説明される様式等の任意の適切な方法で得られてよい。さらに、セッションキーは、1つ以上のコンピューティングリソースへのアクセスを委任するプロセスの一部として生成されたキーであってもよい。例えば、セッションキーは、プロセス2200、またはその変型を行うことによって生成されていてもよい。
一実施形態において、セッションパラメータが決定される2004。セッションパラメータは、図18に関連して上述のような任意の適切な方法で決定されてよい。決定された2004セッションパラメータを用いて、新たなセッションキーKs(i+1)が、上述のように生成されてよく、図19に関連して上述のものを含む。一旦生成されると、新たなセッションキーは、受任者に提供されてよい。例えば、セッションキーは、電子メッセージで受任者に送信されてよい。セッションキーは、直接または間接的に受任者に提供されてもよい。例えば、セッションキーは、委任者に付与されてもよく、その委任者は、セッションキーを1人以上の受任者に提供する責任を有し得る。他の情報が受任者に提供されてもよい。例えば、セッションパラメータは、受任者がセッションパラメータに署名を提供することができ、それによって受信者(例えば、検証手段)が、提供された署名が有効であるかどうかを検証するために予測された署名を生成することを可能にするように受任者に提供されてもよい。例えば、受信者は、パラメータを使用して、秘密信用情報からセッションキーまたはそこから導出されたキーを生成し、そのセッションキーを使用して、対応する署名されたメッセージの正規化バージョンのための署名を生成し得る。一般的に、パラメータは、受信者がメッセージの署名を検証することを可能にするように、任意の適切な様式で署名の受信者が使用できるようにしてよく、受信者が受任者から独立してパラメータへのアクセスを有する場合、受任者は必ずしもパラメータにアクセスする必要はない。
図23は、例えば、特権がどのように複数回委任され得るかを示す図表2300を示す。委任者2302は、1つ以上のアクセス特権を受任者2304に付与しようとする場合がある。しかしながら、受任者2304は、この実施例では、1つ以上の特権を別の受任者2306に提供しようとするかもしれない。したがって、この実施例では、受任者2304は委任者になり得る。同様に、受任者2306は、別の受任者にアクセスを提供しようとする場合があり、またその受任者は別の受任者にアクセスを許可しようとする等、最終的に1つ以上の特権がさらに別の受任者2308に付与される。
したがって、この実施例では、元の委任者2302は、上述のように、フォルトゾーンのサービスであり得るセッションベースの認証サービス2310に委任要求を送信する。これに応答して、一実施形態において、セッションベースの認証サービスは、例えば、図22に関連して上述のように、セッションキーを生成して委任者2302に提供する。委任者2302は次に、一実施形態において、セッションベースの認証サービス2310から受信したセッションキーを受任者2304に提供する。受任者2304は、セッションキーを別の受任者2306に提供し得る。このようにして、受任者2306は、受任者2304によって受信された特権の範囲を受信し、それは受任者2306に提供された特権の範囲と同一である。
しかしながら、図23に示されるように、受任者2304は、委任要求をセッションベースの認証サービス2310に提出し、その委任要求に応答して、セッションベースの認証サービス2310によって生成されていた異なるセッションキーを受信し得る。受任者2304は、この新たなセッションキーを次の受任者2306に提供してよい。次の受任者2306は、そのセッションキーをさらに別の受任者に提供し得るか、または上記のように、委任要求をセッションベースの認証サービス2310に送信してもよく、セッションベースの認証サービス2310は、次にセッションキーを生成して、そのセッションキーを、委任要求を送信した受任者2306に提供する。図23に示されるように、これは継続し得、受任者の1人以上は、自身が受信したセッションキーを使用しようと試み得る。
この特定の実施例において、受任者2308は、要求に関連して、セッションキーをコンピューティングリソース2312に提供する。上記のように、要求は、セッションキーを含み得るが、そのセッションキーは、要求とは別個に提供されてもよい。コンピューティングリソース2312は、上記のコンピューティングリソースのいずれか、または一般にいかなるコンピューティングリソースのでもあり得る。ポリシー管理サービス2314は、例えば上記の検証手段を含んでよく、コンピューティングリソースの要求時に、要求を検証し得る。コンピューティングリソース2312およびポリシー管理サービス2314は、図23では別個に示されるが、単一の構成要素であってもよい。さらに、図23は、セッションキーを生成するために使用される単一のセッションベースの認証サービス2310を示すが、様々な実施形態が異なるセッションベースの認証サービスを利用し得る。
上記のように、本明細書に提供される例示の実施例に加えて、多数の変型が本開示の範囲内であると見なされる。図24は、一実施形態に従って、キーが複数の権限者からのキーを使用して導出され得る様式の例示説明となる実施例を表す図表2400を示す。図23において、顧客キーKcustは、コンピューティングリソースプロバイダによって維持される一式の顧客キーから生じる。上記の実施形態と同様に、図23は、コンピューティングリソースプロバイダに関連して例示説明となる実施例を論じたが、他の変型も本開示の範囲内であると見なされる。
図24において、一式の権限キーが維持され、各権限キーは異なる権限ドメインに対応する。顧客キーKcustから導出された各権限キーは、例えば、上記のように、異なるフォルトゾーンに伝播されてもよい。フォルトゾーンは、例えば、異なる行政区内のデータセンターであり得る。しかしながら、図24は、単一の顧客キーKcustから導出されたそれぞれの分割された権限キーを示すが、変型も可能であることに留意すべきである。例えば、分割された権限キーは、独立して導出されてもよい。別の実施例として、1つ以上の分割された権限キーは、共通キーから導出されてよく、1つ以上の他のキーは、別の共通キーから導出され得る等である。
一実施形態において、複数の権限者が、権限を組み合わせて、1つ以上のコンピューティングリソースへのアクセスを可能にすることができる。例えば、図24に示されるように、分割された権限キーのサブセットを使用して、他のキーを導出してもよい。例えば、図23に示されるように、Auth1およびAuth2と標識される2つの権限キーを使用して、統合された権限キーを導出する。統合された権限キーを導出するために、一実施形態において、例えば上記のように、HMAC(f(Auth1,Auth2),R)の値が計算され、式中、Rはある種の制限である。この実施例において、fは分割された権限キーの関数であり、二次元を越え得る。例えば、3つの分割された権限キーAuth1、Auth2、およびAuth3が、図23に示されるように、関数f(Auth1,Auth2,Auth3)において使用され、統合された権限キーを、HMAC(f(Auth1,Auth2,Auth3),R)として(またはそうでなければそれに少なくとも部分的に基づいて)計算する。
異なる権限からのキーを構成する多くの変型も本開示の範囲内であると見なされる。例えば、一つの権限者が、本開示の様々な実施形態を使用して、キー(Kspec)を生成し得る(または生成している)。各権限Kspecは、部分的キーシードに対応してよく、そのKspecを生成するために使用される制限の公的に使用可能な符号化(または他の方法でメッセージ署名者および署名検証手段が使用可能な符号化)であり得る。例えば、部分的キーシードは、(K1/201108io/usa‐east‐l/DDS,K2/201108io/org_name/jpl/DDS)であってよく、スラッシュ間の各文字列は制限である。そのような情報の符号化は、キーパスと称され得る。より一般的な実施例として、部分的キーシードは、X1/…/Xnであってよく、各Xi(は1〜nのi間)は、上記のパラメータ等のパラメータに対応する。適用可能な権限者からの部分的キーシードは、n−タプルとして符号化されてよく、キーシードと称される。直上の実施例のn−タプルは、(spec1,spec2,…,specn)であってよく、各エントリは、対応するKspecに対するキーパスである。キーシード(および/またはキーパス)は、キー保持者が署名/キーを生成することによって権限を与える精密なキー使用(全ての権限を与えられたキー間の完全な制限)を符号化することに留意すべきである。さらに、メッセージ署名者および署名検証手段の両方が使用可能な部分的キーシードを用いる場合、例えば、メッセージ署名者が、署名キーを生成するためにパラメータが使用された順序を特定する情報を有するため、したがって署名キーおよびメッセージを生成することができるため、キーおよび署名を生成するために使用されるパラメータの任意の順序が可能である。
次に適用可能な権限者、つまり、キーが生成される権限者のそれぞれに対するHMAC(Kspec,key‐seed)の値が得られ得るか、または計算され得る。この値は、様々な実施形態において、メッセージに署名するために署名キーを得るクライアントによって計算され得るか、または別のデバイスによって計算され、後次にそのクライアントに提供され得る。これらの値のそれぞれは、以下の考察の目的で、部分的キーと称され得る。これらの部分的キーのそれぞれの意味は、一実施形態において、以下の構成(および以下の構成の所与の変型)と組み合わされたときのみ、それらが有効であるということであり、組み合わされると、キーシード内で符号化された特化の交点を形成する。
署名キーを生成してメッセージに署名するために、以下の値を求め、
S=HMAC(partial_key1+…+partial_keyn,key‐seed)
式中、「+」は、式中記号で囲まれた部分的キーに対するいくつかの連想演算を意味し得る。「+」記号は、例えば、部分的キーを含むビットに対する排他的OR(XOR)操作であり得る。「+」記号は、いくつかの他の適切な操作または関数を意味してもよい。
メッセージに署名するために使用される署名を検証するために、検証手段は、上述のように、各部分的キーを得て、上記のように部分的キーを組み合わせて署名キーを形成し、受信したメッセージに署名して、その結果を予想された結果と比較して署名を検証する。
本開示の例示の実施形態は、以下の付記を考慮して説明され得る。
付記1. サービスを提供するためのコンピュータで実装される方法であって、
実行可能な命令を備えて構成された1つ以上のコンピュータシステムの制御下で、
認証当事者から、メッセージと、前記メッセージの署名と、前記認証当事者と共有される秘密信用情報から導出されたキーに関する一式の1つ以上の制限とを符号化している電子情報を受信することであって、前記署名は、ハッシュベースのメッセージ認証符号関数を前記メッセージ、前記秘密信用情報、および前記一式の1つ以上の制限に適用することによって決定可能であるが、前記ハッシュベースのメッセージ認証符号関数のみを有するが、前記一式の1つ以上の制限を有しない場合は決定できない、受信することと、
前記一式の1つ以上の制限の少なくともサブセットを少なくとも部分的に使用して生成されたキーを得ることと、
前記1つ以上のコンピュータシステムによって、
前記得られたキーに少なくとも部分的に基づく第1の入力と、
前記一式の1つ以上の制限に少なくとも部分的に基づく第2の入力と、
を前記ハッシュベースのメッセージ認証符号関数に少なくとも入力することによって、ハッシュベースのメッセージ認証符号関数の値を計算することと、
前記1つ以上のコンピュータシステムによって、かつ前記計算された値に少なくとも部分的に基づいて、前記署名が有効であるかどうかを決定することと、
前記署名が有効であることが決定されたとき、1つ以上のコンピューティングリソースへのアクセスを提供することと、
を含む、コンピュータで実装される方法。
付記2. 前記メッセージが、前記1つ以上のコンピューティングリソースへのアクセスの要求を含み、
前記方法が、前記一式の1つ以上の制限が、前記要求が満たされるべきであることを示すかどうかを決定することを含み、
前記1つ以上のコンピューティングリソースへのアクセスを提供することが、制限が、前記要求が満たされるべきであることを示すことを決定することを条件とする、付記1に記載のコンピュータで実装される方法。
付記3. 前記一式の1つ以上の制限を符号化する前記情報が、文書によって符号化され、前記一式の制限が、前記要求が満たされるべきであることを示すかどうかを決定することが、前記要求が受信される文脈に対して前記文書を評価することを含む、請求項2に記載のコンピュータで実装される方法。
付記4. 前記メッセージが、前記1つ以上のコンピューティングリソースのうちのコンピューティングリソースにアクセスする要求を含み、
前記一式の1つ以上の制限を符号化する前記情報が、前記コンピューティングリソースを特定する情報を含み、
前記1つ以上のコンピューティングリソースへのアクセスを提供することが、前記コンピューティングリソースが前記特定されたコンピューティングリソースと一致するとき、前記コンピューティングリソースへのアクセスを提供することを含む、付記1に記載のコンピュータで実装される方法。
付記5. 前記一式の1つ以上の制限を符号化する前記情報が、前記メッセージが有効である期間に対応し、
前記署名が有効であるかどうかを決定することが、前記メッセージが前記対応する期間の間に送信されたかどうかに少なくとも部分的に基づく、付記1に記載のコンピュータで実装される方法。
付記6. 前記一式の1つ以上の制限を符号化する前記情報が、場所に少なくとも部分的に基づく制限に対応し、
前記署名が有効であるかどうかを決定することが、前記1つ以上のコンピュータシステムのうちの少なくとも1つの場所が、前記対応する場所と一致するかどうかに少なくとも部分的に基づく、付記1に記載のコンピュータで実装される方法。
付記7. サービスを提供するためのコンピュータで実装される方法であって、
実行可能な命令を備えて構成された1つ以上のコンピュータシステムの制御下で、
(i)メッセージ、(ii)前記メッセージの第1の署名、および(iii)一式の1つ以上のパラメータを符号化している電子情報を得ることであって、前記第1の署名が、(i)前記メッセージ、(ii)秘密信用情報、および(iii)前記一式の1つ以上のパラメータに少なくとも部分的に基づいて生成され、前記第1の署名がさらに、前記メッセージおよび前記秘密信用情報のみを有するが、前記一式の1つ以上のパラメータを有しない場合は決定できない、得ることと、
前記秘密信用情報および前記一式の1つ以上のパラメータのうちの少なくともサブセットに少なくとも部分的に基づいて、第2の信用情報を導出することと、
前記導出された第2の信用情報に少なくとも部分的に基づいて、第2の署名を生成することと、
前記第1の署名が、前記第2の署名と一致するかどうかを決定することと、
前記生成された第2の署名が、前記第1の署名と一致するとき、1つ以上のコンピューティングリソースへのアクセスを提供することと、
を含む、コンピュータで実装される方法。
付記8. 前記第2の信用情報を得ることが、前記秘密信用情報および前記一式の1つ以上のパラメータの前記少なくともサブセットを関数に入力することを含む、付記7に記載のコンピュータで実装される方法。
付記9. 前記関数が、対称メッセージ認証関数である、付記8に記載のコンピュータで実装される方法。
付記10. 前記対称メッセージ認証関数が、ハッシュ関数である、付記9に記載のコンピュータで実装される方法。
付記11. 前記秘密信用情報および前記1つ以上のパラメータの前記少なくともサブセットを前記関数に入力することが、ハッシュベースのメッセージ認証符号(HMAC)の一部として行われる、付記9に記載のコンピュータで実装される方法。
付記12. 前記第2の署名を生成することが、前記関数の出力および前記一式の1つ以上のパラメータからのパラメータの両方を前記関数に入力することを含む、付記8に記載のコンピュータで実装される方法。
付記13. 前記1つ以上のパラメータを符号化する前記情報が、前記一式の1つ以上のパラメータを符号化する電子文書を含む、付記7に記載のコンピュータで実装される方法。
付記14. 前記第2の署名を生成することが、キーに少なくとも部分的に基づき、
前記一式の1つ以上のパラメータが、前記キーの使用に対する1つ以上の制限を含み、
前記1つ以上のコンピューティングリソースへのアクセスを提供することが、前記1つ以上の制限に従って行われる、付記8に記載のコンピュータで実装される方法。
付記15. 前記キーが、前記秘密信用情報の関数への入力の結果に少なくとも部分的に基づく、付記14に記載のコンピュータで実装される方法。
付記16. 命令が記憶された非一時的コンピュータ可読ストレージ媒体であって、コンピュータシステムによって実行されるとき、少なくとも、
中間キーであって、少なくとも秘密信用情報および前記中間キーの使用のための1つ以上のパラメータから導出された中間キーを取得することと、
前記取得された中間キーに少なくとも部分的に基づいて、メッセージの署名をもたらす署名生成プロセスの少なくとも一部を適用することであって、前記署名生成プロセスが、前記署名生成プロセスによって、前記メッセージ、前記秘密信用情報、および前記署名を有するが、前記1つ以上の制限を欠くコンピューティングデバイスに対して前記署名が決定できないように構成される、適用することと、
前記メッセージ、前記署名、および前記1つ以上のパラメータを、前記1つ以上のパラメータおよび前記メッセージ、前記署名に少なくとも部分的に基づいて分析して、前記署名が有効であるかどうかを決定するように構成された別のコンピュータシステムに提供することと、
を前記コンピュータシステムに行わせる命令を記憶する、非一時的コンピュータ可読ストレージ媒体。
付記17. 前記1つ以上のパラメータが、前記別のコンピュータシステムによって、少なくとも部分的に実施される、前記中間キーの使用に対する1つ以上の制限を符号化する、付記16に記載の非一時的コンピュータ可読ストレージ媒体。
付記18. 前記1つ以上の制限が、前記中間キーが使用可能である期間、前記中間キーが使用可能である場所、および前記中間キーがアクセスを得るために使用可能である1つ以上のサービスのうちの少なくとも1つに対応する、付記16に記載の非一時的コンピュータ可読ストレージ媒体。
付記19. 前記命令が、前記コンピュータシステムによって実行されるとき、前記コンピュータシステムが、前記秘密信用情報へアクセスをする必要なしに、前記署名を生成することを可能にする、付記16に記載の非一時的コンピュータ可読ストレージ媒体。
付記20. 前記一式の1つ以上のパラメータを有するとき、前記署名が、前記共有された秘密信用情報または前記中間キーのいずれかを使用して、前記署名生成プロセスによって決定可能である、付記19に記載の非一時的コンピュータ可読ストレージ媒体。
付記21. 前記中間キーを取得することが、ハッシュ関数のうちの少なくとも1つの出力が、前記パラメータのうちの少なくとも1つとともに、前記ハッシュ関数に入力されるアルゴリズムを行うことを含む、付記19に記載の非一時的コンピュータ可読ストレージ媒体。
付記22. コンピュータシステムであって、
1つ以上のプロセッサと、
コンピュータシステムの1つ以上のプロセッサによって実行されるとき、前記コンピュータシステムに少なくとも、
メッセージ、前記メッセージの署名、および1つ以上のパラメータを集約的に符号化している1つ以上の電子通信を受信することであって、前記署名が、前記秘密信用情報および前記1つ以上のパラメータに少なくとも部分的に基づいて生成される、符号化することと、
前記1つ以上のパラメータに少なくとも部分的に基づいて、前記1つ以上のパラメータおよび前記秘密信用情報の少なくとも一部から導出されたが前記秘密信用情報を有しない、前記中間信用情報、前記メッセージおよび署名を分析して、前記署名が有効であるかどうかを決定することと、
前記署名が有効であることを決定することを条件として1つ以上のアクションを行うことと、
を行わせる命令を含む、メモリと、
を備える、コンピュータシステム。
付記23. 前記メモリおよび1つ以上のプロセッサが、第1の地理的場所にある第1のサーバシステムの一部であり、
前記コンピュータシステムが、第2の地理的場所にある第2のサーバシステムを備え、前記第2のサーバシステムが、前記秘密信用情報に少なくとも部分的に基づいて、異なる署名を生成するように構成され、
前記第1のサーバシステムおよび第2のサーバシステムが、いずれも前記秘密信用情報を欠失し、
前記メッセージおよび署名を分析することが、前記1つ以上のパラメータおよび前記中間信用情報の前記少なくとも一部を関数に入力することを含み、
前記第1のサーバシステムおよび第2のサーバシステムがそれぞれ、前記関数を使用して前記メッセージから同じ署名が生成され得る情報を欠失する、付記22に記載のコンピュータシステム。
付記24. 前記コンピュータシステムが、サービスに対応し、
前記1つ以上のアクションが、前記サービスへのアクセスを提供することを含む、付記22に記載のコンピュータシステム。
付記25. 前記1つ以上のパラメータが、前記サービスにアクセスする際に使用するための前記中間信用情報の使用を制限する、付記24に記載のコンピュータシステム。
付記26. 前記メッセージおよび署名を分析することが、ハッシュ関数を前記中間信用情報に適用することを含み、
前記1つ以上のパラメータが、前記中間信用情報の使用に対する複数の制限を含み、
前記コンピュータシステムが、前記制限を実施するように構成される、付記22に記載のコンピュータシステム。
付記27. 前記メッセージおよび署名を分析することが、ハッシュ関数を前記秘密信用情報から導出されたキーに適用することを含み、
前記命令が、前記コンピュータシステムの前記1つ以上のプロセッサによって実行されるとき、前記コンピュータシステムに前記導出されたキーをキー権限者コンピュータシステムからさらに受信させる、付記22に記載のコンピュータシステム。
付記28. 前記コンピュータシステムに、前記キー権限者コンピュータシステムから前記導出されたキーをさらに受信させる前記命令が、前記コンピュータシステムに、前記メッセージの受信前に、前記キー権限者コンピュータシステムから前記導出されたキーを受信させる、付記27に記載のコンピュータシステム。
付記29. 前記中間信用情報が、前記コンピュータシステムとは異なる別のコンピュータシステムによって決定される、付記22に記載のコンピュータシステム。
様々な実施形態はさらに、多種多様な動作環境内で実装することができ、場合によっては、1つ以上のユーザコンピュータ、コンピューティングデバイス、または多数のアプリケーションのいずれかを操作するために使用することができる処理デバイスを含み得る。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータ、ならびにモバイルソフトウェアを実行し、多数のネットワーキングおよびメッセージングプロトコルを支援することができるセルラー、ワイヤレス、および携帯型デバイス等の多数の汎用パーソナルコンピュータのいずれかを含むことができる。そのようなシステムは、開発およびデータベース管理等の目的で、多様な市販のオペレーティングシステムおよび他の既知のアプリケーションのうちのいずれかを実行する多数のワークステーションを含むこともできる。これらのデバイスは、ダミー端末、シンクライアント、ゲーミングシステム等の他の電子デバイス、およびネットワークを介して通信することができる他のデバイスを含むこともできる。
大半の実施形態は、TCP/IP、OSI、FTP、UPnP、NFS、CIFS、およびAppleTalk等の多様な市販のプロトコルを使用する通信を支援するために、当業者によく知られている少なくとも1つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレスネットワーク、およびそれらの任意の組み合わせであり得る。
ウェブサーバを利用する実施形態において、ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データサーバ、Javaサーバ、およびビジネスアプリケーションサーバを含む多様なサーバまたは中間階層アプリケーションのいずれかを実行することができる。サーバ(複数可)は、例えば、Java(登録商標)、C、C#もしくはC++等の任意のプログラミング言語、またはPerl、Python、もしくはTCL等の任意のスクリプト言語、ならびにそれらの組み合わせで書かれた1つ以上のスクリプトまたはプログラムとして実装され得る1つ以上のウェブアプリケーションを実行することによって、ユーザデバイスからの要求に応答してプログラムまたはスクリプトを実行することも可能であり得る。サーバ(複数可)は、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、およびIBM(登録商標)から市販されているものを含むが、これらに限定されないデータベースサーバを含んでもよい。
環境は、上述のように、多様なデータストア、ならびに他のメモリおよびストレージ媒体を含み得る。これらは、例えば、コンピュータの1つ以上対してローカルである(および/またはその中に存在する)か、またはネットワーク全体のコンピュータのいずれかもしくは全てから遠隔にあるストレージ媒体上等の様々な場所に存在し得る。特定の一式の実施形態において、情報は、当業者によく知られているストレージエリアネットワーク(「SNA」)内に存在し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに属した関数を行うための任意の必須ファイルは、必要に応じてローカルに、および/または遠隔的に記憶され得る。システムがコンピュータ化デバイスを含む場合、そのようなデバイスはそれぞれ、バスを介して電子的に連結され得るハードウェア要素を含むことができ、それらの要素は、例えば、少なくとも1つの中央演算装置(CPU)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、および少なくとも1つの出力デバイス(例えば、ディスプレイデバイス、プリンタ、またはスピーカ)を含む。そのようなシステムは、ディスクドライブ、光学ストレージデバイス、および固体ストレージデバイス(例えば、ランダムアクセスメモリ(「RAM」)または読み取り専用メモリ(「ROM」))、ならびにリムーバブルメディアデバイス、メモリカード、フラッシュカード等の1つ以上のストレージデバイスを含んでもよい。
そのようなデバイスは、コンピュータ可読ストレージ媒体リーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイス等)、および上記のようなワーキングメモリを含むこともできる。コンピュータ可読ストレージ媒体リーダは、遠隔、ローカル、固定、および/またはリムーバブルストレージデバイスを表すコンピュータ可読ストレージ媒体、ならびにコンピュータ可読情報を一時的および/またはより永久的に含有、記憶、伝送、および検索取得するためのストレージ媒体と接続され得るか、またはそれらを受信するように構成され得る。システムおよび様々なデバイスは、通常、多数のソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つのワーキングメモリデバイス内に位置する他の要素(クライアントアプリケーションまたはウェブブラウザ等のオペレーティングシステムおよびアプリケーションプログラムを含む)も含む。当然のことながら、代替実施形態は、上記のものからの多数の変型を有してもよい。例えば、カスタマイズされたハードウェアが使用されてもよく、および/または特定の要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)、またはそれら両方において実現されてもよい。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続が用いられてもよい。
符号または符号の一部を含むためのストレージ媒体およびコンピュータ可読媒体は、当該技術分野において既知であるか、または使用される任意の適切な媒体を含むことができ、例えば、限定するものではないが、コンピュータ可読命令、データ構造、プログラムモジュール、もしくは他のデータ等の情報の記憶および/または伝送のための任意の方法または技術において実装される揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体が挙げられ、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または所望の情報を記憶するために使用することができ、かつシステムデバイスによってアクセスされ得る任意の他の媒体を含む。本明細書で提供される開示および教示に基づいて、当業者であれば、様々な実施形態を実現するための他の手段および/または方法を理解するであろう。
本明細書および図面は、したがって、制限的な意味ではなく例示説明として見なされるものである。しかしながら、請求項に記載される本発明の広義の趣旨および範囲から逸脱することなく、様々な修正および変更がそこに行われ得ることは明らかとなるであろう。
他の変型も本開示の趣旨に含まれる。したがって、開示される技術は、様々な修正および代替構成を許すが、それらのある例示の実施形態が図面に示され、上で詳細に説明された。しかしながら、本発明を開示される特定の形態(複数可)に限定する意図はなく、反対に、添付の請求項において定義される、本発明の趣旨および範囲内に含まれる全ての修正、代替構成、および相当物を網羅することを意図することを理解すべきである。
開示される実施形態を説明する文脈における(特に以下の請求項の文脈における)用語「a」、「an」、および「the」ならびに同様の指示語の使用は、本明細書において別段の指示がない限り、または文脈に明らかに矛盾するものでない限り、単数および複数の両方を網羅すると解釈される。用語「備える(comprising)」、「有する(having)」、「含む(includeing)」、および「含有する(containing)」は、別段の記載がない限り、制限のない用語(すなわち、「含むが、それに限定されない」を意味するもの)として解釈される。用語「接続される(connected)」は、介在するものがある場合であっても、部分的または全体的にその中に含有される、そこに取り付けられる、または一緒に接合されるものと解釈される。本明細書における値の範囲の列挙は、本明細書において別段の指示がない限り、単にその範囲内に含まれるそれぞれ別個の値を個別に参照する簡略的な方法として機能することが意図され、各別個の値が、本明細書において個別に列挙されるかのように、本明細書に組み込まれる。本明細書に記載される全ての方法は、本明細書において別段の指示がない限り、または文脈と明らかに矛盾しない限り、任意の適切な順序で行われ得る。本明細書に提供される任意および全ての実施例、または例示的言語(例えば、「等」)の使用は、単に本発明の実施形態をさらに明らかにすることが意図され、別段の請求がない限り、本発明の範囲に対して制限を課すものではない。明細書におけるどの表現も、任意の請求されていない要素を本発明の実施に必須であると示すものと解釈されるべきではない。
本開示の好適な実施形態が、本明細書において、本発明を実行するために発明者らに既知の最良の形態を含んで説明される。それらの好適な実施形態の変型は、前記の説明を読むことで、当業者に明らかとなり得る。発明者らは、熟練者がそのような変型を必要に応じて用いることを予期し、また発明者らは、本発明が本明細書において特定的に説明されるものとは別の方法で実施されることを意図する。したがって、本発明は、適用可能な法律によって許可されるように、本明細書に添付される請求項に列挙される主題の全ての改変および相当物を含む。さらに、その全ての考えられる変型における上述の要素の任意の組み合わせが、本明細書において別段の指示がない限り、または文脈と明らかに矛盾しない限り、本発明によって包含される。
本明細書において引用される出版物、特許出願、および特許を含む全ての参照文献は、各参照文献が参照により個別かつ特定的に組み込まれ、その全体が本明細書において記載されるのと同じ程度に、参照により本明細書に組み込まれる。

Claims (1)

  1. コンピューティングリソースプロバイダの1つ以上のコンピューティングリソースへのアクセスを提供するためのコンピュータで実装される方法であって、前記コンピューティングリソースプロバイダの前記1つ以上のコンピューティングリソースは、複数のキーゾーンのうちの1つのキーゾーンにおけるコンピューティングリソースの論理的グループの一部であり、前記方法は、
    実行可能な命令を備えて構成された1つ以上のコンピュータシステムの制御下で、
    認証当事者から、メッセージと、前記メッセージの署名と、前記認証当事者と共有される秘密信用情報から導出されたキーに関する一式の1つ以上の制限と、を符号化している電子情報を受信することであって、前記署名は、ハッシュベースのメッセージ認証符号関数を前記メッセージ、前記秘密信用情報、および前記一式の1つ以上の制限に適用することによって決定可能であるが、前記ハッシュベースのメッセージ認証符号関数のみを有するが、前記一式の1つ以上の制限を有しない場合は決定できず、前記秘密信用情報は、中央キー権限者から取得され、かつ、前記キーゾーンに対応する、受信することと、
    前記一式の1つ以上の制限の少なくともサブセットを少なくとも部分的に使用して生成されたキーを得ることと、
    前記1つ以上のコンピュータシステムによって、
    前記得られたキーに少なくとも部分的に基づく第1の入力と、
    前記一式の1つ以上の制限に少なくとも部分的に基づく第2の入力と、
    を前記ハッシュベースのメッセージ認証符号関数に少なくとも入力することによって、ハッシュベースのメッセージ認証符号関数の値を計算することと、
    前記1つ以上のコンピュータシステムによって、かつ前記計算された値に少なくとも部分的に基づいて、前記署名が有効であるかどうかを決定することと、
    前記署名が有効であることが決定されたとき、前記1つ以上のコンピューティングリソースへのアクセスを提供することと、
    を含む、コンピュータで実装される方法であり、
    前記電子情報を受信することと、前記生成されたキーを得ることと、前記ハッシュベースのメッセージ認証符号関数の値を計算することと、前記署名が有効であるかどうかを決定することと、前記1つ以上のコンピューティングリソースへのアクセスを提供することとが、第1の地理的場所にある第1のサーバシステムにおいて実行され、
    第2の地理的場所にある第2のサーバシステムが、前記秘密信用情報に少なくとも部分的に基づいて、前記署名とは異なる別の署名を生成し、
    前記第1のサーバシステムおよび第2のサーバシステムが、いずれも前記秘密信用情報を欠失し、
    前記第1のサーバシステムおよび第2のサーバシステムがそれぞれ、情報を欠失しており、前記情報は、当該情報から同一の署名が生成されるものであり、前記同一の署名は、前記ハッシュベースのメッセージ認証符号関数を使用して前記メッセージから生成され得る、コンピュータで実装される方法。
JP2017007876A 2011-09-29 2017-01-19 パラメータベースのキー導出 Active JP6527179B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019089153A JP6895478B2 (ja) 2011-09-29 2019-05-09 パラメータベースのキー導出

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US13/248,962 US9178701B2 (en) 2011-09-29 2011-09-29 Parameter based key derivation
US13/248,953 US9203613B2 (en) 2011-09-29 2011-09-29 Techniques for client constructed sessions
US13/248,973 2011-09-29
US13/248,962 2011-09-29
US13/248,953 2011-09-29
US13/248,973 US9197409B2 (en) 2011-09-29 2011-09-29 Key derivation techniques

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014533431A Division JP6082015B2 (ja) 2011-09-29 2012-09-28 パラメータベースのキー導出

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019089153A Division JP6895478B2 (ja) 2011-09-29 2019-05-09 パラメータベースのキー導出

Publications (2)

Publication Number Publication Date
JP2017069989A true JP2017069989A (ja) 2017-04-06
JP6527179B2 JP6527179B2 (ja) 2019-06-05

Family

ID=47996473

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2014533431A Active JP6082015B2 (ja) 2011-09-29 2012-09-28 パラメータベースのキー導出
JP2017007876A Active JP6527179B2 (ja) 2011-09-29 2017-01-19 パラメータベースのキー導出
JP2019089153A Active JP6895478B2 (ja) 2011-09-29 2019-05-09 パラメータベースのキー導出

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014533431A Active JP6082015B2 (ja) 2011-09-29 2012-09-28 パラメータベースのキー導出

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019089153A Active JP6895478B2 (ja) 2011-09-29 2019-05-09 パラメータベースのキー導出

Country Status (10)

Country Link
EP (3) EP3493070B1 (ja)
JP (3) JP6082015B2 (ja)
CN (2) CN107017984B (ja)
AU (3) AU2012315674B9 (ja)
BR (2) BR112014007665B1 (ja)
CA (1) CA2847713C (ja)
IN (1) IN2014DN03111A (ja)
RU (6) RU2636105C1 (ja)
SG (3) SG2014012264A (ja)
WO (1) WO2013049689A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837150B1 (ko) * 2016-06-30 2018-03-09 (주)넷비젼텔레콤 프록시 서비스 제공을 위한 프록시 인증시스템 및 인증방법
US20180019986A1 (en) * 2016-07-12 2018-01-18 Qualcomm Incorporated User privacy protected location-based authentication on mobile devices
DE102017201891A1 (de) * 2017-02-07 2018-08-09 Siemens Aktiengesellschaft Programmierbares Hardware-Sicherheitsmodul und Verfahren auf einem programmierbaren Hardware-Sicherheitsmodul
CA3065767C (en) * 2017-11-16 2021-12-21 Intuit Inc. Cryptographic key generation for logically sharded data stores
US10873450B2 (en) 2017-11-16 2020-12-22 Intuit Inc. Cryptographic key generation for logically sharded data stores
US10586057B2 (en) 2017-11-16 2020-03-10 Intuit Inc. Processing data queries in a logically sharded data store
EP3599737A1 (en) * 2018-07-24 2020-01-29 Gemalto Sa Method to create a primary cryptographic key with owner-defined transformation rules
CN111768304A (zh) 2018-08-06 2020-10-13 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
US10700850B2 (en) 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection
AU2018347195B2 (en) 2018-11-27 2020-09-24 Advanced New Technologies Co., Ltd. System and method for information protection
CN110730963B (zh) * 2018-11-27 2023-12-01 创新先进技术有限公司 用于信息保护的系统和方法
JP6908700B2 (ja) 2018-11-27 2021-07-28 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 情報保護のためのシステム及び方法
EP3549303B1 (en) 2018-11-27 2021-05-26 Advanced New Technologies Co., Ltd. System and method for information protection
US10726657B2 (en) 2018-11-27 2020-07-28 Alibaba Group Holding Limited System and method for information protection
WO2020239179A1 (en) * 2019-05-28 2020-12-03 Kamstrup A/S Distributed access control
CN114531302A (zh) * 2021-12-28 2022-05-24 中国电信股份有限公司 数据加密方法、装置及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095570A1 (en) * 1998-09-30 2002-07-18 Xerox Corporation Secure token-based document server
JP2003022253A (ja) * 2001-06-26 2003-01-24 Internatl Business Mach Corp <Ibm> サーバ、情報処理装置及びそのアクセス制御システム並びにその方法
JP2003058657A (ja) * 2001-08-09 2003-02-28 Matsushita Electric Ind Co Ltd ライセンス管理サーバ及びライセンス管理方法
US20030196087A1 (en) * 2002-04-16 2003-10-16 Xerox Corporation Ad hoc secure access to documents and services
JP2006508471A (ja) * 2002-11-27 2006-03-09 アールエスエイ セキュリティー インク 識別認証システムおよび方法
JP2006217320A (ja) * 2005-02-04 2006-08-17 Matsushita Electric Ind Co Ltd 管理サーバ、機器、およびライセンス管理システム
JP2007149010A (ja) * 2005-11-30 2007-06-14 Nec Corp 権限管理サーバ、権限管理システム、トークン検証方法、トークン検証プログラム
JP2007206961A (ja) * 2006-02-01 2007-08-16 Kddi Corp 認証システムおよび同システムにおける認証情報委譲方法ならびにセキュリティデバイス
JP2007233705A (ja) * 2006-03-01 2007-09-13 Nec Corp トークン譲渡方法、トークン譲渡システム及び権限認証許可サーバ

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956404A (en) * 1996-09-30 1999-09-21 Schneier; Bruce Digital signature with auditing bits
US5917911A (en) * 1997-01-23 1999-06-29 Motorola, Inc. Method and system for hierarchical key access and recovery
US6097817A (en) * 1997-12-10 2000-08-01 Omnipoint Corporation Encryption and decryption in communication system with wireless trunk
US6601172B1 (en) * 1997-12-31 2003-07-29 Philips Electronics North America Corp. Transmitting revisions with digital signatures
US6711679B1 (en) * 1999-03-31 2004-03-23 International Business Machines Corporation Public key infrastructure delegation
US6643774B1 (en) * 1999-04-08 2003-11-04 International Business Machines Corporation Authentication method to enable servers using public key authentication to obtain user-delegated tickets
US20030041110A1 (en) * 2000-07-28 2003-02-27 Storymail, Inc. System, Method and Structure for generating and using a compressed digital certificate
US20020194483A1 (en) * 2001-02-25 2002-12-19 Storymail, Inc. System and method for authorization of access to a resource
US7308431B2 (en) * 2000-09-11 2007-12-11 Nokia Corporation System and method of secure authentication and billing for goods and services using a cellular telecommunication and an authorization infrastructure
EP2224637B1 (en) * 2001-08-13 2014-10-08 The Board Of Trustees Of The Leland Stanford Junior University Systems and methods for identity-based encryption
US7617542B2 (en) * 2001-12-21 2009-11-10 Nokia Corporation Location-based content protection
EP2339777A3 (en) * 2002-01-30 2011-12-28 Tecsec, Incorporated Method of authenticating a user to use a system
NO318842B1 (no) * 2002-03-18 2005-05-09 Telenor Asa Autentisering og tilgangskontroll
EP1515507A1 (en) * 2003-09-09 2005-03-16 Axalto S.A. Authentication in data communication
JP2006120089A (ja) * 2004-10-25 2006-05-11 Ntt Docomo Inc データ管理システム及びデータ管理方法
WO2006132597A1 (en) * 2005-06-07 2006-12-14 Matsushita Electric Industrial Co., Ltd. Systems, methods and computer program products for authorising ad-hoc access
US8312523B2 (en) 2006-03-31 2012-11-13 Amazon Technologies, Inc. Enhanced security for electronic communications
US8112794B2 (en) * 2006-07-17 2012-02-07 Research In Motion Limited Management of multiple connections to a security token access device
JP2008172728A (ja) * 2007-01-15 2008-07-24 Megachips System Solutions Inc セキュリティシステム
KR101393674B1 (ko) * 2007-01-26 2014-05-13 인터디지탈 테크날러지 코포레이션 위치 정보를 보안유지하고 위치 정보를 이용하여 액세스를 제어하기 위한 방법 및 장치
JP4982215B2 (ja) * 2007-03-14 2012-07-25 株式会社トヨタIt開発センター 暗号通信システム、暗号通信方法、暗号通信プログラム、車載端末およびサーバ
US9106426B2 (en) * 2008-11-26 2015-08-11 Red Hat, Inc. Username based authentication and key generation
JP5446650B2 (ja) * 2009-09-17 2014-03-19 沖電気工業株式会社 通信データ新規性確認システム並びに送信端末及び受信端末

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095570A1 (en) * 1998-09-30 2002-07-18 Xerox Corporation Secure token-based document server
JP2003022253A (ja) * 2001-06-26 2003-01-24 Internatl Business Mach Corp <Ibm> サーバ、情報処理装置及びそのアクセス制御システム並びにその方法
JP2003058657A (ja) * 2001-08-09 2003-02-28 Matsushita Electric Ind Co Ltd ライセンス管理サーバ及びライセンス管理方法
US20030196087A1 (en) * 2002-04-16 2003-10-16 Xerox Corporation Ad hoc secure access to documents and services
JP2006508471A (ja) * 2002-11-27 2006-03-09 アールエスエイ セキュリティー インク 識別認証システムおよび方法
JP2006217320A (ja) * 2005-02-04 2006-08-17 Matsushita Electric Ind Co Ltd 管理サーバ、機器、およびライセンス管理システム
JP2007149010A (ja) * 2005-11-30 2007-06-14 Nec Corp 権限管理サーバ、権限管理システム、トークン検証方法、トークン検証プログラム
JP2007206961A (ja) * 2006-02-01 2007-08-16 Kddi Corp 認証システムおよび同システムにおける認証情報委譲方法ならびにセキュリティデバイス
JP2007233705A (ja) * 2006-03-01 2007-09-13 Nec Corp トークン譲渡方法、トークン譲渡システム及び権限認証許可サーバ

Also Published As

Publication number Publication date
RU2019137439A3 (ja) 2021-11-16
JP6895478B2 (ja) 2021-06-30
CN103842984A (zh) 2014-06-04
SG10201608067QA (en) 2016-11-29
JP6527179B2 (ja) 2019-06-05
AU2020200584B2 (en) 2021-05-06
CN103842984B (zh) 2017-05-17
RU2670778C1 (ru) 2018-10-25
BR112014007665A2 (pt) 2017-04-18
AU2012315674A1 (en) 2014-03-20
EP3493070A1 (en) 2019-06-05
EP2761487B1 (en) 2018-11-07
AU2018202251B2 (en) 2019-10-31
BR112014007665B1 (pt) 2021-07-13
BR122015024906B1 (pt) 2021-10-19
AU2018202251A1 (en) 2018-04-26
EP3493070B1 (en) 2020-07-29
BR122015024906A2 (pt) 2019-08-27
CA2847713C (en) 2021-02-09
RU2636105C1 (ru) 2017-11-20
AU2012315674B9 (en) 2018-08-30
RU2014117153A (ru) 2015-11-10
WO2013049689A1 (en) 2013-04-04
RU2709162C1 (ru) 2019-12-16
AU2020200584A1 (en) 2020-02-13
CN107017984A (zh) 2017-08-04
EP3742300A1 (en) 2020-11-25
CN107017984B (zh) 2020-09-01
CA2847713A1 (en) 2013-04-04
EP2761487A4 (en) 2015-06-24
RU2019137439A (ru) 2021-05-21
SG2014012264A (en) 2014-08-28
EP2761487A1 (en) 2014-08-06
JP2014531855A (ja) 2014-11-27
JP6082015B2 (ja) 2017-02-15
SG10201903265PA (en) 2019-05-30
RU2670778C9 (ru) 2018-11-23
RU2671052C1 (ru) 2018-10-29
RU2582540C2 (ru) 2016-04-27
AU2012315674B2 (en) 2018-04-19
JP2019149833A (ja) 2019-09-05
IN2014DN03111A (ja) 2015-05-15

Similar Documents

Publication Publication Date Title
JP6895478B2 (ja) パラメータベースのキー導出
US11356457B2 (en) Parameter based key derivation
US9178701B2 (en) Parameter based key derivation
US9197409B2 (en) Key derivation techniques
US20140281491A1 (en) Identity escrow management for minimal disclosure credentials
US11831778B2 (en) zkMFA: zero-knowledge based multi-factor authentication system
Deng IDnet Mesh: Towards user accountability for the Internet

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190129

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190509

R150 Certificate of patent or registration of utility model

Ref document number: 6527179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250