説明

サーバによるユーザ認証方法及びその装置

【課題】ユーザリクエストに応じたユーザ認証を単純化する目的を、サーバによりユーザが新たなパスワードの一部分のみで通信させて実現する。
【解決手段】変数K、t、xの暗号化関数が提供されたクライアント装置を準備するステップ(Kは、サーバとクライアント装置とが共有する秘密であり、tは、時間に依存する変数であり、xは、少なくとも2つの値を有する変数である)と、サーバによるユーザ認証のために、クライアント装置が、xの第1値により得られる関数の第1値を計算するステップ(S30)と、サーバによるユーザ認証の検証のために、クライアント装置が、xの第2値により得られる関数の第2値を計算するステップ(S80、S110)とからなることを特徴とするサーバによるユーザ認証方法を構成する。また、本発明は、前記関数値の計算手段を備えたユーザ認証装置を提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバによるユーザ認証方法及びその装置に係り、特に使い捨てパスワードの生成におけるサーバによるユーザ認証方法及びその装置に関するものである。
【背景技術】
【0002】
パスワードによる認証は、既知のものである。第三者が同一のアクセス権を取得しないよう、ユーザはパスワードを秘密にしなければならない。パスワードを生成できることは証拠を有するとみなされ、装置または管理サービスによってユーザアクセスが許容される。かかるパスワード技術は、「ウィーク」と称する認証システムの一部を構成する。
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところが、上記のパスワードによる認証方法の欠点は、認証情報が静的であること、すなわち、第三者がパスワードを破り(クラック)し、その後ユーザと同一のアクセス権を取得することに関連している。この問題の解決手段は、使い捨てパスワードシステム(パスワードは取引一回限り有効であるという1回限りのパスワード、以下OTPと称する)である。
【0004】
かかるシステムにおいては、非同期またはチャレンジ/レスポンス方式のシステムが知られている。ユーザがサーバーによる認証を望む場合、サーバがチャレンジを(例えばランダムで)生成し、ユーザにそれを送信する。ユーザはクライアント装置でこのチャレンジを取得する。そしてこのクライアント装置において、ハッシュ関数および暗号化アルゴリズムによってOTPを生成する。このOTPは検証に必要な全ての情報を有しており、ユーザはOTPをサーバに送信し、それからユーザが認証される。
【0005】
非同期システムも既知のものであり、これは、チャレンジが現在の時間(絶対的なもの)に対応しているか、装置内部のカウンタ(使用ごとに数が増加する)に対応していること以外は、ほぼ同様の動作をする。クライアント装置とは、例えばユーザが所持している認証トークンであって、これはサーバがユーザ認証するためのパスワードを生成するために用いられるものである。認証トークンは、カード、小型計算機、キーリング等の様々な形態でありうる。この技術は、ユーザのチャレンジ入力の必要がないため、より簡単である。しかし、これはクライアント装置とサーバとの間で同期することが必要となる。
【0006】
例えば、RSA SecurlDシステムは、時間や共有秘密に基づいて使い捨てパスワードを生成するクライアント装置(例えば認証トークン)からなる。より具体的には、この装置は、60秒ごとにコードを生成するアルゴリズムと組み合わせた独自の対称鍵を利用している。個人ユーザコードとの連携により、かかる装置は強力な識別確認をなすことができる。得られる数字は動的なものであるため、予想するのは困難である。したがって、ハッカーが特定の瞬間に対応したこのコードを破ることは難しい。各装置とセキュリティサーバとを同期させるために所定の技術が用いられる。
【0007】
このシステムの第1の欠点は、クライアント装置が一定間隔でパスワードを生成するところにあり、これは時に不要なものであり、所定用途では不適合となる場合さえある。さらに、エネルギーを消費する。
別の欠点は、共有秘密を取得したアタッカーがパスワードを再生成できるところにある。ひとつのリスクは、このようなフォーク爆弾攻撃(ハイジャック)である。実際にユーザ認証は接続時になされる。一旦このユーザ認証を通過すると、認証が常に正しいかの検証は行われない。また、通信、例えばTCP/IP型やDTMF送信の流用も可能である。ひとたびこの流用がなされると、サーバが攻撃者に対話を求めた場合、これに対し攻撃者は犠牲者のセッションを使用するという事態が生じる。
【0008】
そこで、本発明は、上記の欠点を簡単に解決するサーバによるユーザ認証方法及びその装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明の一態様において、変数K、t、xの暗号化関数が提供されたクライアント装置を準備するステップと(Kは、サーバとクライアント装置とが共有する秘密であり、tは、時間に依存する変数であり、xは、少なくとも2つの値を有する変数である)、
サーバによるユーザ認証のために、クライアント装置が、xの第1値により得られる関数の第1値を計算するステップと、
サーバによるユーザ認証の検証のために、クライアント装置が、xの第2値により得られる関数の第2値を計算するステップとからなる。
好ましい実施態様においては、本発明の方法は、一つ以上の以下の特徴からなる。本発明による方法は、前記第1計算ステップの後で、さらに、
サーバに第1値を提供するステップと、
提供された第1値を利用して、サーバがユーザ認証を行うステップと、
ユーザがサーバに要求をするステップとからなり、またこの方法は、第2計算ステップの後で、さらに
サーバに第2値の少なくとも一部分を提供するステップと、
この第2値の少なくとも一部分を利用してサーバがユーザ認証を検証するステップとからなり、また、本発明による前記ユーザ認証方法は、第1計算ステップと第2計算ステップとの間において、さらに、
ユーザがサーバから第2値の少なくとも一部分に関連するチャレンジを受けるステップとからなり、
前記第1、第2計算ステップの少なくとも一方において、前記関数は変数K、t、xの連結値を使用し、
変数xは、1ビットコードの変数であり、−前記関数は、ハッシュ関数である。
また、本発明は、変数K、t、xの暗号化関数が提供されたユーザ認証装置において(Kは、サーバとクライアント装置とが共有する秘密であり、tは、時間に依存する変数であり、xは、少なくとも2つの値を有する変数である)、
少なくともxの2つの値の一方または残りの関数値を計算する手段を設けたユーザ認証装置に関するものである。
本発明の好ましい実施態様において、本発明のユーザ認証装置は、一つ以上の以下の特徴を有している。本発明のユーザ認証装置は、さらに
ユーザが変数xを変更する手段を設け、
ユーザによってユーザ認証装置による関数値の計算を発動させる手段を設け、
この変更手段および発動手段は、一体化して設け、
また、本発明によるユーザ認証装置は、さらに、複数の表示部を有する関数値の表示手段を設け、このユーザ認証装置は、各表示部において関数値の部分表示が可能であり、
計算手段は、変数K、t、xの連結値を利用した関数値の計算が可能であり、
変数xは、1ビットコードの変数である。
【発明の効果】
【0010】
本発明は、システムの人間工学性を改善し、認証方法の背後にある原理によって、特に、ユーザリクエストに応じたユーザ認証を単純化する。
【発明を実施するための最良の形態】
【0011】
本発明は、ユーザリクエストに応じたユーザ認証を単純化する目的を、サーバによりユーザが新たなパスワードの一部分のみで通信させて実現するものである。
以下、図面に基づいてこの発明の実施例を詳細且つ具体的に説明する。
【実施例】
【0012】
本発明は、使い捨てパスワードを生成するため、共有秘密および時間変数を使った暗号化関数に基づいたユーザ認証の方法および装置を提案するものである。またこの関数は、追加した別の変数にも依拠しており、この値は、必要に応じてユーザが変更可能である。この値の変更は、例えば、ユーザからの要求(リクエスト)を受けてサーバが生成するチャレンジを受けた後になされる。一方、パスワードが変更される時間は、予測不可能である。他方、引数値が変化し、よって関数値も変化する。通常の暗号化関数の性質を考慮すると、フォーク爆弾攻撃は、従来のOTPシステムと比較してより困難となる。ユーザは、単純化されたサーバからのチャレンジに応じた、好ましくは新たなパスワードの一部分のみで通信できる。これにより、システムの人間工学性がかなり改善される。本発明の方法の背後にある原理によって、特に、ユーザリクエストに応じたユーザ認証が単純化される。
【0013】
図1は、クライアント装置による関数f(K、t、x)の第1値の計算ステップ(ステップS30)の方法を提供するものである。
変数Kは、サーバとクライアント装置とが共有する秘密(シークレット)であって、通常、これは秘密鍵(一般には二つの通信者間にのみ知られた独自の鍵)である。従来技術で知られているように、暗号化セキュリティーは、この共通鍵による秘匿性に依存している。
【0014】
変数tは、何らかの方法で時間に依拠している。通常、これは現在時間の変数である。サーバ側の検証での同期問題を回避するため、従来技術で知られるように、例えばタイムスロットを割り当てることもできる。また、変数tは、接続ごと(従って徐々に進展する)に増加する数字とすることも可能である。秘密や時間変数を実行するための様々な従来技術が知られている。
【0015】
本発明によると、関数は、少なくとも2つの値を有する変数xにも依存している。このために、変形例によると、この変数は、以下に例示する1ビットコードの変数でありうる。
関数fは、通常、暗号化やハッシングやメッセージ認証コード(MAC)に適する関数である。この関数は、ハッシュアルゴリズムからなる、ハッシュ関数またはダブルハッシュ関数(例えばMD5、SHA、SHAの発展型)が好ましい。従来技術で知られるように、このような関数は、一連の値をより小範囲の値に対応させるものである。アルゴリズムによって、初期メッセージを簡易化したメッセージを生成できる。
より正確には、ハッシュ関数fの場合、f(n)≠f(m)はn≠mを意味し、f(n)=f(m)はおそらくn=mを意味することが要求される。nの設定値がfによる設定値を超える場合、後者の性質を評価するのは困難である。実際にも、暗号という意味合いでは、関数fは、nが任意でハッシュ値f(n)が既知の場合、f(n)=f(m)であるようにmを計算することが非常に困難(すなわち技術的に不可能であるかほぼ不可能)となるように追求される。
【0016】
特に単純で効果的な実施例において、この関数は変数K、t、xの連結値を利用する。行われる計算は、f(C=tKx)≡f(K、t、x)に相当する。
変数xは、ハッシュレベルを考慮した、例えば追加ビットである。変数xを追加ビットでコード化することは、変数xに二つの値を与えるにつき十分であるため、特に単純で有利であることが証明される。
例えば、時間変数は、1バイトでコード化されうる(例えば11001010)。秘密すなわち鍵は、例えば、1011001010100111101010101100001010というストリングを有する値でありうる(他の値と区別するため太字で示している)。また、以下のように構成することもできる。
(i)f(K、t、x=0)=f(1100101010110010101001111010101011000010100)、あるいは
(ii)f(K、t、x=1)=f(11001010101100l0101001111010101011000010101)。
この計算ステップは、変数x(例えばx=0)の第1値のために実施される。
【0017】
もし必要ならば、この計算ステップの後に、サーバにf(K、t、x=0)の結果を提供するステップ(ステップS40)を設けることもできる。この結果は、ハードウェア構成に応じた任意の手段でサーバに提供される。特に、この結果は、(例えば、USBポートにより、あるいはインターネットでサーバに接続したクライアントコンピュータを介して)クライアント装置がサーバに接続した場合でユーザ確認の後に、クライアント装置によって送信される。あるいは変形例として、この結果は、特にクライアント装置が接続していない場合にはユーザ自身がサーバと結果を通信する方法によって、クライアント装置に表示される。
【0018】
本発明の方法は、このように、上記計算と等価の計算結果を使用したユーザ認証ステップ(S50)を備えている。より具体的には、サーバは、秘密、時間またはタイムスロットを知っており、よって初回のユーザ認証に必要な情報を有している。かかる原理は、引数が変数xにより変化し引き続き関数fの値が変化するという点を除いては、従来技術で知られている。
【0019】
好ましくは、ユーザがサーバにリクエストした場合(ステップS80あるいはステップS70)に引き続いて、ユーザは、クライアント装置がx(例えばxは1以上)の第2値のために計算した関数fの第2値の少なくとも一部分につきサーバと通信する。x値の変更は、ユーザ自身によって行われる。この点については、図2に示している。
【0020】
それから、サーバ自体は、同一の認証原理に基づきユーザ認証を検証する。それ以降の、ユーザリクエストの取得は、サーバによるユーザ認証の検証に依存する。
この原理によると、装置がユーザにx=0で生成されうる各新規パスワードを知らせる必要がないことに注目しなければならない。ユーザは、必要なときのみ装置に要求するだけでよい。したがって、ユーザは、例えば、1回目は、ユーザ自身を認証するよう装置にリクエストまたはそれを制御し(X=0)、それから2回目はサーバが認証を検証するための新規パスワードの交付を要求する(x=1)。
【0021】
応用例は、ユーザによる銀行口座の遠隔管理である。1回目にユーザは銀行サーバによって認証を受ける(ステップS50と同様)。この認証によって、ユーザがその銀行口座に関する情報へのアクセスが可能となる。それから、ユーザが銀行口座の操作を望む場合は(ユーザリクエスト)、サーバは、サーバが発したチャレンジに対してユーザが正確に応答することを条件に、この操作の妥当性確認を送信する。
【0022】
サーバは、f(K、t、x=1)に関するチャレンジを送る。ユーザがこのチャレンジを受け取る(ステップS90)。
【0023】
好ましくは、サーバは、f(K、t、x=1)の結果の一部分のみ、例えばf(K、t、x=1)の結果のうち2つの数字のみに関するチャレンジを送る(実際に、これでユーザ認証に対する検証につき十分な保護を与えることができる)。したがって、ユーザはサーバと通信するにつき少ないキャラクター数で足りる。この方法の人間工学性は、このように改良されている。
【0024】
さらに、サーバと通信が行われるこの結果の一部分は、サーバがランダムに選択することができる。例えば、サーバが、ランダム処理により(よって予見不可能)、通信される結果の最初の2つの数字や次の2つの数字等を尋ねる。これにより、さらにハッキングの可能性を減少することができる。このために、特に有利な装置が図2に示されている。
【0025】
ユーザがチャレンジに対して正しく応答した場合、ユーザリクエストが許容される(ステップS140)
【0026】
図2は、本発明によるクライアント装置10の例を示している。このクライアント装置10は、上記のようなユーザ認証やその検証を可能とするものである。
【0027】
このクライアント装置10は、前記xの少なくとも2つの値の一方または残部についての関数f(K、t、x)の値を計算する手段を備えている。またこのクライアント装置10は、変数xを変更する手段16を備えている。この変更手段16は、例えばボタン形状である。このボタンを押すことにより、x=0がx=1に変化する。
【0028】
またクライアント装置10は、クライアント装置による関数値計算のためのユーザ発動手段16も備えており、また関数値の表示手段20も備えている。この表示手段は、例えば液晶ディスプレイである。
【0029】
このように、本発明の一実施例において、クライアント装置は、デフォルトで、秘密および接続変数や現時変数(例えば現時のタイムスロット)に対応するパスワードを表示することができる。このパスワードにより、サーバがいつでもユーザの認証を行うことができる。それ以降、サーバからのチャレンジに応答して、ユーザはこのボタンを押す。それからxの値が切り替わる。
【0030】
好ましくは、変更手段16および発動手段16とは、一体化されている。ユーザがボタン16を押すと、同時に、f(K、t、x=1)の計算結果Bが表示される。
また好ましくは、表示手段は、個別の表示部23〜25からなる。これらの表示部は、例えば、表示スクリーン20の境界部を設けることや、個別のスクリーンによって、個別化される。当業者は、例えば、個別の表示部の間にキャラクター表示スペースを設けることで、読み取り容易にできる。
【0031】
また、クライアント装置は、各表示部23、24、25に関数値の部分表示が可能である。したがって、ユーザは、上記の手段を備えた人間工学的な装置を利用可能となる。上記のように、サーバは、かかる表示部の一つにチャレンジを表示するようにできる。例えば、かかるチャレンジは、「表示部Aに示される2つの数字を入力せよ」というものである。図に示した例に従うと、このチャレンジに応じて、ユーザは89という数字を入力しなければならない。
【0032】
上記のような応用例については、銀行口座の操作についての典型的なチャレンジは、以下の通りである。−残高を表示するには、バイパスボタン16を押して、Cという文字の下に現れる数字を入力せよ。−それから、新しい通帳を注文するには、バイパスボタン16を押して、Bという文字の下に現れる名前を入力せよ。
【0033】
あるいは、別のクライアント装置は、例えばABCDEFGHIJの文字に対応した10の表示部からなる液晶ディスプレイである。
【0034】
変形例として、チャレンジは暗黙のものとできる。例えば、ユーザの銀行口座からの送金操作の場合は、予めの処置や初期設定でユーザに了承させたことに基づいて、暗黙のうちに、表示部Aに示される数字を入力提供するものとする。この場合、ユーザは、リクエストがなされたと同時に対応する数字をサーバへ提供する(例えば、数字をリクエストボックスに入力する)。
【0035】
他の変形例として、クライアント装置は、例えばUSBポート12のようなサーバへ関数値を送信するためのサーバ接続手段12を備えている。したがって、関数f(K、t、x)の値は、クライアント装置がサーバに接続した場合に(例えばユーザのコンピュータおよびインターネットを介して)、クライアント装置から直接転送される。
【0036】
もし必要ならば、f(K、t、x=0)の値のみを、認証のため送信すれば足りるようにできる。これに対し、よりセキュリティを高めるためには、クライアント装置は、f(K、t、x=1)の値のみ表示されるように設計することができる。
【0037】
他の変形例によると、クライアント装置には、2つの異なったメイン表示部(例えば2つの異なった液晶ディスプレイ)が設けられている。一方の表示部はf(K、t、x=0)の値を表示し、他方の表示部がf(K、t、x=1)の値を表示する。このようにして、f(K、t、x=0)およびf(K、t、x=1)の値が表示され、ユーザはいつでもこれらの値を見ることができる。したがって、特定の動作によって、f(K、t、x=1)の計算を発動させる必要がなくなる。そこで、クライアント装置にはボタンを設ける必要がなくなる。さらに、メイン表示部のそれぞれにおいて、表示部23、24、25の異なった表示部において、関数fの値の一部を表示することができる。
【0038】
このように、本発明は、支払端末へ有利に適用可能である。例えば、チャレンジは、(例えば店舗における)取引の合計に対応するものとなりうる。
【0039】
さらに、本発明は、上記の変形例に限定されるものではなく、当業者が容易に利用可能な方法でのそれ以外の様々な変形をなすことができる。例えば、エラー許容がなされたハッシュ関数を実施できる。また、個人用静的パスワードによる妥当性確認を受けたクライアント装置を利用することも可能である。
【産業上の利用可能性】
【0040】
本発明によるクライアント装置によるユーザ認証を、他の構造にも適用できる。
【図面の簡単な説明】
【0041】
【図1】本発明の実施例による方法を示すフローチャートである。
【図2】本発明によるクライアント装置の例を示したものである。
【符号の説明】
【0042】
10 クライアント装置
12 サーバ接続手段
16 変更手段
20 表示手段
23〜25 表示部

