JP5345675B2 - トークンとベリファイアとの間の認証のためのネットワーク・ヘルパー - Google Patents

トークンとベリファイアとの間の認証のためのネットワーク・ヘルパー Download PDF

Info

Publication number
JP5345675B2
JP5345675B2 JP2011508643A JP2011508643A JP5345675B2 JP 5345675 B2 JP5345675 B2 JP 5345675B2 JP 2011508643 A JP2011508643 A JP 2011508643A JP 2011508643 A JP2011508643 A JP 2011508643A JP 5345675 B2 JP5345675 B2 JP 5345675B2
Authority
JP
Japan
Prior art keywords
token
puzzle
verifier
verification key
key
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.)
Active
Application number
JP2011508643A
Other languages
English (en)
Other versions
JP2011521548A (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011521548A publication Critical patent/JP2011521548A/ja
Application granted granted Critical
Publication of JP5345675B2 publication Critical patent/JP5345675B2/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3271Cryptographic 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 challenge-response
    • 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

Description

本発明は、セキュアな認証に関し、より詳細には、限られたリソースのデバイスの認証に関する。
電子認証は、一般に、それぞれ公開鍵(非対称鍵)暗号方法または対称鍵暗号方法に基づく何らかの形式のデジタル署名またはメッセージ認証コードを必要とする。公開鍵方法と対称鍵方法は異なる特徴を有するので、異なる状況において適用可能である。概して、公開鍵システムは、鍵の管理及び配信に関して大きい利点を有するが、計算量的に困難であり、生成されるデジタル署名が大きくなる傾向がある。対称鍵方法は、極めて効率的であり、小出力を生成するが、同時に複数の検証パーティとともにセキュアに使用できないという欠点を有する。
たいていの小型の認証トークンは、限られた計算リソースと小出力の必要性の両方により、対称鍵暗号法を使用せざるを得なかった。これは、トークンが、ただ1つの検証パーティとの認証にしか使用できないことを意味する。たとえば、2つの異なるエンティティが異なる対称鍵を用いて互換性のあるトークンを発行することはできるが、それらを1つのトークンに結合することは、対称鍵を共有することを必要とし、パーティ同士が互いに信用できないので、不可能である。米国の銀行が2ファクタ認証方法を実装するという最近の発表に伴って、ユーザは、どこへ行く場合にも複数の認証トークンを持ち歩かなければならない。
公開鍵システムに基づく認証方法が提案されているが、1つの欠点は、多くのトークンで利用可能な計算リソースよりも大きい計算リソースが要求されることである。即ち、トークンは、廉価になり、及び/または限られた処理リソースを有する傾向がある。そのようなトークンにより強力なプロセッサを追加すれば、コストが増大するだけでなく、バッテリ寿命がより短くなる。公開鍵システムを使用することの別の欠点は、デジタル署名のサイズが長くなると、数字の短配列のタイピングまたは読出しと比較して、実装が煩雑になることである。
別のタイプの認証システムは、認証を仲介するための信頼できるサード・パーティを使用する。そのようなシステムの一例はMITのケルベロス(Kerberos)である。しかしながら、信頼できるサード・パーティへの依存は、セキュリティが損なわれ得る別のポイントを追加するので、銀行などの多くの機関にとってディール・ブレイカーとなる。
したがって、単一のトークンが複数のベリファイアに対して使用できるように、公開鍵システムの利点と対称鍵システムの利点を組み合わせて、小型で効率的なデジタル署名を提供する方法が必要である。
トークンを認証するためのベリファイア上で動作可能な方法を提供する。トークンから認証要求及びトークン識別子を受信する。トークンに関連するヘルパーのヘルパー・アドレスを取得する。ネットワーク化されたヘルパーからトークンに対応する複数のパズルを取得する。パズルは、パズル識別子とパズル秘密とを含む符号化メッセージとすることができる。パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するためにそのパズルのうちの1つを解く。たとえば、選択されたパズルは、パズルを復号するための鍵を発見するために、ブルート・フォース・アタック(brute force attack)を実行することによって解くことができる。パズル秘密に基づいて検証鍵を生成する。次いで、検証鍵に基づいて質問メッセージを生成する。パズル識別子及び質問メッセージをトークンに送信する。トークンが検証鍵を知っていることを証明する応答メッセージをトークンから受信し、トークンが検証鍵を知っていることを応答メッセージが首尾よく証明するならば、ベリファイアがトークンを認証する。検証鍵を記憶し、トークンとベリファイアとの間の事後認証における対称鍵として使用するために検証鍵をトークン識別子に関連付ける。
一例では、受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するためにその受信したパズルのうちのサブセット複数を解く。検証鍵はパズル秘密の順序セットにも基づく。パズル秘密の順序セットに対応するパズル識別子の順序セットを質問メッセージとともにトークンに送信する。
別の特徴によれば、ベリファイアは、擬似ランダム・ナンス(pseudorandom nonce)を生成し、トークンに対応するより多数のパズルの中から複数のパズルを取得する際に使用すべきヘルパーにその擬似ランダム・ナンスを送信する。
一実装形態では、トークンとベリファイアとの間の認証が実行されるたびにトラッキングするためにトークンによって維持されるカウンタにローカル・カウンタを同期させ、事後認証質問メッセージは現在のカウンタ値にも基づく。したがって、トークンが検証鍵と現在のカウンタ値とを知っていることを証明する応答メッセージをトークンから受信する。トークンが検証鍵及び現在のカウンタ値を知っていることを応答メッセージが首尾よく証明するならば、ベリファイアはトークンを認証する。
別の実装形態では、タイムスタンプを生成するタイマを維持し、事後認証質問メッセージは現在のタイムスタンプにも基づく。トークンが検証鍵と現在のタイムスタンプとを知っていることを証明する応答メッセージをトークンから受信する。トークンが検証鍵及び現在のタイムスタンプを知っていることを応答メッセージが首尾よく証明するならば、ベリファイアはトークンを認証する。
トークンを認証するための検証デバイスは、処理回路に結合された第1の通信インターフェースと第2の通信インターフェースとを備える。第1の通信インターフェースは、ネットワークに対する高帯域幅を有する。第2の通信インターフェースは、トークンと通信するための低帯域幅を有する。処理回路は、(a)第2の通信インターフェースを介してトークンから認証要求及びトークン識別子を受信すること、(b)トークンに関連するヘルパーのヘルパー・アドレスを取得すること、(c)第1の通信インターフェースを介してヘルパーからトークンに対応する複数のパズルを取得すること、(d)パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するためにそのパズルのうちの1つを解くこと、(e)パズル秘密に基づいて検証鍵を生成すること、(f)検証鍵に基づいて質問メッセージを生成すること、(g)第2の通信インターフェースを介してパズル識別子及び質問メッセージをトークンに送信すること、及び/または(h)トークンが検証鍵を知っていることを証明する応答メッセージをトークンから受信することを行うように構成される。トークンが検証鍵を知っていることを応答メッセージが首尾よく証明するならば、検証デバイスはトークンを認証する。
検証デバイスはまた、処理回路に結合された、検証鍵を記憶するための記憶デバイスを含むことができる。処理回路は、さらに、トークンとベリファイアとの間の事後認証における対称鍵として使用するために検証鍵をトークン識別子に関連付けるように構成できる。
いくつかの実装形態では、処理回路は、さらに、(a)受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するためにその受信したパズルのうちのサブセット複数を解くことと(検証鍵はパズル秘密の順序セットにも基づく)、(b)パズル秘密の順序セットに対応するパズル識別子の順序セットを質問メッセージとともにトークンに送信することとを行うように構成できる。
一実装形態では、トークンとベリファイアとの間の認証が実行されるたびにトラッキングするためにトークンによって維持されるカウンタにローカル・カウンタを同期させる。事後認証質問メッセージは現在のカウンタ値にも基づく。したがって、トークンが検証鍵と現在のカウンタ値とを知っていることを証明する応答メッセージをトークンから受信する。トークンが検証鍵及び現在のカウンタ値を独立して知っていることを応答メッセージが首尾よく証明するならば、ベリファイアはトークンを認証する。
別の実装形態では、タイムスタンプを生成するタイマを維持し/事後認証質問メッセージは現在のタイムスタンプにも基づく。したがって、トークンが検証鍵と現在のタイムスタンプとを知っていることを証明する応答メッセージをトークンから受信する。トークンが検証鍵及び現在のタイムスタンプを独立して知っていることを応答メッセージが首尾よく証明するならば、ベリファイアはトークンを認証する。
したがって、トークンを認証するための検証デバイスであって、(a)トークンから認証要求及びトークン識別子を受信するための手段、(b)トークンに関連するヘルパーのヘルパー・アドレスを取得するための手段、(c)ネットワーク化されたヘルパーからトークンに対応する複数のパズルを取得するための手段、(d)パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するためにそのパズルのうちの1つを解くための手段、(e)パズル秘密に基づいて検証鍵を生成するための手段、(f)検証鍵に基づいて質問メッセージを生成するための手段、(g)パズル識別子及び質問メッセージをトークンに送信するための手段、及び/または(h)トークンが検証鍵を知っていることを証明する応答メッセージをトークンから受信するための手段であって、トークンが検証鍵を知っていることを応答メッセージが首尾よく証明するならば、ベリファイアがトークンを認証する、受信するための手段を備える、検証デバイスを提供する。さらに、検証デバイスは、(i)検証鍵を記憶するための手段、(j)トークンとベリファイアとの間の事後認証における対称鍵として使用するために検証鍵をトークン識別子に関連付けるための手段、(k)受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するためにその受信したパズルのうちのサブセット複数を解くための手段(検証鍵はパズル秘密の順序セットにも基づく)、及び/または(l)パズル秘密の順序セットに対応するパズル識別子の順序セットを質問メッセージとともにトークンに送信するための手段をも含むことができる。
また、(a)第1の通信インターフェースを介してトークンから認証要求及びトークン識別子を受信すること、(b)第2の通信インターフェースを介してヘルパーからトークンに対応する複数のパズルを取得すること、(c)パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するためにそのパズルのうちの1つを解くこと、(d)パズル秘密に基づいて検証鍵を生成すること、(e)検証鍵に基づいて質問メッセージを生成すること、(f)第1の通信インターフェースを介してパズル識別子及び質問メッセージをトークンに送信すること、及び/または(g)トークンとベリファイアとの間の事後認証における対称鍵として使用するために検証鍵をトークン識別子に関連付けることを行うように構成された処理回路を備える処理デバイスを提供する。
また、ベリファイアに対してトークンを認証するための1つまたは複数の命令であって、プロセッサによって実行されたとき、プロセッサに、(a)ネットワーク化されたヘルパーからトークンに対応する複数のパズルを取得すること、(b)パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するためにそのパズルのうちの1つを解くこと、(c)パズル秘密に基づいて検証鍵を生成すること、(d)検証鍵に基づいて質問メッセージを生成すること、(e)パズル識別子及び質問メッセージをトークンに送信すること、(f)トークンが検証鍵を知っていることを証明する応答メッセージをトークンから受信すること(トークンが検証鍵を知っていることを応答メッセージが首尾よく証明するならば、ベリファイアはトークンを認証する)、及び/または(g)トークンとベリファイアとの間の事後認証における対称鍵として使用するために検証鍵をトークン識別子に関連付けることを行わせる1つまたは複数の命令を有する機械可読媒体を提供する。
また、ベリファイアに対してトークンを認証するためのトークン上で動作可能な方法を提供する。秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングする。トークン識別子をベリファイアに供給することによってトークンの認証を開始する。第1の検証鍵に基づく1つまたは複数のパズル識別子とメッセージ認証コードとを含む質問メッセージをベリファイアから受信する。第1の検証鍵は、1つまたは複数のパズル識別子によって識別される1つまたは複数のパズルに関連する1つまたは複数のパズル秘密の関数とすることができる。トークンは、1つまたは複数のパズル生成アルゴリズム、受信した1つまたは複数のパズル識別子、及び秘密鍵に基づいて1つまたは複数のパズル秘密を独立して取得する。1つまたは複数のパズル秘密に基づいて第2の検証鍵をトークンによって生成する。トークンは、第1の検証鍵と第2の検証鍵が同じであるかどうか判断するために受信したメッセージ認証コードを検証する。第2の検証鍵を記憶し、第1の検証鍵と第2の検証鍵が同じである場合、第2の検証鍵をベリファイアに関連付ける。トークンは、第2の検証鍵に基づいて、トークンが第1の検証鍵を知っていることを示す、ベリファイアへの応答メッセージを生成する。トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスをトークンがベリファイアに供給する。トークンは、ベリファイアから複数の順序付きパズル識別子を受信し、第1の検証鍵は、複数の順序付きパズル識別子に関連する対応する複数の順序付きパズル秘密の関数である。1つまたは複数のパズル生成アルゴリズム、受信したパズル識別子、及び秘密鍵に基づいて複数の順序付きパズル秘密を取得する。第1の検証鍵及び第2の検証鍵は複数の順序付きパズル秘密にも基づく。このようにして、異なるベリファイアを用いて複数のセキュアな検証鍵を確立することができる。トークンと異なるベリファイアとの間の対称鍵認証として使用するために検証鍵の各々を対応するベリファイアに関連付ける。
一実装形態では、トークンとベリファイアとの間の認証が実行されるたびにトラッキングするためにベリファイアによって維持されるカウンタにローカル・カウンタを同期させる。後続の受信したメッセージ認証コードは現在のカウンタ値にも基づく。トークンが検証鍵と現在のカウンタ値とを知っていることを証明する応答メッセージをベリファイアに送信する。
別の実装形態では、タイムスタンプを生成するためのタイマを維持する。したがって、後続の受信したメッセージ認証コードは現在のタイムスタンプにも基づく。トークンが検証鍵と現在のタイムスタンプとを知っていることを証明する応答メッセージをベリファイアに送信する。
第1の通信インターフェースと処理回路とを備えるトークンを提供する。第1の通信インターフェースは、ベリファイアと通信するための低帯域幅を有する。処理回路は、(a)秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムを受信すること、(b)トークン識別子をベリファイアに供給することによってトークンの認証を開始すること、(c)第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージをベリファイアから受信すること(第1の検証鍵は、パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である)、(d)1つまたは複数のパズル生成アルゴリズム、受信したパズル識別子、及び秘密鍵に基づいて第1のパズル秘密を独立して取得すること、(e)パズル秘密に基づいて第2の検証鍵を生成すること、及び/または(f)第1の検証鍵と第2の検証鍵が同じであるかどうか判断するために受信したメッセージ認証コードを検証することを行うように構成される。処理回路は、第1の検証鍵と第2の検証鍵が同じである場合、第2の検証鍵をベリファイアに関連付ける。第2の検証鍵に基づいて、トークンが第1の検証鍵を知っていることを示す、ベリファイアへの応答メッセージを生成する。
したがって、ベリファイアで認証するためのトークンであって、(a)秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングするための手段、(b)トークン識別子をベリファイアに供給することによってトークンの認証を開始するための手段、(c)第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージをベリファイアから受信するための手段(第1の検証鍵は、パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である)、(d)1つまたは複数のパズル生成アルゴリズム、受信したパズル識別子、及び秘密鍵に基づいて第1のパズル秘密を独立して取得するための手段、(e)パズル秘密に基づいて第2の検証鍵を生成するための手段、(f)第1の検証鍵と第2の検証鍵が同じであるかどうか判断するために受信したメッセージ認証コードを検証するための手段、(g)第2の検証鍵を記憶し、第1の検証鍵と第2の検証鍵が同じである場合、第2の検証鍵をベリファイアに関連付けるための手段、及び/または(h)トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスをトークンからベリファイアに供給するための手段を備えるトークンを提供する。
また、(a)秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムを受信すること、(b)トークン識別子をベリファイアに供給することによってトークンの認証を開始すること、(c)第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージをベリファイアから受信すること(第1の検証鍵は、パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である)、(d)1つまたは複数のパズル生成アルゴリズム、受信したパズル識別子、及び秘密鍵に基づいて第1のパズル秘密を独立して取得すること、(e)パズル秘密に基づいて第2の検証鍵を生成すること、(f)第1の検証鍵と第2の検証鍵が同じであるかどうか判断するために受信したメッセージ認証コードを検証すること、及び/または(g)第2の検証鍵に基づいて、トークンが第1の検証鍵を知っていることを示す、ベリファイアへの応答メッセージを生成することを行うように構成された処理回路を備える処理デバイスを提供する。
ベリファイアに対してトークンを認証するための1つまたは複数の命令であって、プロセッサによって実行されたとき、プロセッサに、(a)秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングすること、(b)トークン識別子をベリファイアに供給することによってトークンの認証を開始すること、(c)第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージをベリファイアから受信すること(第1の検証鍵は、パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である)、(d)1つまたは複数のパズル生成アルゴリズム、受信したパズル識別子、及び秘密鍵に基づいて第1のパズル秘密を独立して取得すること、(e)パズル秘密に基づいて第2の検証鍵を生成すること、(f)第1の検証鍵と第2の検証鍵が同じであるかどうか判断するために受信したメッセージ認証コードを検証すること、及び/または(g)第2の検証鍵を記憶し、第1の検証鍵と第2の検証鍵が同じである場合、第2の検証鍵をベリファイアに関連付けることを行わせる1つまたは複数の命令を有する機械可読媒体を提供する。
一例における、どのようにトークンに秘密鍵をプロビジョニングし、どのようにそのトークンに関連するパズルを生成するかを示すブロック図。 一例による、秘密鍵を生成し、トークンに配信し、その秘密鍵に関連する複数のパズルを生成するようにプロビジョニング・デバイス上で動作可能な方法を示す図。 トークン、検証デバイス、及びヘルパー・デバイスがトークンの初期認証中にどのように動作するかを示す図。 ヘルパーの支援を受けたトークンとベリファイアとの間の初期認証のための方法を示す図。 トークンとベリファイアとの間の事後認証を実行するための方法を示す図。 カウンタを使用したトークンとベリファイアとの間の認証を実行するための方法を示す図。 タイマを使用したトークンとベリファイアとの間の認証を実行するための方法を示す図。 複数の異なるベリファイアで認証するためにトークンが複数の検証鍵をどのように記憶するかを示すブロック図。 複数の異なるベリファイアで対称鍵を使用してセキュアな認証を実行するようにトークン上で動作可能な方法を示す図。 トークンを認証するためにヘルパーの支援を受けて対称鍵を確立するように構成されたベリファイアを示すブロック図。 ヘルパーの支援を受けてトークンのセキュアな認証を実行するベリファイア上で動作可能な方法を示す図。 トークンを認証するための対称鍵を確立する際にベリファイアを支援するように構成されたヘルパーを示すブロック図。 トークンを認証する際にベリファイアを支援するようにヘルパー上で動作可能な方法を示す図。
以下の説明では、実施形態の十分な理解が得られるように具体的な詳細を与える。ただし、これらの実施形態は、これらの具体的な詳細なしに実施できることを、当業者なら理解されよう。たとえば、これらの実施形態を不必要な詳細において不明瞭にしないために、回路をブロック図で示すか、またはまったく示さないことがある。他の場合では、これらの実施形態を不明瞭にしないために、よく知られている回路、構造、及び技法を詳細に図示しないことがある。
また、実施形態を、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明することがあることに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行できる。さらに、動作の順序を並び替えることができる。プロセスは、その動作が完了すると終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応する場合、その終了は呼出し側関数またはメイン関数への関数の復帰に対応する。
さらに、記憶媒体は、読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリデバイス、及び/または情報を記憶するための他のコンピュータ可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表すことができる。「機械可読媒体」という用語は、携帯または固定記憶デバイス、光記憶デバイスならびに(1つまたは複数の)命令及び/またはデータを記憶することが可能な様々な他の媒体を含むが、これらに限定されない。
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはその組合せによって実装できる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントを記憶媒体あるいは他の記憶手段などの機械可読媒体に記憶することができる。プロセッサは必要なタスクを実行することができる。コード・セグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの組合せを表すことができる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容をパス及び/または受信することによって、別のコードセグメントまたはハードウェア回路に結合できる。情報、引数、パラメータ、データなどは、特にメモリ共有、メッセージパッシング、トークンパッシング、及びネットワーク送信などを含む適切な手段を介してパス、転送、または送信できる。
「トークン(token)」という用語は、認証を助けるために許可されたユーザに関連付けられた、限定された処理リソース及び/または通信リソースをもつ物理デバイスを指す。「ベリファイア(verifier)」という用語は、トークンの認証を実行するデバイス、エンティティ、及び/または仮想オブジェクト(たとえば、ソフトウェア・アプリケーションなど)を指す。「ヘルパー(helper)」という用語は、トークンを認証する際にベリファイアを支援するデバイス、エンティティ、及び/または仮想オブジェクト(たとえば、ソフトウェア・アプリケーションなど)を指す。
一態様は、トークンとベリファイアとの間の認証のための対称鍵をセットアップすることを可能にするネットワーク化されたヘルパーを提供する。ベリファイアは、対称鍵を取得する際にベリファイアを支援するためにヘルパーを利用するが、ヘルパーはそれ自体で対称鍵を取得することができない。本方法は、プロビジョニング、初期認証、及び事後認証の3つの段階を含むことができる。
別の態様は、トークン及びベリファイアが、トークンとベリファイアとの間の認証のためのセキュアな対称鍵に関して同意できるようにするパズルベースのプロトコルを提供する。
プロビジョニング段階(provisioning stage)では、低帯域幅インターフェースを有する小型、低出力、及びポータブルなトークンに、複数の異なるベリファイアとともに関連するユーザを認証するために使用できる秘密鍵が与えられる。プロビジョニング段階は、トークンに割り当てられた秘密鍵に関連する複数のパズルを生成することと、それらのパズルをサード・パーティ・ヘルパーに配信することとを含むこともできる。
初期認証段階では、トークンとベリファイアが共有された対称鍵をネゴシエートできるようにすることによって、トークンがベリファイアに紹介される。ベリファイアは、そのトークンに関連するランダムな複数のパズルをヘルパーから取得するために使用できるトークン識別子を受信する。次いでベリファイアは、ブルート・フォース(brute force)によってパズルの少なくとも1つを解くかまたは解読して、関連するパズル秘密及びパズル識別子を取得する。ベリファイアは、解かれたパズルから取得されたパズル秘密及び他の情報に少なくとも部分的に基づいて、検証鍵を生成する。ベリファイアはパズル識別子と検証鍵のメッセージ認証コードとをトークンに供給する。トークンは、受信したパズル識別子を使用して、関連するパズル秘密を取り出し、検証鍵のローカルバージョンを生成する。次いでトークンは、(パズル識別子及びローカル検証鍵に少なくとも部分的に基づいて)メッセージ認証コードのローカルバージョンを生成し、そのローカルバージョンが受信したメッセージ認証コードに一致するかどうかを判断することができる。ローカルコードと受信したメッセージ認証コードとが一致する場合、その検証鍵をトークンとベリファイアとの間の対称鍵として使用することができる。
その後、事後認証段階において、再認証するために、より短い完全対称鍵ベースのプロセスを使用することができる。たとえば、(初期認証段階中に取得された)以前に生成された検証鍵は、認証のためにトークン及びベリファイアによって使用できる。このようにして、トークン、ベリファイア、及びヘルパーは、対称鍵方法と公開鍵方法とを組み合わせ、ベリファイアとヘルパーとの間で公開鍵デジタル署名の実装を分割する。ヘルパーは、信頼できるサード・パーティの機能の一部を実行するが、秘密対称鍵を知らず、ヘルパーが脅かされても、認証のスプーフィングは不可能である。この認証システムは完全公開鍵ベースのシステムの機能の大部分を提供するが、実際のトークンはプロビジョニング後に少量の処理リソース及び帯域幅のみを使用する。
鍵のプロビジョニング及びパズル・データベースの生成
図1は、一例における、どのようにトークンに秘密鍵をプロビジョニングし、どのようにそのトークンに関連するパズルを生成するかを示すブロック図である。プロビジョニング・デバイス102は、トークンを構成するように製造業者または配信者によって動作させることができる。プロビジョニング・デバイス102は、秘密鍵を生成する擬似ランダム鍵生成器106を含む。トークン110の製造、セットアップ、または初期化中に、プロビジョニング・デバイス102は秘密鍵108を生成し、トークン110に配信することができ、トークン110において、秘密鍵108は鍵記憶デバイス112(たとえば、メモリ)に記憶される。トークン110はまた、その秘密鍵を使用してパズルを再生するために使用できる1つまたは複数のパズル生成アルゴリズムを記憶することができる。さらに、秘密鍵108は、パズル生成器114をシードするために使用される。パズル生成器114は、秘密鍵108を使用して、複数のパズル(たとえば、メッセージ)を生成し、そのようなパズルを(サード・パーティ・ヘルパーなどの)パズル・データベース116に供給するように構成される。一例では、各パズルはパズル秘密及び一意のパズル識別子を含むことができる。パズルは、パズル・データベース116に記憶する前に暗号化できる。秘密鍵108は、トークン110を脅かすために使用できないように、プロビジョニング・デバイス102によって破壊できる。
代替実装形態では、プロビジョニング・デバイス102は秘密鍵を生成することができない。代わりに、トークン110には他の手段によってあらかじめ秘密鍵がプロビジョニングされ、トークン110は、そのトークンに関連する複数のパズルを生成すべき秘密鍵を一時的に供給するのに十分長い間、プロビジョニング・デバイスに結合される。
図2に、一例による、秘密鍵を生成し、トークンに配信し、その秘密鍵に関連する複数のパズルを生成するようにプロビジョニング・デバイス上で動作可能な方法を示す。202において、擬似ランダム秘密鍵を取得する。この秘密鍵は、トークンによって供給されるか、またはプロビジョニング・デバイスによって生成されるかのいずれかが可能である。たとえば、秘密鍵とナンスとを入力として受け取る擬似乱数生成器(PRG)を使用して、ランダムに見えるビットの任意に長い文字列として擬似ランダム秘密鍵を生成することができる。多くの代替策があるが、非線形SOBER(NLS)などのセキュアなストリーム暗号を使用してPRGをインスタンス化することができる。
204において、秘密鍵に関連する複数のパズル(たとえば、暗号化メッセージ)を生成する。206において、秘密鍵を外部トークン・デバイスに供給する。また、208において、複数のパズルを外部ヘルパー・デバイスに送信し、その外部ヘルパー・デバイスに記憶する。次いで210において、プロビジョニング・デバイスは秘密鍵を廃棄する。
生成され、ヘルパーに供給されるパズルの数は極めて大きく(たとえば、数千、数百万などに)なることがある。プロビジョニング・デバイス102は、トークン110に供給される秘密鍵に基づいてアルゴリズム的にこれらのパズルを生成することができる。したがって、トークンは要求に応じて特定のパズルを再生することができるので、トークン自体がすべてのパズルを記憶する必要はない。しかしながら、ヘルパーには秘密鍵が与えられず、したがって、ヘルパーは、トークンに関連するパズルのすべてを記憶する必要がある。これが実現される少なくとも2つの異なる方法が存在する。
パズル・データベース116は、作成された後にヘルパーに通信される。いくつかの実装形態では、プロビジョナとヘルパーは同じデバイスとすることができる。代替実装形態では、関連するトークンを用いて、パズル・データベースを含む記憶媒体(たとえば、ディスク)を分散することができる。次いで、エンドユーザは、適切なヘルパーを選択し、パズル・データベースを(記憶媒体から)そのヘルパーに配信する。ベリファイアからパズルの要求が受信されたときどのパズルを送信すべきかを識別できるように、ヘルパーには(受信したパズル・データベースに対応する)ユーザの識別情報及び/またはトークン識別子を教えることができる。
様々な適用例では、複数のヘルパーがトークンのパズル・データベースを受信し、それによって冗長性及びスケーリングを与えることができる。ヘルパーは、複数の異なるトークンのパズル・データベースを記憶することができる。
パズル生成
各々が中程度の困難さ量の多数のパズルを作成することによって、ベリファイアは、中程度の計算労力量でパズルを解くことができるようになる。パズルは、ベリファイアによってブルート・フォース・アタックができるようにするのに十分短い未知のパズル鍵(PK)を用いて符号化されたメッセージの形態とすることができる。
パズルはランダムな順序で生成できる。各パズルは、パズル識別子フィールド(PID)、パズル秘密鍵(PS)、及びパズル・メッセージ認証コード(PM)フィールドを含むことができる。パズル識別子(PID)は、可能な数のパズルの範囲内でランダムに生成できる。一例では、PIDは32ビットとすることができる。パズル秘密(PS)は完全強度暗号鍵(たとえば、128ビット)とすることができる。一例では、PSは、(トークン302またはプロビジョニング・デバイス102において、)パズル生成機能またはアルゴリズム(PGF)によってトークン秘密鍵(SK)及び/またはパズル識別子(PID)に基づいて計算できる(すなわち、PGF(SK,PID))。パズル・メッセージ認証コード(PM)はPS及びPIDのメッセージ認証コード(すなわち、PM(PS,PID))として定義でき、それによりベリファイアはいつパズルを首尾よく「クラック」または解読したかを知ることができる。すなわち、ベリファイアは、パズルが首尾よく解かれたことを示すPID、または何らかの他のフラグ、マーカー、もしくはビット・シーケンスを識別することによって、パズルが首尾よく解読できたかどうかを知ることができる。
ヘルパーに配信する前に、トークンまたはプロビジョニング・デバイスのいずれかによってランダムに生成された、一意の限られた強度のパズル鍵(PK)を使用してパズルを暗号化することができる。この暗号化の強度、及び生成すべきパズルの個数については、ヘルパー・パズル・データベースが脅かされる可能性がどの程度あるかのみに依存する。ハッキングまたは不正アクセスの可能性がないとみなされる場合、パズル暗号化をまったくなしとし、潜在的なベリファイアごとにより少ないパズルを使用することができる。
パズルシステムを使用すると、ヘルパーが脅かされた場合に多少追加のセキュリティが与えられる。そのようなセキュリティは、特定のトークンに使用されるパズルの複雑さ及び数に基づくことができる。たとえば、特定のトークンに対して多数の容易に解読可能なパズルを使用することができ、その場合、セキュリティは、ベリファイアによって選択された1つのパズル、またはパズルの組合せによって与えられる。ベリファイアは、(ヘルパーから受信された多数のパズルから)1つまたは複数の擬似ランダムに選択されたパズルを解読するかまたは解くと、選択されたパズルごとにPID及びPSを取得することができる。ベリファイアは、トークンに送信される(1つまたは複数の)PIDに対応するパズル秘密(PS)に基づいてセッション鍵または検証鍵を(VK)生成することができる。ベリファイアからPIDを受信すると、トークンもセッション鍵または検証鍵(VK)を生成することができる。したがって、ベリファイア及びトークンの両方が共通の対称鍵に関してセキュアに同意することができる。盗聴者または脅かされたヘルパーは、ベリファイアによってどの(1つまたは複数の)パズルが解かれたかを知らないので、セッション鍵または検証鍵(VK)を判定することはより難しいタスクになる。せいぜい盗聴者またはヘルパーは、特定のトークンに関連するすべてのパズルを解こうと試みることができるが、極めて多数(たとえば、数百万)存在するので、これは大いにより計算量的に高コストになる。
初期認証段階
トークンに秘密鍵がプロビジョニングされ、ヘルパー・デバイスが関連するパズルを取得すると、ヘルパー・デバイスの支援を受けてトークンと検証デバイスとの間で認証を実行することができる。トークンと特定のベリファイアとの間で初期認証するためのプロセスは、ベリファイアに対して計算集約的であり、おそらくは従来の公開鍵システムよりも計算集約的である。したがって、一実装形態では、初期認証段階は、トークンをベリファイアに「紹介」して、トークンとベリファイアが共有された対称鍵をネゴシエートできるようにするために使用できる。その後、より短い完全対称鍵ベースのプロセスを事後認証(再認証)に使用することができる。
図3に、トークン302、検証デバイス304、及びヘルパー・デバイス306がトークン302の初期認証中にどのように動作するかを示す。トークン302は、限定を与えられた処理回路308と、秘密鍵(SK)、トークンID、検証鍵VK、及びパズル生成アルゴリズムもしくは機能を記憶するための記憶デバイス310と、低帯域幅で非セキュアな通信インターフェース312とを含むデバイスとすることができる。低帯域幅インターフェースは、USB、Bluetooth(登録商標)、Near−Field Communication、及びセルラー/LDCなどにわたる範囲にある、数値キーパッド及び8桁ディスプレイほどの単純なものでよい。
ベリファイア304は、トークンよりも著しく多くの処理リソースを有する処理回路314と、検証鍵及び関連するトークンIDを記憶するための記憶デバイス315と、高帯域幅でセキュアな通信インターフェース316とを含むデバイス、エンティティ、及び/または仮想オブジェクトとすることができる。ヘルパー306は、処理回路318と、トークン302に関連する複数のパズルを記憶するための記憶デバイス320と、高帯域幅でセキュアな通信インターフェース322とを含むデバイス、エンティティ、及び/または仮想オブジェクトとすることができる。
ユーザがトークン302を使用して自分自身をベリファイア304で認証しようと試みると、トークンは認証要求を(トークンIDとともに)ベリファイア304に送信する。ベリファイア304及びヘルパー306は、データを通信及び/または交換することが可能である高帯域幅ネットワーク(たとえば、インターネット、プライベート・ネットワークなど)に結合できる。ベリファイア304は(トークンIDに関連する)複数のパズルをヘルパー306に要求する。ヘルパー306は応答して、(受信したトークンIDに関連する)パズルの擬似ランダムに選択されたセットをベリファイア304に送信する。いくつかの実装形態では、ヘルパー306とベリファイア304は、それらの相互作用をセキュアにするためにトランスポート層セキュリティ(TLS)プロトコルまたはセキュリティ・インターネット・プロトコル(IPsec)などのよく知られているセキュリティ・プロトコルを使用して、オープンなインターネット上で通信することができる。
次いでベリファイア304は、受信したパズルのうちの少なくとも1つを選択し、ブルート・フォース・アタックによって解読またはクラックする。パズルを解読またはクラックすると、ベリファイアはパズルからパズル秘密(PS)及びパズルID(PID)を取得する。ベリファイア304により、パズル秘密(PS)に基づいて検証鍵(VKv)が生成される。ベリファイア304は、パズルID(PID)と、検証鍵(VKv)のメッセージ認証コード(MAC)とをトークン302に送信する。トークン302は、受信したPIDと、そのあらかじめ記憶された秘密鍵(SK)及びパズル生成アルゴリズムとを使用して、PIDのパズル秘密を取得する。次いでトークン302は、パズル秘密を使用して、それ自体のローカル検証鍵(VKt)を再生することができる。検証鍵は一致するはずであり(VKt=VKv)、それにより検証鍵VKをトークン302とベリファイア304との間の認証のための対称鍵として使用することが可能になる。トークン302は、ベリファイア304との将来の認証のために検証鍵(VK)を記憶することができる。
いくつかの実装形態では、ベリファイア304は、複数のパズル秘密及びパズル識別子を取得するために複数のパズルを破る、クラックする、または解読することができることに留意されたい。複数のパズル秘密に基づいて検証鍵(VKv)が生成でき、それによってさらなる強度が得られる。対応するパズル識別子がトークン302に送信され、次いでトークン302はそれらのパズル識別子を使用してそのローカル検証鍵(VKt)を生成することができる。
図4に、ヘルパーの支援を受けたトークンとベリファイアとの間の初期認証のための方法を示す。トークン402に秘密鍵(SK1)をプロビジョニングする。ユーザは、認証を必要とするセキュアなトランザクションを実行したいと望むとき、トークン402を使用して、トークン識別子(トークンID)とともに認証要求412を送信することによってベリファイア404との認証を開始することができる。認証ヘルパー406は、トークン402(またはトークンのユーザ)によって識別されるか、またはデフォルトとして識別できる。たとえば、トークン402またはユーザのいずれかが、トークンのパズルが記憶されているヘルパー406のコンタクト情報をベリファイア404に供給することができる。
ベリファイア404は、ヘルパー406とのセキュアな及び/または認証された接続を確立する。ベリファイア404はまた、414において第1のランダム・ナンス(Nonce1)を生成する。次いでトークンID及びNonce1をヘルパー406に送信する。
ヘルパー406には、以前にトークン402のパズル・データベース410がプロビジョニングされており、ヘルパー406はトークンIDを使用してパズル・データベース410からパズルを選択する。一実装形態では、ヘルパー406は、418において第1のナンス(Nonce1)を使用して、トークン402に関連するN個のパズルの擬似ランダム選択(セット)を選択し(Nは、2と数百万の間の整数である)、420においてそれらをベリファイアに戻すことができる。Nonce1がベリファイア404によって供給された場合、ヘルパー406は、パズルのセットが、受信したNonce1の影響を受けて選択されたという証明を与えることができる。次いで、ベリファイア404と406との間の接続を閉じるかまたは終了する。
422において、ベリファイア404は受信したパズルのうちの1つまたは複数を選択する。いくつかの実装形態では、t個のパズルのランダムなシーケンスを選択し、ただし、t≧1であり、tはすべての受信したパズルのサブセットである。ヘルパー406が脅かされた場合、より多くのパズルを使用するほどより多くのセキュリティが得られる。なぜならば、ヘルパー406及び攻撃者は、検証鍵を生成するためにどのt個のパズルが使用されるのか、またはどんな順序(シーケンス)で結合されるのかを知らないからである。
選択されたパズルが暗号化されている場合、424において、ベリファイア404は(たとえば、ブルート・フォース・アタック技法を使用して)その選択されたパズルを解いて(解読またはクラックして)、選択されたパズルの各々のパズル識別子(PID)及びパズル秘密(PS)を取得する。
パズル秘密(PS)と、場合によっては第2の擬似ランダム・ナンス(Nonce2)426とに基づいて、428においてベリファイア404は検証鍵(VKver)を計算する。たとえば、ハッシュ関数H(たとえば、セキュアなハッシュアルゴリズムSHA−256など)を使用して検証鍵VKver=H(Nonce2,PS)を生成することができる。いくつかの実装形態では、追加のセキュリティのために、複数のパズルを使用して結果的にパズル秘密PS、PS...、PSが検証鍵VKver=H(Nonce2,PS,...,PS)に組み合わせられるようにする。430において、ベリファイア406は、第2のナンス(Nonce2)とt個のPIDの順序付きリストとを含むことができるメッセージをトークン402に送信する。430において、ベリファイア404はまた、入力として秘密検証鍵(VKver)及びメッセージを取り、タグMAC(VKver,Nonce2,PID)を出力するメッセージ認証コード(MAC)を送信する。432において、ベリファイア404はまた、事後認証に使用するためにこのユーザに関連するベリファイアVKverを記憶する。
ベリファイア404からPID及びMACを受信すると、434においてトークン402は、受信したPIDに基づいて解かれたパズルのパズル秘密PSを再生する。たとえば、トークン402は、その秘密鍵(SK1)及びパズル生成アルゴリズムを使用して、識別されたPIDのパズル秘密PSを取得することができる。次いで436において、トークン402は、パズル秘密PS及び第2のナンス(Nonce2)に基づいてローカル検証鍵VKtokenを生成する。438において、トークン402は、ローカルMAC(VKtoken,Nonce2,PID)に対して受信したメッセージ認証コードMAC(VKver,Nonce2,PID)を検証する。MACが等しくない場合、受信されたMAC(VKver,Nonce2,PID)及び/またはメッセージのコンテンツの改ざん(または偶発的破損)を示すエラーが示される。トークン402はまた、リプレイ・アタックを防ぐために、記憶しているのと同じ検証鍵VKをすでに有してないかを確認する。上首尾であると仮定すると、440において、トークン402はVKを空きスロットに記憶する。すなわち、トークン402は(異なるアプリケーションまたはベリファイアの)検証鍵をスロット中に編成する。ユーザは、後の選択または表示のために、検証鍵VKに関連するスロット番号の記録を取るか、または検証鍵VKに関連するスロットに名前を割り当てることができる。
442において、トークン402は、(後述の事後認証段階の場合とほとんど同様に)その認証応答を生成し、ベリファイアに送信する。ベリファイア404は、適正であるはずの応答を受信し、アカウントを使用準備完了にマーキングする。
事後認証段階
トークンと特定のベリファイアとの間で検証鍵(VK)がセットアップされると、それらの間の事後認証要求においてその検証鍵(VK)を使用することができる。検証鍵(VK)は、トークンとベリファイアとの間で秘密またはセキュアに保たれる。その検証鍵(VK)は、トークンとベリファイアとの間の質問応答認証プロセスにおける対称鍵として使用できる。いくつかの実装形態では、通信のプライバシーのために検証鍵(VK)を使用して2つのデバイス間のメッセージを暗号化することもできる。
図5に、トークンとベリファイアとの間の事後認証を実行するための方法を示す。トークン502とベリファイア504との間で、セキュアな検証鍵VKa506及び508を以前に確立していることができる。この検証鍵VKaは、トークン502とベリファイア504との間の関係に特有なことがあり、他のベリファイアには適用不可能である。510において、トークン502は、そのトークンIDとともに認証要求をベリファイア504に送信する(これは、たとえば、顧客がトランザクションを実行するように銀行出納係に依頼する場合など、間接的なことがある)。ベリファイア504はトークンIDを使用して、トークン502に対して以前に確立された検証鍵VKa508を識別する。512において、ベリファイア504は質問及びMAC(VKa,質問)を生成する。質問は、任意のもしくは擬似ランダムな数、文字列、及び/またはビットもしくはシンボルのシーケンスとすることができる。次いで514において、質問及びMAC(VKa,質問)をトークンに送信する。受信された質問と、その以前に記憶された検証鍵VKa506とを使用して、516においてトークン502はMAC(VKa,質問)を検証する。すなわち、トークン502は、受信したMAC(VKa,質問)が、ローカルに計算されたMAC(VKa,質問)と同じであるかどうかを検証する。
一実装形態では、トークン502は、認証要求510の送信先であるベリファイアがどれであるかを知っていることが可能である。たとえば、ユーザは、トークン502によって使用されるべき(特定のベリファイアに関連する)検証鍵VKa506を識別することができる。そのような実装形態では、受信したMAC(VKa,質問)を検証するとき、トークン502は単に、使用するように言われた検証鍵VKa506を使用する。
他の実装形態では、トークン502は、どのベリファイアと通信しているのかを知ることができない。そのような場合、トークンは、単に、その記憶されている検証鍵の各々に対して受信したMAC(VKa,質問)を検証しようと試みることができる。記憶されている検証鍵のうちの1つが同じMACを生成する場合、それは適正な検証鍵であると仮定される。
検証鍵VKaが認証されると、518においてトークン502は応答及びMAC(VKa,応答)をベリファイア504に送信する。この応答は、任意のもしくは擬似ランダムな数、文字列、及び/またはビットもしくはシンボルのシーケンスとすることができる。トークンとベリファイアとの間のメッセージが同じにならないように質問と応答は互いに異なるように選択される。概して、セキュリティについて、応答は最初に発された質問に関係することができるが、同じでないことがある。たとえば、応答は、受信された質問文字列よりも大きい文字列である文字列のことがある。そのような場合、応答自体を送信する必要がない。520において、ベリファイア504は、その知られている検証鍵VKa508と受信した応答とを使用することによって受信したMAC(VKa,応答)を検証する。受信したMACが、ベリファイア504によって計算されたローカルMACに一致する場合、認証は完了である。次いで522において、トークン502、ベリファイア504のいずれか、または両方によってセッション鍵を確立する。
盗聴者が以前に使用されたセッション鍵を再利用しようと試みるリプレイ・アタックを防ぐために、トークンはセキュリティ機構を実装することができる。たとえば、様々なトークンは、認証を証明するためにシーケンス・カウンタまたはタイムスタンプを実装することができる。カウンタまたはタイムスタンプは、検証鍵VKを知っているパーティのみが予測できる形で変わる。したがって、トークンまたはセッション鍵から以前のMAC応答を取得した盗聴者は、それを再利用することが不可能である。
シーケンス・カウンタを用いた認証
図6に、カウンタを使用したトークンとベリファイアとの間の認証を実行するための方法を示す。トークン602とベリファイア604の両方の上で、検証鍵VKa606及び608、ならびに関連する順次カウンタcounter_VKa610及び612をプロビジョニングする。検証鍵VKa606及び608、ならびに順次カウンタcounter_VKa610及び612は、以前に構成しているか、及び/またはトークン602とベリファイア604との間で同期していることが可能である。たとえば、検証鍵VKaがトークン602とベリファイア604との間で最初に確立されるとき、トークン602及びベリファイア604はそれらのカウンタ610とカウンタ612を同期させることができる。カウンタ610及び612は、無許可パーティがトークン602及び/またはベリファイア604として見せかけようと試みる場合のセキュリティ対策として使用される。(トークン602における)counter_VKa610、及び(ベリファイア604における)counter_VKa612は、無許可パーティがトークン602及び/またはベリファイア604として見せかけようと試みる場合のセキュリティ対策として使用される。
トークンは、そのトークンIDとともに認証要求614を送信することによってトランザクションを開始する。認証要求を受信すると、ベリファイア604は、トークンIDを使用して、トークン602に関連する検証鍵VKa608を識別する。次いでベリファイア604は、検証鍵VKa608に対応するcounter_VKa612を選択する。616において、ベリファイア604においてcounter_VKaを固定の増分だけ増分してcounter_VKa’を取得する。618において、質問と、検証鍵VKa、counter_VKa’、及び質問のメッセージ認証コード(MAC(VKa,counter_VKa’,質問))とを生成する。620において、この質問及びMAC(VKa,counter_VKa’,質問)をベリファイアからトークンに送信する。トークン602によって記憶されている各検証鍵VKnについて、a)622において、関連するcounter_VKnを取り出し(ただし、1≦n≦Nであり、Nは、トークンによって記憶されている検証鍵の総数である)、b)次いで検証鍵VKn及びcounter_VKnごとにMAC(VKn,counter_VKn+i,質問)を計算し(たとえば、1≦i≦5)、c)計算されたMACが受信したMACに合致する場合、選択された検証鍵(すなわち、VKa)は適正であると仮定する。いくつかの実装形態では、応答をより迅速にするために、質問は、各検証鍵VKnのMACをあらかじめ計算し記憶できるような既知の数、文字列、またはビット・シーケンスとすることができる。
適正な検証鍵VKaを発見すると、628においてトークン602は、そのcounter_VKa’=counter_VKa+増分と更新する。したがって、トークン602とベリファイア604の両方が、同期されたカウンタを維持している。次いでトークンは、630において応答及びMAC(VKa,counter_VKa’,応答)を計算し、632においてベリファイアに送信する。
ベリファイア604は、それ自体のVKa、及びcounter_VKa’、ならびに受信した応答を使用して、受信したMAC(VKa,counter_VKa’,応答)を検証する。受信したMACが首尾よく検証された場合、トークン602は認証されたとみなす。636及び638において、トークン602とベリファイア604の両方はセッション鍵=MAC(VK,counter_VKa’,「K」)を計算し、ただし「K」は、既知であるかまたはトークン602とベリファイア604の両方が判断できる、秘密鍵またはあらかじめ構成された値とすることができる。
トークン602が攻撃者からランダムな質問を受信した場合、トークン602は対応する検証鍵VKを発見することができず、それはエラーを示し、認証は失敗することに留意されたい。
タイムスタンプを用いた認証
図7に、タイマを使用したトークンとベリファイアとの間の認証を実行するための方法を示す。この方法は、ユーザに、トークンに対してベリファイアを識別させることによって認証プロトコルを単純化し、それによって(ベリファイアを識別するのに用いる)ベリファイア704からの質問の必要を回避する。この機構はまた、認証ステップの数を低減するために(上述のカウンタベースの認証プロトコルなどの)他のプロトコルにおいて実装できる。この方法では、トークン702及びベリファイア704が、同期されたタイマTtoken710及びTver712(たとえば、協定世界時UTC)を妥当な精度で維持することができると仮定する。たとえば、トークン702は、プロビジョニング中に同期または初期化されるタイマTtoken710を有することができる。ベリファイア704は、そのタイマTver712が同期及び/または維持されるネットワーク接続を有することができる。714において、トークン702は、そのトークンを認証しているベリファイア704を識別する指示を(ユーザなどから)受信する。たとえば、ユーザは、以前は特定のベリファイア704に関連付けられていた特定の名前または検証鍵VKa706を選択することができる。このようにして、トークン702は、以前はベリファイア704に関連付けられていた適切な検証鍵VKa706を取得することができる。トークンは、716において応答及びMAC(VKa,タイムスタンプ,応答)を生成し、718においてベリファイアに送信する。応答において使用されるタイムスタンプはタイマTtoken710から取得する。718において、トークンの認証のために応答、MAC(VKa,タイムスタンプ,応答)、及びトークンIDをベリファイアに送信する。
720において、ベリファイアは、(トークンIDに対応する)検証鍵VKa708を取り出し708、(タイムスタンプを取得するための)タイマTver712と受信した応答とを使用してMACのローカルバージョンを計算することによって、受信したMAC(VK,タイムスタンプ,応答)を検証する。タイムスタンプの分解能は、タイマTtoken710とタイマTver712との間のわずかな相違、またはトークン702によってMACが生成された時刻と、それがベリファイア702に与えられた時刻との間の遅延に適応するように調整できる。たとえば、タイムスタンプは、+/−30秒または何らかの他のタイムウィンドウの分解能を有することができる。
いくつかの実装形態では、722及び724において、トークン702及び/またはベリファイア704は、特定のトランザクション中のセッション鍵として使用するためのMAC(VK,タイムスタンプ,セッション鍵)を計算することができ、ただし、セッション鍵は、既知であるかまたはトークン702とベリファイア704の両方が判断できる、擬似ランダムまたは任意の数、文字列、及び/またはビット・シーケンスである。
トークンは、ベリファイア704から質問を受信しないので、ベリファイアが本物であるかどうかを知らないことに留意されたい。したがって、トークンは、信頼できるベリファイアにトークンを提示しているユーザに依拠することができる。追加のセキュリティが所望される場合、このトークン702は、ベリファイアが有効または本物である(たとえば、ベリファイアが検証鍵VKaを知っている)かどうかを確認することができる質問をベリファイア704に要求することができる。
使用のシナリオ
単一ファクタ認証システムでは、ユーザは、自分自身をベリファイアで認証するためにトークンを使用することができる。すなわち、適正な検証鍵を有するトークンを占有しているだけで、ユーザを認証するのに十分である。ただし、単一ファクタ認証は、物理トークンへのアクセス権を得た人は誰でも、ベリファイアによって守られているアカウント及び/または情報に不正にアクセスできるという欠点を有する。
2ファクタ認証システムでは、より強いセキュリティを達成するために2つのセキュリティ対策を使用する。1つのそのようなファクタは、ユーザが認証の時点で供与する、セキュアなパスワード、鍵、識別子、写真識別、指紋、ボイスサンプルなどとすることができる。第2のファクタは、同じく認証の時点で提示される適正な(1つまたは複数の)検証鍵を記憶しているトークンとすることができる。
本明細書で説明するトークンとベリファイアとの間の認証プロトコルは、手動で、自動で、またはそれらの組合せのいずれかで実行できる。いくつかの例では、ユーザは、トークンとベリファイアの仲介者として働きをすることができる。たとえば、質問及び応答(たとえば、MAC)は、ユーザがトークン及び/またはベリファイアに手動で入力することが可能な比較的短い数字、文字及び/または記号の列とすることができる。他の例では、トークンを(たとえば、ワイヤレス、ユニバーサル・シリアルバス、音声などの)インターフェースによってベリファイアに直結し、それによってそのインターフェースなどを介して認証メッセージを交換することができる。トークンとベリファイアが直接互いに通信する実装形態では、認証プロトコルは、追加のセキュリティのためにより長い質問及び応答、より多くのパズルなどを使用することができる。
トークンの例
図8は、複数の異なるベリファイア804、806、及び808で認証するためにトークン802が複数の検証鍵をどのように記憶するかを示すブロック図である。トークン802は、限られた処理リソース及び限られた帯域幅通信インターフェースを有し、図1〜図7に示すように動作するように構成できる。いくつかの従来技術のトークンは、異なるベリファイアとの認証のための複数の公開鍵を記憶することができるが、そのような公開鍵認証システムを実装するためにかなりの処理リソース及び通信帯域幅を要求することがある。他のトークンは、セキュリティの考慮事項により、ただ1つのベリファイアで利用できる対称鍵を記憶することができる。そのような従来技術のトークンとは対照的に、このトークン802は、限られた処理リソース及び限られた帯域幅インターフェースを利用しながら複数の対称鍵を取得し、セキュアに記憶するように構成される。すなわち、トークン802は、図1〜図7に示す方法で複数の検証鍵(すなわち、対称鍵)を取得し、それによりトークン802を複数の異なるベリファイアで認証することが可能になる。詳細には、検証鍵は、トークン802、及びベリファイア804、806、808によってセキュアに生成され、トークン802とベリファイア804、806、808との間で送達または送信はされない。セキュアな方法で初期配備した後に追加の検証鍵(すなわち、対称鍵)をトークンに追加することができる。
図9に、複数の異なるベリファイアで対称鍵を使用してセキュアな認証を実行するようにトークン上で動作可能な方法を示す。プロビジョニング段階902中に、秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングする。904(初期認証段階)において、トークンは、そのトークン識別子をベリファイアに供給することによってベリファイアとの認証を開始する。ユーザまたはトークンは、トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスをベリファイアに供給することができる。
906において、第1の検証鍵に基づく1つまたは複数のパズル識別子とメッセージ認証コードとを含む質問メッセージをベリファイアから受信し、第1の検証鍵は、1つまたは複数のパズル識別子によって識別される1つまたは複数のパズルに関連する1つまたは複数のパズル秘密の関数である。908において、トークンは、1つまたは複数のパズル生成アルゴリズム、受信した1つまたは複数のパズル識別子、及び秘密鍵に基づいて1つまたは複数のパズル秘密を(独立して)取得する。たとえば、トークンは、パズル生成アルゴリズムへの入力として秘密鍵及び/または1つまたは複数のトークン識別子を使用して、トークン識別子に対応する1つまたは複数のパズル及び/または1つまたは複数のパズル秘密を生成することができる。910において、1つまたは複数のパズル秘密に基づいて第2の検証鍵をトークンによって生成する。912において、トークンは、第1の検証鍵と第2の検証鍵が同じであるかどうか判断するために受信したメッセージ認証コードを検証する。914において、トークンは第2の検証鍵に基づいてベリファイアへの応答を生成する。メッセージ認証コードが首尾よく検証された場合、916において、トークンは第2の検証鍵を記憶し、その第2の検証鍵をベリファイアに関連付ける。第1の検証鍵及び第2の検証鍵は、トークンとベリファイアとの間の事後認証のための対称鍵として使用される。同様の方法で、トークンは、他のベリファイアを用いて異なる対称鍵をセットアップすることができる。このようにして、単一のトークンを使用して、異なるベリファイアで使用される複数の検証鍵(すなわち、対称鍵)を記憶することができる。トークンは、他の検証鍵のセキュリティを脅かすことなしに必要に応じて異なるベリファイアの追加の検証鍵を確立することができる。
ベリファイアの例
図10は、トークンを認証するためにヘルパーの支援を受けて対称鍵を確立するように構成されたベリファイア1002を示すブロック図である。ベリファイア1002は、かなりの処理能力をもつ処理回路1004と、トークンと通信するための低帯域幅通信インターフェース1006(たとえば、キーパッド、ワイヤレス・トランスポンダなど)と、ヘルパーと通信するための高帯域幅通信インターフェース1008と、ヘルパーから受信したパズルとトークンに関連する検証鍵とを記憶するための記憶デバイス1010とを含むことができる。ベリファイア1002は、図1〜図7に示すように動作するように構成できる。処理回路1004は、低帯域幅通信インターフェース1006を介してトークンからトークン識別子を受信し、高帯域幅通信インターフェース1008を介してヘルパーに複数のパズルを要求するように構成される。ヘルパーのコンタクト情報は、トークン、トークンのユーザ、またはデフォルトのロケーション(たとえば、インターネットアドレス、Uniform Resource Locator(URL)など)によって与えることができる。次いで、処理回路1004は、受信したパズルのうちの1つをランダムに選択し、その選択したパズルをブルート・フォース・アタックによって解読または復号する。そのようなブルート・フォース・アタックでは、処理回路1004は、パズルを首尾よく解読または復号する鍵が発見されるまで様々な可能な鍵を試みることができる。パズルを暗号化する鍵の長さ(たとえば、32ビット、64ビット、128ビットなど)はベリファイア1002に知られていてよく、それによって鍵の探索を制限することができる。
図11に、ヘルパーの支援を受けてトークンのセキュアな認証を実行するベリファイア上で動作可能な方法を示す。1102において、(低帯域幅インターフェースを介して)トークンから認証要求をトークン識別子とともに受信する。1004において、ベリファイアは、トークンに関連するヘルパーのヘルパー・アドレスを取得する。次いで1106において、ベリファイアは、トークンに対応する複数(たとえば、数千、数十万、または数百万)のパズルをヘルパーに要求する。いくつかの実装形態では、ヘルパーによるバイアスなしに擬似ランダムに複数のパズルが選択されるように、ベリファイアは第1の擬似ランダム・ナンスをヘルパーに送信することもできる。次いで1108において、ベリファイアは、受信したパズルのうちの1つを擬似ランダムに選択し、その選択したパズルをブルート・フォース・アタックによって解いて、パズル秘密及び対応するパズル識別子を取得する。たとえば、ベリファイアは、パズルを符号化した鍵の長さを知っている場合、パズルが解かれるまで(たとえば、メッセージが首尾よく復号されるまで)すべての可能な鍵を試みることができる。次いで1110において、ベリファイアはパズル秘密を使用して検証鍵を生成する。1112において、ベリファイアは検証鍵に基づいて質問メッセージ認証コードを生成する。1114において、パズル識別子及び質問メッセージをトークンに送信する。1116において、同じ検証鍵をトークンが知っていることを証明する応答メッセージ認証コードをトークンから受信する。1118において、ベリファイアは将来の認証のために検証鍵を記憶し、その検証鍵をトークンに関連付ける。
いくつかの実装形態では、検証鍵を生成するために(ただ1つの代わりに)複数のパズルを使用することによって追加のセキュリティを与えることができる。ベリファイアは、複数のパズルを擬似ランダムに選択して解読し、それによって複数のパズル秘密を取得することができる。次いで、複数のパズル秘密を組み合わせて検証鍵を生成することができる。
ヘルパーの例
図12は、トークンを認証するための対称鍵を確立する際にベリファイアを支援するように構成されたヘルパー1202を示すブロック図である。ヘルパー1202は、高帯域幅通信インターフェース1206と記憶デバイス1208とに結合された処理回路1204を含むネットワーク化されたデバイスとすることができる。処理回路1204は、パズルプロビジョナからそのインターフェース1206を介して複数のパズルを受信し、その複数のパズルを記憶デバイス1208に記憶するように構成される。パズルは、パズルプロビジョナによって識別された特定のトークンに関連付けられる。処理回路1204はまた、インターフェース1206を介して1つまたは複数のベリファイアからパズルの要求を受信するように構成される。その要求は、識別されたトークンに関連する複数のパズルを取り出し、送信するために処理回路1204が使用するトークン識別子を含む。ヘルパー1202は、トークンを用いて対称鍵を確立する際にベリファイアを支援することができるが、各トークンを解読するために必要な多数のパズル及び処理リソースにより、ヘルパー1202が対称鍵を決定することは法外に重くなる。
図13に、トークンを認証する際にベリファイアを支援するように(ネットワーク)ヘルパー上で動作可能な方法を示す。1302において、ヘルパーは、トークン識別子に関連する複数(たとえば、数千、数十万、及び/または数百万)の(符号化されたまたは符号化されない)パズルをトークン・プロビジョナから受信する。1304において、ヘルパーはそれらの複数のパズルを記憶する。1306において、ヘルパーは、トークン識別子に関連するパズルについての後続の要求をベリファイアから受信する。この要求は、ベリファイアとトークンとの間で対称鍵(すなわち、検証鍵)が確立される、ベリファイアとトークンとの間の初期認証段階中に発生することがある。1308において、ヘルパーは、トークン識別子に関連する記憶された複数のパズルのサブセットを(擬似ランダムに)選択する。次いで1310において、パズルの選択されたサブセットをベリファイアに送信する。いくつかの実装形態では、ヘルパーは、ベリファイアに送信される複数のパズルを擬似ランダムに選択するために使用するナンス(たとえば、文字または数のストリングなど)を要求元ベリファイアから受信することができる。ヘルパーはまた、複数のパズルを選択する際にナンスが利用されたという証明(たとえば、メッセージ認証コードなど)を与えることができる。これにより、ヘルパーがパズルの選択を改ざんすることが防止される。
ヘルパーは、トークンの認証を実行する際にベリファイアを支援することはできるが、ベリファイアになりすますことが可能であってはならない。ヘルパーがそれ自体で悪意のある場合、パズルの一部を解読することに時間を費やし、それらをベリファイアに配信することのみを保証することが可能である。しかしながら、ベリファイアに、ベリファイアに送信するパズルを選択するために使用されたことをヘルパーが証明する擬似ランダム・ナンスを送信させることによって、ヘルパーによるそのような操作を防止することができる。また、トークンとベリファイアとの間の鍵確立段階でヘルパーが盗聴することができる場合、ヘルパーはそれらの間で対称鍵が確立されたことを確認することも可能である。ただし、鍵確立段階中に首尾よく通信を傍受することは起こりそうにない。
ヘルパーが初期鍵確立を妨害しないで、代わりにいくつかの事後認証を傍受する場合、ヘルパーは、トークンとベリファイアとの間で確立された検証鍵(対称鍵)を最終的に発見するために十分な情報を取得することができる。しかしながら、これは、ヘルパーが、トークンに関連するすべてのパズルを解くことと、(検証鍵が順序付きパズル秘密のサブセットに基づく)パズル秘密の様々な組合せを試みることと、検証鍵を生成する際に使用され得た(ヘルパーに明らかにされない)ナンスを発見することとを必要とする。したがって、より強いセキュリティを達成するために、ベリファイアは、パズルのより大きいセットをヘルパーに要求し、それらのより大きいサブセットを使用して、トークンでその検証鍵を確立することができる。
図1、図2、図3、図4、図5、図6、図7、図8、図9、図10、図11、図12、及び/または図13で示した構成要素、ステップ、及び/または機能のうちの1つまたは複数を、トークンとベリファイアとの間の認証に影響を及ぼすことなく、単一の構成要素、ステップ、または機能に再編成し及び/または組み合わせることができ、あるいは、いくつかの構成要素、ステップ、または機能で実施することができる。また、本発明から逸脱することなく追加の要素、構成要素、ステップ、及び/または機能を追加することができる。図1、図3、図8、図10、及び/または図12に示した装置、デバイス、及び/または構成要素は、図2、図4、図5、図6、図7、図9、図11、及び/または図13に記載した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成できる。本明細書に記載の新規のアルゴリズムは、ソフトウェア及び/または組込みハードウェアで効率的に実施できる。
さらに、本明細書で開示する実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズム・ステップは、電子ハードウェア、コンピュータ・ソフトウェア、または両方の組合せとして実装できることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、及びステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例及び全体的なシステムに課される設計制約に依存する。
実施形態についての説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置、ならびに多くの代替形態、修正形態、及び変更形態に容易に適用できることが当業者には明らかであろう。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] トークンを認証するためのベリファイア上で動作可能な方法であって、
トークンから認証要求及びトークン識別子を受信することと、
ネットワーク化されたヘルパーから前記トークンに対応する複数のパズルを取得することと、
前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くことと、
前記パズル秘密に基づいて検証鍵を生成することと、
前記検証鍵に基づいて質問メッセージを生成することと、
前記パズル識別子及び前記質問メッセージを前記トークンに送信することと、
を備える方法。
[2] 前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信すること、
をさらに備える[1]に記載の方法。
[3] 前記検証鍵を記憶することと、
前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けることと、
をさらに備える[1]に記載の方法。
[4] 前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得することをさらに備える[1]に記載の方法。
[5] パズルがパズル識別子とパズル秘密とを含む符号化メッセージである[1]に記載の方法。
[6] 前記受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するために前記受信したパズルのうちのサブセット複数を解くことであって、前記検証鍵が前記パズル秘密の順序セットにも基づく、解くことと、
パズル秘密の前記順序セットに対応する前記パズル識別子の順序セットを前記質問メッセージとともに前記トークンに送信することと、
をさらに備える[1]に記載の方法。
[7] 前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記トークンによって維持されるカウンタにローカル・カウンタを同期させることであって、事後認証質問メッセージが現在のカウンタ値にも基づく、同期させること、
をさらに備える[1]に記載の方法。
[8] 前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信すること、
をさらに備える[7]に記載の方法。
[9] タイムスタンプを生成するためのタイマを維持することであって、事後認証質問メッセージが現在のタイムスタンプにも基づく、維持することをさらに備える[1]に記載の方法。
[10] 前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することをさらに備える[9]に記載の方法。
[11] 前記選択されたパズルを解くことが、前記パズルを復号するための鍵を発見するためにブルート・フォース・アタックを実行することを含む[1]に記載の方法。
[12] 前記質問メッセージがメッセージ認証コードである[1]に記載の方法。
[13] 擬似ランダム・ナンスを生成することと、
前記トークンに対応するより多数のパズルの中から前記複数のパズルを取得する際に使用すべき前記ヘルパーに前記擬似ランダム・ナンスを送信することと、
をさらに備える[1]に記載の方法。
[14] トークンを認証するための検証デバイスであって、
ネットワークに対する高帯域幅を有する第1の通信インターフェースと、
トークンと通信するための低帯域幅を有する第2の通信インターフェースと、
前記第1の通信インターフェース及び前記第2の通信インターフェースに結合された処理回路であって、
前記第2の通信インターフェースを介してトークンから認証要求及びトークン識別子を受信すること、
前記第1の通信インターフェースを介してヘルパーから前記トークンに対応する複数のパズルを取得すること、
前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くこと、
前記パズル秘密に基づいて検証鍵を生成すること、
前記検証鍵に基づいて質問メッセージを生成すること、ならびに
前記第2の通信インターフェースを介して前記パズル識別子及び前記質問メッセージを前記トークンに送信すること
を行うように構成された処理回路と、
を備える検証デバイス。
[15] 前記処理回路が、
前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記検証デバイスが前記トークンを認証する、受信することを行うようにさらに構成された[14]に記載の検証デバイス。
[16] 前記処理回路に結合された、前記検証鍵を記憶するための記憶デバイスをさらに備え、
前記処理回路が、前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けるようにさらに構成された[14]に記載の検証デバイス。
[17] 前記処理回路が、前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得するようにさらに構成された[14]に記載の検証デバイス。
[18] 前記処理回路が、
前記受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するために前記受信したパズルのうちのサブセット複数を解くことであって、前記検証鍵が前記パズル秘密の順序セットにも基づく、解くことと、
パズル秘密の前記順序セットに対応する前記パズル識別子の順序セットを前記質問メッセージとともに前記トークンに送信することと、
を行うようにさらに構成された[14]に記載の検証デバイス。
[19] 前記処理回路が、
前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記トークンによって維持されるカウンタにローカル・カウンタを同期させることであって、事後認証質問メッセージが現在のカウンタ値にも基づく、同期させることと、
前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のカウンタ値を独立して知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することと、
を行うようにさらに構成された[14]に記載の検証デバイス。
[20] 前記処理回路が、
タイムスタンプを生成するタイマを維持することであって、事後認証質問メッセージが現在のタイムスタンプにも基づく、維持することと、
前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のタイムスタンプを独立して知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することと、
を行うようにさらに構成された[14]に記載の検証デバイス。
[21] トークンを認証するための検証デバイスであって、
トークンから認証要求及びトークン識別子を受信するための手段と、
ネットワーク化されたヘルパーから前記トークンに対応する複数のパズルを取得するための手段と、
前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くための手段と、
前記パズル秘密に基づいて検証鍵を生成するための手段と、
前記検証鍵に基づいて質問メッセージを生成するための手段と、
前記パズル識別子及び前記質問メッセージを前記トークンに送信するための手段と、
を備える検証デバイス。
[22] 前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信するための手段であって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信するための手段をさらに備える[21]に記載の検証デバイス。
[23] 前記検証鍵を記憶するための手段と、
前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けるための手段と、
をさらに備える[21]に記載の検証デバイス。
[24] 前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得するための手段をさらに備える[21]に記載の検証デバイス。
[25] 前記受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するために前記受信したパズルのうちのサブセット複数を解くための手段であって、前記検証鍵が前記パズル秘密の順序セットにも基づく、解くための手段と、
パズル秘密の前記順序セットに対応する前記パズル識別子の順序セットを前記質問メッセージとともに前記トークンに送信するための手段と、
をさらに備える[21]に記載の検証デバイス。
[26] 前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記トークンによって維持されるカウンタにローカル・カウンタを同期させるための手段であって、事後認証質問メッセージが現在のカウンタ値にも基づく、同期させるための手段と、
前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを証明する応答メッセージを前記トークンから受信するための手段であって、前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信するための手段と、
をさらに備える[21]に記載の検証デバイス。
[27] タイムスタンプを生成するタイマを維持するための手段であって、事後認証質問メッセージが現在のタイムスタンプにも基づく、維持するための手段と、
前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを証明する応答メッセージを前記トークンから受信するための手段であって、前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信するための手段と、
をさらに備える[21]に記載の検証デバイス。
[28] 第1の通信インターフェースを介してトークンから認証要求及びトークン識別子を受信することと、
第2の通信インターフェースを介してヘルパーから前記トークンに対応する複数のパズルを取得することと、
前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くことと、
前記パズル秘密に基づいて検証鍵を生成することと、
前記検証鍵に基づいて質問メッセージを生成することと、
前記第1の通信インターフェースを介して前記パズル識別子及び前記質問メッセージを前記トークンに送信することと、
を行うように構成された処理回路
を備える処理デバイス。
[29] 前記処理回路に結合された、前記検証鍵を記憶するための記憶デバイス
をさらに備え、
前記処理回路が、前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けるようにさらに構成された[28]に記載の処理デバイス。
[30] 前記処理回路が、前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得するようにさらに構成された[28]に記載の処理デバイス。
[31] ベリファイアに対してトークンを認証するための1つまたは複数の命令であって、プロセッサによって実行されたとき、前記プロセッサに、
ネットワーク化されたヘルパーから前記トークンに対応する複数のパズルを取得することと、
前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くことと、
前記パズル秘密に基づいて検証鍵を生成することと、
前記検証鍵に基づいて質問メッセージを生成することと、
前記パズル識別子及び前記質問メッセージを前記トークンに送信することと、
を行わせる1つまたは複数の命令を有する機械可読媒体。
[32] プロセッサによって実行されたとき、前記プロセッサに、
前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することをさらに行わせる1つまたは複数の命令を有する[31]に記載の機械可読媒体。
[33] プロセッサによって実行されたとき、前記プロセッサに、
前記検証鍵を記憶することと、
前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けることと、
をさらに行わせる1つまたは複数の命令を有する[31]に記載の機械可読媒体。
[34] ベリファイアに対してトークンを認証するための前記トークン上で動作可能な方法であって、
秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングすることと、
前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始することと、
第1の検証鍵に基づく1つまたは複数のパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記1つまたは複数のパズル識別子によって識別される1つまたは複数のパズルに関連する1つまたは複数のパズル秘密の関数である、受信することと、
前記1つまたは複数のパズル生成アルゴリズム、前記受信した1つまたは複数のパズル識別子、及び前記秘密鍵に基づいて前記1つまたは複数のパズル秘密を独立して取得することと、
前記1つまたは複数のパズル秘密に基づいて第2の検証鍵を生成することと、
前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証することと、
を備える方法。
[35] 前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けることをさらに備える[34]に記載の方法。
[36] 前記第2の検証鍵に基づいて、前記トークンが前記第1の検証鍵を知っていることを示す、前記ベリファイアへの応答メッセージを生成することをさらに備える[34]に記載の方法。
[37] 前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給することをさらに備える[34]に記載の方法。
[38] 前記ベリファイアから複数の順序付きパズル識別子を受信することであって、前記第1の検証鍵が、前記複数の順序付きパズル識別子に関連する対応する複数の順序付きパズル秘密の関数である、受信することと、
前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記複数の順序付きパズル秘密を取得することであって、前記第1の検証鍵及び前記第2の検証鍵が前記複数の順序付きパズル秘密にも基づく、取得することと、
をさらに備える[34]に記載の方法。
[39] 前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記ベリファイアによって維持されるカウンタにローカル・カウンタを同期させることであって、後続の受信したメッセージ認証コードが現在のカウンタ値にも基づく、同期させること、
をさらに備える[34]に記載の方法。
[40] 前記トークンが前記検証鍵と前記現在のカウンタ値とを知っていることを証明する応答メッセージを前記ベリファイアに送信すること、
をさらに備える[39]に記載の方法。
[41] タイムスタンプを生成するためのタイマを維持することであって、後続の受信したメッセージ認証コードが現在のタイムスタンプにも基づく、維持すること、
をさらに備える[34]に記載の方法。
[42] 前記トークンが前記検証鍵と前記現在のタイムスタンプとを知っていることを証明する応答メッセージを前記ベリファイアに送信することをさらに備える[41]に記載の方法。
[43] 異なるベリファイアを用いて複数のセキュアな検証鍵を確立することと、
前記検証鍵を記憶し、前記トークンと前記異なるベリファイアとの間の対称鍵認証として使用するために前記検証鍵の各々を対応するベリファイアに関連付けることと、
をさらに備える[34]に記載の方法。
[44] ベリファイアと通信するための低帯域幅を有する第1の通信インターフェースと、
前記第1の通信インターフェースに結合された処理回路であって、
秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムを受信すること、
前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始すること、
第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信すること、
前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得すること、
前記パズル秘密に基づいて第2の検証鍵を生成すること、
前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証すること、
を行うように構成された処理回路と、
を備えるトークン。
[45] 前記処理回路に結合され、前記第2の検証鍵を記憶するように構成された記憶デバイスであって、前記処理回路が、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けるように構成された、記憶デバイス
をさらに備える[44]に記載のトークン。
[46] 前記処理回路が、
異なるベリファイアを用いて複数のセキュアな検証鍵を確立することと、
前記検証鍵を記憶し、前記トークンと前記異なるベリファイアとの間の対称鍵認証として使用するために前記検証鍵の各々を対応するベリファイアに関連付けることと
を行うようにさらに構成された[44]に記載のトークン。
[47] 前記処理回路が、
前記第2の検証鍵に基づいて、前記トークンが前記第1の検証鍵を知っていることを示す、前記ベリファイアへの応答メッセージを生成すること
を行うようにさらに構成された[44]に記載のトークン。
[48] 前記処理回路が、
前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給すること
を行うようにさらに構成された[44]に記載のトークン。
[49] ベリファイアで認証するためのトークンであって、
秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングするための手段と、
前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始するための手段と、
第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信するための手段であって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信するための手段と、
前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得するための手段と、
前記パズル秘密に基づいて第2の検証鍵を生成するための手段と、
前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証するための手段と、
を備えるトークン。
[50] 前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けるための手段をさらに備える[49]に記載のトークン。
[51] 前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給するための手段をさらに備える[49]に記載のトークン。
[52] 秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムを受信することと、
前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始することと、
第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信することと、
前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得することと、
前記パズル秘密に基づいて第2の検証鍵を生成することと、
前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証することと、
を行うように構成された処理回路
を備える処理デバイス。
[53] 前記処理回路が、
前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けること
を行うようにさらに構成された[52]に記載の処理デバイス。
[54] 前記処理回路が、
前記第2の検証鍵に基づいて、前記トークンが前記第1の検証鍵を知っていることを示す、前記ベリファイアへの応答メッセージを生成することを行うようにさらに構成された[52]に記載の処理デバイス。
[55] ベリファイアに対してトークンを認証するための1つまたは複数の命令であって、プロセッサによって実行されたとき、前記プロセッサに、
秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングすることと、
前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始することと、
第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信することと、
前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得することと、
前記パズル秘密に基づいて第2の検証鍵を生成することと、
前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証することと、
を行わせる1つまたは複数の命令を有する機械可読媒体。
[56] プロセッサによって実行されたとき、前記プロセッサに、
前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けることをさらに行わせる1つまたは複数の命令を有する[55]に記載の機械可読媒体。
[57] プロセッサによって実行されたとき、前記プロセッサに、
前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給することをさらに行わせる1つまたは複数の命令を有する[55]に記載の機械可読媒体。

