JP2019506789A - パスコード検証のためのフォワードセキュア型暗号技術を使用した方法、システム、及び装置。 - Google Patents
パスコード検証のためのフォワードセキュア型暗号技術を使用した方法、システム、及び装置。 Download PDFInfo
- Publication number
- JP2019506789A JP2019506789A JP2018534587A JP2018534587A JP2019506789A JP 2019506789 A JP2019506789 A JP 2019506789A JP 2018534587 A JP2018534587 A JP 2018534587A JP 2018534587 A JP2018534587 A JP 2018534587A JP 2019506789 A JP2019506789 A JP 2019506789A
- Authority
- JP
- Japan
- Prior art keywords
- value
- authentication
- client
- server
- state variable
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/067—Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0838—Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0853—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3234—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
Abstract
Description
本出願は、2015年12月30日付けで出願された「METHOD AND SYSTEM APPARATUS USING FORWARD−SECURE CRYPTOGRAPHY FOR PASSCODE VERIFICATION」という名称の米国仮特許出願第62/273,138号に関し、且つ、その利益を主張するものであり、この特許文献の内容は、引用により、本明細書に包含される。
いくつかの実施形態においては、強力認証トークンは、パスワードベリファイアデータ要素の値を動的変数の値及び秘密暗号キーの値と暗号方式によって組み合わせ、且つ、秘密暗号キーによってパラメータ化された暗号アルゴリズムを使用することにより、ワンタイムパスワード(OTP:One−Time Password)又は電子署名などの動的クレデンシャルを生成するように適合されてもよい。
いくつかの実施形態においては、強力認証トークンは、パーソナルコンピュータ(PC:Personal Computer)、タブレットコンピュータ、又はスマートフォンなどの、ユーザーに属するパーソナル汎用電子演算装置上においてインストールされると共に稼働しているソフトウェアアプリケーションの形態を有していてもよく、これにより、ソフトウェアアプリケーションは、認証ソフトウェアアプリケーションの正当なユーザー用の認証サービスを提供するように適合されていてもよい。
いくつかの実施形態においては、本発明による認証プロトコルは、動的状態から生成される暗号キーのシーケンスを使用してもよく、この場合に、状態は、新しい状態が古い状態から見出されうるように、但し、この逆にはならないように、更新されている。状態の現時点の値は、認証クライアント(強力認証トークンなど)及び認証サーバーの両方により、同期した方式によって維持することができる。例えば、いくつかの実施形態においては、フォワードセキュア型のキー更新アルゴリズムを使用することにより、キー及び/又は状態のシーケンスを構築することができる。いくつかの実施形態においては、認証トークンは、認証クレデンシャルを生成するべく、認証トークンのユーザーによって認証トークンに提供されたものでありうるパスコードをこのような暗号キーと暗号方式によって組み合わせることができる。いくつかの実施形態においては、認証クレデンシャルの生成において使用される暗号キーは、例えば、強力認証トークンが認証クレデンシャルを生成した後に、毎回、強力認証トークンによって更新されうる、このような状態の現時点の値から、強力認証トークンにより、導出されてもよい。
以下の節においては、本発明の実施形態の特定の組について説明することとする。
−PRNG(長さ):暗号方式によって保護されたランダム数生成器からの「長さ」ビットのビットストリングであり、ランダム数生成器は、真のランダム数生成器又は疑似的なランダム数生成器を有しうる。
暗号化プリミティブ
「ciphertext=ENC(K,IV,Data)」という表現は、(選択された暗号化アルゴリズムにおいて適用可能である場合に)初期化ベクトル「IV」を使用して暗号暗号化キー「K」によってパラメータ化された暗号暗号化アルゴリズムを使用することにより、結果「ciphertext」を取得するべく、ビットストリング「Data」を暗号化するステップを表記している。いくつかの実施形態においては、暗号化アルゴリズムは、対称型暗号化アルゴリズムを有することができる。いくつかの実施形態においては、対称型アルゴリズムは、なんらかの暗号化モードにおいて、AES(Advanced Encryption Standard)又は3DES(Triple Data Encryption Standard)などの、ブロック暗号を有することができる。例えば、いくつかの実施形態においては、AESアルゴリズムは、CTRモードにおいて使用されてもよく(カウンタモードであり、ウェブアドレス「en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CTR」に位置しているウェブサイトをも参照されたい。この内容は、引用により、本明細書に包含される)、且つ、キーKは、128ビットのサイズを有していてもよく、且つ、CTRモード用のカウンタの開始値は、初期化ベクトルから算出されてもよい。いくつかの実施形態においては、CTRモード用のカウンタの開始値は、例えば、IV<<64などのように、いくつかの位置にわたって左シフトされた初期化ベクトルとして算出されてもよい。いくつかの実施形態においては、初期化ベクトルは、カウンタ「CTR」及びランダム数から算出されてもよい。例えば、初期化ベクトルは、IV(CTR)={IENCODE(CTR,6×8),PRNG(2×8)}として、カウンタ「CTR」の関数として算出されてもよい。
いくつかの実施形態においては、クレデンシャルは、入力としてキー「K」及びビットストリング「Data」を使用する暗号関数を使用することにより、キー「K」及び入力ビットストリング「Data」を使用して算出することができる。例えば、いくつかの実施形態においては、クレデンシャルは、入力としてキー「K」及びビットストリング「Data」を使用することにより、メッセー認証コード(MAC)として算出されてもよい。いくつかの実施形態においては、クレデンシャルを算出するための暗号関数は、キー「K」下におけるビットストリング「Data」の暗号化(又は、暗号解読)を有することができる。いくつかの実施形態においては、クレデンシャルを算出するための暗号関数は、一方向関数を有することができる。いくつかの実施形態においては、一方向関数は、暗号ハッシュ関数を有することができる。いくつかの実施形態においては、一方向関数は、鍵付きハッシュ関数を有することができる。例えば、いくつかの実施形態においては、クレデンシャルは、MAC=HMAC(K,Data)として算出されてもよく、これにより、HMACは、RFC2104によって規定されているHMAC、或いは、RFC4231によって規定されているSHA−256のHMACなどの、キーKの下におけるデータのハッシュに基づいたメッセージ認証コードを表記している。いくつかの実施形態においては、キーKは、128ビットのサイズを有することができる。いくつかの実施形態においては、結果的に得られる暗号文、ハッシュ、又はMACは、切り捨てられてもよい。いくつかの実施形態においては、Dataは、8ビットの倍数でない場合には、次のバイト境界まで左側の桁にゼロが充填されている。
表現「statei+1,keyi+1=UPDATE(statei)」は、状態の古い値「statei」から始まって、そのキーの「keyi+1」及びその状態の「statei+1」という新しい値を算出するべく、なんらかの暗号キー及び状態更新アルゴリズムを使用すると共に(適用可能である場合に)キー及び状態の古い値を新たに算出された値によって置換することにより、キー及び状態の値を更新するステップを表記している。いくつかの実施形態においては、状態の新しい値は、状態の現時点の値を入力として取得する第1不可逆関数を使用することにより、状態の現時点の値から算出することができる。いくつかの実施形態においては、暗号キーの新しい値は、状態の現時点の値を入力として取得する第2不可逆関数を使用することにより、状態の現時点の値から算出することができる。いくつかの実施形態においては、状態の現時点の値から状態及び暗号キーの新しい値を算出する不可逆関数は、例えば、セキュア暗号ハッシュ関数を有することができる。いくつかの実施形態においては、暗号キー及び状態更新アルゴリズムは、「“Forward−Security in Private−Key Cryptography” by Mihir Bellare and Bennet Yee, Springer LNCS 2612」において開示されているキー更新アルゴリズムなどの、キー更新アルゴリズムを有することができる。いくつかの実施形態においては、暗号キー及び状態更新アルゴリズムは、次式のように定義することができる。
いくつかの実施形態においては、いくつかの定数を使用することができる。例えば、いくつかの実施形態においては、VERSION、MSG_CHALLENGE、MSG_RESPONSE、MSG_ACTIVATION_CHALLENGE、MSG_ACTIVATION_RESPONSEという定数が使用されてもよく、この場合に、後者の4つの定数は、いずれも、互いに異なっている値を有しうる。特定の一実施形態においては、これらの定数は、以下の値を有することができる。
VERSION:=IENCODE(0,8)
MSG_CHALLENGE:=IENCODE(1,4)
MSG_RESPONSE:=IENCODE(2,4)
MSG_ACTIVATION_CHALLENGE:=IENCODE(3,4)
MSG_ACTIVATION_RESPONSE:=IENCODE(4,4)
すべてのパラメータは、特定の認証トークン−サーバーの組合せにおけるものである。特定の認証トークン用にサーバーによって取得されたデータは、ログインしようとしている又はログインが完了している、特定のユーザーアカウントに対応しうる。サーバーによって取得されたデータは、特定の認証トークンに、或いは、起動された認証アプリケーションの特定のインスタンスに、対応しうる。
いくつかの実施形態においては、攻撃者は、認証トークンとサーバーの間のメッセージを伝達しているネットワークを制御することができると共に、完全なMitM(Man−in−the−Middle)攻撃を開始する能力を有しうるものと仮定することができる。又、いくつかの実施形態においては、認証トークン又はアプリケーションが保護されているものと仮定することもできる。又、いくつかの実施形態においては、サーバーが保護されているものと仮定することもできる。
いくつかの実施形態においては、Challenge MAC key、KCMAC:=KSMAC、Encryption key KCENC:=KSENC、Response state SCRES:=SSRES、Activation MAC key KCACT:= KSACTというデータ要素が、上述のように、サーバーによって生成されてもよく、且つ、クライアントの事前起動の際に、サーバーからクライアントに転送されてもよい。
概要
いくつかの実施形態においては、認証トークン又はアプリケーションの初期状態は、先程示したものなどであってもよい。トランザクション署名又は動的クレデンシャル生成を実行しうる前に、認証トークン又はアプリケーションを起動することが必要でありうる。いくつかの実施形態においては、起動は、一度だけ、実行することができるが、これは、パスコードの変更に緊密に関係付けられうる。起動の最終結果は、一方においては、サーバーが、パスコードベリファイア(PV:Passcode Verifier)の複写を有することができる、というものであってよく、他方においては、クライアントが、パスコードブラインディングデータ要素(PR)の対応する値の保存を完了した状態でありうる、というものであってもよい。このステップは、サーバーが、ユーザーのパスコートについて知ることがないが、そのパスコードが、サーバーによって受領済みでありうるクレデンシャルの生成のために正しく入力されたかどうかを検証しうるように、実行されてもよい。パスコードベリファイアの値を有しうる、クライアントからの応答メッセージは、だれかが、例えば、スマートフォンを有しうる、認証トークンを盗み、且つ、認証トークンによって生成されたクレデンシャルを観察した場合に、その人物がユーザーのパスコードを想像することができないように、フォワードセキュアキーの下において暗号化されてもよい。
いくつかの実施形態においては、ユーザーは、サーバーにコンタクトしてもよく、且つ、起動手順を開始することができる。起動手順又は起動プロトコルは、以下のステップを有することができる。
S→C: {Version,Service ID,User ID,IV,ENC(KSENC,IV,{Transaction,Type,Nonce,Activation_MAC})}
ここでは、以下のとおりである。
Version= VERSION
Service ID= IDSS
User ID= IDSU
IV= IV(CS)
Transaction= IENCODE(0, 212)
Type= MSG_ACTIVATION_CHALLENGE
Nonce= PRNG(128)
Activation_MAC= HMAC(KSMAC,{Version,Type,Transaction,Nonce,IV});いくつかの実施形態においては、Activation_MACは、64ビットに切り捨てられてもよい。
S:SSRES,KTACT:=UPDATE(SSRES)
C:SCRES,K:=UPDATE(SCRES)
C→S: ENC(K,0,{V,HMAC(KCACT,{Version,Type,Transaction,V})
ここでは、以下のとおりである。
Version= VERSION
Type= MSG_ACTIVATION_RESPONSE
Transaction= IENCODE(0,212)
V= HMAC(PR,passcode)(30ビットに切り捨てられる)
HMAC(KCACT,msg)は、15ビットに切り捨てられる。
概要
この認証サブプロトコルは、ユーザーが、自身を認証することを許容するべく、或いは、特定のトランザクションを認可することを許容するべく、実行されてもよい。結果は、例えば、ユーザーによって提供された認証クレデンシャルの検証に成功した際に、ユーザーが正しいトランザクション詳細を観察していると共に正しいパスコードを入力したとサーバーが結論付けるというものであってもよい。サーバーは、パスコード自体について知ってはいない。すべての通信を記録している盗聴者も、電話機を盗んだ後においてさえ、(MACキーが、使用の後に破棄されていることから)パスコードを取得可能ではない。
ステップ1:いくつかの実施形態においては、ユーザーは、サーバーにコンタクトしてもよく、且つ、認証又はトランザクションを開始することができる。
S−> C: {Version, Service ID,User ID,IV,
ENC(KSENC,IV,{Transaction,Type,Nonce,Challenge_MAC})}
ここでは、以下のとおりである。
Version= VERSION
Service ID= IDSS
User ID= IDSU
IV= IV(CS)
トランザクション=認可されるべきトランザクションのエンコーディングされた詳細を有していてもよく、いくつかのケースにおいては、「Transaction」は、ユーザーにとっては無意味でありうる(ランダムな)チャレンジによってエンコーディングされてもよく、或いは、これは、例えば、認証サブプロトコルが、特定のトランザクションの認可のためにではなく、ユーザーの認証のために使用されている場合には、既定の値によってエンコーディングされてもよい。
Type=MSG_CHALLENGE
Nonce= PRNG(128)
Challenge_MAC= HMAC(KSMAC,{Version,Type,Transaction,Nonce,IV}), 64ビットに切り捨てられる
S:SSRES,K:=UPDATE(SSRES)
S:E=HMAC(K,{Version,Type,Transaction,Nonce,IV,PV})
ここでは、以下のとおりである。
Version= VERSION
Type=MSG_RESPONSE
トランザクション、ノンス、IVは、チャレンジメッセージから取得される。
C:SCRES,K:=UPDATE(SCRES);
C−>S:HMAC(K,{Version,Type,Transaction,Nonce,IV,V})
ここでは、以下のとおりである。
Version= VERSION(8ビットになるように、左側の桁にゼロを充填することができる)
Type=MSG_RESPONSE
トランザクション、ノンス、IVは、チャレンジメッセージから取得される。
V=HMAC(PR,passcode)
いくつかの実施形態においては、生成されたクレデンシャルは、30ビットに切り捨てられてもよい。
いくつかの実施形態においては、完全を期すべく、ユーザーID及び/又はサービスIDがMAC内に包含されていてもよい。
トークンは、例えば、本説明のどこか別のところにおいて更に詳細に記述されている強力認証トークン又は認証クライアントのいずれかに帰される関数の1つ又は複数を実装するべく、データ処理命令の組を実行するように適合されうるデジタルデータ処理コンポーネント(150)を有することができる。いくつかの実施形態においては、データ処理コンポーネント(150)は、例えば、1つ又は複数のマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP:Digital Signal Processor)チップ、フィールドプログラム可能なゲートアレイ(FPGA:Field Programmable Gate Array)、アプリケーション固有の集積回路(ASIC:Application Specific Integrated Circuit)などを有することができる。
いくつかの実施形態においては、強力認証トークンは、例えば、ユーザーとの間において、データ、情報、及び/又はコマンドを交換するべく、ユーザーとやり取りするためのユーザーインターフェイス(120、130)を有することができる。ユーザーインターフェイス(120、130)は、デジタルデータ処理コンポーネント(150)に接続されていてもよい。
いくつかの実施形態においては、強力認証トークンは、デジタルデータ入力インターフェイスを有することができる。データ入力インターフェイス(140)は、デジタルデータ処理コンポーネント(150)に接続されていてもよい。いくつかの実施形態においては、強力認証トークンのデジタルデータ入力インターフェイスは、デジタルデータメッセージを受け取るように適合されていてもよい。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、例えば、インターネット接続を有することができる。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、例えば、ユニバーサルシリアルバス(USB)接続などのローカル有線データ接続を有することができる。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、例えば、BLUETOOTH又はWi−Fiインターフェイスなどの、ローカル無線データインターフェイスを有することができる。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、モバイルデータ通信ネットワークインターフェイスを有することができる。いくつかの実施形態においては、強力認証トークンは、例えば、スマートフォンを有することができる。いくつかの実施形態においては、データ入力インターフェイスは、光学画像取得コンポーネント(140)を有することができる。いくつかの実施形態においては、光学画像取得コンポーネントは、カメラを有することができる。いくつかの実施形態においては、強力認証トークンは、デジタルデータメッセージによってエンコーディングされうる画像を光学画像取得コンポーネントによってキャプチャするように適合されていてもよい。いくつかの実施形態においては、画像は、2次元バーコードを有することができる。いくつかの実施形態においては、画像のフォーマットは、1つの規格において定義されていてもよい。例えば、いくつかの実施形態においては、光学画像は、QRコードであってもよい。
トークンは、本説明のどこか別のところにおいて更に詳細に説明されている動的クレデンシャルを生成するように適合されていてもよい。いくつかの実施形態においては、データ処理コンポーネント(150)は、動的クレデンシャルを生成するべく、暗号計算を実行するように適合されていてもよい。いくつかの実施形態においては、トークンは、メモリコンポーネント(160)内において永久的又は一時的に保存されうる、或いは、トークンが、メモリコンポーネント(160)内において永久的又は一時的に保存されているデータから導出しうる、暗号キーを使用することにより、動的クレデンシャルを生成するように適合されていてもよい。いくつかの実施形態においては、トークンは、メモリコンポーネント(160)内において保存されているトークンインスタンスの一部分であるデータを使用することにより、動的クレデンシャルを生成するように適合されていてもよい。いくつかの実施形態においては、トークンは、動的クレデンシャルを生成するべく、対称型暗号アルゴリズムを使用するように適合されていてもよい。いくつかの実施形態においては、この動的クレデンシャルを生成するための暗号アルゴリズムは、1つ又は複数の対称型秘密暗号クレデンシャル生成キーによってパラメータ化されていてもよい。いくつかの実施形態においては、クレデンシャル生成キーは、例えば、クレデンシャル検証サーバー又は認証サーバーなどの、サーバーと共有されていてもよい。
いくつかの実施形態においては、トークン(100)は、専用ハードウェア装置であってもよい。いくつかの実施形態においては、トークンは、(コンピュータに基づいた又は自動化されたアプリケーションでありうる)アプリケーションに対するユーザーのアクセスを保護するべく、或いは、このようなアプリケーションとの間におけるユーザーのやり取りを保護するべく、方法において使用されるように専用となっていてもよい。いくつかの実施形態においては、認証装置の主な目的は、アプリケーションに対するユーザーのアクセスを保護するべく、或いは、このようなアプリケーションとの間におけるユーザーのやり取りを保護するべく、方法において使用される、というものである。いくつかの実施形態においては、セキュリティ装置としてのその使用に対する認証装置の専用化を保証するべく、認証装置は、そのファームウェアの変更が不可能となるように適合されていてもよい。いくつかの実施形態においては、セキュリティ装置としてのその使用に対する認証装置の専用化を保証するべく、そのファームウェアに対する任意の変更又は更新は、認可された信頼可能な管理者が認証装置のファームウェアを更新又は変更できることを保証するように設計されたセキュアファームウェア更新プロトコルを通じてのみ、可能である。この結果、信頼可能な管理者は、アプリケーションに対するユーザーのアクセスを保護するべく、或いは、このようなアプリケーションとの間におけるユーザーのやり取りを保護するべく、方法におけるその使用に対する認証装置の専用化を元に戻す又は危険に晒すことになるファームウェア更新が発生しないことを保証することができる。ユーザーが、信頼可能な管理者によって認可されてはいない余分のソフトウェアをインストールすることができる装置は、専用の装置と見なすことができない。その主な目的が通信機能を提供するというものである装置は、アプリケーションに対するユーザーのアクセス及びこれとの間におけるやり取りを保護するために方法において使用されるべき専用化された装置と見なすことができない。汎用PC、ラップトップ、タブレットコンピュータ、及びスマートフォンは、専用の装置と見なすことができない。
いくつかの実施形態においては、トークンは、トークンに含まれている電子コンポーネントの少なくともいくつかがその上部において配置されうる、プラスチック回路基板(PCB:Plastic Circuit Board)を有することができる。その他の電子コンポーネントは、(例えば、電気ワイヤによって)回路基板上において配置されたコンポーネントにガルバニック接続されていてもよい。いくつかの実施形態においては、トークンのすべての電子コンポーネントは、単一のハウジング内において含まれている。いくつかの実施形態においては、ハウジングは、プラスチックから、又は金属から、又は材料の組合せから、製造されていてもよい。いくつかの実施形態においては、認証トークンは、モノリシックな装置であってもよい。本説明の文脈においては、これは、認証トークンに含まれている動的クレデンシャルを生成するデジタル処理コンポーネント、インスタンスデータを保存するメモリコンポーネント、入力ユーザーインターフェイス、出力ユーザーインターフェイス、及びデータ入力インターフェイスが、いずれも、単一の物理的装置に含まれていることを意味している。いくつかの実施形態においては、ユーザーは、認証トークンの通常の動作の一部分として、これらのコンポーネントを除去することができない。いくつかの実施形態においては、これらのコンポーネントは、認証トークンに対する不可逆な変更をもたすことなしには、除去することができない。いくつかの実施形態においては、これらのコンポーネントは、認証トークンに対する永久的な損傷を伴うことなしには、除去することができない。
いくつかの実施形態においては、トークンは、トークンが、携帯可能な、ポケットサイズの、ハンドヘルド型の、装置であると見なされうるような、重量及び空間的寸法を有する。いくつかの実施形態においては、リーダーは、トークンが適度な費用で郵便を通じてユーザーに送付されうるような、重量及び空間的寸法を有する。例えば、いくつかの実施形態においては、認証装置は、2cm未満の厚さ、10cm未満の幅、15cm未満の長さ、及び200グラム未満の重量を有することができる。その他の実施形態においては、認証装置は、1.5cm未満の厚さ、7cm未満の幅、13cm未満の長さ、及び110グラム未満の重量を有することができる。いくつかの実施形態においては、認証装置の長さ及び幅は、10パーセント以下だけ、標準的なフルサイズクレジットカードの長さ及び幅をそれぞれ超過していてもよい。いくつかの実施形態においては、認証装置は、標準的なフルサイズクレジットカードの長さ及び幅を有することができる。いくつかの実施形態においては、認証装置は、標準的なフルサイズクレジットカードに適用可能であるマージン内において、標準的なフルサイズクレジットカードの長さ、幅、及び厚さを有することができる(例えば、ISO/IEC7810によって規定されているID−1サイズのスマートカードの寸法を有する)。
いくつかの実施形態においては、認証装置は、電力の自律的供給源を有する。いくつかの実施形態においては、電源は、電池を有することができる。いくつかの実施形態においては、電池は、交換可能であってもよい。
いくつかの実施形態においては、方法は、認証ステージにおいて、認証クライアントにより、動的変数クライアント値を取得するステップと、認証クライアントにより、暗号クレデンシャル生成キークライアント値を取得するステップと、認証クライアントにより、メモリから、パスコードブラインディングデータ要素値を取得するステップと、認証クライアントにより、ユーザーから、パスコード値を受け取るステップと、認証クライアントにより、取得されたパスコードブラインディングデータ要素値及び受け取られたパスコード値の第1不可逆クライアント関数としてパスコードベリファイアデータ要素クライアント値を算出するステップと、認証クライアントにより、取得された動的変数クライアント値、取得された暗号クレデンシャル生成キークライアント値、及び算出されたパスコードベリファイアデータ要素クライアント値の第2不可逆クライアント関数として動的認証クレデンシャルを算出するステップと、認証サーバーにより、動的認証クレデンシャルを受け取るステップと、認証サーバーにより、動的変数サーバー値を取得するステップと、認証サーバーにより、暗号クレデンシャル生成キーサーバー値を取得するステップと、認証サーバーにより、パスコードベリファイアデータ要素サーバー値を取得するステップと、認証サーバーにより、取得された動的変数サーバー値、取得された暗号クレデンシャル生成キーサーバー値、及び取得されたパスコードベリファイアデータ要素サーバー値の不可逆サーバー関数としてクレデンシャル基準値を算出するステップと、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかを検証するべく、認証サーバーにより、受け取られた動的認証クレデンシャルを算出されたクレデンシャル基準値と比較するステップと、を実行するステップを有する。いくつかの実施形態においては、方法は、認証サーバーにより、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するステップを更に有することができる。いくつかの実施形態においては、方法は、コンピュータに基づいたアプリケーションが、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしている場合に、第1動作を実行し、且つ、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしていない場合には、第2動作を実行するステップを更に有することができる。
いくつかの実施形態においては、方法は、認証ステージの前の初期化ステージにおいて、認証クライアントにより、予測不能な方式により、パスコードブラインディングデータ要素値を生成するステップと、認証クライアントにより、認証ステージにおける後続の使用のために、生成されたパスコードブラインディングデータ要素値を保存するステップと、認証クライアントにより、ユーザーから初期パスコード値を受け取るステップと、認証クライアントにより、パスコードブラインディングデータ要素値及び受け取られた初期パスコード値の第1不可逆クライアント関数として(初期)パスワードベリファイアデータ要素クライアント値を算出するステップと、認証サーバーにより、算出された(初期)パスコードベリファイアデータ要素クライアント値を受け取り、且つ、認証サーバーにより、認証ステージにおける後続の使用のために、受け取られた(初期)パスコードベリファイアデータ要素クライアントをパスコードベリファイアデータ要素サーバー値として保存するステップと、を実行するステップを更に有することができる。
パスコード値は、認証システムのいずれかのコンポーネント上において保存されている場合には、例えば、そのようなコンポーネントのメモリにアクセスする能力を有する攻撃者により、危険に晒される場合がある。パスコードは、通常、相対的に低いエントロピーを有しうることから、攻撃者が、パスコードの関数であるデータ要素の値を取得した場合には、パスコードは、潜在的に、ブルートフォース徹底的サーチ攻撃に対して脆弱でありうるであろう。
Claims (64)
- 動的認証クレデンシャルを生成する方法であって、
パスコードの値を取得するステップと、
パスコードブラインディングデータ要素の値を取得するステップと、
動的変数の値を取得するステップと、
暗号クレデンシャル生成キーの値を取得するステップと、
前記取得されたパスコード値及び前記取得されたパスコードブラインディングデータ要素値からパスコードベリファイアデータ要素の値を算出するステップと、
前記算出されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値から、前記動的認証クレデンシャルを算出するステップと、
を有する方法。 - 前記パスコードの前記値を取得するステップは、ユーザーから前記パスコードの前記値を受け取るステップを有する、請求項1に記載の方法。
- 前記パスコードブラインディングデータ要素の前記値を取得するステップは、前記方法を実行している認証トークン又は認証クライアントのメモリから、前記パスコードブラインディングデータ要素値を読み取るステップを有する、請求項1又は2に記載の方法。
- 前記パスコードブラインディングデータ要素を生成するステップと、前記動的認証クレデンシャルを算出する前に、初期化フェーズにおいて、前記生成されたパスコードブラインディングデータ要素を前記メモリ内において保存するステップと、を更に有する、請求項3に記載の方法。
- 前記パスコードブラインディングデータ要素を生成するステップは、ランダム又は疑似ランダム数生成器によって生成されたランダム又は疑似ランダム数を使用している、請求項4に記載の方法。
- 前記動的変数値を取得するステップは、データメッセージを受け取るステップと、前記受け取られたデータメッセージに含まれているデータ要素の関数として前記動的変数値を判定するステップと、を有する、請求項1乃至5のいずれか一項に記載の方法。
- 前記動的変数値を取得するステップは、トランザクションデータの関数として前記動的変数を判定するステップと、前記トランザクションデータを承認のためにユーザーに対して提示するステップと、前記ユーザーの承認を取得するステップと、を有する、請求項1乃至6のいずれか一項に記載の方法。
- 前記パスコードベリファイアデータ要素値を算出するステップは、前記取得されたパスコード値及び前記取得されたパスコードブラインディングデータ要素値の第1不可逆関数として前記パスコードベリファイアデータ要素値を算出するステップを有する、請求項1乃至7のいずれか一項に記載の方法。
- 前記算出されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値から前記動的認証クレデンシャルを算出するステップは、前記算出されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値の第2不可逆関数として前記動的認証クレデンシャルを算出するステップを有する、請求項1乃至8のいずれか一項に記載の方法。
- 前記パスコードベリファイアデータ要素値を算出するステップの後に、前記取得されたパスコード値を破棄するステップを更に有する、請求項1乃至9のいずれか一項に記載の方法。
- 前記取得されたパスコード値を破棄するステップは、前記方法を実行している認証トークン又は認証クライアントのメモリから前記取得されたパスコード値のすべての複写を消去するステップを有する、請求項10に記載の方法。
- 前記動的認証クレデンシャルを算出する前記ステップの後に、前記算出されたパスコードベリファイアデータ要素値を破棄するステップを更に有する、請求項1乃至11のいずれか一項に記載の方法。
- 前記算出されたパスコードベリファイアデータ要素を破棄するステップは、前記方法を実行している認証トークン又は認証クライアントのメモリから、前記算出されたパスコードベリファイアデータ要素値のすべての複写を消去するステップを有する、請求項12に記載の方法。
- 前記方法を実行している認証トークン又は認証クライアントのメモリ内において状態変数の値を維持及び保存するステップを更に有し、
前記暗号クレデンシャル生成キー値を取得するステップは、前記方法を実行している前記認証トークン又は認証クライアントの前記メモリから前記状態変数の前記値を読み取るステップと、前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定するステップと、を有する、請求項1乃至13のいずれか一項に記載の方法。 - 前記状態変数の値の関数として暗号クレデンシャル生成キー値を判定するステップは、前記暗号クレデンシャル生成キー値を前記状態変数の前記値に設定するステップを有する、請求項14に記載の方法。
- 前記状態変数の前記値として前記暗号クレデンシャル生成キー値を判定するステップは、第3不可逆関数を前記状態変数の前記値に適用した結果として前記暗号クレデンシャル生成キー値を算出するステップを有する、請求項14に記載の方法。
- 第4不可逆関数を前記状態変数の前記現在の値に対して適用した結果として前記状態変数の新しい値を算出するステップと、
前記算出された新しい値によって前記状態変数の前記値を更新するステップと、
を更に有する、請求項14乃至16のいずれか一項に記載の方法。 - 前記算出された新しい値によって前記状態変数の前記値を更新するステップは、前記方法を実行している前記認証トークン又は認証クライアントの前記メモリ内において、前記算出された新しい値によって前記状態変数の前記現在の値を上書きするステップを有する、請求項17に記載の方法。
- 前記状態変数の前記新しい値を算出する前記ステップの後に、前記状態変数の前記現在の値を破棄するステップを更に有する、請求項17又は18に記載の方法。
- 前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定する前記ステップの後に、且つ、前記状態変数の前記新しい値を算出する前記ステップの後に、前記状態変数の前記現在の値を破棄するステップを更に有する、請求項17又は18に記載の方法。
- 前記状態変数の前記現在の値を破棄するステップは、前記方法を実行する前記認証トークン又は認証クライアントの前記メモリから前記状態変数の前記現在の値のすべての複写を消去するステップを有する、請求項19又は20に記載の方法。
- 前記動的認証クレデンシャルを算出する前記ステップの後に、前記暗号クレデンシャル生成キー値を破棄するステップを更に有する、請求項14乃至21のいずれか一項に記載の方法。
- 前記暗号クレデンシャル生成キー値を破棄するステップは、前記方法を実行している前記認証トークン又は認証クライアントの前記メモリから前記暗号クレデンシャル生成キー値のすべての複写を消去するステップを有する、請求項22に記載の方法。
- 動的認証クレデンシャルの値を検証する方法であって、
前記動的認証クレデンシャル値を受け取るステップと、
動的変数の値を取得するステップと、
パスコードベリファイアデータ要素の値及び暗号クレデンシャル生成キーの値を取得するステップと、
前記取得されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値の第1不可逆関数としてクレデンシャル基準値を算出するステップと、
前記受け取られた動的認証クレデンシャル値が前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証するステップと、
を有する方法。 - 前記受け取られた動的認証クレデンシャル値が前記算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するステップを更に有する、請求項24に記載の方法。
- 前記動的変数は、前記動的認証クレデンシャルによって認可されるべきトランザクションを表すトランザクションデータを有する、或いは、これから導出される、請求項24又は25に記載の方法。
- 前記パスコードベリファイアデータ要素値及び前記暗号クレデンシャル生成キー値を取得するステップは、認証クライアントの特定のユーザーと関連するユーザー又は認証クライアント固有のデータの組を取得するステップと、このユーザー又は認証クライアント固有のデータの組から、前記パスコードベリファイアデータ要素値及び前記暗号クレデンシャル生成キー値を取得又は導出するステップと、を有する、請求項24乃至26のいずれか一項に記載の方法。
- 前記方法の前記ステップを実行する認証サーバーに含まれている、或いは、これによってアクセス可能である、メモリ又はデータベース内において前記ユーザー又は認証クライアント固有のデータの組を保存又は維持するステップを更に有し、
前記ユーザー又は認証クライアント固有のデータの組を取得するステップは、前記メモリ又はデータベースから、前記ユーザー又は認証クライアント固有のデータの組を読み取るステップを有する、請求項27に記載の方法。 - 前記ユーザー又は認証クライアント固有のデータの組は、状態変数の値を有し、且つ、前記暗号クレデンシャル生成キー値を取得するステップは、前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定するステップを有する、請求項27又は28に記載の方法。
- 前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定するステップは、前記暗号クレデンシャル生成キー値を前記状態変数の前記値に設定するステップを有する、請求項29に記載の方法。
- 前記暗号クレデンシャル生成キー値を前記状態変数の前記値の関数として判定するステップは、第2不可逆関数を前記状態変数の前記値に適用した結果として前記暗号クレデンシャル生成キー値を算出するステップを有する、請求項29に記載の方法。
- 前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の第3不可逆関数として算出された新しい値によって前記状態変数の前記値を更新するステップと、
この算出された新しい値によって前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を置換するステップと、
を更に有する、請求項29乃至31のいずれか一項に記載の方法。 - 前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の関数として前記状態変数の前記新しい値を算出する前記ステップの後に、前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を破棄するステップを更に有する、請求項32に記載の方法。
- 前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を破棄する前記ステップは、前記状態変数の前記新しい組を算出する前記ステップ及び前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定する前記ステップの両方が実行された後に、実行される、請求項33に記載の方法。
- 前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を破棄するステップは、前記メモリ又はデータベースから前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値のすべての複写を消去するステップを有する、請求項33又は34に記載の方法。
- 前記クレデンシャル基準値を算出する前記ステップの後に、前記暗号クレデンシャル生成キー値を破棄するステップを更に有する、請求項28乃至35のいずれか一項に記載の方法。
- 前記暗号クレデンシャル生成キー値を破棄するステップは、前記メモリ又はデータベースから前記暗号クレデンシャル生成キー値のすべての複写を消去するステップを有する、請求項36に記載の方法。
- コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護する方法であって、
認証クライアントにより、認証ステージにおいて、
動的変数クライアント値を取得するステップと、
暗号クレデンシャル生成キークライアント値を取得するステップと、
メモリから、パスコードブラインディングデータ要素値を取得するステップと、
前記ユーザーから、パスコードを受け取るステップと、
前記取得されたパスコードブラインディングデータ要素値及び前記受け取ったパスコード値の第1不可逆クライアント関数としてパスコードベリファイアデータ要素クライアント値を算出するステップと、
前記取得された動的変数クライアント値、前記取得された暗号クレデンシャル生成キークライアント値、及び前記算出されたパスコードベリファイアデータ要素クライアント値の第2不可逆クライアント関数として動的認証クレデンシャルを算出するステップと、
を実行するステップと、
認証サーバーにより、前記認証ステージにおいて、
前記動的認証クレデンシャルを受け取るステップと、
動的変数サーバー値を取得するステップと、
暗号クレデンシャル生成キーサーバー値を取得するステップと、
パスコードベリファイアデータ要素サーバー値を取得するステップと、
前記取得された動的変数サーバー値、前記取得された暗号クレデンシャル生成キーサーバー値、及び前記取得されたパスコードベリファイアデータ要素サーバー値の第1不可逆サーバー関数としてクレデンシャル基準値を算出するステップと、
前記受け取った動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証するステップと、
を実行するステップと、
を有する方法。 - 前記認証サーバーにより、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するステップを更に有する、請求項38に記載の方法。
- 前記コンピュータに基づいたアプリケーションが、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしている場合に、第1動作を実行し、且つ、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしていない場合には、第2動作を実行するステップを更に有する、請求項38又は39に記載の方法。
- 前記動的変数クライアント値は、前記動的変数サーバー値と同一であり、前記暗号クレデンシャル生成キークライアント値は、前記暗号クレデンシャル生成キーサーバー値と同一であり、前記パスコードベリファイアデータ要素クライアント値は、前記パスコードベリファイアデータ要素サーバー値と同一であり、且つ、前記動的認証クレデンシャルを算出するための前記第2不可逆クライアント関数は、前記クレデンシャル基準値を算出するための前記第1不可逆サーバー関数と実質的に同一である、請求項38乃至40のいずれか一項に記載の方法。
- 前記動的変数クライアント値は、前記ユーザーによって認可されるべきトランザクションを表すトランザクションデータに基づいており、且つ、前記方法は、
前記認証クライアントにより、前記トランザクションデータを前記ユーザーに対して表示するステップと、
前記認証クライアントにより、前記ユーザーから、前記表示されたトランザクションデータの承認を受け取るステップと、
を更に有する、請求項38乃至41のいずれか一項に記載の方法。 - 前記動的認証クレデンシャルを算出する前記ステップは、前記ユーザーが前記表示されたトランザクションデータを承認することを条件としている、請求項42に記載の方法。
- 前記コンピュータに基づいたアプリケーションが、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしている場合に、前記トランザクションを受け付け、且つ、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしていない場合には、前記トランザクションを拒絶するステップを更に有する、請求項42又は43に記載の方法。
- 前記認証クライアントにより、前記認証ステージにおいて、
現時点の状態変数クライアント値を保存するステップであって、これにより、前記暗号クレデンシャル生成キークライアント値を取得するステップは、前記認証クライアントにより、前記保存されている現時点の状態変数クライアント値から前記暗号クレデンシャル生成キークライアント値を導出するステップを有する、ステップと、
前記現時点の状態変数クライアント値の第3不可逆クライアント関数として新しい状態変数クライアント値を算出するステップと、
前記動的認証クレデンシャルの前記計算の後に、前記暗号クレデンシャル生成キークライアント値を破棄するステップと、
前記新しい状態変数クライアント値の前記計算及び前記暗号クレデンシャル生成キークライアント値の前記導出の後に、前記現時点の状態変数クライアント値を破棄するステップと、
前記破棄された現時点の状態変数クライアント値の代わりに、前記新しい状態変数クライアント値を保存するステップと、
を実行するステップと、
前記認証サーバーにより、前記認証ステージにおいて、
現時点の状態変数サーバー値を保存するステップであって、これにより、前記認証サーバーにより、前記暗号クレデンシャル生成キーサーバー値を取得するステップは、前記認証サーバーにより、前記保存されている現時点の状態変数サーバー値から、前記暗号クレデンシャル生成キーサーバー値を導出するステップと、有する、ステップと、
前記現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出するステップと、
前記クレデンシャル基準値の前記計算の後に、前記暗号クレデンシャル生成キーサーバー値を破棄するステップと、
前記新しい状態変数サーバー値の前記計算及び前記暗号クレデンシャル生成キーサーバー値の前記導出の後に、前記現時点の状態変数サーバー値を破棄するステップと、
前記破棄された現時点の状態変数サーバー値の代わりに、前記新しい状態変数サーバー値を保存するステップと、
を実行するステップと、
を更に有する、請求項38乃至44のいずれか一項に記載の方法。 - 前記現時点の状態変数サーバー値は、前記現時点の状態変数クライアント値と同一であり、前記新しい状態変数サーバー値は、前記新しい状態変数クライアント値と同一であり、且つ、前記第2不可逆サーバー関数は、前記第3不可逆クライアント関数と同一である、請求項45に記載の方法。
- 前記認証クライアントにより、前記認証ステージの前の初期化ステージにおいて、
予測不能な方式により、前記パスコードブラインディングデータ要素値を生成するステップと、
前記認証ステージにおける後続の使用のために、前記生成されたパスコードブラインディングデータ要素値を保存するステップと、
前記ユーザーから初期パスコード値を受け取るステップと、
前記パスコードブラインディングデータ要素及び前記受け取られた初期パスコード値の前記第1不可逆クライアント関数として前記パスコードベリファイアデータ要素クライアント値を算出するステップと、
を実行するステップと、
前記認証サーバーにより、前記初期化ステージにおいて、
前記算出されたパスコードベリファイアデータ要素クライアント値を受け取るステップと、
前記認証ステージにおける後続の使用のために、前記パスコードベリファイアデータ要素サーバー値として前記受け取られたパスコードベリファイアデータ要素クライアント値を保存するステップと、
を実行するステップと、
を更に有する、請求項38乃至46のいずれか一項に記載の方法。 - 前記初期化ステージにおいて、
前記認証クライアントにおいて、初期状態シードから導出された前記状態変数クライアント値の初期クライアント値を取得するステップと、
前記認証クライアントにおいて、前記現時点の状態変数クライアント値として前記状態変数クライアント値の前記取得された初期値を保存するステップと、
前記認証サーバーにおいて、前記初期状態シードから導出された前記状態変数サーバー値の初期サーバー値を取得するステップと、
前記認証サーバーにおいて、前記現時点の状態変数サーバー値として前記状態変数サーバー値の前記取得された初期値を保存するステップと、
を実行するステップを更に有する、請求項47に記載の方法。 - 前記状態変数クライアント値と前記状態変数サーバー値を前記認証ステージにおいて同期化させるステップを更に有する、請求項45乃至48のいずれか一項に記載の方法。
- 動的認証クレデンシャルを生成する装置であって、
前記装置のユーザーからパスコードを受け取るように適合されたユーザー入力インターフェイスと、
暗号計算を実行するように適合されたデータプロセッサと、
パスコードブラインディングデータ要素値及び状態変数値を保存するメモリと、
を有し、
これにより、前記装置は、初期化ステージにおいて、
前記パスコードブラインディングデータ要素値を取得し、且つ、メモリ内において保存し、且つ、前記状態変数値の初期値を取得し、且つ、前記現時点の状態変数値として前記初期値を前記メモリ内において保存するように、
適合されており、且つ、
これにより、前記装置は、認証ステージにおいて、動的変数値を取得し、前記ユーザー入力インターフェイスを通じて前記ユーザーの前記パスコードを受け取り、メモリから、パスコードブラインディングデータ要素値を読み取り、前記受け取られたパスコード及び前記パスコードブラインディングデータ要素値の第1不可逆関数としてパスコードベリファイアデータ要素値を算出し、メモリから、前記現時点の状態変数値を読み取り、且つ、メモリから読み取られた前記現時点の状態変数値から暗号クレデンシャル生成キーを導出し、前記取得された動的変数値、前記算出されたパスコードベリファイアデータ要素、及び前記導出された暗号クレデンシャル生成キーの第2不可逆関数として動的認証クレデンシャルを算出し、前記動的認証クレデンシャルを算出した後に、前記導出された暗号クレデンシャル生成キーを破棄し、前記現時点の状態変数値の第3不可逆関数として前記状態変数値の新しい値を生成し、且つ、前記現時点の状態変数値からの前記暗号クレデンシャル生成キーの前記導出及び前記状態変数値の前記新しい値の前記生成の後に、前記現時点の状態変数値を破棄し、且つ、前記現時点の状態変数値の代わりに前記状態変数値の前記生成された新しい値を保存する、ように更に適合されている、装置。 - データを前記ユーザーに対して提示するユーザー出力インターフェイスを更に有する、請求項50に記載の装置。
- 前記ユーザーによって承認されるべきトランザクションを表すトランザクションデータを受け取り、前記ユーザー出力インターフェイスを通じて前記受け取られたトランザクションデータを前記ユーザーに対して提示し、前記ユーザーから、前記ユーザー入力インターフェイスを通じて前記提示されたトランザクションデータ用の承認を受け取るように更に適合されている、請求項51に記載の装置。
- 前記動的認証クレデンシャルの前記計算は、前記装置が前記提示されたトランザクションデータの前記ユーザーの前記承認を受け取ることを条件としている、請求項52に記載の装置。
- 前記生成された動的認証クレデンシャルを認証サーバーによる検証のために利用可能な状態とするように更に適合されている、請求項51乃至53のいずれか一項に記載の装置。
- 前記ユーザーが前記認証サーバーに転送するように、前記ユーザー出力インターフェイスを通じて、前記生成された動的認証クレデンシャルを前記ユーザーに提示するように更に適合されている、請求項54に記載の装置。
- 前記生成された動的認証クレデンシャルを直接的又は間接的に前記認証サーバーに送信するように更に適合されている、請求項54又は55に記載の装置。
- ランダム又は疑似ランダム数生成器を更に有し、且つ、前記装置は、前記初期化ステージにおいて、前記ランダム又は疑似ランダム数生成器によって生成されたランダム又は疑似ランダム数を取得し、且つ、前記ランダム又は疑似ランダム数の関数として前記パスコードブラインディングデータ要素値を取得するように更に適合されている、請求項50乃至56のいずれか一項に記載の装置。
- 動的認証クレデンシャルを検証する装置であって、
特定のユーザー又は特定の認証クライアントと関連する少なくとも1つのデータセットを保存するように適合されたメモリと、
暗号動作を実行するように適合されたデータ処理コンポーネントと、
を有し、
これにより、前記装置は、認証ステージにおいて、動的認証クレデンシャルを受け取り、動的変数サーバー値を取得し、前記メモリから、特定のユーザー又は特定の認証クライアントと関連するデータセットを読み取り、前記読み取られたデータセットから暗号クレデンシャル生成キーサーバー値を取得し、前記読み取られたデータセットから、パスコードベリファイアデータ要素サーバー値を取得し、前記取得された動的変数サーバー値、前記取得されたパスコードベリファイアデータ要素サーバー値、及び前記取得された暗号クレデンシャル生成キーサーバー値の第1不可逆サーバー関数としてクレデンシャル基準値を算出し、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証する、
ように適合されている、装置。 - 前記メモリ内において、特定のユーザー又は特定の認証クライアントと関連する前記データセットの一部分として、前記パスコードベリファイアデータ要素サーバー値を保存するように更に適合されている、請求項58に記載の装置。
- 前記メモリ内において、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として現時点の状態変数サーバー値を保存及び維持し、且つ、前記認証ステージにおいて、前記読み取られたデータセットから前記現時点の状態変数サーバー値を取得し、前記取得された現時点の状態変数サーバー値の関数として前記暗号クレデンシャル生成キーサーバー値を判定し、前記クレデンシャル基準値の前記計算の後に前記暗号クレデンシャル生成キーサーバー値を破棄し、前記取得された現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出し、前記暗号クレデンシャル生成キーサーバー値の前記判定及び前記新しい状態変数サーバー値の前記計算の後に、前記現時点の状態変数サーバー値を破棄し、且つ、前記メモリ内において、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として前記現時点の状態変数サーバー値の代わりに前記新しい状態変数サーバー値を書き込む、ように更に適合されている、請求項58又は59に記載の装置。
- 初期化ステージにおいて、初期状態変数サーバー値を取得し、且つ、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として、前記現時点の状態変数サーバー値として、前記メモリ内において前記初期状態変数サーバー値を書き込む、ように更に適合されている、請求項60に記載の装置。
- 初期化ステージにおいて、パスコードベリファイアデータ要素値を受け取り、且つ、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として、前記パスコードベリファイアデータ要素サーバー値として、前記メモリ内において前記受け取られたパスコードベリファイアデータ要素値を書き込む、ように更に適合されている、請求項58乃至61のいずれか一項に記載の装置。
- コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護するシステムであって、
認証クライアントと、
認証サーバーと、
を有し、
これにより、前記認証クライアントは、
前記認証クライアントのユーザーからパスコードを受け取るように適合されたユーザー入力インターフェイスと、
暗号計算を実行するように適合されたクライアントデータプロセッサと、
パスコードブラインディングデータ要素値及び状態変数クライアント値を保存するクライアントメモリと、
を有し、
これにより、前記認証クライアントは、初期化ステージにおいて、前記パスコードブラインディングデータ要素を取得し、且つ、前記メモリ内において保存し、且つ、前記状態変数クライアント値の初期クライアント値を取得し、且つ、前記初期クライアント値を前記現時点の状態変数クライアント値として前記メモリ内において保存する、ように適合されており、且つ、
これにより、前記認証クライアントは、認証ステージにおいて、動的変数クライアント値を取得し、前記ユーザー入力インターフェイスを通じて前記ユーザーの前記パスコードを受け取り、前記クライアントメモリから前記パスコードブラインディングデータ要素値を読み取り、前記受け取られたパスコード及び前記パスコードブラインディングデータ要素値の第1不可逆クライアント関数としてパスコードベリファイアデータ要素クライアント値を算出し、前記クライアントメモリから前記現時点の状態変数クライアント値を読み取り、且つ、前記クライアントメモリから読み取られた前記現時点の状態変数クライアント値から暗号クレデンシャル生成キークライアント値を導出し、前記取得された動的変数クライアント値、前記算出されたパスコードベリファイアデータ要素クライアント値、及び前記導出された暗号クレデンシャル生成キークライアント値の第2不可逆クライアント関数として動的認証クレデンシャルを算出し、前記動的認証クレデンシャルを算出した後に前記導出された暗号クレデンシャル生成キークライアント値を破棄し、前記現時点の状態変数クライアント値の第3不可逆クライアント関数として前記状態変数クライアント値の新しい値を生成し、且つ、前記現時点の状態変数クライアント値からの前記暗号クレデンシャル生成キークライアント値の前記導出及び前記状態変数クライアント値の前記新しい値の前記生成の後に、前記現時点の状態変数クライアント値を破棄し、且つ、前記現時点の状態変数クライアント値の代わりに、前記状態変数クライアント値の前記生成された新しい値を保存する、ように更に適合されており、且つ、
これにより、前記認証サーバーは、
前記ユーザー又は前記認証クライアントと関連するデータセットを保存するように適合されたサーバーメモリと、
暗号動作を実行するように適合されたサーバーデータ処理コンポーネントと、
を有し、
これにより、前記認証サーバーは、前記初期化ステージにおいて、パスコードベリファイアデータ要素初期化値を受け取り、且つ、前記ユーザー又は前記認証クライアントと関連する前記データセットの一部分として、パスコードベリファイアデータ要素サーバー値として、前記受け取られたパスコードベリファイアデータ要素初期化値を前記メモリ内において書き込み、且つ、初期状態変数サーバー値を取得し、且つ、前記ユーザー又は前記認証クライアントと関連する前記データセットの一部分として、現時点の状態変数サーバー値として、前記初期状態変数サーバー値を前記メモリ内において書き込む、ように適合されており、且つ、
これにより、前記認証サーバーは、前記認証ステージにおいて、前記生成された動的認証クレデンシャルを受け取り、動的変数サーバー値を取得し、前記サーバーメモリから、前記ユーザー又は前記認証クライアントと関連する前記データセットを読み取り、前記読み取られたデータセットから前記現時点の状態変数サーバー値を取得し、前記取得された現時点の状態変数サーバー値の関数として暗号クレデンシャル生成キーサーバー値を導出し、前記読み取られたデータセットから、前記パスコードベリファイアデータ要素サーバー値を取得し、前記取得された動的変数サーバー値、前記取得されたパスコードベリファイアデータ要素サーバー値、及び前記導出された暗号クレデンシャル生成キーサーバー値の第1不可逆サーバー関数としてクレデンシャル基準値を算出し、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証し、前記クレデンシャル基準値の前記計算の後に前記暗号クレデンシャル生成キーサーバー値を破棄し、前記取得された現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出し、前記暗号クレデンシャル生成キーサーバー値の前記導出及び前記新しい状態変数サーバー値の前記算出の後に、前記現時点の状態変数サーバー値を破棄し、且つ、前記サーバーメモリ内において、前記ユーザー又は前記認証クライアントと関連する前記データセットの一部分として前記現時点の状態変数サーバー値の代わりに前記新しい状態変数サーバー値を書き込む、ように更に適合されている、システム。 - 前記コンピュータに基づいたアプリケーションをホスティングするように適合されたアプリケーションサーバーを更に有し、
前記認証サーバーは、前記認証ステージにおいて、前記コンピュータに基づいたアプリケーションに、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかについて通知するように更に適合されており、且つ、前記コンピュータに基づいたアプリケーションは、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしている場合に、1つの動作を実行し、且つ、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしていない場合には、別の動作を実行するように適合されている、請求項63に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562273138P | 2015-12-30 | 2015-12-30 | |
US62/273,138 | 2015-12-30 | ||
PCT/US2016/069464 WO2017117520A1 (en) | 2015-12-30 | 2016-12-30 | A method, system and apparatus using forward-secure cryptography for passcode verification |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2019506789A true JP2019506789A (ja) | 2019-03-07 |
JP2019506789A5 JP2019506789A5 (ja) | 2020-02-13 |
JP6927981B2 JP6927981B2 (ja) | 2021-09-01 |
Family
ID=57799953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018534587A Active JP6927981B2 (ja) | 2015-12-30 | 2016-12-30 | パスコード検証のためのフォワードセキュア型暗号技術を使用した方法、システム、及び装置。 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10511438B2 (ja) |
EP (1) | EP3398289B1 (ja) |
JP (1) | JP6927981B2 (ja) |
CN (1) | CN109075965B (ja) |
ES (1) | ES2952534T3 (ja) |
WO (1) | WO2017117520A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014015814B4 (de) * | 2014-10-24 | 2016-05-04 | Unify Gmbh & Co. Kg | Verfahren zum Authentifizieren eines Benutzergeräts bei der Anmeldung an einem Server |
EP3376421A1 (en) * | 2017-03-17 | 2018-09-19 | Gemalto Sa | Method for authenticating a user and corresponding device, first and second servers and system |
JP2019054466A (ja) * | 2017-09-15 | 2019-04-04 | 株式会社 エヌティーアイ | 通信システム、第1通信装置、第2通信装置、方法、コンピュータプログラム |
US11569998B2 (en) * | 2018-01-25 | 2023-01-31 | Visa International Service Association | Token offline provisioning |
US10389708B1 (en) * | 2019-01-03 | 2019-08-20 | Capital One Services, Llc | Secure authentication of a user associated with communication with a service representative |
GB2585010B (en) * | 2019-06-24 | 2022-07-13 | Blockstar Developments Ltd | Cryptocurrency key management |
FR3105481B1 (fr) * | 2019-12-24 | 2022-12-16 | Thales Sa | Procédé de vérification du mot de passe d'un dongle, programme d'ordinateur, dongle et terminal utilisateur associés |
JP2021141460A (ja) * | 2020-03-05 | 2021-09-16 | キヤノン株式会社 | 被認証装置、認証システムおよび認証方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832807B1 (en) * | 2010-08-05 | 2014-09-09 | Christine E. Kuo | Method and apparatus for asynchronous dynamic password |
WO2015103031A1 (en) * | 2013-12-31 | 2015-07-09 | Vasco Data Security, Inc. | A method and apparatus for securing a mobile application |
WO2015102880A1 (en) * | 2013-12-30 | 2015-07-09 | Vasco Data Security, Inc. | An authentication apparatus with a bluetooth interface |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085840B2 (en) * | 2001-10-29 | 2006-08-01 | Sun Microsystems, Inc. | Enhanced quality of identification in a data communications network |
US8281378B2 (en) * | 2006-10-20 | 2012-10-02 | Citrix Systems, Inc. | Methods and systems for completing, by a single-sign on component, an authentication process in a federated environment to a resource not supporting federation |
CN101163014A (zh) * | 2007-11-30 | 2008-04-16 | 中国电信股份有限公司 | 一种动态口令身份认证系统和方法 |
US20090210712A1 (en) * | 2008-02-19 | 2009-08-20 | Nicolas Fort | Method for server-side detection of man-in-the-middle attacks |
US8302167B2 (en) * | 2008-03-11 | 2012-10-30 | Vasco Data Security, Inc. | Strong authentication token generating one-time passwords and signatures upon server credential verification |
US8683564B2 (en) * | 2010-06-27 | 2014-03-25 | King Saud University | One-time password authentication with infinite nested hash claims |
US8756706B2 (en) * | 2010-10-12 | 2014-06-17 | Blackberry Limited | Method for securing credentials in a remote repository |
US8683562B2 (en) * | 2011-02-03 | 2014-03-25 | Imprivata, Inc. | Secure authentication using one-time passwords |
US9225717B1 (en) * | 2013-03-14 | 2015-12-29 | Emc Corporation | Event-based data signing via time-based one-time authentication passcodes |
DK2885904T3 (en) * | 2012-08-03 | 2018-08-06 | Onespan Int Gmbh | PROCEDURE FOR USER-EASY AUTHENTICATION AND DEVICE USING A MOBILE APPLICATION FOR AUTHENTICATION |
US9218476B1 (en) * | 2012-11-07 | 2015-12-22 | Amazon Technologies, Inc. | Token based one-time password security |
CN105052072A (zh) * | 2012-12-28 | 2015-11-11 | 威斯科数据安全国际有限公司 | 远程认证和业务签名 |
CN103258312B (zh) * | 2013-03-20 | 2015-10-28 | 东北大学 | 具有快速密钥流生成机制的数字图像加密方法 |
CN103916234B (zh) * | 2014-04-11 | 2016-09-07 | 中国人民解放军沈阳军区总医院 | 一种应用于隐私保护的混沌医学图像加密方法 |
CN104753682B (zh) * | 2015-04-03 | 2019-05-14 | 北京奇虎科技有限公司 | 一种会话秘钥的生成系统及方法 |
-
2016
- 2016-12-30 ES ES16826678T patent/ES2952534T3/es active Active
- 2016-12-30 WO PCT/US2016/069464 patent/WO2017117520A1/en active Application Filing
- 2016-12-30 JP JP2018534587A patent/JP6927981B2/ja active Active
- 2016-12-30 CN CN201680077508.9A patent/CN109075965B/zh active Active
- 2016-12-30 EP EP16826678.1A patent/EP3398289B1/en active Active
- 2016-12-30 US US15/395,659 patent/US10511438B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8832807B1 (en) * | 2010-08-05 | 2014-09-09 | Christine E. Kuo | Method and apparatus for asynchronous dynamic password |
WO2015102880A1 (en) * | 2013-12-30 | 2015-07-09 | Vasco Data Security, Inc. | An authentication apparatus with a bluetooth interface |
WO2015103031A1 (en) * | 2013-12-31 | 2015-07-09 | Vasco Data Security, Inc. | A method and apparatus for securing a mobile application |
Also Published As
Publication number | Publication date |
---|---|
EP3398289C0 (en) | 2023-06-07 |
JP6927981B2 (ja) | 2021-09-01 |
US10511438B2 (en) | 2019-12-17 |
US20170195316A1 (en) | 2017-07-06 |
WO2017117520A1 (en) | 2017-07-06 |
ES2952534T3 (es) | 2023-11-02 |
EP3398289A1 (en) | 2018-11-07 |
WO2017117520A8 (en) | 2018-08-30 |
EP3398289B1 (en) | 2023-06-07 |
CN109075965A (zh) | 2018-12-21 |
CN109075965B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9525550B2 (en) | Method and apparatus for securing a mobile application | |
JP6927981B2 (ja) | パスコード検証のためのフォワードセキュア型暗号技術を使用した方法、システム、及び装置。 | |
KR101727660B1 (ko) | 하나의 장치를 이용하여 다른 장치를 언로크하는 방법 | |
EP3175380B1 (en) | System and method for implementing a one-time-password using asymmetric cryptography | |
US10797879B2 (en) | Methods and systems to facilitate authentication of a user | |
CN111512608B (zh) | 基于可信执行环境的认证协议 | |
WO2016123264A1 (en) | Methods for secure credential provisioning | |
JP2017175244A (ja) | 1:n生体認証・暗号・署名システム | |
KR101897715B1 (ko) | 바이오정보를 이용한 패스워드 없는 전자서명 시스템 | |
CN111401901B (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
EP3000216B1 (en) | Secured data channel authentication implying a shared secret | |
US20170330177A1 (en) | Payment terminal authentication | |
US11811915B1 (en) | Stateless system to protect data | |
US11528144B1 (en) | Optimized access in a service environment | |
Malaysia | Suggested Mechanisms for Understanding the Ideas in Authentication System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191227 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210528 |
|
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: 20210706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210805 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6927981 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |