説明

認証システム

ユーザ認証方法は、ユーザ式の形で認証キーを生成するステップと、各々に値が割り当てられた変数の配列をユーザに提示するステップと、前記ユーザ式の一致する変数に前記割り当てられた値を当てはめて第1の結果を計算するステップと、前記第1の結果が前記ユーザ式の別個で独立した計算についての第2の結果に一致する場合に前記ユーザを認証するステップと、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データの安全保護に関し、特に、ユーザの認証に関する。
【背景技術】
【0002】
コンピュータシステムは、ユーザに対して様々なアプリケーションまたはサービスを提供できる。一般に、システムへのアクセスは、許可されたユーザに限られているかもしれない。ユーザの認証についての一例は、ユーザがユーザ名及びパスワードを入力することを要求されるログイン方法である。
【0003】
技術の新たな進展にも関わらず、ユーザ名とパスワードとの組合せは、相変わらず最も一般的なアクセス制御手段のうちの1つである。しかしながら、パスワードは不利であるかもしれない。なんとなれば、容易に記憶されるパスワードは割り出すのが極めて容易であり、複雑で割り出すのに難しいものは容易に忘れられるからである。
【0004】
この種のシステムの完全な状態は、概して、パスワードを秘密にしておくことに基づいている。しかしながら、パスワードを割り出す多くの知られている方法がある。知られている方法には、推測すること、一般的なパスワードまたは全ての知られている言葉についての辞書を用いること、文字・記号(キャラクタ)の全ての組合せを用いることを含むしらみつぶしの試み、サーバとやり取りしている間にパスワードに関してネットワークトラフィックを監視すること、「ショルダーサーフィン」(ログインの間にユーザの肩越しに見ること)、キーロギング(ログインの間にユーザのキー入力を記憶するかまたは伝えること)、その他を含む。
【0005】
この種の攻撃に対する知られている防御策は、パスワードをより長くして推測するのをより難しくすることと、辞書の適用及びしらみつぶしの技術をより難しくすることとを含む。他の防御策は、例えばユーザに関係のある名前、電話番号、生年月日、その他などの「意味がある」パスワードの使用を禁止すること、ユーザがパスワードを入力するときにアスタリスクなどの意味のないキャラクタを表示してショルダーサーファーにアスタリスクだけが見えるようにすること、ネットワークを介してパスワードを送出する前にパスワードを暗号化してネットワーク監視による探知を防ぐこと、を含む。
【0006】
アクセス制御及び認証の1つの方法は、ワンタイムパスワード(OTP)の使用である。ユーザはログインするたびに異なるパスワードを使用し、よって、上述の攻撃技術の多くを役に立たない技術にする。パスワードを傍受し、キーログし、そうでなければ割り出すことは、何らの利点をもたらさない。なんとなれば、取得されたパスワードを再び用いることができないからである。
【0007】
最も一般的に利用可能なOTPシステムは、多かれ少なかれ同じプロトコルを共有する。ログイン方法の一部として、サーバはユーザにいわゆるチャレンジを送出する。いわゆるチャレンジは単に大きい乱数であってもよい。ユーザは、例えばOTPを生成する特別な物理的な機器またはソフトウェアなどのOTP生成器に、この数を入力する。ユーザは該OTPを入力する。サーバも同様に、それ自体のOTP生成器に該チャレンジを入力する。サーバのOTPとユーザのOTPが一致すれば、ユーザは認証される。
【0008】
OTP生成器が物理的な機器(例えばスマートカード、トークン、バイオメトリック装置、その他)であるという点に、失われたか、壊れたかまたは盗まれたOTP生成器のコスト及び不利が不安となる。
【0009】
パスワード生成アルゴリズムが全てのユーザに対して同じものである例では、各々のユーザは、結果を唯一のものにするために秘密のキーを割り当てられる。このキーは、通常、ユーザのOTP生成器に埋め込まれ、サーバのデータベースにも記憶される。このOTP生成スキームにはいくつかのバリエーションがある。例えば、時刻がチャレンジの代わりに用いられてユーザとサーバとを同期させてもよい。ほとんどの場合、安全確保はユーザの秘密のキーの完全性に依存する。キーの情報が漏洩されると、システムは無効になる。その結果、パスワードのように、最もよく知られているものの1つであるしらみつぶしを用いて、キーは様々な種類の攻撃の対象となる。安全確保のさらなる層が、OTPを計算するアルゴリズムを保護することにより提供されるが、執拗にアルゴリズムは割り出されて信頼できる安全確保の要素でない。
【0010】
ネットワーク環境において、通常、サーバは様々なサービス及びアプリケーションを、ネットワークで結ばれた多数のユーザへ提供する。サーバは、特定のサービスまたはアプリケーションの使用を適切に許可するために作動してユーザを確かめる。通常、これは上記した標準のログインプロセスによって実施される。サーバはその時入力されたユーザ名及びパスワードを記憶されたユーザ名及びパスワードと合致させる。
【発明の開示】
【発明が解決しようとする課題】
【0011】
辞書アプリケーション、しらみつぶし攻撃、トラフィック監視、ショルダーサーフィン、キーロギング及び様々な他の種類の攻撃に強固であって耐える認証システムを提供することが有利である。
【課題を解決するための手段】
【0012】
本発明は、ユーザを認証する方法及び装置を目的とする。1つの実施例において、本発明は、ユーザ式の形で認証キーを生成するステップと、各々に値が割り当てられた変数の配列をユーザに提示するステップと、前記ユーザ式の一致する変数に前記割り当てられた値を当てはめて第1の結果を計算するステップと、前記第1の結果が前記ユーザ式の別個で独立した計算についての第2の結果に一致する場合に前記ユーザを認証するステップと、を含む。
【0013】
他の実施例において、本発明は、ユーザ式と、各々に値が割り当てられた変数の配列と、
ユーザにより入力される、前記変数の配列に関係付けられた前記値を前記ユーザ式の一致する変数に当てはめた第1の結果と、前記ユーザ式を用いて別個で独立した計算を実施して第2の結果を取得し、前記第1の結果が前記第2の結果と一致する場合にユーザを認証する回路と、を含むユーザ認証システムを含む。
【発明を実施するための形態】
【0014】
本発明の前述の態様及び他の特徴は、添付の図面に関連して成される以下の記述において説明される。
【0015】
図1を参照すると、本発明の特徴を取り入れているユーザ認証システム100が、示されている。本発明は図面に示される実施例を参照して説明されるが、本発明は実施例の多くの代替形式において実施され得るということが理解されるべきである。さらに、いかなる適切なサイズ、要素の形状または種類、または構成要素が用いられてもよい。
【0016】
図1に示すように、システム100は、この例ではユーザインタフェース110で示されるユーザインタフェース機能と、この例では制御装置115として示される認証制御機能とを含む。
【0017】
本発明は、ユーザ式の形で認証キーを生成することを含む。認証セッションの開始時に、ユーザは、各々が値を割り当てられている変数の配列を提示される。ユーザは、提示された変数と関連付けられた値をユーザ式の一致する変数に当てはめて結果を入力する。
【0018】
図2のフローチャートを参照してさらに詳細に説明すると、ユーザ式は、ブロック310に示されるように生成される。ユーザ式は、一組の変数及び演算子からユーザによって構築されてもよい。認証システムがアプリケーションを提供し、そこから選択される変数及び演算子のリストを提供することによってユーザを補助してもよい。認証システムは、また、ユーザのために自動的にユーザ式を生成できるアプリケーションを提供してもよい。得られる式は、ブロック315に示すように、通常、ユーザにより記憶され、認証システムによって記憶される。
【0019】
ユーザが、装置、サービス、アプリケーションまたは機能へのアクセスを要求し、そのとき認証セッションが、ブロック320に示すように開始されてもよい。認証セッションの開始時に、認証システムはブロック325で示すように、各々が値を割り当てられた変数の配列をユーザに提示する。ユーザは、ユーザ式の変数に一致する、配列に示された変数を認識する。次にユーザは、変数に割り当てられた値を、ブロック330に示すようなユーザ式に当てはめ、ブロック335に示すように結果を入力する。
【0020】
値は、ランダムに生成されて変数に割り当てられてもよく、通常各認証セッションとともに変化してもよい。認証システムは、変数に割り当てられた値を独立してユーザ式に当てはめて、ブロック340に示すように独立の結果を生成する。認証システムは、ブロック345に示すように独立の結果を入力された結果と比較する。そして、結果が一致する場合、認証システムはユーザにサービスまたはアプリケーションへのアクセスの権利を与える(ブロック350)。結果が一致しない場合、アクセスが拒否される(ブロック355)。
【0021】
例えば、ユーザは以下のユーザ式を構成してもよい。即ち、3*(2*Q+3*T)であってもよい。認証セッションの間に、変数及び値の配列が、ユーザに提示される。配列の変数Qが値32を割り当てられ、配列の変数Tが値9を割り当てられると、ユーザ式は、3*(2*32 +3*9)、または値273を生じる。次にユーザは、数273を入力する。認証システムが変数及び値の配列を生成してユーザ式を記憶したので、認証システムはユーザ式を用いて同じ計算をする。結果が一致すれば、ユーザは認証される。
【0022】
上記した認証セッションに加えて、システム100は、認証システムの一部として管理方法を提供してもよい。認証セッションは、上記したような装置、サービス、アプリケーションまたは機能へアクセスするためにユーザに資格を与えることを含む。通常、管理方法はユーザに、ユーザが式を設定することができるツールを提供し、次の認証セッションに対する式を記録する。さらに、例えばスペース及びディレクトリの割り当て、暗号化方法、プログラム間通信、その他などの他の設定及び管理方法を取り扱う。
【0023】
上記の認証セッションの一部として、変数の配列が、ユーザに提示されてもよい。配列例が、図3に示される。この例では、配列360は、格子365、ユーザ名370を入力する領域及び、本発明によるユーザ式を当てはめた結果であるパスワード375を入力する領域を含む。格子365はセル380で構成されていて、各々のセルはユーザ式変数を表す文字または文字の組合せ385により示されてもよい。各変数は、値390を割り当てられる。上記したように、各変数に割り当てられた値は、配列がユーザに提示される度に変化してもよい。1つの実施例では、各々の値は、配列が提示される度に、乱数生成器によって生成される。
【0024】
上述した典型的な式3*(2*Q+3*T)を用いると、ユーザは配列360を調べ、変数Qが69という値を割り当てられていて、変数Tが49という変数を割り当てられているとわかる。ユーザは、式を当てはめて、結果を入力する。
【0025】
この例では、各セルが2つの構成要素、変数及び値を含む。変数が文字に関連して記載されていて、値が数に関連して記載されていると同時に、変数及び値がいかなる認識可能ないかなるマーク、シンボル、またはイメージとして示されてもよいということが理解されるべきである。
【0026】
また、この例では、変数の配列が10×10のセル格子として示されている。しかしながら、配列はいかなる形であってもよく、いかなる数のセルまたは位置を含んでいてもよい。
【0027】
ユーザ式が、例えば、足し算、引き算、乗算、除算、累乗、最大、最小、絶対値、連結、その他といった、いかなる数学的及び非数学的演算を含んでいてもよい。さらに、括弧を含んで演算の順序を変えてもよい。認証システムはまた、一般演算子を提供して、望ましい式の変数に関するいかなる関数もユーザが実施することを可能にしてもよい。
【0028】
図4は、管理上の方法の一部としてユーザに提示されてもよい管理画面400の例を示す。管理上の方法は、例えば、ユーザ設定処理の各ステップを通してユーザをエスコートする「ウィザード」、及びユーザが式を設定するのを助ける式ビルダーといった多様なツールをユーザに提供してもよい。1つの実施例において、式ビルダーは、ユーザにそこから選択する変数及び演算子のメニューを提供し、そのユーザに唯一の式をコンパイルしてユーザを助けてもよい。
【0029】
管理画面400は、変数405、数のキーパッド410、数学的キー415及び非数学的キー420、及び式のテスト用キー425、式の保存用キー430といった配列を含んでもよい。管理画面400は、また、ユーザ名370及びユーザ式440を入力する領域を含んでもよい。ユーザは変数及び様々な演算子から選択してユーザ式を入力してもよい。
【0030】
例えば、ユーザはキーボード145(図1)を用いてユーザ式をタイプしてもよい。ユーザが式をタイプするときに、ユーザ式がユーザ式領域440に表示されてもよい。代わりとして、ユーザはポインティングデバイスを用いて、キャラクタ、変数または演算子にわたってカーソルを位置決めし、マウスボタンをクリックするかまたはエンターキーを押して所望のキャラクタ、変数または演算子を選択してもよい。選択が、ユーザ式領域440に表示される。ユーザは、ユーザ式が所望通り構築されるまで続ける。ユーザ式が完了すると、次にユーザは「セーブ」ボタン430を作動させて式を記憶してもよい。
【0031】
1つの実施例において、ユーザが、1つ以上の一般演算子を構築する関数を与えられていてもよい。例えば、演算子の1つがオフセット関数を含み、そこで関数がユーザ式の変数と関連付けられ、関連付けられた変数からオフセットした配列の変数から値を当てはめる。オフセット関数は、(オフセット(x、y))として表され、xはX軸のオフセットをいい、yはy軸のオフセットをいう。オフセット関数を含む典型的なユーザ式は、A+B(オフセット(1、1))であってもよい。図3を参照すると、ユーザは変数Aに割り当てられる値を最初に見つけて用いる。次に、変数Bを見つけるが、この認証セッションにおいて座標(1、1)だけオフセットされる変数Mから値を用いる。
【0032】
オフセットが配列365の範囲内で提示されている変数を示している限り、ユーザは所望されるいかなるオフセットをも使用できる。1つの典型的な実施において、ユーザはユーザ式内で所望される「(オフセット(x、y))」を単にタイプすることによってオフセット関数を入力する。別の実施例では、非数学的機能420の1つがオフセットと名付けられたボタンを含んでもよい。オフセットボタンを押すことが、ユーザにオフセット座標を入力することを要求するダイアログボックスを開始してもよい。座標を入力すると、例えば(オフセット(1、1))などのオフセット指定が、ユーザ式領域440において表示されるユーザ式に現れてもよい。
【0033】
オフセット関数の別の展開では、IX関数として参照される特別のオフセットが決定されてもよい。IX関数は、配列の上側左手位置を示している座標として、変数と関係付けられた値を利用する。例えば、ユーザがユーザ式2*Bを用いることを望み、配列365の上側左手コーナーを特定するのに変数Kを指定することを望んでもよい。オフセットボタンを押した後に、座標に対する要求に応えて、ユーザがIX(K)かまたは、特別のオフセット及び指定に対するいくつかの他の適当な指定で応答してもよい。
【0034】
その後、ユーザがユーザ式365を用いてユーザ式の結果を判断するときに、ユーザは、変数Kが値「43」を割り当てられているということがわかり、次に変数Aのオフセット位置として座標(4、3)、変数Bに対するオフセット位置を指定する座標(5、3)、変数Cのオフセット位置を指定する座標(6、3)、その他、を考慮する。座標(5、3)の値を用いると、ユーザ式2*Bは、そのときパスワード領域375において入力される「104」を生じる。
【0035】
いかなる関数、演算子、または演算子または関数の組合せを実行する他のカスタム演算子が生成されてもよい。
【0036】
別の例として、管理画面400は、1つ以上の変数に関して演算するカスタム関数を生成する選択を含んでもよい。カスタム関数は、数学、論理的(AND、OR、XOR、その他)三角法、統計、及びその他の様々なタイプ演算子のいかなる数を含んでもよい。ユーザは、カスタム関数を設計するためのテンプレートとして用いることができる1つ以上のスクリプトを提示されてもよい。同様にスクリプトが提供され、ユーザへのボタンまたはメニュー項目をユーザに提示し、カスタム関数を呼び出して、ユーザ式においてカスタム関数を用いてもよい。
【0037】
カスタム関数を生成する機能が有利である。なんとなれば、それはシステムが特定のユーザまたは企業の一部に対してカスタマイズされることを可能にするからである。システムの購入者は、他のシステムの購入者に利用可能でないかまたは知られていないカスタム関数及び演算子を生成することによって、更にシステムの安全確保を強化する機能を提供される。
【0038】
認証システムは、AutoToken(登録商標)関数と称される、式内で式を生成する関数を提供することによって、より大きな安全確保の手段を提供してもよい。例えば、ユーザはAutoToken(登録商標)キー435(図4)を選択することによって、AutoToken(登録商標)関数を呼び出す。AutoToken(登録商標)関数は、ユーザにユーザ式領域440にユーザが入力するユーザ式を促す。
【0039】
AutoToken(登録商標)関数は、それぞれローカル式及びリモート式と称される2つの式を自動的に生成する。ローカル式及びリモート式の各々は、それらが演算式を形成する限り、ランダムに選択されてランダムに命令されてもよい変数、定数及び演算子を含む。変数、定数及び演算子は、ユーザに提示される変数及び管理プロセスによって提供される演算子の配列からの変数を含んでもよい。ローカル式とリモート式とはいかなる複雑さ及び長さであってもよい。さらに、ローカル式はユーザによって入力されるユーザ式の結果を与えられる結果変数を含むがリモートユーザ式はユーザ式自体を含む、ということ以外は概して同じである。
【0040】
リモート式は認証システムにより指定されるいかなる場所に記憶されてもよい。そして、ローカル式はユーザ近辺の場所に記憶されてもよい。1つの実施例では、ローカル式は、ユーザによって指定されるかまたは選択されるいかなる場所で記憶されてもよい。
【0041】
ローカル式は、異なる場所から、装置、サービス、アプリケーションまたは機能にアクセスすることにおいて使用するために持ち運びできるものでもよい。例えばローカル式は、磁気、光学、半導体、または他の適当な媒体などのいかなる種類の持ち運び可能な媒体上にローカル式を記憶することを含むといった可搬性があるように記憶されてもよい。ローカル式は、(例えば後述する図5の247の)ローカル式を記憶してアクセスする、フロッピー(登録商標)ディスク、コンパクトディスク、フラッシュメモリーカード、 USBドライブ、またはいかなる適切な装置などに保存されてもよい。
【0042】
1つの実施例では、ローカル式は、必ずしも記憶されないが、ユーザによって使用のために別の場所に運ばれるか伝送されてもよい。
【0043】
AutoToken(登録商標)関数を実施したユーザに対する認証セッションは以下のように進む。ユーザは、装置、サービス、アプリケーションまたは機能へのアクセスを要求し、認証セッションが開始される。システムはユーザに変数の配列を提示し、ユーザは自分のユーザ式の結果を入力する。この時またはこの時点より前のいつでも、ローカル式が可搬性の媒体に記憶された場合、可搬性媒体がシステムに結合されてローカル式は認証システムによってアクセスされることが可能である。認証システムがローカル式の結果変数の位置に結果を挿入し、ローカル式の残りに変数の配列からの値を挿入し、ローカル式の結果を計算する。認証システムは、また、変数の配列からの値を、リモート式の残りだけでなくリモート式のユーザ式へ挿入し、リモート式の結果を計算する。
【0044】
認証システムは結果を比較し、それらが一致すれば、ユーザは、所望する装置、サービス、アプリケーション、または機能へのアクセスを許可される。
【0045】
なにかの理由のためにユーザのユーザ式が漏れた場合、ユーザは再びAutoToken(登録商標)関数を呼び出して、追加の支持リソースを要求することなしに新しいローカル式、リモート式及びユーザ式を生成して、安全なアクセスの継続を確保する。
【0046】
他の特徴として、認証システムは、通常、ユーザが他の関数内に関数を埋め込んでユーザ式の安全性を拡張することを可能にする。例えば、ユーザ式はA+(AVE(AVE B+C+(AVE D+E+F))+G+H)を含んでもよい。特別な関数が用いられて、配列365からの変数に割り当てられた値に基づいて、ユーザ式内でダミーのキャラクタを埋め込んでもよい。この関数は、「セットされた」関数として指定されてもよい。セットされた関数を用いた典型的なユーザ式は、
(set Z,1)[ユーザ式]
であってもよい。
【0047】
変数Zが値5を割り当てられる配列では、ユーザ式の結果の最初の値を入力する前に5つのダミーのキャラクタをタイプしてもよい。このように、いかなる数のダミーキャラクタが、ユーザ式の結果内のいかなる位置に挿入されてもよい。
【0048】
付加的な安全の特徴として、ユーザ式が、配列365の変数に割り当てられた値を用いて、秘密のフレーズの特定の言葉の中で、特定の文字を指定してもよい。例えば、ユーザは自分たちの秘密のフレーズを「the dog is lazy」と決定してもよく、ABCDというユーザ式を決定してもよい。自分たちのユーザ式を構築するときに、ユーザはユーザ式領域440へ自分たちの秘密のフレーズ及び自分たちのユーザ式を指示するコマンドをタイプしてもよい。
【0049】
替わりとして、非数学的関数420は、ユーザが指示を選択することを可能にする関数を含んでもよい。認証の間、配列が提示されてもよい。例えば、Aが値31を割り当てられ、Bが値14を割り当てられ、Cが値21を割り当てられ、Dが値13を割り当てられる。A=31に対するフレーズに配列の値を用いることは、最初の言葉の3番目の文字を生じ、B=14は第4の言葉の最初の文字を生じ、C=21は第1の言葉の第2の文字を生じ、D=13は3番目の言葉の第1の文字を生じる。このようにして、ユーザはELHIを打ち込む。配列及びフレーズの秘密の性質を与えられると、この種の結果を解析する試みは、たぶん失敗するだろう。
【0050】
認証システムは、ユーザ式内でリセット関数を提供することによって、より大きな安全手段を提供してもよい。このリセット関数は、ユーザに提示される変数の配列をリセットするために働く。例えば、認証セッションの一部として、図3に示す変数の配列がユーザに提示される。ユーザは、配列を調べて、ユーザ式の第1の変数の値を認識して、第1の変数を入力する。第1の変数を入力した後に、リセット関数が、例えば、ユーザ式内の命令によって、またはコマンドをタイプすることによって起動される。そして、値及び変数が変更されて、ユーザは新しい配列を提示される。ユーザはユーザ式を利用し続けて、新しい配列から式の次の変数の値を認識する。ユーザが全ての値を認識して、ユーザ式の結果を計算して入力すると、ユーザは所望するようにアクセスを許可される。
【0051】
リセット関数を用いているユーザ式の例は、
A||B||<reset>C
であってもよい。ここで、変数Aと関連する値が、Bと関係する値と連結され、変数の配列がリセットされて、AとBとの連結は変数の新しい値Cに連結される。
【0052】
リセット関数は、ユーザ式のいかなる位置に挿入されてもよく、ユーザ式の1つ以上の場所で挿入されてもよいということが理解されるべきである。リセット関数は様々な方法により起動されてもよい。例えば、特定のキーを押すことへの応答または値が入力された後に自動的にである。
【0053】
図4の管理画面を参照すると、リセット関数は、式ビルダーの一部としてまたはリセット関数を挿入するための順を追った方法をユーザに提供する「ウィザード」として、ユーザに提示されてもよい。
【0054】
上記したように、リセット関数は、ユーザに提示される変数の配列をリセットするために機能する。このことは、配列の変数に対する新しい値を再生するか、変数の場所を変更するか、またはその両方の組合せという形をとることができる。リセット関数は、式ビルダーまたはウィザード処理の間にユーザによって与えられる種子数または変数に基づく式を用いる新しい配列を生成してもよい。変数種子は、ユーザに提示される変数の配列からの変数であってもよい。
【0055】
このように、リセット関数は、本発明に高い水準の安全性を提供する。例えば、ネットワークされた環境において、デスクトップコンピュータとサーバーとの間の通信が妨害されると、変数の配列についてのデータが抽出されるかもしれない。例えば、ある人は、妨害されたデータから変数の配列を、失敗はするが引き出そうとするかもしれない。リセット関数は、外部コミュニケーションを用いずに、局所的に変数の配列をリセットするために働く。よって、通信を阻止することによって変数の配列を引き出す努力は役に立たなくなる。なんとなれば、新しい変数の配列が生成されて、リセットまたは新しい変数の配列と関係する通信がないからである。
【0056】
再び図1を参照すると、システム100はユーザインタフェース110及び制御装置115を含むデスクトップコンピュータであってもよい。制御装置115は、1つ以上のプロセッサ120を含んでいてメモリ125から認証プログラム135を実行し、また、情報、データ及びプログラムを記憶するための記憶装置130を含んでいてもよい。制御装置115は、他の装置と通信するためのインタフェースも含んでいてもよい。ユーザインタフェース110は、情報をユーザに提示する表示装置140と、情報、質問、応答及びコマンドを入力するための例えばキーボード及びポインティングデバイスなどの1つ以上の入力装置145とを含んでいてもよい。
【0057】
プロセッサ120は、認証プログラム135の制御下で認証サービスを提供し、認証で認証されたユーザがサービス150にアクセスするかまたは利用することを可能にしてもよい。本実施例において、サービス150は局所的なサービスであってもよい。即ち、デスクトップコンピュータ100の範囲内に存在してもよい。サービス150は、プロセッサ120またはシステム100のユーザがアクセスを要求できるいかなる装置、サービス、アプリケーションまたは機能であってもよい。例えば、サービス150は、データ処理システム、コンピュータを利用したサービス、コンテンツ配信サービス、データベース、ファイルシステム、その他であってもよい。
【0058】
演算の間に、ユーザは、制御装置115を介してサービス150にアクセスしようとしてもよい。制御装置115は、上記したような認証セッションを開始して、ユーザが有資格者であるか否か、許可を有するか否か、または一般にサービス150にアクセスすることを許されているか否か判断する。ユーザが適当な資格証明書、即ち、ここで説明したようなユーザ式へ割り当てられた値についての適当なアプリケーションを提供する場合、制御装置115はサービス150へのアクセスを許可する。
【0059】
図5は、分散型システム500として示される本発明の別の実施例を示す。システム500は、企業または会社のワイドエリアネットワークまたはローカルエリアネットワークの一部であってもよく、一般的に、ユーザインタフェース210、制御装置215、及び通信ネットワーク225によって接続されたアプリケーションまたはサービス220を含む。ユーザインタフェース210は、通常、ローカルのコンピュータ機器230の一部であって、制御装置215及びサービス220は通常、コンピュータ機器230から離隔している。ローカルのコンピュータ機器230は、記憶装置245に記憶されたプログラム240を実行する1つ以上のプロセッサ235を含んでいてもよい。コンピュータ機器230は、また、ローカル式を記憶するための外部の、着脱可能な記憶装置247を含んでいてもよい。ユーザインタフェース210は、ユーザに情報を表示する表示装置250と、情報、質問、応答及びコマンドを入力するための例えばキーボード及びポインティングデバイスなどの1つ以上の入力装置255とを含んでいてもよい。
【0060】
制御装置215が認証サーバとして働いてもよく、1つ以上のプロセッサ260及び認証処理及びセッションを制御するプログラムを記憶する記憶機能265を含んでいてもよい。認証サーバとして、制御装置215はコンピュータ機器230またはコンピュータ機器230のユーザを認証するために働いてもよい。認証で制御装置215が作動してコンピュータ機器230にサービス220を提供するかまたはコンピュータ機器230がサービス220にアクセスすることを可能にする。制御装置230も、記憶設備265に記憶された指示又はプログラムの制御下でシステム200の構成要素の間のトラフィックを指示するために働いてもよい。制御装置215はまた、記憶設備265の中でコンピュータ機器230に対する記憶容量を提供してもよい。認証サーバとして、制御装置215は他のコンピュータ機器2751・・・275nを認証し、認証時に他のコンピュータ機器2751・・・275nにサービス220及び他のサービス2701・・・270nへのアクセスを提供してもよい。
【0061】
本実施例では、認証方法及びセッションを制御するプログラムが、記憶装置245及び記憶設備265の間で分散されてもよい。認証方法及びセッションの一部は、それぞれ記憶装置245及び記憶設備265に記憶されたプログラムの制御下でプロセッサ235及び260によって実施されてもよい。
【0062】
サービス220は、コンピュータ機器230またはコンピュータ機器230のユーザがアクセスを要求できるいかなるアプリケーションまたはサービスであってもよい。例えば、サービス220は、データ処理システム、コンピュータを利用したサービス、コンテンツ配信サービス、データベース、ファイルシステム、その他であってもよい。サービス220は、コンピュータ装置230または制御装置215内に存在するか、またはシステム200内でまたはシステム200のいかなる構成要素と結合したいずれかに存在してもよい。
【0063】
通信ネットワーク225は、例えばインターネット、一般加入電話網(PSTN)、無線ネットワーク、有線ネットワーク、仮想プライベートネットワーク(VPN)、その他などの通信に適しているいかなるリンクまたはネットワークを含んでもよい。通信は、X.25、ATM、TCP/IP、その他を含むいかなる適切なプロトコルを用いて実施されてもよい。
【0064】
演算の間に、ユーザはサービス220にアクセスしようとするかもしれない。制御装置215は、試みられたアクセスを監視するかまたは報告される。例えば、制御装置215は、記憶設備265に記憶されたプログラムの制御下でサービス220にアクセスしようとする全ての試みを監視して阻止する。別の例として、サービス220が、全てのアクセスの試みを、処理のために制御装置215へ自動的に転送してもよい。サービス220へのアクセスを制御するために制御装置215を用いるいかなる他の適切な方法が実施されてもよい。
【0065】
制御装置215は、認証セッションを開始して、ユーザが有資格者であるか否か、許可を有するか否か、または一般的にサービス220にアクセスすることが許されているか否かを判断する。制御装置215は、データ及びコマンドをコンピュータ機器230に与えて、表示250上に変数の配列を表示し、ユーザにユーザ式の結果を与えるように促す。コンピュータ機器は、結果を制御装置215へ送信する。制御装置215も、ユーザ式及び変数の配列からの値を用いて結果を計算する。送信された結果と制御装置215によって計算された結果が一致する場合、制御装置215はサービス220へのアクセスを許可する。
【0066】
本実施例では、ユーザが上記したようなAutoToken(登録商標)関数を実施するときに、ローカル式が外部の着脱可能な記憶装置247に記憶されてもよい。ローカル式における結果変数の代わりにユーザ式の結果を挿入し、ローカル式の残りへ変数の配列からの値を挿入し、ローカル式の結果を計算することを含むローカル式に関する演算が、コンピュータ機器230上で動作しているクライアントプログラムによって実施されてもよい。リモート式の残りだけでなく、リモート式内のユーザ式へ変数の配列からの値を挿入し、リモート式の結果を計算することを含むリモート式に関する演算が、制御装置215上のサーバプログラムによって実施されてもよい。
【0067】
図6は、電子商取り引きまたはe−コマース用の分散型システム600として示される本発明の別の実施例を示す。システム600は、インターネットに基づくものであってもよく、共通の通信媒体としてワールドワイドウェブを用いてもよい。システム600は、通常、先に述べた実施例の全ての特徴を提供し、多くのユーザ6101・・・610n、制御装置620、及び多くのアプリケーションまたはサービス6501・・・650nを含む。ユーザ6101・・・610n、サービス6501・・・650n、及び制御装置620は、通常、インターネット660によって接続されている企業体などの独立した事業体を示す。例えば、ユーザ6101・・・610nはサービスにアクセスする個人であってもよいし、またはプログラムの制御下でサービスにアクセスするコンピュータ機器であってもよい。1つの実施例では、ユーザ6101・・・610nは料金を払って1つ以上のサービス6501・・・650nにアクセスしてもよく、制御装置620が作動して認証を介してかかるアクセスを制御する。サービス6501・・・650nのオペレータが順にアクセス及び認証サービスに対して制御装置のオペレータに料金を払ってもよい。ユーザ、サービスオペレータ、及び制御装置のオペレータの間の他のビジネスの配置も意図される。制御装置620が1つ以上のプロセッサ425を含んで、ユーザ認証を制御してサービス6501・・・650nにアクセスするプログラムを実施する。制御装置620が作動してユーザ6101・・・650nを認証し、認証されたユーザに1つ以上のサービス6501・・・650nを提供する。サービス6501・・・サービス650nは、ユーザ6011・・・610nがe−コマース取引を含むアクセスを要求するいかなるサービスを含んでもよい。例えば、サービス6501・・・650nは、商品購買システム、データ処理システム、コンピュータを利用したサービス、テキスト、オーディオまたはビデオその他を配信するコンテンツ配信サービス、インターネットなどのネットワークを介しての全ての商取引への参加型を含んでもよい。
【0068】
システム600において、1人以上のユーザ6101・・・610nが、サービス6501・・・650nに規定通りにアクセスしてもよい。制御装置620は、試みられたアクセスを監視するかまたは報告される。例えば、制御装置620はサービス6501・・・650nのいずれかにアクセスする全ての試みを監視し防ぐことができる。別の例では、サービス6501・・・650nが全てのアクセスの試みを、処理のための制御装置620へ自動的に送信するか、そうでなければ、試みられたアクセスについて制御装置620に報告してもよい。
【0069】
それに応じて、制御装置620は各々のユーザ610と認証セッションを開始し、当該ユーザが有資格者であるか否か、許可を有するか否か、または一般的に1つ以上のサービス6501・・・650nにアクセスすることを許可されているか否かを判断する。ユーザ610が適当な資格証明書、即ちここで記載されているようなユーザ式の適当な結果を与える場合、制御装置620は所望のサービスまたは複数のサービスへの接近を許可する。
【0070】
別の実施例では、ユーザ610が、サービスへのアクセスが1回限りで許可される1つ以上のサービス6501・・・650nにアクセスしようと試みてもよい。制御装置620は、試みられたアクセスを報告されるかまたは積極的に監視する。それに応じて、制御装置620がユーザ610との認証セッションを開始する。プログラムまたはオペレータであってもよい管理者は、ユーザ610へ1回の使用に対してだけ有効であるユーザ式を送信する。ユーザ610は1回限りのユーザ式の結果を入力し、通常、1つ以上のサービス6501・・・650nにアクセスすることが許可される。
【0071】
図7は、例えばeメールなどのメッセージの一部として送信されるデータの安全を確保する本発明の実施例を利用するシステム700を示す。システム700は、本発明の認証システム710を利用するメッセージ発信者705、受信者715、及び通信ネットワークを含む。発信者705及び受信者715の両方は、1つ以上のプロセッサ、記憶装置、及びメッセージ転送及び本発明による認証動作を支援するプログラムを含む。発信者705は、例えばeメールなどのメッセージを作成する。それは発信者が安全確保することを望むデータを含む。かかるメッセージ810のブロック図が図8に示される。データ820はメッセージの一部またはメッセージに添付されたファイルとして含まれてもよい。認証システム710は、メッセージ810及びデータ820を有する包袋825を含み、包袋825は、認証セッションを開始して受信者715が適当な資格証明書を生成しなければデータ820へのアクセスを阻止する。次にメッセージは、例えば標準のeメールプロトコルを用いて、受信者715へ送信される。
【0072】
受信で受信者715はメッセージを開こうとする。包袋は認証セッションを開始して、図3に示す配列を表示する。発信者に対する受領通知も生成されて、それは発信者705に対して開始されるべき同じ認証セッションを生じる。
【0073】
発信者705は、発信者のユーザ式の結果を判断し、次に、通常メッセージを送信するために用いられる方法と異なった方法を介して結果を受信者715へ送信する。受信者が結果を入力し、正しければ、包袋825はデータ820へのアクセスを許可する。一旦データが閉じられると、認証セッションは終了する。メッセージを開く試みがなされる度に、別の認証が新しい配列から始まる。このようにして、配列は変数に割り当てられる新しい値を含んで、発信者のユーザ式を適用した結果を再び判断することを発信者705に要求する。従って、受信者715が再びメッセージを開こうとするか、または別の人にメッセージを転送しようとすると、ユーザ式の前の結果はもはやメッセージを開くために演算可能でなく、発信者705に報告されてもよい。
【0074】
前述の説明が本発明を説明するだけであるということが理解されるべきである。様々な変化形が、本発明から逸脱することなく、当業者によって工夫され得る。従って、本発明は添付された請求項の範囲内にあたる全てのかかる変化形を包含することを意図する。
【図面の簡単な説明】
【0075】
【図1】本発明によるユーザ認証システムの1つの例を示す。
【図2】本発明に関係する演算のフローチャートを示す。
【図3】ユーザ認証システム用のユーザインタフェース画面の例を示す。
【図4】ユーザ認証システム用の管理画面の例を示す。
【図5】企業ネットワークにおいて実施される本発明を示す。
【図6】電子商取り引きまたはeコマース用分散型システムにおける本発明の別の実施例を示す。
【図7】メッセージによって送出されるデータを守る本発明の実施例を示す。
【図8】典型的なメッセージのブロック図を示す。

【特許請求の範囲】
【請求項1】
ユーザ認証方法であって、
ユーザ式の形で認証キーを生成するステップと、
各々に値が割り当てられた変数の配列をユーザに提示するステップと、
前記ユーザ式の一致する変数に前記割り当てられた値を当てはめて第1の結果を計算するステップと、
前記第1の結果が前記ユーザ式の別個で独立した計算についての第2の結果に一致する場合に前記ユーザを認証するステップと、
を含む方法。
【請求項2】
前記変数が文字を含むことを特徴とする請求項1記載の方法。
【請求項3】
前記変数の配列がアルファベット順の文字を含むことを特徴とする請求項1記載の方法。
【請求項4】
前記割り当てられた値が数値を含むことを特徴とする請求項1記載の方法。
【請求項5】
前記割り当てられた値がランダムに生成される数値を含むことを特徴とする請求項1記載の方法。
【請求項6】
前記変数が10×10のマトリクスに配置されていることを特徴とする請求項1記載の方法。
【請求項7】
前記ユーザにユーザ式を生成する助けを提供することを含む請求項1記載の方法。
【請求項8】
前記ユーザ式が1つ以上のカスタム演算子を含むことを特徴とする請求項1記載の方法。
【請求項9】
前記1つ以上のカスタム演算子は、ユーザ式変数と関連付けられて、前記関連付けられた変数からオフセットされた前記配列の変数からの値を当てはめる関数を含むことを特徴とする請求項8記載の方法。
【請求項10】
前記ユーザ式は、前記ユーザ式で用いる演算子を含む1つ以上の関数を含むことを特徴とする請求項1記載の方法。
【請求項11】
請求項1記載の方法であって、
前記第1の結果を与えられる変数を有するローカル式と前記ユーザ式を有するリモート式とを生成するステップと、
前記ローカル式の計算が前記リモート式の計算と一致する場合に前記ユーザを認証するステップと、
を含む方法。
【請求項12】
前記ローカル式及び前記リモート式が、ランダムに選択されて指示される少なくとも1つの変数、定数及び演算子を含むことを特徴とする請求項11記載の方法。
【請求項13】
前記ローカル式が可搬型であることを特徴とする請求項11記載の方法。
【請求項14】
前記ローカル式の前記計算が、ローカルコンピュータ機器によって実施され、前記リモート式の計算が、前記ローカルコンピュータ機器から離隔した制御装置によって実施されることを特徴とする請求項11記載の方法。
【請求項15】
前記第1の結果がダミーのキャラクタを含むように前記ユーザ式が構築されることを特徴とする請求項1記載の方法。
【請求項16】
前記ユーザ式が、前記配列の変数に割り当てられた値を利用して、秘密のフレーズ内の特定の文字を指示することを特徴とする請求項1記載の方法。
【請求項17】
前記ユーザ式が、起動時に前記ユーザに新しい配列を提示するリセット関数を含むことを特徴とする請求項1記載の方法。
【請求項18】
認証で、前記ユーザがローカルサービスにアクセスすることを許可されることを特徴とする請求項1記載の方法。
【請求項19】
前記ユーザに前記変数の配列を提示することがローカルコンピュータ機器によって実施され、前記ユーザ式の前記別個で独立した計算が前記ローカルコンピュータ機器から離隔した制御装置によって実施され、前記ユーザは認証でサービスにアクセスすることを許可されることを特徴とする請求項1記載の方法。
【請求項20】
前記ユーザ、サービス及び制御装置が、ネットワークを介して商取引に参加している企業体であることを特徴とする請求項19記載の方法。
【請求項21】
請求項1による認証セッションを開始する包袋を用意するステップと、
前記包袋にデータとともにメッセージを封入するステップと、
メッセージ受信者に対する第1の認証セッションとメッセージ発信者に対する第2の認証セッションとをメッセージを開こうとする試みで開始するステップと、
前記第2の認証セッションに起因するユーザ式を判断するステップと、
前記結果を前記第1の認証セッションに与えるステップと、
認証で、前記受信者に前記メッセージ及びデータにアクセスすることを許可するステップと、
をさらに含む請求項1記載の方法。
【請求項22】
ユーザ認証システムであって、
ユーザ式と、
各々に値が割り当てられた変数の配列と、
ユーザにより入力される、前記変数の配列に関係付けられた前記値を前記ユーザ式の一致する変数に当てはめた第1の結果と、
前記ユーザ式を用いて別個で独立した計算を実施して第2の結果を取得し、前記第1の結果が前記第2の結果と一致する場合にユーザを認証する回路と、
を含むシステム。
【請求項23】
前記変数が文字を含むことを特徴とする請求項22記載のシステム。
【請求項24】
前記変数の配列がアルファベット順の文字を含むことを特徴とする請求項22記載のシステム。
【請求項25】
前記割り当てられた値が数値を含むことを特徴とする請求項22記載のシステム。
【請求項26】
前記割り当てられた値がランダムに生成された数値を含むことを特徴とする請求項22記載のシステム。
【請求項27】
前記変数が、10×10のマトリクスで配置されることを特徴とする請求項22記載のシステム。
【請求項28】
前記1つ以上のカスタム演算子は、ユーザ式変数と関連付けられて前記関連付けられた変数からオフセットされた前記配列の変数からの値を当てはめる関数を含むことを特徴とする請求項22記載のシステム。
【請求項29】
前記ユーザ式が前記ユーザ式において用いられる演算を含む1つ以上の関数を含むことを特徴とする請求項22記載のシステム。
【請求項30】
前記第1の結果を与えられる変数を有するローカル式の結果を記憶して計算するローカルコンピュータ機器と、
前記ユーザ式を有するリモート式の結果を記憶して計算し、前記ローカル式の前記結果が前記リモート式の前記結果と一致する場合に前記ユーザを認証する、前記ローカルコンピュータ機器から離隔している制御装置と、
を含む請求項22記載のシステム。
【請求項31】
前記ローカル式及び前記リモート式が、ランダムに選ばれて指示される少なくとも1つの変数、定数及び演算子を含むことを特徴とする請求項30記載のシステム。
【請求項32】
前記ローカル式が可搬型であることを特徴とする請求項30記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2007−516512(P2007−516512A)
【公表日】平成19年6月21日(2007.6.21)
【国際特許分類】
【出願番号】特願2006−535537(P2006−535537)
【出願日】平成16年10月4日(2004.10.4)
【国際出願番号】PCT/US2004/032507
【国際公開番号】WO2005/038573
【国際公開日】平成17年4月28日(2005.4.28)
【出願人】(506128156)グリッド データ セキュリティー インコーポレーテッド (1)
【Fターム(参考)】