図面 (/)

この項目の情報は公開日時点(2019年3月7日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (5)

課題

解決手段

ユーザーとコンピュータに基づいたアプリケーションの間におけるやり取りを保護するべくパスコードを使用する方法、装置、及びシステムが開示されている。

概要

背景

コンピュータシステム及びアプリケーションリモートアクセス人気の増大に伴って、インターネットなどのパブリックネットワーク上においてリモートアクセスされるトランザクションの数及び多様性が劇的に拡大している。この人気は、セキュリティに対するニーズ重要性を示しており、具体的には、アプリケーションにリモートアクセスしている人々が、自身がそうであると主張している人物であることを保証する方法、リモート実施されているトランザクションが、正当な人物によって開始されていることを保証する方法、並びに、アプリケーションサーバーによって受け取られる前にトランザクションが変更されていないことを保証する方法に対するニーズの重要性を示している。

コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護するための1つの解決策は、2要素強力認証解決策の使用である。

要素認証解決策においては、正当なユーザーであると主張している人物が、2つの認証要素証拠を認証検証エンティティに対して提供することにより、例えば、コンピュータに基づいたアプリケーションに対してユーザーを認証することができる。第1要素(「ユーザーが持っているもの」要素)は、特定のユーザーとリンク又は関連付けされうる特定のオブジェクト又はトークンに対するアクセスをユーザーが保有している又は有している、という証拠から構成されている。第2要素は、特定のユーザーとリンク又は関連付けされうる特定の情報片の知識をユーザーが有している、という証拠(「ユーザーが知っているもの」要素)から構成することができる。この特定の情報片は、秘密パスワード又は秘密PIN(Personal Identification Number)などの、正当なユーザー以外のその他の人物には知られていないと仮定されうる秘密を有することができる。この特定の情報片は、本説明の残りの部分においては、パスコード呼称される場合がある。

パスコードを使用して認証解決策のセキュリティを保証するには、パスコードの機密性を常に保証及び維持することが必須である。

概要

コンピュータネットワーク上におけるコンピュータ及びアプリケーションに対するリモートアクセス並びにリモートトランザクションの保護に関する。ユーザーとコンピュータに基づいたアプリケーションの間におけるやり取りを保護するべくパスコードを使用する方法、装置、及びシステムが開示されている。

目的

2要素認証解決策においては、正当なユーザーであると主張している人物が、2つの認証要素の証拠を認証検証エンティティに対して提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

動的認証クレデンシャルを生成する方法であって、パスコードの値を取得するステップと、パスコードブラインディングデータ要素の値を取得するステップと、動的変数の値を取得するステップと、暗号クレデンシャル生成キーの値を取得するステップと、前記取得されたパスコード値及び前記取得されたパスコードブラインディングデータ要素値からパスコードベリファイアデータ要素の値を算出するステップと、前記算出されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値から、前記動的認証クレデンシャルを算出するステップと、を有する方法。

請求項2

前記パスコードの前記値を取得するステップは、ユーザーから前記パスコードの前記値を受け取るステップを有する、請求項1に記載の方法。

請求項3

前記パスコードブラインディングデータ要素の前記値を取得するステップは、前記方法を実行している認証トークン又は認証クライアントメモリから、前記パスコードブラインディングデータ要素値を読み取るステップを有する、請求項1又は2に記載の方法。

請求項4

前記パスコードブラインディングデータ要素を生成するステップと、前記動的認証クレデンシャルを算出する前に、初期化フェーズにおいて、前記生成されたパスコードブラインディングデータ要素を前記メモリ内において保存するステップと、を更に有する、請求項3に記載の方法。

請求項5

前記パスコードブラインディングデータ要素を生成するステップは、ランダム又は疑似ランダム数生成器によって生成されたランダム又は疑似ランダム数を使用している、請求項4に記載の方法。

請求項6

前記動的変数値を取得するステップは、データメッセージを受け取るステップと、前記受け取られたデータメッセージに含まれているデータ要素の関数として前記動的変数値を判定するステップと、を有する、請求項1乃至5のいずれか一項に記載の方法。

請求項7

前記動的変数値を取得するステップは、トランザクションデータの関数として前記動的変数を判定するステップと、前記トランザクションデータを承認のためにユーザーに対して提示するステップと、前記ユーザーの承認を取得するステップと、を有する、請求項1乃至6のいずれか一項に記載の方法。

請求項8

前記パスコードベリファイアデータ要素値を算出するステップは、前記取得されたパスコード値及び前記取得されたパスコードブラインディングデータ要素値の第1不可逆関数として前記パスコードベリファイアデータ要素値を算出するステップを有する、請求項1乃至7のいずれか一項に記載の方法。

請求項9

前記算出されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値から前記動的認証クレデンシャルを算出するステップは、前記算出されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値の第2不可逆関数として前記動的認証クレデンシャルを算出するステップを有する、請求項1乃至8のいずれか一項に記載の方法。

請求項10

前記パスコードベリファイアデータ要素値を算出するステップの後に、前記取得されたパスコード値を破棄するステップを更に有する、請求項1乃至9のいずれか一項に記載の方法。

請求項11

前記取得されたパスコード値を破棄するステップは、前記方法を実行している認証トークン又は認証クライアントのメモリから前記取得されたパスコード値のすべての複写消去するステップを有する、請求項10に記載の方法。

請求項12

前記動的認証クレデンシャルを算出する前記ステップの後に、前記算出されたパスコードベリファイアデータ要素値を破棄するステップを更に有する、請求項1乃至11のいずれか一項に記載の方法。

請求項13

前記算出されたパスコードベリファイアデータ要素を破棄するステップは、前記方法を実行している認証トークン又は認証クライアントのメモリから、前記算出されたパスコードベリファイアデータ要素値のすべての複写を消去するステップを有する、請求項12に記載の方法。

請求項14

前記方法を実行している認証トークン又は認証クライアントのメモリ内において状態変数の値を維持及び保存するステップを更に有し、前記暗号クレデンシャル生成キー値を取得するステップは、前記方法を実行している前記認証トークン又は認証クライアントの前記メモリから前記状態変数の前記値を読み取るステップと、前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定するステップと、を有する、請求項1乃至13のいずれか一項に記載の方法。

請求項15

前記状態変数の値の関数として暗号クレデンシャル生成キー値を判定するステップは、前記暗号クレデンシャル生成キー値を前記状態変数の前記値に設定するステップを有する、請求項14に記載の方法。

請求項16

前記状態変数の前記値として前記暗号クレデンシャル生成キー値を判定するステップは、第3不可逆関数を前記状態変数の前記値に適用した結果として前記暗号クレデンシャル生成キー値を算出するステップを有する、請求項14に記載の方法。

請求項17

第4不可逆関数を前記状態変数の前記現在の値に対して適用した結果として前記状態変数の新しい値を算出するステップと、前記算出された新しい値によって前記状態変数の前記値を更新するステップと、を更に有する、請求項14乃至16のいずれか一項に記載の方法。

請求項18

前記算出された新しい値によって前記状態変数の前記値を更新するステップは、前記方法を実行している前記認証トークン又は認証クライアントの前記メモリ内において、前記算出された新しい値によって前記状態変数の前記現在の値を上書きするステップを有する、請求項17に記載の方法。

請求項19

前記状態変数の前記新しい値を算出する前記ステップの後に、前記状態変数の前記現在の値を破棄するステップを更に有する、請求項17又は18に記載の方法。

請求項20

前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定する前記ステップの後に、且つ、前記状態変数の前記新しい値を算出する前記ステップの後に、前記状態変数の前記現在の値を破棄するステップを更に有する、請求項17又は18に記載の方法。

請求項21

前記状態変数の前記現在の値を破棄するステップは、前記方法を実行する前記認証トークン又は認証クライアントの前記メモリから前記状態変数の前記現在の値のすべての複写を消去するステップを有する、請求項19又は20に記載の方法。

請求項22

前記動的認証クレデンシャルを算出する前記ステップの後に、前記暗号クレデンシャル生成キー値を破棄するステップを更に有する、請求項14乃至21のいずれか一項に記載の方法。

請求項23

前記暗号クレデンシャル生成キー値を破棄するステップは、前記方法を実行している前記認証トークン又は認証クライアントの前記メモリから前記暗号クレデンシャル生成キー値のすべての複写を消去するステップを有する、請求項22に記載の方法。

請求項24

動的認証クレデンシャルの値を検証する方法であって、前記動的認証クレデンシャル値を受け取るステップと、動的変数の値を取得するステップと、パスコードベリファイアデータ要素の値及び暗号クレデンシャル生成キーの値を取得するステップと、前記取得されたパスコードベリファイアデータ要素値、前記取得された動的変数値、及び前記取得された暗号クレデンシャル生成キー値の第1不可逆関数としてクレデンシャル基準値を算出するステップと、前記受け取られた動的認証クレデンシャル値が前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証するステップと、を有する方法。

請求項25

前記受け取られた動的認証クレデンシャル値が前記算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するステップを更に有する、請求項24に記載の方法。

請求項26

前記動的変数は、前記動的認証クレデンシャルによって認可されるべきトランザクションを表すトランザクションデータを有する、或いは、これから導出される、請求項24又は25に記載の方法。

請求項27

前記パスコードベリファイアデータ要素値及び前記暗号クレデンシャル生成キー値を取得するステップは、認証クライアントの特定のユーザーと関連するユーザー又は認証クライアント固有のデータの組を取得するステップと、このユーザー又は認証クライアント固有のデータの組から、前記パスコードベリファイアデータ要素値及び前記暗号クレデンシャル生成キー値を取得又は導出するステップと、を有する、請求項24乃至26のいずれか一項に記載の方法。

請求項28

前記方法の前記ステップを実行する認証サーバーに含まれている、或いは、これによってアクセス可能である、メモリ又はデータベース内において前記ユーザー又は認証クライアント固有のデータの組を保存又は維持するステップを更に有し、前記ユーザー又は認証クライアント固有のデータの組を取得するステップは、前記メモリ又はデータベースから、前記ユーザー又は認証クライアント固有のデータの組を読み取るステップを有する、請求項27に記載の方法。

請求項29

前記ユーザー又は認証クライアント固有のデータの組は、状態変数の値を有し、且つ、前記暗号クレデンシャル生成キー値を取得するステップは、前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定するステップを有する、請求項27又は28に記載の方法。

請求項30

前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定するステップは、前記暗号クレデンシャル生成キー値を前記状態変数の前記値に設定するステップを有する、請求項29に記載の方法。

請求項31

前記暗号クレデンシャル生成キー値を前記状態変数の前記値の関数として判定するステップは、第2不可逆関数を前記状態変数の前記値に適用した結果として前記暗号クレデンシャル生成キー値を算出するステップを有する、請求項29に記載の方法。

請求項32

前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の第3不可逆関数として算出された新しい値によって前記状態変数の前記値を更新するステップと、この算出された新しい値によって前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を置換するステップと、を更に有する、請求項29乃至31のいずれか一項に記載の方法。

請求項33

前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の関数として前記状態変数の前記新しい値を算出する前記ステップの後に、前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を破棄するステップを更に有する、請求項32に記載の方法。

請求項34

前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を破棄する前記ステップは、前記状態変数の前記新しい組を算出する前記ステップ及び前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値の関数として前記暗号クレデンシャル生成キー値を判定する前記ステップの両方が実行された後に、実行される、請求項33に記載の方法。

請求項35

前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値を破棄するステップは、前記メモリ又はデータベースから前記ユーザー又は認証クライアント固有のデータの組に含まれている前記状態変数の前記値のすべての複写を消去するステップを有する、請求項33又は34に記載の方法。

請求項36

前記クレデンシャル基準値を算出する前記ステップの後に、前記暗号クレデンシャル生成キー値を破棄するステップを更に有する、請求項28乃至35のいずれか一項に記載の方法。

請求項37

前記暗号クレデンシャル生成キー値を破棄するステップは、前記メモリ又はデータベースから前記暗号クレデンシャル生成キー値のすべての複写を消去するステップを有する、請求項36に記載の方法。

請求項38

コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護する方法であって、認証クライアントにより、認証ステージにおいて、動的変数クライアント値を取得するステップと、暗号クレデンシャル生成キークライアント値を取得するステップと、メモリから、パスコードブラインディングデータ要素値を取得するステップと、前記ユーザーから、パスコードを受け取るステップと、前記取得されたパスコードブラインディングデータ要素値及び前記受け取ったパスコード値の第1不可逆クライアント関数としてパスコードベリファイアデータ要素クライアント値を算出するステップと、前記取得された動的変数クライアント値、前記取得された暗号クレデンシャル生成キークライアント値、及び前記算出されたパスコードベリファイアデータ要素クライアント値の第2不可逆クライアント関数として動的認証クレデンシャルを算出するステップと、を実行するステップと、認証サーバーにより、前記認証ステージにおいて、前記動的認証クレデンシャルを受け取るステップと、動的変数サーバー値を取得するステップと、暗号クレデンシャル生成キーサーバー値を取得するステップと、パスコードベリファイアデータ要素サーバー値を取得するステップと、前記取得された動的変数サーバー値、前記取得された暗号クレデンシャル生成キーサーバー値、及び前記取得されたパスコードベリファイアデータ要素サーバー値の第1不可逆サーバー関数としてクレデンシャル基準値を算出するステップと、前記受け取った動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証するステップと、を実行するステップと、を有する方法。

請求項39

前記認証サーバーにより、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するステップを更に有する、請求項38に記載の方法。

請求項40

前記コンピュータに基づいたアプリケーションが、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしている場合に、第1動作を実行し、且つ、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしていない場合には、第2動作を実行するステップを更に有する、請求項38又は39に記載の方法。

請求項41

前記動的変数クライアント値は、前記動的変数サーバー値と同一であり、前記暗号クレデンシャル生成キークライアント値は、前記暗号クレデンシャル生成キーサーバー値と同一であり、前記パスコードベリファイアデータ要素クライアント値は、前記パスコードベリファイアデータ要素サーバー値と同一であり、且つ、前記動的認証クレデンシャルを算出するための前記第2不可逆クライアント関数は、前記クレデンシャル基準値を算出するための前記第1不可逆サーバー関数と実質的に同一である、請求項38乃至40のいずれか一項に記載の方法。

請求項42

前記動的変数クライアント値は、前記ユーザーによって認可されるべきトランザクションを表すトランザクションデータに基づいており、且つ、前記方法は、前記認証クライアントにより、前記トランザクションデータを前記ユーザーに対して表示するステップと、前記認証クライアントにより、前記ユーザーから、前記表示されたトランザクションデータの承認を受け取るステップと、を更に有する、請求項38乃至41のいずれか一項に記載の方法。

請求項43

前記動的認証クレデンシャルを算出する前記ステップは、前記ユーザーが前記表示されたトランザクションデータを承認することを条件としている、請求項42に記載の方法。

請求項44

前記コンピュータに基づいたアプリケーションが、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしている場合に、前記トランザクションを受け付け、且つ、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしていない場合には、前記トランザクションを拒絶するステップを更に有する、請求項42又は43に記載の方法。

請求項45

前記認証クライアントにより、前記認証ステージにおいて、現時点の状態変数クライアント値を保存するステップであって、これにより、前記暗号クレデンシャル生成キークライアント値を取得するステップは、前記認証クライアントにより、前記保存されている現時点の状態変数クライアント値から前記暗号クレデンシャル生成キークライアント値を導出するステップを有する、ステップと、前記現時点の状態変数クライアント値の第3不可逆クライアント関数として新しい状態変数クライアント値を算出するステップと、前記動的認証クレデンシャルの前記計算の後に、前記暗号クレデンシャル生成キークライアント値を破棄するステップと、前記新しい状態変数クライアント値の前記計算及び前記暗号クレデンシャル生成キークライアント値の前記導出の後に、前記現時点の状態変数クライアント値を破棄するステップと、前記破棄された現時点の状態変数クライアント値の代わりに、前記新しい状態変数クライアント値を保存するステップと、を実行するステップと、前記認証サーバーにより、前記認証ステージにおいて、現時点の状態変数サーバー値を保存するステップであって、これにより、前記認証サーバーにより、前記暗号クレデンシャル生成キーサーバー値を取得するステップは、前記認証サーバーにより、前記保存されている現時点の状態変数サーバー値から、前記暗号クレデンシャル生成キーサーバー値を導出するステップと、有する、ステップと、前記現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出するステップと、前記クレデンシャル基準値の前記計算の後に、前記暗号クレデンシャル生成キーサーバー値を破棄するステップと、前記新しい状態変数サーバー値の前記計算及び前記暗号クレデンシャル生成キーサーバー値の前記導出の後に、前記現時点の状態変数サーバー値を破棄するステップと、前記破棄された現時点の状態変数サーバー値の代わりに、前記新しい状態変数サーバー値を保存するステップと、を実行するステップと、を更に有する、請求項38乃至44のいずれか一項に記載の方法。

請求項46

前記現時点の状態変数サーバー値は、前記現時点の状態変数クライアント値と同一であり、前記新しい状態変数サーバー値は、前記新しい状態変数クライアント値と同一であり、且つ、前記第2不可逆サーバー関数は、前記第3不可逆クライアント関数と同一である、請求項45に記載の方法。

請求項47

前記認証クライアントにより、前記認証ステージの前の初期化ステージにおいて、予測不能な方式により、前記パスコードブラインディングデータ要素値を生成するステップと、前記認証ステージにおける後続の使用のために、前記生成されたパスコードブラインディングデータ要素値を保存するステップと、前記ユーザーから初期パスコード値を受け取るステップと、前記パスコードブラインディングデータ要素及び前記受け取られた初期パスコード値の前記第1不可逆クライアント関数として前記パスコードベリファイアデータ要素クライアント値を算出するステップと、を実行するステップと、前記認証サーバーにより、前記初期化ステージにおいて、前記算出されたパスコードベリファイアデータ要素クライアント値を受け取るステップと、前記認証ステージにおける後続の使用のために、前記パスコードベリファイアデータ要素サーバー値として前記受け取られたパスコードベリファイアデータ要素クライアント値を保存するステップと、を実行するステップと、を更に有する、請求項38乃至46のいずれか一項に記載の方法。

請求項48

前記初期化ステージにおいて、前記認証クライアントにおいて、初期状態シードから導出された前記状態変数クライアント値の初期クライアント値を取得するステップと、前記認証クライアントにおいて、前記現時点の状態変数クライアント値として前記状態変数クライアント値の前記取得された初期値を保存するステップと、前記認証サーバーにおいて、前記初期状態シードから導出された前記状態変数サーバー値の初期サーバー値を取得するステップと、前記認証サーバーにおいて、前記現時点の状態変数サーバー値として前記状態変数サーバー値の前記取得された初期値を保存するステップと、を実行するステップを更に有する、請求項47に記載の方法。

請求項49

前記状態変数クライアント値と前記状態変数サーバー値を前記認証ステージにおいて同期化させるステップを更に有する、請求項45乃至48のいずれか一項に記載の方法。

請求項50

動的認証クレデンシャルを生成する装置であって、前記装置のユーザーからパスコードを受け取るように適合されたユーザー入力インターフェイスと、暗号計算を実行するように適合されたデータプロセッサと、パスコードブラインディングデータ要素値及び状態変数値を保存するメモリと、を有し、これにより、前記装置は、初期化ステージにおいて、前記パスコードブラインディングデータ要素値を取得し、且つ、メモリ内において保存し、且つ、前記状態変数値の初期値を取得し、且つ、前記現時点の状態変数値として前記初期値を前記メモリ内において保存するように、適合されており、且つ、これにより、前記装置は、認証ステージにおいて、動的変数値を取得し、前記ユーザー入力インターフェイスを通じて前記ユーザーの前記パスコードを受け取り、メモリから、パスコードブラインディングデータ要素値を読み取り、前記受け取られたパスコード及び前記パスコードブラインディングデータ要素値の第1不可逆関数としてパスコードベリファイアデータ要素値を算出し、メモリから、前記現時点の状態変数値を読み取り、且つ、メモリから読み取られた前記現時点の状態変数値から暗号クレデンシャル生成キーを導出し、前記取得された動的変数値、前記算出されたパスコードベリファイアデータ要素、及び前記導出された暗号クレデンシャル生成キーの第2不可逆関数として動的認証クレデンシャルを算出し、前記動的認証クレデンシャルを算出した後に、前記導出された暗号クレデンシャル生成キーを破棄し、前記現時点の状態変数値の第3不可逆関数として前記状態変数値の新しい値を生成し、且つ、前記現時点の状態変数値からの前記暗号クレデンシャル生成キーの前記導出及び前記状態変数値の前記新しい値の前記生成の後に、前記現時点の状態変数値を破棄し、且つ、前記現時点の状態変数値の代わりに前記状態変数値の前記生成された新しい値を保存する、ように更に適合されている、装置。

請求項51

データを前記ユーザーに対して提示するユーザー出力インターフェイスを更に有する、請求項50に記載の装置。

請求項52

前記ユーザーによって承認されるべきトランザクションを表すトランザクションデータを受け取り、前記ユーザー出力インターフェイスを通じて前記受け取られたトランザクションデータを前記ユーザーに対して提示し、前記ユーザーから、前記ユーザー入力インターフェイスを通じて前記提示されたトランザクションデータ用の承認を受け取るように更に適合されている、請求項51に記載の装置。

請求項53

前記動的認証クレデンシャルの前記計算は、前記装置が前記提示されたトランザクションデータの前記ユーザーの前記承認を受け取ることを条件としている、請求項52に記載の装置。

請求項54

前記生成された動的認証クレデンシャルを認証サーバーによる検証のために利用可能な状態とするように更に適合されている、請求項51乃至53のいずれか一項に記載の装置。

請求項55

前記ユーザーが前記認証サーバーに転送するように、前記ユーザー出力インターフェイスを通じて、前記生成された動的認証クレデンシャルを前記ユーザーに提示するように更に適合されている、請求項54に記載の装置。

請求項56

前記生成された動的認証クレデンシャルを直接的又は間接的に前記認証サーバーに送信するように更に適合されている、請求項54又は55に記載の装置。

請求項57

ランダム又は疑似ランダム数生成器を更に有し、且つ、前記装置は、前記初期化ステージにおいて、前記ランダム又は疑似ランダム数生成器によって生成されたランダム又は疑似ランダム数を取得し、且つ、前記ランダム又は疑似ランダム数の関数として前記パスコードブラインディングデータ要素値を取得するように更に適合されている、請求項50乃至56のいずれか一項に記載の装置。

請求項58

動的認証クレデンシャルを検証する装置であって、特定のユーザー又は特定の認証クライアントと関連する少なくとも1つのデータセットを保存するように適合されたメモリと、暗号動作を実行するように適合されたデータ処理コンポーネントと、を有し、これにより、前記装置は、認証ステージにおいて、動的認証クレデンシャルを受け取り、動的変数サーバー値を取得し、前記メモリから、特定のユーザー又は特定の認証クライアントと関連するデータセットを読み取り、前記読み取られたデータセットから暗号クレデンシャル生成キーサーバー値を取得し、前記読み取られたデータセットから、パスコードベリファイアデータ要素サーバー値を取得し、前記取得された動的変数サーバー値、前記取得されたパスコードベリファイアデータ要素サーバー値、及び前記取得された暗号クレデンシャル生成キーサーバー値の第1不可逆サーバー関数としてクレデンシャル基準値を算出し、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証する、ように適合されている、装置。

請求項59

前記メモリ内において、特定のユーザー又は特定の認証クライアントと関連する前記データセットの一部分として、前記パスコードベリファイアデータ要素サーバー値を保存するように更に適合されている、請求項58に記載の装置。

請求項60

前記メモリ内において、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として現時点の状態変数サーバー値を保存及び維持し、且つ、前記認証ステージにおいて、前記読み取られたデータセットから前記現時点の状態変数サーバー値を取得し、前記取得された現時点の状態変数サーバー値の関数として前記暗号クレデンシャル生成キーサーバー値を判定し、前記クレデンシャル基準値の前記計算の後に前記暗号クレデンシャル生成キーサーバー値を破棄し、前記取得された現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出し、前記暗号クレデンシャル生成キーサーバー値の前記判定及び前記新しい状態変数サーバー値の前記計算の後に、前記現時点の状態変数サーバー値を破棄し、且つ、前記メモリ内において、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として前記現時点の状態変数サーバー値の代わりに前記新しい状態変数サーバー値を書き込む、ように更に適合されている、請求項58又は59に記載の装置。

請求項61

初期化ステージにおいて、初期状態変数サーバー値を取得し、且つ、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として、前記現時点の状態変数サーバー値として、前記メモリ内において前記初期状態変数サーバー値を書き込む、ように更に適合されている、請求項60に記載の装置。

請求項62

初期化ステージにおいて、パスコードベリファイアデータ要素値を受け取り、且つ、前記特定のユーザー又は前記特定の認証クライアントと関連する前記データセットの一部分として、前記パスコードベリファイアデータ要素サーバー値として、前記メモリ内において前記受け取られたパスコードベリファイアデータ要素値を書き込む、ように更に適合されている、請求項58乃至61のいずれか一項に記載の装置。

請求項63

コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護するシステムであって、認証クライアントと、認証サーバーと、を有し、これにより、前記認証クライアントは、前記認証クライアントのユーザーからパスコードを受け取るように適合されたユーザー入力インターフェイスと、暗号計算を実行するように適合されたクライアントデータプロセッサと、パスコードブラインディングデータ要素値及び状態変数クライアント値を保存するクライアントメモリと、を有し、これにより、前記認証クライアントは、初期化ステージにおいて、前記パスコードブラインディングデータ要素を取得し、且つ、前記メモリ内において保存し、且つ、前記状態変数クライアント値の初期クライアント値を取得し、且つ、前記初期クライアント値を前記現時点の状態変数クライアント値として前記メモリ内において保存する、ように適合されており、且つ、これにより、前記認証クライアントは、認証ステージにおいて、動的変数クライアント値を取得し、前記ユーザー入力インターフェイスを通じて前記ユーザーの前記パスコードを受け取り、前記クライアントメモリから前記パスコードブラインディングデータ要素値を読み取り、前記受け取られたパスコード及び前記パスコードブラインディングデータ要素値の第1不可逆クライアント関数としてパスコードベリファイアデータ要素クライアント値を算出し、前記クライアントメモリから前記現時点の状態変数クライアント値を読み取り、且つ、前記クライアントメモリから読み取られた前記現時点の状態変数クライアント値から暗号クレデンシャル生成キークライアント値を導出し、前記取得された動的変数クライアント値、前記算出されたパスコードベリファイアデータ要素クライアント値、及び前記導出された暗号クレデンシャル生成キークライアント値の第2不可逆クライアント関数として動的認証クレデンシャルを算出し、前記動的認証クレデンシャルを算出した後に前記導出された暗号クレデンシャル生成キークライアント値を破棄し、前記現時点の状態変数クライアント値の第3不可逆クライアント関数として前記状態変数クライアント値の新しい値を生成し、且つ、前記現時点の状態変数クライアント値からの前記暗号クレデンシャル生成キークライアント値の前記導出及び前記状態変数クライアント値の前記新しい値の前記生成の後に、前記現時点の状態変数クライアント値を破棄し、且つ、前記現時点の状態変数クライアント値の代わりに、前記状態変数クライアント値の前記生成された新しい値を保存する、ように更に適合されており、且つ、これにより、前記認証サーバーは、前記ユーザー又は前記認証クライアントと関連するデータセットを保存するように適合されたサーバーメモリと、暗号動作を実行するように適合されたサーバーデータ処理コンポーネントと、を有し、これにより、前記認証サーバーは、前記初期化ステージにおいて、パスコードベリファイアデータ要素初期化値を受け取り、且つ、前記ユーザー又は前記認証クライアントと関連する前記データセットの一部分として、パスコードベリファイアデータ要素サーバー値として、前記受け取られたパスコードベリファイアデータ要素初期化値を前記メモリ内において書き込み、且つ、初期状態変数サーバー値を取得し、且つ、前記ユーザー又は前記認証クライアントと関連する前記データセットの一部分として、現時点の状態変数サーバー値として、前記初期状態変数サーバー値を前記メモリ内において書き込む、ように適合されており、且つ、これにより、前記認証サーバーは、前記認証ステージにおいて、前記生成された動的認証クレデンシャルを受け取り、動的変数サーバー値を取得し、前記サーバーメモリから、前記ユーザー又は前記認証クライアントと関連する前記データセットを読み取り、前記読み取られたデータセットから前記現時点の状態変数サーバー値を取得し、前記取得された現時点の状態変数サーバー値の関数として暗号クレデンシャル生成キーサーバー値を導出し、前記読み取られたデータセットから、前記パスコードベリファイアデータ要素サーバー値を取得し、前記取得された動的変数サーバー値、前記取得されたパスコードベリファイアデータ要素サーバー値、及び前記導出された暗号クレデンシャル生成キーサーバー値の第1不可逆サーバー関数としてクレデンシャル基準値を算出し、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかを検証し、前記クレデンシャル基準値の前記計算の後に前記暗号クレデンシャル生成キーサーバー値を破棄し、前記取得された現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出し、前記暗号クレデンシャル生成キーサーバー値の前記導出及び前記新しい状態変数サーバー値の前記算出の後に、前記現時点の状態変数サーバー値を破棄し、且つ、前記サーバーメモリ内において、前記ユーザー又は前記認証クライアントと関連する前記データセットの一部分として前記現時点の状態変数サーバー値の代わりに前記新しい状態変数サーバー値を書き込む、ように更に適合されている、システム。

請求項64

前記コンピュータに基づいたアプリケーションをホスティングするように適合されたアプリケーションサーバーを更に有し、前記認証サーバーは、前記認証ステージにおいて、前記コンピュータに基づいたアプリケーションに、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしているかどうかについて通知するように更に適合されており、且つ、前記コンピュータに基づいたアプリケーションは、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしている場合に、1つの動作を実行し、且つ、前記受け取られた動的認証クレデンシャルが前記算出されたクレデンシャル基準値とマッチングしていない場合には、別の動作を実行するように適合されている、請求項63に記載のシステム。

技術分野

0001

関連出願の相互参照
本出願は、2015年12月30日付けで出願された「METHODAND SYSTEMAPPARATUS USING FORWARD−SECURE CRYPTOGRAPHY FORPASCODVERIICATION」という名称の米国仮特許出願第62/273,138号に関し、且つ、その利益を主張するものであり、この特許文献の内容は、引用により、本明細書に包含される。

0002

本発明は、コンピュータネットワーク上におけるコンピュータ及びアプリケーションに対するリモートアクセス並びにリモートトランザクションの保護に関する。更に詳しくは、本発明は、2要素認証トークンを伴う秘密パスコードを使用する方法、装置、及びシステムに関する。

背景技術

0003

コンピュータシステム及びアプリケーションのリモートアクセスの人気の増大に伴って、インターネットなどのパブリックネットワーク上においてリモートアクセスされるトランザクションの数及び多様性が劇的に拡大している。この人気は、セキュリティに対するニーズ重要性を示しており、具体的には、アプリケーションにリモートアクセスしている人々が、自身がそうであると主張している人物であることを保証する方法、リモート実施されているトランザクションが、正当な人物によって開始されていることを保証する方法、並びに、アプリケーションサーバーによって受け取られる前にトランザクションが変更されていないことを保証する方法に対するニーズの重要性を示している。

0004

コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護するための1つの解決策は、2要素強力認証解決策の使用である。

0005

2要素認証解決策においては、正当なユーザーであると主張している人物が、2つの認証要素証拠を認証検証エンティティに対して提供することにより、例えば、コンピュータに基づいたアプリケーションに対してユーザーを認証することができる。第1要素(「ユーザーが持っているもの」要素)は、特定のユーザーとリンク又は関連付けされうる特定のオブジェクト又はトークンに対するアクセスをユーザーが保有している又は有している、という証拠から構成されている。第2要素は、特定のユーザーとリンク又は関連付けされうる特定の情報片の知識をユーザーが有している、という証拠(「ユーザーが知っているもの」要素)から構成することができる。この特定の情報片は、秘密パスワード又は秘密PIN(Personal Identification Number)などの、正当なユーザー以外のその他の人物には知られていないと仮定されうる秘密を有することができる。この特定の情報片は、本説明の残りの部分においては、パスコードと呼称される場合がある。

0006

パスコードを使用して認証解決策のセキュリティを保証するには、パスコードの機密性を常に保証及び維持することが必須である。

発明が解決しようとする課題

0007

2要素強力認証解決策と共に使用されるパスコードの秘密性及機密性を保護する安全な解決策が必要とされている。

課題を解決するための手段

0008

本発明は、認証目的のために使用されているクライアント及びサーバー装置は、ハッキングされる場合があり、その結果、これらの装置上において保存されている情報が詐欺師の手に渡る場合がある、という本発明者らの洞察に基づいている。この盗まれた情報が、コンピュータに基づいたアプリケーションを認証する際にユーザーが使用しうるパスコードに関係している場合には、例えば、パスコード自体の取得などのように、これらのパスコードに関する知識を抽出するべく、この盗まれた情報が、なんらかの不正な者によって使用されうるリスクが存在している。いくつかのケースにおいては、ユーザーが、同一の又は類似のパスコードを複数のプラットフォーム及びアプリケーションに跨って使用している場合があることから、悪意を有する者がこのようなパスコードを発見することに由来しうる損害が、単一のコンピュータに基づいたアプリケーションをはるかに超えて拡大する場合がある。例えば、実際に、インターネットバンキングアプリケーションのユーザーが、自身のインターネットバンキングアプリケーションに対する認証のために、自身のバンクカードのうちの1つのバンクカードのPINと同一の、又はこれに非常に類似している、パスコードを選択することを排除することは、困難でありうる。

0009

クライアント装置又はサーバー装置のいずれもが、攻撃者が、パスコードの値を取得できるようにしうる、又はパスコードの可能な値の範囲を制約できるようにしうる、なんらの情報をも永久的に保存していない場合には、パスコードの使用に基づいた認証解決策の全体的なセキュリティを向上させることができる、というのが、本発明者らの洞察である。例えば、本発明のいくつかの実施形態においては、クライアント装置又はサーバー装置のいずれもが、パスコード値又はパスコード値から可逆的な方式によって算出されるデータ要素を永久的に保存していなくてもよい。又、本説明においては、クライアント装置は、クライアント、認証クライアント認証トークン、又は強力認証トークンと呼称される場合がある。

0010

本発明による強力認証トーンの機能
いくつかの実施形態においては、強力認証トークンは、パスワードベリファイアデータ要素の値を動的変数の値及び秘密暗号キーの値と暗号方式によって組み合わせ、且つ、秘密暗号キーによってパラメータ化された暗号アルゴリズムを使用することにより、ワンタイムパスワード(OTP:One−Time Password)又は電子署名などの動的クレデンシャルを生成するように適合されてもよい。

0011

いくつかの実施形態においては、強力認証トークンは、パスコードを提供するようにユーザーに要求し、且つ、ユーザーによって提供されたパスコード値をパスコードブラインディングデータ要素の値と組み合わせることにより、パスコードベリファイアデータ要素の値を算出するように適合されてもよい。いくつかの実施形態においては、パスコードブラインディングデータ要素は、認証トークンにより、例えば、認証トークンによってアクセス可能であるなんらかの形態の永久的又は不揮発性メモリ内において保存されてもよい。いくつかの実施形態においては、ユーザーによって提供されるパスコード値は、例えば、暗号ハッシュ関数を有しうる、暗号一方向関数などの関数を使用することにより、保存されているパスコードブラインディングデータ要素の値と組み合わせられてもよい。いくつかの実施形態においては、パスコードブラインディングデータ要素は、強力認証トークンにより、一度だけ、生成されてもよく、且つ、次いで、将来の使用のために、強力認証トークンによって保存されてもよい。いくつかの実施形態においては、強力認証トークンは、予測不能な方式により、パスコードブラインディングデータ要素を生成してもよい。いくつかの実施形態においては、強力認証トークンは、パスコードの値とは独立した方式により、パスコードブラインディングデータ要素を生成してもよい。例えば、いくつかの実施形態においては、強力認証トークンは、ランダム数生成器又は疑似ランダム数生成器を使用することにより、パスコードブラインディングデータ要素を生成してもよい。いくつかの実施形態においては、パスコードブラインディングデータ要素は、ランダム数生成器又は疑似ランダム数生成器によって生成されたランダム数を有することができる。いくつかの実施形態においては、強力認証トークンは、強力認証トークンがパスコードベリファイアデータ要素の値を算出するべくパスコード値を使用したら、ユーザーが提供したパスコード値のすべての(一時的な)複写をそのメモリから消去するように適合されてもよい。又、いくつかの実施形態においては、強力認証トークンは、強力認証トークンが動的認証クレデンシャルを生成するべく算出済みのパスコードベリファイアデータ要素を使用したら、算出済みのパスコードベリファイアデータ要素のすべての(一時的な)複写をそのメモリから消去するように適合されてもよい。

0012

いくつかの実施形態においては、動的変数は、(例えば、ソフトウェアトークンがその上部において稼働中でありうるパーソナル演算装置などの強力認証トークンのクロックによって提供されうる)時間値の関数であってもよい。いくつかの実施形態においては、動的変数は、イベントに関係する変数の値の関数であってもよい。本説明においては、イベントに関係する変数という用語は、その値が、特定のイベントの発生の際に、更新アルゴリズムを使用して自動的に更新されうる変数を意味しうる。いくつかの実施形態においては、強力認証トークンは、特定のイベントの発生の際に、そのイベントに関係する変数の現時点の値の関数として、イベントに関係する変数の新しい値を算出してもよく、且つ、算出された新しい値によって現時点の値を置換してもよい。いくつかの実施形態においては、特定のイベントは、例えば、OTP又は電子署名を生成するための強力認証トークンによるイベントに関係する変数の使用を有することができる。いくつかの実施形態においては、イベントに関係した変数は、カウンタを有していてもよく、且つ、更新アルゴリズムは、カウンタの単調な増分(又は、減分)を有することができる。いくつかの実施形態においては、更新アルゴリズムは、例えば、一方向ハッシュアルゴリズムを有していてもよく、且つ、イベントに関係する変数は、一方向ハッシュアルゴリズムをイベントに関係する変数の古い値に対して適用した結果として得られる新しい値により、更新されてもよい。いくつかの実施形態においては、イベントに関係する変数は、秘密暗号キーを有していてもよく、或いは、動的クレデンシャルの生成において使用される秘密暗号キーは、イベントに関係する変数から導出されてもよい。例えば、いくつかの実施形態においては、秘密暗号キーの値は、秘密暗号キーがOTP又は電子署名を生成するべく使用されるたびに、秘密暗号キーの以前の値の関数でありうる新しい値により、更新されてもよい。いくつかの実施形態においては、イベントに関係する変数は、状態変数を有していてもよく、且つ、秘密暗号キーの値は、その状態変数の関数として算出されてもよく、状態変数は、特定のイベントの発生の際に、その状態変数の現時点の値の関数でありうる新しい値により、更新されてもよい。いくつかの実施形態においては、動的変数は、チャレンジに基づいたものであってもよく、チャレンジは、例えば、サーバーによって生成されてもよく、且つ、例えば、(例えば、ユーザーが、強力認証トークンを有する電子装置ユーザー入力インターフェイスを使用してチャレンジを入力することにより)強力認証トークンに対して提供されてもよい。いくつかの実施形態においては、動的変数は、(例えば、ユーザーが、強力認証トークンのユーザー入力インターフェイスを使用してトランザクションデータを入力することにより)強力認証トークンに対して提供されうるトランザクションデータに基づいたものであってもよい。いくつかの実施形態においては、動的変数は、上述のタイプの動的変数の任意の組合せを有していてもよい。

0013

パスコードベリファイアデータ要素の値を動的変数及び秘密暗号キーの値との間において暗号方式によって組み合わせた結果は、一般に、動的クレデンシャル又は動的認証クレデンシャルと呼称することができる。動的変数がトランザクションデータに基づいているケースにおいては、動的変数の値をパスコードベリファイアデータ要素の値及び秘密暗号キーの値との間において暗号方式によって組み合わせた結果は、電子署名と呼称することができる。動的変数がチャレンジに基づいているケースにおいては、動的変数の値をパスコードベリファイアデータ要素の値及び秘密暗号キーの値との間において暗号方式によって組み合わせた結果は、応答と呼称することができる。時間値又はイベントに関係する変数の値を伴うケースなどのように、動的変数が、強力認証トークによって内部的に生成及び/又は維持されるデータに基づいているケースにおいては、動的変数の値をパスコードベリファイアデータ要素の値及び秘密暗号キーの値との間において暗号方式によって組み合わせた結果は、ワンタイムパスワード(OTP)と呼称することができる。

0014

いくつかの実施形態においては、パスコードベリファイアデータ要素の値を動的変数の値及び秘密暗号キーの値との間において暗号方式によって組み合わせる暗号アルゴリズムは、秘密暗号キーによってパラメータ化されうる対称型暗号アルゴリズムを有していてもよく、且つ、強力認証トークンは、例えば、認証サーバーとの間において秘密暗号化キー共有していてもよい。例えば、いくつかの実施形態においては、対称型暗号アルゴリズムは、動的変数の値に基づいて動作しうると共に秘密暗号キーによってパラメータ化されうる、AES(Adbanced Encryption Standard)などの、対称型暗号化又は暗号解読アルゴリズムを有していてもよい。いくつかの実施形態においては、対称型暗号アルゴリズムは、動的変数の値に基づいて動作しうると共に秘密暗号キーによってパラメータ化されうる、HMAC(Hash−based Message Authentication Code)などの、鍵付きハッシュアルゴリズムを有していてもよい。

0015

ソフトウェア及びハードウェアトークン
いくつかの実施形態においては、強力認証トークンは、パーソナルコンピュータ(PC:Personal Computer)、タブレットコンピュータ、又はスマートフォンなどの、ユーザーに属するパーソナル汎用電子演算装置上においてインストールされると共に稼働しているソフトウェアアプリケーションの形態を有していてもよく、これにより、ソフトウェアアプリケーションは、認証ソフトウェアアプリケーションの正当なユーザー用認証サービスを提供するように適合されていてもよい。

0016

いくつかの実施形態においては、強力認証トークンは、その主な又は唯一の機能が、装置の正当なユーザー用の認証サービスを提供する、というものである、専用の電子ハードウェア装置を有していてもよい。

0017

これらの認証サービスは、本説明のどこか別のところにおいて更に詳細に説明されているように、ユーザーをリモートコンピュータに基づいたアプリケーションに対して認証すると共に/又は、ユーザーによってリモートコンピュータに基づいたアプリケーションに対してサブミットされたトランザクションを保護するなどの、ユーザーとコンピュータに基づいたアプリケーションの間におけるやり取りを保護するための動的クレデンシャルを生成するステップを有していてもよい。

0018

いくつかの実施形態の一般的な原理
いくつかの実施形態においては、本発明による認証プロトコルは、動的状態から生成される暗号キーのシーケンスを使用してもよく、この場合に、状態は、新しい状態が古い状態から見出されうるように、但し、この逆にはならないように、更新されている。状態の現時点の値は、認証クライアント(強力認証トークンなど)及び認証サーバーの両方により、同期した方式によって維持することができる。例えば、いくつかの実施形態においては、フォワードセキュア型のキー更新アルゴリズムを使用することにより、キー及び/又は状態のシーケンスを構築することができる。いくつかの実施形態においては、認証トークンは、認証クレデンシャルを生成するべく、認証トークンのユーザーによって認証トークンに提供されたものでありうるパスコードをこのような暗号キーと暗号方式によって組み合わせることができる。いくつかの実施形態においては、認証クレデンシャルの生成において使用される暗号キーは、例えば、強力認証トークンが認証クレデンシャルを生成した後に、毎回、強力認証トークンによって更新されうる、このような状態の現時点の値から、強力認証トークンにより、導出されてもよい。

0019

いくつかの実施形態においては、パスコードは、直接的には使用されておらず、「パスコードベリファイア」を生成するためにのみ、使用されており、パスコードベリファイアは、パスコード及びパスコードブラインディングデータ要素から形成されている。パスコードブラインディングデータ要素は、初期化ステージにおいて、認証トークンにより、例えば、生成されるなどのように、取得されてもよく、且つ、例えば、パスコード値からパスコードベリファイア値を生成するなどの、将来の使用のために、認証トークン上において、且つ、認証トークン上においてのみ、永久的に保存されてもよい。パスコードベリファイアは、結果的に得られたパスコードベリファイアに対して逆関数を適用することにより、パスコード値を算出することができないように、一方向関数を使用して生成することができる。パスコードブラインディングデータ要素は、高エントロピーを有していてもよく、且つ、パスコードベリファイアは、パスコードブラインディングデータ要素が既知でない場合に、ブルートフォース攻撃により、実際のパスコード値をパスコードベリファイアから取得することが実際に実現不能となりうるように、高エントロピーを有するように、生成することができる。例えば、パスコードベリファイアは、ハッシュ関数を、好ましくは、SHA−256などの暗号方式によって保護されたハッシュ関数を、パスコード値とパスコードブラインディングデータ要素の、連結などの、組合せに対して適用することにより、認証トークンによって算出することができる。パスコードブラインディングデータ要素は、真の又は疑似的なランダム数生成器によって生成されたものであってもよい。いくつかの実施形態においては、パスコードブラインディング数は、認証トークンによって生成された真の又は疑似的なランダムデータに基づいて生成することができる。いくつかの実施形態においては、パスコードブラインディング数は、認証サーバーによって生成された真の又は疑似的なランダムデータに基づいて生成することができる。いくつかの実施形態においては、パスコードブラインディング数は、認証トークンによって生成された真の又は疑似的なランダムデータと認証サーバーによって生成された真の又は疑似的なランダムデータの組合せに基づいて生成することができる。実際のパスコードは、使用が完了するたびに、且つ、使用された後に即座に、認証トークンから消去されてもよい。初期化ステージにおいては、パスコードベリファイアは、保護された方式により、検証又は認証サーバーに転送されていてもよく、且つ、例えば、認証トークンによって生成された動的認証クレデンシャルの検証などの、将来の使用のために、検証又は認証サーバー上において、且つ、検証又は認証トークン上においてのみ、永久的に保存されてもよい。

0020

いくつかの実施形態においては、それぞれの生成された動的認証クレデンシャルは、それぞれの生成されたクレデンシャルごとに更新される鍵付きHMAC(HMAC under a key)であってもよい。HMACに対する入力の1つは、パスコードベリファイアであってもよい。クレデンシャルの検証が完了した後に、古いキーが破棄されてもよく、且つ、状態が更新されてもよい。この結果、検証サーバーは、パスコードについて知ることができない(検証サーバーは、パスコードデータ要素ではなく、パスコードベリファイアの複写を有するのみであり、この結果、サーバーにおいて保持されているパスコードベリファイアの複写に対してブルートフォース攻撃を適用することにより、実際のパスコード値を取得することができない)。

0021

認証トークンは、パスコードを決して保存することがなく、従って、認証トークンからの情報の抽出により、パスコートを発見することはできない(パスコードブラインディング要素は、認証トークン上において保存されているが、これは、パスコードベリファイアの知識を伴うことなしにブルートフォース攻撃によってパスコードの値を取得するべく、使用することができない)。

0022

又、古いクレデンシャル及び認証トークンの現時点の状態が付与された状態において、パスコードを発見することは不可能であり、その理由は、候補パスコードを試験するために必要とされるキーのサーバー及びクライアントの両方による破壊が完了した状態にあるからである。

0023

本発明のプロトコル、システム、及び方法のその他の態様は、サーバー及びクライアントを同期状態において維持する方法に関係しうるが、これは、状態を更新する時期に関する特定の規則順守することによるものであってもよい。これらの態様の更なる詳細については、本説明のどこか別のところにおいて記述されている。

0024

又、いくつかの実施形態においては、本説明において記述されている技法は、例えば、低エントロピーを有しうることから、秘密状態において留まることを要する、且つ、ブルートフォース攻撃に対して脆弱でありうる、あらゆる機密を含むユーザー認証に関係するデータに対して適用することができる。又、例えば、これら技法は、そのいずれもがパスコードの例でありうる、PIN、パスワード、及び生体計測テンプレートに対して適用されてもよい。

0025

特定の実施形態
以下の節においては、本発明の実施形態の特定の組について説明することとする。

0026

用語及び定義
−PRNG(長さ):暗号方式によって保護されたランダム数生成器からの「長さ」ビットビットストリングであり、ランダム数生成器は、真のランダム数生成器又は疑似的なランダム数生成器を有しうる。

0027

IENCODE(i,長さ):左側の桁がゼロによって充填されたビッグエンディアン整数としての数「I」を「長さ」ビットにエンコーディングした結果であるビットストリングを表記している。

0028

−<>:ゼロの長さのバイトストリングを表記している。

0029

−{a,b,c...}:所与順序においてビットストリング「a」,「b」,「c」,...を連結した結果を表記している。

0030

−S:そうではない旨が規定されていない限り、認証サーバーを意味しており、且つ、認証サーバーによって実行された動作又はステップをも示しうる。

0031

−C:そうではない旨が規定されていない限り、認証トークン又は認証クライアントアプリケーションなどの認証クライアントを意味しており、且つ、認証クライアントによって実行された動作又はステップをも示しうる。

0032

−「Sender→Receiver:Message」という表現:ビットストリング「Message」がエンティティ「Sender」からエンティティ「Receiver」に送信されることを意味している。これは、「Sender」から「Receiver」への「Message」の転送の前のビットストリーム「Message」のエンティティ「Sender」による生成を更に意味しうる。

0033

暗号プリミティブ
暗号化プリミティブ
「ciphertext=ENC(K,IV,Data)」という表現は、(選択された暗号化アルゴリズムにおいて適用可能である場合に)初期化ベクトル「IV」を使用して暗号暗号化キー「K」によってパラメータ化された暗号暗号化アルゴリズムを使用することにより、結果「ciphertext」を取得するべく、ビットストリング「Data」を暗号化するステップを表記している。いくつかの実施形態においては、暗号化アルゴリズムは、対称型暗号化アルゴリズムを有することができる。いくつかの実施形態においては、対称型アルゴリズムは、なんらかの暗号化モードにおいて、AES(Advanced Encryption Standard)又は3DES(Triple Data Encryption Standard)などの、ブロック暗号を有することができる。例えば、いくつかの実施形態においては、AESアルゴリズムは、CTRモードにおいて使用されてもよく(カウンタモードであり、ウェブアドレス「en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CTR」に位置しているウェブサイトをも参照されたい。この内容は、引用により、本明細書に包含される)、且つ、キーKは、128ビットのサイズを有していてもよく、且つ、CTRモード用のカウンタの開始値は、初期化ベクトルから算出されてもよい。いくつかの実施形態においては、CTRモード用のカウンタの開始値は、例えば、IV<<64などのように、いくつかの位置にわたって左シフトされた初期化ベクトルとして算出されてもよい。いくつかの実施形態においては、初期化ベクトルは、カウンタ「CTR」及びランダム数から算出されてもよい。例えば、初期化ベクトルは、IV(CTR)={IENCODE(CTR,6×8),PRNG(2×8)}として、カウンタ「CTR」の関数として算出されてもよい。

0034

クレデンシャル生成プリミティブ
いくつかの実施形態においては、クレデンシャルは、入力としてキー「K」及びビットストリング「Data」を使用する暗号関数を使用することにより、キー「K」及び入力ビットストリング「Data」を使用して算出することができる。例えば、いくつかの実施形態においては、クレデンシャルは、入力としてキー「K」及びビットストリング「Data」を使用することにより、メッセー認証コード(MAC)として算出されてもよい。いくつかの実施形態においては、クレデンシャルを算出するための暗号関数は、キー「K」下におけるビットストリング「Data」の暗号化(又は、暗号解読)を有することができる。いくつかの実施形態においては、クレデンシャルを算出するための暗号関数は、一方向関数を有することができる。いくつかの実施形態においては、一方向関数は、暗号ハッシュ関数を有することができる。いくつかの実施形態においては、一方向関数は、鍵付きハッシュ関数を有することができる。例えば、いくつかの実施形態においては、クレデンシャルは、MAC=HMAC(K,Data)として算出されてもよく、これにより、HMACは、RFC2104によって規定されているHMAC、或いは、RFC4231によって規定されているSHA−256のHMACなどの、キーKの下におけるデータのハッシュに基づいたメッセージ認証コードを表記している。いくつかの実施形態においては、キーKは、128ビットのサイズを有することができる。いくつかの実施形態においては、結果的に得られる暗号文、ハッシュ、又はMACは、切り捨てられてもよい。いくつかの実施形態においては、Dataは、8ビットの倍数でない場合には、次のバイト境界まで左側の桁にゼロが充填されている。

0035

キー更新プリミティブ
表現「statei+1,keyi+1=UPDATE(statei)」は、状態の古い値「statei」から始まって、そのキーの「keyi+1」及びその状態の「statei+1」という新しい値を算出するべく、なんらかの暗号キー及び状態更新アルゴリズムを使用すると共に(適用可能である場合に)キー及び状態の古い値を新たに算出された値によって置換することにより、キー及び状態の値を更新するステップを表記している。いくつかの実施形態においては、状態の新しい値は、状態の現時点の値を入力として取得する第1不可逆関数を使用することにより、状態の現時点の値から算出することができる。いくつかの実施形態においては、暗号キーの新しい値は、状態の現時点の値を入力として取得する第2不可逆関数を使用することにより、状態の現時点の値から算出することができる。いくつかの実施形態においては、状態の現時点の値から状態及び暗号キーの新しい値を算出する不可逆関数は、例えば、セキュア暗号ハッシュ関数を有することができる。いくつかの実施形態においては、暗号キー及び状態更新アルゴリズムは、「“Forward−Security in Private−Key Cryptography” by Mihir Bellare and Bennet Yee, Springer LNCS 2612」において開示されているキー更新アルゴリズムなどの、キー更新アルゴリズムを有することができる。いくつかの実施形態においては、暗号キー及び状態更新アルゴリズムは、次式のように定義することができる。

0036

−keyi+1=ENC(statei,IV_1,Data_1)

0037

この場合に、特定の一実施形態においては、Data_1は、0x00...0x00という16バイトから構成されていてもよく、且つ、IV_1は、値0を有することができる。

0038

−statei+1=ENC(statei,IV_2,Data_2)

0039

この場合に、特定の一実施形態においては、Data_2は、0x00...0x00という16バイトから構成されていてもよく、且つ、IV_2は、値263を有することができる。

0040

定数
いくつかの実施形態においては、いくつかの定数を使用することができる。例えば、いくつかの実施形態においては、VERSION、MSG_CHALLENGE、MSG_RESPONSE、MSG_ACTIVATION_CHALLENGE、MSG_ACTIVATION_RESPONSEという定数が使用されてもよく、この場合に、後者の4つの定数は、いずれも、互いに異なっている値を有しうる。特定の一実施形態においては、これらの定数は、以下の値を有することができる。
VERSION:=IENCODE(0,8)
MSG_CHALLENGE:=IENCODE(1,4)
MSG_RESPONSE:=IENCODE(2,4)
MSG_ACTIVATION_CHALLENGE:=IENCODE(3,4)
MSG_ACTIVATION_RESPONSE:=IENCODE(4,4)

0041

パラメータ及び初期構成
すべてのパラメータは、特定の認証トークン−サーバーの組合せにおけるものである。特定の認証トークン用にサーバーによって取得されたデータは、ログインしようとしている又はログインが完了している、特定のユーザーアカウントに対応しうる。サーバーによって取得されたデータは、特定の認証トークンに、或いは、起動された認証アプリケーションの特定のインスタンスに、対応しうる。

0042

0043

仮定及び注記
いくつかの実施形態においては、攻撃者は、認証トークンとサーバーの間のメッセージを伝達しているネットワークを制御することができると共に、完全なMitM(Man−in−the−Middle)攻撃を開始する能力を有しうるものと仮定することができる。又、いくつかの実施形態においては、認証トークン又はアプリケーションが保護されているものと仮定することもできる。又、いくつかの実施形態においては、サーバーが保護されているものと仮定することもできる。

0044

いくつかの実施形態においては、認証トークンは、セキュアハードウェアを使用して実装されてもよく、且つ、認証トークンは、任意のメッセージをMAC及び/又は暗号解読することが可能であってもよいが、キーをリリースすることはできない。このような実施形態においては、メッセージ内にノンスを含むことが有利でありうる。認証トークンに対する一時的なアクセスしか有していない攻撃者は、任意の将来のトランザクションのノンスを予測することができない。

0045

クライアントの事前起動
いくつかの実施形態においては、Challenge MAC key、KCMAC:=KSMAC、Encryption key KCENC:=KSENC、Response stateSCRES:=SSRES、Activation MAC key KCACT:= KSACTというデータ要素が、上述のように、サーバーによって生成されてもよく、且つ、クライアントの事前起動の際に、サーバーからクライアントに転送されてもよい。

0046

起動サブプロトコル
概要
いくつかの実施形態においては、認証トークン又はアプリケーションの初期状態は、先程示したものなどであってもよい。トランザクション署名又は動的クレデンシャル生成を実行しうる前に、認証トークン又はアプリケーションを起動することが必要でありうる。いくつかの実施形態においては、起動は、一度だけ、実行することができるが、これは、パスコードの変更に緊密に関係付けられうる。起動の最終結果は、一方においては、サーバーが、パスコードベリファイア(PV:Passcode Verifier)の複写を有することができる、というものであってよく、他方においては、クライアントが、パスコードブラインディングデータ要素(PR)の対応する値の保存を完了した状態でありうる、というものであってもよい。このステップは、サーバーが、ユーザーのパスコートについて知ることがないが、そのパスコードが、サーバーによって受領済みでありうるクレデンシャルの生成のために正しく入力されたかどうかを検証しうるように、実行されてもよい。パスコードベリファイアの値を有しうる、クライアントからの応答メッセージは、だれかが、例えば、スマートフォンを有しうる、認証トークンを盗み、且つ、認証トークンによって生成されたクレデンシャルを観察した場合に、その人物がユーザーのパスコードを想像することができないように、フォワードセキュアキーの下において暗号化されてもよい。

0047

詳細
いくつかの実施形態においては、ユーザーは、サーバーにコンタクトしてもよく、且つ、起動手順を開始することができる。起動手順又は起動プロトコルは、以下のステップを有することができる。

0048

ステップ1:いくつかの実施形態においては、起動メッセージが、サーバーによって生成されてもよく、且つ、以下のように、サーバーからクライアントに転送されてもよい。
S→C: {Version,Service ID,User ID,IV,ENC(KSENC,IV,{Transaction,Type,Nonce,Activation_MAC})}
ここでは、以下のとおりである。
Version=VERSION
Service ID= IDSS
User ID= IDSU
IV= IV(CS)
Transaction=IENCODE(0, 212)
Type= MSG_ACTIVATION_CHALLENGE
Nonce= PRNG(128)
Activation_MAC= HMAC(KSMAC,{Version,Type,Transaction,Nonce,IV});いくつかの実施形態においては、Activation_MACは、64ビットに切り捨てられてもよい。

0049

ステップ2:キーKTACT及び状態SSRESが、サーバー上において更新されてもよい。
S:SSRES,KTACT:=UPDATE(SSRES)

0050

ステップ3:クライアントは、起動メッセージを受け取ってもよく、且つ、これを暗号解読することができる。

0051

ステップ4:クライアントは、IDCUがIDSUと等しいかどうかを検証することができる。IDCU!=IDSUである場合に、クライアントは、エラーメッセージを表示してもよく、且つ、終了してもよい。

0052

ステップ5:クライアントは、起動メッセージの暗号化された部分を暗号解読してもよく、且つ、Activation_MACを検証してもよく、クライアントは、これに失敗した場合に、終了することができる。

0053

ステップ6:クライアントは、初期ベクトルIVからカウンタを抽出してもよく、且つ、(IVから抽出された)そのカウンタ<=カウンタの最後の既知の値であるか、或いは、>カウンタの最後の既知の値+100である、場合に、クライアントは、異常終了してもよい。

0054

ステップ7:クライアントは、パスコードブラインディングデータ要素を取得することができる。例えば、クライアントは、パスコードブラインディングデータ要素の値をまだ有していない場合には、パスコードブラインディングデータ要素をランダム数として生成することができる。例えば、特定の一実施形態においては、C:PR==<> then PR:=PRNG(128)である。

0055

ステップ8:クライアントは、パスコードの値を提供するようにユーザーに要求してもよく、且つ、ユーザーによって提供されたパスコードをキャプチャしてもよい。いくつかの実施形態においては、ユーザーは、確認のためにパスコードを二度にわたって提供するように要求されてもよく、且つ、クライアントは、ユーザーによって提供されたパスコードの2つの値が一貫性を有することを検証するように適合されていてもよい。

0056

ステップ9:状態及びキーがクライアント上において更新されてもよい(これは、IVから抽出されたカウンタの値とカウンタの最後の既知の値の間の差に応じて反復されてもよい)。
C:SCRES,K:=UPDATE(SCRES)

0057

ステップ10:応答が生成されている。
C→S: ENC(K,0,{V,HMAC(KCACT,{Version,Type,Transaction,V})
ここでは、以下のとおりである。
Version=VERSION
Type= MSG_ACTIVATION_RESPONSE
Transaction=IENCODE(0,212)
V= HMAC(PR,passcode)(30ビットに切り捨てられる)
HMAC(KCACT,msg)は、15ビットに切り捨てられる。

0058

ステップ11:S:サーバーは、応答をKTACTによって暗号解読してもよく、且つ、これをKCACTによって検証してもよく、且つ、PV:=Vと設定してもよい。

0059

認証サブプロトコル
概要
この認証サブプロトコルは、ユーザーが、自身を認証することを許容するべく、或いは、特定のトランザクションを認可することを許容するべく、実行されてもよい。結果は、例えば、ユーザーによって提供された認証クレデンシャルの検証に成功した際に、ユーザーが正しいトランザクション詳細を観察していると共に正しいパスコードを入力したとサーバーが結論付けるというものであってもよい。サーバーは、パスコード自体について知ってはいない。すべての通信を記録している盗聴者も、電話機を盗んだ後においてさえ、(MACキーが、使用の後に破棄されていることから)パスコードを取得可能ではない。

0060

詳細
ステップ1:いくつかの実施形態においては、ユーザーは、サーバーにコンタクトしてもよく、且つ、認証又はトランザクションを開始することができる。

0061

ステップ2:クライアントは、動的変数の値を取得することができる。いくつかの実施形態においては、動的変数の値は、クライアントによって維持されているカウンタに基づいたものであってもよい。いくつかの実施形態においては、クライアントは、そのこのようなカウンタの値をサーバーによって維持されている対応するカウンタ値同期化させることができる。いくつかの実施形態においては、動的変数の値は、例えば、クライアントがサーバーからメッセージ内において受け取りうる外部データ要素に基づいたものであってもよい。外部データ要素は、例えば、サーバーによって生成されうるチャレンジ及び/又はノンスを有することができる。又、外部データ要素は、例えば、ユーザーによって認可されるべきトランザクションを表すトランザクションデータを有することもできる。いくつかの実施形態においては、サーバーは、例えば、メッセージ認証コード(MAC)を追加することにより、メッセージを認証することができる。又、いくつかの実施形態においては、サーバーは、サーバーメッセージを暗号化することもできる。例えば、特定の一実施形態においては、サーバーは、チャレンジメッセージを生成してもよく、且つ、クライアントに以下のように送信してもよい。
S−> C: {Version, Service ID,User ID,IV,
ENC(KSENC,IV,{Transaction,Type,Nonce,Challenge_MAC})}
ここでは、以下のとおりである。
Version=VERSION
Service ID= IDSS
User ID= IDSU
IV= IV(CS)
トランザクション=認可されるべきトランザクションのエンコーディングされた詳細を有していてもよく、いくつかのケースにおいては、「Transaction」は、ユーザーにとっては無意味でありうる(ランダムな)チャレンジによってエンコーディングされてもよく、或いは、これは、例えば、認証サブプロトコルが、特定のトランザクションの認可のためにではなく、ユーザーの認証のために使用されている場合には、既定の値によってエンコーディングされてもよい。
Type=MSG_CHALLENGE
Nonce= PRNG(128)
Challenge_MAC= HMAC(KSMAC,{Version,Type,Transaction,Nonce,IV}), 64ビットに切り捨てられる

0062

ステップ3:キーK及び状態SSRESをサーバー上において更新することができる。
S:SSRES,K:=UPDATE(SSRES)

0063

ステップ4:サーバーは、予想応答を生成してもよく(これは、いくつかの実施形態においては、30ビットに切り捨てられてもよい)、予想応答は、サーバーが後からクライアントから受け取りうる認証クレデンシャルと比較されるべきクレデンシャル基準値として機能することができる。
S:E=HMAC(K,{Version,Type,Transaction,Nonce,IV,PV})
ここでは、以下のとおりである。
Version=VERSION
Type=MSG_RESPONSE
トランザクション、ノンス、IVは、チャレンジメッセージから取得される。

0064

ステップ5:クライアントは、受け取られたチャレンジメッセージを暗号解読することができる。

0065

ステップ6:C:IDCU!=IDSUである場合に、エラーメッセージを表示し、且つ、終了する。

0066

ステップ7:クライアントは、受け取られたチャレンジメッセージを暗号解読してもよく、且つ、メッセージの発信元を認証するべく、Challenge_MACを検証してもよい。この検証に失敗した場合には、クライアントは、異常終了することができる。

0067

ステップ8:(IVから抽出された)カウンタ<=最後のカウンタであるか、或いは、>最後のカウンタ+100である場合に、クライアントは、異常終了することができる。

0068

ステップ9a:クライアントは、トランザクションにおいてエンコーディングされたトランザクションデータをユーザーに提示してもよく、且つ、提示されたトランザクションデータを認可するようにユーザーに要求することができる。トランザクションが(ハードコーディングされた値又はハッシュ値などの)有意なデータを含んでいない場合には、このステップは、スキップされてもよい。ユーザーが、提示されたトランザクションデータを認可しない場合には、クライアントは、異常終了することができる。

0069

ステップ9b:クライアントは、パスコードを提供するようにユーザーに要求することができる。ユーザーがパスコードを提供しない場合には、クライアントは、異常終了することができる。いくつかの実施形態においては、ユーザーは、パスコードを提供することにより、(例えば、提示されたトランザクションデータの)認可を黙示的通知することができる。

0070

ステップ10:キーK及び状態SCRESをクライアント上において更新することができる(これは、クライアントの状態をサーバーの状態と同期させるべく、カウンタに基づいて、いくつかの回数にわたって、反復されてもよい)。
C:SCRES,K:=UPDATE(SCRES);

0071

ステップ11:クライアントは、サーバーからチャレンジメッセージを受け取るのに応答して、認証クレデンシャルを生成してもよく、且つ、クライアントは、以下のように、生成された認証クレデンシャルをサーバーに返すことができる。
C−>S:HMAC(K,{Version,Type,Transaction,Nonce,IV,V})
ここでは、以下のとおりである。
Version=VERSION(8ビットになるように、左側の桁にゼロを充填することができる)
Type=MSG_RESPONSE
トランザクション、ノンス、IVは、チャレンジメッセージから取得される。
V=HMAC(PR,passcode)
いくつかの実施形態においては、生成されたクレデンシャルは、30ビットに切り捨てられてもよい。

0072

ステップ12:サーバーは、認証クレデンシャルが予想応答Eとマッチングしているかどうかを検証することができる。いくつかの実施形態においては、サーバーは、認証クレデンシャルの検証に成功したかどうかを通知する信号を生成することができる。

0073

可能な変形
いくつかの実施形態においては、完全を期すべく、ユーザーID及び/又はサービスIDがMAC内に包含されていてもよい。

0074

いくつかの実施形態においては、メッセージタイプは、メッセージの残りの部分が暗号解読される方式を決定するべく使用されうるように、メッセージの先頭に移動されてもよい。

0075

本発明のいくつかの実施形態においては、パスコードは、例えば、PIN又はパスワードなどの、ユーザーによって提供される秘密情報を有することができる。その他の実施形態においては、パスコードは、その他の情報を有していてもよく、その他の情報は、ユーザーに関係付けられていてもよく、或いは、ユーザーに固有のものであってもよく、且つ、例えば、いくつかの種類の生体計測情報などのように、機密的特性を有しうると共に秘匿状態において留まることを要する。

0076

本発明の以上の且つその他の特徴及び利点については、以下の添付図面において示されている本発明の実施形態に関する以下の更に具体的な説明から、明らかとなろう。

図面の簡単な説明

0077

本発明の一態様による例示用の装置を概略的に示す。
本発明の一態様による例示用のシステムを概略的に示す。
本発明の一実施形態による例示用の方法を概略的に示す。
本発明の一態様による動的認証クレデンシャルを検証する例示用の方法を概略的に示す。

実施例

0078

以下、本発明のいくつかの実装形態について説明する。特定の実装形態が説明されているが、これは、例示を目的として実行されるものに過ぎないことを理解されたい。当業者は、本発明の精神及び範囲を逸脱することなしに、その他のコンポーネント及び構成が使用されうることを認識するであろう。

0079

図1は、本発明の一態様による本発明の例示用の装置又はトークン(100)を概略的に示している。

0080

いくつかの実施形態においては、装置又はトークン(100)は、強力認証トークンを有することができる。いくつかの実施形態においては、装置又はトークンは、例えば、その主な又は唯一の機能が、装置の正当なユーザー用の認証サービスを提供する、というものである、専用の電子ハードウェア装置を有することができる。いくつかの実施形態においては、装置又はトークン(100)は、PC(パーソナルコンピュータ)、タブレットコンピュータ、スマートフォン、又はスマートウォッチなどの、パーソナル汎用演算装置を有することができる。いくつかの実施形態においては、装置又はトークン(100)は、本説明のどこか別のところにおいて更に詳細に記述されている強力認証トークン又は認証クライアントのいずれかを有することができる。いくつかの実施形態においては、装置又はトークン(100)は、本説明のどこか別のところで更に詳細に記述されている強力認証トークン又は認証クライアントのいずれかによって実行される方法ステップ又は動作のいずれかを実行するように適合されていてもよい。

0081

装置又はトークン(100)は、人間ユーザー入力インターフェイス(120)と、人間ユーザー出力インターフェイス(130)と、データ入力インターフェイス(140)と、データプロセッサ(150)と、メモリコンポーネント(160)と、動的変数の値を提供するためのコンポーネント(170)と、を有することができる。

0082

プロセッサ(150)及びメモリ(160)
トークンは、例えば、本説明のどこか別のところにおいて更に詳細に記述されている強力認証トークン又は認証クライアントのいずれかに帰される関数の1つ又は複数を実装するべく、データ処理命令の組を実行するように適合されうるデジタルデータ処理コンポーネント(150)を有することができる。いくつかの実施形態においては、データ処理コンポーネント(150)は、例えば、1つ又は複数のマイクロプロセッサマイクロコントローラデジタル信号プロセッサ(DSP:Digital Signal Processor)チップフィールドプログラム可能ゲートアレイFPGA:Field Programmable Gate Array)、アプリケーション固有集積回路ASIC:Application Specific IntegratedCircuit)などを有することができる。

0083

トークンは、メモリコンポーネント(160)を有することができる。メモリコンポーネント(160)は、デジタルデータ処理コンポーネント(150)に接続されていてもよい。いくつかの実施形態においては、メモリコンポーネントは、データ処理コンポーネントによって実行されるべきソフトウェア又はファームウェアを保存するように適合されたプログラムメモリコンポーネントを有することができる。いくつかの実施形態においては、トークンがサポートしている機能は、そのメモリ内において保存されているソフトウェア又はファームウェアによって定義されうる。

0084

いくつかの実施形態においては、メモリコンポーネント(160)は、データを永久的又は一時的に保存するように適合されたデータメモリコンポーネントを有することができる。いくつかの実施形態においては、データメモリコンポーネントは、暗号キー又はパスコードブラインディングデータ要素などの秘密データを安全に保存するように適合されていてもよい。いくつかの実施形態においては、データメモリコンポーネントは、複数のトークンインスタンスのデータを保存するように適合されていてもよい。

0085

メモリコンポーネントは、例えば、RAM(Random Access Memory)メモリ、ROM(Read−Only Memory)メモリ、EPROM(Erasable Programmable Read−Only Memory)メモリ、ワンタイムプログラム可能メモリ、フラッシュメモリ半導体メモリハードディスクなどを有することができる。

0086

トークンは、トークンが、例えば、パスコードブラインディングデータ要素を生成するべく、使用しうるランダム又は疑似ランダム数生成器を更に有することができる。

0087

ユーザーインターフェイス(120、130)
いくつかの実施形態においては、強力認証トークンは、例えば、ユーザーとの間において、データ、情報、及び/又はコマンドを交換するべく、ユーザーとやり取りするためのユーザーインターフェイス(120、130)を有することができる。ユーザーインターフェイス(120、130)は、デジタルデータ処理コンポーネント(150)に接続されていてもよい。

0088

いくつかの実施形態においては、強力認証トークンのユーザーインターフェイスは、情報及び/又はデータ(ユーザー用の命令又はメッセージ、ユーザーによって承認されるべきトランザクションデータ、強力認証トークンによって生成された動的クレデンシャルなど)を強力認証トークンのユーザーに提示するための出力ユーザインターフェイス(130)を有することができる。いくつかの実施形態においては、出力ユーザーインターフェイスは、例えば、ディスプレイ(130)又はオーディオ出力インターフェイスを有することができる。いくつかの実施形態においては、強力認証トークンのユーザーインターフェイスは、例えば、(チャレンジ又はトランザクションデータのような)入力データ又は(確認、認可、又は取り消しのような)命令又はパスコードなどの、入力をユーザーから受け取るための入力ユーザーインターフェイス(120)を有することができる。いくつかの実施形態においては、入力ユーザーインターフェイスは、例えば、キーボード(120)を有することができる。いくつかの実施形態においては、強力認証トークンのユーザーインターフェイスは、ユーザー出力インターフェイス及びユーザー入力インターフェイスの両方の機能を提供するように適合されうるタッチスクリーンを有することができる。

0089

データ入力インターフェイス(140)
いくつかの実施形態においては、強力認証トークンは、デジタルデータ入力インターフェイスを有することができる。データ入力インターフェイス(140)は、デジタルデータ処理コンポーネント(150)に接続されていてもよい。いくつかの実施形態においては、強力認証トークンのデジタルデータ入力インターフェイスは、デジタルデータメッセージを受け取るように適合されていてもよい。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、例えば、インターネット接続を有することができる。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、例えば、ユニバーサルシリアルバス(USB)接続などのローカル有線データ接続を有することができる。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、例えば、BLUETOOTH又はWi−Fiインターフェイスなどの、ローカル無線データインターフェイスを有することができる。いくつかの実施形態においては、デジタルデータ入力インターフェイスは、モバイルデータ通信ネットワークインターフェイスを有することができる。いくつかの実施形態においては、強力認証トークンは、例えば、スマートフォンを有することができる。いくつかの実施形態においては、データ入力インターフェイスは、光学画像取得コンポーネント(140)を有することができる。いくつかの実施形態においては、光学画像取得コンポーネントは、カメラを有することができる。いくつかの実施形態においては、強力認証トークンは、デジタルデータメッセージによってエンコーディングされうる画像を光学画像取得コンポーネントによってキャプチャするように適合されていてもよい。いくつかの実施形態においては、画像は、2次元バーコードを有することができる。いくつかの実施形態においては、画像のフォーマットは、1つの規格において定義されていてもよい。例えば、いくつかの実施形態においては、光学画像は、QRコードであってもよい。

0090

その他の実施形態においては、デジタルデータ入力インターフェイスは、トークン用のメッセージ又はコマンドによってエンコーディングされうる音響信号をキャプチャするように適合された音響インターフェイスを有することができる。いくつかの実施形態においては、音響インターフェイスは、マイクロフォンを有することができる。いくつかの実施形態においては、音響インターフェイスは、アナログ電子信号を、例えば、上述のデジタルデータ処理コンポーネントによって更に処理されうるデジタル信号に変換するべく、アナログ−デジタルコンバータを有することができる。

0091

いくつかの実施形態においては、装置又はトークン(100)は、本説明のどこか別のところにおいて更に詳細に説明されているように、例えば、アクセス装置によって表示されうる、例えば、2次元バーコードの形態において、認証サーバーにより、生成されうる且つ装置又トークンに送信されうる、本説明のどこか別のところにおいて更に詳細に記述されている、認証メッセージのいずれかを受け取るべく、データ入力インターフェイス(140)を使用するように適合されていてもよい。

0092

クレデンシャル生成
トークンは、本説明のどこか別のところにおいて更に詳細に説明されている動的クレデンシャルを生成するように適合されていてもよい。いくつかの実施形態においては、データ処理コンポーネント(150)は、動的クレデンシャルを生成するべく、暗号計算を実行するように適合されていてもよい。いくつかの実施形態においては、トークンは、メモリコンポーネント(160)内において永久的又は一時的に保存されうる、或いは、トークンが、メモリコンポーネント(160)内において永久的又は一時的に保存されているデータから導出しうる、暗号キーを使用することにより、動的クレデンシャルを生成するように適合されていてもよい。いくつかの実施形態においては、トークンは、メモリコンポーネント(160)内において保存されているトークンインスタンスの一部分であるデータを使用することにより、動的クレデンシャルを生成するように適合されていてもよい。いくつかの実施形態においては、トークンは、動的クレデンシャルを生成するべく、対称型暗号アルゴリズムを使用するように適合されていてもよい。いくつかの実施形態においては、この動的クレデンシャルを生成するための暗号アルゴリズムは、1つ又は複数の対称型秘密暗号クレデンシャル生成キーによってパラメータ化されていてもよい。いくつかの実施形態においては、クレデンシャル生成キーは、例えば、クレデンシャル検証サーバー又は認証サーバーなどの、サーバーと共有されていてもよい。

0093

いくつかの実施形態においては、トークンは、トークンによって提供される内部値を有しうる動的変数を使用することにより、動的クレデンシャルを生成するように適合されていてもよい。例えば、いくつかの実施形態においては、トークンは、クロック(170)を有していてもよく、且つ、トークンは、そのクロックによって提供される時間値を内部値として使用することができる。いくつかの実施形態においては、トークンは、カウンタを維持していてもよく、且つ、トークンは、そのインスタンス用の動的クレデンシャルを生成するべく、且つ、動的クレデンシャルを生成するためにトークンがそのカウンタの値を使用するたびに(例えば、増分又は減分することにより)そのカウンタの値を更新するべく、そのカウンタの値を内部値として使用するように適合されていてもよい。

0094

いくつかの実施形態においては、トークンは、トークンに提供される外部値を有しうる動的変数を使用することにより、動的クレデンシャルを生成するように適合されていてもよい。いくつかの実施形態においては、このような外部値は、サーバーによって生成されたチャレンジ又はノンス或いは署名されるべきトランザクションデータを有することができる。いくつかの実施形態においては、外部値は、トークンのユーザー入力インターフェイスを使用することにより、ユーザーによって手動でトークンに提供されてもよい。例えば、トークンは、トークンに含まれているキーボード上においてユーザーが文字ストリングとして入力しうるチャレンジ又はトランザクションデータをキャプチャすることができる。いくつかの実施形態においては、外部値は、そのデータ入力インターフェイスを利用してトークンによって受け取られるメッセージ又はコマンド内に含まれた状態において、提供されている。

0095

いくつかの実施形態においては、トークンは、生成された動的クレデンシャルをユーザーに提示するように適合されていてもよい。例えば、いくつかの実施形態においては、トークンは、生成された動的クレデンシャルをそのディスプレイ上において可読文字のストリングとして表示することができる。いくつかの実施形態においては、ストリングは、デジタル文字のみを有することができる。その他の実施形態においては、ストリングは、英数文字を有することができる。

0096

セキュア専用ハードウェアトークン
いくつかの実施形態においては、トークン(100)は、専用ハードウェア装置であってもよい。いくつかの実施形態においては、トークンは、(コンピュータに基づいた又は自動化されたアプリケーションでありうる)アプリケーションに対するユーザーのアクセスを保護するべく、或いは、このようなアプリケーションとの間におけるユーザーのやり取りを保護するべく、方法において使用されるように専用となっていてもよい。いくつかの実施形態においては、認証装置の主な目的は、アプリケーションに対するユーザーのアクセスを保護するべく、或いは、このようなアプリケーションとの間におけるユーザーのやり取りを保護するべく、方法において使用される、というものである。いくつかの実施形態においては、セキュリティ装置としてのその使用に対する認証装置の専用化を保証するべく、認証装置は、そのファームウェアの変更が不可能となるように適合されていてもよい。いくつかの実施形態においては、セキュリティ装置としてのその使用に対する認証装置の専用化を保証するべく、そのファームウェアに対する任意の変更又は更新は、認可された信頼可能な管理者が認証装置のファームウェアを更新又は変更できることを保証するように設計されたセキュアファームウェア更新プロトコルを通じてのみ、可能である。この結果、信頼可能な管理者は、アプリケーションに対するユーザーのアクセスを保護するべく、或いは、このようなアプリケーションとの間におけるユーザーのやり取りを保護するべく、方法におけるその使用に対する認証装置の専用化を元に戻す又は危険に晒すことになるファームウェア更新が発生しないことを保証することができる。ユーザーが、信頼可能な管理者によって認可されてはいない余分のソフトウェアをインストールすることができる装置は、専用の装置と見なすことができない。その主な目的が通信機能を提供するというものである装置は、アプリケーションに対するユーザーのアクセス及びこれとの間におけるやり取りを保護するために方法において使用されるべき専用化された装置と見なすことができない。汎用PC、ラップトップ、タブレットコンピュータ、及びスマートフォンは、専用の装置と見なすことができない。

0097

いくつかの実施形態においては、トークン(100)は、セキュアハードウェア装置である。いくつかの実施形態においては、セキュアハードウェア装置は、セキュアハードウェア装置を改竄するための試みの検出を保証するように、且つ/又は、これに対して抵抗するように、適合されている。いくつかの実施形態においては、セキュアハードウェア装置のハウジングは、ハウジングの開放に対して抵抗するように、且つ/又は、ユーザーがハウジングの変形を通じてハウジングの開放の試み(改竄証拠)に気付くことになる確率を増大させるように、適合されている。いくつかの実施形態においては、ハウジングを一緒に構成している部品は、これらの部品を取り外す試みが、通常は、ハウジングの明らかな変形に結び付くことになるように、1つに溶接又は接着されていてもよい。いくつかの実施形態においては、セキュアハードウェアは、ハウジングの開放を検出するスイッチを有する。いくつかの実施形態においては、セキュアハードウェア装置は、改竄の試みを検出した際に適切な動作を実行するように適合されている。いくつかの実施形態においては、セキュアハードウェア装置は、暗号キーやパスコードブラインディングデータ要素などの特定の機密性を有するデータを消去してもよく、或いは、セキュアハードウェア装置は、セキュアハードウェア装置を改善するための推定される試みを検出した際に、(恐らくは、不可逆的に)、エラーモードに入ってもよく、或いは、機能を停止してもよい。

0098

セキュアハードウェア装置は、セキュアユーザー出力インターフェイス(例えば、セキュアディスプレイ)と、セキュアユーザー入力インターフェイス(例えば、セキュアキーボード)と、を有することができる。いくつかの実施形態においては、セキュアハードウェア装置は、セキュアハードウェア装置によって完全に制御されているという点において、且つ、セキュアハードウェア装置の外部のプロセスによってユーザーにデータ又は情報を提示するように使用することができないという点において、或いは、セキュアハードウェア装置により、認可され、且つ、制御されている場合にのみ、セキュアハードウェア装置の外部のプロセスによってユーザーにデータ又は情報を提示するべく使用されうるという点において、安全である出力インターフェイスを有する。いくつかの実施形態においては、セキュアハードウェア装置は、セキュアハードウェア装置によって完全に制御されているという点において、且つ、セキュアハードウェア装置の外部のプロセスによってユーザーからデータ又は情報を取得するべく使用することができないという点において、或いは、セキュアハードウェア装置により、認可され、且つ、制御されている場合にのみ、セキュアハードウェア装置の外部のプロセスによってユーザーからデータ又は情報を取得するべく使用することができるという点において、安全であるユーザー入力インターフェイスを有する。いくつかの実施形態においては、セキュアユーザー入力及び出力インターフェイスのセキュリティは、そのファームウェアに対するなんらの変更をも許容しない、或いは、セキュアハードウェア装置が信頼可能な供給源からの認可されたファームウェア更新のみを受け付けることを保証するセキュアプロトコルを通じたそのファームウェアに対する変更のみを許容するセキュアファームウェア更新メカニズムを提供している、セキュアハードウェア装置によって維持されている。

0099

いくつかの実施形態においては、トークンは、専用のハードウェア装置ではない。いくつかの実施形態においては、トークンは、電子消費者装置を有していてもよく、電子消費者装置は、その主な目的が、認証機能を提供するというものでなくてもよく、且つ、本説明において記述されている強力認証トークン機能を提供するためのソフトウェアを有することができる。例えば、いくつかの実施形態においては、トークンは、本説明において記述されている強力認証トークン機能を提供する認証アプリケーションを有するタブレットコンピュータ又はスマートフォンを有することができる。

0100

フォームファクタ
いくつかの実施形態においては、トークンは、トークンに含まれている電子コンポーネントの少なくともいくつかがその上部において配置されうる、プラスチック回路基板(PCB:PlasticCircuit Board)を有することができる。その他の電子コンポーネントは、(例えば、電気ワイヤによって)回路基板上において配置されたコンポーネントにガルバニック接続されていてもよい。いくつかの実施形態においては、トークンのすべての電子コンポーネントは、単一のハウジング内において含まれている。いくつかの実施形態においては、ハウジングは、プラスチックから、又は金属から、又は材料の組合せから、製造されていてもよい。いくつかの実施形態においては、認証トークンは、モノリシックな装置であってもよい。本説明の文脈においては、これは、認証トークンに含まれている動的クレデンシャルを生成するデジタル処理コンポーネントインスタンスデータを保存するメモリコンポーネント、入力ユーザーインターフェイス、出力ユーザーインターフェイス、及びデータ入力インターフェイスが、いずれも、単一の物理的装置に含まれていることを意味している。いくつかの実施形態においては、ユーザーは、認証トークンの通常の動作の一部分として、これらのコンポーネントを除去することができない。いくつかの実施形態においては、これらのコンポーネントは、認証トークンに対する不可逆な変更をもたすことなしには、除去することができない。いくつかの実施形態においては、これらのコンポーネントは、認証トークンに対する永久的な損傷を伴うことなしには、除去することができない。

0101

いくつかの実施形態においては、トークンは、複数の電子装置を有していてもよく、これにより、トークンの様々な機能は、異なる装置によって提供されていてもよい。例えば、いくつかの実施形態においては、トークンは、スマートカード及びリーダー装置などの、セキュア要素を有していてもよく、これにより、セキュア要素は、秘密キーに関係するデータ及び/又はパスコードブラインディングデータ要素などのセキュリティ機密データ要素の保存を提供することができる。セキュア要素は、動的認証クレデンシャルの生成用の暗号計算の一部分又はすべてを提供するように更に適合されていてもよい。リーダーは、例えば、ユーザー入力インターフェイス及びユーザー出力インターフェイス、並びに、データ入力インターフェイスを有することができる。セキュア要素は、リーダーと通信するためのデータ通信インターフェイスを有していてもよく、且つ、リーダーは、セキュア要素と通信するための補完的なデータ通信インターフェイスを有していてもよい。セキュア要素及びリーダーは、協働するように、且つ、本説明のどこか別のところにおいて記述されているトークンの機能のすべてを一緒に提供するように、適合されていてもよい。

0102

サイズ及び重量
いくつかの実施形態においては、トークンは、トークンが、携帯可能な、ポケットサイズの、ハンドヘルド型の、装置であると見なされうるような、重量及び空間的寸法を有する。いくつかの実施形態においては、リーダーは、トークンが適度な費用郵便を通じてユーザーに送付されうるような、重量及び空間的寸法を有する。例えば、いくつかの実施形態においては、認証装置は、2cm未満の厚さ、10cm未満の幅、15cm未満の長さ、及び200グラム未満の重量を有することができる。その他の実施形態においては、認証装置は、1.5cm未満の厚さ、7cm未満の幅、13cm未満の長さ、及び110グラム未満の重量を有することができる。いくつかの実施形態においては、認証装置の長さ及び幅は、10パーセント以下だけ、標準的なフルサイズクレジットカードの長さ及び幅をそれぞれ超過していてもよい。いくつかの実施形態においては、認証装置は、標準的なフルサイズクレジットカードの長さ及び幅を有することができる。いくつかの実施形態においては、認証装置は、標準的なフルサイズクレジットカードに適用可能であるマージン内において、標準的なフルサイズクレジットカードの長さ、幅、及び厚さを有することができる(例えば、ISO/IEC7810によって規定されているID−1サイズのスマートカードの寸法を有する)。

0103

電源
いくつかの実施形態においては、認証装置は、電力自律的供給源を有する。いくつかの実施形態においては、電源は、電池を有することができる。いくつかの実施形態においては、電池は、交換可能であってもよい。

0104

図2は、本発明の一態様による本発明の例示用のシステム(200)を概略的に示している。

0105

いくつかの実施形態においては、システムは、強力認証トークン(220)と、認証サーバー(230)と、を有することができる。いくつかの実施形態においては、システムは、アプリケーションサーバー(250)を更に有することができる。いくつかの実施形態においては、システムは、アクセス装置(260)を更に有することができる。いくつかの実施形態においては、システムは、コンピュータネットワーク(270)を更に有することができる。

0106

いくつかの実施形態においては、強力認証トークン(220)は、本説明のどこか別のところにおいて更に詳細に記述されている強力認証トークン又は認証クライアントのいずれかを有することができる。具体的には、強力認証トークン(220)は、図1との関連において記述されている装置(100)を有することができる。

0107

いくつかの実施形態においては、認証サーバー(230)は、認証サーバー又はクレデンシャル検証サーバー又は本説明のどこか別のところにおいて更に詳細に記述されているエンティティのいずれかを有することができる。いくつかの実施形態においては、認証サーバー(230)は、認証サーバー又はクレデンシャル検証サーバー又は本説明のどこか別のところにおいて更に詳細に記述されているエンティティのいずれかによって実行される方法ステップ又は動作のいずれかを実行するように適合されていてもよい。認証サーバー(230)は、サーバーコンピュータなどの1つ又は複数の演算装置を有することができる。いくつかの実施形態においては、認証サーバーは、暗号計算を実行するように適合されていてもよい。いくつかの実施形態においては、認証サーバーは、クライアント又はトークンによって生成された動的認証クレデンシャルの有効性を検証するように適合されていてもよい。いくつかの実施形態においては、認証サーバーは、ユーザー及び/又はトークンに固有の情報に対するアクセスを有する。このようなユーザー及び/又はトークン固有の情報は、例えば、ユーザー識別データ要素(ユーザーid)、パスコードベリファイアなどの秘密データ、トークンが(恐らくは)動的認証クレデンシャルを生成するべく使用した暗号キーの値を生成又は取得するためのキーに関係したデータを含みうる。例えば、いくつかの実施形態においては、トークンは、トークンによって維持されている状態変数の値の関数として暗号キーを生成してもよく、且つ、認証サーバーは、トークンの状態変数の値を表す状態変数に対するアクセスを有することができる。いくつかの実施形態においては、認証サーバーは、認証サーバーに含まれうる又はこれに接続されうるデータベース内において、これらのデータ要素を保存することができる。

0108

認証サーバー(250)は、リモートアクセス可能なコンピュータに基づいたアプリケーションのサーバー部分をホスティングするように適合されていてもよい。ユーザーとリモートアクセス可能なコンピュータに基づいたアプリケーションの間のやり取りは、本説明のどこか別のところにおいて更に詳細に記述されている認証方法のいずれかと共に、認証トークン(220)及び認証サーバー(230)を使用することにより、保護することができる。アプリケーションサーバー(250)は、ウェブサーバーを有していてもよく、且つ、リモートアクセス可能なコンピュータに基づいたアプリケーションは、例えば、ウェブバンキング又はインターネットバンキングアプリケーションなどの、ウェブベースのアプリケーションであってもよい。

0109

アクセス装置(260)は、ユーザー(290)がアプリケーションサーバー(250)によってホスティングされたリモートアクセス可能なコンピュータに基づいたアプリケーションにアクセスし且つこれとやり取りすることを許容するように適合されていてもよい。いくつかの実施形態においては、アクセス装置(260)は、例えば、アプリケーションサーバー(250)によってホスティングされているリモートアクセス可能なコンピュータに基づいたアプリケーションとやり取りするべく、ウェブブラウザを有することができる。いくつかの実施形態においては、アクセス装置(260)は、例えば、PC又はタブレットコンピュータ又はスマートフォンを有することができる。

0110

いくつかの実施形態においては、コンピュータネットワーク(270)は、LAN(Local Area Network)及び/又はWAN(Wide Area Network)及び/又はインターネット、並びに/或いは、例えば、携帯電話ネットワークなどの無線データ通信ネットワークを有することができる。コンピュータネットワーク(270)は、強力認証トークン(220)、認証サーバー(230)、アプリケーションサーバー(250)、及びアクセス装置(260)などの、2つ以上の演算装置をリンクしていてもよく、且つ、これらの演算装置が、互いに通信し、且つ、例えば、本説明のどこか別のところにおいて更に詳細に記述されている、認証クライアント又は認証トークンのいずれか、並びに、認証サーバーのいずれか、によって交換される、様々なメッセージのいずれかなどの、データ及びメッセージを交換することを可能にするように、適合されていてもよい。

0111

図3は、動的クレデンシャルを生成する例示用の方法(300)を概略的に示している。

0112

いくつかの実施形態においては、動的クレデンシャルを生成する方法は、ユーザーからパスコード値を取得するステップ(310)と、パスコードブラインディングデータ要素の保存されている値を取得するステップ(320)と、取得されたパスコード値とパスコードブラインディングデータ要素の取得された値を暗号方式によって組み合わせることにより、パスコードベリファイアを算出するステップ(330)と、算出されたパスコードベリファイアを保存されている秘密キー及び動的変数と暗号方式によって組み合わせることにより、動的クレデンシャルを算出するステップ(340)と、を有する。

0113

いくつかの実施形態においては、秘密キーは、動的変数を有することができる。いくつかの実施形態においては、方法は、秘密キーの値を新しい値によって更新するステップを更に有することができる。いくつかの実施形態においては、方法は、状態変数の古い値に基づいて状態変数の新しい値を算出することにより、状態変数を更新するステップと、状態変数の古い値を消去するステップと、キーの古い変数を消去するステップと、状態変数の新しい値に基づいて秘密キーの新しい変数を算出するステップと、を有することができる。

0114

本発明の一態様においては、動的認証クレデンシャルを生成する方法が提供されている。いくつかの実施形態においては、方法のいくつか又はすべてのステップは、本説明のどこか別のところにおいて記述されている認証クライアント又は認証トークンのいずれかによって実行することができる。いくつかの実施形態においては、方法は、本説明のどこか別のところにおいて記述されている動的認証クレデンシャルを生成する方法のうちのいずれかの方法のステップのいくつか又はすべてを有することができる。具体的には、いくつかの実施形態においては、方法は、図3との関連において記述されている方法のステップのいくつか又はすべてを有することができる。

0115

いくつかの実施形態においては、方法(300)は、パスコードの値を取得するステップ(310)と、パスコードブラインディングデータ要素の値を取得するステップ(320)と、動的変数の値を取得し、暗号クレデンシャル生成キーの値を取得し、取得されたパスコード値及び取得されたパスコードブラインディングデータ要素値からパスコードベリファイアデータ要素の値を算出するステップ(330)と、算出されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値から動的認証クレデンシャルを算出するステップ(340)と、を有することができる。

0116

いくつかの実施形態においては、パスコードの値を取得するステップは、例えば、認証トークン又は認証クライアント装置のユーザー入力インターフェイスを通じてユーザーによって提供された入力などのように、ユーザーからパスコードの値を受け取るステップを有することができる。いくつかの実施形態においては、パスコード値は、PIN(Personal Identification Number)値又はパスワード値を有することができる。

0117

いくつかの実施形態においては、パスコードブラインディングデータ要素の値を取得するステップは、例えば、方法を実行している認証トークン又は認証クライアントのメモリから、パスコードブラインディングデータ要素値を読み取るステップを有することができる。いくつかの実施形態においては、パスコードブラインディングデータ要素は、動的認証クレデンシャルを生成する前に、例えば、このような認証トークン又は認証クライアントの初期化フェーズの一部分として、生成が完了していてもよく、且つ、例えば、方法を実行している認証トークン又は認証クライアントのメモリ内において保存が完了していてもよい。いくつかの実施形態においては、パスコードブラインディングデータ要素値は、高エントロピーのデータ要素として生成することができる。例えば、いくつかの実施形態においては、パスコードブラインディングデータ要素のエントロピーは、少なくとも64ビットであってもよく、その他の実施形態においては、エントロピーは、少なくとも128ビットであってもよく、更にその他の実施形態においては、エントロピーは、少なくとも256ビットであってもよい。いくつかの実施形態においては、パスコードブラインティングデータ要素は、ランダム又は疑似ランダム数生成器によって生成されうるランダム又は疑似ランダム数を使用することにより、生成することができる。

0118

いくつかの実施形態においては、動的変数値を取得するステップは、例えば、認証サーバーなどの、サーバーから、メッセージを受け取るステップと、受け取ったメッセージに含まれている、チャレンジ又はノンス又はトランザクションデータなどの、データ要素の関数として動的変数値を判定するステップと、を有することができる。いくつかの実施形態においては、動的変数値を取得するステップは、トランザクションデータの関数として動的変数を判定するステップと、承認のためにトランザクションデータをユーザーに対して提示するステップと、ユーザーの承認を取得するステップと、を有することができる。

0119

いくつかの実施形態においては、パスコードベリファイアデータ要素値を算出するステップは、取得されたパスコード値及び取得されたパスコードブラインディングデータ要素値の暗号関数としてパスコードベリファイアデータ要素値を算出するステップを有することができる。いくつかの実施形態においては、パスコードベリファイアデータ要素値を算出するステップは、不可逆(暗号)関数を取得されたパスコード値及び取得されたパスコードブラインディングデータ要素値に適用した結果としてパスコードベリファイアデータ要素を算出するステップを有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、(セキュア)暗号ハッシュ関数を取得されたパスコード値及び取得されたパスコードブラインディングデータ要素値の組合せに適用するステップを有することができる。例えば、いくつかの実施形態においては、(セキュア)暗号ハッシュ関数は、SHA−2又はSHA−3(Secure Hash Algorithm)関数ファミリのうちの1つを有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、取得されたパスコードブラインディングデータ要素値を鍵付きハッシュ関数用のキーとして使用することにより、取得されたパスコード値にセキュア暗号鍵付きハッシュ関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、鍵付きハッシュ関数は、HMAC(Hach−based Message Authentication Code or keyed−hash message authentication code)関数を有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、取得されたパスコードブラインディングデータ要素値を暗号化(又は、暗号解読)キーとして使用することにより、取得されたパスコード値にセキュア暗号暗号化(又は、暗号解読)関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、暗号化関数は、AES(Advanced Encryption Standard)暗号化アルゴリズムを有することができる。

0120

いくつかの実施形態においては、算出されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値から動的認証クレデンシャルを算出するステップは、算出されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値の暗号関数として動的認証クレデンシャルを算出するステップを有することができる。いくつかの実施形態においては、算出されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値から動的認証クレデンシャルを算出するステップは、算出されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値に不可逆(暗号)関数を適用した結果として動的認証クレデンシャルを算出するステップを有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、算出されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値の組合せに(セキュア)暗号ハッシュ関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、(セキュア)暗号ハッシュ関数は、SHA−2又はSHA−3(Secure Hash Algorithm)関数ファミリのうちの1つを有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、取得された暗号クレデンシャル生成キー値を鍵付きハッシュ関数用のキーとして使用することにより、算出されたパスコードベリファイアデータ要素値及び取得された動的変数値の組合せにセキュア暗号鍵付きハッシュ関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、鍵付きハッシュ関数は、HMAC(Hash−based Message Authenticaion Code or Keyed−hash message authentication code)関数を有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、取得された暗号クレデンシャル生成キー値を暗号化(又は、暗号解読)キーとして使用することにより、算出されたパスコードベリファイアデータ要素値及び取得された動的変数値の組合せに(セキュア)暗号暗号化(又は、暗号解読)関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、暗号化関数は、AES(Advanced Encryption Standard)暗号化アルゴリズムを有することができる。

0121

いくつかの実施形態においては、方法は、パスコードベリファイアデータ要素値を算出するステップの後に、取得されたパスコード値を破棄するステップを更に有することができる。いくつかの実施形態においては、取得されたパスコード値を破棄するステップは、例えば、方法を実行している認証トークン又は認証クライアントのメモリから、取得されたパスコード値のすべての複写を消去するステップを有することができる。

0122

いくつかの実施形態においては、方法は、動的認証クレデンシャルを算出するステップの後に、算出されたパスコードベリファイアデータ要素値を破棄するステップを更に有することができる。いくつかの実施形態においては、算出されたパスコードベリファイアデータ要素値を破棄するステップは、例えば、方法を実行する認証トークン又は認証クライアントのメモリから、算出されたパスコードベリファイアデータ要素値のすべての複写を消去するステップを有することができる。

0123

いくつかの実施形態においては、暗号クレデンシャル生成キー値を取得するステップは、暗号クレデンシャル生成キー値を状態変数の値の関数として判定するステップを有することができる。いくつかの実施形態においては、方法は、状態変数の値をメモリ内において維持及び保存するステップを更に有することができる。いくつかの実施形態においては、暗号クレデンシャル生成キー値を状態変数の値の関数として判定するステップは、例えば、方法を実行している認証トークン又は認証クライアントのメモリから、状態変数値を読み取るステップを有することができる。いくつかの実施形態においては、状態変数の値の関数として暗号クレデンシャル生成キー値を判定するステップは、暗号クレデンシャル生成キー値を状態変数の値に設定するステップを有することができる。その他の実施形態においては、状態変数の値の関数として暗号クレデンシャル生成キー値を判定するステップは、不可逆関数を状態変数の値に適用した結果として暗号クレデンシャル生成キー値を算出するステップを有することができる。例えば、いくつかの実施形態においては、不可逆関数は、SHA−2又はSHA−3(Secure Hash Algorithm)関数ファミリのうちの1つを有しうる(セキュア)暗号ハッシュ関数を有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、暗号化(又は、暗号解読)キーとして状態変数の値を使用することにより、(セキュア)暗号暗号化(又は、暗号解読)関数を固定値に適用するステップを有することができる。例えば、いくつかの実施形態においては、暗号化関数は、AES(Advanced Encryption Standard)暗号化アルゴリズムを有することができる。

0124

いくつかの実施形態においては、方法は、状態変数の現在の値の関数として算出された新しい値によって状態変数の値を更新するステップを更に有することができる(この場合に、現在の値は、更新後には、以前の値となっている)。いくつかの実施形態においては、状態変数の現在の(以前の)値の関数として状態変数の新しい値を算出するステップは、不可逆関数を状態変数の現在の(以前の)値に適用した結果として状態変数の新しい値を算出するステップを有することができる。例えば、いくつかの実施形態においては、不可逆関数は、SHA−2又はSHA−3(Secure Hash Algorithm)関数ファミリのうちの1つを有しうる(セキュア)暗号ハッシュ関数を有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、暗号化(又は、暗号解読)キーとして状態変数の現在の(以前の)値を使用することにより、(セキュア)暗号暗号化(又は、暗号解読)関数を固定値に適用するステップを有することができる。例えば、いくつかの実施形態においては、暗号化関数は、AES(Advanced Encryption Standard)暗号化アルゴリズムを有することができる。

0125

いくつかの実施形態においては、方法は、状態変数の現在の値の関数として状態変数の新しい値を算出する前記ステップの後に、状態変数の現在の(以前の)値を破棄するステップを更に有することができる。いくつかの実施形態においては、状態変数の現在の(以前の)値を破棄するステップは、状態変数の新しい値を算出ステップと、状態変数の現在の(以前の)値の関数として暗号クレデンシャル生成キー値を判定するステップと、の両方が実行された後に、実行されてもよい。いくつかの実施形態においては、状態変数の現在の(以前の)値を破棄するステップは、例えば、方法を実行している認証トークン又は認証クライアントのメモリから、状態変数の現在の(以前の)値のすべての複写を消去するステップを有することができる。

0126

いくつかの実施形態においては、方法は、動的認証クレデンシャルを算出する前記ステップの後に、暗号クレデンシャル生成キー値を破棄するステップを更に有することができる。いくつかの実施形態においては、暗号クレデンシャル生成キー値を破棄するステップは、例えば、方法を実行している認証トークン又は認証クライアントのメモリから、暗号クレデンシャル生成キー値のすべての複写を消去するステップを有することができる。いくつかの実施形態においては、方法は、動的認証クレデンシャルを算出する前記ステップの後に、暗号クレデンシャル生成キー値が導出された状態変数の値を破棄するステップを更に有することができる。いくつかの実施形態においては、状態変数の値を破棄するステップは、例えば、方法を実行している認証トークン又は認証クライアントのメモリから、状態変数の値のすべての複写を消去するステップを有することができる。

0127

本発明の別の態様においては、動的認証クレデンシャルの値を検証する方法が提供されている。いくつかの実施形態においては、方法のいくつか又はすべてのステップは、本説明のどこか別のところにおいて記述されている認証サーバーのいずれかによって実行されてもよい。いくつかの実施形態においては、方法は、本明細書のどこか別のところにおいて記述されている動的認証クレデンシャルの値を検証する方法のうちのいずれかの方法のステップのうちのいくつか又はすべてを有することができる。

0128

いくつかの実施形態においては、動的認証クレデンシャルの値は、本説明において記述されている動的認証クレデンシャルを生成する方法のうちのいずれかによって生成されたものであってもよい。

0129

図4には、方法の例示用の一実施形態が示されている。

0130

いくつかの実施形態においては、方法(400)は、動的認証クレデンシャル値を受け取るステップ(410)と、動的変数の値を取得するステップ(420)と、パスコードベリファイアデータ要素及び暗号クレデンシャル生成キーの値を取得するステップ(430)と、取得されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値からクレデンシャル基準値を算出するステップ(440)と、受け取られた動的認証クレデンシャル値が算出されたクレデンシャル基準値とマッチングしているかどうかを検証するステップ(450)と、を有することができる。いくつかの実施形態においては、方法は、受け取られた動的認証クレデンシャル値が算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するステップを更に有することができる。いくつかの実施形態においては、動的変数は、動的認証クレデンシャルによって認可されるべきトランザクションを表すトランザクションデータを有していてもよく、或いは、これから導出されてもよい。

0131

いくつかの実施形態においては、取得されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値からクレデンシャル基準値を算出するステップ(440)は、取得されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値の暗号関数としてクレデンシャル基準値を算出するステップを有することができる。いくつかの実施形態においては、取得されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値からクレデンシャル基準値を算出するステップは、取得されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値に不可逆(暗号)関数を適用した結果としてクレデンシャル基準値を算出するステップを有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、取得されたパスコードベリファイアデータ要素値、取得された動的変数値、及び取得された暗号クレデンシャル生成キー値の組合せに(セキュア)暗号ハッシュ関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、(セキュア)暗号ハッシュ関数は、SHA−2又はSHA−3(Secure Hash Algorithm)関数ファミリのうちの1つを有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、鍵付きハッシュ関数用のキーとして取得された暗号クレデンシャル生成キー値を使用することにより、取得されたパスコードベリファイアデータ要素値及び取得された動的変数値の組合せにセキュア暗号鍵付きハッシュ関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、鍵付きハッシュ関数は、HMAC(Hash−based Message Authentication Code or keyed−hash message authentication code)関数を有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、暗号化(又は、暗号解読)キーとして取得された暗号クレデンシャル生成キー値を使用することにより、取得されたパスコードベリファイアデータ要素値及び取得された動的変数値の組合せに(セキュア)暗号暗号化(又は、暗号解読)関数を適用するステップを有することができる。例えば、いくつかの実施形態においては、暗号化関数は、AES(Advanced Encryption Standard)暗号化アルゴリズムを有することができる。

0132

いくつかの実施形態においては、第1値が第2値とマッチングしているかどうかを検証するステップは、第1値が第2値に等しいかどうかを検証するステップを有していてもよく、或いは、これから構成されていてもよい。いくつかの実施形態においては、第1値が第2値とマッチングしているかどうかを検証するステップは、第1値の第1関数が第2値の第2関数と等しいかどうかを検証するステップを有してもよく、或いは、これから構成されていてもよい。例えば、いくつかの実施形態においては、第1値が第2値とマッチングしているかどうかを検証するステップは、第1値の第1ビットストリング表現が第2値の第2ビットストリング表現の切り捨てられたバージョンと等しいかどうかを検証するステップを有していてもよく、或いは、これから構成されていてもよい。いくつかの実施形態においては、第1値が第2値とマッチングしているかどうかを検証するステップは、第1値と第2値の間の数学的関係が真であるかどうかを検証するステップを有していてもよく、或いは、これから構成されていてもよい。

0133

いくつかの実施形態においては、パスコードベリファイアデータ要素及び暗号クレデンシャル生成キーの値を取得するステップは、認証クライアントの特定のユーザーと関連するユーザー又は認証クライアント固有のデータの組を取得するステップと、このユーザー又は認証クライアント固有のデータの組からパスコードベリファイアデータ要素及び暗号クレデンシャル生成キーの値を取得又は導出するステップと、を有することができる。いくつかの実施形態においては、ユーザー又は認証クライアント固有のデータの組は、受け取られた動的認証クレデンシャル値が受け取られたものと推定される認証クライアントのユーザーと関連付けられている。いくつかの実施形態においては、方法は、例えば、方法のステップを実行している認証サーバーに含まれうる、或いは、これに接続されうる、メモリ又はデータベース内においてユーザー又は認証クライアント固有のデータの組を保存及び維持するステップを更に有していてもよく、且つ、ユーザー又は認証クライアント固有のデータの組を取得するステップは、このメモリ又はデータベースからユーザー又は認証クライアント固有のデータの組を読み取るステップを有することができる。

0134

いくつかの実施形態においては、ユーザー又は認証クライアント固有のデータの組は、状態変数の値を有していてもよく、且つ、暗号クレデンシャル生成キー値を取得するステップは、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値の関数として暗号クレデンシャル生成キー値を判定するステップを有することができる。いくつかの実施形態においては、状態変数の値の関数として暗号クレデンシャル生成キー値を判定するステップは、暗号クレデンシャル生成キー値を状態変数の値に設定するステップを有することができる。その他の実施形態においては、状態変数の値の関数として暗号クレデンシャル生成キー値を判定するステップは、不可逆関数を状態変数の値に適用した結果として暗号クレデンシャル生成キー値を算出するステップを有することができる。例えば、いくつかの実施形態においては、不可逆関数は、SHA−2又はSHA−3(Secure Hash Algorithm)関数ファミリのうちの1つを有しうる(セキュア)暗号ハッシュ関数を有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、暗号化(又は、暗号解読)キーとして状態変数の値を使用することにより、(セキュア)暗号暗号化(又は、暗号解読)関数を固定値に適用するステップを有することができる。例えば、いくつかの実施形態においては、暗号化関数は、AES(Advanced Encryption Standard)暗号化アルゴリズムを有することができる。

0135

いくつかの実施形態においては、方法は、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値の関数として算出された新しい値によって状態変数の値を更新するステップと、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値をこの算出された新しい値によって置換するステップと、を更に有することができる。いくつかの実施形態においては、方法は、例えば、方法のステップを実行している認証サーバーに含まれうる、或いは、これに接続されうる、メモリ又はデータベース内において、状態変数の更新済みの値を有するユーザー又は認証クライアント固有のデータの組を保存するステップを更に有することができる。いくつかの実施形態においては、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値の関数として状態変数の新しい値を算出するステップは、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値に不可逆関数を適用した結果として状態変数の新しい値を算出するステップを有することができる。例えば、いくつかの実施形態においては、不可逆関数は、SHA−2又はSHA−3(Secure Hash Algorithm)関数ファミリのうちの1つを有しうる(セキュア)暗号ハッシュ関数を有することができる。いくつかの実施形態においては、不可逆関数を適用するステップは、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値を暗号化(又は、暗号解読)キーとして使用することにより、(セキュア)暗号暗号化(又は、暗号解読)関数を固定値に適用するステップを有することができる。例えば、いくつかの実施形態においては、暗号化関数は、AES(Advanced Encription Standard)暗号化アルゴリズムを有することができる。

0136

いくつかの実施形態においては、方法は、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値の関数として状態変数の新しい値を算出する前記ステップの後に、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値を破棄するステップを更に有することができる。いくつかの実施形態においては、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値を破棄するステップは、例えば、方法のステップを実行している認証サーバーに含まれうる、或いは、これに接続されうる、メモリ又はデータベースから、ユーザー又は認証クライアント固有のデータの組に含まれている状態変数の値のすべての複写を消去するステップを有することができる。

0137

いくつかの実施形態においては、方法は、クレデンシャル基準値を算出するステップの後に、暗号クレデンシャル生成キー値を破棄するステップを更に有することができる。いくつかの実施形態においては、暗号クレデンシャル生成キー値を破棄するステップは、例えば、方法のステップを実行している認証サーバーに含まれうる、或いは、これに接続されうる、メモリ又はデータベースから、暗号クレデンシャル生成キー値のすべての複写を消去するステップを有することができる。いくつかの実施形態においては、方法は、クレデンシャル基準値を算出するステップの後に、暗号クレデンシャル生成キー値が導出された状態変数の値を破棄するステップを更に有することができる。いくつかの実施形態においては、暗号クレデンシャル生成キー値が導出された状態変数の値を破棄するステップは、例えば、方法のステップを実行している認証サーバーに含まれうる、或いは、これに接続されうる、メモリ又はデータベースから、この状態変数の値のすべての複写を消去するステップを有することができる。

0138

本発明の別の態様においては、コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護する方法が提供されている。いくつかの実施形態においては、方法は、認証トークン又は認証クライアントにより、本説明のどこか別のところにおいて記述されている動的認証クレデンシャルを生成する方法のうちのいずれかの方法のいくつか又はすべてのステップを実行するステップと、認証サーバーにより、本説明のどこか別のところにおいて記述されている動的認証クレデンシャルを検証する方法のうちのいずれかの方法のいくつか又はすべてのステップを実行するステップと、を有することができる。

0139

認証ステージ
いくつかの実施形態においては、方法は、認証ステージにおいて、認証クライアントにより、動的変数クライアント値を取得するステップと、認証クライアントにより、暗号クレデンシャル生成キークライアント値を取得するステップと、認証クライアントにより、メモリから、パスコードブラインディングデータ要素値を取得するステップと、認証クライアントにより、ユーザーから、パスコード値を受け取るステップと、認証クライアントにより、取得されたパスコードブラインディングデータ要素値及び受け取られたパスコード値の第1不可逆クライアント関数としてパスコードベリファイアデータ要素クライアント値を算出するステップと、認証クライアントにより、取得された動的変数クライアント値、取得された暗号クレデンシャル生成キークライアント値、及び算出されたパスコードベリファイアデータ要素クライアント値の第2不可逆クライアント関数として動的認証クレデンシャルを算出するステップと、認証サーバーにより、動的認証クレデンシャルを受け取るステップと、認証サーバーにより、動的変数サーバー値を取得するステップと、認証サーバーにより、暗号クレデンシャル生成キーサーバー値を取得するステップと、認証サーバーにより、パスコードベリファイアデータ要素サーバー値を取得するステップと、認証サーバーにより、取得された動的変数サーバー値、取得された暗号クレデンシャル生成キーサーバー値、及び取得されたパスコードベリファイアデータ要素サーバー値の不可逆サーバー関数としてクレデンシャル基準値を算出するステップと、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかを検証するべく、認証サーバーにより、受け取られた動的認証クレデンシャルを算出されたクレデンシャル基準値と比較するステップと、を実行するステップを有する。いくつかの実施形態においては、方法は、認証サーバーにより、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するステップを更に有することができる。いくつかの実施形態においては、方法は、コンピュータに基づいたアプリケーションが、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしている場合に、第1動作を実行し、且つ、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしていない場合には、第2動作を実行するステップを更に有することができる。

0140

いくつかの実施形態においては、動的変数クライアント値は、動的変数サーバー値と同一であってもよく、暗号クレデンシャル生成キークライアント値は、暗号クレデンシャル生成キーサーバー値と同一であってもよく、パスコードベリファイアデータ要素クライアント値は、パスコードベリファイアデータ要素サーバー値と同一であってもよく、且つ、動的認証クレデンシャルを算出するための第2不可逆クライアント関数は、クレデンシャル基準値を算出するための不可逆サーバー関数と実質的に同一であってもよい。この文脈において、動的認証クレデンシャルを算出するための第2不可逆クライアント関数が不可逆サーバー関数と実質的に同一である、ということは、第2不可逆クライアント関数及び不可逆サーバー関数が同一の入力データの組に適用された場合に、第2不可逆クライアント関数を適用した結果が、不可逆サーバー関数を適用した結果とマッチングすることになることを意味するものと理解されてもよい。

0141

いくつかの実施形態においては、動的変数クライアント値は、ユーザーによって認可されるべきトランザクションを表すトランザクションデータに基づいたものであってもよく、且つ、方法は、認証クライアントにより、トランザクションデータをユーザーに対して表示するステップと、認証クライアントにより、表示されたトランザクションデータの承認をユーザーから受け取るステップと、を更に有することができる。いくつかの実施形態においては、動的認証クレデンシャルを算出するステップは、ユーザーが、表示されたトランザクションデータを承認することを条件としていてもよい。いくつかの実施形態においては、方法は、コンピュータに基づいたアプリケーションが、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしている場合に、トランザクションを受け付け、且つ、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしていない場合には、トランザクションを拒絶するステップを更に有することができる。

0142

いくつかの実施形態においては、方法は、認証ステージにおいて、認証クライアントにより、現時点の状態変数クライアント値を保存するステップであって、これにより、認証クライアントにより、暗号クレデンシャル生成キークライアント値を取得するステップは、認証クライアントにより、保存されている現時点の状態変数クライアント値から暗号クレデンシャル生成キークライアント値を導出するステップを有することができる、ステップと、認証クライアントにより、現時点の状態変数クライアント値の第3不可逆クライアント関数として新しい状態変数クライアント値を算出するステップと、認証クライアントにより、動的認証クレデンシャルの算出の後に、暗号クレデンシャル生成キークライアント値を破棄するステップと、認証クライアントにより、新しい状態変数クライアント値の算出及び暗号クレデンシャル生成キークライアント値の導出の後に、現時点の状態変数クライアント値を破棄するステップと、認証クライアントにより、破棄された現時点の状態変数クライアント値の代わりに新しい状態変数クライアント値を保存するステップと、認証サーバーにより、現時点の状態変数サーバー値を保存するステップであって、これにより、認証サーバーにより、暗号クレデンシャル生成キーサーバー値を取得するステップは、認証サーバーにより、保存されている現時点の状態変数サーバー値から、暗号クレデンシャル生成キーサーバー値を導出するステップを有することができる、ステップと、認証サーバーにより、現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出するステップと、認証サーバーにより、クレデンシャル基準値の算出の後に、暗号クレデンシャル生成キーサーバー値を破棄するステップと、認証サーバーにより、新しい状態変数サーバー値の算出及び暗号クレデンシャル生成キーサーバー値の導出の後に、現時点の状態変数サーバー値を破棄するステップと、認証サーバーにより、破棄された現時点の状態変数サーバー値の代わりに新しい状態変数サーバー値を保存するステップと、を実行するステップを更に有することができる。いくつかの実施形態においては、現時点の状態変数サーバー値は、現時点の状態変数クライアント値と同一であってもよく、新しい状態変数サーバー値は、新しい状態変数クライアント値と同一であってもよく、且つ、第2不可逆サーバー関数は、第3不可逆クライアント関数と同一であってもよい。

0143

初期化ステージ
いくつかの実施形態においては、方法は、認証ステージの前の初期化ステージにおいて、認証クライアントにより、予測不能な方式により、パスコードブラインディングデータ要素値を生成するステップと、認証クライアントにより、認証ステージにおける後続の使用のために、生成されたパスコードブラインディングデータ要素値を保存するステップと、認証クライアントにより、ユーザーから初期パスコード値を受け取るステップと、認証クライアントにより、パスコードブラインディングデータ要素値及び受け取られた初期パスコード値の第1不可逆クライアント関数として(初期)パスワードベリファイアデータ要素クライアント値を算出するステップと、認証サーバーにより、算出された(初期)パスコードベリファイアデータ要素クライアント値を受け取り、且つ、認証サーバーにより、認証ステージにおける後続の使用のために、受け取られた(初期)パスコードベリファイアデータ要素クライアントをパスコードベリファイアデータ要素サーバー値として保存するステップと、を実行するステップを更に有することができる。

0144

いくつかの実施形態においては、方法は、初期化ステージにおいて、認証クライアントにおいて、初期状態シードから導出された状態変数クライアント値の初期クライアント値を取得し、且つ、認証クライアントにおいて、状態変数クライアント値の取得された初期値を現時点の状態変数クライアント値として保存するステップと、認証サーバーにおいて、こちらも初期状態シードから導出された状態変数サーバー値の初期サーバー値を取得し、且つ、認証サーバーにおいて、状態変数サーバー値の取得された初期値を現時点の状態変数サーバー値として保存するステップと、を更に有することができる。

0145

いくつかの実施形態においては、方法は、初期化ステージにおいて、初期状態シードを生成又はさもなければ取得するステップであって、この場合に、認証クライアントにおいて、状態変数クライアント値の初期クライアント値を取得するステップは、認証クライアントにおいて、初期状態シードを取得し、且つ、認証クライアントにおいて、初期状態シードから、状態変数クライアント値の初期クライアント値を導出するステップを有していてもよく、且つ、この場合に、認証サーバーにおいて、こちらも初期状態シードから導出される状態変数サーバー値の初期サーバー値を取得するステップは、認証サーバーにおいて、初期状態シードを取得し、且つ、認証サーバーにおいて、初期状態シードから、状態変数サーバー値の初期サーバー値を導出するステップを有することができる、ステップを実行するステップを更に有することができる。

0146

いくつかの実施形態においては、初期状態シードを生成するステップは、高エントロピー値として初期状態シードを生成するステップを有することができる。いくつかの実施形態においては、初期状態シードを生成するステップは、ランダム又は疑似ランダム数生成器によって生成されたランダム又は疑似ランダム数を使用するステップを有することができる。いくつかの実施形態においては、初期状態シードを生成するステップは、認証サーバー又は認証サーバーと関連するサーバーなどのサーバーによって実行することができる。

0147

いくつかの実施形態においては、方法は、認証ステージにおいて、状態変数クライアント値と状態変数サーバー値を同期化させるステップを実行するステップを更に有することができる。いくつかの実施形態においては、状態変数クライアントと状態変数サーバー値を同期化させるステップは、認証クライアントにより、状態変数サーバー値を示す同期化データ要素を受け取るステップと、状態変数クライアント値を状態変数サーバー値と同期化させるべく、認証クライアントにより、受け取った同期化データ要素の値に基づいて状態変数クライアント値を更新するステップと、有することができる。いくつかの実施形態においては、同期化データ要素は、カウンタ値を有していてもよく、カウンタ値は、例えば、状態変数サーバー値が更新された回数を通知しうる。いくつかの実施形態においては、状態変数クライアント値と状態変数サーバー値を同期化させるステップは、認証サーバーにより、状態変数クライアント値を示す同期化データ要素を受け取るステップと、状態変数サーバー値を状態変数クライアント値と同期化させるべく、認証サーバーにより、受け取った同期化データ要素の値に基づいて状態変数サーバー値を更新するステップと、を有することができる。いくつかの実施形態においては、同期化データ要素は、カウンタ値を有していてもよく、カウンタ値は、例えば、状態変数クライアント値が更新された回数を通知しうる。

0148

本発明の別の態様においては、動的認証クレデンシャルを生成する装置が提供されている。いくつかの実施形態においては、装置は、本説明のどこか別のところにおいて記述されている認証トークン又は認証クライアントのいずれかを有することができる。具体的には、いくつかの実施形態においては、装置は、図1との関連において記述されている装置(100)のいずれかを有することができる。いくつかの実施形態においては、装置は、本説明のどこか別のところにおいて記述されている動的認証クレデンシャルを生成する方法のいずれかを実行するように適合されていてもよい。

0149

いくつかの実施形態においては、装置(100)は、装置のユーザーからパスコードを受け取るように適合されたユーザー入力インターフェイス(120)と、暗号計算を実行するように適合されたデータプロセッサ(150)と、パスコードブラインディングデータ要素値及び状態変数値を保存するためのメモリ(160)と、を有していてもよく、これにより、装置は、初期化ステージにおいて、パスコードブラインディングデータ要素値を取得し、且つ、メモリ内において、保存し、且つ、状態変数値の初期値を取得し、且つ、メモリ内において現時点の状態変数値として初期値を保存するように適合されていてもよく、これにより、装置は、認証ステージにおいて、動的変数値を取得し、ユーザー入力インターフェイスを通じて、ユーザーのパスコードを受け取り、メモリから、パスコードブラインディングデータ要素値を読み取り、受け取ったパスコード及びパスコードブラインディングデータ要素値の第1不可逆関数としてパスコードベリファイアデータ要素値を算出し、メモリから現時点の状態変数値を読み取り、且つ、メモリからの現時点の状態変数値から暗号クレデンシャル生成キーを導出し、取得された動的変数値、算出されたパスコードベリファイアデータ要素値、及び導出された暗号クレデンシャル生成キーの第2不可逆関数として動的認証クレデンシャルを算出し、動的認証クレデンシャルの計算の後に、導出された暗号クレデンシャル生成キーを破棄し、現時点の状態変数値の第3不可逆関数として状態変数値の新しい値を生成し、且つ、現時点の状態変数値からの暗号クレデンシャル生成キーの導出及び状態変数値の新しい値の生成の後に、現時点の状態変数値を破棄し、且つ、現時点の状態変数値の代わりに状態変数値の生成された新しい値を保存する、ように更に適合されていてもよい。

0150

いくつかの実施形態においては、装置は、データをユーザーに提示するためのユーザー出力インターフェイス(130)を更に有することができる。

0151

いくつかの実施形態においては、装置は、ユーザーによって承認されるべきトランザクションを表すトランザクションデータを受け取り、ユーザー出力インターフェイスを通じて、受け取ったトランザクションデータをユーザーに提示し、ユーザーから、ユーザー入力インターフェイスを通じて、提示されたトランザクションデータ用の承認を受け取る、ように更に適合されていてもよい。いくつかの実施形態においては、動的認証クレデンシャルの計算は、装置が、提示されたトランザクションデータのユーザー承認を受け取ることを条件としてもよい。

0152

いくつかの実施形態においては、装置は、生成された動的認証クレデンシャルを認証サーバーによる検証のために利用可能な状態とするように更に適合されていてもよい。いくつかの実施形態においては、装置は、ユーザーが認証サーバーに転送するように、ユーザー出力インターフェイスを通じて、生成された動的認証クレデンシャルをユーザーに提示するように適合されていてもよい。いくつかの実施形態においては、装置は、生成された動的認証クレデンシャルを直接的又は間接的に認証サーバーに送信するように適合されていてもよい。

0153

いくつかの実施形態においては、装置は、ランダム又は疑似ランダム数生成器を更に有していてもよく、且つ、装置は、初期化ステージにおいて、ランダム又は疑似ランダム数生成器によって生成されたランダム又は疑似ランダム数を取得し、且つ、ランダム又は疑似ランダム数の関数としてパスコードブラインディングデータ要素値を取得するように更に適合されていてもよい。

0154

本発明の別の態様においては、動的認証クレデンシャルを検証する装置が提供されている。いくつかの実施形態においては、装置は、本説明のどこか別のところにおいて記述されている認証サーバーのいずれかを有することができる。いくつかの実施形態においては、装置は、本説明のどこか別のところにおいて記述されている動的認証クレデンシャルを検証する方法のうちのいずれかを実行するように適合されていてもよい。

0155

いくつかの実施形態においては、装置は、特定のユーザー又は特定の認証クライアントと関連する少なくとも1つのデータセットを保存するように適合されたメモリと、暗号動作を実行するように適合されたデータ処理コンポーネントと、を有していてもよく、且つ、装置は、認証ステージにおいて、動的認証クレデンシャルを受け取り、動的変数サーバー値を取得し、メモリから、特定のユーザー又は特定の認証クライアントと関連するデータセットを読み取り、読み取られたデータセットから、暗号クレデンシャル生成キーサーバー値を取得し、読み取られたデータセットから、パスコードベリファイアデータ要素サーバー値を取得し、取得された動的変数サーバー値、取得されたパスコードベリファイアデータ要素サーバー値、及び取得された暗号クレデンシャル生成キーサーバー値の不可逆サーバー関数としてクレデンシャル基準値を算出し、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかを検証するべく、受け取られた動的認証クレデンシャルを算出されたクレデンシャル基準値と比較する、ように適合されていてもよい。

0156

いくつかの実施形態においては、装置は、認証サーバーを有していてもよく、且つ、メモリは、認証サーバーに含まれている、或いは、これによってアクセス可能である、データベースを有することができる。

0157

いくつかの実施形態においては、装置は、認証ステージにおいて、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかを通知する信号を生成するように更に適合されていてもよい。

0158

いくつかの実施形態においては、装置は、メモリ内において、特定のユーザー又は特定の認証クライアントと関連するデータセットの一部分として、パスコードベリファイアデータ要素サーバー値を保存するように更に適合されていてもよい。

0159

いくつかの実施形態においては、装置は、特定のユーザー又は特定の認証クライアントと関連するデータセットの一部分として現時点の状態変数サーバー値を取得し、且つ、メモリ内において維持し、且つ、認証ステージにおいて、読み取られたデータセットから現時点の状態変数サーバー値を取得し、取得された現時点の状態変数サーバー値の関数として暗号クレデンシャル生成キーサーバー値を判定し、クレデンシャル基準値の計算後に、暗号クレデンシャル生成キーサーバー値を破棄し、取得された現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出し、暗号クレデンシャル生成キーサーバー値の判定及び新しい状態変数サーバー値の計算の後に、現時点の状態変数サーバー値を破棄し、且つ、メモリ内において、特定のユーザー又は特定の認証クライアントと関連するデータセットの一部分として、現時点の状態変数サーバー値の代わりに、新しい状態変数サーバー値を書き込む、ように更に適合されていてもよい。

0160

いくつかの実施形態においては、装置は、初期化ステージにおいて、パスコードベリファイアデータ要素値を受け取り、且つ、特定のユーザー又は特定の認証クライアントと関連するデータセットの一部分として、パスコードベリファイアデータ要素サーバー値として、受け取ったパスコードベリファイアデータ要素値をメモリ内において書き込むように更に適合されていてもよい。

0161

いくつかの実施形態においては、装置は、初期化ステージにおいて、初期状態変数サーバー値を取得し、且つ、特定のユーザー又は特定の認証クライアントと関連するデータセットの一部分として、現時点の状態変数サーバー値として、メモリ内において初期状態変数サーバー値を書き込む、ように更に適合されていてもよい。

0162

本発明の別の態様においては、コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護するシステムが提供されている。いくつかの実施形態においては、システムは、本説明のどこか別のところにおいて記述されているシステムのいずれかを有することができる。具体的には、いくつかの実施形態においては、システムは、図2との関連において記述されているシステムのいずれかを有することができる。いくつかの実施形態においては、システムは、本説明のどこか別のところにおいて記述されている認証トークン又は認証クライアントのいずれかと、本説明のどこか別のところにおいて記述されている認証サーバーのいずれかと、のうちの複数のものを有することができる。いくつかの実施形態においては、システムは、本説明のどこか別のところにおいて記述されている動的認証クレデンシャルを生成する装置のいずれかと、本説明のどこか別のところにおいて記述されている動的認証クレデンシャルを検証する装置のいずれかと、を有することができる。いくつかの実施形態においては、システムは、本出願のどこか別のところにおいて記述されているコンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護する方法のうちのいずれかの方法の1つ又は複数のステップを実行するように適合されていてもよい。

0163

いくつかの実施形態においては、システム(200)は、認証クライアント(220)と、認証サーバー(230)と、を有していてもよく、これにより、認証クライアントは、認証クライアントのユーザーからパスコードを受け取るように適合されたユーザー入力インターフェイス(120)と、暗号計算を実行するように適合されたクライアントデータプロセッサ(150)と、パスコードブラインディングデータ要素値及び状態変数クライアント値を保存するクライアントメモリ(160)と、を有していてもよく、これにより、認証クライアントは、初期化ステージにおいて、パスコードブラインディングデータ要素値を取得し、且つ、メモリ内において保存し、且つ、状態変数クライアント値の初期クライアント値を取得し、且つ、初期クライアント値を現時点の状態変数クライアント値としてメモリ内において保存する、ように適合されていてもよく、これにより、認証クライアントは、認証ステージにおいて、動的変数クライアント値を取得し、ユーザー入力インターフェイスを通じてユーザーのパスコードを受け取り、クライアントメモリから、パスコードブラインディングデータ要素値を読み取り、受け取ったパスコード及びパスコードブラインディングデータ要素値の第1不可逆クライアント関数としてパスコードベリファイアデータ要素クライアント値を算出し、クライアントメモリから、現時点の状態変数クライアント値を読み取り、且つ、クライアントメモリから読み取られた現時点の状態変数クライアント値から暗号クレデンシャル生成キークライアント値を導出し、取得された動的変数クライアント値、算出されたパスコードベリファイアデータ要素クライアント値、及び導出された暗号クレデンシャル生成キークライアント値の第2不可逆クライアント関数として動的認証クレデンシャルを算出し、動的認証クレデンシャルの算出の後に、導出された暗号クレデンシャル生成キークライアント値を破棄し、現時点の状態変数クライアント値の第3不可逆クライアント関数として状態変数クライアント値の新しい値を生成し、且つ、現時点の状態変数クライアント値からの暗号クレデンシャル生成キークライアント値の導出及び状態変数クライアント値の新しい値の生成の後に、現時点の状態変数クライアント値を破棄し、且つ、現時点の状態変数クライアント値の代わりに、生成された状態変数クライアント値の新しい値を保存する、ように更に適合されていてもよく、且つ、これにより、認証サーバーは、ユーザー又は認証クライアントと関連する少なくとも1つのデータセットを保存するように適合されたサーバーメモリと、暗号動作を実行するように適合されたサーバーデータ処理コンポーネントと、を有していてもよく、且つ、これにより、認証サーバーは、初期化ステージにおいて、パスコードベリファイアデータ要素初期化値を受け取り、且つ、ユーザー又は認証クライアンと関連するデータセットの一部分として、パスコードベリファイアデータ要素サーバー値として、受け取られたパスコードベリファイアデータ要素初期化値をメモリ内において書き込み、且つ、初期状態変数サーバー値を取得し、且つ、ユーザー又は認証クライアントと関連するデータセットの一部分として、現時点の状態変数サーバー値として、初期状態変数サーバー値をメモリ内において書き込む、ように適合されていてもよく、且つ、これにより、認証サーバーは、認証ステージにおいて、生成された動的認証クレデンシャルを受け取り、動的変数サーバー値を取得し、ユーザー又は認証クライアントと関連するデータセットをサーバーメモリから読取り、読み取られたデータセットから現時点の状態変数サーバー値を取得し、取得された現時点の状態変数サーバー値の関数として暗号クレデンシャル生成キーサーバー値を導出し、読み取られたデータセットからパスコードベリファイアデータ要素サーバー値を取得し、取得された動的変数サーバー値、取得されたパスコードベリファイアデータ要素サーバー値、及び導出された暗号クレデンシャル生成キーサーバー値の第1不可逆サーバー関数としてクレデンシャル基準値を算出し、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかを検証するべく、受け取られた動的認証クレデンシャルを算出されたクレデンシャル基準値と比較し、クレデンシャル基準値の計算の後に暗号クレデンシャル生成キーサーバー値を破棄し、取得された現時点の状態変数サーバー値の第2不可逆サーバー関数として新しい状態変数サーバー値を算出し、暗号クレデンシャル生成キーサーバー値の導出及び新しい状態変数サーバー値の計算の後に、現時点の状態変数サーバー値を破棄し、且つ、ユーザー又は認証クライアントと関連するデータセットの一部分として、現時点の状態変数サーバー値の代わりに、新しい状態変数サーバー値をサーバーメモリ内において書き込むように、更に適合されていてもよい。

0164

いくつかの実施形態においては、動的変数は、時間値に基づいたものであってもよく、且つ、認証クライアントは、認証クライアントに含まれているクライアントクロックの時間値の関数として動的変数クライアント値を取得するように適合されていてもよく、且つ、認証サーバーは、認証サーバーに含まれているサーバークロックの時間値の関数として動的変数サーバー値を取得するように適合されていてもよく、これにより、クライアントクロック及びサーバークロックは、同期化されてもよい。いくつかの実施形態においては、動的変数は、カウンタに基づいたものであってもよく、且つ、認証クライアントは、認証クライアントによって維持されるクライアントカウンタの関数として動的変数クライアント値を取得するように適合されていてもよく、且つ、認証サーバーは、認証サーバーによって維持されているサーバーカウンタ値の関数として動的変数サーバー値を取得するように適合されていてもよく、これにより、認証クライアント及び認証サーバーは、クライアントカウンタ値とサーバーカウンタ値を同期化させるように適合されていてもよい。いくつかの実施形態においては、動的変数は、チャレンジなどの、値に基づいたものであってもよく、且つ、認証サーバーは、この値を生成し、且つ、この値の関数として動的変数サーバー値を取得し、且つ、この値を認証クライアントに送信するように適合されていてもよく、且つ、認証クライアントは、(例えば、ユーザーによって提供される入力又は認証サーバーから受け取られるメッセージ内において)この値を受け取り、且つ、この値の関数として動的変数クライアント値を取得するように適合されていてもよい。いくつかの実施形態においては、動的変数は、トランザクションデータに基づいたものであってもよく、且つ、認証サーバーは、例えば、トランザクションを処理するコンピュータに基づいたアプリケーションからトランザクションデータを受け取り、且つ、トランザクションデータの関数として動的変数サーバー値を取得するように適合されていてもよく、且つ、認証クライアントは、(例えば、ユーザーによって提供される、或いは、認証サーバー又はコンピュータに基づいたアプリケーションから受け取られる、メッセージに含まれた入力として)トランザクションデータを受け取り、且つ、トランザクションデータの関数として動的変数クライアント値を取得するように適合されていてもよい。

0165

いくつかの実施形態においては、システムは、コンピュータに基づいたアプリケーションをホスティングするように適合されたアプリケーションサーバーを更に有していてもよく、且つ、認証サーバーは、認証ステージにおいて、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしているかどうかをコンピュータに基づいたアプリケーションに通知するように更に適合されていてもよく、且つ、コンピュータに基づいたアプリケーションは、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしている場合に、1つの動作を実行し、且つ、受け取られた認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしていない場合には、別の動作を実行するように適合されていてもよい。例えば、いくつかの実施形態においては、コンピュータに基づいたアプリケーションは、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしている場合には、ログイン要求を認可してもよく、或いは、特定のデータに対するユーザーアクセスを認可してもよく、或いは、ユーザーが特定の動作を実行することを認可してもよく、或いは、ユーザーによってサブミットされたものでありうる特定のトランザクションを実行してもよく、且つ、コンピュータに基づいたアプリケーションは、受け取られた動的認証クレデンシャルが算出されたクレデンシャル基準値とマッチングしない場合には、これらの動作の実行を拒絶してもよい。

0166

いくつかの実施形態においては、不可逆関数は、一方向関数を有していてもよく、即ち、入力日付が付与された場合に結果を算出することが演算的に容易であるが、関数の結果の特定の値が付与された場合にマッチングする入力日付を取得することが演算的に困難である数学関数を有することができる。演算的に容易である、とは、いくつかの実施形態においては、関数の結果を取得するために、計算を実行するように意図された電子装置上において5秒未満を所要することを意味しうる。演算的に困難である、とは、いくつかの実施形態においては、関数の結果の特定の値が付与された場合に、マッチングする入力日付を取得するために、入力日付が付与された場合に結果を演算するために所要するものよりも少なくとも百万倍だけ多い演算量を所要することを意味しうる。演算的に困難である、とは、いくつかの実施形態においては、関数の結果の特定の値が付与された場合に、マッチングする入力日付を取得するための唯一の既知の方法が、徹底的サーチ(exhaustive search)によるものであることを意味しうる。又、本説明を目的として、秘密キーによってパラメータ化された暗号の暗号化又は暗号解読動作も、不可逆関数として見なされてもよく、その理由は、パラメータ化秘密キーの値が未知である場合には、入力データ要素に対する暗号化又は暗号解読動作を元に戻すことが演算的に困難でありうるからである。

0167

本発明の実施形態の利点
パスコード値は、認証システムのいずれかのコンポーネント上において保存されている場合には、例えば、そのようなコンポーネントのメモリにアクセスする能力を有する攻撃者により、危険に晒される場合がある。パスコードは、通常、相対的に低いエントロピーを有しうることから、攻撃者が、パスコードの関数であるデータ要素の値を取得した場合には、パスコードは、潜在的に、ブルートフォース徹底的サーチ攻撃に対して脆弱でありうるであろう。

0168

本発明は、様々な攻撃からパスコード値の機密性を保護するという点において、動的クレデンシャルに基づいた、且つ、パスコードを使用する、コンピュータに基づいたアプリケーションとの間におけるユーザーのやり取りを保護するその他の方法及びシステムを改良する。

0169

動的認証クレデンシャルは、パスコード値の関数として生成されることから、動的認証クレデンシャルの値は、パスコードの値を取得するための徹底的サーチ攻撃のための開始点として使用されうるであろう。但し、動的認証クレデンシャルは、パスコード値のみならず、高エントロピーのパスコードブラインディングデータ要素値及び高エントロピーの暗号クレデンシャル生成キー値の不可逆関数として算出されていることから、このような徹底的サーチ攻撃は、演算的に実行不能となろう。

0170

パスコードブラインディングデータ要素値及び/又は暗号クレデンシャル生成キー値の知識自体は、徹底的サーチによる場合にも、パスコードの値の取得を許容してはおらず、その理由は、パスコードブラインディングデータ要素及び暗号クレデンシャル生成キー値の値がパスコートの値とは独立しているからである。従って、本発明の態様による認証トークン又は認証クライアントは、ユーザーによって提供されたパスコードを破棄し、且つ、動的クレデンシャルの生成のために使用された後に、算出されたパスコードベイファイアデータ要素を破棄していることから、認証トークン又は認証クライアントのメモリのコンテンツ入手した(且つ、従って、保存されているパスコードブラインディングデータ要素値を入手済みでありうる)攻撃者も、依然として、ユーザーのパスコードを取得することができない。

0171

パスコードベリファイアデータ要素は、パスコード値の関数として生成されることから、パスコードベリファイアデータ要素の値は、パスコードの値を取得するための徹底的サーチ攻撃のための開始点として使用されうるであろう。但し、パスコードベリファイアデータ要素は、パスコード値のみならず、高エントロピーのパスコードブラインディングデータ要素値の不可逆関数として算出されていることから、このような徹底的サーチ攻撃は、演算的に実行不能となろう。即ち、パスコードベリファイアデータ要素の知識自体は、パスコードの値の取得を許容してはいない。又、一方において、暗号クレデンシャル生成キー値と、他方において、パスコード及びパスコードベリファイアデータ要素の値と、が、互いに独立していることから、パスコードベリファイアデータ要素値と対応する暗号クレデンシャル生成キー値の両方の組み合わせられた知識も、パスコードの値の取得を許容してはいない。従って、認証サーバーにおいて保存されているパスコードベリファイアデータ要素値及び/又は対応する暗号クレデンシャル生成キー値を入手した攻撃者も、依然として、ユーザーのパスコードを取得することができない。動的認証クレデンシャルの値が、パスコードベリファイアデータ要素値及び対応する暗号クレデンシャル生成キー値の値の組合せによって完全に判定されている(且つ、従って、なんらの情報をも、これに対して付加していない)ことから、動的認証クレデンシャルの値を捕捉した、且つ、認証サーバーにおいて保存されている対応するパスコードベリファイアデータ要素値及び/又は対応する暗号クレデンシャル生成キー値を入手した、攻撃者も、依然として、ユーザーのパスコードを取得することができない。

0172

動的認証クレデンシャル値は、パスコード値、動的変数値、パスコードブラインディングデータ要素値、及び暗号クレデンシャル生成キー値の関数であることから、且つ、動的変数値は、その取得又は推定が容易でありうる、或いは、実際に、低エントロピーを有しうることから、一方において、動的認証クレデンシャル値を、且つ、他方においては、その動的認証クレデンシャル値の生成において使用されたパスコードブラインディングデータ要素値及び暗号クレデンシャル生成キー値の両方を、入手することができた攻撃者は、潜在的に実行可能な徹底的サーチ攻撃を開始するべく、その動的クレデンシャル値を使用しうるであろう。但し、本発明の態様による認証トークン又は認証クライアントは、動的認証クレデンシャルを生成するべくその暗号クレデンシャル生成キー値を使用した後に、この特定の暗号クレデンシャル生成キー値が導出されたものでありうるすべての暗号クレデンシャル生成キー及び状態変数の値の両方を破棄していることから、一方においては、特定の認証トークン又は認証クライアント内において保存されているパスコードブラインディングデータ要素、暗号クレデンシャル生成キー、及び状態変数の値と、他方においては、その特定の認証トークン又は認証クライアントにより、その時点までに生成された任意の又はすべての動的認証クレデンシャルの値と、の両方を入手した攻撃者も、依然として、一方において、動的認証クレデンシャル値と、他方においては、その動的認証クレデンシャル値の生成において使用されたパスコードブラインディングデータ要素値と特定の暗号クレデンシャル生成キー値の両方と、の組合せを有しておらず、且つ、従って、依然として、その特定の認証トークン又は認証クライアントのユーザーのパスコードを取得するべく、実行可能な徹底的サーチ攻撃を開始することができないであろう。

0173

以上、いくつかの実装形態について説明した。但し、様々な変更が実施されうることを理解されたい。例えば、1つ又は複数の実装形態の要素は、更なる実装形態を形成するべく、組み合わせられてもよく、削除されてもよく、変更されてもよく、或いは、補完されてもよい。従って、その他の実施形態が、添付の請求項の範囲に含まれている。これに加えて、特定の特徴が、いくつかの実装形態のうちの1つのみとの関係において開示されている場合があるが、このような特徴は、任意の所与の又は特定の用途において望ましい又は有利でありうる場合には、その他の実装形態の1つ又は複数のその他の特徴と組み合わせられてもよい。様々な実施形態が上述されているが、これらは、限定ではなく、例示を目的として提示されているに過ぎないことを理解されたい。具体的には、当然のことながら、特許請求されている主題について記述することを目的として、コンポーネント又は方法のすべての想定可能な組合せについて記述することは不可能であり、当業者は、多くの更なる組合せ及び順列が可能であることを認識することができる。従って、本明細書における教示の広さ及び範囲は、上述の例示用の実施形態のいずれによっても限定されるものではない。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