【特許請求の範囲】
【請求項1】
変数K、t、xの暗号化関数が提供されたクライアント装置を準備するステップ(Kは、サーバとクライアント装置とが共有する秘密であり、tは、時間に依存する変数であり、xは、少なくとも2つの値を有する変数である)と、
サーバによるユーザ認証のために、クライアント装置が、xの第1値により得られる関数の第1値を計算するステップ(S30)と、
サーバによるユーザ認証の検証のために、クライアント装置が、xの第2値により得られる関数の第2値を計算するステップ(S80、S110)とからなることを特徴とするサーバによるユーザ認証方法。
【請求項2】
前記ユーザ認証方法は、前記第1計算ステップ(S30)の後で、さらに、
サーバに第1値を提供するステップ(S40)と、
提供された第1値を利用して、サーバがユーザ認証を行うステップ(S50)と、
ユーザがサーバにリクエストをするステップ(S70、S80)とからなり、
また、前記ユーザ認証方法は、前記第2計算ステップの後で、さらに、
サーバに第2値の少なくとも一部分を提供するステップ(S110、S80)と、
この第2値の少なくとも一部分を利用してサーバがユーザ認証を検証するステップ(S50)とからなることを特徴とする請求項1に記載のサーバによるユーザ認証方法。
【請求項3】
前記ユーザ認証方法は、第1計算ステップ(S30)と第2計算ステップ(S80、S110)との間において、さらに、
ユーザがサーバから第2値の少なくとも一部分に関連するチャレンジを受けるステップ(S90)からなることを特徴とする請求項1又は請求項2に記載のサーバによるユーザ認証方法。
【請求項4】
前記第1計算ステップ(S30)および第2計算ステップ(S80、S110)の少なくとも一方において、前記関数は変数K、t、xの連結値を使用することを特徴とする請求項1〜3のいずれか1項に記載のサーバによるユーザ認証方法。
【請求項5】
前記変数xは1ビットコードの変数であることを特徴とする請求項1〜4のいずれか1項に記載のサーバによるユーザ認証方法。
【請求項6】
前記関数は、ハッシュ関数であることを特徴とする請求項1〜5のいずれか1項に記載のサーバによるユーザ認証方法。
【請求項7】
変数K、t、xの暗号化関数が提供された備えたユーザ認証装置において(Kは、サーバとクライアント装置とが共有する秘密であり、tは、時間に依存する変数であり、xは、少なくとも2つの値を有する変数である)、xの少なくとも2つの値の一方または残りの関数値を計算する手段を設けたことを特徴とするユーザ認証装置。
【請求項8】
ユーザが変数xを変更する手段(16)を設け、ユーザによってユーザ認証装置による関数値の計算を発動させる手段(16)を設けたことを特徴とする請求項7に記載のユーザ認証装置。
【請求項9】
前記変更および発動手段(16)は、一体化して設けたことを特徴とする請求項8に記載のユーザ認証装置。
【請求項10】
複数の表示部(23〜25)を有する関数値の表示手段(20)を設けたユーザ認証装置であって、このユーザ認証装置は、各表示部(23〜25)において関数値の部分表示が可能であることを特徴とする請求項7〜請求項9のいずれか1項に記載のユーザ認証装置。
【請求項11】
前記計算手段は、変数K、t、xの連結値を利用した関数値の計算が可能であることを特徴とする請求項7〜請求項10のいずれか1項に記載のユーザ認証装置。
【請求項12】
前記変数xは、1ビットコードの変数であることを特徴とする請求項7〜請求項11のいずれか1項に記載のユーザ認証装置。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2007−336546(P2007−336546A)
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2007−154856(P2007−154856)
【出願日】平成19年6月12日(2007.6.12)
【出願人】(507195128)
【Fターム(参考)】