Claims (57)

  1. トークンを認証するためのベリファイア上で動作可能な方法であって、
    トークンから認証要求及びトークン識別子を受信することと、
    ネットワーク化されたヘルパーから前記トークンに対応する複数のパズルを取得することと、
    前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くことと、
    前記パズル秘密に基づいて検証鍵を生成することと、
    前記検証鍵に基づいて質問メッセージを生成することと、
    前記パズル識別子及び前記質問メッセージを前記トークンに送信することと、
    を備える方法。
  2. 前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信すること、
    をさらに備える請求項1に記載の方法。
  3. 前記検証鍵を記憶することと、
    前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けることと、
    をさらに備える請求項1に記載の方法。
  4. 前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得することをさらに備える請求項1に記載の方法。
  5. パズルがパズル識別子とパズル秘密とを含む符号化メッセージである請求項1に記載の方法。
  6. 前記受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するために前記受信したパズルのうちのサブセット複数を解くことであって、前記検証鍵が前記パズル秘密の順序セットにも基づく、解くことと、
    パズル秘密の前記順序セットに対応する前記パズル識別子の順序セットを前記質問メッセージとともに前記トークンに送信することと、
    をさらに備える請求項1に記載の方法。
  7. 前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記トークンによって維持されるカウンタにローカル・カウンタを同期させることであって、事後認証質問メッセージが現在のカウンタ値にも基づく、同期させること、
    をさらに備える請求項1に記載の方法。
  8. 前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信すること、
    をさらに備える請求項7に記載の方法。
  9. タイムスタンプを生成するためのタイマを維持することであって、事後認証質問メッセージが現在のタイムスタンプにも基づく、維持することをさらに備える請求項1に記載の方法。
  10. 前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することをさらに備える請求項9に記載の方法。
  11. 前記選択されたパズルを解くことが、前記パズルを復号するための鍵を発見するためにブルート・フォース・アタックを実行することを含む請求項1に記載の方法。
  12. 前記質問メッセージがメッセージ認証コードである請求項1に記載の方法。
  13. 擬似ランダム・ナンスを生成することと、
    前記トークンに対応するより多数のパズルの中から前記複数のパズルを取得する際に使用すべき前記ヘルパーに前記擬似ランダム・ナンスを送信することと、
    をさらに備える請求項1に記載の方法。
  14. トークンを認証するための検証デバイスであって、
    ネットワークに対する高帯域幅を有する第1の通信インターフェースと、
    トークンと通信するための低帯域幅を有する第2の通信インターフェースと、
    前記第1の通信インターフェース及び前記第2の通信インターフェースに結合された処理回路であって、
    前記第2の通信インターフェースを介してトークンから認証要求及びトークン識別子を受信すること、
    前記第1の通信インターフェースを介してヘルパーから前記トークンに対応する複数のパズルを取得すること、
    前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くこと、
    前記パズル秘密に基づいて検証鍵を生成すること、
    前記検証鍵に基づいて質問メッセージを生成すること、ならびに
    前記第2の通信インターフェースを介して前記パズル識別子及び前記質問メッセージを前記トークンに送信すること
    を行うように構成された処理回路と、
    を備える検証デバイス。
  15. 前記処理回路が、
    前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記検証デバイスが前記トークンを認証する、受信することを行うようにさらに構成された請求項14に記載の検証デバイス。
  16. 前記処理回路に結合された、前記検証鍵を記憶するための記憶デバイスをさらに備え、
    前記処理回路が、前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けるようにさらに構成された請求項14に記載の検証デバイス。
  17. 前記処理回路が、前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得するようにさらに構成された請求項14に記載の検証デバイス。
  18. 前記処理回路が、
    前記受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するために前記受信したパズルのうちのサブセット複数を解くことであって、前記検証鍵が前記パズル秘密の順序セットにも基づく、解くことと、
    パズル秘密の前記順序セットに対応する前記パズル識別子の順序セットを前記質問メッセージとともに前記トークンに送信することと、
    を行うようにさらに構成された請求項14に記載の検証デバイス。
  19. 前記処理回路が、
    前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記トークンによって維持されるカウンタにローカル・カウンタを同期させることであって、事後認証質問メッセージが現在のカウンタ値にも基づく、同期させることと、
    前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のカウンタ値を独立して知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することと、
    を行うようにさらに構成された請求項14に記載の検証デバイス。
  20. 前記処理回路が、
    タイムスタンプを生成するタイマを維持することであって、事後認証質問メッセージが現在のタイムスタンプにも基づく、維持することと、
    前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵及び前記現在のタイムスタンプを独立して知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することと、
    を行うようにさらに構成された請求項14に記載の検証デバイス。
  21. トークンを認証するための検証デバイスであって、
    トークンから認証要求及びトークン識別子を受信するための手段と、
    ネットワーク化されたヘルパーから前記トークンに対応する複数のパズルを取得するための手段と、
    前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くための手段と、
    前記パズル秘密に基づいて検証鍵を生成するための手段と、
    前記検証鍵に基づいて質問メッセージを生成するための手段と、
    前記パズル識別子及び前記質問メッセージを前記トークンに送信するための手段と、
    を備える検証デバイス。
  22. 前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信するための手段であって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信するための手段をさらに備える請求項21に記載の検証デバイス。
  23. 前記検証鍵を記憶するための手段と、
    前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けるための手段と、
    をさらに備える請求項21に記載の検証デバイス。
  24. 前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得するための手段
    をさらに備える請求項21に記載の検証デバイス。
  25. 前記受信したパズルのうちのサブセット複数を擬似ランダムに選択し、複数のパズル秘密及び対応するパズル識別子を取得するために前記受信したパズルのうちのサブセット複数を解くための手段であって、前記検証鍵が前記パズル秘密の順序セットにも基づく、解くための手段と、
    パズル秘密の前記順序セットに対応する前記パズル識別子の順序セットを前記質問メッセージとともに前記トークンに送信するための手段と、
    をさらに備える請求項21に記載の検証デバイス。
  26. 前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記トークンによって維持されるカウンタにローカル・カウンタを同期させるための手段であって、事後認証質問メッセージが現在のカウンタ値にも基づく、同期させるための手段と、
    前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを証明する応答メッセージを前記トークンから受信するための手段であって、前記トークンが前記検証鍵及び前記現在のカウンタ値を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信するための手段と、
    をさらに備える請求項21に記載の検証デバイス。
  27. タイムスタンプを生成するタイマを維持するための手段であって、事後認証質問メッセージが現在のタイムスタンプにも基づく、維持するための手段と、
    前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを証明する応答メッセージを前記トークンから受信するための手段であって、前記トークンが前記検証鍵及び前記現在のタイムスタンプを知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信するための手段と、
    をさらに備える請求項21に記載の検証デバイス。
  28. 第1の通信インターフェースを介してトークンから認証要求及びトークン識別子を受信することと、
    第2の通信インターフェースを介してヘルパーから前記トークンに対応する複数のパズルを取得することと、
    前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くことと、
    前記パズル秘密に基づいて検証鍵を生成することと、
    前記検証鍵に基づいて質問メッセージを生成することと、
    前記第1の通信インターフェースを介して前記パズル識別子及び前記質問メッセージを前記トークンに送信することと、
    を行うように構成された処理回路
    を備える処理デバイス。
  29. 前記処理回路に結合された、前記検証鍵を記憶するための記憶デバイス
    をさらに備え、
    前記処理回路が、前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けるようにさらに構成された請求項28に記載の処理デバイス。
  30. 前記処理回路が、前記トークンに関連する前記ヘルパーのヘルパー・アドレスを取得するようにさらに構成された請求項28に記載の処理デバイス。
  31. ベリファイアに対してトークンを認証するための1つまたは複数の命令であって、プロセッサによって実行されたとき、前記プロセッサに、
    ネットワーク化されたヘルパーから前記トークンに対応する複数のパズルを取得することと、
    前記パズルのうちの1つを擬似ランダムに選択し、パズル秘密及び対応するパズル識別子を取得するために前記パズルのうちの1つを解くことと、
    前記パズル秘密に基づいて検証鍵を生成することと、
    前記検証鍵に基づいて質問メッセージを生成することと、
    前記パズル識別子及び前記質問メッセージを前記トークンに送信することと、
    を行わせる1つまたは複数の命令を有するプログラムを格納するコンピュータ可読記録媒体。
  32. プロセッサによって実行されたとき、前記プロセッサに、
    前記トークンが前記検証鍵を知っていることを証明する応答メッセージを前記トークンから受信することであって、前記トークンが前記検証鍵を知っていることを前記応答メッセージが首尾よく証明するならば、前記ベリファイアが前記トークンを認証する、受信することをさらに行わせる1つまたは複数の命令を有する請求項31に記載のコンピュータ可読記録媒体。
  33. プロセッサによって実行されたとき、前記プロセッサに、
    前記検証鍵を記憶することと、
    前記トークンと前記ベリファイアとの間の事後認証における対称鍵として使用するために前記検証鍵を前記トークン識別子に関連付けることと、
    をさらに行わせる1つまたは複数の命令を有する請求項31に記載のコンピュータ可読記録媒体。
  34. ベリファイアに対してトークンを認証するための前記トークン上で動作可能な方法であって、
    秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングすることと、
    前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始することと、
    第1の検証鍵に基づく1つまたは複数のパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記1つまたは複数のパズル識別子によって識別される1つまたは複数のパズルに関連する1つまたは複数のパズル秘密の関数である、受信することと、
    前記1つまたは複数のパズル生成アルゴリズム、前記受信した1つまたは複数のパズル識別子、及び前記秘密鍵に基づいて前記1つまたは複数のパズル秘密を独立して取得することと、
    前記1つまたは複数のパズル秘密に基づいて第2の検証鍵を生成することと、
    前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証することと、
    を備える方法。
  35. 前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けることをさらに備える請求項34に記載の方法。
  36. 前記第2の検証鍵に基づいて、前記トークンが前記第1の検証鍵を知っていることを示す、前記ベリファイアへの応答メッセージを生成することをさらに備える請求項34に記載の方法。
  37. 前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給することをさらに備える請求項34に記載の方法。
  38. 前記ベリファイアから複数の順序付きパズル識別子を受信することであって、前記第1の検証鍵が、前記複数の順序付きパズル識別子に関連する対応する複数の順序付きパズル秘密の関数である、受信することと、
    前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記複数の順序付きパズル秘密を取得することであって、前記第1の検証鍵及び前記第2の検証鍵が前記複数の順序付きパズル秘密にも基づく、取得することと、
    をさらに備える請求項34に記載の方法。
  39. 前記トークンと前記ベリファイアとの間の認証が実行されるたびにトラッキングするために前記ベリファイアによって維持されるカウンタにローカル・カウンタを同期させることであって、後続の受信したメッセージ認証コードが現在のカウンタ値にも基づく、同期させること、
    をさらに備える請求項34に記載の方法。
  40. 前記トークンが前記検証鍵と前記現在のカウンタ値とを知っていることを証明する応答メッセージを前記ベリファイアに送信すること、
    をさらに備える請求項39に記載の方法。
  41. タイムスタンプを生成するためのタイマを維持することであって、後続の受信したメッセージ認証コードが現在のタイムスタンプにも基づく、維持すること、
    をさらに備える請求項34に記載の方法。
  42. 前記トークンが前記検証鍵と前記現在のタイムスタンプとを知っていることを証明する応答メッセージを前記ベリファイアに送信することをさらに備える請求項41に記載の方法。
  43. 異なるベリファイアを用いて複数のセキュアな検証鍵を確立することと、
    前記検証鍵を記憶し、前記トークンと前記異なるベリファイアとの間の対称鍵認証として使用するために前記検証鍵の各々を対応するベリファイアに関連付けることと、
    をさらに備える請求項34に記載の方法。
  44. ベリファイアと通信するための低帯域幅を有する第1の通信インターフェースと、
    前記第1の通信インターフェースに結合された処理回路であって、
    秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムを受信すること、
    前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始すること、
    第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信すること、
    前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得すること、
    前記パズル秘密に基づいて第2の検証鍵を生成すること、
    前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証すること、
    を行うように構成された処理回路と、
    を備えるトークン。
  45. 前記処理回路に結合され、前記第2の検証鍵を記憶するように構成された記憶デバイスであって、前記処理回路が、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けるように構成された、記憶デバイス
    をさらに備える請求項44に記載のトークン。
  46. 前記処理回路が、
    異なるベリファイアを用いて複数のセキュアな検証鍵を確立することと、
    前記検証鍵を記憶し、前記トークンと前記異なるベリファイアとの間の対称鍵認証として使用するために前記検証鍵の各々を対応するベリファイアに関連付けることと
    を行うようにさらに構成された請求項44に記載のトークン。
  47. 前記処理回路が、
    前記第2の検証鍵に基づいて、前記トークンが前記第1の検証鍵を知っていることを示す、前記ベリファイアへの応答メッセージを生成すること
    を行うようにさらに構成された請求項44に記載のトークン。
  48. 前記処理回路が、
    前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給すること
    を行うようにさらに構成された請求項44に記載のトークン。
  49. ベリファイアで認証するためのトークンであって、
    秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングするための手段と、
    前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始するための手段と、
    第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信するための手段であって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信するための手段と、
    前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得するための手段と、
    前記パズル秘密に基づいて第2の検証鍵を生成するための手段と、
    前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証するための手段と、
    を備えるトークン。
  50. 前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けるための手段をさらに備える請求項49に記載のトークン。
  51. 前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給するための手段をさらに備える請求項49に記載のトークン。
  52. 秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムを受信することと、
    前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始することと、
    第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信することと、
    前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得することと、
    前記パズル秘密に基づいて第2の検証鍵を生成することと、
    前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証することと、
    を行うように構成された処理回路
    を備える処理デバイス。
  53. 前記処理回路が、
    前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けること
    を行うようにさらに構成された請求項52に記載の処理デバイス。
  54. 前記処理回路が、
    前記第2の検証鍵に基づいて、前記トークンが前記第1の検証鍵を知っていることを示す、前記ベリファイアへの応答メッセージを生成することを行うようにさらに構成された請求項52に記載の処理デバイス。
  55. ベリファイアに対してトークンを認証するための1つまたは複数の命令であって、プロセッサによって実行されたとき、前記プロセッサに、
    秘密鍵、トークン識別子、及び1つまたは複数のパズル生成アルゴリズムをトークンにプロビジョニングすることと、
    前記トークン識別子をベリファイアに供給することによって前記トークンの認証を開始することと、
    第1の検証鍵に基づくパズル識別子とメッセージ認証コードとを含む質問メッセージを前記ベリファイアから受信することであって、前記第1の検証鍵が、前記パズル識別子によって識別されるパズルに関連する第1のパズル秘密の関数である、受信することと、
    前記1つまたは複数のパズル生成アルゴリズム、前記受信したパズル識別子、及び前記秘密鍵に基づいて前記第1のパズル秘密を独立して取得することと、
    前記パズル秘密に基づいて第2の検証鍵を生成することと、
    前記第1の検証鍵と前記第2の検証鍵が同じであるかどうか判断するために前記受信したメッセージ認証コードを検証することと、
    を行わせる1つまたは複数の命令を有するプログラムを格納するコンピュータ可読記録媒体。
  56. プロセッサによって実行されたとき、前記プロセッサに、
    前記第2の検証鍵を記憶し、前記第1の検証鍵と前記第2の検証鍵が同じである場合、前記第2の検証鍵を前記ベリファイアに関連付けることをさらに行わせる1つまたは複数の命令を有する請求項55に記載のコンピュータ可読記録媒体。
  57. プロセッサによって実行されたとき、前記プロセッサに、
    前記トークンに関連する複数のパズルを記憶しているヘルパーのヘルパー・アドレスを前記トークンから前記ベリファイアに供給することをさらに行わせる1つまたは複数の命令を有する請求項55に記載のコンピュータ可読記録媒体。
JP2011508643A 2008-05-09 2009-05-06 トークンとベリファイアとの間の認証のためのネットワーク・ヘルパー Active JP5345675B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/118,593 US8793497B2 (en) 2008-05-09 2008-05-09 Puzzle-based authentication between a token and verifiers
US12/118,593 2008-05-09
PCT/US2009/043040 WO2009137621A1 (en) 2008-05-09 2009-05-06 Network helper for authentication between a token and verifiers

Publications (2)

Publication Number Publication Date
JP2011521548A JP2011521548A (ja) 2011-07-21
JP5345675B2 true JP5345675B2 (ja) 2013-11-20

Family

ID=40886762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011508643A Active JP5345675B2 (ja) 2008-05-09 2009-05-06 トークンとベリファイアとの間の認証のためのネットワーク・ヘルパー

Country Status (8)

Country Link
US (1) US8793497B2 (ja)
EP (1) EP2289220B1 (ja)
JP (1) JP5345675B2 (ja)
KR (1) KR101237632B1 (ja)
CN (1) CN102017578B (ja)
AT (1) ATE542351T1 (ja)
TW (1) TW200952440A (ja)
WO (1) WO2009137621A1 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020199B2 (en) * 2001-02-14 2011-09-13 5th Fleet, L.L.C. Single sign-on system, method, and access device
EP2200253A1 (en) * 2008-12-19 2010-06-23 Gemalto SA Method of managing sensitive data in an electronic token
US8443431B2 (en) * 2009-10-30 2013-05-14 Alcatel Lucent Authenticator relocation method for WiMAX system
JP5585188B2 (ja) * 2010-04-30 2014-09-10 ソニー株式会社 バッテリモジュール、電動移動体、及びバッテリモジュールの放電制御方法
IL213662A0 (en) * 2011-06-20 2011-11-30 Eliphaz Hibshoosh Key generation using multiple sets of secret shares
GB201204202D0 (en) * 2012-03-09 2012-04-25 Distributed Man Systems Ltd A scalable authentication system
US8826418B2 (en) * 2012-10-17 2014-09-02 International Business Machines Corporation Trust retention
EP3053079B1 (en) * 2013-10-04 2020-01-01 Ticto System and a method for validating an identification token
EP2924953B1 (en) * 2014-03-25 2017-03-22 Thorsten Sprenger Method and system for encrypted data synchronization for secure data management
JP6190404B2 (ja) * 2014-06-05 2017-08-30 Kddi株式会社 受信ノード、メッセージ受信方法およびコンピュータプログラム
JP6199335B2 (ja) * 2014-06-05 2017-09-20 Kddi株式会社 通信ネットワークシステム及びメッセージ検査方法
JP6454917B2 (ja) * 2014-06-05 2019-01-23 Kddi株式会社 通信ネットワークシステム及びメッセージ検査方法
GB2527285B (en) * 2014-06-11 2021-05-26 Advanced Risc Mach Ltd Resource access control using a validation token
JP6459014B2 (ja) 2015-03-31 2019-01-30 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd ジオフェンシング装置
CN112908042A (zh) 2015-03-31 2021-06-04 深圳市大疆创新科技有限公司 用于操作无人飞行器的系统和遥控器
CN107408351B (zh) * 2015-03-31 2020-08-25 深圳市大疆创新科技有限公司 用于生成飞行管制的认证系统和方法
US11308483B2 (en) 2015-08-25 2022-04-19 Paypal, Inc. Token service provider for electronic/mobile commerce transactions
EP3341904B1 (en) * 2015-08-25 2023-10-25 PayPal, Inc. Token service provider for electronic/mobile commerce transactions
CA3013173A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
CN114282928A (zh) * 2016-02-23 2022-04-05 恩链控股有限公司 基于区块链系统结合钱包管理系统的加密密钥存储和转移
AU2017222469A1 (en) 2016-02-23 2018-08-30 nChain Holdings Limited System and method for controlling asset-related actions via a blockchain
CN114282926A (zh) 2016-02-23 2022-04-05 区块链控股有限公司 用于从区块链中安全提取数据的密码方法和系统
CN115549887A (zh) 2016-02-23 2022-12-30 恩链控股有限公司 用于信息的安全交换的公共秘密的确定和层级确定性密钥
WO2017145003A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-based exchange with tokenisation
KR102437619B1 (ko) * 2016-04-01 2022-08-29 삼성전자주식회사 보안 키를 생성하기 위한 장치 및 방법
CN109496403B (zh) * 2016-07-25 2023-06-23 罗伯特·博世有限公司 用于具有前向隐私与委托可验证性的动态可搜索对称加密的方法和系统
US11151547B2 (en) 2017-09-20 2021-10-19 Paypal, Inc. Using a consumer digital wallet as a payment method in a merchant digital wallet
KR102033226B1 (ko) * 2017-12-11 2019-10-16 건국대학교 산학협력단 홈 IoT 환경에서의 보안성 제공 장치 및 방법
US11075906B2 (en) * 2017-12-28 2021-07-27 Shoppertrak Rct Corporation Method and system for securing communications between a lead device and a secondary device
CN109315837A (zh) * 2018-09-21 2019-02-12 深圳市合元科技有限公司 一种电子烟控制方法及电子烟
EP3716570B1 (en) 2019-03-29 2022-07-27 Mitsubishi Electric R&D Centre Europe B.V. Computational puzzles against dos attacks
JP2020167509A (ja) * 2019-03-29 2020-10-08 コベルコ建機株式会社 情報処理システム、情報処理方法、およびプログラム
US11374917B2 (en) * 2020-01-24 2022-06-28 Visa International Service Association Prevention of token authentication replay attacks system and method
EP3897017B1 (en) * 2020-04-17 2023-11-01 Secure Thingz Limited A provisioning control apparatus, system and method
CN112822016B (zh) * 2021-01-25 2023-04-28 厦门市易联众易惠科技有限公司 在区块链上进行数据授权的方法及区块链网络
WO2023287537A1 (en) * 2021-07-16 2023-01-19 Qualcomm Incorporated Secret key verification in wireless communication

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944765B1 (en) 1999-12-21 2005-09-13 Qualcomm, Inc. Method of authentication anonymous users while reducing potential for “middleman” fraud
JP3534041B2 (ja) 2000-06-07 2004-06-07 日本電気株式会社 オフライン端末認証システム及びそれに用いるオフライン端末認証方法
US7231526B2 (en) * 2001-10-26 2007-06-12 Authenex, Inc. System and method for validating a network session
GB2382281B (en) 2001-11-06 2005-03-30 British Telecomm Authentication of network users
US7401224B2 (en) * 2002-05-15 2008-07-15 Qualcomm Incorporated System and method for managing sonic token verifiers
US7395311B2 (en) * 2003-01-10 2008-07-01 Microsoft Corporation Performing generic challenges in a distributed system
US8321955B2 (en) * 2003-08-26 2012-11-27 Wu-Chang Feng Systems and methods for protecting against denial of service attacks
GB0324791D0 (en) 2003-10-24 2003-11-26 Astrazeneca Ab Chemical process
US20060046690A1 (en) * 2004-09-02 2006-03-02 Rose Gregory G Pseudo-secret key generation in a communications system
JP5064003B2 (ja) 2005-12-20 2012-10-31 パナソニック株式会社 認証システム、及び認証装置
US7907548B2 (en) 2006-10-06 2011-03-15 Nec Europe Ltd. Method for electing aggregator nodes in a network
US7937586B2 (en) * 2007-06-29 2011-05-03 Microsoft Corporation Defending against denial of service attacks

Also Published As

Publication number Publication date
KR101237632B1 (ko) 2013-02-27
JP2011521548A (ja) 2011-07-21
WO2009137621A1 (en) 2009-11-12
ATE542351T1 (de) 2012-02-15
EP2289220A1 (en) 2011-03-02
KR20110009222A (ko) 2011-01-27
US20090282243A1 (en) 2009-11-12
EP2289220B1 (en) 2012-01-18
CN102017578A (zh) 2011-04-13
US8793497B2 (en) 2014-07-29
TW200952440A (en) 2009-12-16
CN102017578B (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
JP5345675B2 (ja) トークンとベリファイアとの間の認証のためのネットワーク・ヘルパー
US8595501B2 (en) Network helper for authentication between a token and verifiers
CN109728909B (zh) 基于USBKey的身份认证方法和系统
JP4617763B2 (ja) 機器認証システム、機器認証サーバ、端末機器、機器認証方法、および機器認証プログラム
JP4599852B2 (ja) データ通信装置および方法、並びにプログラム
US6993652B2 (en) Method and system for providing client privacy when requesting content from a public server
US8621210B2 (en) Ad-hoc trust establishment using visual verification
US8144874B2 (en) Method for obtaining key for use in secure communications over a network and apparatus for providing same
CN111080299B (zh) 一种交易信息的防抵赖方法及客户端、服务器
WO2022143030A1 (zh) 基于国密标识密码算法的私钥分发系统
KR19990038925A (ko) 분산 환경에서 안전한 양방향 인증 방법
CN114726555A (zh) 认证及密钥协商方法、设备及存储介质
CN110417722B (zh) 一种业务数据通信方法、通信设备及存储介质
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
JP2004274134A (ja) 通信方法並びにこの通信方法を用いた通信システム、サーバおよびクライアント
JP2004159100A (ja) 暗号通信プログラム、暗号通信システム用サーバシステム、暗号通信方法および暗号通信システム
JP2003224562A (ja) 個人認証システム及びプログラム
TWI761243B (zh) 群組即時通訊的加密系統和加密方法
CN114338012A (zh) 密钥申请方法及装置、电子设备、计算机可读存储介质
WO2020037958A1 (zh) 基于gba的客户端注册和密钥共享方法、装置及系统
Kshemkalyani et al. Authentication in Distributed System

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130814

R150 Certificate of patent or registration of utility model

Ref document number: 5345675

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250