説明

ユーザ認証の方法およびデバイス

遠隔通信ネットワークを介してサーバ(4)にアクセスするのに通信端末(1)を使用するユーザを認証するために、個人識別コードが、ユーザから受け取られる。通信端末(1)とサーバ(4)との間で交換されたセキュア・セッション確立プロトコル・メッセージ(S1、S2、S3)から、データ・セットが生成される(S4)。データ・セットに基づいて、トランザクション認証番号が、個人識別コードを使用して生成される(S52)。トランザクション認証番号が、通信端末(1)からサーバ(4)に送信される(S54)。サーバ(4)で、受信されたトランザクション認証番号が、通信端末(1)と交換されたセキュア・セッション確立プロトコル・メッセージに基づいて検証される(S20)。トランザクション認証番号は、リアルタイム中間者攻撃に対してオンライン・ユーザを保護する、セッションを意識したユーザ認証を可能にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバにアクセスするユーザを認証する方法およびデバイスに関する。具体的に言うと、本発明は、遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザを認証する方法、コンピュータ・プログラム製品、およびコンピュータ化されたサーバに関する。
【背景技術】
【0002】
インターネット上でのログイン機構に対する攻撃の洗練は、すばやく発達しつつある。銀行などの機関は、速いペースで、ますます高くなるコストで、一部はチャレンジ−レスポンス機構さえ含む、ツー・ファクタ認証(two−factor authentication)デバイスを展開しつつある。中間者(MITM)攻撃は、インターネット・バンキングなど、すべてのSSL/TLSベースのオンライン・アプリケーションに深刻な脅威を与える。これに対する一般的な回答は、オリジナルのSecure Sockets Layer(SSL)プロトコル(米国特許第5,657,390号)またはTransport Layer Security(TLS)プロトコル標準規格(Dierks,T.およびC.Allen、「The TLS Protocol Version 1.0」、Request for Comments 2246、1999年1月)によって要求されるものなどのクライアント証明書ベースの相互認証を使用することである。しかし、会社の影響の厳しく制御された領域を超えて、この手法は、設計者が予想したほどに広範囲に受け入れられてはいない。
【0003】
米国特許第4,405,829号、米国特許第4,720,860号、米国特許第4,885,778号、および米国特許第4,856,062号は、一般にSecurIDトークンと称する認証トークン・デバイスに関する。このトークン・デバイスは、強いユーザ認証を提供するが、リアルタイムで動作するMITM攻撃に対して保護はしない。
【0004】
米国特許出願第2004/0064687号には、オンライン・サードパーティすなわち「アイデンティティ・プロバイダ」によってMITM攻撃を防ぐ方法が記載されている。説明された方法は、SSL/TLSプロトコルに対する変更を必要とせず、完全な公開鍵インフラストラクチャ(PKI)の展開をも必要としない。しかし、この方法は、クライアントを変更し、アイデンティティ・プロバイダのハードコーディングされた証明書をクライアントに含めることを必要とする。
【0005】
米国特許出願第2002/107798 A1号に、セキュリティ・デバイスに対してスマート・カードを認証する方法が記載されている。説明された方法は、チップ・カードがプロトコルの開始の前にセキュリティ・デバイスの公開鍵を所有し、(クライアント)アプリケーションがこの公開鍵だけを使用することに限定されるという仮定に基づく。しかし、この仮定は、一般的に行うことができない。
【0006】
【特許文献1】米国特許第5,657,390号
【非特許文献1】Dierks,T.およびC.Allen、「The TLS Protocol Version 1.0」、Request for Comments 2246、1999年1月
【特許文献2】米国特許第4,405,829号
【特許文献3】米国特許第4,720,860号
【特許文献4】米国特許第4,885,778号
【特許文献5】米国特許第4,856,062号
【特許文献6】米国特許出願第2004/0064687号
【特許文献7】米国特許出願第2002/107798 A1号
【非特許文献2】「PKCS #11:Cryptographic Token Interface Standard」、RSA Security Inc.
【非特許文献3】http://msdn.microsoft.com/library/default.asp?url=/library/en−us/seccrypto/security/cryptography__cryptoapi__and_capicom.asp
【非特許文献4】Krawczyk,H.,他、「HMAC:Keyed−Hashing for Message Authentication」、Request for Comments 2104、1997年2月
【非特許文献5】Molva,R.およびG.Tsudik、「Authentication Method with Impersonal Token Cards」、Proceedings of IEEE Symposium on Research in Security and Privacy、IEEE Press、1993年5月
【非特許文献6】Lamport,L.、「Password Authentication with Insecure Communication」、Communications of the ACM、Vol.24、1981年、770〜772頁
【非特許文献7】http://www.rsasecurity.com/
【非特許文献8】http://www.rfc.net/rfc2246.html#s7.4.4
【非特許文献9】http://www.emvco.com
【非特許文献10】http://axsionics.ch
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明の目的は、遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザを認証する方法およびデバイスを提供することである。具体的に言うと、本発明の目的は、リアルタイムで動作するMITM攻撃に対して保護するユーザ認証の方法およびデバイスを提供することである。本発明のもう1つの目的は、セキュア・セッション確立プロトコルを用いて確立されたセキュア・セッションを使用して、遠隔通信ネットワークを介してサーバにアクセスするユーザを認証する方法およびデバイスを提供することである。
【課題を解決するための手段】
【0008】
本発明によれば、これらの目的は、特に、独立請求項の特徴を介して達成される。それに加えて、さらなる有利な実施形態が、従属請求項およびこの説明から得られる。
【0009】
本発明によれば、上で述べた目的は、特に、遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザを認証するために、個人識別コードが、ユーザから受け取られ、データ・セットが、通信端末とサーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージから生成され、トランザクション認証番号が、個人識別コードを使用してデータ・セットに基づいて生成され、トランザクション認証番号が、通信端末からサーバに送信され、サーバ内で、トランザクション認証番号が(したがって、ユーザが)、通信端末と交換されたセキュア・セッション確立プロトコル・メッセージに基づいて検証されるという点で達成される。たとえば、データ・セットは、交換されるセキュア・セッション確立プロトコル・メッセージからハッシュ値として通信端末内で生成される。本明細書で説明するトランザクション認証番号が、本発明の文脈でセッション認証番号またはセッション認証コードとして使用され、いくつかの実施形態で、トランザクション認証番号が、ディジタル・データ・セットすなわちディジタル・トランザクション認証番号によって表されることを強調しなければならない。個人識別コードおよび通信端末とサーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージに基づくトランザクション認証番号の生成は、リアルタイム中間者攻撃に対してオンライン・ユーザを効率的に保護する、セッションを意識したユーザ認証を可能にする。
【0010】
一実施形態では、通信端末に関連する認証モジュール内および/または通信端末内で、認証ベース番号が、データ・セットから生成され、トランザクション認証番号が、個人識別コードを使用して認証ベース番号から生成される。たとえば、認証ベース番号は、通信端末に関連する認証モジュール内で生成される。さらに、サーバ内で、認証ベース番号が、交換されたセキュア・セッション確立プロトコル・メッセージから生成され、トランザクション認証番号が、サーバ内で生成された認証ベース番号および個人識別コードを使用してサーバ内で検証される。
【0011】
好ましい実施形態では、認証ベース番号および個人識別コードが、通信端末に接続されないチャレンジ/レスポンス(C/R)トークン・デバイスに(ユーザによって)入力される。トランザクション認証番号が、認証ベース番号および個人識別コードに基づいてトークン・レスポンス値としてチャレンジ/レスポンス・トークン・デバイス内で生成される。トランザクション認証番号すなわちトークン・レスポンス値は、トランザクション認証番号をサーバに送信する前に、通信端末に(ユーザによって)入力される。
一実施形態で、認証ベース番号は、乱数を生成することと、選択された桁をデータ・セットから選択することであって、桁が乱数の桁によって決定される、選択することと、選択された桁および乱数の桁から認証ベース番号を合成することとによって、データ・セットから生成される。
【0012】
一実施形態で、ディジタル署名は、認証モジュールに関連する鍵対の秘密鍵を使用してデータ・セットから生成され、認証モジュール内で、認証ベース番号は、認証モジュールに関連する秘密トークン鍵を使用してデータ・セットから生成され、トランザクション認証番号は、認証ベース番号から生成され、個人識別コードは、ディジタル署名を生成する際またはトランザクション認証番号を生成する際に使用され、ディジタル署名は、通信端末からサーバに送信され、サーバ内で、ディジタル署名は、鍵対の公開鍵を使用して検証され、トランザクション認証番号は、通信端末からサーバに送信され、サーバ内で、認証ベース番号は、データ・セットを暗号化する秘密トークン鍵を使用して、通信端末から受信されたデータ・セットから生成され、サーバ内で、トランザクション認証番号は、サーバ内で生成された認証ベース番号を使用して検証される。
【0013】
一実施形態で、トランザクション認証番号は、認証ベース番号および個人識別コードから生成される。トランザクション認証番号およびユーザ識別子は、通信端末からサーバに送信される。トランザクション認証番号は、サーバ内で生成された認証ベース番号およびユーザ識別子に割り当てられた個人識別コードを使用してサーバ内で検証される。
【0014】
一実施形態で、認証モジュールは、通信端末に取り外し可能に接続可能な認証トークン・デバイスとして実施される。データ・セットは、認証モジュールを通信端末に接続するデバイス・インターフェースを介して通信端末から認証モジュールに転送される。適用可能な場合に、鍵対および秘密トークン鍵は、認証モジュールに格納され、ディジタル署名は、認証モジュールから通信端末へデバイス・インターフェースを介して転送される。
さらなる実施形態で、トークン識別子は、通信端末からサーバへトランザクション認証番号と一緒に送信され、秘密トークン鍵は、トークン識別子に基づいてサーバ内で判定される。マスタ鍵は、サーバに格納され、秘密トークン鍵は、サーバ内で、トークン識別子を暗号化するためにマスタ鍵を使用してトークン識別子から生成される。
【0015】
一実施形態で、認証ベース番号は、認証モジュールから通信端末に転送される。個人識別コードは、通信端末内でユーザから受け取られ、トランザクション認証番号は、通信端末内で、認証ベース番号および個人識別コードから生成される。
【0016】
もう1つの実施形態で、個人識別コードは、認証モジュール内でユーザから受け取られる。トランザクション認証番号は、認証モジュール内で、認証ベース番号および個人識別コードから生成され、トランザクション認証番号は、認証モジュールから通信端末に転送される。
【0017】
もう1つの実施形態で、個人識別コードは、バイオメトリック識別子と一緒にユーザから受け取られる。トランザクション認証番号は、サーバ内で生成された認証ベース番号およびサーバに格納されたバイオメトリック識別子ならびにユーザ識別子に割り当てられた個人識別コードを使用してサーバ内で検証される。
【0018】
もう1つの実施形態で、認証ベース番号は、認証モジュールによって表示される。トランザクション認証番号は、個人識別コードおよび認証モジュールによって表示された認証ベース番号によってユーザによって生成され、ユーザによって通信端末に入力される。
【0019】
もう1つの実施形態で、サーバ内でのトランザクション認証番号の成功の検証の後に、サーバ認証コードが、サーバ内で、データ・セットに公開関数を適用し、暗号化に秘密トークン鍵を使用して、データ・セットから生成される。サーバ認証コードは、サーバから通信端末に送信される。サーバ認証コードが、認証モジュール内で、データ・セットに公開関数を適用し、暗号化に秘密トークン鍵を使用して、データ・セットから生成される。認証モジュールは、認証モジュール内で生成されたサーバ認証コードに基づいて、サーバからのサーバ認証コードを検証する。一実施形態で、サーバ認証コードは、サーバから受信され、認証モジュール内で生成されたサーバ認証コードは、ユーザによる視覚的検証のために認証モジュールによって表示される。
【0020】
追加の実施形態で、ユーザは、認証モジュールの複数の可能な機関スコープのうちの1つを選択する。ユーザによって選択された機関スコープは、認証モジュールに、認証ベース番号を生成するための複数の秘密トークン鍵の組のうちの1つの機関固有秘密トークン鍵を使用させる。サーバは、特定の機関に関連し、認証ベース番号を生成するのに機関固有秘密トークン鍵を使用する。サーバは、トランザクション認証番号を検証するのに機関固有個人識別コードを使用する。
【0021】
提案されるユーザ認証方法は、何らかの形で同期化されなければならないクロックを必要としない。そうではなく、この方法は、通信端末とサーバとの間で交換されるセキュア・セッション確立プロトコル・メッセージ(たとえば、SSL/TLS)から導出されるナンス(たとえば、そのハッシュ値)を使用して、トランザクション認証番号の通用を保証する。
【0022】
さらに、提案される方法のセキュリティは、ユーザ識別子が、およびユーザが特定の転送可能トークンを使用する時間期間の間にトークン識別子も、たとえばブラウザのフォーム・プリ・フィル(form−pre−fill)機能によって、通信端末に格納される場合に、特に傷つけられない。特に、通信端末が、共有されるワークステーションである場合に、これは、他の当事者およびおそらくは敵対者がこれら2つの値を知ることにつながる可能性があるが、提案される方法は、これに耐える。
【0023】
クライアント側SSL/TLS実施態様のほとんど遍在する基礎を変更する必要はない。ほとんどの実施形態について、SSL/TLSスタックを使用するウェブ・ブラウザなどのクライアント・アプリケーションも、変更する必要がない。
【0024】
認証されたセキュア・セッション・ブートストラッピングを動作させることは、セキュリティの知識がないエンド・ユーザにとって、現在広く展開されているツー・ファクタ解決策より複雑ではない。
【0025】
エンド・ユーザ登録または他の高価なプロセスは、このMITMに耐える手法を実施するのに必要ではない。ツー・ファクタ解決策を実行する機関は、エンド・ユーザが使用しているデバイスを交換するだけでよく(しかし、エンド・ユーザが使用するPINまたはパスワードは変更されないままである)、あるいは、その中で実施されるアルゴリズムおよびプロトコルを変更し(既知のファームウェア更新に類似する)、それ自体のサーバ・インフラストラクチャを提案される方法と共に働くように適合させるだけでよい。
【0026】
本発明のもう1つの目的によれば、遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザが個人識別コードを変更するために、古い個人識別コードおよび新しい個人識別コードが、ユーザから受け取られ、データ・セットが、通信端末とサーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージから生成され、通信端末に関連する認証モジュール内で、認証ベース番号が、認証モジュールに関連する秘密トークン鍵を使用して、データ・セットから生成され、識別変更コードが、認証ベース番号、古い個人識別コード、および新しい個人識別コードから生成され、識別変更コードが、通信端末からサーバに送信され、サーバ内で、認証ベース番号が、秘密トークン鍵を使用して、交換されたセキュア・セッション確立プロトコル・メッセージから生成され、サーバ内で、新しい個人識別コードが、古い個人識別コードおよびサーバ内で生成された認証ベース番号を使用して、識別変更コードから導出される。
【0027】
遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザの認証のもう1つの実施形態では、トランザクション認証番号が、通信端末に関連する認証モジュール内で、個人識別コードからおよび通信端末とサーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージから、鍵としてサーバと共有される秘密を使用して、鍵付き暗号ダイジェスト値として生成される。鍵付き暗号ダイジェスト値は、トランザクション認証番号として通信端末からサーバに送信される。サーバ内で、鍵付き暗号ダイジェスト値が、サーバに格納された個人識別コードを使用して生成される。その後、サーバ内で、トランザクション認証番号が、したがってユーザの真正性が、通信端末から受信された鍵付き暗号ダイジェスト値とサーバ内で生成された鍵付き暗号ダイジェスト値との比較に基づいて検証される。たとえば、認証モジュールに関連する個人識別コードまたは秘密トークン鍵が、鍵として使用される。鍵付き暗号ダイジェスト値は、鍵付き暗号ダイジェスト関数すなわち、暗号ハッシュ関数などの擬似乱数関数を使用して生成される。代替実施形態では、ルックアップ・インデックスが、データ・セットから生成され、コード・テーブル(たとえば、鍵リスト)内で、ルックアップ・インデックスを使用して、選択されたコードが判定される。選択されたコードは、(ハッシュ)鍵として使用され、サーバは、サーバに格納されたコード・テーブルからの選択されたコードを(ハッシュ)鍵として使用して、鍵付き暗号ダイジェスト値を生成する。副実施形態では、サーバは、通信端末によって使用される以前に選択されたコードを追跡し、サーバは、選択されたコードが以前に通信端末によって使用されたとサーバが判定する場合に、通信端末とのセッション確立を再開始する。
【0028】
遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザの認証のもう1つの実施形態では、トランザクション認証番号は、通信端末に関連する認証モジュール内で、公開鍵を使用してデータ・セット、個人識別コード、およびナンスを暗号化することによって、暗号文として生成される。暗号文は、トランザクション認証番号として通信端末からサーバに送信される。サーバ内で、秘密鍵を使用して暗号文を暗号化解除することによって、データ・セットおよび個人識別コードが判定される。その後、サーバ内で、暗号化解除されたトランザクション認証番号が、したがってユーザの真正性が、セキュア・セッション確立プロトコル・メッセージからサーバ内で生成されたデータ・セットとの受信されたデータ・セットの比較およびサーバに格納された個人識別コードとの個人識別コードの比較に基づいて検証される。
【0029】
一実施形態で、ルックアップ・インデックスが、データ・セットから生成され、コード・テーブル(たとえば、鍵リスト)内で、ルックアップ・インデックスを使用して、選択されたコードが判定される。選択されたコードは、さらに、暗号文を生成するのに使用される。サーバは、秘密鍵を使用して、選択されたコードを暗号文から判定する。トランザクション認証番号は、したがってユーザの真正性は、選択されたコードをサーバに格納されたコード・テーブルからサーバによって判定された選択されたコードと比較することによって検証される。副実施形態で、サーバは、通信端末によって使用される選択されたコードを追跡し、サーバは、選択されたコードが通信端末によって以前に使用されたとサーバが判定する場合に、通信端末とのセッション確立を再開始する。
【0030】
本発明の追加の目的によれば、遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザを認証するために、データ・セットが、通信端末とサーバとの間で交換されるセキュア・セッション確立プロトコル・メッセージから生成され、通信端末内で、認証暗号文が、データ・セット、個人識別コード、および1つまたは2つのナンスから生成される。事前定義の公開鍵が、暗号化に使用される。この鍵は、サーバまたは複数機関の場合に認証サーバのいずれかに属する。結果の暗号文は、通信端末からサーバへ通常のプロトコル・メッセージの内部で不透明に送信され、サーバ内で、データ・セットは、交換されたセキュア・セッション確立プロトコル・メッセージから生成され、サーバ内で、暗号文は、対応する秘密鍵を使用して暗号化解除される。サーバ・データベースから取り出され、暗号文から暗号化解除された個人識別コードが、比較され、暗号化解除されたデータ・セットが、サーバが計算したデータ・セットと比較される。ユーザが、サーバからユーザへの認証を望む場合に、第2のナンスも、暗号文から暗号化解除され、ユーザに送り返される。この手法は、個人識別コードを変更するのにも使用することができる。
【0031】
本発明の追加の目的によれば、遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザを認証するために、データ・セットが、通信端末とサーバとの間で交換されるセキュア・セッション確立プロトコル・メッセージから生成され、通信端末内で、インデックスが、帯域外で配信されるコード・テーブル(たとえば、鍵リスト)から短い鍵をルックアップするために、サーバから受信されるか、作成される。短い鍵および個人識別コードが、通信端末に入力され、暗号文であれ鍵付き暗号ダイジェスト値であれ、認証符号が、データ・セット、個人識別コード、短い鍵、および2つまでのナンスに基づいて生成される。認証符号は、通信端末からサーバに送信され、サーバ内で、データ・セットが、交換されたセキュア・セッション確立プロトコル・メッセージから生成され、サーバ内で、認証符号が、サーバ内で生成されたデータ・セット、個人識別コード、およびサーバ・データベース内の短い鍵を使用して、暗号化解除によってまたはたとえば暗号ハッシュ化によるなど、鍵付き暗号ダイジェスト関数を使用することによって、検証される。同様に、その短い鍵を、既に説明した他の実施形態と共に使用することもできる。
本発明を、図面を参照して例としてより詳細に説明する。
【発明を実施するための最良の形態】
【0032】
図1では、符号1が、遠隔通信ネットワーク3を介するコンピュータ化されたサーバ4とのデータ交換のために構成された通信端末を指す。通信端末1は、固定されたパーソナル・コンピュータ(PC)、可動のラップトップ・コンピュータ、可動の無線電話機、および/または可動の携帯情報端末(PDA)を含むが、これらに限定はされない。通信端末1のそれぞれは、ディスプレイ11と、キーボードおよびたとえばコンピュータ・マウス、トラック・ボール、または類似物などのポインティング・デバイスなどのデータ入力手段12とを有する。通信端末1は、遠隔通信ネットワーク3を介して、SSL/TLSなどのセキュア・セッション確立プロトコルを用いて確立されたセキュア・セッションを介してサーバ4上でホスティングされるオンライン・アプリケーションにアクセスするクライアント・アプリケーション、好ましくはブラウザ(たとえば、Microsoft Internet ExplorerまたはMozilla Firefox)を含む。さらに、通信端末1は、後で図2および3を参照してより詳細に説明する認証モジュール2を含む。
【0033】
遠隔通信ネットワーク3は、固定ネットワークおよび無線ネットワークを含む。たとえば、遠隔通信ネットワーク3は、ローカル・エリア・ネットワーク(LAN)、サービス統合ディジタル網(ISDN)、インターネット、global system for mobile communication(GSM)、universal mobile telecommunications system(UMTS)、または別の地上もしくは衛星ベースのモバイル無線電話システム、ならびに/あるいは無線ローカル・エリア・ネットワーク(WLAN)を含む。
【0034】
コンピュータ化されたサーバ4は、1つまたは複数のコンピュータを含み、各コンピュータは、1つまたは複数のプロセッサ、プログラム・メモリ、データ・メモリ、ならびにオペレーティング・システムおよびSSL/TLSなどのセキュア・セッション確立プロトコルを用いて確立されたセキュア・セッションを介して遠隔通信端末1からアクセス可能なオンライン・アプリケーションを有する。たとえば、サーバ4は、Apache httpdサーバまたはJakarta Tomcatサーバである。さらに、サーバ4は、ユーザ認証モジュール40およびデータベース41を含む。好ましくは、ユーザ認証モジュール40およびデータベース41は、プログラムされたソフトウェア・モジュールとして実施される。データベース41は、たとえば、マスタ鍵(MK)42、ユーザ・データ400の複数の組を含むことができ、ユーザ・データ400のそれぞれは、ユーザ識別子(ID_U)43、個人識別コード(PIN_U)44、およびおそらくは対称秘密トークン鍵(K_T)45を含む。個人識別コード(PIN_U)44は、ユーザとサーバ4との間で共有される秘密であり、バイオメトリック・データ(バイオメトリック識別子)を含むことができる。さらに、データベース41は、公開鍵(k)46を含むことができる。公開鍵(k)46を含む証明書は、ユーザ・データ・セット400のユーザ固有部分とすることもできる、すなわち、その通し番号(SN_T)を、特定のユーザが特定のトークンを使用する時間の間にID_Uを用いて割り当てることができる。ユーザは、サーバが最後のSN_T−ID_U関連付けを記憶しなければならないか否かを選択できなければならない。それを行うことによって、ユーザがトークンをさまざまな通信端末に挿入する場合であっても便宜が提供される。その一方で、この場合にトークンを紛失することは、ID_Uをそのトークンの次のユーザに開示する可能性があり、これは認証を脅かしはしないが、サーバに関するユーザのプライバシに影響する。
【0035】
図2に示されているように、各認証モジュール2は、複数の機能モジュールすなわち、証明モジュール25、認証番号ジェネレータ26、ディスプレイ・モジュール27、ならびにおそらくはサーバ認証モジュール28および/または選択モジュール29を含む。さらに、認証モジュール2は、好ましくは完全性保護される(integrity protected)秘密鍵(k^{−1})および公開鍵(k)を含む、非対称鍵対(k,k^{−1})201を有するメモリ・モジュールを含むことができる。識別のために、認証モジュール2を、公に知られたトークン識別子SN_Tに関連付けることができる。好ましくは、認証モジュール2は、非人格的であり、PKSC#11またはMS−CAPI(Microsoft Cryptographic Application Programming Interface)または別の標準デバイス・インターフェースに準拠する。一実施形態で、認証モジュール2は、トークン識別子203を有するメモリ・モジュールを含む。トークン識別子は、たとえばブラウザのフォーム・プリ・フィル機能によって、通信端末1に格納することもできる。さらに、認証モジュール2は、秘密トークン鍵(K_T)202を有するセキュア・メモリ・モジュールまたはより好ましくない事例でマスタ鍵(MK)204を有するメモリ・モジュールのいずれかを含む。鍵対kおよびk^{−1}は、すべての認証モジュール2について同一とすることができる(トークンを非人格的とすることができる理由)が、秘密トークン鍵K_Tは、一意であり、1つの認証モジュール2に固有である。秘密トークン鍵K_Tは、次式に従って、マスタ鍵MKを使用してトークン識別子SN_Tから生成することができる。
K_T=E_{MK}(SN_T)
【0036】
その結果、中央ですべての秘密トークン鍵を格納する必要はない。そうではなく、秘密トークン鍵は、マスタ鍵を知っている誰もがトークン識別子から動的に生成することができる。マスタ鍵は、通常、サーバ4のみによって所有され、保持される。マスタ鍵またはむしろ秘密トークン鍵は、エクスポート不能な形でタンパプルーフ鍵ストア内に保持される。トークン秘密鍵k^{−1}も、同一のセキュア・ストレージによって保持されるが、公に開示されるようになる後者が、それでも、提案される方法に従って発行される認証モジュール2の母集団およびその機能を危険にさらさないようにすることができることが推奨される。
【0037】
好ましくは、機能モジュールは、プログラムされたソフトウェア・モジュールとして実施される。このソフトウェア・モジュールのコンピュータ・プログラム・コードは、コンピュータ・プログラム製品の一部であり、好ましくは、通信端末1に挿入できるデータ・キャリア上、通信端末1内に一体化されたメモリ内、または通信端末1に接続された、図3に示された認証トークン・デバイス20に一体化されたメモリ内のいずれかの、コンピュータ可読媒体に格納される。
【0038】
一実施形態で、認証モジュール2は、PKSC#11に準拠する、おそらくは非人格的な認証トークン・デバイス20として実施される。したがって、認証モジュール2は、Cryptoki(「PKCS #11:Cryptographic Token Interface Standard」、RSA Security Inc.)またはMicrosoft CryptoAPI(http://msdn.microsoft.com/library/default.asp?url=/library/en−us/seccrypto/security/cryptography__cryptoapi__and_capicom.asp)などの標準インターフェースを介して、セキュア・セッション確立プロトコル、たとえばSSL/TLSハンドシェークに参加するセキュア・ハードウェア・トークンである。図3に示されているように、認証モジュール2の文脈で上で説明した機能モジュールおよびメモリ・モジュールに加えて、認証トークン・デバイス20は、デバイス・インターフェース21、データ入力キー23またはセンサ24の形のデータ入力手段、およびおそらくはディスプレイ22を含む。任意選択で、センサ24は、バイオメトリック・データ(バイオメトリック識別子)の入力用に構成され、たとえば指紋リーダーを含む。デバイス・インターフェース21は、認証トークン・デバイス20を通信端末1に取り外し可能に接続するために構成される。デバイス・インターフェース21は、たとえばUSBインターフェース(universal serial bus)を含む接点ベースまたはたとえばBluetoothもしくはIrDAインターフェースを含む無接点である。認証モジュール2を、オフライン・デバイス(C/Rまたは使い捨てパスワード(OTP))と、データ・セットまたは認証ベース番号からビットをランダムに選択するなどの機能によってクライアント・アプリケーション・ソフトウェアを補完する通信端末1内のソフトウェア・モジュールとの間で分割することもできる。
【0039】
続く段落では、図4、5、6、7、8、9、および10を参照して、提案されるユーザ認証方法を実行する可能なシーケンスならびにユーザ認証モジュール40および機能モジュールの機能性を説明する。基本的な前提は、ユーザ・インフラストラクチャが、必ずしも信頼されるコンピュータ・ベースを実行していないことであるが、それでも、特にSSL/TLS実施態様が、たとえばトロイの木馬実行可能ファイルによって打倒されず、したがって正しく動作していると仮定しなければならない。しかし、エンド・ユーザは、情報テクノロジにおいて特に技量を有するとは期待されず、たとえば、SSL/TLS保護されたセッション内でサーバ証明書の妥当性を完全にチェックできることは、期待されない。同様に、「UBS.COM」と「U8S.COM」とを信頼できる形で区別できることは、期待されない。
【0040】
サーバ4によってホスティングされるオンライン・アプリケーションにアクセスするために、ユーザは、そのユーザの通信端末1上のクライアント・アプリケーションに、それ相応に指示する。セキュア・セッション確立プロトコル、たとえばSSL/TLSハンドシェーク・プロトコルの一部として、サーバ4は、公開鍵証明書を使用してそれ自体を認証し、ユーザが、所期のサイトに実際に属するものとしてこの証明書を正しく検証はしないと仮定するが、これにはこれ以上対処しない。
【0041】
図4に示されているように、ステップS1で、通信端末1は、セキュア・セッション確立プロトコルに従って、たとえばSSL/TLSに従ってサーバ4に「ClientHello」メッセージを送信することによって、サーバ4とのセキュア・セッション確立を開始する。
【0042】
ステップS2で、セキュア・セッション確立プロトコルに従って、サーバ4は、たとえばSSL/TLSに従って通信端末1に「ServerHello」メッセージを送信することによって、ステップS1の開始メッセージに応答する。
【0043】
ステップS3で、セキュア・セッション確立プロトコルの一部として、サーバ4は、通信端末1に証明書要求または「Finished」メッセージ、たとえばSSL/TLSに従う「CertificateRequest」または「Finished」メッセージを送信する。
【0044】
ステップS4で、セキュア・セッション確立プロトコルに従って、通信端末1のデータ・セット生成モジュールが、サーバ4と交換された、以前のセキュア・セッション確立プロトコル・メッセージに基づいてデータ・セットを作成する。たとえば、データ・セット生成モジュールは、SSL/TLSに従ってハッシュ関数を適用することによって、以前のセキュア・セッション確立プロトコル・メッセージからデータ・セットを作成する(本明細書に明示的にリストされるものより多数の、交換されるセキュア・セッション確立プロトコル・メッセージが存在する可能性がある)。
【0045】
ステップS5で、ステップS4で生成されたデータ・セット(たとえばハッシュ、以下では「ハッシュ」と呼ぶ)を、それぞれ認証モジュール2または認証トークン・デバイス20に渡す。通信端末1とそれぞれ認証モジュール2または認証トークン・デバイス20との間の情報の受渡しは、たとえば、通信端末1および/または認証トークン・デバイス20内の共有メモリ・エリアを使用して、デバイス・インターフェース21を介して達成することができる。
【0046】
ステップS6で、証明モジュール25が、鍵対201を有するメモリ・モジュールからの秘密鍵k^{−1}を使用して、ステップS5で受け取られたデータ・セットに暗号的に署名することによって、電子署名を生成する。変形形態では、公開署名妥当性検査鍵(k)46を含む署名に結び付けられた署名する証明書が、使用される特定のトークンの通し番号SN_Tを含む。
【0047】
ステップS7で、ステップS6で生成された電子署名を、通信端末1に渡す。
ステップS8で、通信端末1が、ステップS3で受け取られた証明要求に対する応答、たとえば、ステップS4で生成されたデータ・セットおよびステップS6で生成された電子署名を含む、SSL/TLSに従う「CertificateVerify」メッセージを用意する。
【0048】
ステップS9で、ステップS8で用意したセキュア・セッション確立プロトコル・メッセージが、通信端末1によってサーバ4に送信される。
【0049】
ステップS10で、公開鍵(k)46を使用して、サーバ4が、ステップS9で受け取ったデータ・セットを基礎として、ステップS9で受け取った電子署名を検証する。k^{−1}が通常はすべてのトークンについて同一なので、認証モジュール2が非人格的であるという事実に起因して、「CertificateVerify」メッセージは、実際にはクライアント・アプリケーションを認証しない。そうではなく、「CertificateVerify」メッセージは、トークンが、サーバへのセキュア・セッションを確立するのにクライアント・アプリケーションによって使用され、後の使用のためにデータ・セットを取り込むことだけを確実にする。ステップS4で生成されたデータ・セットが、「Finished」メッセージに基づく場合に、ステップS5〜S9は、必要ではなく、ステップS10で、サーバ4は、後の使用のためにデータ・セット(ハッシュ)を取り込むのみである。この手法が使用されるのは、「Finished」メッセージの内容を点検できるクライアント拡張もしくはクライアント・プラグインまたは外部「スニッファ」があるか、「Finished」メッセージが既に暗号化されている場合である。好ましくは、そのような拡張は、小さく、プラットフォーム独立であり、したがって、クライアント・アプリケーションの内部にあるか、製造される時にクライアント・アプリケーションに一体化される。
【0050】
ステップS11で、認証番号ジェネレータ26が、ステップS5で受け取ったデータ・セット(ハッシュ)から認証ベース番号N_Tを生成する。認証ベース番号N_Tは、認証モジュール2に関連する秘密トークン鍵K_Tを使用して、データ・セットから生成される。
N_T=E_{K_T}(hash)
【0051】
好ましくは、N_Tは、個人識別コードPIN_Uの定義された長さに短縮される(一実施形態では、N_Tを切り捨てることによって)。
【0052】
ステップS12で、サーバ4のユーザ認証モジュール40が、通信端末にトランザクション認証番号(TAN)を要求する。公開鍵46がS6でトークン固有公開鍵証明書内にある場合には、ユーザ識別子ID_Uを、たとえば所与のトークンSN_Tと共に使用される最も最近のID_Uを反映する要求と一緒に送信することができる、すなわち、ID_Uは、トークンが異なるユーザによって使用される場合に、HTMLフォーム・フィールドに既にプリフィルされており、訂正される必要だけがあるので、ユーザによって入力される必要がない。
【0053】
ステップS13で、ステップS11で生成された認証ベース番号N_Tが、通信端末1に渡される。
【0054】
ステップS14で、通信端末1の制御モジュールが、ユーザに個人識別コードPIN_Uを要求し、受け取る。実施形態に応じて、個人識別コードPIN_Uは、データ入力手段12またはバイオメトリック・データ(バイオメトリック識別子)用のセンサ、たとえば指紋リーダー(たとえば、異なる指の指紋が、異なる番号または文字を割り当てられる)を使用して入力される。
【0055】
ステップS15で、通信端末1の制御モジュールが、ステップ14で受け取った個人識別コードPIN_UおよびステップS11で生成された認証ベース番号N_Tから、たとえばユーザに透過的な形で擬似乱数関数PRFを使用して、トランザクション認証番号TANを生成する。
TAN=PRF_{PIN_U}(N_T)
【0056】
副実施形態として、PINを通信端末1によって受け取ることができ、S15を、非人格的な認証トークン・デバイス20上で実行することができ、その後、TANを通信端末1に返すことができる。
【0057】
この場合に、副実施形態として、「CertificateVerify」メッセージを生成するステップおよびトランザクション認証番号TANを生成するステップを、異なってグループ化することができ、データ・セット(ハッシュ)を生成するのに使用される関数hが、暗号ハッシュ関数の特性を満足する場合には、たとえば、HMACコンストラクション(Krawczyk,H.,他、「HMAC:Keyed−Hashing for Message Authentication」、Request for Comments 2104、1997年2月)を使用して、ハッシュ関数hを実施することができ、その場合に、PIN_Uは、データ・セット(ハッシュ’)のCertificateVerify計算への引数になる。この実施形態では、認証ベース番号N_T’は、トランザクション認証番号になり、TAN=N_T’である。この実施形態では、データ・セット(ハッシュ’)およびハッシュ関数hへの1つの入力すなわちPIN_Uを除くすべての入力を有することから、PIN_Uを再構成することが実現可能でないことが必須である。HMACは、これを満足する1つの関数である。また、HMACは、擬似乱数関数PRFに使用され、トランザクション認証番号TANを生成するのに使用される。
TAN=HMAC_{PIN_U}(N_T)=h(K+opad‖h(K+ipad‖N_T))
【0058】
この場合に、Kは、ある独自の指定された形で(たとえば、PKCS #5に従って)PIN_Uから導出される。記号+は、加算の2を法とする剰余を指し、‖は、文字列連結を指す。opadおよびipadは、定数値である。特に、ユーザがTANをユーザ自身で計算する必要がないときに、数字[0..9]のみ以外のアルファベットが好ましい可能性がある。
【0059】
トランザクション認証番号TANは、正確に1つのセキュア(SSL/TLS)セッションについて有効である。
【0060】
ステップS16で、ステップS12で受け取った要求に応答して、通信端末1が、生成されたTAN、ユーザによって確認されたか新たに入力されたユーザ識別子ID_U、ならびにkを含むトークン証明書がSN_Tをも含む(S6で任意選択)のでない限りユーザによって入力されたトークン識別子SN_Tをサーバ4に送信する。SN_Tは、たとえば、トークン識別子203を有するメモリ・モジュールから読み取られ、またはブラウザに関連する通信端末1内のメモリから読み取られる。
【0061】
ステップS17で、サーバ4のユーザ認証モジュール40が、データベース41内で、ステップS16で受け取られたユーザ識別子ID_Uに割り当てられた個人識別コード(PIN_U)44を判定する。
【0062】
ステップS18で、認証モジュール2に関連する秘密トークン鍵K_Tを使用して、ユーザ認証モジュール40が、ステップS10で受け取ったデータ・セット(ハッシュ)から認証ベース番号N_Tを生成する。一実施形態で、秘密トークン鍵K_Tは、ステップS16で受け取ったトークン識別子SN_Tから、マスタ鍵(MK)42を使用して生成される。しかし、秘密トークン鍵(K_T)45がサーバ4上で格納される場合には、これをMKを用いて再計算する必要はなく、完全にランダムに選択することができる。トークン識別子SN_Tが、セキュア・セッション確立プロトコルの途中で交換されるトークンのクライアント証明書、たとえばステップS3とS9との間の「クライアント証明書」メッセージの一部である場合に、SN_Tは、ステップS16で通信端末1からサーバ4には送信されない。
【0063】
ステップS19で、ユーザ認証モジュール40は、ステップS17で判定された個人識別コードPIN_UおよびステップS18で生成された認証ベース番号N_Tから、トランザクション認証番号TANを生成する。
【0064】
ステップS20で、ユーザ認証モジュール40は、ステップS19で生成されたトランザクション認証番号との比較を介して、ステップS16で受け取ったトランザクション認証番号を検証する。肯定の検証の際に、通信端末1は、サーバ4へのアクセスを与えられ、あるいは、一実施形態で、サーバは、図8を参照して後で説明するステップS41で継続する。
【0065】
図5に示されているように、代替実施形態では、ステップS13、S14、およびS15を含むブロックAが、ステップS21、S22、S23、およびS24を含むブロックBに置換される。
【0066】
ステップS21で、それぞれ認証トークン・デバイス20または認証モジュール2のデータ入力手段23またはセンサ24を介して、個人識別コードPIN_Uが、ユーザから受け取られる。
【0067】
ステップS22で、証明モジュール25が、ステップS21で受け取った個人識別コードPIN_UおよびステップS11で生成した認証ベース番号N_Tから、ステップS15の文脈で上で説明したようにトランザクション認証番号TANを生成する。したがって、ステップS15の文脈で説明した副実施形態も、図5に示された実施形態にあてはまる。
【0068】
ステップS23で、ステップS22で生成されたトランザクション認証番号TANが、通信端末1に渡される。
【0069】
ステップS24で、トランザクション認証番号TANが、通信端末1内で受け取られ、おそらくはディスプレイ11に表示される。その後、通信端末1は、上で説明したステップS16で継続する。
【0070】
図6に示されているように、代替実施形態では、ステップS13、S14、およびS15を含むブロックAが、ステップS31およびS32を含むブロックCに置換される。
【0071】
ステップS31で、ディスプレイ・モジュール27が、ステップS11で生成された認証ベース番号N_Tをディスプレイ22に表示する。
【0072】
ステップS32で、通信端末1の制御モジュールが、トランザクション認証番号TANをユーザから受け取る。ステップS32で入力されるトランザクション認証番号は、ディスプレイ22に表示された認証ベース番号N_Tおよびユーザの個人識別コードPIN_Uの組合せとしてユーザによって定義される。
TAN=f(N_T,PIN_U)
【0073】
一般に、適当な関数fを定義する多数の可能性がある。Molva,R.およびG.Tsudik、「Authentication Method with Impersonal Token Cards」、Proceedings of IEEE Symposium on Research in Security and Privacy、IEEE Press、1993年5月で、引数の10を法とする剰余の合計を使用することが提案されている。この提案は、適当であるが、同等によく働く多数の他の関数がある。たとえば、SwivelのPINsafeによるもう1つの手法は、長さ10のN_Tを表示し、選択に数値PINの数を使用することである。その後、通信端末1は、上で説明したステップS16で継続する。
【0074】
図7に示された実施形態では、認証モジュール2が、通信端末1内のプログラムされたソフトウェア・モジュールによって排他的に実施される。図4に示された実施形態と比較して、図7による実施形態は、ステップS5、S7、およびS13を含まない。というのは、通信端末1と通信端末1の外部の認証モジュール(トークン・デバイス20)との間のデータ交換がないからである。情報は、通信端末1と認証モジュール2との間で、ソフトウェア・インターフェースまたは通信端末1内の共有メモリ・エリアを使用して交換される。それ以外の点では、ステップS1、S2、S3、S4、S6、S8、S9、S10、S11、S12、S14、S16、S17、S18、S19、およびS20は、図4に関して上で説明したように実行される。
【0075】
図8に示されているように、ステップS41で、サーバ4は、ステップS9で受け取ったデータ・セット(ハッシュ)からサーバ認証コードを生成する。サーバ認証コードA_Tは、データ・セット(ハッシュ)に公開関数gを適用することと、ステップS18で判定された秘密トークン鍵K_Tを暗号化に使用することとによって生成される。
A_T=E_{K_T}(g(hash))
【0076】
A_Tの構成は、基本的に認証ベース番号N_Tの構成と同一である。唯一の相違は、データ・セット(ハッシュ)が、秘密トークン鍵K_Tを用いて暗号化される前に、公に知られた関数gにかけられることである。関数gが複雑である必要はない。関数gは、ハッシュ値の補数を計算すること程度に単純なものとすることができる。このサーバ認証に本質的なのは、データ・セット(ハッシュ)と認証ベース番号N_Tとの両方を見ることができる可能性がある敵対者が、トークン鍵K_Tが秘密であることと、暗号化関数E_(一実施形態で、これをtriple−DESなどの対称暗号とすることができる)の特性とのゆえに、A_Tを構成できないことである。
【0077】
ステップS42で、ステップS41で生成されたサーバ認証コードが、通信端末1に送信される。
【0078】
ステップS43で、ステップS42で受信されたサーバ認証コードが、通信端末1によってディスプレイ11に表示される。
【0079】
ステップS44で、サーバ認証モジュール28が、公開関数(g)をデータ・セットに適用することと、認証モジュール2に関連する秘密トークン鍵K_Tを暗号化に使用することとによって、ステップS5で受け取られたデータ・セット(ハッシュ)からサーバ認証コードを生成する。
【0080】
ステップS45で、ディスプレイ・モジュール27が、ステップS44で生成されたサーバ認証コードをディスプレイ22に表示する。
【0081】
ステップS46で、サーバ4は、ユーザが、ディスプレイ22に表示されたサーバ認証コードとの比較を介してディスプレイ11に表示されたサーバ認証コードを検証することによって認証される。
【0082】
図9に示された実施形態では、認証モジュール2が、通信端末1内のプログラムされたソフトウェア・モジュールによって排他的に実施される。図8に示された実施形態と比較して、図9による実施形態は、ステップS47で、ディスプレイ・モジュール27が、ステップS44で生成されたサーバ認証コードをディスプレイ11に表示する。さらに、ステップS48で、サーバ4は、ユーザが、サーバ認証モジュール28からのサーバ認証コードとの比較を介してサーバ4からのサーバ認証コードをディスプレイ11上で検証することによって認証される。
【0083】
ここまでで提案された認証モジュール2は、単一の機関に対してユーザを認証する(単一の個人識別コードを使用して)のに使用することができる。さらなる実施形態では、認証モジュール2は、複数の機関を伴う応用例のために、すなわち、複数の機関のサーバに対してユーザを認証するように構成される。複数機関認証モジュールを実施する好ましい手法は、マスタ鍵MKを機関固有マスタ鍵MK_Iの組に置換し、トークン鍵K_Tを機関固有トークン鍵K_{IT}の組に置換することであり、ここで、K_{IT}は、認証モジュールが機関Iと共有する秘密トークン鍵を指す。各サーバ4は、特定の機関に関連し、認証ベース番号を生成するのに、その機関に固有の秘密トークン鍵を使用する。単一機関セッティングに似て、秘密トークン鍵K_{IT}は、次式に従って動的に生成することができる。
K_{IT}=E_{MK_I}(SN_T)
【0084】
次に、この鍵が、認証ベース番号およびトランザクション認証番号の機関固有の値を生成するのに使用される。
N_{IT}=E_{K_{IT}}(Hash)
および
TAN=f(N_{IT},PIN_{IU})
【0085】
次に、結果のTANを、ユーザが機関I(のサーバ4)への認証に使用することができる。個人識別コードPIN_{IU}は、ユーザ固有であるだけではなく、機関固有でもある。したがって、複数機関認証モジュールは、複数の機関固有秘密トークン鍵の組を格納したことによってまたは機関固有秘密トークン鍵を動的に生成するために複数の機関固有トークン識別子およびマスタ鍵の組を格納したことによってのいずれかで、複数の機関固有秘密トークン鍵に関連する。選択モジュール29は、ユーザが、それぞれ認証モジュール2または認証トークン・デバイス20について複数の可能な機関スコープのうちの1つを選択するために設計されている。ユーザによって選択された機関スコープをセットされて、認証モジュール2は、認証ベース番号を生成するのに、1つのめいめいの機関固有秘密トークン鍵を使用する。たとえば、選択モジュール29は、ディスプレイ22または11上で、サポートされる機関のリストをユーザに提示し、データ入力手段23または12を介してユーザ選択を受け取る。代替実施態様では、データ入力手段23または12の特定のキーが、特定の機関に割り当てられる。
【0086】
認証モジュール2が複数のK_{IT}ではなく1つだけを安全に保持するさらなる実施形態では、オンライン包括的発行機関(online overarching issuing institution)(AS)が追加される。これは、認証モジュール2の発行グループの一部である機関の組の柔軟性を高める。認証モジュール2は、ナンスR_Tを作成する。ユーザは、認証モジュール2のディスプレイから2つの値をコピーしなければならない、すなわち、SN_Tではなく、TAN_ASが、代わりに生成され、ユーザ認証フェーズ中に成功のSSL/TLSセッション確立の後に入力される必要がある。
TAN_I=f’(R_T,PIN_U_I)
TAN_AS=E_MK(R_T,Hash,ID_I)
ここで、ID_Iは、「機関XYZ」の「XYZ」など、短い識別子文字列である。
【0087】
機関Iは、両方の値を見るが、単独ではこれらについて何もすることができない。機関Iは、TAN_ASを発行機関ASに転送し、それと引き換えにR_TおよびHashを受け取る。ASとIとの間の接続が、相互に認証され、機密であると仮定する。
【0088】
犯罪の意図がない限り、TAN_Iは、発行機関ASによって絶対に見られず、したがって、発行機関ASがPIN_U_Iを判定できる危険性はない。しかし、この実施形態では、前に述べた強い暗号ハッシュ関数であるf’を選択することだけが推奨される。
同様に、この手法は、機関I_1…I_nを、互いのユーザのPINを知ることを試みることから保護する。
【0089】
この実施形態は、新しい機関の追加を非常に単純にする。本質において、追加のID_I_n文字列を、認証モジュール2に単純に追加することができる。認証モジュール2が、偽物のID_I文字列であふれる場合には、これは、ユーザビリティの懸念にはなるが、それ以外の点で提案される方法のセキュリティを実際に傷つけはしない。
【0090】
一実施形態で、認証モジュール2または認証トークン・デバイス20は、それぞれ、「使い捨てパスワード」(OTP)システム(たとえば、LamportスタイルOTP(Lamport,L.、「Password Authentication with Insecure Communication」、Communications of the ACM、Vol.24、1981年、770〜772頁)またはSecurIDトークン(http://www.rsasecurity.com/))を補完するのに使用される。この場合に、ユーザは、ステップS15のPRFまたはfの入力としてOTPを使用する(PIN_Uの代わりに)。しばしば、OTPはPIN_Uを含む。それ以外のすべてが、本質的に同一のままになる。プロトコルにおける小さい変更ではあるが、これは、RSAのSecurIDなど、既に使用されているツー・ファクタ・セキュリティ要素を用いるソフトウェア変形形態の使用を可能にする。
【0091】
もう1つの実施形態では、バイオメトリック認証ステップが、認証トークン・デバイス20をアクティブ化する前に追加される。これは、トークンが、別々のプロセスでパーソナライズされ、バイオメトリックスが一致する場合に限ってトークンの少なくとも「一時的な」所有者の要求を満たし始めることを暗示する。
【0092】
さらなる実施形態で、ユーザのバイオメトリック特性B_Uが、前に説明したようにPIN_Uを入力するのには使用されない場合に、バイオメトリック・データは、認証ベース番号N_Tの計算に含められる。また、この実施形態のサーバは、PIN_Uの上にB_Uを格納し、したがって、認証モジュール2は、完全に個人的に転送可能なままになる。
N_T’’=E_{K_T}(Hash,B_U)
【0093】
図4、5、6、7、8、および9に示されたステップの異なるシーケンスが、本発明の範囲から逸脱せずに可能であることを指摘しなければならない。
【0094】
個人識別コードの変更に関する実施形態
エンド・ユーザ教育の展望から、単純な行動ガイドラインを有することが重要である。説明されるすべての実施形態について、これは、確かに「絶対に現在のまたは新しい個人識別コードをウェブ・ブラウザに入力してはならない」になる。図5に示された個人識別コードを入力するモジュールなど、追加ハードウェアを含む実施形態について、ガイドラインは、「絶対に主キーボードを用いて画面にPINを入力してはならない」にさえなる。しかし、好ましくは、ユーザが周期的に自発的にそのユーザの個人識別コードPIN_Uを変更することが可能でなければならない。
【0095】
たとえば、個人識別コードPIN_Uを変更するために、本質的に上で説明したものと同一のステップを実行する、もう1つのセキュア・セッションが確立される。具体的に言うと、図4、5、または7に示されているように、ステップS1からS10の後に、ステップS11で、認証ベース番号N_Tが生成される。
【0096】
個人識別コードPIN_Uの変更に関するユーザまたはサーバの指示に応答して、それぞれステップS14またはステップS21で、古い個人識別コードPINold_Uおよび新しい個人識別コードPINnew_Uが、それぞれ通信端末1、認証トークン・デバイス20、または認証モジュール2内でユーザから受け取られる。好ましくは、タイピング・エラーを避けるために、新しい個人識別コードPINnew_Uは、二重入力を介して確認される。
【0097】
それぞれステップS15またはS22で、トランザクション認証番号TANを生成するのではなく、識別変更コード(PCC)が生成される。本質的に、PCCの計算に使用されるPRFは、個人識別コードを回復可能にしなければならない。たとえば、排他的論理和(XOR)関数が、この特性を有する。
【0098】
次に、PCCが、適当に選択された関数fについてPCC=f(N_T,PINold_U,PINnew_U)として計算される。たとえば、fが10を法とする剰余での桁単位の加算を表す場合に、fを次のように定義することができる。
(N_T,PINold_U,PINnew_U)=f(f(N_T,PINold_U),PINnew_U)
【0099】
たとえば、N_T=123、PINold_U=345、およびPINnew_U=781の場合に、f(N_T,PINold_U)=468であり、f(f(N_T,PINold_U),PINnew_U)=149である。
【0100】
その後、ステップS16、S23、S24で、トランザクション認証番号TANではなく、識別変更コード(PCC)がサーバ4に通信される。ステップS17およびS18は、上で説明したように実行される。ステップS19およびS20では、その結果、トランザクション認証番号TANを検証するのではなく、サーバ4は、(PINold_Uの検証を介して)個人識別コードPIN_Uを変更したのが正当なユーザであって、進行中のセッションが正当なユーザによって無人のままにされたアンロックされた端末を利用した他の誰かではないことを保証しながら、ユーザによってサブミットされたPCCからPINnew_Uを導出する。fについて与えた例では、サービス拒否につながり得る盲目的置換攻撃に対する保護が、与えられない。しかし、現在優勢なセッション確立プロトコル(SSL/TLS)の文脈では、相補的なメッセージ完全性保護が、この攻撃を防ぐ。
【0101】
もう1つの実施形態では、個人識別コードPIN_Uが、3つのセキュア・セッション確立によって実施される。
【0102】
第1は、ユーザがPINold_Uを再供給するセッションであり、第2は、ユーザがPINnew_Uを提示するセッションであり、第3は、ユーザがタイピング・エラーを避けるためにPINnew_Uを再提示するセッションである。
【0103】
PIN変更が、サーバによって開始された場合に、このプロトコルの状態をシグナリングするために、サーバは、この3つのステップのそれぞれについて異なるオーソリティである、http://www.rfc.net/rfc2246.html#s7.4.4に概要を示された擬似「DistinguishedName certificate_authorities」をアドバタイズすることができる。同様に、トークンは、4つすなわち、通常の認証用に1つとこの実施形態用に3つの異なる証明書を有する必要がある。
【0104】
代替案では、認証ベース番号N_Tを計算する時に、認証トークン・デバイス20または認証モジュール2は、それぞれ、ステップ識別子を含む。したがって、それぞれ認証トークン・デバイス20または認証モジュール2で必要な異なる証明書の個数を減らすことができる。
【0105】
個人識別コードの変更が、クライアントによって開始された場合に、サーバは、少なくとも、通常の認証用に1つおよび個人識別コードの変更のステップ1用に1つの2つのCAを提供しなければならない。
【0106】
暗号なしの認証モジュールを用いる実施形態
もう1つの実施形態で、認証トークン・デバイス20または認証モジュール2は、それぞれ、暗号化のために構成される必要がない。
【0107】
この実施形態では、認証ベース番号N_Tが、HMACなどの暗号ハッシュ関数によって、秘密としてトークン鍵K_Tを使用して計算される。これは、多少より少ない計算オーバーヘッドで同一のセキュリティを提供する。共有される秘密およびセキュア・ストレージの必要は、この実施形態でも残る。たとえば、ステップS15の文脈で説明した副実施形態で概要を示した暗号ハッシュ(CH)を使用して、ステップS11で使用される暗号化を置換することができる。
N_T=CH_{K_T}(hash)
これは、ステップS41またはS44など、暗号化の他の使用にもあてはまる。
【0108】
代替トランザクション認証番号(TAN)を用いる実施形態
この実施形態では、個人識別コードPIN_Uが、ステップS4の後に、ステップS14またはS21の文脈で前に(図4)説明した形で入力される。その後、鍵付き暗号ダイジェスト値、たとえば暗号ハッシュが、個人識別コードおよび通信端末とサーバ4との間で交換されたセキュア・セッション確立プロトコル・メッセージから生成される。プロトコル・フローに関して、セキュリティ目的ではなく、このステップに通し番号SN_Tをも含めることが有用である場合がある。鍵付き暗号ダイジェスト値は、鍵付き暗号ダイジェスト関数、たとえば、サーバ4と共有される秘密を(ハッシュ)鍵として使用するいわゆる「鍵付きハッシュ関数」を用いて、生成される。実施形態に応じて、(ハッシュ)鍵として使用されるのは、トークン鍵K_T、個人識別コードPIN_U、またはセキュア・セッション確立プロトコル内でセッション鍵を確立するための基礎として使用されたプリマスタ秘密である。具体的に言うと、個人識別コードPIN_Uが、明確に選択された秘密である場合に、その個人識別コードPIN_Uを(ハッシュ)鍵として使用することができる。これによって、認証トークン・デバイス20が、それ自体の秘密のトークン鍵K_Tまたは私有署名鍵kー1あるいはその両方を有することから解放され、認証モジュール2または認証トークン・デバイス20が、それぞれ、単に「信頼される観察者」になる。サーバ4は、「高い金額を人xyzに送れ」などのアプリケーション・レベル指示が認証されたSSLセッション内から来るのか否かを即座に検出する。
【0109】
たとえば、ステップS5で、サーバ4と交換されたセキュア・セッション確立プロトコル・メッセージから通信端末1によって生成されたデータ・セット(ハッシュ)および個人識別コードPIN_Uが、それぞれ認証モジュール2または認証トークン・デバイス20に渡される。ステップS6で、証明モジュール25が、データ・セット(ハッシュ)および個人識別コードPIN_Uから暗号ハッシュを生成する。ステップS6での電子署名の生成は、任意選択である。ステップS7で、暗号ハッシュ(電子署名を伴うまたは伴わない)が、通信端末1に渡される。この副実施形態では、PIN_Uも、ユーザによってステップS6で認証トークン・デバイス20に直接に入力することだけができる。
【0110】
代替案では、暗号ハッシュは、ステップS4で、個人識別コードPIN_Uおよび通信端末1とサーバ4との間で交換されたセキュア・セッション確立プロトコル・メッセージから生成される。その結果、ステップS5からS7は、必要なステップのすべてがステップS4で実行されるので、省略される。
【0111】
ステップS8で、通信端末1は、ステップS3で受け取った証明要求に対する応答、たとえば、それぞれステップS6またはS4で生成された暗号ハッシュおよびユーザによって確認されたか新たに入力されたユーザ識別子ID_Uを含む、SSL/TLSに従う「CertificateVerify」メッセージを用意する。
【0112】
ステップS10で、サーバ4は、サーバ4に格納されたユーザの個人識別コードを使用して暗号ハッシュを生成し、サーバ4で生成された暗号ハッシュとステップS9で通信端末から受信した暗号ハッシュとの比較に基づいてユーザの真正性を検証する。肯定の検証の際に、通信端末1は、たとえばサーバ4へのアクセスを与えられる。したがって、暗号ハッシュが、上で説明したトランザクション認証番号TANの代替データ要素として生成され、交換され、検証される。
【0113】
サーバ4がユーザを認証しなければならない場合に、サーバ4は、ステップS41で継続する。しかし、さらなる副実施形態では、サーバ認証コードA_Tが、ステップS4〜S6の直後に表示される。
【0114】
外部チャレンジ/レスポンス・デバイスを用いる実施形態
この好ましい実施形態では、認証モジュール2は、図7および10に示されているように、通信端末1内のプログラムされたソフトウェア・モジュールによって排他的に実施される。ステップS1、S2、S3、S4、S6、S8、S9、S10、およびS11は、本質的に図4を参照して上で説明したように実行される。ステップS11の一部として、認証ベース番号N_Tが、ディスプレイ11に表示される。副実施形態では、認証モジュール2が、信頼されるオブザーバとしてのみ働き、認証ベース番号(N_T’’’)が、プロトコル・メッセージから、たとえば通常のCertificateVerifyメッセージから生成されるデータ・セットの短い派生物(たとえば、6桁または8桁)として生成される。本質的に、認証ベース番号N_Tは、活用可能な形でMITMによって判定することのできない任意の他のセッション関連識別子とすることができ、たとえば、セッション鍵およびサーバ公開鍵の短いダイジェストを、MITM攻撃に耐えるセキュア・セッション識別子として認証ベース番号N_Tを計算するもう1つの形とすることができる。「Finished」メッセージのハッシュまたは暗号化された「Finished」メッセージ、あるいは外部観察可能ハンドシェーク・メッセージのシーケンス全体が、このセッション関連識別子(それぞれN_TまたはN_T’’’)を構成するための他の候補であり、下でより詳細に説明される。したがって、この実施形態では、N_Tを構成するために秘密トークン鍵K_Tを有することが、任意選択である。同様に、秘密署名鍵k−1も、任意選択とすることができる。
【0115】
その後、図10に示されているように、ステップS51で、ユーザが、認証ベース番号N_T(クライアント側で生成されたチャレンジとして)およびそのユーザの個人識別コードPIN_U(たとえば、コードまたはバイオメトリック・データとして)を、通信端末1に接続されていない従来のC/Rトークン・デバイス5に入力する。ステップS52で、ステップS51で入力された値に応答して、C/Rトークン・デバイス5が、それ自体の論理に基づいて、トークン・レスポンス値を生成し、表示する。ステップS14およびS15を置換するステップS53で、ユーザが、トランザクション認証番号としてC/Rトークン・デバイス5からのトークン・レスポンス値を通信端末1に入力する。
【0116】
ステップS54で、ステップS12で受信した要求に応答して、通信端末1が、トランザクション認証番号TANとして以前に入力されたトークン・レスポンス値をサーバ4に送信する。
【0117】
本質的に、ステップS17からS20は、それぞれ図4または7を参照して上で説明したようにサーバ4によって実行されるが、C/Rトークン・デバイス5の論理に対応して、サーバ4は、トランザクション認証番号TANとしてトークン・レスポンス値を生成し、検証する。トランザクション認証番号すなわちトークン・レスポンス値の肯定の検証時に、それぞれ図8または9に示されているように、通信端末1が、サーバ4へのアクセスを与えられ、あるいは、一実施形態で、サーバ4が、ステップS41で継続する。
【0118】
たとえば、C/Rトークン・デバイス5は、数百万枚の銀行カードおよびクレジット・カードで流通しているEMVチップ(Europay International、MasterCard International、およびVisa International)に基づく(http://www.emvco.comを参照されたい)。EMVチップによって生成されるいくつかのトークン・レスポンス値は、個人識別コードPIN_Uを含まない。MasterCardチップ認証プログラム(CAP)に従うカードICCは、以前のK_Tに似た役割を有するサーバ(発行者)と鍵を共有する。個人識別コードPIN_Uおよびチャレンジ(認証ベース番号N_T)の正しい入力の後に、とりわけ(たとえば、CVV)チャレンジおよび正しい個人識別コードPIN_Uが提示されたことの信頼できる確認を含む暗号文(通常は3DES)が作成される。通常、数字キーパッドを有する接続されないリーダーが、認証ベース番号N_Tおよび個人識別コードPIN_Uの入力に使用され、トークン・レスポンス値は、接続されないリーダーのディスプレイに表示される。認証ベース番号N_T’’’が4桁または6桁に短縮されている場合に、たとえば、MITMが、認証ベース番号N_T’’’への短いデータ・セット(ハッシュ)依存入力がサーバとMITMとの間で開かれた主詐欺セッションと衝突する端末上のクライアントとの副詐欺セッションを確立できる可能性が、大きく高まる。MITMは、おそらくは、どちらの当事者にも衝突しない推測を気付かれずに、衝突が見つかったか否かをオフラインで検証することができる。そのような攻撃を防ぐために、「短縮」アルゴリズムは、MITMに完全に知られている単純なハッシュ関数または一方向ダイジェスト関数とすることはできず、さらなる特性を有する必要がある。基本的に、「セッション・アウェアネス」のオフラインでの推測が、MITMにとって、C/Rデバイス5を使用する時のすべての他のタイプの攻撃に関する個人識別コードPIN_Uのオフラインでの推測と同等に魅力的でなくなる必要がある。これは、短縮されたハッシュでの衝突を見つけることが、もはやオフラインで検証可能ではなく、オンライン・オーソリティすなわち推測の回数を制限するサーバとの交換を必要としなければならないことを意味する。C/Rトークン・デバイス5の対称鍵(ユーザがパスワードとして記憶できると期待されるものより高いエントロピを有する)が、暗号化を介してMITMから擬似乱数セレクタを隠すのに使用される。これは、本質的に、36バイト長のハッシュ(データ・セット)全体に対する衝突を見つけることをMITMに強いるが、これはほとんど実現不能である。
【0119】
したがって、一実施形態で、ステップS11の一部として、クライアント側で、認証モジュール2が、たとえばクライアント・アプリケーション(たとえば、ブラウザ)の一部として、後で「ランダム選択数(random picking digit)」と称する短い乱数、たとえば4桁を生成する。この乱数は、プロトコル・メッセージから生成されたデータ・セットから、たとえばTLSハンドシェークの「CertificateVerify」メッセージまたは「Finished」メッセージの36バイト・ハッシュから任意のビットを選択するのに使用され、この任意のビットは、たとえばもう1つの4桁を表す。その後、後者の4桁および「ランダム選択数」が、たとえば8桁の短縮された認証ベース番号N_T’’’としてディスプレイ11でユーザに表示される。ステップS51で、ユーザは、この認証ベース番号N_T’’’(クライアント側で生成されたチャレンジとして)およびそのユーザの個人識別コードPIN_Uを、図10を参照して上で説明したようにC/Rトークン・デバイス5に入力する。ステップS52からS54は、図10の文脈で上で説明したものと同一のままである。
【0120】
「ランダム選択数」がMITMに知られ「ない」ために、C/Rトークン・デバイス5上のアルゴリズムは、「ランダム選択数」が暗号化された形でサーバ4に送られるように適合される。これは、トランザクション認証番号としてC/Rトークン・デバイス5によって生成されたトークン・レスポンス値が、暗号化された形で「ランダム選択数」を含むことを意味する。その結果、サーバ4は、それが受け取ったレスポンスから「ランダム選択数」を回復するように構成される。たとえば、3DES(またはたとえば64ビットのブロック長を有する別の暗号化システム)を用いると、レスポンスは64ビットである。たとえば、レスポンスについて、32文字の英数字文字セットが許容され、したがって、レスポンスは、13文字の長さになる。その結果、ユーザは、13個の英数字文字をC/Rトークン・デバイス5からクライアント・アプリケーションに、たとえばブラウザのフォーム・フィールドにコピーしなければならない。ユーザが定期的に19桁のクレジット・カード番号(CVVを含む)をタイプすることを考慮すると、チャレンジの8桁およびレスポンスの13文字をタイプすることは、ユーザビリティの観点から許容されると思われる。この手法のセキュリティは、チャレンジおよびレスポンスの長さに対して相対的に高まり、あるいは下がる。
【0121】
サーバ側では、ステップS18が変更され、「ランダム選択数」が、秘密トークン鍵K_Tを使用して暗号化解除され、その後、短縮された認証ベース番号N_T’’’を計算するための短縮された入力をデータ・セット(ハッシュ)から選択するのに使用されるようになる。他のすべてが、前と同じままである。
【0122】
さらなる実施形態として、認証ベース番号N_Tが、たとえばhttp://axsionics.chに記載のグラフィカル点滅(graphical flickering)など、ユーザがキーボードにタイプすることによるもの以外の手段を介してデバイスに入力される。重要な機能強化は、通常は完全にサーバによって作成される点滅チャレンジが、あるクライアント側で生成されるセキュア・セッション識別子によって修正される必要があることである。この点滅方法の実施態様は、好ましくは、ブラウザ(java)プラグイン、Flash、またはjavascriptなど、あるクライアント側アクティブ・コンポーネントを有するので、いくつかの実施形態で、これを使用して、たとえば、サーバ公開鍵と、セッション鍵または他のタイプのセキュア・セッション識別子のダイジェストとを取り出し、これを点滅イメージ生成すなわち関連するプロトコルのチャレンジに含めることができる。このアクティブ・コンポーネントは、好ましくは、署名される。というのは、そうでなければ、MITMが、クライアント通信端末1に真に組み込まれた認証ベース番号N_TではなくMITMの認証ベース番号N_Tを提示できる変更された版を簡単に注入するからである。
【0123】
さらなる副実施形態(「ハンドシェーク中のクライアント証明書認証なし」)では、通信端末1のクライアント・アプリケーション・ソフトウェア・モジュール、たとえばブラウザが、セキュア・セッション確立プロトコル・スタックへの読取専用アクセスを介してまたは「アウトサイダ」としてプロトコル・メッセージをスニッフ/取り込むことができることによってさえ、MITM攻撃に耐えるセキュア・セッション識別子として認証ベース番号N_Tivを計算するように構成された認証番号ジェネレータ26を設けられる。したがって、この副実施形態では、クライアント証明書認証を実行する必要がない、すなわち、片側のセキュア・セッションのためにステップS3〜S10を実行する必要がなく、MS−CAPIまたはPKCS11などのトークン・デバイス・ドライバは、もはや不要である。
【0124】
上で述べた認証番号ジェネレータ26は、ステップS11で、下に概要を示すように、MITM攻撃に耐えるセキュア・セッション識別子として認証ベース番号N_Tivを計算するように構成される。
【0125】
a)認証ベース番号N_Tivは、データ・セット(ハッシュ)に基づき、MITMが知ることのできない(たとえば、入力として暗号化される前にプリマスタ秘密を有することに起因して)通信端末1とサーバ4との間で交換されるセキュア・セッション確立プロトコル・メッセージに基づいて生成され、または、
b)認証ベース番号N_Tivは、既知の入力データおよび秘密の鍵から生成され(この実施形態では、クライアント・アプリケーションでの秘密トークン鍵K_Tの必要を回避しなければならないが)、または、
c)認証ベース番号N_Tivは、すべてがMITMにも既知であるが、セキュア・セッション確立プロトコルへの論理的接続によってMITMに対する抵抗を保証する入力データに基づいて生成される。この実施形態では、サーバの公開鍵および新しさを保証するもの(ナンスまたはタイムスタンプ)を使用することが、十分である。たとえば、暗号化されたプリマスタ秘密のハッシュすなわちMITMによって観察可能なメッセージが、そのようなナンスとして働くことができる。この場合に、チャレンジを知り、レスポンスを観察することによって、MITMが(オフライン)PIN推測攻撃を開始することができないことを、C/Rトークン・デバイスの論理が保証することが重要である。
【0126】
たとえば、認証番号ジェネレータ26は、このMITMに耐えるセキュア認証ベース番号N_Tiv(チャレンジ)をクライアント・アプリケーション内で表示するように構成される。たとえば、認証番号ジェネレータ26は、ユーザがマウスのポインタを定義された区域、たとえばブラウザの右下の上、たとえばブラウザ内に表示されたロックの上に移動する時に、この区域内でチャレンジをユーザに可視にする。
【0127】
上で説明したように、ユーザは、認証ベース番号N_Tiv(チャレンジとして)およびそのユーザの個人識別コードPIN_UをC/Rトークン・デバイスに入力し、この方法は、上で説明したように進行する。
【0128】
秘密の鍵を用いないがクライアント側でナンスを用いる実施形態
Request for Comments 2246に概要を示されているように、CertificateVerifyメッセージの構造を、PKCS1エンコードされた署名ではなく任意のレスポンスによってオーバーロードする可能性がある。これは、トークンがもはや秘密トークン鍵K_Tを必要としない可能性を提供する。この実施形態では、上で説明した「代替トランザクション認証番号(TAN)を用いる実施形態」に類似して、ステップS6で、認証モジュール2または認証トークン・デバイス20が、それぞれ、ハッシュ(データ・セット)、個人識別コードPIN_U、およびさらに1つまたは2つの真にランダムなナンスN_Tt(およびN_Ta)を公開鍵k_Sを用いて暗号化することによって、暗号文を生成する(ナンスは、「number used once(1回だけ使用される数)」である)。公開鍵k_Sは、MITMがシステムをだましてMITM自身の鍵k_MITMを使用させるのを防ぐために、それぞれ認証モジュール2または認証トークン・デバイス20に事前にインストールされなければならない。公開鍵k_Sは、サーバ4または複数機関の場合に認証サーバASのいずれかに属する(認証サーバは、公開鍵k_ASに関連する)。任意選択で、暗号文の入力値は、公開鍵k_(A)Sによる暗号化の前に、秘密の鍵k−1を用いて署名される。同様に、S15の副実施形態に従って、暗号ハッシュ関数(HMAC)を、暗号化の前に適用することができる。
【0129】
ステップS7〜S9では、ほとんどの「セキュア・セッション確立プロトコル」によって要求されるように「電子署名」を送信するのではなく、この暗号文が、プロトコル仕様によって課せられる制約なしで、構造化されないデータとして送信される。他のプロトコル部分も、通信端末1のクライアント・アプリケーション内ではなく認証トークン・デバイス20上で実行される(たとえば、セッション鍵の生成)実施態様では、「ClientKeyExchange」メッセージなど、他のプロトコル・メッセージを使用して暗号文を送信することができる。
【0130】
ステップS10で、サーバ4が、暗号文を暗号化解除する。これは、ナンスN_Tt、個人識別コードPIN_U、およびおそらくはナンスN_Taをサーバに与える。ナンスN_Ttは、「使い捨て」ナンスであり、pin推測攻撃を防ぐ塩として追加される。
【0131】
ステップS10で、サーバ4は、ステップS4の文脈で説明したように「ハッシュ」も生成する。ステップS11〜S17は不要である。
【0132】
ステップS18〜S20で、認証モジュール40は、もはや認証ベース番号N_Tおよびトランザクション認証番号TANを生成するのではなく、単純にハッシュとステップS10で暗号化解除されたPIN_Uとを比較する。暗号文から導出されたハッシュは、サーバ4で生成されたハッシュと比較され、個人識別コードPIN_Uは、データベース41に格納された個人識別コードと比較される。暗号ハッシュ関数がS6で使用される場合に、これらの値は、比較の前にまずサーバ側で暗号的にハッシュ化される必要もある。それ以外のすべてが、同一のままである。したがって、それぞれ暗号文または暗号ハッシュが、上で説明したトランザクション認証番号TANの代替データ要素として生成され、交換され、検証される。
【0133】
サーバ4が、ユーザに対してサーバ4を認証もしなければならない場合に、ステップS41からS43の計算の代わりに、サーバは、暗号文から暗号化解除したナンスN_Taを単純にユーザに表示する。ステップS44〜S46の比較は、同一のままであり、計算は不要であるが、ナンスN_Taが単純にディスプレイ22に表示される。
【0134】
この実施形態に対する追加として、個人識別コードPIN_Uを変更するプロトコルをも実施することができる。新しい個人識別コードPIN_Uは、単純に、S6の暗号文へのもう1つの入力である。
【0135】
セキュア・セッション確立プロトコル標準規格が、そのプロトコル・フィールドの固定されたフィールド長を指定しないという事実にもかかわらず、一部のクライアント・アプリケーション実施態様が、割り振られたメモリを、たとえば「CertificateVerify」メッセージ用に厳密に制限する場合がある。その場合に、楕円曲線暗号など、空間を最適化する公開鍵暗号に焦点を合わせる必要がある。
【0136】
個人識別コードPIN_Uがユーザによって計算される、この実施形態に対する副実施形態もある。このために、ステップS6で、個人識別コードPIN_Uが省略される。ナンスN_Ttが、ステップS31について説明したようにユーザに表示され、トランザクション認証番号TANが、ステップS32について説明したように計算される。上で説明した、認証ベース番号N_Tおよび個人識別コードPIN_Uからトランザクション認証番号TANを生成する他の変形形態を、認証ベース番号N_Tに同様に適用することができる。
【0137】
短い(おそらくは使い捨ての)秘密の鍵を用いる実施形態
スクラッチ・リストまたはインデックス付きスクラッチ・リスト(たとえば、「iTAN」、「インデックス付きスクラッチ・リスト」、「アクセス・カード」)などのコード(または鍵)テーブルが、金融機関によって広く使用されているが、これらは、中間者攻撃に脆弱である。上の「秘密の鍵を用いないがクライアント側でナンスを用いる実施形態」を拡張して、あるレベルの「ツー・ファクタ」認証を達成することができる。
【0138】
ステップS6a(図4、5、6、および7ではステップS6として表される) あるアクセス・カードがたとえば100個のエントリすなわち、4〜6個の数字文字の通常は短い「鍵」(K_SSU)を有する場合に、ステップS4で生成されるデータ・セット(以前のハンドシェーク・メッセージのハッシュ)が、そのアクセス・カードの鍵テーブルに対するルックアップ・インデックスとして働けるようになるまで圧縮される。
【0139】
S6b(図4、5、6、および7ではステップS6として表される)では、圧縮された値(通常は2文字の長さ)が、インデックスとして表示される(たとえば、認証モジュール2または認証トークン・デバイス20によって)。ルックアップ・インデックスをクライアント・アプリケーションに通信する代替の形があり、たとえば、「隠しチャネル」としての上で述べた「DistinguishedName certificate_authorities」リストは、それぞれ認証モジュール2または認証トークン・デバイス20にステップS6bで表示すべきインデックスを知らせるもう1つの手法を表すことができる。
【0140】
ステップS6c(図4、5、6、および7ではステップS6として表される)では、前にステップS6で入力された値に加えて、セッションによって導出されたルックアップ・インデックスによってルックアップされる鍵K_SSUも入力される。ナンスN_Ttの高い度合のランダムさに起因して、鍵K_SSUを複数回使用することができる。クライアント・アプリケーションが、セキュア・セッション・プロトコル確立メッセージ(具体的にはCertificateVerifyメッセージ)内で通常のメッセージより長い暗号文をトランスポートすることを許容しない場合には、「トランザクション認証番号(TAN)なしの実施形態」に基づくもう1つの実施形態があり、上記は、次のステップによって拡張される。
【0141】
ステップS6aは、上で説明したままである。ナンスN_Ttのランダムさが利用可能ではないので、鍵K_SSUは1回しか使用することができない。ステップS6b’(ステップS6bを置換する)では、サーバ4が、これまでに使用されたすべてのルックアップを記録する。衝突がある場合には、再ハンドシェークがサーバ4によってトリガされる。これは、未使用のインデックスに達するまで繰り返される。「DistinguishedName certificate_authorities」手法は、この場合により効率的になる可能性がある。あるレベルの使用の後に、新しいアクセス・カードが、帯域外で配布される。
【0142】
ステップS6c’(ステップS6cを置換する)で、暗号ハッシュが、ナンスなしで秘密の鍵K_Tの代わりに生成され、鍵K_SSUが使用される。次に、やはり、後続ステップは、ステップS15まで残る。ステップS15で、鍵K_SSUが短いので、暗号ハッシュ関数は、有効な暗号ハッシュN_SSU=CH_{K_SSU}(hash,PIN_U)を個人識別コードPIN_Uおよび鍵K_SSUの1つの対ではなく、個人識別コードPIN_Uおよび鍵K_SSUの多数の対(個人識別コードPIN_Uと鍵K_SSUとの両方の組み合わされた「鍵空間」のサイズまで)によって得ることができるようになっていることが重要である。これによって、攻撃者は、推測攻撃で正しい個人識別コードPIN_Uを見つけたかどうかを知るのではなく、推測を妥当性検査するために必ずサーバ4に暗号ハッシュN_SSUを提示しなければならない。また、このハッシュは、通常は40バイト長なので、推測辞書は、この組み合わされた鍵よりはるかに長くする必要があり、セッションを認証にバインドすることに加えて、ここで、ハッシュは「塩」として働く。この鍵空間が十分なエントロピを有し、推測攻撃が通常のサーバ側ログイン・タイムアウトより長い時間を要するようになっている場合に、これは、ローエンド解決策として働くことができる。
【0143】
個人識別コードPIN_Uに対するキー・ロギング攻撃(key logging attack)を防ぐために、個人識別コードPIN_Uおよび鍵K_SSUを端末に別々に入力するのではなく、その組合せを入力することができる。
【0144】
同様に、鍵K_SSUを、トランザクション認証番号TANに基づく上で説明した主実施形態および他の実施形態と共に使用することもできる。
【図面の簡単な説明】
【0145】
【図1】ユーザ認証モジュールを備え、認証モジュールを有する通信端末に遠隔通信ネットワークを介して接続された、コンピュータ化されたサーバの例示的構成を概略的に示すブロック図である。
【図2】認証モジュールの例示的構成を概略的に示すブロック図である。
【図3】認証トークン・デバイスとしての認証モジュールの例示的実施を概略的に示すブロック図である。
【図4】遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザを認証する、本発明の実施形態に従って実行されるステップのシーケンスの例を示す流れ図である(「通信端末で入力されるPIN_Uおよび端末で作成されるTAN」)。
【図5】ユーザを認証する、本発明のもう1つの実施形態に従って実行されるステップのシーケンスの例を示す流れ図である(「デバイスで入力されるPIN_Uおよびデバイスで作成されるTAN」)。
【図6】ユーザを認証する、本発明のもう1つの実施形態に従って実行されるステップのシーケンスの例を示す流れ図である(「ユーザによって心の中で作成されるTAN」)。
【図7】ユーザを認証する、本発明のもう1つの実施形態に従って実行されるステップのシーケンスの例を示す流れ図である(「ソフトトークン」)。
【図8】通信端末を使用するユーザによって遠隔通信ネットワークを介してアクセスされるサーバを認証する、本発明の実施形態に従って実行されるステップの追加のシーケンスの例を示す流れ図である(「デバイス上のサーバ認証コード」)。
【図9】サーバを認証する、本発明のもう1つの実施形態に従って実行されるステップの追加のシーケンスの例を示す流れ図である(「ソフト・トークン・デバイスによるサーバ認証コード」)。
【図10】ユーザを認証する、本発明のもう1つの実施形態に従って実行されるステップのシーケンスの例を示す流れ図である(「標準デバイス・インターフェースに基づくチャレンジ・レスポンス」)。

【特許請求の範囲】
【請求項1】
遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザを認証する方法であって、
個人識別コードを前記ユーザから受け取ることと、
前記通信端末と前記サーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージからデータ・セットを生成することと、
前記個人識別コードを使用して、前記データ・セットに基づいてトランザクション認証番号を生成することと、
前記トランザクション認証番号を前記通信端末から前記サーバに送信することと、
前記サーバ内で、前記通信端末と交換された前記セキュア・セッション確立プロトコル・メッセージに基づいて前記トランザクション認証番号を検証することと
を含む方法。
【請求項2】
前記方法が、さらに、前記通信端末に関連する認証モジュール内で前記データ・セットから認証ベース番号を生成することを含み、前記トランザクション認証番号が、前記個人識別コードを使用して前記認証ベース番号から生成され、前記方法が、さらに、前記サーバ内で、交換された前記セキュア・セッション確立プロトコル・メッセージから認証ベース番号を生成することを含み、前記トランザクション認証番号が、前記サーバ内で生成された前記認証ベース番号を使用して前記サーバ内で検証される、請求項1に記載の方法。
【請求項3】
前記方法が、さらに、前記認証ベース番号および前記個人識別コードを前記通信端末に接続されないチャレンジ/レスポンス・トークン・デバイスに入力することを含み、前記トランザクション認証番号が、前記認証ベース番号および前記個人識別コードに基づいてトークン・レスポンス値として前記チャレンジ/レスポンス・トークン・デバイス内で生成され、前記方法が、さらに、前記トランザクション認証番号を前記サーバに送信する前に、前記トランザクション認証番号を前記通信端末に入力することを含む、請求項2に記載の方法。
【請求項4】
前記データ・セットから前記認証ベース番号を生成することが、乱数を生成することと、選択された桁を前記データ・セットから選択することであって、前記桁が前記乱数の桁によって決定される、選択することと、前記選択された桁および前記乱数の前記桁から前記認証ベース番号を合成することとを含む、請求項2または3のいずれか1項に記載の方法。
【請求項5】
前記トランザクション認証番号が、前記通信端末に関連する認証モジュール内で、前記個人識別コードからおよび前記通信端末と前記サーバとの間で交換された前記セキュア・セッション確立プロトコル・メッセージから、鍵として前記サーバと共有される秘密を使用して、鍵付き暗号ダイジェスト値として生成され、前記方法が、さらに、前記サーバ内で、前記サーバに格納された個人識別コードを使用して鍵付き暗号ダイジェスト値を生成することを含み、前記トランザクション認証番号が、前記サーバ内で、前記通信端末から受信された前記鍵付き暗号ダイジェスト値と前記サーバ内で生成された前記鍵付き暗号ダイジェスト値との比較に基づいて検証される、請求項1に記載の方法。
【請求項6】
前記鍵として、前記個人識別コードおよび前記認証モジュールに関連する秘密トークン鍵のうちの1つを使用する、請求項5に記載の方法。
【請求項7】
前記方法が、さらに、前記データ・セットからルックアップ・インデックスを生成することを含み、前記方法が、さらに、前記ルックアップ・インデックスを使用して、選択されたコードをコード・テーブル内で判定することを含み、前記選択されたコードが、前記鍵として使用され、前記サーバが、前記サーバに格納されたコード・テーブルからの選択されたコードを前記鍵として使用して、前記鍵付き暗号ダイジェスト値を生成する、請求項5に記載の方法。
【請求項8】
前記サーバが、前記通信端末によって使用される選択されたコードを追跡し、選択されたコードが以前に前記通信端末によって使用されたと前記サーバが判定する場合に、前記サーバが、前記通信端末とのセッション確立を再開始する、請求項7に記載の方法。
【請求項9】
前記トランザクション認証番号が、前記通信端末に関連する認証モジュール内で、公開鍵を使用して前記データ・セット、前記個人識別コード、および少なくとも1つのナンスを暗号化することによって、暗号文として生成され、前記方法が、さらに、前記サーバ内で、秘密鍵を使用して前記暗号文を暗号化解除することによって、受信されたデータ・セットおよび受信された個人識別コードを判定することを含み、前記トランザクション認証コードが、前記サーバ内で、交換された前記セキュア・セッション確立プロトコル・メッセージから前記サーバ内で生成されたデータ・セットとの前記受信されたデータ・セットの比較および前記サーバに格納された個人識別コードとの前記受信された個人識別コードの比較に基づいて検証される、請求項1に記載の方法。
【請求項10】
前記方法が、さらに、前記データ・セットからルックアップ・インデックスを生成することと、前記ルックアップ・インデックスを使用して、選択されたコードをコード・テーブル内で判定することとを含み、前記選択されたコードが、前記暗号文を生成するのに使用され、前記サーバが、前記秘密鍵を使用して、受信された選択されたコードを前記暗号文から判定し、前記トランザクション認証番号を検証することが、前記受信された選択されたコードを前記サーバに格納されたコード・テーブルから前記サーバによって判定された選択されたコードと比較することを含む、請求項9に記載の方法。
【請求項11】
前記サーバが、前記通信端末によって使用される選択されたコードを追跡し、選択されたコードが前記通信端末によって以前に使用されたと前記サーバが判定する場合に、前記サーバが、前記通信端末とのセッション確立を再開始する、請求項10に記載の方法。
【請求項12】
前記トランザクション認証番号およびユーザ識別子が、前記通信端末から前記サーバに送信され、前記トランザクション認証番号が、前記ユーザ識別子に割り当てられた前記個人識別コードを使用して前記サーバ内で検証される、請求項1に記載の方法。
【請求項13】
前記個人識別コードが、バイオメトリック識別子と一緒に前記ユーザから受け取られ、前記トランザクション認証番号が、前記サーバに格納されたバイオメトリック識別子を使用して前記サーバ内で検証される、請求項12に記載の方法。
【請求項14】
前記方法が、さらに、前記通信端末に関連する認証モジュール内で、前記認証モジュールに関連する鍵対の秘密鍵を使用して前記データ・セットからディジタル署名を生成することと、前記ディジタル署名を前記通信端末から前記サーバに送信することと、前記サーバ内で前記鍵対の公開鍵を使用して前記ディジタル署名を検証することとを含む、請求項1に記載の方法。
【請求項15】
前記認証ベース番号が、前記通信端末に関連する認証モジュール内で、前記認証モジュールに関連する秘密トークン鍵を使用して前記データ・セットから生成され、前記認証ベース番号が、前記サーバ内で、前記秘密トークン鍵を使用して、交換された前記セキュア・セッション確立プロトコル・メッセージから生成される、請求項2に記載の方法。
【請求項16】
前記データ・セットが、前記認証モジュールを前記通信端末に接続するデバイス・インターフェースを介して前記通信端末から前記認証モジュールに転送され、前記秘密トークンが、前記認証モジュールに格納される、請求項15に記載の方法。
【請求項17】
トークン識別子が、前記通信端末から前記サーバへ前記トランザクション認証番号と一緒に送信され、前記秘密トークン鍵が、前記トークン識別子に基づいて前記サーバ内で判定される、請求項16に記載の方法。
【請求項18】
マスタ鍵が、前記サーバに格納され、前記秘密トークン鍵が、前記サーバ内で、前記トークン識別子を暗号化するために前記マスタ鍵を使用して前記トークン識別子から生成される、請求項17に記載の方法。
【請求項19】
前記ユーザが、前記認証モジュールの複数の可能な機関スコープのうちの1つを選択し、前記ユーザによって選択された前記機関スコープが、前記認証モジュールに、前記認証ベース番号を生成するための複数の秘密トークン鍵の組のうちの1つの機関固有秘密トークン鍵を使用させ、前記サーバが、特定の機関に関連し、前記認証ベース番号を生成するのに前記機関固有秘密トークン鍵を使用し、前記サーバが、前記トランザクション認証番号を検証するのに機関固有個人識別コードを使用する、請求項15に記載の方法。
【請求項20】
前記認証ベース番号が、前記通信端末に関連する認証モジュールによって表示され、前記個人識別コードおよび前記認証モジュールによって表示された前記認証ベース番号によって前記ユーザによって生成された前記トランザクション認証番号が、前記通信端末内で前記ユーザから受け取られる、請求項2に記載の方法。
【請求項21】
前記サーバ内での前記トランザクション認証番号の成功の検証の後に、サーバ認証コードが、前記サーバ内で、前記データ・セットに公開関数を適用し、暗号化に秘密トークン鍵を使用して、前記データ・セットから生成され、前記サーバ認証コードが、前記サーバから前記通信端末に送信され、前記サーバから受信された前記サーバ認証コードが、前記通信端末によって表示され、サーバ認証コードが、前記通信端末に関連する認証モジュール内で、前記データ・セットに前記公開関数を適用し、暗号化に前記秘密トークン鍵を使用して、前記データ・セットから生成され、前記認証モジュール内で生成された前記サーバ認証コードが、前記通信端末によって表示される前記サーバ認証コードを用いる視覚的検証のために前記認証モジュールによって表示される、請求項1に記載の方法。
【請求項22】
通信端末が、
個人識別コードをユーザから受け取り、
前記通信端末とサーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージからデータ・セットを生成し、
前記データ・セットに基づいて、前記個人識別コードを使用してトランザクション認証番号を生成し、
前記トランザクション認証番号を検証のために前記サーバに送信する
ように前記通信端末の1つまたは複数のプロセッサを制御するコンピュータ・プログラム・コード手段を含むコンピュータ・プログラム製品。
【請求項23】
前記通信端末が、前記データ・セットから認証ベース番号を生成し、前記個人識別コードを使用して前記認証ベース番号から前記トランザクション認証番号を生成するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項22に記載のコンピュータ・プログラム製品。
【請求項24】
前記通信端末が、乱数を生成し、前記乱数の桁によって決定される選択された桁を前記データ・セットから選択し、前記選択された桁および前記乱数の前記桁から前記認証ベース番号を合成するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項23に記載のコンピュータ・プログラム製品。
【請求項25】
前記通信端末が、鍵として前記サーバと共有される秘密を使用して、前記個人識別コードからおよび前記通信端末と前記サーバとの間で交換された前記セキュア・セッション確立プロトコル・メッセージから、鍵付き暗号ダイジェスト値として前記トランザクション認証番号を生成するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項22に記載のコンピュータ・プログラム製品。
【請求項26】
前記通信端末が、前記鍵として、前記個人識別コードおよび秘密トークン鍵のうちの1つを使用するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項25に記載のコンピュータ・プログラム製品。
【請求項27】
前記通信端末が、前記データ・セットからルックアップ・インデックスを生成することを実行し、前記ルックアップ・インデックスを使用して、選択されたコードをコード・テーブル内で判定し、前記選択されたコードを前記鍵として使用するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項25に記載のコンピュータ・プログラム製品。
【請求項28】
前記通信端末が、公開鍵を使用して前記データ・セット、前記個人識別コード、および少なくとも1つのナンスを暗号化することによって、前記トランザクション認証番号を暗号文として生成するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項22に記載のコンピュータ・プログラム製品。
【請求項29】
前記通信端末が、前記データ・セットからルックアップ・インデックスを生成することを実行し、前記ルックアップ・インデックスを使用して、選択されたコードをコード・テーブル内で判定し、前記暗号文を生成するのに前記選択されたコードを使用するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項28に記載のコンピュータ・プログラム製品。
【請求項30】
前記通信端末が、前記通信端末のセンサを介してバイオメトリック識別子を前記ユーザから受け取り、前記通信端末が、前記個人識別コードとして前記バイオメトリック識別子を使用するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項22に記載のコンピュータ・プログラム製品。
【請求項31】
前記通信端末が、複数の可能な機関スコープのうちの1つを選択する指示を受け取り、前記通信端末が、前記認証ベース番号を生成するための複数の秘密トークン鍵の組のうちの1つの機関固有秘密トークン鍵を使用するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項23に記載のコンピュータ・プログラム製品。
【請求項32】
前記通信端末が、前記サーバからサーバ認証コードを受信し、前記通信端末が、前記データ・セットに公開関数を適用し、暗号化に秘密トークン鍵を使用して、前記データ・セットからサーバ認証コードを生成し、前記通信端末が、前記通信端末によって生成された前記サーバ認証コードに基づいて前記サーバから受信された前記サーバ認証コードを検証するように、前記プロセッサを制御するコンピュータ・プログラム・コード手段をさらに含む、請求項22に記載のコンピュータ・プログラム製品。
【請求項33】
遠隔通信ネットワークを介して通信端末とデータを構成するように構成されたコンピュータ化されたサーバであって、
前記通信端末のユーザから受け取られた個人識別コードと、前記通信端末と前記サーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージから生成されたデータ・セットとに基づくトランザクション認証番号を前記通信端末から受信し、
前記通信端末と交換された前記セキュア・セッション確立プロトコル・メッセージに基づいて、受信された前記トランザクション認証番号を検証する
ように構成されたユーザ認証モジュールを含む、サーバ。
【請求項34】
前記ユーザ認証モジュールが、交換された前記セキュア・セッション確立プロトコル・メッセージから認証ベース番号を生成し、生成された前記認証ベース番号および前記個人識別コードを使用して、受信された前記トランザクション認証番号を検証するように構成される、請求項33に記載のサーバ。
【請求項35】
前記ユーザ認証モジュールが、乱数を生成することと、選択された桁を前記データ・セットから選択することであって、前記桁が、前記乱数の桁によって決定される、選択することと、前記選択された桁および前記乱数の前記桁から前記認証ベース番号を合成することとによって、前記認証ベース番号を生成するように構成される、請求項34に記載のサーバ。
【請求項36】
前記ユーザ認証モジュールが、前記個人識別コードからおよび前記通信端末と前記サーバとの間で交換された前記セキュア・セッション確立プロトコル・メッセージから、前記サーバに格納された個人識別コードを使用し、前記通信端末と共有される秘密を鍵として使用して、鍵付き暗号ダイジェスト値としてトランザクション認証番号を生成し、受信された前記トランザクション認証番号と前記サーバ内で生成された前記鍵付き暗号ダイジェスト値との比較に基づいて、受信された前記トランザクション認証番号を検証するように構成される、請求項33に記載のサーバ。
【請求項37】
前記ユーザ認証モジュールが、前記鍵付き暗号ダイジェスト値を生成するために、前記個人識別コードおよびユーザに関連する秘密トークン鍵のうちの1つを前記鍵として使用するように構成される、請求項36に記載のサーバ。
【請求項38】
前記ユーザ認証モジュールが、前記鍵付き暗号ダイジェスト値を生成するために、前記サーバに格納されたコード・テーブルからの選択されたコードを前記鍵として使用するように構成される、請求項36に記載のサーバ。
【請求項39】
前記ユーザ認証モジュールが、公開鍵を使用して前記データ・セット、前記個人識別コード、および少なくとも1つのナンスを暗号化することによって、暗号文としてトランザクション認証番号を生成し、秘密鍵を使用して、前記通信端末から受信された暗号文を暗号化解除することによって、受信されたデータ・セットおよび受信された個人識別コードを判定し、前記受信されたデータ・セットと交換された前記セキュア・セッション確立プロトコル・メッセージから前記サーバ内で生成されたデータ・セットとの比較、ならびに前記受信された個人識別コードの前記サーバに格納された個人識別コードとの比較に基づいて、受信された前記トランザクション認証番号を検証するように構成される、請求項33に記載のサーバ。
【請求項40】
前記ユーザ認証モジュールが、前記秘密鍵を使用して、前記通信端末から受信された前記暗号文から、受信された選択されたコードを判定し、前記トランザクション認証番号を検証する時に、前記受信された選択されたコードを、前記サーバに格納されたコード・テーブルから判定された選択されたコードと比較するように構成される、請求項39に記載のサーバ。
【請求項41】
前記ユーザ認証モジュールが、前記通信端末に関して使用される選択されたコードを追跡し、選択されたコードが前記通信端末によって以前に使用された場合に、前記通信端末とのセッション確立を再開始するように構成される、請求項38または40のいずれか1項に記載のサーバ。
【請求項42】
前記ユーザ認証モジュールが、前記ユーザのバイオメトリック識別子を含む個人識別コードを受け取り、前記サーバに格納されたバイオメトリック識別子を使用して前記トランザクション認証番号を検証するように構成される、請求項33に記載のサーバ。
【請求項43】
前記ユーザ認証モジュールが、秘密トークン鍵を使用して、交換された前記セキュア・セッション確立プロトコル・メッセージから前記認証ベース番号を生成するように構成される、請求項34に記載のサーバ。
【請求項44】
前記ユーザ認証モジュールが、前記通信端末から前記トランザクション認証番号と共にトークン識別子を受信し、前記トークン識別子に基づいて前記秘密トークン鍵を判定するように構成される、請求項43に記載のサーバ。
【請求項45】
前記サーバが、さらに、格納されたマスタ鍵を含み、前記ユーザ認証モジュールが、前記トークン識別子を暗号化するための前記マスタ鍵を使用して前記トークン識別子から前記秘密トークン鍵を生成するように構成される、請求項43に記載のサーバ。
【請求項46】
前記ユーザ認証モジュールが、前記トランザクション認証番号の成功の検証の後に、前記データ・セットに公開関数を適用し、暗号化に前記秘密トークン鍵を使用して、前記データ・セットからサーバ認証コードを生成し、前記サーバ認証コードを前記通信端末に送信するように構成される、請求項33に記載のサーバ。
【請求項47】
遠隔通信ネットワークを介してサーバにアクセスするのに通信端末を使用するユーザによって個人識別コードを変更する方法であって、
古い個人識別コードを前記ユーザから受け取ることと、
新しい個人識別コードを前記ユーザから受け取ることと、
前記通信端末と前記サーバとの間で交換されたセキュア・セッション確立プロトコル・メッセージからデータ・セットを生成することと、
前記通信端末に関連する認証モジュール内で、前記認証モジュールに関連する秘密トークン鍵を使用して、前記データ・セットから認証ベース番号を生成することと、
前記認証ベース番号、前記古い個人識別コード、および前記新しい個人識別コードから識別変更コードを生成することと、
前記識別変更コードを前記通信端末から前記サーバに送信することと、
前記サーバ内で、前記秘密トークン鍵を使用して、交換された前記セキュア・セッション確立プロトコル・メッセージから認証ベース番号を生成することと、
前記サーバ内で、前記古い個人識別コードおよび前記サーバ内で生成された前記認証ベース番号を使用して、前記識別変更コードから前記新しい個人識別コードを導出することと
を含む方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公表番号】特表2009−510955(P2009−510955A)
【公表日】平成21年3月12日(2009.3.12)
【国際特許分類】
【出願番号】特願2008−533845(P2008−533845)
【出願日】平成18年10月5日(2006.10.5)
【国際出願番号】PCT/CH2006/000544
【国際公開番号】WO2007/038896
【国際公開日】平成19年4月12日(2007.4.12)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.JAVA
【出願人】(508104237)プリヴァスヒア アーゲー (1)
【Fターム(参考)】