(57)【特許請求の範囲】
【請求項１】
ソフトウェアトークンを個人化する方法であって、
認証サーバーにおいて、第一の個人化シードを生成する工程と、
前記認証サーバーにおいて、前記第一の個人化シードを有する第一の個人化開始メッセージを生成する工程と、
特定のユーザーに関連付けられた第一の認証トークンにおいて、前記第一の個人化開始メッセージを受け取る工程と、
前記第一の認証トークンにおいて、前記受け取った第一の個人化開始メッセージから前記第一の個人化シードを読み出す工程と、
前記第一の認証トークンにおいて、前記読み出された第一の個人化シードから第二の個人化シードを生成する工程と、
前記第一の認証トークンにおいて、前記生成された第二の個人化シードを有する第二の個人化メッセージを生成する工程と、
前記第一の認証トークンとは異なる第二のソフトウェア認証トークンにおいて、前記第二の個人化メッセージを受け取る工程と、
前記第二のソフトウェア認証トークンにおいて、前記受け取った第二の個人化メッセージから第二の初期設定シードを読み出す工程と、
前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程と、
前記第二のソフトウェア認証トークンにおいて、前記導出された認証情報生成鍵の値でパラメータ化された暗号アルゴリズムを用いて、確認認証情報を生成する工程と、
前記認証サーバーにおいて、前記確認認証情報を受け取る工程と、
前記認証サーバーにおいて、前記認証情報生成鍵のサーバーコピーを決定する工程と、
前記認証サーバーにおいて、前記認証情報生成鍵のサーバーコピーを用いて、前記受け取った確認認証情報の妥当性確認を行う工程と、を有するものである
ソフトウェアトークンを個人化する方法。
【請求項２】
請求項１記載の方法において、前記第一の認証トークンは、前記特定のユーザーと関連付けられた秘密トークン鍵を有し、前記秘密トークン鍵は、前記第一の認証トークンにおいて、前記受け取った第一の個人化開始メッセージから前記第一の個人化シードを読み出す工程で使用されるか、若しくは、前記秘密トークン鍵は、前記第一の認証トークンにおいて、前記読み出された第一の個人化シードから前記第二の個人化シードを生成する工程で使用されるものである方法。
【請求項３】
請求項１記載の方法において、更に、
前記認証サーバーにおいて前記確認認証情報の妥当性確認が成功した場合、前記認証サーバーにおいて、前記認証情報生成鍵のサーバーコピーを前記特定のユーザーに関連付ける工程と、前記認証サーバーにおいて、前記特定のユーザーに関連付けられた前記認証情報生成鍵の前記決定されたサーバーコピーを不揮発性メモリに格納する工程とを有するものである方法。
【請求項４】
請求項１記載の方法において、更に、
前記導出された認証情報生成鍵の値、または前記第二の認証トークンによる前記導出された認証情報生成鍵の値の再構築を可能にするための再構築データを、第二の認証トークンにおいて不揮発性メモリに格納する工程を有するものである方法。
【請求項５】
請求項１記載の方法において、更に、
前記第二のソフトウェア認証トークンにおいて、前記導出された認証情報生成鍵の値を読み出す工程と、前記第二のソフトウェア認証トークンにおいて、動的変数と前記読み出された認証情報生成鍵の値とを組み合わせることにより、動的認証情報を生成する工程と、前記認証サーバーにおいて、前記動的認証情報を受け取る工程と、前記認証サーバーにおいて、前記認証サーバーにおいて、前記認証情報生成鍵の前記サーバーコピーを読み出す工程と、前記読み出された認証情報生成鍵のサーバーコピーを用いて、前記受け取った動的認証情報を検証する工程とを有するものである方法。
【請求項６】
請求項５記載の方法において、更に、
前記導出された認証情報生成鍵の値を前記第二の認証トークンにおいて不揮発性メモリに格納する工程を有し、前記第二のソフトウェア認証トークンにおいて、前記導出された認証情報生成鍵の値を読み出す工程は、前記第二のソフトウェア認証トークンが不揮発性メモリから前記導出された認証情報生成鍵の値を読み出す工程を有するものである方法。
【請求項７】
請求項５記載の方法において、更に、
前記第二の認証トークンが前記導出された認証情報生成鍵の値の再構築を可能にするため、再構築データを前記第二の認証トークンにおいて不揮発性メモリに格納する工程を有し、前記第二のソフトウェア認証トークンにおいて、前記導出された認証情報生成鍵の値を読み出す工程は、前記第二のソフトウェア認証トークンが、不揮発性メモリから読み出された再構築データから前記導出された認証情報生成鍵の値を再構築する工程を有するものである方法。
【請求項８】
請求項１記載の方法において、更に、
前記認証サーバーにおいて、少なくとも前記第一の初期設定シードに関して電子署名を生成し、前記電子署名を前記第一の個人化開始メッセージに含める工程と、前記第一の認証トークンにおいて前記電子署名を読み出す工程と、前記第一の認証トークンにおいて前記読み出された電子署名を検証する工程とを有するものである方法。
【請求項９】
請求項８記載の方法において、更に、
前記電子署名の検証が不成功の場合、前記第一の個人化開始メッセージを拒否する工程を有するものである方法。
【請求項１０】
請求項８記載の方法において、前記電子署名を生成する工程は、前記認証サーバーと前記第一の認証トークンとが共有する暗号メッセージ認証鍵でパラメータ化された暗号電子署名生成アルゴリズムを用いることにより行われ、前記読み出された電子署名を検証する工程は、前記暗号メッセージ認証鍵でパラメータ化された暗号電子署名検証アルゴリズムを用いることにより行われるものである方法。
【請求項１１】
請求項１記載の方法において、更に、
前記認証サーバーにおいて、前記第一の認証トークンに関連付けられた固有の第一の暗号化鍵を用いて前記第一の個人化シードを暗号化し、前記暗号化した第一の個人化シードを前記第一の個人化開始メッセージに含ませる工程と、前記第一の認証トークンにおいて、前記暗号化した第一の個人化シードを前記第一の個人化開始メッセージから読み出す工程と、前記読み出された第一の個人化シードを復号する工程を有するものである方法。
【請求項１２】
請求項１１記載の方法において、前記第一の暗号化鍵は前記認証サーバーと前記第一の認証トークンとの間で共有され、前記第一の暗号化鍵を用いて前記第一の個人化シードを暗号化する工程は、前記第一の暗号化鍵でパラメータ化された対称暗号化アルゴリズムを用いて、前記第一の個人化シードを暗号化することを含み、前記読み出された暗号化第一の個人化シードを復号する工程は、前記第一の暗号化鍵でパラメータ化された対称復号アルゴリズムを用いて、前記読み出された暗号化第一の個人化シードを復号する工程を有するものである方法。
【請求項１３】
請求項１１記載の方法において、更に、
前記認証サーバーにおいて初期値を生成する工程を有し、前記認証サーバーにおいて前記認証情報生成鍵のサーバーコピーを決定する工程は、前記認証サーバーにおいて、鍵導出法を用いて前記初期値から前記認証情報生成鍵のサーバーコピー値を導出する工程を有し、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記認証情報生成鍵の値を導出する工程は、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記初期値を読み出す工程と、前記第二のソフトウェア認証トークンにおいて、前記鍵導出法を用いて、前記読み出された初期値から前記認証情報生成鍵を導出する工程を有するものである方法。
【請求項１４】
請求項１３記載の方法において、前記初期値から前記認証情報生成鍵を導出する前記鍵導出法は、前記認証情報生成鍵の値を前記初期値に設定する工程を有するものである方法。
【請求項１５】
請求項１３記載の方法において、前記認証サーバーにおいて前記第一の個人化シードを生成する工程は、前記認証サーバーにおいて、第二の暗号化鍵を用いて前記初期値を暗号化し、前記第一の個人化シードの値を前記暗号化した初期値に設定する工程を有し、前記第二のソフトウェア認証トークンにおいて前記読み出された第二の個人化シードから前記認証情報生成鍵の値を導出する工程は、前記第二の個人化シードから前記第一の個人化シードを読み出し、前記第二の暗号化鍵と一致する第二の復号鍵を用いて前記読み出された第一の個人化シードを復号し、前記初期値を取得する工程を有するものである方法。
【請求項１６】
請求項１５記載の方法において、前記第二の暗号化鍵は前記認証サーバーと前記第二のソフトウェ認証トークンとの間で共有され、前記第二の暗号化鍵を用いて前記初期値を暗号化する工程は、前記第二の暗号化鍵でパラメータ化された対称暗号化アルゴリズムを用いて前記初期値を暗号化する工程を有し、前記読み出された第一の個人化シードを復号する工程は、前記第二の暗号化鍵でパラメータ化された対称復号アルゴリズムを用いて前記読み出された第一の個人化シードを復号する工程を有するものである方法。
【請求項１７】
請求項１３記載の方法において、前記認証サーバーで前記第一の個人化シードを生成する工程は、前記第一の個人化シードを前記初期値に設定する工程を有するものである方法。
【請求項１８】
請求項１３記載の方法において、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記認証情報生成鍵の値を導出する工程は、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記第一の個人化シードを読み出す工程と、前記第二のソフトウェア認証トークンにおいて、前記読み出された第一の個人化シードから前記認証情報生成鍵を導出する工程を有するものである方法。
【請求項１９】
請求項１８記載の方法において、前記第一の認証トークンにおいて、前記読み出された第一の個人化シードから前記第二の個人化シードを生成する工程は、前記第二の個人化シード値を前記読み出された第一の個人化シードの値に設定する工程を有し、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記認証情報生成鍵の値を導出する工程は、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードの値を得ることにより、前記読み出された第二の個人化シードから前記第一の個人化シードを読み出し、前記読み出された第一の個人化シードから前記認証情報生成鍵を導出する工程を有するものである方法。
【請求項２０】
請求項１９記載の方法において、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記認証情報生成鍵の値を導出する工程は、前記認証情報生成鍵の値を前記読み出された第二の個人化シードの値に設定する工程を有するものである方法。
【請求項２１】
請求項１８記載の方法において、前記第一の認証トークンにおいて、前記読み出された第一の個人化シードから前記第二の個人化シードを生成する工程は、前記読み出された第一の個人化シードの第一の可逆変換関数として前記第二の個人化シードの値を計算する工程を有し、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記認証情報生成鍵の値を導出する工程は、前記第二のソフトウェア認証トークンにおいて前記読み出された第二の個人化シードの値の第二の変換関数を適用することにより、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記第一の個人化シードを読み出す工程であって、前記第二の変換関数は、前記第一の可逆変換関数の逆関数である、前記前記第一の個人化シードを読み出す工程と、前記第二のソフトウェア認証トークンにおいて、前記読み出された第一の個人化シードから前記認証情報生成鍵を導出する工程とを有するものである方法。
【請求項２２】
請求項２１記載の方法において、前記第一の可逆変換関数は、第一の暗号変換鍵でパラメータ化された暗号暗号化アルゴリズム（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｅｎｃｒｙｐｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）を有し、前記第二の変換関数は、前記暗号暗号化アルゴリズムに一致する第二の暗号変換鍵でパラメータ化されている暗号復号アルゴリズムを有するものであり、前記第二の暗号変換鍵は前記第一の暗号変換鍵に一致するものである方法。
【請求項２３】
請求項２１記載の方法において、前記第二のソフトウェア認証トークンにおいて、前記読み出された第一の個人化シードから前記認証情報生成鍵を導出する工程は、前記第二のソフトウェア認証トークンにおいて、前記認証情報生成鍵の値を前記読み出された第一の個人化シードに設定する工程を有するものである方法。
【請求項２４】
請求項１記載の方法において、前記読み出された第一の個人化シードから前記第二の個人化シードを生成する工程は、前記第二の個人化シードの値を、前記第一の認証トークンにおいて、第一の変換関数を前記読み出された第一の個人化シードの値に適用した結果として計算する工程を有するものである方法。
【請求項２５】
請求項２４記載の方法において、前記認証サーバーにおいて前記認証情報生成鍵のサーバーコピーを決定する工程は、前記認証サーバーにおいて、前記第二の個人化シードのサーバーコピーの値を、前記認証サーバーにおいて、同一の前記第一の変換関数を前記第一の個人化シードの値に適用した結果として計算する工程と、前記認証情報生成鍵のサーバーコピーを、前記第二の個人化シードのサーバーコピーの値の関数として決定する工程とを有するものである方法。
【請求項２６】
請求項２４記載の方法において、前記第一の変換関数は、前記第二の個人化シードの値が前記第一の個人化シードの値とは異なる値となる関数である方法。
【請求項２７】
請求項２４記載の方法において、前記第一の変換関数は、第一の秘密対称暗号変換鍵でパラメータ化された対称暗号関数を有するものである方法。
【請求項２８】
請求項２７記載の方法において、前記第一の秘密対称暗号変換鍵は、前記認証サーバーと前記第一の認証トークンとの間で共有され、所定の前記第一の認証トークンに特有のものである方法。
【請求項２９】
請求項２７記載の方法において、前記第一の秘密対称暗号変換鍵は、前記第一の認証トークンと前記第二のソフトウェア認証トークンとの間で共有されるものである方法。
【請求項３０】
請求項２４記載の方法において、前記第二のソフトウェア認証トークンにおいて、前記読み出された第二の個人化シードから前記認証情報生成鍵の値を導出する工程は、前記認証情報生成鍵の値を、前記第二のソフトウェア認証トークンにおいて、第二の変換関数を前記読み出された第二の個人化シードの値に適用した結果として計算する工程を有するものである方法。
【請求項３１】
請求項３０記載の方法において、前記認証サーバーにおいて、前記認証情報生成鍵のサーバーコピーを決定する工程は、前記認証サーバーにおいて、前記認証情報生成鍵のサーバーコピーの値を、前記認証サーバーにおいて、同一の前記第二の変換関数を前記第二の個人化シードのサーバーコピーの値に適用した結果として計算する工程を有するものである方法。
【請求項３２】
請求項３１記載の方法において、前記第二の変換関数は、前記認証情報生成鍵の値が前記第二の個人化シードの値と異なる値となる関数である方法。
【請求項３３】
請求項３１記載の方法において、前記第二の変換関数は、第二の秘密対称暗号変換鍵でパラメータ化された対称暗号関数を有するものである方法。
【請求項３４】
請求項３３記載の方法において、前記第二の秘密対称暗号変換鍵は、前記認証サーバーと前記第二のソフトウェア認証トークンとの間で共有されるものである方法。
【請求項３５】
請求項３３記載の方法において、前記第二の秘密対称暗号変換鍵は、前記第一の認証トークンと前記第二のソフトウェア認証トークンとの間で共有されるものである方法。
【請求項３６】
ソフトウェアトークン個人化システムであって、
認証サーバーと、
特定のユーザーに関連付けられた第一の認証トークンと、
前記第一の認証トークンとは異なる第二のソフトウェア認証トークンとを有し、
前記認証サーバーは、第一の個人化シードと、前記第一の個人化シードを有する第一の個人化開始メッセージとを生成するように構成されており、
前記第一の認証トークンは、前記第一の個人化開始メッセージを受け取って前記第一の個人化シードを前記受け取った第一の個人化開始メッセージから読み出し、前記読み出された第一の個人化シードから第二の個人化シードを生成し、前記生成された第二の個人化シードを有する第二の個人化メッセージを生成するように構成されており、
前記第二のソフトウェア認証トークンは、前記第二の個人化メッセージを受け取って前記受け取った第二の個人化メッセージから前記第二の初期設定シードを読み出し、前記読み出された第二の個人化シードから認証情報生成鍵の値を導出し、前記導出された認証情報生成鍵の値でパラメータ化された暗号アルゴリズムを用いて確認認証情報を生成するように構成されており、
前記認証サーバーは、更に、前記確認認証情報を受け取って前記認証情報生成鍵のサーバーコピーを決定し、前記認証情報生成鍵のサーバーコピーを用いて前記受け取った確認認証情報の妥当性確認を行うように構成されており、
前記第二のソフトウェア認証トークンは、更に、動的変数と前記導出された認証情報生成鍵とを暗号的に組み合わせることにより、動的認証情報を生成するように構成されているものである、
ソフトウェアトークン個人化システム。
【請求項３７】
電子個人化装置であって、
デジタルカメラを有する入力インターフェースと、
グラフィックディスプレイを有する出力インターフェースと、
メモリと、
前記入力インターフェース、前記出力インターフェース、および前記メモリに接続されたデータプロセッサと、を有し、
前記入力インターフェースは、第一の個人化開始メッセージで符号化された第一の二次元（２Ｄ）バーコード像を前記デジタルカメラで取り込むことにより、前記第一の個人化開始メッセージを受け取るように構成されており、
前記データプロセッサは、前記取り込まれた第一の二次元（２Ｄ）バーコード像を復号して前記第一の個人化開始メッセージを取得し、前記受け取った第一の個人化開始メッセージから第一の個人化シードを読み出し、前記読み出された第一の個人化シードから第二の個人化シードを生成し、前記生成された第二の個人化シードを有する第二の個人化メッセージを生成し、前記第二の個人化メッセージを用いて第二の二次元（２Ｄ）バーコード像を符号化するように構成されており、
前記出力インターフェースは、前記グラフィックディスプレイに前記第二の二次元（２Ｄ）バーコード像を表示することにより、前記第二の個人化メッセージを出力するように構成されており、
前記メモリは、特定のユーザーに関連付けられた秘密トークン鍵を格納するように構成されており、前記秘密トークン鍵は、前記データプロセッサが前記受け取った第一の個人化開始メッセージから前記第一の個人化シードを読み出すため、若しくは、前記読み出された第一の個人化シードから前記第二の個人化シードを生成するために使用されるものである
電子個人化装置。
【請求項３８】
ソフトウェアトークンを個人化する方法であって、
第一の認証トークンにおいて、第一の動的変数と、前記第一の認証トークンと認証サーバーとの間で共有される第一の認証情報生成鍵とを暗号的に組み合わせることにより、第一の動的認証情報を生成する工程であって、前記第一の認証情報生成鍵は特定のユーザーに関連付けられているものである、前記第一の動的認証情報を生成する工程と、
前記第一の認証トークンとは異なる第二のソフトウェア認証トークンにおいて、前記生成された第一の動的認証情報を受け取る工程と、
前記第二のソフトウェア認証トークンにおいて、前記受け取った第一の動的認証情報から第二の認証情報生成鍵の値を導出する工程と、
前記第二のソフトウェア認証トークンにおいて、前記導出された第二の認証情報生成鍵でパラメータ化された暗号アルゴリズムを用いて、確認認証情報を生成する工程と、
前記認証サーバーにおいて、前記確認認証情報を受け取る工程と、
前記認証サーバーにおいて、前記第二の認証情報生成鍵のサーバーコピーを決定する工程と、
前記認証サーバーにおいて、前記第二の認証情報生成鍵のサーバーコピーを用いて、前記受け取った確認認証情報の妥当性確認を行う工程と、
前記認証サーバーにおいて、前記確認認証情報の妥当性確認が成功した場合に、前記認証サーバーにおいて、前記決定された第二の認証情報生成鍵のサーバーコピーを前記特定のユーザーに関連付け、前記特定のユーザーに関連付けられた、前記決定された前記第二の認証情報生成鍵のサーバーコピーを不揮発性メモリに格納する工程とを有するものである
ソフトウェアトークンを個人化する方法。
【請求項３９】
請求項３８記載の方法において、前記認証サーバーにおいて、前記第二の認証情報生成鍵のサーバーコピーを用いて、前記受け取った確認認証情報の妥当性確認を行う工程は、暗号妥当性確認アルゴリズムを前記受け取った確認認証情報に適用する工程を有し、前記暗号妥当性確認アルゴリズムは、前記第二の認証情報生成鍵のサーバーコピーによってパラメータ化されるものである方法。
【請求項４０】
請求項３８記載の方法において、更に、
前記第二のソフトウェアトークンにおいて、第二の動的変数と前記導出された第二の認証情報生成鍵の値とを組み合わせることによって、第二の動的認証情報を生成する工程と、前記認証サーバーにおいて、前記第二の動的認証情報を受け取る工程と、前記認証サーバーにおいて、前記格納した第二の認証情報生成鍵のサーバーコピーを読み出す工程と、前記認証サーバーにおいて、前記読み出された第二の認証情報生成鍵のサーバーコピーを用いて、前記受け取った第二の動的認証情報を検証する工程と、前記認証サーバーにおいて、前記受け取った第二の動的認証情報の検証が成功した場合、認証信号を生成する工程とを有するものである方法。
【請求項４１】
請求項３８記載の方法において、更に、
前記認証サーバーにおいて、前記受け取った確認認証情報を使用して前記第二の認証情報生成鍵のサーバーコピーの決定する工程を有するものである方法。
【請求項４２】
請求項４１記載の方法において、更に、
前記認証サーバーにおいて、前記第一の動的変数の可能な値のセットを決定する工程と、前記認証サーバーにおいて、前記決定された第一の動的変数の各可能な値について、前記第一の認証情報生成鍵を用いて前記第一の動的認証情報の参照値を生成する工程と、前記生成された第一の動的認証情報参照値の各々について、前記第二の認証情報生成鍵のための候補値を導出する工程と、前記認証サーバーにおいて、前記生成された第二の認証情報生成鍵の候補値の中から、前記受け取った確認認証情報に関して成功裏に妥当性確認が行われる候補値を検索する工程と、前記受け取った確認認証情報に関して成功裏に妥当性確認が行われる候補値が見つかった場合、前記認証サーバーにおいて、前記第二の認証情報生成鍵のサーバーコピーを、前記受け取った確認認証情報に関して成功裏に妥当性確認が行われた候補値として決定する工程とを有するものである方法。
【請求項４３】
請求項４２記載の方法において、前記第一の認証トークンにより生成され、前記第二のソフトウェア認証トークンによって受け取られる前記第一の動的認証情報は、前記第一の認証トークンによって前記第一の動的認証情報の生成に使用される前記第一の動的変数値に関する情報を含む同期化データを有し、前記確認認証情報を生成する工程は、前記第二のソフトウェア認証トークンにおいて、前記受け取った第一の動的認証トークンに含まれる前記同期化データを抽出する工程と、前記抽出した同期化データを前記確認認証情報に含める工程とを有し、前記認証サーバーにおいて、前記第一の動的変数の可能な値のセットを決定する工程は、前記認証サーバーにおいて、前記受け取った確認認証情報に含まれる前記同期化データを抽出する工程と、前記抽出した同期化データを、前記第一の動的変数の可能な値のセット用の値の選択に使用する工程を有するものである方法。
【請求項４４】
ソフトウェアトークン個人化システムであって、
第一の認証トークンと、
前記第一の認証トークンとは異なる第二のソフトウェア認証トークンと、
認証サーバーと、を有し、
前記第一の認証トークンは、第一の動的変数と、前記第一の認証トークンと前記認証サーバーとの間で共有される第一の認証情報生成鍵とを暗号的に組み合わせることにより、第一の動的認証情報を生成するように構成されており、前記第一の認証情報生成鍵は特定のユーザーに関連付けられているものであり、
前記第二のソフトウェア認証トークンは、前記生成された第一の動的認証情報を受け取って前記受け取った第一の動的認証情報を用いて、第二の認証情報生成鍵の値を導出し、前記導出された第二の認証情報生成鍵でパラメータ化された暗号アルゴリズムを用いて、確認認証情報を生成するように構成されており、
前記認証サーバーは、前記確認認証情報を受け取って前記第二の認証情報生成鍵のサーバーコピーを決定し、前記第二の認証情報生成鍵のサーバーコピーを用いて前記受け取った確認認証情報を検証し、前記確認認証情報の検証が成功した場合、前記決定された第二の認証情報生成鍵のサーバーコピーを前記特定のユーザーに関連付け、前記特定のユーザーに関連付けられた前記決定された第二の認証情報生成鍵のサーバーコピーを不揮発性メモリに格納するように構成されており、
前記第二のソフトウェア認証トークンは、更に、第二の動的変数と前記導出された第二の認証情報生成鍵とを暗号的に組み合わせることにより、動的認証情報を生成するように構成されているものである
ソフトウェアトークン個人化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体を参照として本明細書に援用する、２０１４年１２月２９日出願の「モバイルアプリケーションを安全にするための方法および装置」と題した米国仮特許出願第６２／０９７，３７６号に対して優先権を主張する。
【０００２】
本発明は、コンピューターおよびアプリケーションへの遠隔アクセス並びにコンピューターネットワークを通した遠隔トランザクションに関している。より具体的には、本発明はソフトウェアトークンを個人化するための方法およびシステムに関する。
【背景技術】
【０００３】
コンピューターシステムやアプリケーションの遠隔アクセスの人気が高まるにつれ、インターネット等の公共ネットワークを通して遠隔アクセスされるトランザクションの数および種類も劇的に増大している。斯かる人気は安全性の必要性も意味している。特に、アプリケーションに遠隔アクセスしている人は本当に本人であるのかどうかを確認する方法、遠隔で行われているトランザクションが正当な個人によって開始されているどうかを確認する方法、およびトランザクションデータがアプリケーションサーバーで受信される前に改竄されていないことを確認する方法の必要性を意味している。
【０００４】
ユーザーとコンピューターベースのアプリケーションとの間の相互関係を安全なものとするための１つの解決方法は、ワンタイムパスワード（ＯＴＰ）および／または電子署名を生成するためのハードウェア厳密認証トークンの使用である。
【０００５】
ハードウェア厳密認証トークンは、秘密の暗号鍵を用いてパラメータ化される暗号アルゴリズムを用いてＯＴＰおよび／または電子署名を生成する機能のみを有する専用装置である。他のユーザーに属するトークンのアルゴリズムが数多くのトークンに関して同一である場合が頻繁に生じるが、特定のユーザーに関連している特定のトークンが使用する秘密暗号鍵は、他のユーザーに関連する他のトークンが使用する秘密鍵とは通常異なっており、異なるトークンは異なるＯＴＰおよび異なる電子署名を生成することが保証されている。すなわち、多くのトークンが同一のアルゴリズムを用いて同一の機能性を提供するように構成されていたとしても、各トークンは、少なくともＯＴＰおよび／または電子署名を生成するためのアルゴリズムをパラメータ化する異なる秘密鍵値で通常個人化されているので、異なるユーザーは異なる秘密鍵値に関連付けられている。
【０００６】
ユーザーは、アプリケーションにアクセスしたい時はそれがどこであれ、自分のトークンを有しているかどうかを確認しなければならない。ある場合には、ユーザーはそれを不便と感じるかも知れない。専用ハードウェアトークンの代替となる可能性の１つはソフトウェアトークンである。ソフトウェアトークンすなわち「ソフトトークン」は、ハードウェア厳密認証トークンの機能性（すなわちＯＴＰおよび電子署名の生成）をエミュレートすることのできるソフトウェアアプリケーションである。ソフトトークンは、通常、ユーザーに属する個人用コンピューティング機器で実行され、種々のソフトウェアアプリケーションを実行可能である。斯かるコンピューティング機器は、通常、単一の特定のコンピューティングタスク専用ではなく、ユーザーのニーズに応じてそのライフサイクル中に追加のソフトウェアアプリケーションを受け取るように構成された汎用のコンピューティングプラットフォームを有している。ユーザーがソフトウェアトークンをインストールでき、しかも通常いつでも持ち歩く傾向にある個人用コンピューティング機器の一例は、スマートフォンである。ソフトウェアアプリケーションがインストールできる個人用コンピューティング機器の他の例はタブレットコンピューターである。
【０００７】
ソフトウェアトークンは汎用のコンピューター機器で実行されるソフトウェアなので、あるユーザーの個人用コンピューティング機器にインストールされるソフトウェアトークンを個人化するのは、すなわちその個人のソフトウェアトークンインスタンスに特有の値を有し、ソフトウェアトークンの対象使用者に関連付けられたデータセット（例えば、ユーザー用に認証情報（ｃｒｅｄｅｎｔｉａｌｓ）を暗号的に生成するためにソフトウェアトークンが使用する秘密鍵を含む）を該ソフトウェアトークンに提供するのは、チャレンジである。
【０００８】
上記記載において、ソフトウェアトークンとハードウェアトークンは総称的に認証トークンと呼んでもよい。
【０００９】
ソフトウェアトークンの個人化にとって安全でしかも便利な解決方法が求められている。
この出願の発明に関連する先行技術文献情報としては、以下のものがある（国際出願日以降国際段階で引用された文献及び他国に国内移行した際に引用された文献を含む）。
（先行技術文献）
（特許文献）
（特許文献１）  国際公開第２００６／０８９１０１号
（非特許文献）
（非特許文献１）  ＡＬＯＵＬ  Ｆ  ＥＴ  ＡＬ：  "Ｔｗｏ  ｆａｃｔｏｒ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｕｓｉｎｇ  ｍｏｂｉｌｅ  ｐｈｏｎｅｓ"，  ＣＯＭＰＵＴＥＲ  ＳＹＳＴＥＭＳ  ＡＮＤ  ＡＰＰＬＩＣＡＴＩＯＮＳ，  ２００９．  ＡＩＣＣＳＡ  ２００９．  ＩＥＥＥ／ＡＣＳ  ＩＮＴＥＲＮＡＴＩＯＮＡＬ  ＣＯＮＦＥＲＥＮＣＥ  ＯＮ，  ＩＥＥＥ，  ＰＩＳＣＡＴＡＷＡＹ，  ＮＪ，  ＵＳＡ，  １０  Ｍａｙ  ２００９  （２００９−０５−１０），  ｐａｇｅｓ  ６４１−６４４
【発明の概要】
【課題を解決するための手段】
【００１０】
本発明は、ソフトウェアトークンの使用がハードウェアトークンの使用を除外する訳ではなく、ハードウェアトークン並びに同じユーザーに関連付けられたソフトウェアトークンが互いに補足的タスクとして使用されてもよいという、発明家達の洞察力に基づいている。例えば、ソフトウェアトークンは日常の低リスクおよび中リスクトランザクション用の移動性を重視する目的に使用し、ハードウェアトークンは高いレベルの安全性を必要とする更に例外的なタスクに使用してもよい。
【００１１】
更に本発明は、ソフトウェアトークンを安全でしかも便利に個人化するプロセスにおいて、自分のハードウェアトークンをユーザーが使用できるという、発明家達の洞察力にも基づいている。
【００１２】
本明細書において、「トークンの個人化」と言う用語は、特定のトークンが使用するデータ要素セットに特定の値を提供するプロセスを意味しており、斯かる特定の値は、他の類似のトークンに対して、その特定のトークンにとって固有のものである。例えば、いくつかの実施形態において、特定のトークンを個人化することには、例えばＯＴＰおよび／または電子署名を生成するのに該特定のトークンによって使用される秘密暗号鍵に特定の値を提供することも含まれ、それにより該値が該特定のトークンにとって固有のものとなる。斯かる文脈において、「ユニーク」と言う用語は、完全なユニークさ（すなわち、同じ値は１つのトークンにしか生じないことが保証されている）を意味してもよく、あるいは統計的なユニークさまたは蓋然的なユニークさ（すなわち、１つの特定のトークンの値に関する知識は他のトークンの可能な値に関する知識を一切提供しない。換言すれば、二つのトークンが最終的に同じ値を有する可能性は原理的には除外されないが、たとえ斯かる事態が生じたとしても、それは予想可能ではなく、少なくとも外部当事者の観点からすれば、それは偶然の一致の結果に見える）を意味してもよい。特定のトークンを個人化するプロセスには、該特定のトークンの上記データ要素セット用に実際に特定の値を選択または決定する工程、および／または斯かる特定の値を該特定のトークンに提供する工程および／または斯かる特定の値を該特定のトークンに転送する工程が含まれてもよい。本明細書においては、別の記載がない限り、特定のトークン用に個人化されたデータ要素の値は、該トークンが将来の使用時に（例えば動的認証情報生成のために）アクセス可能な不揮発性メモリに該トークンによって格納される。個人化されたトークンは、個人化後、該格納されたデータ要素を不確定回数並びに不確定期間使用できる。
【００１３】
ソフトウェアトークンの取得
いくつかの実施形態において、ユーザーは、該ユーザーに属する個人用コンピューティング機器（例えば、スマートフォン、タブレットコンピューター等）にソフトウェアトークンアプリケーションをインストールすることにより、ソフトウェアトークンを取得してもよい。いくつかの実施形態において、個人用コンピューティング機器に用いられる他の任意のアプリケーション同様、ソフトウェアトークンアプリケーションをダウンロードおよびインストールしてもよい。例えば、いくつかの実施形態において、ソフトウェアトークンは、一般的なアップストアからダウンロードできる追加のトークンアプリとして、例えばスマートフォンにインストールしてもよい。
【００１４】
ソフトウェアまたはハードウェアトークンの機能
いくつかの実施形態において、ソフトウェアトークンおよび／またはハードウェアトークン等のトークンは、秘密暗号鍵でパラメータ化された暗号アルゴリズムを用いて動的変数値と秘密暗号鍵値とを暗号的に組み合わせることにより、ワンタイムパスワード（ＯＴＰ）または電子署名を生成するように構成されていてもよい。いくつかの実施形態において、動的変数は時間値（例えば、トークンまたはソフトウェアトークンが実行されている個人用コンピューティング機器のクロックにより提供される時間値）の関数であってもよい。いくつかの実施形態において、動的変数は事象関連変数値の関数であってもよい。本明細書において、事象関連変数と言う用語は、特定の事象の発生時に更新アルゴリズムを用いて自動的に値が更新されてもよい変数を意味する。いくつかの実施形態において、特定の事象には、例えば、トークンがＯＴＰまたは電子署名を生成するために事象関連変数を使用する工程も含まれてもよい。いくつかの実施形態において、事象関連変数はカウンターを含んでもよく、更新アルゴリズムは該カウンターの単調増加（または減少）を含んでもよい。いくつかの実施形態において、更新アルゴリズムは例えば一方向ハッシュアルゴリズムを含んでもよく、事象関連変数は、該事象関連変数の古い値（例えば、更新前の現在値）を一方向ハッシュアルゴリズムを適用して得られる新しい値を用いて更新してもよい。いくつかの実施形態において、事象関連変数は秘密暗号鍵を含んでもよい。例えば、いくつかの実施形態において、秘密暗号鍵値は、秘密暗号鍵を用いてＯＴＰまたは電子署名を生成する毎に、新しい値（秘密暗号鍵の前値の関数であってよい）で更新してもよい。あるいは、秘密暗号鍵は例えば動的変数の関数であってもよい。例えば、秘密暗号鍵は、固定マスターキーおよび時間値やカウンター値等の動的変数値から導かれてもよい。あるいは、秘密暗号鍵は例えば状態変数の関数であってもよく、状態変数値は、例えば秘密暗号鍵を用いてＯＴＰまたは電子署名を生成する毎に、新しい値（状態変数の前値の関数であってよい）で更新してもよい。いくつかの実施形態において、動的変数はチャレンジに基づいていてもよく、該チャレンジは例えばサーバーによって生成され、（例えばソフトトークンを実行しているコンピューティング機器のユーザー入力インターフェースを用いて該チャレンジを入力するユーザーによって）例えばトークンに提供されてもよい。いくつかの実施形態において、動的変数はトランザクションデータに基づいていてもよく、該トランザクションデータは、（例えばトークンのユーザー入力インターフェース、またはソフトウェアトークンを実行しているコンピューティング機器のユーザー入力インターフェースを用いて該トランザクションデータを入力するユーザーによって）該トークンに提供されてもよい。いくつかの実施形態において、２つ以上の動的変数が使用されてもよい。例えば、いくつかの実施形態において、内部動的変数（時間変数、事象関連変数等）と外部動的変数（チャレンジ、トランザクションデータ等）との両方を暗号的な組み合わせで使用してもよい。
【００１５】
動的変数値と秘密暗号鍵値との暗号的な組み合わせの結果は、一般的に動的認証情報（ｄｙｎａｍｉｃ  ｃｒｅｄｅｎｔｉａｌ）と呼ばれる。動的変数がトランザクションデータに基づいている場合、動的変数値と秘密暗号鍵値との暗号的な組み合わせの結果は電子署名と呼ばれる。動的変数がチャレンジに基づいている場合、動的変数値と秘密暗号鍵値との暗号的な組み合わせの結果はレスポンスと呼ばれる。動的変数が時間値または事象関連変数値に基づいている場合、動的変数値と秘密暗号鍵値との暗号的な組み合わせの結果はワンタイムパスワード（ＯＴＰ）と呼ばれる。
【００１６】
いくつかの実施形態において、動的変数値と秘密暗号鍵値とを暗号的に組み合わせるための暗号アルゴリズムは、秘密暗号鍵によってパラメータ化されてもよい対称暗号アルゴリズムを含んでもよく、ソフトウェアトークンは秘密暗号鍵を例えば認証サーバーとの間で共有してもよい。例えば、いくつかの実施形態において、対称暗号アルゴリズムは、動的変数に影響を及ぼし秘密暗号鍵でパラメータ化されてもよいＡＥＳ（高度暗号化標準）等の対称暗号化または復号アルゴリズムを含んでもよい。いくつかの実施形態において、対称暗号アルゴリズムは、動的変数に影響を及ぼし秘密暗号鍵でパラメータ化されてもよいＨＭＡＣ（ハッシュベース認証コード）等の鍵付きハッシュアルゴリズムを含んでもよい。いくつかの実施形態において、対称暗号アルゴリズムは、秘密暗号鍵でパラメータ化され動的変数に影響を及ぼしてもよい。いくつかの実施形態において、秘密暗号鍵は、第一の動的変数を含んでもよく、あるいは第一の動的変数の関数であってもよく、対称暗号アルゴリズムは秘密暗号鍵でパラメータ化され第二の動的変数および／または固定値に影響を及ぼしてもよい。
【００１７】
いくつかの実施形態において、動的変数値と秘密暗号鍵値とを暗号的に組み合わせることにより動的認証情報を生成するための暗号アルゴリズムは不可逆的であってもよい。すなわち動的変数値に関して、それは一方向関数であってもよい。すなわち、生成された動的認証情報値が知られており、生成アルゴリズムが知られており、動的認証情報を生成するのに使用された他の全パラメータおよびデータ要素の値が知られていても、動的認証情報を生成するのに効果的に使用された動的変数値を明確に決定するのは不可能、または計算上実施不可能である。例えば、いくつかの実施形態において、動的変数値と秘密暗号鍵値とを暗号的に組み合わせる工程には、動的変数に影響を及ぼし秘密暗号鍵でパラメータ化されるＨＭＡＣ等の鍵付きハッシュアルゴリズムを適用する工程も含まれてよい。あるいは、動的認証情報は、秘密暗号鍵でパラメータ化した対称ブロック暗号で動的変数を暗号化することにより生成してもよい。そうすることにより、結果として生じる暗号文のうちかなりの部分が切り捨てられる。例えば、いくつかの実施形態において、動的認証情報に含まれるのは、結果として生じる暗号文のうち半分以下であり得る。
【００１８】
動的認証情報の妥当性確認または検証
いくつかの実施形態において、認証トークンにより生成された動的認証情報は、認証サーバーによって受け取られ、検証または妥当性確認が行われてもよい。認証サーバーは、認証トークンが動的認証情報を生成するのに使用した秘密暗号鍵のコピーを読み出し、該読み出された秘密暗号鍵のコピーを使用し、受け取った動的認証情報の検証または妥当性確認を行うために暗号検証または妥当性確認アルゴリズムをパラメータ化してもよい。例えば、いくつかの実施形態において、認証サーバーは、読み出された秘密暗号鍵のコピーを用いて動的認証情報用に１つ以上の参照値を生成し、受け取った動的認証情報を該１つ以上の参照値と比較してもよい。その場合、受け取った動的認証情報が参照値の少なくとも１つと一致するならば、受け取った動的認証情報の検証または妥当性確認は成功である。いくつかの実施形態において、認証サーバーは、動的変数のために１つ以上の可能な値を取得し、動的変数のための可能な各値と受け取った秘密暗号鍵のコピーを暗号的に組み合わせ、それにより受け取った動的変数の可能な値の各々のために動的認証情報用の参照値を生成することにより、動的認証情報用の参照値を生成してもよい。
【００１９】
ソフトウェアトークンの秘密暗号鍵の個人化
いくつかの実施形態において、ソフトウェアトークンは、ユーザーのコンピューティング機器にインストールされた後、最初は個人化されていない状態にあり、秘密暗号鍵はまだ値を有していない。ソフトウェアトークンが作動状態となり、ユーザーが該ソフトウェアトークンを使って有効なＯＴＰおよび／または電子署名を生成できるようになるには、該ソフトウェアトークンは個人化され、例えば該ソフトウェアトークンの秘密暗号鍵が該ユーザーに関連付けられた値を有するようにならなければならない。いくつかの実施形態において、ソフトウェアトークンを個人化するプロセス、より具体的にはソフトウェアトークンの秘密暗号鍵値を個人化するプロセスは、ユーザーに関連付けられたハードウェアが生成する動的認証情報値を使用してもよい。
【００２０】
ソフトウェアトークンの秘密暗号鍵用個人化シードとしてハードウェア動的認証情報を使用
いくつかの実施形態において、ソフトウェアトークンは、いくつかの個人化データ要素に基づいて秘密暗号鍵値を決定するように構成されていてもよい。いくつかの実施形態において、ソフトウェアトークンは、個人化モードを提供するように構成されていてもよく、その場合、ソフトウェアトークンは斯かるいくつかの個人化データ値を提供するようにユーザーに要求してもよい。いくつかの実施形態において、ソフトウェアトークンは、個人化データ要素の少なくともいくつかの関数として秘密暗号鍵値を導くように構成されていてもよい。いくつかの実施形態において、斯かる秘密暗号鍵の導出には、個人化データ要素の少なくともいくつかに暗号アルゴリズムを適用する工程を含めてもよい。いくつかの実施形態において、斯かる秘密暗号鍵の導出には、個人化データ要素の少なくともいくつかに一方向ハッシュ関数を適用する工程を含めてもよい。いくつかの実施形態において、斯かる秘密暗号鍵の導出には、個人化データ要素のいくつかと、例えばソフトウェトークンのソフトウェアコードにハードコードされたマスターキーとを暗号的に組み合わせる工程を含めてもよい。本明細書で使用される場合、ハードコードと言う用語は、外部源からのインプットデータまたは構成データでなく、アプリケーションまたは他の実行可能なオブジェクトのソースコードに直接組み込まれているインプットデータまたは構成データを意味する。
【００２１】
いくつかの実施形態において、斯かる個人化データ要素は、ハードウェアトークン、例えばソフトウェアトークンのユーザーと既に関連付けられたハードウェアトークンによって生成される動的認証情報を有していてもよい。いくつかの実施形態において、ハードウェアトークンは、例えば、世界本社をイリノイ州シカゴに有するバスコ・データ・セキュリティ・インターナショナル社が提供するようなハードウェアトークンのうち、ＤＩＧＩＰＡＳＳ（登録商標）ラインのハードウェアトークンを有していてもよい。いくつかの実施形態において、ハードウェアトークンは、未接続のスマートカードリーダーと該未接続のスマートカードリーダーが受け取るスマートカードを有していてもよく、その場合、未接続のスマートカードリーダーおよび受け取ったスマートカードは共同で動的認証情報を生成する。斯かる文脈において、未接続のスマートカードリーダーと言う用語は、通常の接続されたスマートカードリーダーとは対照的に、ホストコンピューティング機器からインプットデータ（動的認証情報を生成するためのチャレンジ、トランザクションデータ等）を受け取るにあたり、および／または未接続のスマートカードリーダーが生成する動的認証情報をホストコンピューティング機器に転送するにあたり、どのようなホストコンピューティング機器（個人化する必要のあり得るソフトウェアトークンを実行中のアプリケーションまたは個人用ホストコンピュータにアクセスする際、ユーザーが使用するアクセス機器等）にも接続されていないスマートカードリーダーを意味している。未接続のスマートカードリーダーは、該未接続のスマートカードリーダーのユーザー入力インターフェース（キーボード等）を用いてインプットデータを入力するユーザーからのインプットデータを受け取り、未接続のスマートカードリーダーによって生成された動的認証情報は、該動的認証情報をユーザーに提示するためのユーザー入力インターフェース（例えばディスプレイ等）を用いて未接続のスマートカードリーダーによって転送され、次に該ユーザーは提示された動的認証情報を宛先に転送してもよい。いくつかの実施形態において、スマートカードは、秘密ハードウェアトークンキーを格納するためのメモリと、動的認証情報を生成するために上記秘密ハードウェアトークンキーを用いて暗号計算を行うためのデータ処理構成要素とを有していてもよい。いくつかの実施形態において、未接続のスマートカードリーダーは、個人化データ要素自体は含まないという意味で総称であってよい。いくつかの実施形態において、スマートカードは、（未接続のスマートカードリーダーと挿入されたスマートカードとの組み合わせによって）動的認証情報を生成する際に使用される全ての個人化データ要素を含んでいてもよい。いくつかの実施形態において、ハードウェアトークンは、挿入されたスマートカード上でＥＭＶ−ＣＡＰ（ユーロペイ・マスターカード・ビザ・チップ認証プログラム）スマートカードアプリケーションを用いて動的認証情報を生成するように構成された未接続のスマートカードリーダーを有していてもよい。いくつかの実施形態において、未接続のスマートカードリーダーは、ＥＭＶ−ＣＡＰ仕様との間に互換性を有していてもよい、あるいは該仕様に対応していてもよい。
【００２２】
ハードウェアトークンからソフトウェアトークンへの個人化動的認証情報の転送
いくつかの実施形態において、ユーザーのハードウェアトークンによって生成された動的認証情報は、ユーザーによってハードウェアトークンから個人化対象のソフトウェアトークンへ手動により転送されてもよい。例えば、いくつかの実施形態において、ハードウェアトークンは動的認証情報を生成し、ハードウェアトークンのユーザー出力インターフェース（ディスプレイ等）を用いて、生成されたハードウェアトークンをユーザーに提示してもよい。その後、ユーザーは、例えばソフトウェアトークンを実行している個人用コンピューター機器のユーザー入力インターフェース（キーボード、タッチスクリーン等）を使用して、提示された動的認証情報をソフトウェアトークンに手動で提供してもよい。例えば、いくつかの実施形態において、ハードウェアトークンは、動的認証情報を文字列（数字、英数字等）としてハードウェアトークンのディスプレイに提示するように構成されていてもよく、ユーザーは、その文字列を読み、個人用コンピューティング機器上で実行しているソフトウェアトークンにその文字列をコピーしてもよい。
【００２３】
いくつかの実施形態において、ソフトウェアトークンは個人化モードを支援するように構成されていてもよい。該個人化モードの下、ソフトウェアトークンは、ユーザーのハードウェアトークンが生成した動的認証情報を該ソフトウェアトークンに提供するようにユーザーに要求し、ユーザーのハードウェアトークンが生成した斯かる動的認証情報をユーザーから受け取り、例えば受け取った動的認証情報から１つ以上の個人化されたデータ要素（例えば、ソフトウェアトークンが以後に動的認証情報を生成するのに使用す得る秘密暗号鍵）の値を導くことにより、その受け取った動的認証情報を用いてそれ自体を個人化するように構成されている。
【００２４】
いくつかの実施形態において、ハードウェアトークンおよびソフトウェアトークンは、ハードウェアトークンが生成した動的認証情報を有する個人化データを含むデジタル個人化メッセージを、ハードウェアトークンからソフトウェアトークンへ転送するように構成されていてもよい。ハードウェアトークンはデジタル個人化メッセージを放射するように構成されていてもよく、ソフトウェアトークンは、ユーザーがデジタル個人化メッセージまたはデジタル個人化メッセージの一部を手動でコピーしなくても、該デジタル個人化データを受け取るように構成されていてもよい。例えば、いくつかの実施形態において、ハードウェアトークンは（第一の）無線データ通信インターフェースを有し、この無線データ通信インターフェースを用いてデジタル個人化メッセージを出力するように構成されていてもよい。個人用コンピューティング機器も（第二のの）無線通信インターフェースを有していてもよく、ソフトウェアトークンは、ハードウェアトークンが放射するデジタル個人化メッセージを受け取るように構成されていてもよい。例えば、いくつかの実施形態において、ハードウェアトークンは、二次元像を表示するように構成されたグラフィックディスプレイを有していてもよい。ハードウェアトークンは、デジタル個人化メッセージを個人化像上に符号化し、個人化像をグラフィックディスプレイ上に表示するように構成されていてもよい。ソフトウェアトークンを実行している個人用コンピューティング機器は画像を取り込むためのデジタルカメラを有していてもよく、ソフトウェアトークンは、ハードウェアトークンによって表示される個人化像を該デジタルカメラを用いて取り込み、該個人化像を復号することにより組み込まれている個人化メッセージを取得し、該個人化メッセージを用いてソフトウェアトークン自体を個人化するように構成されていてもよい。
【００２５】
いくつかの実施形態において、認証目的（遠隔コンピューターベースアプリケーションのためにユーザーを認証するＯＴＰ、ユーザーが遠隔コンピューターベースアプリケーションへ提示するトランザクションを確保するための電子署名等）のためにハードウェアトークンが生成する動的認証情報と、ハードウェアトークンが生成し、ユーザーがソフトウェアトークンを個人化するのに使用される動的個人化認証情報との間に違いはない。例えば、いくつかの実施形態において、ユーザーは、ハードウェアトークンが生成する通常の動的認証認証情報を用いてソフトウェアトークンを個人化してもよい。いくつかの実施形態において、ハードウェアトークンは、動的認証認証情報を生成するのと同じ動的認証情報生成機構を用いて、動的個人化認証情報を生成してもよい。いくつかの実施形態において、ハードウェアトークンは、動的認証認証情報を生成するのと同じ暗号アルゴリズム、暗号鍵およびアルゴリズムパラメーターを用いて、動的個人化認証情報を生成してもよい。
【００２６】
いくつかの実施形態において、動的個人化認証情報は、動的認証認証情報を生成するのと同じ動的認証情報生成機構を用いてハードウェアトークンによって生成されてもよいが、動的認証情報生成機構には、異なる外部インプットが用いられてもよい。例えば、いくつかの実施形態において、動的個人化認証情報は、認証目的で外部チャレンジにレスポンスを生成するのと同じ動的認証情報生成機構を用いてハードウェアトークンによって生成されてもよいが、動的個人化認証情報を生成するためにハードウェアトークンに提供されるチャレンジは、認証レスポンスを生成するためのチャレンジ値とは異なる値を有していてもよい。例えば、いくつかの実施形態において、動的個人化認証情報を生成するのに使用されるチャレンジは異なる構造を有していてもよい、あるいは認証レスポンスを生成するのに使用されるチャレンジよりも長いチャレンジであってもよい。例えば、いくつかの実施形態において、動的個人化認証情報は、トランザクションを確保するためにトランザクションデータ上に電子署名を生成するための動的認証情報生成機構と同じ機構を用いてハードウェアトークンによって生成されてもよいが、動的個人化認証情報を生成するためにハードウェアトークンに提供されるデータは、電子署名を生成するためのトランザクションデータ値とは異なる値を有していてもよい。例えば、いくつかの実施形態において、ハードウェアトークンが署名するトランザクションデータ要素の１つが、１つのトランザクションタイプを有していてもよく、該トランザクションタイプのデータ要素値が、動的個人化認証情報を生成するために保存されていてもよい。
【００２７】
いくつかの実施形態において、ハードウェアトークンは、動的個人化認証情報と動的認証認証情報とを異なる方法で生成するように構成されていてもよい。いくつかの実施形態において、ハードウェアトークンは、動的個人化認証情報および動的認証認証情報を生成するのに、異なる暗号アルゴリズム、および／または異なる暗号鍵、および／または異なる動的変数、および／または異なるアルゴリズムパラメーターを用いてもよい。動的認証情報生成用のアルゴリズムパラメーターの値の選択は、潜在的に矛盾した要求事項間のある種のトレードオフを反映していてもよい。斯かるパラメーターの値を動的個人化認証情報と動的認証認証情報との間で異なって設定できる実施形態では、動的個人化認証情報と動的認証認証情報のために、異なった（そしてより適切な）トレードオフの選択が可能となる。例えば、動的認証情報の場合、認証情報の長さの選択は安全性に影響を及ぼす（すなわち、認証情報が短ければ短いほど、安全性は低くなる）が、同時にそれはユーザーの経験にも影響を及ぼす（すなわち、認証情報が長ければ長いほど、ユーザーにとってコピーするのが不便になる）。いくつかの実施形態において、ハードウェアトークンは、同じハードウェアトークンが生成する動的認証認証情報の長さとは異なる長さを有する動的個人化認証情報を生成するように構成されていてもよい。いくつかの実施形態において、ハードウェアトークンは、同じハードウェアトークンが生成する動的認証認証情報の長さよりも長い動的個人化認証情報を生成するように構成されていてもよい。斯かる方法により、動的認証認証情報の場合よりも動的個人化認証情報の場合に、ユーザーの便宜面よりも安全面を更に重視できるようになる。
【００２８】
いくつかの実施形態において、ハードウェアトークンは、少なくとも認証モードと個人化モードを有していてもよい。ハードウェアトークンは、認証モードで動的個人認証化認証情報を生成し、個人化モードで動的個人化認証情報を生成するように構成されていてもよい。いくつかの実施形態において、ハードウェアトークンは、該ハードウェアトークンが個人化モードで作動すべきかどうかをユーザーが明示的に選択するのを支援するように構成されていてもよい。例えば、ハードウェアトークンは、該ハードウェアトークンが作動すべきモード（個人化モード、認証モード等）を選択するためのメニューオプションをユーザーに提供してもよい。いくつかの実施形態において、ハードウェアトークンは、デジタルメッセージを受け取り、該デジタルメッセージの他の内容を処理するのにハードウェアトークンがどのモードを作動すべきかを指示するデータ要素を、受け取ったデジタルメッセージから抽出するように構成されていてもよい。例えば、いくつかの実施形態において、ハードウェアトークンはデジタル個人化メッセージを受け取るように構成されていてもよく、その場合、該デジタル個人化メッセージは、メッセージが個人化メッセージであることを示すデータ要素、並びに該個人化メッセージの内容を用いて動的個人化認証情報を生成するように該ハードウェアトークンに指示するデータ要素を有していてもよい。次に、ハードウェアトークンはその個人化モードを入力し、受け取った個人化メッセージの内容を用いて、（動的認証認証情報ではなく）動的個人化認証情報を生成してもよい。
【００２９】
クライアントおよびサーバーシード処理の同期化
いくつかの実施形態において、ソフトウェアトークンの秘密暗号鍵は、ソフトウェアトークンと、該ソフトウェアトークンが生成する動的認証情報を検証するように構成されていてもよい認証サーバーとで共有してもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンによって個人化された秘密暗号鍵の値を決定するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、秘密暗号鍵の決定値またはソフトウェアトークンの秘密暗号鍵値を認証サーバーが決定または再構築い得る１つ以上のデータ要素の決定値をデータベースに格納してもよい。いくつかの実施形態において、認証サーバーは、ユーザーを識別するデータ要素と、ユーザーのソフトウェアトークンの秘密暗号鍵値を含む１つ以上のデータ要素またはユーザーのソフトウェアトークンの秘密暗号鍵値の再構築または決定を可能にする１つ以上のデータ要素とのアソシエーションをデータベースに格納してもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンが秘密暗号鍵値を個人化するのに使用する全ての個人化データ要素値を取得するように構成されていてもよく、該認証サーバーは、斯かる取得された個人化データ要素値を用いて、ソフトウェアトークンの秘密暗号鍵の個人化された値を決定するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンと同じアルゴリズムを用いて、ソフトウェアトークンの秘密暗号鍵の個人化された値を決定してもよい。認証サーバーとソフトウェアトークンは、同じアルゴリズムを用いて、ソフトウェアトークンの秘密暗号鍵に関して同じ個人化された値を決定してもよい。いくつかの実施形態において、認証サーバーは、ユーザーのハードウェアトークンが生成しソフトウェアトークンが該ソフトウェアトークンの秘密暗号鍵を個人化するのに使用したであろう動的認証情報値を取得するように構成されていてもよく、該認証サーバーは、取得した動的認証情報値を用いて、ソフトウェアトークンの秘密暗号鍵の個人化された値を決定または導出してもよい。いくつかの実施形態において、認証サーバーは、その後、決定または導出されたソフトウェアトークンの秘密暗号鍵の個人化された値を使用し、ソフトウェアトークンが生成した動的認証情報を検証してもよい。
【００３０】
いくつかの実施形態において、ハードウェアトークンが生成する動的認証情報値は、ソフトウェアトークンの秘密暗号鍵を個人化するため、ユーザーによって該ソフトウェアトークンに提供されてもよく、認証サーバーは、該認証サーバーへ動的認証情報値を提供する該ユーザーから該動的認証情報値を取得してもよい。いくつかの実施形態において、ハードウェアトークンが生成しソフトウェアトークンが該ソフトウェアトークンの秘密暗号鍵を個人化するのに使用する動的認証情報値は、チャレンジに対するレスポンスとしてハードウェアトークンが生成してもよい。いくつかの実施形態において、チャレンジは、認証サーバーが生成し、ハードウェアトークンに提供されてもよい。いくつかの実施形態において、チャレンジはハードウェアトークンおよび認証サーバーとは別の実体により生成され、ハードウェアトークンおよび認証サーバーに提供されてもよい。例えば、いくつかの実施形態において、チャレンジはソフトウェアトークンが生成してもよい。
【００３１】
いくつか実施形態において、認証サーバーは、ハードウェアトークンが生成したと該認証サーバーが仮定し得る動的認証情報値のコピーを自ら生成することにより、ハードウェアトークンが生成する動的認証情報値を取得するように構成されていてもよい。いくつかの実施形態において、ハードウェアトークンは、動的変数（例えば、本明細書でソフトウェアトークンに関して更に詳細に説明されるような動的変数）と秘密ハードウェアトークン鍵とを、該秘密ハードウェアトークン鍵によってパラメータ化されてもよい対称暗号アルゴリズム（例えば、本明細書でソフトウェアトークンに関して更に詳細に説明されるような対称暗号アルゴリズム）を用いて組み合わせることにより、動的認証情報を生成してもよく、その場合、該ハードウェアトークンは、該秘密ハードウェアトークン鍵を認証サーバーとの間で共有してもよい。いくつかの実施形態において、認証サーバーは、ハードウェアトークンの秘密ハードウェアトークン鍵のコピーにアクセスしてもよく、動的認証情報値を生成するのにハードウェアトークンが使用する動的変数のサーバー値を決定するように構成されていてもよい。認証サーバーは、更に、このようにして秘密ハードウェアトークン鍵のコピーを用いて決定した動的変数のサーバー値を用いて、ハードウェアトークンが生成するはずの動的認証情報のサーバー値を生成するように構成されていてもよい。認証サーバーは、更に、斯かる動的認証情報のサーバー値を用いて、ソフトウェアトークンの個人化された秘密暗号鍵値を決定するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ハードウェアトークンが自らの動的認証情報値を生成するのに使用するアルゴリズムと同じアルゴリズムを用いて、動的変数のサーバー値を秘密ハードウェアトークン鍵のコピーと組み合わせてもよい。
【００３２】
動的変数のサーバー値の決定
いくつかの実施形態において、ハードウェアトークンが使用する動的変数はチャレンジに基づいていてもよく、認証サーバーは、チャレンジ値を取得することにより動的変数のサーバー値を決定してもよい。いくつかの実施形態において、チャレンジを最初に生成したのは認証サーバーであってもよく、次に該チャレンジは（例えばユーザーによって）ハードウェアトークンに提供されたかもしれない。認証サーバーとハードウェアトークンの両方がチャレンジ値を用いて同じ動的認証情報値を生成してもよい。いくつかの実施形態において、チャレンジを他の実体（例えばソフトウェアトークン）が生成してもよく、該チャレンジは認証サーバーとハードウェアトークンの両方に（ユーザーによって）提供されることにより同じ動的認証情報値を生成してもよい。
【００３３】
いくつかの実施形態において、認証サーバーは、ハードウェアトークンが動的認証情報を生成するのに使用した可能性のある動的変数値のセットまたは範囲を決定してもよい。例えば、いくつかの実施形態において、ハードウェアトークンの動的変数は時間値（例えば、ハードウェアトークンに含まれるクロックが提供する時間値）に基づいていてもよく、認証サーバーは、ハードウェアトークンが使用した可能性のある時間値の範囲を画定する時間窓を決定するように構成されていてもよい。いくつかの実施形態において、上記可能性のある時間値の範囲は、少なくとも２つの可能な時間値を含んでいてもよい。例えば、いくつかの実施形態において、ハードウェアトークンの動的変数は事象関連変数（例えば、ソフトウェアトークンに関して更に詳細に説明されるような事象関連変数、例えばカウンター）の値に基づいていてもよく、認証サーバーは、ハードウェアトークンによって使用されたと該認証サーバーが決定した事象関連変数に関して、指定可能な値のセットを（例えば事象関連変数の最後の値から始めて）決定するように構成されていてもよい。いくつかの実施形態において、斯かる指定可能な値のセットは、少なくとも２つの指定可能な値を含んでいてもよい。いくつかの実施形態において、認証サーバーは、同期化情報を取得するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、斯かる同期化情報を用いて、ハードウェアトークンが使用した可能性のある動的変数値のセットまたは範囲から１つ以上の値を選択するように構成されていてもよい。認証サーバーは、更に、斯かる１つ以上の選択された値を用いて、ハードウェアトークンが効果的に生成した動的変数値またはソフトウェアトークンの個人化された秘密暗号鍵値を決定するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、動的変数の可能値のセットまたは範囲の各値用に候補値を決定または導出することにより、ソフトウェアトークンの個人化された秘密暗号秘密の候補値のセットを決定してもよい。いくつかの実施形態において、動的変数の可能な値のセットまたは範囲は、少なくとも２つの異なる値を含んでいる。いくつかの実施形態において、認証サーバーは、上述の同期化情報を用いて、ソフトウェアトークンの個人化された秘密暗号秘密の候補値の中から選択するように構成されていてもよい。
【００３４】
いくつかの実施形態において、同期化情報は、ソフトウェアトークンが秘密暗号鍵値を用いて個人化された後に該ソフトウェアトークンによって生成される１つ以上の動的認証情報を含んでいてもよい。いくつかの実施形態において、認証サーバーはソフトウェアトークンの個人化された秘密暗号秘密のための候補値セットを決定し、個人化されたソフトウェアトークンが生成する１つ以上の動的認証情報を受け取り、個人化された秘密暗号秘密のための各候補値を用いて、個人化されたソフトウェアトークンが生成する１つ以上の上記受け取った動的認証情報の妥当性確認を試みてもよい。認証サーバーは、個人化された秘密暗号の特定の候補値を用いて、受け取った動的認証情報の１つ以上の妥当性確認が成功であるかどうかに基づき、その特定の候補値を選択（または昇格）あるいは拒否（または降格）してもよい。
【００３５】
いくつかの実施形態において、ソフトウェアトークンは、秘密暗号秘密が個人化された後、個人化確認メッセージを生成するように構成されていてもよい。いくつかの実施形態において、この個人化確認メッセージは、（例えばユーザーによって）認証サーバーに伝達されてもよい。いくつかの実施形態において、認証サーバーは、受け取った個人化確認メッセージを用いて、個人化された秘密暗号秘密の値を決定してもよい、あるいはソフトウェアトークンが自らの秘密暗号秘密を個人化するのに使用した動的認証情報を生成するのにハードウェアトークンが使用した動的変数の値を決定してもよい。
【００３６】
いくつかの実施形態において、個人化確認メッセージは同期化データを含んでいてもよい。例えば、いくつかの実施形態において、ハードウェアトークンが生成する動的認証情報は、時間値または事象関連変数に基づいていてもよい。ハードウェアトークンが生成する動的認証情報は、動的認証情報を生成するのにハードウェアトークンが使用した時間値または事象関連変数値に関する指示を検証サーバーに与えるため、ハードウェアトークン同期化データを含んでいてもよい。例えば、いくつかの実施形態において、動的変数は時間ベースであり、動的認証情報は時間値の中のある数の最も重要性の低いビット（例えば最後の二桁）を含んでいてもよい、あるいは動的変数はカウンターベースであり、動的認証情報はカウンター値の中のある数の最も重要性の低いビット（例えば最後の四桁）を含んでいてもよい。いくつかの実施形態において、ハードウェアトークンは斯かるハードウェアトークン同期化データを含む認証情報を生成してもよく、斯かる認証情報は、ソフトウェアトークンの個人化のために該ソフトウェアトークンに提供されてもよい。ソフトウェアトークンは、受け取った認証情報からハードウェアトークン同期化データを抽出し、該認証情報を用いて自らを個人化し、個人化メッセージを生成してもよい。その場合、ソフトウェアトークンは、抽出したハードウェアトークン同期化データを個人化確認メッセージに含めてもよい。認証サーバーは、個人化確認メッセージを受け取り、受け取った個人化確認メッセージから斯かるハードウェアトークン同期化データを抽出し、該ハードウェアトークン同期化データを用いて、ソフトウェアトークンが自らの秘密暗号鍵を個人化するのに使用した動的認証情報を生成するのにハードウェアトークンが使用した動的変数の値を決定するように構成されていてもよい。
【００３７】
認証サーバーにおけるソフトウェアトークンの有効化  
いくつかの実施形態において、認証サーバーは、ソフトウェアトークンの個人化が完了したことの証明または指示として個人化確認メッセージを使用してもよく、該個人化確認メッセージの受信時および／または検証成功時に、個人化されたソフトウェアトークンの使用を有効化してもよい。いくつかの実施形態において、認証サーバーは、有効化されていないソフトウェアトークンが生成する動的認証情報の妥当性は認めなくてもよい。いくつかの実施形態において、個人化確認メッセージは、個人化秘密暗号鍵でパラメータ化し得る暗号アルゴリズムを用いてソフトウェアトークンが生成してもよい確認認証情報を有していてもよい。いくつかの実施形態において、確認認証情報は、例えば、ソフトウェアトークンが自らの個人化秘密暗号鍵を用いて生成する動的認証情報を含んでいてもよい。いくつかの実施形態において、確認認証情報は、例えば、ソフトウェアトークンが自らの個人化秘密暗号鍵を用いて生成する第一の動的認証情報を含んでいてもよい。いくつかの実施形態において、確認認証情報は、ソフトウェアトークンが自らの個人化秘密暗号鍵を用いて生成するＭＡＣ（メッセージ認証コード）または電子署名を含んでいてもよい。いくつかの実施形態において、認証サーバーは、個人化確認メッセージに含まれる確認認証情報を検証するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、確認認証情報を生成したと仮定されているソフトウェアトークンの個人化秘密暗号鍵のサーバー値を用いて、個人化確認メッセージに含まれる確認認証情報を検証するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンの個人化秘密暗号秘密用の候補値のセットを決定していてもよい。認証サーバーは、個人化されたソフトウェアトークンによって生成された確認認証情報を含む個人化確認メッセージを受け取ってもよい。認証サーバーは、個人化されたソフトウェアトークンによって生成された該受け取った確認認証情報の妥当性確認を試みてもよく、その場合、認証サーバーは、個人化秘密暗号秘密用の各候補値を用いてもよい。個人化秘密暗号用の特定の候補値を用いて行われる、受け取った確認認証情報の妥当性確認が成功であるかどうかに基づき、認証サーバーは、その特定の候補値を選択（または昇格）あるいは拒否（または降格）してもよい。認証サーバーは、個人化秘密暗号用の任意の候補値を用いて行われる、受け取った確認認証情報の妥当性確認が成功であるかどうかに基づき、認証目的のために、個人化されたソフトウェアトークンのユーザーによる使用を有効化してもよい。いくつかの実施形態において、ソフトウェアトークンの使用を有効化するかどうかの決定にあたり、認証サーバーは、（確認認証情報の検証成功）以外の基準を用いてもよい。
【００３８】
秘密暗号鍵のシード処理用の追加データ
いくつかの実施形態において、ハードウェアトークンが生成する単一の動的認証情報のエントロピーは不十分であると考えてよい。例えば、いくつかの実施形態において、ハードウェアトークンが生成する動的認証情報は小数点８桁の列から成っていてもよく、２７ビット以下のエントロピーを提供してもよい。いくつかの実施形態において、ソフトウェアトークンは、例えば結果として生じる秘密暗号鍵のエントロピーを増大させるため、秘密暗号鍵値を決定または導出するにあたり、ハードウェアトークンの動的認証情報以外のデータ要素を使用するように構成されていてもよい。例えば、いくつかの実施形態において、ソフトウェアトークンは、ハードウェアトークンが生成する複数の動的認証情報値を使用するように構成されていてもよく、そうすることにより、斯かる動的認証情報値から導出し得る秘密暗号鍵のエントロピーは増大する可能性が生じる。
【００３９】
いくつかの実施形態において、ハードウェアトークンの動的認証情報はチャレンジに基づいており、ソフトウェアトークンも秘密暗号鍵の導出にあたりそのチャレンジを使用してもよい。例えば、いくつかの実施形態において、チャレンジは認証サーバーによって（例えばランダムに生成される値として）提供され、ユーザーはそのチャレンジ値を動的認証情報の生成のためにハードウェアトークンに提供し、同じ値を秘密暗号鍵の個人化のために（例えば生成された動的認証情報値と一緒に）ソフトウェアトークンに提供してもよい。いくつかの実施形態において、チャレンジはソフトウェアトークンにより（例えばランダム値または疑似ランダム値として）生成され、該ソフトウェアトークンによってユーザーに提供され、更に動的認証情報の生成のためにハードウェアトークンに提供され、更には、ハードウェアトークンが生成する動的認証情報の値およびソフトウェアトークンによって導出される個人化秘密暗号鍵を決定するため、（例えば個人化確認メッセージの一部として）認証サーバーに（例えばユーザーにより）提供されてもよい。
【００４０】
いくつかの実施形態において、秘密暗号鍵を導出するために他の追加データを使用してもよい。例えば、いくつかの実施形態において、ユーザーと認証サーバーの両方にとって既知のデータが使用されてもよく、その場合、斯かるデータはユーザーによってソフトウェアトークンに提供されてもよい。斯かるデータの例には、例えば、ユーザー識別データ（ユーザー名、ユーザーＩＤ等）、口座番号、ユーザーに特有のアプリケーションデータ（例えば、ユーザーに属する銀行口座の現在の残高）等が含まれる。ユーザーと認証サーバーにとって共通に既知の斯かるデータは、認証サーバーとユーザーとの間で共有されている秘密、例えばパスワードを含んでいてもよい。いくつかの実施形態において、斯かるパスワードは、ソフトウェアトークンの個人化のために１度しか使用されない個人化パスワードを含んでいてもよい。斯かる実施形態では、個人化パスワードは、十分安全であると考え得る通信チャネル、例えば書留郵便で送られる手紙等の手段によりユーザーに送達される。ソフトウェアトークンは、斯かる個人化パスワードを提供するようにユーザーに要求し、該ユーザーからその個人化パスワードを受け取るように構成されていてもよい。次に、ソフトウェアトークンは、自らを個人化するために、その個人化パスワードを使用してもよい。例えば、ソフトウェアトークンは、個人化ソフトウェアをハードウェアトークンによって生成される動的認証情報と（例えば連結により）組み合わせてもよく、該組み合わせは、他の実施形態で動的認証情報だけが使用されるやり方と同じやり方で、ソフトウェアトークンを個人化するのに使用してもよい。
【００４１】
いくつかの実施形態において、ソフトウェアトークンを個人化するのに使用する動的認証情報をユーザーが生成するためにハードウェアトークンと対話している場合のユーザーの経験は、例えばコンピューターベースのアプリケーションにユーザーの妥当性を認証するのに使用される通常の動的認証情報を生成するためにハードウェアトークンと対話している場合のユーザーの経験とは異なっていてもよい。例えば、いくつかの実施形態において、ハードウェアトークンは、ソフトウェアトークンの個人化に使用し得る動的認証情報を生成するのに、別のモードまたは別の機能を支援してもよい。いくつかの実施形態において、ユーザーは、例えば特定のメニュー項目を選択することにより、あるいは特定のボタンを押すことにより、斯かる別のモードまたは別の機能にアクセスできる。いくつかの実施形態において、ハードウェアトークンがソフトウェアトークンを個人化するのに使用可能な有効な動的認証情報を生成するには、特定の個人化トランザクションタイプが選択されなければならない、あるいはハードウェアトークンに提供されなければならない。いくつかの実施形態において、ソフトウェアトークンの個人化に使用される動的認証情報は、通常のアプリケーションの動的認証情報とは異なる特徴を有していてもよい。例えば、いくつかの実施形態において、ソフトウェアトークンの個人化に使用し得る動的認証情報は、トランザクションの署名またはユーザーの認証に使用される動的認証情報よりもかなり長くてもよい。斯かるユーザー経験および／または動的認証情報の特徴の違いは、動的認証情報の生成時にソーシャルエンジニアリングの攻撃によって騙されるというリスク、該動的認証情報がソフトウェアトークンの個人化に使用され、該生成された動的認証情報が詐欺師に手渡され、該詐欺師がその盗んだ動的認証情報をソフトウェアトークンの不正な個人化目的に使用し、そのソフトウェアトークンがアプリケーションで合法的なユーザー名を詐称するのに使用されるというリスクを少なくできる。
【００４２】
個人化データまたは個人化ソフトウェアトークンのプロバイダーを認証するためのハードウェアトークンの使用
いくつかの実施形態において、ユーザーは、ハードウェアトークンが生成する動的認証情報を用いて個人化データのプロバイダーにアクセスしてもよい。例えば、いくつかの実施形態において、ユーザーは、該ユーザーに関連付けられたハードウェアトークンが生成する動的認証情報を用いて認証サーバーへ認証を提供し、ユーザーの認証が成功した際に、認証サーバーは、個人化コードを生成し、および／またはそれをユーザーに割り当て、ユーザーに該個人化コードを伝達し、次にユーザーは該個人化コードをソフトウェアトークンに提供することにより該ソフトエアトークンを個人化してもよい。いくつかの実施形態において、ソフトウェアトークンのアプリケーションをダウンロードする際に、ユーザーのハードウェアトークンが生成する動的認証情報に基づいて、該ユーザーをまず認証してもよい。ユーザーの認証が成功した際に、ダウンロードサーバー（例えばアプリケーションストアを含んでもよい）はソフトウェアダウンロードパッケージを生成および／または割り当ててもよく、該ソフトウェアダウンロードパッケージは、一般ソフトウェアトークン・アプリケーションプログラムコードを含むだけでなく、組み込まれた個人化データによって既に個人化されているかもしれない。その場合、該ダウンロードパッケージをインストールすると、ソフトウェアトークンは自動的に個人化される。
【００４３】
ソフトトークンとハードウェアトークンおよび他のソフトトークンとの共存
いくつかの実施形態において、ハードウェアトークンもソフトウェアトークンも完全に対等に使用してよい。いくつかの実施形態において、ソフトウェアトークンの使用は、ハードウェアトークンと比べて制限されている。例えば、いくつかの実施形態において、ユーザーは、ソフトウェアトークンが生成する（有効な）動的認証情報を呈示する場合、コンピューターベースアプリケーションの特定の機能へのアクセスが許されるが、ハードウェアトークンが生成した（有効な）動的認証情報を呈示する場合には、他の特定のアプリケーションの機能にしかアクセスできない、および／または他の特定のタイプのトランザクションしか実行を依頼できない場合がある。例えば、いくつかの実施形態において、ユーザーはログインし、自分のソフトウェアトークンを用いて低リスクトランザクション（低額のお金を以前使用した口座へ移す場合等）を行なってもよいが、高リスクトランザクション（例えば、高額のお金をユーザーが以前にお金を移したことのない新しい口座に移す場合等）を行う場合には、自分のハードウェアトークンを使用しなければならない。
【００４４】
いくつかの実施形態において、２つ以上の異なる個人化ソフトウェアトークンが同じユーザーに関連付けられ交換可能に使用されてもよい。いくつかの実施形態において、新しいソフトウェアトークンインスタンスが個人化され、特定のユーザーに関連付けられ、有効化される場合に、同じユーザーに以前に関連付けられていたソフトウェアトークンインスタンスは、自動的に無効にされてもよい。
【００４５】
本発明の実施形態のいくつかの特長
既に特定のユーザーに関連付けられたハードウェアトークンが生成する動的認証情報を使用することにより、該ユーザーの制御下にある個人用の汎用コンピューティング機器に該ユーザーがダウンロードおよびインストールしたソフトウェアトークンを個人化するにあたり、安全でユーザフレンドリな方法が提供できる。ハードウェアトークンは既にユーザーに関連付けられており、既にユーザーの所有下にあるので、例えばソフトウェアトークンを個人化するためにユーザーが該ソフトウェアトークンに提供しなければならない個人化コードを含む手紙をユーザーに送達する必要はもはや無くなるであろう。その結果、ユーザーへ安全確認の手紙を送達することに伴う出費および遅延が回避される。郵便物中の安全確認の手紙が詐欺師によって奪われたりコピーされたりする危険性がもはや存在しなくなるので、この方法は、安全確認の手紙を送達するよりも安全であろう。あるいは、ハードウェアトークンが生成する動的認証情報は、他の個人化方法の安全性の増大、例えばユーザーに送達され個人化対象のソフトウェアトークンに提供される個人化パスワードをベースとした方法の安全性の増大のために、ソフトウェアトークンを個人化し得る。
【図面の簡単な説明】
【００４６】
本発明の前述の特徴および特長並びに他の特徴および特長は、添付の図面に図示されるように、本発明の実施形態に関する以下の更に具体的な記載により明白になるであろう。
【図１】図１は、本発明の一態様による例示的システムを概略的に図示する。
【図２】図２は、本発明の一態様による例示的方法を概略的に図示する。
【図３】図３は、本発明の一態様による例示的装置を概略的に図示する。
【発明を実施するための形態】
【００４７】
本発明のいくつかの実施例が以下に示されている。特定の実施例が示されているが、例示目的のためだけである点は理解されるべきである。本発明の精神および範囲を逸脱することなく、他の構成要素および構成が使用可能であることは当業者は認識するであろう。
【００４８】
図１は、本発明の１態様による本発明の例示的システム（１００）を概略的に示している。
【００４９】
いくつかの実施形態において、システムは１つ以上の個人用コンピューティング機器（１１０）、１つ以上のハードウェアトークン（１２０）および認証サーバー（１３０）を有していてもよい。いくつかの実施形態において、システムは、アプリケーションストアサーバー（１４０）を更に有していてもよい。いくつかの実施形態において、システムは、アプリケーションサーバー（１５０）を更に有していてもよい。いくつかの実施形態において、システムは、１つ以上のアクセス機器を更に有していてもよい。いくつかの実施形態において、システムは、コンピューターネットワークを更に有していてもよい。
【００５０】
いくつかの実施形態において、個人用コンピューティング機器（１１０）は、特定のユーザー（１９０）に関連付けられていてもよい。いくつかの実施形態において、個人用コンピューティング機器は、ユーザーからの入力を受け取るためのユーザー入力インターフェース（キーボード、タッチスクリーン等）およびユーザーに出力を提供するためのユーザー出力インターフェースを有していてもよい。いくつかの実施形態において、個人用コンピューティング機器は、データを格納し実行可能プログラムコードも格納するように構成されていてよいメモリコンポーネントを有していてもよい。いくつかの実施形態において、個人用コンピューティング機器は、例えばメモリコンポーネントに格納される実行可能プログラムコードを実行するように構成されていてよいデータ処理コンポーネントを有していてもよい。いくつかの実施形態において、個人用コンピューティング機器は、オペレーティングシステムを実行してもよい。いくつかの実施形態において、オペレーティングシステムにより、ユーザーは、個人用コンピューティング機器に追加の機能を提供するため、該個人用コンピューティング機器上に追加のソフトウェアアプリケーション（すなわちアプリ）をインストールできる。個人用コンピューティング機器は、例えばスマートフォンやタブレットコンピューターを含んでもよい。
【００５１】
いくつかの実施形態において、個人用コンピューティング機器にインストールし得る追加のソフトウェアアプリケーション（「アプリ」）の１つはソフトウェアトークンである。ソフトウェアトークンは、本明細書の他の箇所で更に詳細に説明されるような機能を実行するように構成されていてもよい。ソフトウェアトークンは、特に、例えば秘密暗号鍵でパラメータ化された対称暗号アルゴリズムを用いて、動的変数と該秘密暗号鍵を暗号的に組み合わせることにより、動的認証情報を生成するように構成されていてもよい。ソフトウェアトークンの秘密暗号鍵は、個人用コンピューティング機器のメモリコンポーネントに格納されてもよい。いくつかの実施形態において、ソフトウェアトークンの秘密暗号鍵は、認証サーバー（１３０）との間で共有してもよい。いくつかの実施形態において、個別の個人用コンピューティング機器におけるソフトウェアトークンの個々の各インスタンスは、それ自身の秘密暗号鍵値を有してもよく、その場合、該値は、特定のユーザーに関連付けられていてもよく、該ソフトウェアトークンの他のインスタンスの秘密暗号鍵値と異なっていてもよい。いくつかの実施形態において、ソフトウェアトークンは、個人用コンピューティング機器のユーザー出力インターフェースを用いて、生成された動的認証情報をユーザーに伝達してもよい。いくつかの実施形態において、ソフトウェアトークンは、生成された動的認証情報を更に処理するため、例えば検証したり妥当性確認を行ったりするため、認証サーバーやアプリケーションサーバー等のサーバーに、該生成された動的認証情報を直接伝達してもよい。例えば、いくつかの実施形態において、個人用コンピューティング機器は携帯電話を有してもよく、ソフトウェアトークンは、生成された動的認証情報をＳＭＳ（ショートメッセージサービス）を通してサーバーへ送るように構成されていてもよい。あるいは、いくつかの実施形態において、個人用コンピューティング機器はインターネット接続を有しており、生成した動的認証情報をインターネット経由でサーバーへ送ってもよい。いくつかの実施形態において、ソフトウェアトークンは、ユーザー入力インターフェースを通して、ユーザーから入力データ（例えば、チャレンジ、トランザクションデータ等）を受け取ってもよい。いくつかの実施形態において、ソフトウェアトークンは、別の入力機構（例えば、カメラを用いて、例えば入力データで符号化された２Ｄバーコードの像を取り込む機構）を用いて、入力データを受け取ってもよい。
【００５２】
ハードウェアトークンを用いたソフトウェアトークンのインストールおよび個人化
いくつかの実施形態において、個人用コンピューティング機器は、例えばアプリケーションストアサーバー（１４０）からソフトウェアトークンアプリケーションソフトウェアをダウンロードすることにより、該ソフトウェアトークンアプリケーションソフトウェアを取得するように構成されていてもよい。いくつかの実施形態において、ソフトウェアトークンの秘密暗号鍵を個人化すること（すなわちソフトウェア鍵の秘密暗号鍵が特定のユーザーに関連付けられた特定の値を確実に得ること）は、該ユーザーのハードウェアトークン（１２０）が生成する動的認証情報の使用が関係していてもよい。例えば、いくつかの実施形態において、ユーザーは、該ユーザーのハードウェアトークンが生成する有効な動的認証情報を提示することにより、完全に個人化されたソフトウェアトークンインスタンスをダウンロードしてもよく、その場合、ダウンロードされたソフトウェアトークンインスタンスは、ソフトウェアトークンの一般ソフトウェアコードだけでなく、ソフトウェアトークンの秘密暗号鍵値を含む個人化されたデータ要素を含んでいてもよい。いくつかの実施形態において、ソフトウェアトークンは、インストールの後で個人化段階を経るように構成されていてもよく、その期間中に、ソフトウェアトークンは、例えば該ソフトウェアトークンが該ソフトウェアトークンの秘密暗号鍵の個人化された値を導出するのに使用する個人化データ要素を受け取ってもよい。いくつかの実施形態において、１つ以上の斯かる個人化データ要素が、例えば認証サーバー（１３０）によって提供されてもよい。いくつかの実施形態において、１つ以上の斯かる個人化データ要素は、ハードウェアトークンによって生成されるユーザーの有効動的認証情報の提示後に、例えば認証サーバーによって提供されてもよい。いくつかの実施形態において、例えばソフトウェアトークンが該ソフトウェアトークンの秘密暗号鍵の個人化された値を導出するのに使用する個人化データ要素は、本明細書の他の箇所で更に詳細に説明されるように、ハードウェアトークンによって生成されたユーザーの動的認証情報を含んでいてもよい。ソフトウェアトークンの個人化およびソフトウェアトークンの他の側面に関する更に詳細な説明が、本明細書の他の箇所に見いだされるであろう。
【００５３】
いくつかの実施形態において、ハードウェアトークン（１２０）は、秘密ハードウェアトークン鍵でパラメータ化された対称暗号アルゴリズムを用いて動的変数と秘密ハードウェアトークン鍵とを暗号的に組み合わせることにより動的認証情報を生成する専用のハードウェア機器を有していてもよい。秘密ハードウェアトークン鍵は、ハードウェアトークンに含まれるメモリコンポーネントに安全に格納されていてもよい。秘密ハードウェアトークン鍵は、認証サーバー（１３０）との間で共有されてもよく、ユーザー（１９０）に関連付けられていてもよい。ハードウェアトークンは、更に、動的変数と秘密ハードウェアトークン鍵とを暗号的に組み合わせる機能を実行するように構成されてもよいデータ処理コンポーネントを有していてもよい。ハードウェアトークンは、更に、ユーザーからの入力、例えばチャレンジ、トランザクションデータ、ＰＩＮ（個人識別番号）等を受け取るためのユーザー入力インターフェース、並びにユーザーへ出力、例えばハードウェアトークンが生成する動的認証情報等を提供するためのユーザー出力インターフェースを有していてもよい。いくつかの実施形態において、ハードウェアトークンは、他の入力機構（例えば、カメラを用いて、例えば２Ｄバーコード、ＱＲコード（登録商標）等のデータで符号化された像を取り込む機構）を用いて、入力データを受け取ってもよい。いくつかの実施形態において、ハードウェアトークンは、ソフトウェアトークンの個人化に使用される予定の特定の動的認証情報を生成するように構成されていてもよい。いくつかの実施形態において、ハードウェアトークンは、スマートカード受け取り用の未接続のスマートカードリーダーを有していてもよく、未接続のスマートカードリーダーと挿入されたスマートカードが協力し合うことにより動的認証情報を生成するように構成されていてもよい。いくつかの実施形態において、未接続のスマートカードリーダーと挿入されたスマートカードは、ＥＭＶ−ＣＡＰに互換性を有していてもよい、および／またはそれに対応していてもよい。
【００５４】
いくつかの実施形態において、ハードウェアトークンは、コンパクトで手に持てる大きさの携帯用機器である。いくつかの実施形態において、ハードウェアトークンの寸法は、１３ｃｍｘ７ｃｍｘ１ｃｍを超えない。いくつかの実施形態において、ハードウェアトークンの重さは１００グラムを超えない。
【００５５】
いくつかの実施形態において、認証サーバー（１３０）は、ハードウェアトークン（１２０）および／またはユーザー（１９０）の個人用コンピューティング機器で実行しているソフトウェアトークンが生成する動的認証情報を検証するように構成されていてもよい。認証サーバーは、ユーザー達に関連付けられた秘密ハードウェアトークン鍵を斯かるユーザー達のハードウェアトークンとの間で共有するように構成されていてもよい。更に認証サーバーは、ユーザー達に関連付けられた秘密暗号鍵を、斯かるユーザー達の個人用コンピューティング機器で実行中であるかもしれない斯かるユーザー達のソフトウェアトークンとの間で共有するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、斯かる共有される秘密ハードウェアトークン鍵および／または秘密暗号鍵のサーバーコピーを格納するデータベースを有していてもよい。いくつかの実施形態において、認証サーバーは、例えばハードウェアトークンおよび／または個人用コンピューティング機器を実行中のソフトウェアトークンが生成する動的認証情報の妥当性確認を行うために、例えば暗号計算およびアルゴリズムを実行するデータ処理コンポーネントを有していてもよい。いくつかの実施形態において、認証サーバーは、検証参照値を生成し、生成された参照値を動的認証情報と比較することにより、該動的認証情報の有効性を検証するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、動的変数のサーバー値と秘密暗号鍵または秘密ハードウェアトークン鍵のサーバー値を、該秘密暗号鍵または秘密ハードウェアトークン鍵のサーバー値でパラメータ化された暗号アルゴリズムを用いて暗号的に組み合わせることにより、検証参照値を生成するように構成されていてもよい。いくつかの実施形態において、検証参照値を生成するのに認証サーバーが使用する暗号アルゴリズムは、対称暗号アルゴリズムを有していてもよい。いくつかの実施形態において、検証参照値を生成するのに認証サーバーが使用する暗号アルゴリズムは、共有される秘密ハードウェアトークン鍵または秘密暗号鍵のサーバーコピーでパラメータ化された対称暗号アルゴリズムを有していてもよい。いくつかの実施形態において、検証参照値を生成するのに認証サーバーが使用する暗号アルゴリズムは、妥当性確認対象の動的認証情報を生成するのに使用された暗号アルゴリズムと同じまたは少なくとも実質的に同じ暗号アルゴリズムを有していてもよい。ハードウェアトークンによる動的認証情報の生成は、本明細書の他の箇所で更に詳細に説明されている。
【００５６】
いくつかの実施形態において、認証サーバーは、ユーザーのソフトウェアトークンの秘密暗号鍵値を個人化するのに使用される個人化データを生成するように、および／または入手可能にするように構成されていてもよい。認証サーバーが提供する斯かる個人化データは、該サーバーが生成するチャレンジを有していてもよい。いくつかの実施形態において、認証サーバーは、ユーザーに関連付けられたハードウェアトークン（１２０）で生成された動的認証情報の検証が成功した場合に、個人化データを入手可能にしてもよい。
【００５７】
いくつかの実施形態において、認証サーバーは、ソフトウェアトークンで個人化されているユーザーの該ソフトウェアトークンの秘密暗号鍵の値を決定するように構成されていてもよく、その場合、ソフトウェアトークンは、（特に）ユーザーのハードウェアトークンが生成する動的認証情報から該秘密暗号鍵を導出していてもよい。いくつかの実施形態において、認証サーバーは、ユーザーのハードウェアトークンが生成しソフトウェアトークンの秘密暗号鍵の個人化された値を導出するのに該ソフトウェアトークンが使用した、動的認証情報の値を決定するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、動的認証情報の決定値を用いて、ソフトウェアトークンの秘密暗号鍵の個人化された値を導出するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンの秘密暗号鍵の個人化された値を決定するにあたり、ソフトウェアトークンの個人化時に該ソフトウェアトークンが生成したかもしれない個人化確認メッセージを使用するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ユーザーのハードウェアトークンが生成しソフトウェアトークンの秘密暗号鍵の個人化された値を導出するのに該ソフトウェアトークンが使用した、個人化確認メッセージを使用するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、個人化確認メッセージから同期化データを抽出し、ユーザーのハードウェアトークンが生成しソフトウェアトークンの秘密暗号鍵の個人化された値を導出するのに該ソフトウェアトークンが使用した動的認証情報値を決定するのに、斯かる同期化データを使用するように構成されていてもよい。
【００５８】
いくつかの実施形態において、認証サーバーは、ソフトウェアトークンの秘密暗号鍵値で個人化された該ソフトウェアトークンの使用を有効化するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンの秘密暗号鍵の個人化された値を該認証サーバーが決定した時点で、該ソフトウェアトークンの使用を自動的に有効化してもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンの秘密暗号鍵に関して決定したサーバー値がソフトウェアトークンが有している値と実際に同じ値であることを検証した後、該ソフトウェアトークンの使用を有効化してもよい。いくつかの実施形態において、認証サーバーは、個人化確認メッセージから確認認証情報を抽出し、該抽出した確認認証情報の妥当性確認を暗号的に行ってもよく、ソフトウェアトークンの使用の有効化は、該抽出した確認メッセージの暗号による妥当性確認の結果次第であってもよい。いくつかの実施形態における認証サーバーの機能および／または他の側面、特にソフトウェアトークンの個人化プロセスにおける認証サーバーの役割に関しては、その更なる詳細が、本明細書の他の箇所で説明される。
【００５９】
いくつかの実施形態において、認証サーバーは、１つ以上のサーバーコンピューターを有していてもよい。いくつかの実施形態において、認証サーバーに含まれる１つ以上のサーバーコンピューターは、アプリケーションサーバー（１５０）、アプリケーションストアサーバー（１４０）、アクセス機器（１６０）、個人用コンピューティング機器（１１０）等の他のコンピューティング機器と通信するように構成されていてもよい。いくつかの実施形態において、斯かる通信は、コンピューターネットワーク（１７０）上で生じてもよい。
【００６０】
いくつかの実施形態において、アプリケーションストアサーバー（１４０）は、個人用コンピューティング機器（１１０）上にダウンロードおよびインストールされるべきアプリケーションセットをダウンロードするのに利用可能に構成されていてもよい。いくつかの実施形態において、アプリケーションセットはソフトウェアトークンを有していてもよい。いくつかの実施形態において、アプリケーションセットは、ユーザーが遠隔アクセス可能なアプリケーションのサーバー部分にアクセスでき、それと相互作用できるようにするクライアントアプリを有していてもよい。いくつかの実施形態において、上記遠隔アクセス可能なアプリケーションのサーバー部分は、アプリケーションサーバー（１５０）によってホストされていてもよい。いくつかの実施形態において、ソフトウェアトークンは斯かるクライアントアプリに含まれていてもよい。例えば、いくつかの実施形態において、上記遠隔アクセス可能なアプリケーションは、インターネットまたはモバイルバンキングアプリケーションを有していてもよい。いくつかの実施形態において、クライアントアプリはモバイルバンキングクライアントアプリを有していてもよい。いくつかの実施形態において、アプリケーションストアサーバーは、例えば個人用コンピューティング機器がコンピューターネットワーク（１７０）を通してアクセス可能な１つ以上のコンピューターサーバーを有していてもよい。
【００６１】
いくつかの実施形態において、アプリケーションサーバー（１５０）は、例えばアクセス機器（１６０）を用いてユーザーがアクセスするコンピューターベースアプリケーションのサーバー部分をホストするように構成されていてもよい。いくつかの実施形態において、ユーザーとコンピューターベースアプリケーションとの相互作用は、ユーザーと関連付けられたハードウェアトークンまたはソフトウェアトークンによって生成される動的認証情報の使用により安全が確保されていてもよい。例えば、ユーザーは、ログインするのに有効なＯＴＰを提示しなければならない場合がある、あるいはユーザーがアプリケーションに実行を要求するトランザクションのデータに関して有効な電子署名を提示しなければならない場合がある。いくつかの実施形態において、アプリケーションサーバーは、動的認証情報の検証を認証サーバー（１３０）に委託してもよい。いくつかの実施形態において、認証サーバーは、アプリケーションサーバーに含まれていてもよい。いくつかの実施形態において、コンピューターベースアプリケーションはウェブベースであり、アプリケーションサーバーはウェブサーバーを有していてもよい。
【００６２】
いくつかの実施形態において、アクセス機器（１６０）は、ユーザーと相互作用するのに、ユーザー入力インターフェース（例えばキーボード）および／またはユーザー出力インターフェース（例えばディスプレイ）を有していてもよい。いくつかの実施形態において、アクセス機器はデータ処理コンポーネントを有していてもよい。いくつかの実施形態において、アクセス機器は、コンピューターベースアプリケーションのクライアント部分を実行するように構成されていてもよい。いくつかの実施形態において、アクセス機器は、ユーザーがコンピューターベースアプリケーションにアクセスするのを可能にするように構成されていてもよい。いくつかの実施形態において、コンピューターベースアプリケーションは、アプリケーションサーバー（１５０）等の遠隔コンピューター上でホストされていてもよく、アクセス機器は、例えばコンピューターネットワーク（１７０）上で該遠隔コンピューターと通信するように構成されていてもよい。いくつかの実施形態において、アクセス機器は、例えばパーソナルコンピューター（ＰＣ）、ラップトップ、タブレットコンピューター、スマートフォン等を有していてもよい。いくつかの実施形態において、アクセス機器は、個人用コンピューティング機器（１１０）と同じであってもよい。いくつかの実施形態において、コンピューターベースアプリケーションは、ウェブベースアプリケーションを有しており、アクセス機器は、ユーザーと斯かるウェブベースアプリケーションとの相互作用を可能にするため、ウェブブラウザを実行してもよい。いくつかの実施形態において、アクセス機器は、例えばスマートフォン、タブレットコンピューター等を有していてもよい。アクセス機器は、例えばモバイルバンキングアプリケーション等の遠隔アクセスアプリケーションにアクセスするのにユーザーが使用し得るクライアントアプリを有していてもよい。
【００６３】
いくつかの実施形態において、コンピューターネットワーク（１７０）は、個人用コンピューティング機器（１１０）、認証サーバー（１３０）、アプリケーションストアサーバー（１４０）、アプリケーションサーバー（１５０）および／またはアクセス機器（１６０）等のコンピューティング機器間でデータ通信を支援するように構成されていてもよい。いくつかの実施形態において、コンピューターネットワーク（１７０）は、例えばインターネットおよび／または無線データ通信ネットワークおよび／または公共携帯電話ネットワークを有していてもよい。
【００６４】
いくつかの実施形態において、個人用コンピューティング機器（１１０）は像を取り込むためのカメラを有していてもよく、個人用コンピューティング機器にインストールされたソフトウェアトークンは、デジタルメッセージで符号化された像を取り込み、該取り込んだ像を復号し、デジタルメッセージを抽出し、更に該デジタルメッセージを処理するため、上記カメラを使用するように構成されていてもよい。いくつかの実施形態において、デジタルメッセージは、ソフトウェアトークンが、該ソフトウェアトークンの秘密暗号鍵値を決定または導出するための個人化データを有していてもよい。いくつかの実施形態において、デジタルメッセージはメッセージタイプインディケーターを有していてもよく、該メッセージタイプインディケーターは、デジタルメッセージが個人化データを含む個人化メッセージを有している旨、およびソフトウェアトークンの秘密暗号鍵値を決定または導出するために該個人化データを使用すべきである旨を、該ソフトウェアトークンに指示してもよい。画像を復号し個人化メッセージを抽出した時点で、該トークンは自動的に個人化モードに入り、個人化メッセージに含まれる個人化データを用いて、秘密暗号鍵値を決定または導出してもよい。ソフトウェアトークンは、この決定または導出された秘密暗号鍵を動的認証情報を生成するのに将来使用するため、例えば個人用コンピューティング機器の不揮発性メモリに永久にまたは不特定期間、格納してもよい。いくつかの実施形態において、個人化データは、ハードウェアトークンによって生成される動的認証情報を有していてもよい。いくつかの実施形態において、個人化メッセージは、ハードウェアトークンが生成したものであってもよい。いくつかの実施形態において、個人化メッセージは、ハードウェアトークンによってデジタル個人化像に符号化されていてもよい。いくつかの実施形態において、ハードウェアトークンはグラフィックディスプレイを有していてもよい。ハードウェアトークンは、デジタル個人化像を表示するように構成されていてもよく、該個人化像は、該ハードウェアトークンによって生成される動的個人化認証情報を有する個人化メッセージで符号化されていてもよい。いくつかの実施形態において、ハードウェアトークンは個人化メッセージを生成し、該ハードウェアトークンを個人化モードに引き込む事象に応答して、該個人化メッセージを符号化したデジタル個人化像を表示してもよい。いくつかの実施形態において、斯かる事象は、ユーザーによる特定のメニューオプションの選択であってもよい。いくつかの実施形態において、斯かる事象は、ハードウェアトークンによる個人化開始メッセージの受け取りであってもよい。いくつかの実施形態において、ハードウェアトークンが受け取る個人化開始メッセージは、例えば該個人化開始メッセージの受け取りに応答して動的個人化認証情報を生成する際にハードウェアトークンが使用するチャレンジ等のデータ要素を有していてもよい。
【００６５】
例えば、いくつかの実施形態において、ソフトウェアトークンを個人化するプロセスは、認証サーバーによる個人化開始メッセージの生成および該個人化開始メッセージの画像への符号化を嚆矢としてもよい。斯かる画像は、（例えば、ユーザーが安全に遠隔アプリケーションにログインした後、出来れば、ハードウェアトークンを用いてユーザーが本物であることを該遠隔アプリケーションに認証した後）例えば印刷した手紙、電子メールまたはアクセス機器のディスプレイ上でユーザーに提供してもよい。ハードウェアトークンは画像を取り込むためのデジタルカメラを有してもよく、ユーザーは、ハードウェアトークンを用いて個人化開始メッセージで符号化されている画像を取り込んでもよい。画像を取り込んだ時点で、ハードウェアトークンは該取り込んだ画像を復号し、個人化開始メッセージを抽出してもよい。ハードウェアトークンは受け取ったメッセージを調査し、それを個人化開始メッセージとして識別してもよい。ハードウェアトークンは個人化モードに入ってもよい。ハードウェアトークンは、動的個人化認証情報を生成してもよい。ハードウェアトークンは、受け取った個人化開始メッセージから個人化チャレンジ（存在する場合）を抽出し、動的個人化認証情報を生成するのにハードウェアトークンが使用するアルゴリズム用のデータ要素として、その抽出した個人化チャレンジを使用してもよい。ハードウェアトークンは、生成された動的個人化認証情報を有する個人化メッセージを生成してもよい。ハードウェアトークンは、生成された個人化メッセージを個人化像に符号化し、該個人化像をディスプレイ上に表示してもよい。ハードウェアトークンのディスプレイ上に表示された該個人化像は、次に、ユーザーの個人用コンピューティング機器のカメラによって取り込まれ、本明細書の他の箇所に記載されるように、ソフトウェアトークンを個人化するため、ユーザーの個人用コンピューティング機器上の該ソフトウェアトークンが使用してもよい。  
いくつかの実施形態において、認証サーバーからハードウェアトークンへ個人化データを安全に転送するため、個人化開始メッセージは安全チャネルを提供してもよい。例えば、いくつかの実施形態において、個人化開始メッセージは、機密性が暗号的に保護されているデータを有していてもよい。いくつかの実施形態において、個人化開始メッセージの信頼性および完全性は、暗号的にハードウェアトークンによって検証可能であってもよい。例えば、いくつかの実施形態において、個人化開始メッセージは、ハードウェアトークンによって復号される暗号化部分を有していてもよい。いくつかの実施形態において、認証サーバーは、該サーバーとハードウェアトークンとの間で共有される暗号化鍵でパラメータ化された対称暗号化アルゴリズム（例えばＡＥＳ等）を用いて、この部分を暗号化してもよく、ハードウェアトークンは、該共有された暗号化鍵のコピーでパラメータ化された相補対称復号アルゴリズムを用いて、この部分を復号するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、該認証サーバーとハードウェアトークンとの間で共有される認証鍵でパラメータ化された対称暗号署名アルゴリズムを用いて、個人化開始メッセージの部分に署名またはＭＡＣ（メッセージ認証コード）を生成し、該生成された署名またはＭＡＣを個人化開始メッセージに含めるように構成されていてもよく、ハードウェアトークンは、認証鍵のコピーでパラメータ化された相補対称暗号を用いて、該署名またはＭＡＣを検証するように構成されていてもよい。いくつかの実施形態において、対称暗号署名アルゴリズムは、対称暗号化アルゴリズムに基づいていてもよい。いくつかの実施形態において、対称暗号署名アルゴリズムは、ＳＨＡ−２（安全ハッシュアルゴリズム２）やＨＭＡＣ等の暗号ハッシュ関数に基づいていてもよい。
【００６６】
いくつかの実施形態において、認証サーバーは、第一の個人化シードを生成するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、完全乱数生成器または疑似乱数生成器によって生成される乱数として、第一の個人化シードを生成してもよい。いくつかの実施形態において、認証サーバーは初期値を生成し、第一の個人化シードを該初期値の関数として生成してもよい。いくつかの実施形態において、初期値は、完全乱数生成器または疑似乱数生成器によって生成されてもよい。いくつかの実施形態において、初期値は、マスター鍵および鍵多様化データ要素、例えばソフトウェアトークンのシリアル番号から導出してもよい。いくつかの実施形態において、認証サーバーは、第一の個人化シードの値を初期値に設定してもよい。いくつかの実施形態において、認証サーバーは、初期値を暗号化し、第一の個人化シード値を該暗号化した初期値に設定することにより、該第一の個人化シードを生成してもよい。
【００６７】
いくつかの実施形態において、第一の個人化シードは、少なくとも６４、９６あるいは１２８ビットのエントロピーを有していてもよい。いくつかの実施形態において、第一の個人化シードは、少なくとも６４、９６あるいは１２８ビットのサイズを有していてもよい。
【００６８】
認証サーバーは第一の個人化シードを暗号化してもよい。該サーバーは、第一の個人化シード上に署名またはＭＡＣを生成してもよい。該サーバーは、暗号化した第一の個人化シードと該第一の個人化シード上の署名とを有する（第一の）個人化開始メッセージを生成してもよい。いくつかの実施形態において、暗号化された第一の個人化シードは、第一の個人化シード以外のデータも有する（第一の）個人化開始メッセージの暗号化部分に含まれていてもよい。いくつかの実施形態において、認証サーバーは、第一の個人化シードだけでなく該第一の個人化シード以外のデータも含む（第一の）個人化開始メッセージに含まれるデータ上に署名またはＭＡＣを生成してもよい。いくつかの実施形態において、署名またはＭＡＣは、暗号化部分に含まれるデータに含まれていてもよい。他の実施形態では、署名またはＭＡＣは、暗号化部分を有するデータ上に生成されてもよい。
【００６９】
いくつかの実施形態において、（第一の）個人化開始メッセージは、本明細書の他の箇所で更に詳細に説明されるように、認証サーバーからハードウェアトークンに転送され、該ハードウェアトークンによって受け取られてもよい。（第一の）個人化開始メッセージは、例えばデジタル像（２Ｄバーコード、ＱＲコード（登録商標）等）に符号化されてもよく、該デジタル像はハードウェアトークンに含まれるデジタルカメラによって取り込まれ、ハードウェアトークンは取り込んだ画像を復号して、（第一の）個人化開始メッセージを読み出すようにしてもよい。
【００７０】
いくつかの実施形態において、ハードウェアトークンは、第一の個人化シードを有する該受け取った（第一の）個人化開始メッセージの部分の信頼性および／または完全性を検証してもよい。第一の個人化シードに関するハードウェアトークンの他の行動は、斯かる検証が成功するかどうかを条件とする。いくつかの実施形態において、ハードウェアトークンは第一の個人化シードを有する該受け取った（第一の）個人化開始メッセージの部分を復号し、第一の個人化シードを読み出してもよい。
【００７１】
いくつかの実施形態において、ハードウェアトークンは、次に、第一の個人化シードから第二のの個人化シードを計算してもよい。いくつかの実施形態において、ハードウェアトークンは、認証サーバーが明確に知っているデータだけを用いて、認証サーバーにとって完全に決定論的方法で、第一の個人化シードから第二のの個人化シードを計算してもよい。例えば、いくつかの実施形態において、第二のの個人化シードは第一の個人化シードと同一であってもよい。いくつかの実施形態において、ハードウェアトークンは、変換関数を第一の個人化シードに適用することにより、第一の個人化シードから第二のの個人化シードを計算してもよい。いくつかの実施形態において、変換関数は暗号ハッシュ関数等の暗号関数を有していてもよい。いくつかの実施形態において、暗号関数は、第一の秘密変換鍵でパラメータ化されていてもよい。いくつかの実施形態において、第一の秘密変換鍵は、他のハードウェアトークンの秘密変換鍵と比べて、当該ハードウェアトークンに特有のものであってもよい。いくつかの実施形態において、第一の秘密変換鍵は、認証サーバーとの間で共有してもよい。いくつかの実施形態において、秘密変換鍵は１２８ビットのサイズを有していてもよい。
【００７２】
いくつかの実施形態において、第二のの個人化シードは、少なくとも６４、９６あるいは１２８ビットのエントロピーを有していてもよい。いくつかの実施形態において、第二のの個人化シードは、少なくとも６４、９６あるいは１２８ビットのサイズを有していてもよい。
【００７３】
いくつかの実施形態において、ハードウェアトークンは、第二のの個人化シードを有する第二のの個人化メッセージを生成してもよい。第二のの個人化メッセージは、次に、本明細書の他の箇所で更に詳細に説明されるように、ハードウェアトークンから個人化対象のソフトウェアトークンに転送され、該ソフトウェアトークンにより受け取られてもよい。ハードウェアトークンは、例えば第二のの個人化メッセージを第二ののデジタル像（２Ｄバーコード、ＱＲコード（登録商標）等）に符号化し、該第二ののデジタル像を例えばハードウェアトークンに含まれる（グラフィック）ディスプレイ上に表示してもよい。ソフトウェアトークンは、（例えば、ソフトウェアトークンを実行している一般コンピューティング機器に含まれるデジタルカメラを用いて）該第二ののデジタル像をハードウェアトークンのディスプレイから取り込んでもよく、該ソフトウェアトークンは、取り込んだ画像を復号し、第二のの個人化メッセージを読み出してもよい。
【００７４】
ソフトウェアトークンは、第二の個人化メッセージから第二の個人化シードを読み出してもよい。
【００７５】
ソフトウェアトークンは、次に、読み出された第二の個人化シードからソフトウェアトークン秘密暗号鍵を導出してもよい、ソフトウェアトークンは、読み出された第二の個人化シードからソフトウェアトークン秘密暗号鍵を導出するように構成されていてもよい。いくつかの実施形態において、ソフトウェアトークンは、認証サーバーが明確に知っているデータだけを用いて、認証サーバーにとって完全に決定論的方法で、第二の個人化シードからソフトウェアトークン秘密暗号鍵を計算してもよい。例えば、いくつかの実施形態において、ソフトウェアトークン秘密暗号鍵は第二の個人化シードと同一であってもよい。いくつかの実施形態において、ハードウェアトークンは、ソフトウェアトークン変換関数を第二の個人化シードに適用することにより、該第二の個人化シードからソフトウェアトークン秘密暗号鍵を計算してもよい。いくつかの実施形態において、ソフトウェアトークン変換関数は、暗号ハッシュ関数等の暗号関数を有してもよい。いくつかの実施形態において、該暗号関数は、第二の秘密変換鍵でパラメータ化されていてもよい。いくつかの実施形態において、第二の秘密変換鍵は、ソフトウェアトークンのセットに関して同じであってもよい。いくつかの実施形態において、第二の秘密変換鍵は、認証サーバーとの間で共有してもよい。いくつかの実施形態において、第二の秘密変換鍵は１２８ビットのサイズを有してもよい。いくつかの実施形態において、ソフトウェアトークンは、本明細書の他の箇所で更に詳細に説明されるように、ハードウェアトークンが生成し該ハードウェアトークンから該ソフトウェアトークンが受け取る動的認証情報を用いて該ソフトウェアトークンが秘密暗号鍵を個人化するのと同じ機構を用いて、第二の個人化シードからソフトウェアトークン秘密暗号鍵を導出してもよい。
【００７６】
ソフトウェアトークンは、例えば、動的認証情報を生成するのに将来使用するため、導出されたソフトウェアトークン秘密暗号鍵を不揮発性メモリに格納してもよい。
【００７７】
ソフトウェアトークンは、導出されたソフトウェアトークン秘密暗号鍵を用いて確認認証情報を生成するように構成されていてもよい。
【００７８】
認証サーバーは、ソフトウェアトークン秘密暗号鍵のサーバーコピー値を決定するように構成されていてもよい。いくつかの実施形態において、該認証トークンは、ハードウェアトークンと同じ第二の個人化シード値を決定するように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークンと同じソフトウェアトークン秘密暗号鍵値を導出してもよい。
【００７９】
いくつかの実施形態において、認証サーバーは、ハードウェアトークンと同じ方法で、第一の個人化シードから第二の個人化シードのコピーを計算してもよい。いくつかの実施形態において、認証サーバーは、ハードウェアトークンと同じ変換関数を第一の個人化シードに適用することにより、第一の個人化シードから第二の個人化シードのコピーを計算してもよい。いくつかの実施形態において、変換関数は、ハードウェアトークンと認証サーバーとの間で共有される第一の秘密変換鍵でパラメータ化し得る暗号関数を有していてもよく、認証サーバーは、ハードウェアトークンの第一の秘密変換鍵値を（例えばデータベースから）読み出し、変換関数を第一の個人化シードに適用して第二の個人化シードを計算する際に、上記読み出された値を用いて該変換関数をパラメータ化してもよい。
【００８０】
いくつかの実施形態において、認証サーバーは、ソフトウェアトークンと同じ方法で、第二の個人化シードからソフトウェアトークン秘密暗号鍵のコピーを導出してもよい。いくつかの実施形態において、認証サーバーは、計算した第二の個人化シードに第二の変換関数を適用することにより、該計算した第二の個人化シードからソフトウェアトークン秘密暗号鍵のコピーを計算してもよい。いくつかの実施形態において、第二の変換関数は、ソフトウェアトークン変換関数と同一であってもよい。いくつかの実施形態において、第二の変換関数は、認証サーバーとソフトウェアトークンとの間で共有し得る第二の秘密変換鍵でパラメータ化してもよい暗号関数を有してもよく、認証サーバーは、ソフトウェアトークンの第二の秘密変換鍵の値を読み出し、第二の変換関数を第二の個人化シードに適用して該計算された第二の個人化シードから第二の個人化鍵のコピーを導出する際に、上記読み出された値を用いて該第二の変換関数をパラメータ化してもよい。
【００８１】
いくつかの実施形態において、認証サーバーは、ソフトウェアトークンが個人化された後、該ソフトウェアトークンが生成した確認認証情報を受け取るように構成されていてもよい。いくつかの実施形態において、認証サーバーは、ソフトウェアトークン秘密暗号鍵のコピーを用いて、受け取った確認認証情報を検証してもよい。例えば、いくつかの実施形態において、認証サーバーは、確認認証情報の１つ以上の期待参照値を計算するのに、ソフトウェアトークン秘密暗号鍵のコピーを用いてもよい。認証サーバーは、受け取った確認認証情報と計算した１つ以上の期待参照値とを比較し、該受け取った確認認証情報が該計算された参照値の一つに一致すれば、認証サーバーは、受け取った確認認証情報の検証は成功したと見なしてもよい。
【００８２】
いくつかの実施形態において、認証サーバーは、ソフトウェアトークン秘密暗号鍵のコピー（またはソフトウェアトークン秘密暗号鍵を再構築するのに使用する等価のデータ）を、将来の使用のため、例えばソフトウェアトークンが生成する動的認証情報を検証するため、不揮発性メモリに格納してもよい。いくつかの実施形態において、認証サーバーは、個人化されたソフトウェアトークンの使用を有効にしてもよい。いくつかの実施形態において、ソフトウェアトークン秘密暗号鍵を将来の使用のために不揮発性メモリへ格納すること、および／または個人化されたソフトウェアトークンを有効化することは、受け取った確認認証情報の検証が成功裏に行われたかどうかを条件としてもよい。
【００８３】
図２は、本発明の１態様による本発明の例示的方法（２００）を概略的に示すものである。本明細書の他の箇所に記載される任意のシステムで、該方法の変形を使用してもよい。
【００８４】
いくつかの実施形態において、上記方法は、ソフトウェアトークンを例えばアプリケーションストアからダウンロードすること（２１０）、および／またはユーザーの個人用コンピューティング機器に該ソフトウェアトークンをインストールすることを有してもよい。
【００８５】
いくつかの実施形態において、上記方法は、ユーザーに関連付けられたハードウェアトークンが動的認証情報を生成すること（２２０）を有してもよい。
【００８６】
いくつかの実施形態において、上記方法は、ハードウェアトークンが生成する動的認証情報値を用いて、ソフトウェアトークンの秘密暗号鍵値を個人化すること（２３０）を有してもよい。
【００８７】
いくつかの実施形態において、上記方法は、ハードウェアトークンが生成した動的認証情報を認証サーバーへ提出すること、および認証サーバーにおいて、ハードウェアトークンが生成した動的認証情報の正当性を検証することを有してもよい。
【００８８】
いくつかの実施形態において、上記方法は、１つ以上の個人化サーバーデータ要素を認証サーバーにおいて生成すること、および／または入手可能にすることを有してもよい。いくつかの実施形態において、上記１つ以上の個人化サーバーデータ要素は、サーバーチャレンジを有してもよい。
【００８９】
いくつかの実施形態において、上記方法は、個人用コンピューティング機器において、１つ以上の外部個人化データ要素の値をソフトウェアトークンが受け取ることを有してもよい。
【００９０】
いくつかの実施形態において、１つ以上の外部個人化データ要素は、ハードウェアトークンが生成する動的認証情報を有してもよい。上記方法は、個人用コンピューティング機器におけるソフトウェアトークンによって、生成された動的認証情報値を受け取ること（２４０）を有してもよい。
【００９１】
いくつかの実施形態において、１つ以上の外部個人化データ要素は、１つ以上の個人化サーバーデータ要素を有してもよい。上記方法は、個人用コンピューティング機器におけるソフトウェアトークンによって、１つ以上の個人化サーバーデータ要素の値を受け取ること（２４０）を有してもよい。
【００９２】
いくつかの実施形態において、上記方法は、ソフトウェアトークンが１つ以上の内部個人化データ要素の値を決定することを有してもよい。内部個人化データ要素は、例えば個人用コンピューティング機器のクロックが提供する時間値を有していてもよい。いくつかの実施形態において、内部個人化データ要素は、ソフトウェアトークンが生成し得る乱数値または疑似乱数値、あるいはソフトウェアトークンが個人用コンピューティング機器から受け取り得る乱数値または疑似乱数値を有していてもよい。例えば、いくつかの実施形態において、乱数値は、ユーザーのハードウェアトークンが生成する動的認証情報の連続数の記入等、ユーザーによる特定の行為間の時間差の測定から、ソフトウェトークンによって生成されてもよい。
【００９３】
いくつかの実施形態において、上記方法は、１つ以上の個人化データ要素の値をソフトウェアトークンが取得することを有してもよい。いくつかの実施形態において、取得した１つ以上の個人化データ要素値は、１つ以上の外部個人化データ要素値を有していてもよい。いくつかの実施形態において、取得した１つ以上の個人化データ要素値は、１つ以上の内部個人化データ要素値を有していてもよい。
【００９４】
いくつかの実施形態において、上記方法は、ソフトウェアトークンを個人化することを有してもよい。いくつかの実施形態において、上記方法は、ソフトウェトークンの秘密暗号鍵の値を個人化することを有してもよい。いくつかの実施形態において、ソフトウェアトークンは、ハードウェアトークンが生成する動的認証情報の値を使用することを有してもよい。
【００９５】
いくつかの実施形態において、上記方法は、ソフトウェアトークンが、１つ以上の個人化データ要素から秘密暗号鍵を導出すること（２５０）を有してもよい。いくつかの実施形態において、１つ以上の個人化データ要素から秘密暗号鍵を導出することは、ソフトウェアトークンが、該１つ以上の個人化データ要素に一方向ハッシュアルゴリズム等の暗号アルゴリズムを適用することを有してもよい。いくつかの実施形態において、斯かる暗号アルゴリズムは、認証サーバーとの間で共有し得るマスターシークレットでパラメータ化してもよい。いくつかの実施形態において、該マスターシークレットは、２つ以上の複数のソフトウェアトークンインスタンスとの間で共有してもよい。
【００９６】
いくつかの実施形態において、ソフトウェアトークンは、該ソフトウェアトークンの個人化の方法の一環として秘密暗号鍵値を決定または導出した後に、該値を格納するように構成されていてもよい。ソフトウェアトークンは、例えば、斯かる値を個人用コンピューティング機器のメモリに格納してもよい。いくつかの実施形態において、ソフトウェアトークンは、秘密暗号鍵値を永久的に格納してもよい。いくつかの実施形態において、ソフトウェアトークンは、個人化された後、動的認証情報を生成する必要が生じた時に、格納されている秘密暗号鍵値をメモリから読み出す。すなわち、ソフトウェアトークンは、一旦個人化されれば、ハードウェアトークンの存在なしに、ハードウェアトークンが生成する動的個人化認証情報をそれ以上要求することなしに、自動的に動的認証情報を生成できてもよい。
【００９７】
いくつかの実施形態において、上記方法は、ソフトウェアトークンが個人化確認メッセージを生成し、利用可能とすることを有してもよい。いくつかの実施形態において、個人化確認メッセージは、ハードウェアトークンが動的認証情報を生成するのに使用した動的変数値に関連する同期化データを有していてもよい。いくつかの実施形態において、個人化確認メッセージは、内部個人化データ要素に関連した値を有していてもよい。いくつかの実施形態において、上記方法は、ソフトウェアトークンが暗号的に確認認証情報を生成し、該確認認証情報を個人化確認メッセージに含めることを有していてもよい。いくつかの実施形態において、ソフトウェアトークンは、該ソフトウェアトークンの個人化秘密暗号鍵でパラメータ化された暗号アルゴリズムを用いて、暗号的に確認認証情報を生成してもよい。いくつかの実施形態において、確認認証情報は、ソフトウェアトークンが動的変数値と該ソフトウェアトークンの個人化秘密暗号鍵とを暗号的に組み合わせることにより生成した動的認証情報を有していてもよい。
【００９８】
いくつかの実施形態において、上記方法は、個人化確認メッセージを認証サーバーへ伝達することを有していてもよい。いくつかの実施形態において、上記方法は、認証サーバーにおいて、個人化確認メッセージを受け取ることを有していてもよい。
【００９９】
いくつかの実施形態において、上記方法は、ソフトウェアトークンにおいて個人化された秘密暗号鍵の値を認証サーバーにおいて決定することを有していてもよい。斯かる値を決定した時点で、認証サーバーは、例えばユーザーの識別名にリンクしたデータベースに該値を格納してもよい。そうすることにより、認証サーバーは、ソフトウェアトークンが生成した動的認証情報の妥当性確認の検証でその値が後に使用される際に、それを読み出しできる。
【０１００】
いくつかの実施形態において、ソフトウェアトークンにおいて個人化された秘密暗号鍵の値を認証サーバーにおいて決定することは、ソフトウェアトークンの秘密暗号鍵の個人化された値を導出するのにソフトウェアトークンが使用した個人化データ要素値を認証サーバーにおいて取得すること、および取得された個人化データ要素値から個人化された秘密暗号鍵の値を認証サーバーにおいて導出すること（２７０）を有してもよい。
【０１０１】
いくつかの実施形態において、秘密暗号鍵の個人化された値を導出するのにソフトウェアトークンが使用した個人化データ要素値を認証サーバーで取得することは、ソフトウェアトークンが使用した外部個人化データ要素のうち少なくともいくつかの値を認証サーバーにおいて取得することを有していてもよい。いくつかの実施形態において、外部個人化データ要素のうち少なくともいくつかの値を認証サーバーにおいて取得することは、少なくともハードウェアトークンが生成した動的認証情報、すなわちソフトウェアトークンが該ソフトウェアトークンの秘密暗合鍵の値を個人化するのに使用した動的認証情報の値を認証サーバーにおいて決定すること（２６０）を有していてもよい。いくつかの実施形態において、動的認証情報値を認証サーバーにおいて決定することは、受け取った個人化確認メッセージから同期化データを抽出し、該抽出した同期化データを用いて、動的認証情報を生成するのにハードウェアトークンが使用したかもしれない動的変数値を決定することを有していてもよい。
【０１０２】
いくつかの実施形態において、秘密暗号鍵の個人化された値を導出するのにソフトウェアトークンが使用した個人化データ要素値を認証サーバーで取得することは、ソフトウェアトークンが使用した内部個人化データ要素のうち少なくともいくつかの値を認証サーバーにおいて取得することを有していてもよい。いくつかの実施形態において、内部個人化データ要素のうち少なくともいくつかの値を認証サーバーにおいて取得することは、受け取った個人化確認メッセージから内部個人化データ要素に関連する値を抽出し、斯かる抽出した値を用いて、内部個人化データ要素のうち少なくともいくつかの値を決定することを有していてもよい。
【０１０３】
いくつかの実施形態において、上記方法は、認証サーバーがソフトウェアトークンの使用を有効化すること（２８０）を有していてもよい。いくつかの実施形態において、認証サーバーがソフトウェアトークンの使用を有効化することは、認証サーバーが決定した秘密暗号鍵値がソフトウェアトークンが個人化した秘密暗号鍵値に対応することを該認証サーバーが成功裏に検証するかどうか次第であってもよい。いくつかの実施形態において、斯かる検証は、認証サーバーが受け取った個人化確認メッセージから確認認証情報を抽出し、該抽出された確認認証情報の正当性を、認証サーバーが決定した秘密暗号鍵値でパラメータ化してもよい暗号アルゴリズムを用いて検証することを有してもよい。
【０１０４】
いくつかの実施形態において、(本明細書記載の個人化方法と同じ個人化方法、またはそれとは別の個人化方法によって)既に個人化されている第一のソフトウェアトークンは、該第一のソフトウェアトークンとは異なるがやはり個人化の対象である別の第二のソフトウェアトークンを個人化するのに動的個人化認証情報を生成するハードウェアトークンに置き換わってもよい。第一のソフトウェアトークンは、ハードウェアトークンの役割をエミュレートするように構成されていてもよい。斯かる第一のソフトウェアトークンおよび上記第二のソフトウェアトークンを実行しているコンピューティング機器は、本明細書の他の箇所に記載の任意のハードウェアトークンの任意の役割または機能を実行するように構成されていてもよい、あるいは該任意のハードウェアトークンの任意の特徴およびコンポーネントを有するように構成されていてもよい。
【０１０５】
本発明の変形において、第一の個人化開始メッセージがサーバーによって生成され、第一のトークンがそれを受け取ってもよく、その後、第一のトークンが第二の個人化メッセージを生成し、本明細書の他の箇所で更に詳細に記載される個人化方法に従って個人化される対象である第二のソフトウェアトークンが、該第二の個人化メッセージを受け取ってもよい。
【０１０６】
いくつかの実施形態において、第一のトークンは、既に個人化されユーザーに関連付けられたトークンであってよい。いくつかの実施形態において、第一のトークンはハードウェアトークンであってもよく、他の実施形態では、第一のトークンはソフトウェアトークンであってもよい。
【０１０７】
図３は、本発明の１態様による個人化装置（３００）を示している。
【０１０８】
いくつかの実施形態において、個人化装置は、デジタルカメラを有する入力インターフェース（３４０）、グラフィックディスプレイを有する出力インターフェース（３３０）、メモリ（３６０）、並びに入力インターフェース、出力インターフェースおよびメモリに接続されているデータ処理装置（３５０）を有していてもよい。入力インターフェースは、第一の個人化開始メッセージで符号化された第一の２Ｄバーコード像を上記デジタルカメラで取り込むことにより、上記第一の個人化開始メッセージを受け取るように構成されていてもよく、データプロセッサは、上記取り込まれた第一の２Ｄバーコード像を復号して上記第一の個人化開始メッセージを取得し、受け取った第一の個人化開始メッセージから第一の個人化シードを読み出し、上記読み出された第一の個人化シードから第二の個人化シードを生成し、上記生成された第二の個人化シードを有する第二の個人化メッセージを生成し、上記第二の個人化メッセージを用いて第二の２Ｄバーコード像を符号化するように構成されていてもよく、出力インターフェースは、上記グラフィックディスプレイに上記第二の２Ｄバーコード像を表示することにより、上記第二の個人化メッセージを出力するように構成されていてもよく、上記メモリは、受け取った第一の個人化開始メッセージから上記第一の個人化シードの読み出しのため、あるいは上記読み出された第一の個人化シードから上記第二の個人化シードの生成のため、特定のユーザーに関連付けられ上記データプロセッサが使用する秘密トークン鍵を格納するように構成されていてもよい。
【０１０９】
いくつかの実施形態において、データプロセッサ（３５０）は、デジタルデータ処理コンポーネントを有していてもよい。いくつかの実施形態において、データプロセッサは、マイクロプロセッサ、マイクロコントローラ、ＦＰＧＡ（書き換え可能ゲートアレイ）等のＩＣ（集積回路）を有していてもよい。
【０１１０】
いくつかの実施形態において、メモリ（３６０）は、ＲＡＭ（ランダムアクセスメモリ）を有していてもよい。いくつかの実施形態において、メモリは、ＲＯＭ（読み出し専用メモリ）等の不揮発性メモリを有していてもよい。いくつかの実施形態において、メモリは、ＥＥＰＲＯＭ（電気的消去可能プログラマブル読み出し専用メモリ）、フラッシュ、ハードディスク等の書き込み可能不揮発性メモリを有していてもよい。
【０１１１】
いくつかの実施形態において、個人化装置は、該装置のユーザーから入力を取得するための、ヒトによる入力インターフェース（３２０）を更に有していてもよい。ヒトによる入力インターフェースは、例えば、キーボードまたはタッチスクリーンを有していてもよい。
【０１１２】
いくつかの実施形態において、個人化装置は、動的変数値を提供するように構成されているコンポーネント（３７０）を更に有していてもよい。例えば、該コンポーネントはリアルタイムクロックを有していてもよい。
【０１１３】
いくつかの実施形態において、データプロセッサは、コンポーネント（３７０）によって提供されてもよい動的変数値と、例えばメモリ（３６０）に格納されていてもよい秘密暗号鍵とを暗号的に組み合わせることにより、動的認証情報を生成するように更に構成されていてもよい。
【０１１４】
本発明の１態様は、第一のソフトウェアトークンを個人化する方法を提供する。
【０１１５】
第一の方法の第一のセット実施形態において、該方法は、第一の認証トークンにおいて、第一の動的変数と、第一の認証トークンと認証サーバーとの間で共有される第一の認証情報生成鍵とを暗号的に組み合わせることにより、第一の動的認証情報を生成する工程であって、第一の認証情報生成鍵は特定のユーザーに関連付けられているものである、工程と、第一の認証トークンとは異なる第二のソフトウェア認証トークンにおいて、生成された第一の動的認証情報を受け取る工程と、第二のソフトウェア認証トークンにおいて、受け取った第一の動的認証情報から第二の認証情報生成鍵の値を導出する工程と、導出された第二の認証情報生成鍵でパラメータ化された暗号アルゴリズムを用いて、確認認証情報を生成する工程と、認証サーバーにおいて、確認認証情報を受け取る工程と、認証サーバーにおいて、第二の認証情報生成鍵のサーバーコピーを決定する工程と、認証サーバーにおいて、第二の認証情報生成鍵のサーバーコピーを用いて、受け取った確認認証情報の妥当性確認を行う工程と、認証サーバーにおいて、確認認証情報の妥当性確認が成功した場合に、認証サーバーにおいて、決定された第二の認証情報生成鍵のサーバーコピーを特定のユーザーに関連付け、認証サーバーにおいて、特定のユーザーに関連付けられた第二の認証情報生成鍵の決定されたサーバーコピーを不揮発性メモリに格納する工程と、を有してもよい。本方法の種々の工程の更に詳細な説明が、本明細書の他の箇所に見出されるであろう。いくつかの実施形態において、第二の認証情報生成鍵のサーバーコピーの決定値自体が格納されてもよい。別の実施形態では、第二の認証情報生成鍵のサーバーコピーの決定値の再構築を可能にする等価のデータが格納されてもよい。いくつかの実施形態において、第二のソフトウェア認証トークンは、スマートフォン、タブレットコンピューター等の汎用コンピューティング機器上で実行されているソフトウェア認証アプリケーションを有していてもよく、その場合、第二のソフトウェア認証トークンは、第二の動的変数と導出された第二の認証情報生成鍵とを暗号的に組み合わせることにより、動的認証情報を生成するように構成されていてもよい。いくつかの実施形態において、第二の認証情報生成鍵のサーバーコピーを用いて、受け取った確認認証情報の妥当性確認を認証サーバーで行う工程は、受け取った確認認証情報に暗号妥当性確認アルゴリズムを適用することを有してもよい。その場合、上記暗号妥当性確認アルゴリズムは、上記第二の認証情報生成鍵のサーバーコピーでパラメータ化されている。
【０１１６】
いくつかの実施形態において、上記方法は、第二のソフトウェアトークンにおいて、第二の動的変数と導出された第二の認証情報生成鍵の値とを組み合わせることによって、動的認証情報を生成する工程と、認証サーバーにおいて、第二の動的認証情報を受け取る工程と、認証サーバーにおいて、格納した第二の認証情報生成鍵のサーバーコピーを読み出す工程と、認証サーバーにおいて、読み出された第二の認証情報生成鍵のサーバーコピーを用いて、受け取った第二の動的認証情報を検証する工程と、認証サーバーにおいて、受け取った第二の動的認証情報の検証が成功の場合、認証信号を生成する工程と、を更に有する第一のセット実施形態の任意の方法を有してもよい。
【０１１７】
いくつかの実施形態において、上記方法は、認証サーバーにおいて、上記第二の認証情報生成鍵のサーバーコピーの決定のために、受け取った確認認証情報を使用する工程を更に有する、前述の任意の実施形態の任意の方法を有してもよい。いくつかの実施形態において、上記方法は、認証サーバーにおいて、更に、第一の動的変数の可能な値のセットを決定する工程と、認証サーバーにおいて、決定された第一の動的変数の各可能な値について、第一の認証情報生成鍵を用いて第一の動的認証情報の参照値を生成する工程と、生成された第一の動的認証情報参照値の各々について、第二の認証情報生成鍵のための候補値を導出する工程と、認証サーバーにおいて、生成された第二の認証情報生成鍵の候補値の中から、受け取った確認認証情報に関して成功裏に妥当性確認が行われる候補値を検索する工程と、受け取った確認認証情報に関して成功裏に妥当性確認が行われた候補値が見つかった場合に、認証サーバーにおいて、第二の認証情報生成鍵のサーバーコピーを、受け取った確認認証情報に関して成功裏に妥当性確認が行われた候補値として決定する工程とを有してもよい。いくつかの実施形態において、第一の認証トークンが生成し第二のソフトウェア認証トークンによって受け取られる第一の動的認証情報は、第一の認証トークンによって第一の動的認証情報の生成に使用される第一の動的変数値に関する情報を含む同期化データを有してもよく、確認認証情報の生成工程は、第二のソフトウェア認証トークンにおいて、受け取った第一の動的認証トークンに含まれる同期化データを抽出し、抽出した同期化データを確認認証情報に含めることを有してもよく、認証サーバーにおいて、第一の動的変数の可能な値のセットを決定することは、認証サーバーにおいて、受け取った確認認証情報に含まれる同期化データを抽出し、抽出した同期化データを、第一の動的変数の可能な値のセット用の値の選択に使用することを有してもよい。
【０１１８】
本発明の別の態様は、第一のソフトウェアトークン個人化システムを提供する。
【０１１９】
第一のシステムのいくつかの実施形態において、第一の認証トークンと、第一の認証トークンとは異なる第二のソフトウェア認証トークンと、認証サーバーと、を有し、第一の認証トークンは、第一の動的変数と、第一の認証トークンと前記認証サーバーとの間で共有される第一の認証情報生成鍵とを暗号的に組み合わせることにより、第一の動的認証情報を生成するように構成されており、第一の認証情報生成鍵は特定のユーザーに関連付けられており、第二のソフトウェア認証トークンは、生成された第一の動的認証情報を受け取り、受け取った第一の動的認証情報を用いて、第二の認証情報生成鍵の値を導出し、導出された第二の認証情報生成鍵でパラメータ化された暗号アルゴリズムを用いて、確認認証情報を生成するように構成されていてもよく、認証サーバーは、確認認証情報を受け取り、第二の認証情報生成鍵のサーバーコピーを決定し、第二の認証情報生成鍵のサーバーコピーを用いて、受け取った確認認証情報を検証し、確認認証情報の検証が成功の場合、決定された第二の認証情報生成鍵のサーバーコピーを特定のユーザーに関連付け、特定のユーザーに関連付けられている決定された第二の認証情報生成鍵のサーバーコピーを不揮発性メモリに格納するように構成されていてもよい。いくつかの実施形態において、第二のソフトウェア認証トークンは、スマートフォン、タブレットコンピューター等の汎用コンピューティング機器上で実行されているソフトウェア認証アプリケーションを有していてもよく、その場合、第二のソフトウェア認証トークンは、第二の動的変数と導出された第二の認証情報生成鍵とを暗号的に組み合わせることにより、動的認証情報を生成するように構成されている。
【０１２０】
本発明の１態様は、第二のソフトウェアトークンを個人化する方法を提供する。
【０１２１】
第二の方法の第一のセット実施形態において、個人化方法は、認証サーバーにおいて、第一の個人化シードを生成する工程と、認証サーバーにおいて、第一の個人化シードを有する第一の個人化開始メッセージを生成する工程と、特定のユーザーに関連付けられた第一の認証トークンにおいて、上記第一の個人化開始メッセージを受け取る工程と、第一の認証トークンにおいて、受け取った第一の個人化開始メッセージから上記第一の個人化シードを読み出す工程と、第一の認証トークンにおいて、受け取った第一の個人化シードから第二の個人化シードを生成する工程と、第一の認証トークンにおいて、上記生成された第二の個人化シードを有する第二の個人化メッセージを生成する工程と、第一の認証トークンとは異なる第二のソフトウェア認証トークンにおいて、上記第二の個人化メッセージを受け取る工程と、第二のソフトウェア認証トークンにおいて、受け取った第二の個人化メッセージから上記第二の初期設定シードを読み出す工程と、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから認証情報生成鍵の値（ａ  ｖａｌｕｅ  ｆｏｒ  ａ  ｃｒｅｄｅｎｔｉａｌ  ｇｅｎｅｒａｔｉｏｎ  ｋｅｙ）導出する工程と、第二のソフトウェア認証トークンにおいて、導出された認証情報生成鍵の値でパラメータ化された暗号アルゴリズムを用いて、確認認証情報を生成する工程と、認証サーバーにおいて、確認認証情報を受け取る工程と、認証サーバーにおいて、認証情報生成鍵のサーバーコピーを決定する工程と、認証サーバーにおいて、認証情報生成鍵のサーバーコピーを用いて、受け取った確認認証情報の妥当性確認を行う工程と、を有してもよい。いくつかの実施形態において、第二のソフトウェア認証トークンは、スマートフォン、タブレットコンピューター等の汎用コンピューティング機器上で実行されているソフトウェア認証アプリケーションを有していてもよく、その場合、第二のソフトウェア認証トークンは、動的変数と導出された認証情報生成鍵とを暗号的に組み合わせることにより、動的認証情報を生成するように構成されている。いくつかの実施形態において、第一の認証トークンは、特定のユーザーに関連付けられた秘密トークン鍵を有し、該秘密トークン鍵は、第一の認証トークンにおいて、受け取った第一の個人化開始メッセージから第一の個人化シードを読み出す工程に使用されてもよい、あるいは該秘密トークン鍵は、第一の認証トークンにおいて、読み出された第一の個人化シードから第二の個人化シードを生成する工程で使用されてもよい。第二のソフトウェア個人化方法の種々の工程に関する更に詳細な説明が、本明細書の他の箇所に見出されるであろう。
【０１２２】
いくつかの実施形態において、上記方法は、更に、認証サーバーにおいて確認認証情報の妥当性確認が成功した場合に、該認証サーバーにおいて、認証情報生成鍵のサーバーコピーを特定のユーザーに関連付ける工程と、該認証サーバーにおいて、特定のユーザーに関連付けられた認証情報生成鍵の決定されたサーバーコピーを不揮発性メモリに格納する工程とを有する、第一のセット実施形態の任意の方法を有してもよい。いくつかの実施形態において、認証情報生成鍵のサーバーコピーの決定値自体が格納されてもよい。別の実施形態では、認証情報生成鍵のサーバーコピーの決定値の再構築を可能にする等価のデータが格納されてもよい。
【０１２３】
いくつかの実施形態において、上記方法は、更に、導出された認証情報生成鍵の値、または第二の認証トークンが導出した認証情報生成鍵の値の再構築を可能にするための再構築データを、第二の認証トークンにおいて不揮発性メモリに格納する工程を有してもよい。いくつかの実施形態において、再構築データは、第二の初期設定シードを有してもよい。
【０１２４】
いくつかの実施形態において、上記方法は、更に、第二のソフトウェア認証トークンにおいて、導出された認証情報生成鍵の値を読み出す工程と、該第二のソフトウェア認証トークンにおいて、動的変数と読み出された認証情報生成鍵の値とを組み合わせることにより、動的認証情報を生成する工程と、認証サーバーにおいて、動的認証情報を受け取る工程と、認証サーバーにおいて、読み出された認証情報生成鍵のサーバーコピーを用いて、受け取った動的認証情報を検証する工程と、を有する前述の実施形態の任意の方法を有してもよい。いくつかの実施形態において、導出された認証情報生成鍵の値を第二のソフトウェア認証トークンにおいて読み出すことは、第二のソフトウェア認証トークンが、不揮発性メモリから導出された認証情報生成鍵の値を読み出すことを有してもよい。いくつかの実施形態において、導出された認証情報生成鍵の値を第二のソフトウェア認証トークンにおいて読み出す工程は、第二のソフトウェア認証トークンが、不揮発性メモリから読み出された再構築データから、導出された認証情報生成鍵の値を再構築することを有してもよい。
【０１２５】
いくつかの実施形態において、上記方法は、更に、認証サーバーにおいて、少なくとも第一の初期設定シードに関して電子署名を生成し、電子署名を第一の個人化開始メッセージに含める工程と、第一の認証トークンにおいて電子署名を読み出すことと、第一の認証トークンにおいて読み出された電子署名を検証することとを有する、前述の実施形態の任意の方法を有してもよい。いくつかの実施形態において、上記方法は、電子署名の検証が不成功の場合、第一の個人化開始メッセージを拒否する工程を有してもよい。いくつかの実施形態において、電子署名の生成は、暗号メッセージ認証鍵でパラメータ化された暗号電子署名生成アルゴリズムを用いることにより行われてもよい。いくつかの実施形態において、暗号メッセージ認証鍵は、認証サーバーと第一の認証トークンとの間で共有されてもよい。読み出された電子署名の検証は、上記暗号メッセージ認証鍵でパラメータ化された暗号電子署名検証アルゴリズムを用いて行われてもよい。いくつかの実施形態において、電子署名はＭＡＣ（メッセージ認証コード）を有してもよい。
【０１２６】
いくつかの実施形態において、上記方法は、認証サーバーにおいて、更に、認証トークンに関連付けられた固有の第一の暗号化鍵を用いて第一の個人化シードを暗号化し、暗号化した第一の個人化シードを第一の個人化開始メッセージに含ませる工程と、第一の認証トークンにおいて、暗号化した第一の個人化シードを第一の個人化開始メッセージから読み出し、読み出された第一の個人化シードを復号する工程を有する、前述の実施形態の任意の方法を有してもよい。いくつかの実施形態において、第一の暗号化鍵は認証サーバーと第一の認証トークンとの間で共有されてもよく、第一の暗号化鍵を用いて第一の個人化シードを暗号化することは、第一の暗号化鍵（のサーバーコピー）でパラメータ化された対称暗号化アルゴリズムを用いて、第一の個人化シードを暗号化することを含んでもよく、読み出された暗号化第一の個人化シードを復号することは、第一の暗号化鍵（の第一の認証トークンコピー）でパラメータ化された対称復号アルゴリズムを用いて、読み出された暗号化第一の個人化シードを復号することを有してもよい。
【０１２７】
いくつかの実施形態において、更に、上記方法は認証サーバーにおいて初期値を生成することを有し、認証サーバーにおいて認証情報生成鍵のサーバーコピーを決定する工程は、鍵導出法を用いて、上記初期値から認証情報生成鍵のサーバーコピー値を導出することを含んでもよく、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから上記初期値を読み出し、第二のソフトウェア認証トークンにおいて、上記鍵導出法を用いて、上記読み出された初期値から認証情報生成鍵を導出することを有してもよい。いくつかの実施形態において、初期値から認証情報生成鍵を導出する鍵導出法は、認証情報生成鍵の値を初期値に設定することを有してもよい。
【０１２８】
いくつかの実施形態において、認証サーバーにおいて第一の個人化シードを生成する工程は、第二の暗号化鍵を用いて、認証サーバーにおいて上記初期値を暗号化し、上記第一の個人化シードの値を上記暗号化した初期値に設定することを含んでもよく、第二のソフトウェア認証トークンにおいて読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、上記第二の個人化シードから上記第一の個人化シードを読み出し、上記第二の暗号化鍵と一致する第二の復号鍵を用いて上記読み出された第一の個人化シードを復号し、上記初期値を取得することを有してもよい。いくつかの実施形態において、第二の暗号化鍵は認証サーバーと第二のソフトウェ認証トークンとの間で共有されてもよく、第二の暗号化鍵を用いて初期値を暗号化することは、第二の暗号化鍵（のサーバーコピー）でパラメータ化された対称暗号化アルゴリズムを用いて初期値を暗号化することを含んでもよく、読み出された第一の個人化シードを復号することは、第二の暗号化鍵（の第一の認証トークンコピー）でパラメータ化された対称復号アルゴリズムを用いて読み出された第一の個人化シードを復号することを有してもよい。
【０１２９】
他の実施形態において、認証サーバーで第一の個人化シードを生成する工程は、第一の個人化シードを上記初期値に設定することを有してもよい。
【０１３０】
いくつかの実施形態において、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから第一の個人化シードを読み出し、第二のソフトウェア認証トークンにおいて、読み出された第一の個人化シードから認証情報生成鍵を導出することを有してもよい。
【０１３１】
いくつかの実施形態において、第一の認証トークンにおいて、読み出された第一の個人化シードから第二の個人化シードを生成する工程は、第二の個人化シード値を読み出された第一の個人化シードの値に設定することを含んでもよく、第二のソフトウェア認証トークンにおいて読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、第二のソフトウェア認証トークンにおいて読み出された第二の個人化シードの値を得ることにより、読み出された第二の個人化シードから第一の個人化シードを読み出し、読み出された第一の個人化シードから認証情報生成鍵を導出することを有してもよい。いくつかの実施形態において、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、認証情報生成鍵の値を読み出された第二の個人化シードの値に設定することを有してもよい。
【０１３２】
他の実施形態において、第一の認証トークンにおいて上記読み出された第一の個人化シードから第二の個人化シードを生成する工程は、読み出された第一の個人化シードの第一の可逆変換関数として第二の個人化シードの値を計算することを含んでもよく、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、第二のソフトウェア認証トークンにおいて読み出された第二の個人化シードの値の第二の変換関数を適用することにより、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから第一の個人化シードを読み出し（第二の変換関数は、第一の可逆変換関数の逆関数である）、第二のソフトウェア認証トークンにおいて、読み出された第一の個人化シードから認証情報生成鍵を導出することを有してもよい。例えば、いくつかの実施形態において、第一の可逆変換関数は、第一の暗号変換鍵でパラメータ化された暗号暗号化アルゴリズム（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｅｎｃｒｙｐｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）を有してもよく、第二の変換関数は暗号復号アルゴリズムを有してもよく、該暗号復号アルゴリズムは上記暗号暗号化アルゴリズムに一致しており、上記第一の暗号変換鍵に一致している第二の暗号変換鍵でパラメータ化されている。例えば、いくつかの実施形態において、上記暗号暗号化アルゴリズムは、対称暗号化アルゴリズム（ＡＥＳ等）を有していてもよい。上記暗号暗号化アルゴリズムは対応する対称復号アルゴリズムを有していてもよく、第一の暗号変換鍵および第二の暗号変換鍵は、第一の認証トークンと第二のソフトウェア認証トークンとの間で共有される同じ対称暗号暗号化／復号化鍵のコピーであってもよい。いくつかの実施形態において、第二のソフトウェア認証トークンにおいて、読み出された第一の個人化シードから認証情報生成鍵を導出することは、第二のソフトウェア認証トークンにおいて、認証情報生成鍵の値を読み出された第一の個人化シードに設定することを有していてもよい。
【０１３３】
いくつかの実施形態において、上記方法は、前述の実施形態の任意の方法を有してもよく、上記読み出された第一の個人化シードから第二の個人化シードを生成する工程は、第二の個人化シードの値を、第二のソフトウェア認証トークンにおいて、第一の変換関数っを読み出された第一の個人化シードの値に適用した結果として計算することを有してもよい。いくつかの実施形態において、認証サーバーにおいて認証情報生成鍵のサーバーコピーを決定する工程は、認証サーバーにおいて、第一の個人化シードの値に適用される関数と同一の第一の変換関数を第二の個人化シードのサーバーコピーの値に適用した結果として計算し、認証情報生成鍵のサーバーコピーを、第二の個人化シードのサーバーコピーの値の関数として決定することを有してもよい。いくつかの実施形態において、第一の変換関数は、第二の個人化シードの値が第一の個人化シードの値とは異なるような関数であってもよい。いくつかの実施形態において、第一の変換関数は、例えば暗号ハッシュ関数等の暗号関数を有していてもよい。いくつかの実施形態において、第一の変換関数は、第一の秘密対称暗号変換鍵でパラメータ化された、例えば鍵付きハッシュアルゴリズムや対称暗号化／復号関数等の対称暗号関数を有していてもよい。いくつかの実施形態において、第一の秘密対称暗号変換鍵は、認証サーバーと第一の認証トークンとの間で共有されてもよい。いくつかの実施形態において、第一の秘密対称暗号変換鍵は、所定の第一の認証トークンに特有のものであってもよい。いくつかの実施形態において、第一の秘密対称暗号変換鍵は、第一の認証トークンと第二のソフトウェア認証トークンとの間で共有されてもよい。
【０１３４】
いくつかの実施形態において、上記方法は、前述の実施形態の任意の方法を有していてもよく、上記読み出された第一の個人化シードから第二の個人化シードを生成する工程は、読み出された第一の個人化シード値に第二の個人化シード値を設定することを有してもよい。
【０１３５】
いくつかの実施形態において、上記方法は前述の実施形態の任意の方法を有してよく、第二のソフトウェア認証トークンにおいて、読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、認証情報生成鍵の値を、第二のソフトウェア認証トークンにおいて、第二の変換関数を読み出された第二の個人化シードの値に適用した結果として計算することを有してもよい。いくつかの実施形態において、認証サーバーにおいて、認証情報生成鍵のサーバーコピーを決定する工程は、認証サーバーにおいて、第二の個人化シードのサーバーコピー値に適用される関すると同一の第二の変換関数を認証情報生成鍵のサーバーコピーの値に適用した結果として計算することを有してもよい。いくつかの実施形態において、第二の変換関数は、認証情報生成鍵の値が第二の個人化シードの値と異なるような関数であってもよい。いくつかの実施形態において、第二の変換関数は、例えば暗号ハッシュ関数等の暗号関数を有していてもよい。いくつかの実施形態において、第二の変換関数は、第二の秘密対称暗号変換鍵でパラメータ化された、例えば鍵付きハッシュアルゴリズムや対称暗号化／復号関数等の対称暗号関数を有していてもよい。いくつかの実施形態において、第二の秘密対称暗号変換鍵は、認証サーバーと第二のソフトウェア認証トークンとの間で共有されてもよい。いくつかの実施形態において、第二の秘密対称暗号変換鍵は、第一の認証トークンと第二のソフトウェア認証トークンとの間で共有されてもよい。いくつかの実施形態において、第二の秘密対称暗号変換鍵は、第二のソフトウェア認証トークンを有する認証トークンのバッチに関して、同じ値を有してもよい。いくつかの実施形態において、第二の秘密対称暗号変換鍵は、第一の秘密対称暗号変換鍵と同じであってもよい。
【０１３６】
いくつかの実施形態において、上記方法は、前述の実施形態の任意の方法を有してもよく、第二のソフトウェアトークンにおいて、読み出された第二の個人化シードから認証情報生成鍵の値を導出する工程は、第二のソフトウェアトークンにおいて、読み出された第二の個人化シード値に認証情報生成鍵の値を設定することを有してもよい。
【０１３７】
本発明の別の態様が、第二のソフトウェアトークン個人化システムを提供する。
【０１３８】
第二のシステムのいくつかの実施形態において、個人化システムは、認証サーバーと、特定のユーザーに関連付けられた第一の認証トークンと、第一の認証トークンとは異なる第二のソフトウェア認証トークンとを有し、認証サーバーは、第一の個人化シードを生成し、第一の個人化シードを有する第一の個人化開始メッセージを生成するように構成されていてもよく、第一の認証トークンは、上記第一の個人化開始メッセージを受け取り、受け取った第一の個人化開始メッセージから上記第一の個人化シードを読み出し、上記読み出された第一の個人化シードから第二の個人化シードを生成し、上記生成された第二の個人化シードを有する第二の個人化メッセージを生成するように構成されていてもよく、第二のソフトウェア認証トークンは、上記第二の個人化メッセージを受け取り、受け取った第二の個人化メッセージから上記第二の初期設定シードを読み出し、読み出された第二の個人化シードから認証情報生成鍵の値を導出し、導出された認証情報生成鍵の値でパラメータ化された暗号アルゴリズムを用いて、確認認証情報を生成するように構成されていてもよく、認証サーバーは、確認認証情報を受け取り、認証情報生成鍵のサーバーコピーを決定し、認証情報生成鍵のサーバーコピーを用いて受け取った確認認証情報の妥当性確認を行うように更に構成されていてもよい。いくつかの実施形態において、第二のソフトウェア認証トークンは、スマートフォン、タブレットコンピューター等の汎用コンピューティング機器上で実行されているソフトウェア認証アプリケーションを有していてもよく、その場合、第二のソフトウェア認証トークンは、動的変数と導出された認証情報生成鍵とを暗号的に組み合わせることにより、動的認証情報を生成するように構成されていてもよい。第二のソフトウェア個人化システムの種々のコンポーネントに関する更に詳細な説明は、本明細書の他の箇所に見出されるであろう。
【０１３９】
本発明の別の態様が個人化装置を提供する。
【０１４０】
いくつかの実施形態において、個人化装置は、デジタルカメラを有する入力インターフェースと、グラフィックディスプレイを有する出力インターフェースと、メモリと、入力インターフェース、出力インターフェースおよびメモリに接続されていてもよいデータプロセッサと、を有し、入力インターフェースは、第一の個人化開始メッセージで符号化された第一の２Ｄバーコード像を上記デジタルカメラで取り込むことにより、上記第一の個人化開始メッセージを受け取るように構成されていてもよく、データプロセッサは、上記取り込まれた第一の２Ｄバーコード像を復号して上記第一の個人化開始メッセージを取得し、受け取った第一の個人化開始メッセージから第一の個人化シードを読み出し、上記読み出された第一の個人化シードから第二の個人化シードを生成し、上記生成された第二の個人化シードを有する第二の個人化メッセージを生成し、上記第二の個人化メッセージを用いて第二の２Ｄバーコード像を符号化するように構成されていてもよく、出力インターフェースは、上記グラフィックディスプレイに上記第二の２Ｄバーコード像を表示することにより、上記第二の個人化メッセージを出力するように構成されていてもよく、上記メモリは、受け取った第一の個人化開始メッセージから第一の個人化シードを読み出すため、あるいは上記読み出された第一の個人化シードから第二の個人化シードを生成するため、特定のユーザーに関連付けられ上記データプロセッサが使用してもよい秘密トークン鍵を格納するように構成されていてもよい。いくつかの実施例が記載されている。しかし、多くの変形が可能であることは理解されるであろう。例えば、１つ以上の実施例の要素を組み合わせ、削除し、修正し、あるいは補足して更なる実施例を形成してもよい。従って、他の実施例も添付の特許請求の範囲に含まれている。従って、いくつかの実施例のうちの１つだけに関して特定の特徴が記載されていたとしても、斯かる特徴は、任意の所定または特定のアプリケーションにとって望ましく有利であるやり方で、他の実施例の１つ以上の他の特徴と組み合わせることができる。方法の実施形態に関しては、種々の工程が特定の順番で記載されているが、少なくとも斯かる工程のいくつかは変更可能であることは当業者には明白であろう。いくつかの工程はオプショナルであり、他の工程を加えてよいことも当業者には明白であろう。種々の実施形態が記載されているが、それらは例示目的のみに記載されているのであり、何ら制限されるものでないことは、理解されるべきである。特に、特許請求の範囲の主題を記載するのに、コンポーネントまたは方法について考え得るあらゆる組み合わせを記載するのは勿論可能ではない。しかし、多くの更なる組み合わせおよび順序が可能であることを当業者は認識するであろう。従って、本明細書の教示の幅および範囲は、上述の例示的実施形態によって制限されるべきではなく、以下の特許請求の範囲およびその等価物によってのみ画定されるべきである。
【図１】
0006514337.tif 000002
【図２】
0006514337.tif 000003
【図３】
0006514337.tif 000004