JP2023523091A - 署名キーのローテーションの使用によるセキュリティトークンの有効期限終了 - Google Patents

署名キーのローテーションの使用によるセキュリティトークンの有効期限終了 Download PDF

Info

Publication number
JP2023523091A
JP2023523091A JP2022575461A JP2022575461A JP2023523091A JP 2023523091 A JP2023523091 A JP 2023523091A JP 2022575461 A JP2022575461 A JP 2022575461A JP 2022575461 A JP2022575461 A JP 2022575461A JP 2023523091 A JP2023523091 A JP 2023523091A
Authority
JP
Japan
Prior art keywords
key
valid
list
ids
token
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
JP2022575461A
Other languages
English (en)
Other versions
JP7329703B2 (ja
Inventor
レングレット,ロメイン
グスタフソン,エリック・デイビッド
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2023523091A publication Critical patent/JP2023523091A/ja
Application granted granted Critical
Publication of JP7329703B2 publication Critical patent/JP7329703B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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/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/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/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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

トークンの有効期限を終了させる方法(400)は、認証トークン(210)に署名するように構成された少なくとも1つの有効な暗号キー(220)の有効なキーID(230)のリストを取得することを含む。この方法はまた、クライアント(10)から認証トークンを受信することを含み、認証トークンは、クライアントを認証し、リソースにクライアントがアクセスすることを認可し、認証トークンに署名するために使用された暗号キーのIDを含む。この方法はまた、少なくとも1つの有効な暗号キーの有効なキーIDのリストに基づいて、認証トークンに署名するために使用された暗号キーが有効か否かを判断することを含む。この方法は、認証トークンに署名するために使用された暗号キーが有効である場合、クライアントがリソースにアクセスすることを許可することを含む。

Description

本開示は、署名キーのローテーションを使用してセキュリティトークンの有効期限を終了させることに関する。
背景
限られたリソースにクライアントがアクセスするのを許可するために認証トークン(すなわちセキュリティトークン)が使用されることが増加している。典型的には、クライアントが認証クレデンシャルをトークン発行部に提供し、トークン発行部は、クライアントを認証した後に、認証トークンをクライアントに対して発行する。クライアントは、この認証トークンを、リソースへのアクセスを制御するサーバにまたはその他のエンティティに提出することができる。サーバは、認証トークンの真正性を確認した後に、クライアントがリソースにアクセスすることを許可することができる。一般的にトークンはステートレスなので、サーバはセッション状態を保存する必要がない。加えて、トークンの生成とトークンの確認とを切り離してきめ細かいアクセス制御を提供することができる。しかしながら、多数のクライアントおよびサーバが存在する場合はスケーラビリティが問題になる可能性がある。
概要
本開示の一局面は、署名キーのローテーションを使用して認証トークンの有効期限を終了させる方法を提供する。この方法は、データ処理ハードウェアにおいて、認証トークンに署名するように構成された少なくとも1つの有効な暗号キーの有効なキーIDのリストを取得するステップを含む。この方法はまた、データ処理ハードウェアにおいて、クライアントから認証トークンを受信するステップを含む。認証トークンは、クライアントを認証し、データ処理ハードウェアに関連付けられるリソースにクライアントがアクセスすることを認可し、認証トークンに署名するために使用された暗号キーのIDを含む。この方法はまた、データ処理ハードウェアが、少なくとも1つの有効な暗号キーの有効なキーIDのリストに基づいて、認証トークンに署名するために使用された暗号キーが有効か否かを判断するステップを含む。この方法は、認証トークンに署名するために使用された暗号キーが有効である場合、データ処理ハードウェアが、クライアントがリソースにアクセスすることを許可するステップを含む。
本開示の実装形態は、以下の任意の特徴のうちの1つ以上を含み得る。いくつかの実装形態において、少なくとも1つの有効な暗号キーの有効なキーIDのリストを取得するステップは、有効である可能性がある少なくとも1つの暗号キーのキーIDのリストを受信するステップを含む。有効である可能性がある少なくとも1つの暗号キーのキーIDのリスト内の各キーIDは、対応する有効期限に関連付けられる。この方法は、有効である可能性がある少なくとも1つの暗号キーのキーIDのリスト内の各キーIDごとに、各キーIDに関連付けられた有効期限が満了したか否かを判断するステップと、各キーIDに関連付けられた有効期限が満了していない場合、各キーIDは有効であると判断するステップとを含む。
いくつかの例において、少なくとも1つの有効な暗号キーの有効なキーIDのリストを取得するステップは、暗号キーの発行部からアップデートを受信するステップを含む。アップデートはリモートプロシージャコール(RPC:remote procedure call)を含み得る。アップデートはパブリッシュ-サブスクライブ(publish-subscribe)プロトコルを含み得る。任意で、各キーIDは整数の符号化を含む。各整数は1バイトのサイズを有し得る。
いくつかの実装形態において、この方法は、データ処理ハードウェアにおいて、少なくとも1つの無効にされた暗号キーの無効なキーIDのリストを受信するステップを含む。この方法は、少なくとも1つの無効にされた暗号キーの無効なキーIDのリスト内の各無効キーIDごとに、データ処理ハードウェアが、少なくとも1つの有効な暗号キーの有効なキーIDのリストから、対応する有効なキーIDを削除するステップを含み得る。いくつかの例において、この方法は、データ処理ハードウェアにおいて、少なくとも1つの有効な暗号キーの有効なキーIDのアップデートされたリストを取得するステップを含む。有効なキーIDのアップデートされたリスト内の各キーIDは、有効なキーIDのリスト内の各キーIDとは異なる。任意で、認証トークンはタイムスタンプを含まない。
本開示のもう1つの局面は、署名キーのローテーションを使用して認証トークンの有効期限を終了させるためのシステムを提供する。このシステムは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアとを備える。メモリハードウェアは命令を格納し、命令は、データ処理ハードウェア上で実行されるとデータ処理ハードウェアに動作を実行させる。動作は、認証トークンに署名するように構成された少なくとも1つの有効な暗号キーの有効なキーIDのリストを取得することを含む。動作はまた、クライアントから認証トークンを受信することを含む。認証トークンは、クライアントを認証し、データ処理ハードウェアに関連付けられるリソースにクライアントがアクセスすることを認可し、認証トークンに署名するために使用された暗号キーのIDを含む。動作はまた、少なくとも1つの有効な暗号キーの有効なキーIDのリストに基づいて、認証トークンに署名するために使用された暗号キーが有効か否かを判断することを含む。動作は、認証トークンに署名するために使用された暗号キーが有効である場合、クライアントがリソースにアクセスすることを許可することを含む。
この局面は、以下の任意の特徴のうちの1つ以上を含み得る。いくつかの実装形態において、少なくとも1つの有効な暗号キーの有効なキーIDのリストを取得することは、有効である可能性がある少なくとも1つの暗号キーのキーIDのリストを受信することを含む。有効である可能性がある少なくとも1つの暗号キーのキーIDのリスト内の各キーIDは、対応する有効期限に関連付けられる。動作は、有効である可能性がある少なくとも1つの暗号キーのキーIDのリスト内の各キーIDごとに、各キーIDに関連付けられた有効期限が満了したか否かを判断することと、各キーIDに関連付けられた有効期限が満了していない場合、各キーIDは有効であると判断することとを含む。
いくつかの例において、少なくとも1つの有効な暗号キーの有効なキーIDのリストを取得することは、暗号キーの発行部からアップデートを受信することを含む。アップデートはリモートプロシージャコール(RPC)を含み得る。アップデートはパブリッシュ-サブスクライブプロトコルを含み得る。任意で、各キーIDは整数の符号化を含む。各整数は1バイトのサイズを有し得る。
いくつかの実装形態において、動作は、少なくとも1つの無効にされた暗号キーの無効なキーIDのリストを受信することを含む。動作は、少なくとも1つの無効にされた暗号キーの無効なキーIDのリスト内の各無効キーIDごとに、少なくとも1つの有効な暗号キーの有効なキーIDのリストから、対応する有効なキーIDを削除することを含み得る。いくつかの例において、動作は、少なくとも1つの有効な暗号キーの有効なキーIDのアップデートされたリストを取得することを含む。有効なキーIDのアップデートされたリスト内の各キーIDは、有効なキーIDのリスト内の各キーIDとは異なる。任意で、認証トークンはタイムスタンプを含まない。
本開示の1つ以上の実装形態の詳細を、添付の図面および以下の説明において記述する。その他の局面、特徴、および利点は、この説明および図面からならびに請求項から明らかになるであろう。
署名キーのローテーションを使用してトークンの有効期限を終了させるためのシステムの一例の概略図である。 キーIDのリストと有効期限とをトークン認証部に提供するトークン発行部の概略図である。 有効/無効キーIDリストをトークン認証部に提供するトークン発行部の概略図である。 トークン発行部が生成したキーの寿命の時間軸の概略図である。 署名キーのローテーションを使用してトークンの有効期限を終了させる方法の動作の構成の一例のフローチャートの図である。 本明細書に記載のシステムおよび方法を実現するために使用することができるコンピューティングデバイスの一例の概略図である。
各種図面における同様の参照符号は同様の要素を示す。
詳細な説明
一般的に、認証トークン(すなわちセキュリティトークン)は、クライアントがリソースにアクセスするのを認証するために使用される。たとえば、JavaScript(登録商標)オブジェクト表記(JSON:JavaScript Object Notation)ウェブトークンは、アクセストークンの作成のためのインターネット規格である。典型的には、これらのアクセストークンのうちの1つが、クライアントエンドユーザの認証のためのすべてのウェブ要求とともに、送信される。クレデンシャルの流出(すなわち攻撃者が認証トークンにアクセスした場合の影響)を減じるために、すべてのトークンは限られた寿命を有する。一般的に、トークンの寿命が短いほどセキュリティは高い。しかしながら、従来技術は、この寿命を、各トークンの中に含まれる有効期限タイムスタンプを使用して実現する。すなわち、各トークンは、このトークンの有効期限がいつ終了するかを示すタイムスタンプを含む。そのようなトークンを認証する際、サーバは、有効期限タイムスタンプを、現在時刻と比較することにより、有効期限がまだ有効か否かを判断する。この必要条件は、とりわけ規模が大きくなると、非効率性の原因となる。
たとえば、すべてのトークンは有効期限タイムスタンプを含んでいなければならない。典型的に、このタイムスタンプは、エポック(Epoch)以来の秒数を符号化した32ビットの符号なし整数である。一般的に、タイムスタンプの検証を、ネットワークプロセッサにおいておよび/または特定用途向け集積回路(ASIC)等の専用ハードウェアにおいて実現することはできない。そのため、タイムスタンプは、より低いネットワーキング層におけるセキュリティトークンの使用およびハードウェアにおけるトークン検証の実現を妨げる。
本明細書における実装形態は、認証トークンの寿命を制限するトークンごとのタイムスタンプに依拠しないトークン認証システムに向けられている。その代わりに、このシステムのトークン発行部が暗号キーを用いて各トークンに署名し、各トークンには、各トークンに署名するために使用された暗号キーのIDが含まれる。トークン認証システムのトークン認証部が、どの暗号キーが現在有効であるかを示すキーIDのリストを取得する。トークン認証部は、リソースへのアクセスを要求するクライアントから認証トークンを受信した後に、キーIDのリストに基づいて、認証トークンに署名するために使用された暗号キーが有効か否かを判断する。認証トークンに署名するために使用された暗号キーが有効である場合、トークン認証部は、クライアントがリソースにアクセスすることを許可する。
次に図1を参照すると、いくつかの実装形態において、一例としてのシステム100はユーザデバイス10(たとえばクライアント10)を含み、このユーザデバイスは、ネットワーク112を介してリモートシステム140と通信する、対応するユーザ12に関連付けられる。ユーザデバイス10は、デスクトップワークステーション、ラップトップワークステーション、またはモバイルデバイス(すなわちスマートフォン)等の任意のコンピューティングデバイスに対応し得る。ユーザデバイス10は、コンピューティングリソース18(たとえばデータ処理ハードウェア)および/またはストレージリソース16(たとえばメモリハードウェア)を含む。
リモートシステム140は、単一のコンピュータであってもよく、または複数のコンピュータであってもよく、またはコンピューティングリソース144(たとえばデータ処理ハードウェア)および/またはストレージリソース146(たとえばメモリハードウェア)を含むスケーラブル/エラスティックな分散システム(たとえばクラウド環境)であってもよい。データストア150(すなわちリモートストレージデバイス)をストレージリソース146にオーバーレイすることで、クライアントまたはコンピューティングリソース144のうちの1つ以上がストレージリソース146をスケーラブルに使用できるようにしてもよい。いくつかの実装形態において、リモートシステム140はトークン発行部200を実行する。
トークン発行部200は、クライアント10から認証クレデンシャル20を受信する。認証クレデンシャル20は、1つ以上のリソースまたはサービスにクライアントがアクセスすることを認証する。たとえば、リソースは、データストア150を含み、そこに格納されているデータの一部またはすべてにアクセスする。データストア150は単なる例示であり、リソースまたはサービスは、アクセスするのに認証を要求する任意の限定されたリソースまたはサービスであってもよい。トークン発行部200は認証クレデンシャル20を認証する。
トークン発行部200は、認証クレデンシャル20の認証に成功すると、認証トークン210を生成する。認証トークン210をセキュリティトークンまたはアクセストークンと呼ぶこともできる。認証トークン210は、リソースまたはサービス(データストア150等)にアクセスするのに必要なセキュリティおよび/または認証クレデンシャルを含む。クライアント10は、リソースにアクセスするために、このリソースへのアクセスを制御するサーバまたはその他のエンティティに対して認証トークン210を提示する。この例において、トークン発行部200はリソース(すなわちデータストア150)と同一のリモートシステム140上で実行されているが、トークン発行部200はリソースから完全に独立していてもよい。
トークン発行部200は、暗号キー220、220a~nを用いて認証トークン210に署名する。暗号キー220は、対称または非対称キー(すなわち公開/秘密キー)であってもよい。トークン発行部200は、認証トークン210に署名するためにトークン発行部200が使用した暗号キー220を識別するキーID230を、認証トークン210の中に含める。トークン発行部200は、署名した認証トークン210をクライアント10に送信する。
クライアントは、リソース(たとえばデータストア150)へのアクセスを所望する場合、アクセス要求22をリモートシステム140(またはこのリソースへのアクセスを制御する何らかのシステム/サーバ/エンティティ)に送信する。アクセス要求22は認証トークン210を含む。いくつかの例において、リモートシステムは1つ以上のトークン認証部250を実行する。示されている例においてトークン認証部250およびトークン発行部200は同一のリモートシステム内で実行されるが、その代わりにトークン発行部200およびトークン認証部250は互いに完全に独立している別々のシステム上で実行されてもよいことが理解される。さらに、いくつかの実装形態において、クライアント10もこのリモートシステム140内で(たとえば仮想マシン(VM:virtual machine)またはその他のコンテナ化されたシステム内で)実行される。システム100は、任意の数のリソースへのアクセスを制御する任意の数のトークン認証部250を含み得る。クライアント10は、トークン認証部250によって制御される1つ以上のリソースにアクセスするために1つ以上の認証トークン210を受信することができる。
トークン認証部250は、クライアント10からアクセストークン210を受信する。以下でより詳細に説明するように、トークン認証部250は、トークン発行部200から有効なキーID230、230a~nのリストを取得する。有効なキーID230のリストに含まれるIDの各々は、認証トークン210に署名するために使用された対応する有効な暗号キー220に関連付けられる。トークン認証部250は、受信した認証トークン210に署名するために使用された暗号キー220が有効であるか否かを、トークン発行部200から取得した有効なキーID230のリストに基づいて判断する。認証トークン210に署名するために使用された暗号キー220が有効である場合、トークン認証部250は、クライアント10がリソースにアクセスすることを許可する。たとえば、トークン認証部250はリモートシステム140に対して許可254を発行する。
次に図2Aを参照すると、いくつかの例において、有効なキーID230のリスト内の各キーID230は、有効期限232に関連付けられる。有効期限232はタイムスタンプの形態であってもよい。ここで、キーaのキーID230はタイムスタンプaに関連付けられ、キーbのキーID230はタイムスタンプbに関連付けられ、キーnのキーID230はタイムスタンプnに関連付けられている。有効期限232は、(キーID230によって特定される)対応するキー220の有効期限がいつ終了するかを示す。トークン認証部250は、認証トークン210を受信すると、現在時刻が、認証トークン210の中に含まれる対応するキーID230に関連付けられた有効期限232の後であるか否かを判断してもよい。すなわち、トークン認証部250は、キーID230に関連付けられた有効期限232が終了したか否かを判断する。たとえば、トークン認証器250は、現在のタイムスタンプ262(すなわち現在時刻を示すタイムスタンプ)を受信し現在のタイムスタンプ262を認証トークン210のキーID230に関連付けられた有効期限232と比較するタイムスタンプ比較器260を含む。認証トークン210に署名するために使用されたキー220の有効期限がまだ終了していない(すなわち有効期限232が現在時刻262よりも後である)場合、トークン認証部250は、認証トークン210が有効であると判断しクライアント10がリソースにアクセスすることを許可する。
次に図2Bを参照すると、いくつかの実装形態において、トークン発行部200は、有効および/または無効なキーID230、230V、230Iのリストをトークン認証部250に送信する。示されている例において、トークン発行部200は、もはや有効ではないキーID230Iのリスト(すなわちキーa、キーb、…、キーn)と、有効なキーID230Vのリスト(すなわちキーo、キーp、…、キーz)とを送信する。任意で、トークン認証部250は、有効な各キーID230Vごとに、キーID230を有効なキーID230Vのリストに追加する。トークン認証部は、トークン発行部200から受信した無効な各キーID230Iの対応するキーID230を削除してもよい。この場合、トークン認証部250は、有効なキーID230Vのリストからキーa~nのキーID230を消去または削除し、キーo~zのキーID230を追加する。トークン認証部250は、このリストを受信する前に、キー220a~nで署名された認証トークン210を有効にし、キー220o~220zで署名された認証トークン230は有効にしない。トークン認証部250は、このリストを受信した後に、キー220a~nで署名された認証トークン210の有効化を中止し、キー220o~zで署名された認証トークン210の有効化を開始する。
いくつかの例において、トークン発行部200から受信したリストは有効なキーID230のみを含み、トークン認証部250はその他すべてのキーID230を削除または消去する。他の例において、リストは無効なキーID230のみを含み、トークン認証部250は無効にされたキーID230のみを削除する。
このように、いくつかの実装形態において、トークン発行部200は、キー220の有効期限をトークン認証部250に全く伝達せず、代わりに、(キーID230を介して)どのキーが有効でどのキーが無効であるかをトークン認証部250に直接伝達する。他の例において、トークン発行部200は、有効/無効なキーID230のリストと、有効なキーID230ごとの有効期限232とを伝達する。この例において、トークン発行部200が、各キー220を無効にするリストをトークン認証部250に送信しなかったとしても、トークン認証部250は、そのキーの対応する有効期限232の後にキー220によって署名された認証トークン210を無効にする。このようにして、有効期限232は、トークン発行部200との通信が失われた場合でもキー220の有効期限が確実に終了するようにするためのフォールバックオプションを提供することができる。
いくつかの実装形態において、トークン発行部200は、アップデート(すなわち有効/無効なキーID230のアップデートされたリスト)を、トークン認証部250に定期的に送信する。このアップデートは、パブリッシュ-サブスクライブプロトコルまたはリモートプロシージャコール(RPC)を含み得る。いくつかの例において、トークン発行部200がキー220を通してローテーションすると、キーID230のアップデートされたリスト内の各有効なキーID230は、前のリスト内の各キーID230とは異なる。
このように、いくつかの例において、トークン発行部200は、タイムスタンプを含まない認証トークン210を発行する。これによって認証トークン210のサイズが減少する。加えて、トークン発行部200が頻繁にキー220をローテーションさせる場合(すなわち各キー220の寿命が短くたとえば3時間以下の場合)、キーID230は整数として符号化されてもよい。たとえば、キーID230は1バイトの整数である。結果として認証トークン210は効率的に符号化される。
次に図3を参照すると、3つのキーk、k、kの、具体例としての時間軸300a~300cが示されている。トークン発行部200は、時間軸300aの時間tcにおいて、キー220kを作成または生成する。この時点で、トークン発行部200は、新たなキーkの有効性に関してトークン認証部250をアップデートする。いくつかの例において、トークン発行部200は、新たに生成したキー220kを用いて認証トークン210に署名する前に、しきい値期間(この例ではd)の間待機する。すなわち、いくつかの例において、トークン発行部200は、新たに生成したキー220を用いて認証トークン210に署名する前に、設定可能な時間量dの間待機する。これにより、認証トークン210が誤って拒絶されないように、有効なキーID230をトークン認証部250と同期させる時間が得られる。トークン発行部200は、署名期間310aの間に、キー220kを用いて認証トークン210に署名する。
トークン発行部200がtc+dにおいてキー220kを用いた認証トークン210の署名を開始した後に、トークン発行部200は、時間軸300bにおいて、第2のキー220kを生成する。時間量tc+dの経過後に、トークン発行部200は、第2のキー220kを用いた認証トークン210の署名を開始する。この時点で、トークン発行部200は、第1のキー220kを用いた認証トークン210の署名を停止してもよい。トークン発行部200が認証トークン210に署名するためにキー220を使用する期間310は設定可能である。この期間310が長いほど、トークン認証部がキー220のローテーション(すなわち新たなキー220を生成しアップデートされたキーID230のリストを用いてトークン認証部250をアップデートすること)を行わねばならない頻度は低くなる。しかしながら、この期間310が短いほど、セキュリティは強化され、認証トークン210の寿命は短くなり、それによって攻撃者に対する脆弱性も低くなる。
トークン発行部200がキー220kを用いた認証トークン210の署名を停止した後の期間として、キー220kの隔離期間320aが開始される。隔離期間320の始まり(すなわちキー220kについての時間td)において、キー220の有効期限が満了する。すなわち、トークン発行部200は、キー220を無効にするためにトークン認証部250をアップデートする、および/またはキー220に関連付けられた有効期限232が満了する。この時点において、トークン認証部250は、対応するキー220(この例ではk)を用いて署名された認証トークン210の有効化を停止する。いくつかの例において、設定可能な時間量dの間、トークン発行部200は、同一のキー220またはキーID230を再利用することはない。このように、いくつかの例において、トークン発行部200は、各キー220の隔離期間320の終了後までキーID230を再利用しない、この隔離期間320は、トークン認証システム100の可観測性(observability)を単純にし、どのキー220が所与のキーID230に関連付けられているかに関するトークン発行部200とトークン認証部250との間の不一致を減じる。このように、tc+dからtdまでの期間はキー220kの寿命330a(すなわちキー220kによって署名された認証トークン210をトークン認証部250が有効化する期間)を定める。
いくつかの例において、トークン発行部200は、新たなキー220を生成するときに、可能なキーID230の予備の中から、現在使用中ではないまたは隔離されていないキーID230をランダムに選択する。たとえば、キーID230が1バイトの整数として符号化されているとき、異なる可能なキーID230が256個存在する。トークン発行部200は、現在使用されているおよび現在隔離されているすべてのキーID230を削除し、残りの中からキーID230をランダムに選択して新たなキー220に関連付ける。
同様に、キー220kは寿命330bによって定められ、トークン発行部200は、隔離期間320bの間(すなわちtdからtd+dまで)、キー220kに関連付けられたキーID230の再使用を控えてもよい。時間軸300cによって示されるように、トークン発行部200は、このパターンを、時間tcにおいて新たなキー220kを生成することによって続行する。このキー220も、署名期間310c、隔離期間320c、および寿命330cを有する。トークン発行部200は、引続き、システム100に求められるセキュリティレベルに適したレートでキー220をローテーションさせ、新たなキー220が生成され古いキー220が消去されると、トークン認証部250の一部またはすべてをアップデートする。いくつかの例において、トークン発行部200は、トークン発行部200からキーID230を受けたトークン認証部250のうちの一部のみに対してキー220を生成する。すなわち、トークン発行部200は、異なるセットまたはグループのトークン認証部250に対して複数セットのキー220を保持してもよい。
このように、本明細書に記載のシステム100は、認証トークンの寿命を制限するトークンごとのタイムスタンプに依拠しない。代わりに、トークンは、トークンに署名するために使用された暗号キーの有効期限に基づいて有効/無効にされる。典型的に、トークンに署名するために使用されたキーを識別するキーIDがトークンに既に含まれているので、トークンのサイズは減少する。署名された各認証トークンの寿命は、このトークンに署名するために使用されたキーの寿命による制約を受ける。トークン発行部は、固有のキーIDを用いて、すべてのトークン認証部に対して一組のキーを公開する。この発行部は、システムの規模に大きな影響を何ら与えることなく、数分または数時間ごとに新たなキーを生成し古いキーを無効にする。
図4は、署名キーのローテーションを使用してセキュリティトークンまたは認証トークンの有効期限を終了させる方法400のフローチャートである。方法400は、動作402において、認証トークン210に署名するように構成された少なくとも1つの有効な暗号キー220のキーID230のリストをデータ処理ハードウェア144において取得することを含む。動作404において、方法400は、クライアント10からの認証トークン210をデータ処理ハードウェア144において受信することを含む。認証トークン210は、データ処理ハードウェア144に関連付けられるリソースにクライアント10がアクセスすることを認証し、認証トークン210に署名するために使用された暗号キー220のID230を含む。
動作406において、方法400は、データ処理ハードウェア144が、少なくとも1つの有効な暗号キー220のキーID230のリストに基づいて、認証トークン210に署名するために使用された暗号キー220が有効か否かを判断することを含む。動作408において、認証トークン210に署名するために使用された暗号キー220が有効である場合、この方法400は、データ処理ハードウェア144が、クライアント10がリソースにアクセスすることを許可することを含む。
図5は、本明細書に記載のシステムおよび方法を実現するために使用し得る一例としてのコンピューティングデバイス500の概略図である。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータ等の、さまざまな形態のデジタルコンピュータを表すことを意図したものである。ここで示されている構成要素、それらの接続および関係、ならびにそれらの機能は、例示のみを意図したものであって、本明細書において記載および/またはクレームされている発明の実装形態を限定することは意図していない。
コンピューティングデバイス500は、プロセッサ510と、メモリ520と、ストレージデバイス530と、メモリ520および高速拡張ポート550に接続する高速インターフェイス/コントローラ540と、低速バス570およびストレージデバイス530に接続する低速インターフェイス/コントローラ560とを含む。構成要素510、520、530、540、550、および560の各々は、各種バスを用いて相互接続され、共通のマザーボード上に搭載されてもよく、または適宜その他のやり方で搭載されてもよい。プロセッサ510は、コンピューティングデバイス500内で実行される命令を処理することができ、これらの命令は、高速インターフェイス540に結合されたディスプレイ580等の外部入出力デバイス上にグラフィカルユーザインターフェイス(GUI)のためのグラフィック情報を表示するためにメモリ520またはストレージデバイス530に格納された命令を含む。その他の実装形態において、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数種類のメモリとともに適宜使用されてもよい。また、複数のコンピューティングデバイス500が接続されてもよく、これらのデバイスのうちの各デバイスは、(たとえばサーババンク、ブレードサーバのグループ、またマルチプロセッサシステムとして)必要な動作の一部を提供する。
メモリ520は、情報をコンピューティングデバイス500内に非一時的に格納する。メモリ520は、コンピュータ読取可能媒体、揮発性メモリユニット、または不揮発性メモリユニットであってもよい。非一時的なメモリ520は、コンピューティングデバイス500が使用するプログラム(たとえば命令のシーケンス)またはデータ(たとえばプログラム状態情報)を一時的または永続的に格納するために使用される物理デバイスであってもよい。不揮発性メモリの例は、フラッシュメモリおよび読出専用メモリ(ROM)/プログラマブル読出専用メモリ(PROM)/消去可能プログラマブル読出専用メモリ(EPROM)/電子的消去可能プログラマブル読出専用メモリ(EEPROM)(たとえば典型的にはブートプログラム等のファームウェアに使用される)を含むが、これらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを含むが、これらに限定されない。
ストレージデバイス530は、コンピューティングデバイス500に対して大容量記憶を提供することができる。いくつかの実装形態において、ストレージデバイス530はコンピュータ読取可能媒体である。各種の異なる実装形態において、ストレージデバイス530は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリまたはその他同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくはその他の構成におけるデバイスを含むデバイスのアレイであってもよい。その他の実装形態では、コンピュータプログラムプロダクトが情報キャリアにおいて有形で実現される。コンピュータプログラムプロダクトは、実行されたときに上記方法のような方法を1つ以上実施する命令を含む。情報キャリアは、メモリ520、ストレージデバイス530、またはプロセッサ510上のメモリ等のコンピュータまたは機械読取可能媒体である。
高速コントローラ540はコンピューティングデバイス500について帯域幅多用動作を管理し、低速コントローラ560はより少ない帯域幅を使用する動作を管理する。このような機能の割り当ては例示にすぎない。いくつかの実装形態において、高速コントローラ540は、メモリ520およびディスプレイ580に(たとえばグラフィックプロセッサまたはアクセラレータを通して)結合され、かつ、各種拡張カード(図示せず)を受け入れることができる高速拡張ポート550に結合される。いくつかの実装形態において、低速コントローラ560は、ストレージデバイス530および低速拡張ポート590に結合される。各種通信ポート(たとえばUSB、ブルートゥース(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット)を含み得る低速拡張ポート590は、キーボード、ポインティングデバイス、スキャナ等の1つ以上の入出力デバイス、またはスイッチもしくはルータ等のネットワーキングデバイスに、たとえばネットワークアダプタを通して結合されてもよい。
コンピューティングデバイス500は、この図に示されているように、いくつかの異なる形態で実現することができる。たとえば、標準サーバ500aとして実現されてもよく、またはそのようなサーバ500aのグループ内で複数実現されてもよく、またはラップトップコンピュータ500bとして実現されてもよく、またはラックサーバシステム500cの一部として実現されてもよい。
本明細書に記載のシステムおよび技術のさまざまな実装形態は、デジタル電子および/または光学回路、集積回路、特別に設計されたASIC、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらのさまざまな実装形態は、プログラム可能なシステム上で実行可能および/または翻訳可能な1つ以上のコンピュータプログラムにおける実装形態を含み得るものであり、上記プログラム可能なシステムは、ストレージシステムからデータおよび命令を受信しストレージシステムにデータおよび命令を送信するように結合された専用または汎用であってもよい少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。
ソフトウェアアプリケーション(すなわちソフトウェアリソース)は、コンピューティングデバイスにタスクを実行させるコンピュータソフトウェアを意味する場合がある。いくつかの例において、ソフトウェアアプリケーションを、「アプリケーション」、「アプリ」、または「プログラム」と呼ぶ場合がある。アプリケーションの例は、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲームアプリケーションを含むが、これらに限定されない。
(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)これらのコンピュータプログラムは、プログラム可能なプロセッサのための機械命令を含み、ハイレベルの手続き型プログラミング言語および/またはオブジェクト指向プログラミング言語で実現することができる、および/またはアセンブリ言語/機械言語で実現することができる。本明細書で使用される「機械読取可能媒体」および「コンピュータ読取可能媒体」という用語は、機械命令を機械読取可能信号として受信する機械読取可能媒体を含む、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意のコンピュータプログラムプロダクト、非一時的なコンピュータ読取可能媒体、装置および/またはデバイス(たとえば磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を意味する。「機械読取可能信号」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を意味する。
本明細書に記載のプロセスおよび論理フローは、入力データに対して動作し出力を生成することによって機能を果たすために1つ以上のコンピュータプログラムを実行する、データ処理ハードウェアとも呼ばれる1つ以上のプログラム可能なプロセッサにより、実行することができる。プロセスおよび論理フローは、専用ロジック回路たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもできる。コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用双方のマイクロプロセッサ、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、読出専用メモリまたはランダムアクセスメモリまたはこれらの双方から命令およびデータを受ける。コンピュータの不可欠な要素は、命令を実行するためのプロセッサ、ならびに、命令およびデータを格納するための1つ以上のメモリデバイスである。一般的に、コンピュータはまた、データを格納するための1つ以上の大容量記憶装置、たとえば磁気ディスク、光磁気ディスク、もしくは光ディスクを含む、または、データを受けるためもしくはデータを伝送するためもしくはこれら双方のために上記大容量記憶装置に作動的に結合される。しかしながら、コンピュータはそのような装置を有している必要はない。コンピュータプログラム命令およびデータを格納するのに適したコンピュータ読取可能媒体は、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含み、これらは、例として、半導体メモリデバイスたとえばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスクたとえば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、CD ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、専用論理回路が補充されてもよく、または専用論理回路に組み込まれてもよい。
ユーザとの対話を提供するために、本開示の1つ以上の局面を、ディスプレイデバイスを有するコンピュータ上で実現することができ、ディスプレイデバイスは、情報をユーザに対して表示するための、たとえばCRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーンであり、コンピュータはまた、任意でキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有し、それによってユーザは入力をコンピュータに与えることができる。ユーザとの対話を提供するために他の種類のデバイスを使用することも可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックであってもよく、ユーザからの入力は、音響入力、音声入力または触覚入力を含む任意の形態で受けることができる。加えて、コンピュータは、ユーザが使用するデバイスに文書を送信しこのデバイスから文書を受信することにより、たとえば、ユーザのクライアントデバイス上のウェブブラウザに、このウェブブラウザから受けた要求に応答してウェブページを送信することにより、ユーザと対話することができる。
いくつかの実装形態について説明した。それでもなお本開示の精神および範囲から逸脱することなく各種修正を行い得ることが理解されるであろう。よってその他の実装形態が以下の特許請求の範囲に含まれる。

Claims (20)

  1. 方法(400)であって、前記方法は、
    データ処理ハードウェア(144)において、認証トークン(210)に署名するように構成された少なくとも1つの有効な暗号キー(220)の有効なキーID(230)のリストを取得するステップと、
    前記データ処理ハードウェア(144)において、クライアント(10)から認証トークン(210)を受信するステップとを含み、前記認証トークン(210)は、前記クライアント(10)を認証し、前記データ処理ハードウェア(144)に関連付けられるリソースに前記クライアント(10)がアクセスすることを認可し、前記認証トークン(210)に署名するために使用された暗号キー(220)のIDを含み、前記方法はさらに、
    前記データ処理ハードウェア(144)が、前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストに基づいて、前記認証トークン(210)に署名するために使用された前記暗号キー(220)が有効か否かを判断するステップと、
    前記認証トークン(210)に署名するために使用された前記暗号キー(220)が有効である場合、前記データ処理ハードウェア(144)が、前記クライアント(10)が前記リソースにアクセスすることを許可するステップとを含む、方法(400)。
  2. 前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストを取得するステップは、
    有効である可能性がある少なくとも1つの暗号キー(220)のキーID(230)のリストを受信するステップを含み、前記有効である可能性がある少なくとも1つの暗号キー(220)の前記キーID(230)のリスト内の各キーID(230)は、対応する有効期限(232)に関連付けられ、
    前記有効である可能性がある少なくとも1つの暗号キー(220)の前記キーID(230)のリスト内の各キーID(230)ごとに、
    前記各キーID(230)に関連付けられた前記有効期限(232)が満了したか否かを判断するステップと、
    前記各キーID(230)に関連付けられた前記有効期限(232)が満了していない場合、前記各キーID(230)は有効であると判断するステップとを含む、請求項1に記載の方法(400)。
  3. 前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストを取得するステップは、前記暗号キー(220)の発行部からアップデートを受信するステップを含む、請求項1または2に記載の方法(400)。
  4. 前記アップデートはリモートプロシージャコール(RPC)を含む、請求項3に記載の方法(400)。
  5. 前記アップデートはパブリッシュ-サブスクライブプロトコルを含む、請求項3または4に記載の方法(400)。
  6. 各キーID(230)は整数の符号化を含む、請求項1~5のいずれか1項に記載の方法(400)。
  7. 各整数は1バイトのサイズを有する、請求項6に記載の方法(400)。
  8. 前記データ処理ハードウェア(144)において、少なくとも1つの無効にされた暗号キー(220)の無効なキーID(230)のリストを受信するステップと、
    前記少なくとも1つの無効にされた暗号キー(220)の前記無効なキーID(230)のリスト内の各無効キーID(230)ごとに、前記データ処理ハードウェア(144)が、前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストから、対応する有効なキーID(230)を削除するステップとをさらに含む、請求項1~7のいずれか1項に記載の方法(400)。
  9. 前記データ処理ハードウェア(144)において、少なくとも1つの有効な暗号キー(220)の有効なキーID(230)のアップデートされたリストを取得するステップをさらに含み、前記有効なキーID(230)のアップデートされたリスト内の各キーID(230)は、前記有効なキーID(230)のリスト内の各キーID(230)とは異なる、請求項1~8のいずれか1項に記載の方法(400)。
  10. 前記認証トークン(210)はタイムスタンプを含まない、請求項1~9のいずれか1項に記載の方法(400)。
  11. データ処理ハードウェア(144)と、
    前記データ処理ハードウェア(144)と通信するメモリハードウェア(146)とを備え、前記メモリハードウェア(146)は命令を格納し、前記命令は、前記データ処理ハードウェア(144)上で実行されると前記データ処理ハードウェア(144)に動作を実行させ、前記動作は、
    認証トークン(210)に署名するように構成された少なくとも1つの有効な暗号キー(220)の有効なキーIDのリストを取得することと、
    クライアント(10)から認証トークン(210)を受信することとを含み、前記認証トークン(210)は、前記クライアント(10)を認証し、前記データ処理ハードウェア(144)に関連付けられるリソースに前記クライアント(10)がアクセスすることを認可し、前記認証トークン(210)に署名するために使用された暗号キー(220)のIDを含み、前記動作はさらに、
    前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストに基づいて、前記認証トークン(210)に署名するために使用された前記暗号キー(220)が有効か否かを判断することと、
    前記認証トークン(210)に署名するために使用された前記暗号キー(220)が有効である場合、前記クライアント(10)が前記リソースにアクセスすることを許可することとを含む、システム(100)。
  12. 前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストを取得することは、
    有効である可能性がある少なくとも1つの暗号キー(220)のキーID(230)のリストを受信することを含み、前記有効である可能性がある少なくとも1つの暗号キー(220)の前記キーID(230)のリスト内の各キーID(230)は、対応する有効期限(232)に関連付けられ、
    前記有効である可能性がある少なくとも1つの暗号キー(220)の前記キーID(230)のリスト内の各キーID(230)ごとに、
    前記各キーID(230)に関連付けられた前記有効期限(232)が満了したか否かを判断することと、
    前記各キーID(230)に関連付けられた前記有効期限(232)が満了していない場合、前記各キーID(230)は有効であると判断することとを含む、請求項11に記載のシステム(100)。
  13. 前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストを取得することは、前記暗号キー(220)の発行部からアップデートを受信することを含む、請求項11または12に記載のシステム(100)。
  14. 前記アップデートはリモートプロシージャコール(RPC)を含む、請求項13に記載のシステム(100)。
  15. 前記アップデートはパブリッシュ-サブスクライブプロトコルを含む、請求項13または14に記載のシステム(100)。
  16. 各キーID(230)は整数の符号化を含む、請求項11~15のいずれか1項に記載のシステム(100)。
  17. 各整数は1バイトのサイズを有する、請求項16に記載のシステム(100)。
  18. 前記動作は、
    少なくとも1つの無効にされた暗号キー(220)の無効なキーID(230)のリストを受信することと、
    前記少なくとも1つの無効にされた暗号キー(220)の前記無効なキーID(230)のリスト内の各無効キーID(230)ごとに、前記少なくとも1つの有効な暗号キー(220)の前記有効なキーID(230)のリストから、対応する有効なキーID(230)を削除することとをさらに含む、請求項11~17のいずれか1項に記載のシステム(100)。
  19. 前記動作は、少なくとも1つの有効な暗号キー(220)の有効なキーID(230)のアップデートされたリストを取得することをさらに含み、前記有効なキーID(230)のアップデートされたリスト内の各キーID(230)は、前記有効なキーID(230)のリスト内の各キーID(230)とは異なる、請求項11~18のいずれか1項に記載のシステム(100)。
  20. 前記認証トークン(210)はタイムスタンプを含まない、請求項11~19のいずれか1項に記載のシステム(100)。
JP2022575461A 2020-06-08 2020-12-16 署名キーのローテーションの使用によるセキュリティトークンの有効期限終了 Active JP7329703B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/894,941 US11405197B2 (en) 2020-06-08 2020-06-08 Security token expiration using signing key rotation
US16/894,941 2020-06-08
PCT/US2020/065249 WO2021252014A1 (en) 2020-06-08 2020-12-16 Security token expiration using signing key rotation

Publications (2)

Publication Number Publication Date
JP2023523091A true JP2023523091A (ja) 2023-06-01
JP7329703B2 JP7329703B2 (ja) 2023-08-18

Family

ID=74186850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022575461A Active JP7329703B2 (ja) 2020-06-08 2020-12-16 署名キーのローテーションの使用によるセキュリティトークンの有効期限終了

Country Status (6)

Country Link
US (1) US11405197B2 (ja)
EP (1) EP4140094A1 (ja)
JP (1) JP7329703B2 (ja)
KR (1) KR20230020519A (ja)
CN (1) CN115699673A (ja)
WO (1) WO2021252014A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11522684B2 (en) * 2020-09-24 2022-12-06 Capital One Services, Llc Key rotation service
US11632362B1 (en) * 2021-04-14 2023-04-18 SHAYRE, Inc. Systems and methods for using JWTs for information security
EP4440029A1 (en) * 2023-03-28 2024-10-02 Mastercard International Incorporated Cryptographic service provision

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007336040A (ja) * 2006-06-13 2007-12-27 Kddi Corp プログラム管理システムおよび端末装置
US20140129838A1 (en) * 2012-11-02 2014-05-08 Young Jin Kim Method and apparatus for resilient end-to-end message protection for large-scale cyber-physical system communications
WO2016147382A1 (ja) * 2015-03-19 2016-09-22 三菱電機株式会社 暗号通信システムの端末装置、暗号通信システムの中継装置、暗号通信システムの制御方法
US20170141926A1 (en) * 2015-11-13 2017-05-18 Minghua Xu Methods and systems for pki-based authentication
US10664451B1 (en) * 2019-08-29 2020-05-26 Blockstack Pbc Systems and methods for encrypting data in backend storage caches shared by multiple decentralized applications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101132694B (zh) 2004-04-30 2011-10-05 祥丰医疗有限公司 具有可捕获遗传改变的细胞的涂层的医疗装置及其使用方法
CN101132649A (zh) * 2007-09-29 2008-02-27 大唐微电子技术有限公司 一种网络接入鉴权方法及其usim卡
GB2509045A (en) 2012-07-26 2014-06-25 Highgate Labs Ltd Generating a device identifier by receiving a token from a server, signing a request including the token with a private key and verifying the request
US9917694B1 (en) 2013-11-27 2018-03-13 EMC IP Holding Company LLC Key provisioning method and apparatus for authentication tokens

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007336040A (ja) * 2006-06-13 2007-12-27 Kddi Corp プログラム管理システムおよび端末装置
US20140129838A1 (en) * 2012-11-02 2014-05-08 Young Jin Kim Method and apparatus for resilient end-to-end message protection for large-scale cyber-physical system communications
WO2016147382A1 (ja) * 2015-03-19 2016-09-22 三菱電機株式会社 暗号通信システムの端末装置、暗号通信システムの中継装置、暗号通信システムの制御方法
US20170141926A1 (en) * 2015-11-13 2017-05-18 Minghua Xu Methods and systems for pki-based authentication
US10664451B1 (en) * 2019-08-29 2020-05-26 Blockstack Pbc Systems and methods for encrypting data in backend storage caches shared by multiple decentralized applications

Also Published As

Publication number Publication date
US20210385083A1 (en) 2021-12-09
KR20230020519A (ko) 2023-02-10
CN115699673A (zh) 2023-02-03
WO2021252014A1 (en) 2021-12-16
JP7329703B2 (ja) 2023-08-18
EP4140094A1 (en) 2023-03-01
US11405197B2 (en) 2022-08-02

Similar Documents

Publication Publication Date Title
US11818275B2 (en) Techniques for securing application programming interface requests using multi-party digital signatures
JP7119142B2 (ja) デジタルid検証方法及び装置、電子機器、非一時的コンピュータ可読記憶媒体並びにプログラム
US11431501B2 (en) Coordinating access authorization across multiple systems at different mutual trust levels
KR102440626B1 (ko) 디지털 인증서 관리 방법, 장치, 컴퓨터 기기 및 저장 매체
JP7329703B2 (ja) 署名キーのローテーションの使用によるセキュリティトークンの有効期限終了
CN114499916B (zh) 安全令牌撤销
US9094212B2 (en) Multi-server authentication token data exchange
US10922401B2 (en) Delegated authorization with multi-factor authentication
EP3756328B1 (en) Identity-based certificate authority system architecture
CN112912912A (zh) 钱包恢复方法
US11212101B2 (en) Token exchange with client generated token
JP2019508763A (ja) ローカルデバイス認証
WO2019236482A1 (en) Telecommunication system and method for settling session transactions
US10846375B2 (en) Software license distribution and validation using a distributed immutable data store
US12033142B2 (en) Authenticator app for consent architecture
US20240236081A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication
US20240235835A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication
US20240236063A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication
WO2024151654A1 (en) Computing systems and methods for protecting application programming interfaces with two-factor authentication
CN115348035A (zh) 访问请求的处理方法及装置、存储介质、电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230220

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230220

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230807

R150 Certificate of patent or registration of utility model

Ref document number: 7329703

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150