説明

コミュニケーション装置、認証システム及び方法、並びにキャリア媒体

【課題】認証システム及び方法を提供する。
【解決手段】ユーザーと関連付けられたユーザー識別コードを保存し;上記ユーザー識別コードを含むユーザーによる少なくとも1つの入力に基づいてパスコードを作成する複数の関数を生成し;少なくとも1つの関数を保存し、該関数をユーザーに関連付け;上記ユーザー装置上で上記少なくとも1つの関数を実行するアプリケーションを生成し;上記アプリケーションを上記ユーザー装置に供給し;トランザクションと関連付けられたトランザクションコードを生成し、該トランザクションコードを上記アプリケーションへ供給し;上記ユーザー装置から上記トランザクションのためのパスコードを受け取り、受け取ったパスコード、上記ユーザーと関連付けられた上記関数、上記ユーザー識別コード、及び、上記トランザクションと関連付けられた上記トランザクションコードに基づいて上記トランザクションを認証する認証方法。

【発明の詳細な説明】
【技術分野】
【0001】
一般に本発明はコミュニケーションシステムにおける識別又はパスワード認証に関する。特に本発明は1つまたはそれ以上のユーザー装置とコミュニケーションシステムとを有するシステムに関する。該コミュニケーションシステムは、サービスを提供するサーバーを含むことができる。そのようなシステムにおいてクライアント装置は、パスワードと他の安全手段とを用いて、該コミュニケーションシステムと共に認証を実行する。本発明は、トランザクションが個人対個人である他のサービスのユーザーを認証するのにも使用できる。企業間の適用もまた想定される。
【背景技術】
【0002】
トランザクションやコミュニケーションネットワーク上のその他のコミュニケーションを含め多くの目的で、当面、パスワードは最も広く一般に認められた認証方法を提供するだろう。パスワードベースの認証は、ネットワークや装置技術に依存せず、容易に利用可能である。
【0003】
パスワードは、認証機械又は人への伝送時の傍受(「スヌーピング」として知られる)に対して脆弱なことがある。もしパスワードが、電気信号として、ユーザーのアクセスポイントとパスワードデータベースをコントロールする中央システムとの間の安全でない物理的な配線上で運ばれたら、通信傍受方法によるスヌーピングにさらされる。もしそれがインターネット上で運ばれるとしたら、ログオン情報を含むパケットを見ることのできる誰でもがスヌープピングできるし、察知される可能性は極めて低い。ケーブルモデムは、DSLやダイアルアップ接続より、スヌーピングに対して脆弱である。イーサーネットは、特にネットワークのハードウェア及び配線の選択に依存して、スヌーピングできたり、できなかったりである。ある組織では、ユーザーがケーブルインターネット接続を利用し始めてから、盗難パスワードの大幅な増加に注意してきた。
【0004】
インターネット上送られるパスワードの傍受の危険性は、多くのインタネートブラウザに組み込まれているトランスポート層セキュリティ(TLS、以前はSSLと呼ばれていた)機構によって軽減されうる。多くのブラウザは、TLS使用時に、閉じた鍵のアイコンを表示する。
【0005】
不幸なことに、保存されたハッシュ化パスワードとハッシュベースのチャレンジ・レスポンス認証との間には対立がある;後者はクライアントに対し、彼が共有秘密(パスワード)が何であるかを知っていることをサーバーへ向けて証明するよう要求し、これをするために、サーバー側は保存された形から該共有秘密を得ることができる必要がある。遠隔認証をするUnix(登録商標)型のシステムでは、共有秘密はハッシュ形式となり、パスワードがオフライン推測攻撃にさらされるという深刻な欠点がある。
【0006】
パスワードを伝えるよりむしろ、パスワード認証鍵合意システムはゼロ知識パスワード証明を行いうる。それはパスワードを露呈することなくパスワードについての知識を証明する。さらに一歩進んで、パスワード認証鍵合意のための拡張されたシステム(例えば、AMP、B−SPEKE、PAK−Z、SRP−6)は、ハッシュベース方式の該対立及び欠点をさける。ある拡張されたシステムは、クライアントがパスワードについての知識をサーバーに対して証明するのを許す。ここで、そのサーバーはハッシュ化されたパスワード(又は必ずしもハッシュ化されているわけではないパスワード)を知っているだけであり、ハッシュ化されていないパスワードがアクセスするのに必要とされる。
【0007】
二要素認証(TFA)は、アイデンティティと特権とを立証するための2つの独立した手段を必要とする認証技術である。これは、システムへのアクセスを得るために単に1つの「要素」(例えば、固定パスワードについての情報)のみを必要とする従来のパスワード認証とは対照的である。
【0008】
上記二「要素」とは、一般的に次の2つである。
・「あなたが知るもの」 例えば、パスワードやPINなど。
・「あなたが持つもの」 例えば、クレジットカードやハードウェアトークンなど。
従来、二要素認証はハードウェアトークンを必要とし、これは配布するのに費用が高い。
【0009】
特許文献1は、安全な情報伝達のための方法及びシステムを開示している。クライアントはサーバーに対し、要求、少なくとも一つのユニークな識別子、及び、暗号化キーを送る。サーバーはその要求に対する返事を生成し、その返事を送る先の携帯装置を(該少なくとも一つのユニークな識別子に基づいて)識別する。その返事は、上記暗号化キーを使用して暗号化される。その暗号化された返事は、サーバーから識別されたクライアント装置へ送られる。上記の要求は、OTPに関する要求であることができる。
【0010】
特許文献2は、認証サービスを開示し、コミュニケーションシステムにおける効果的パスワード配達を提供することを目的としている。開示された技術は、少なくとも一つのパスワードを計算するための鍵情報をコミュニケーションネットワークシステムから安全なチャンネルを通じてユーザー設備によって受け取ることと、少なくとも一つのパスワードを該鍵情報に基づいてユーザー装備にて生成することと、該少なくとも一つのパスワードを用いてユーザー装備とコミュニケーションネットワークシステムとの間で認証を行うこととを含む。モバイルネットワークにおける新しいサービスを開始するに向けて認証がボトルネックになることなしに、パスワードセキュリティと管理とを最大可能なユーザー基盤を達成できるように改良することが意図である。最近モバイルオペレーターのWLAN(ワイヤレスローカルエリアネットワーク)及びxDSL(デジタルサブスクライバーライン)認証、IMS(IPマルチメディアサブシステム)とPoC(携帯電話によるプッシュ・ツー・トーク)サービスのアクセス独立使用では、認証、アクセスネットワーク及び端末技術の間の強い結合がある。従来のhttpのダイジェストパスワード配信が引き起こすSMS(ショートメッセージサービス)負荷を最小にするために、シードとハッシュの方法が使われる。コミュニケーションネットワークシステムにおける統一体(例えば端末管理サーバーを供えたオペレーター自身のサービス管理システム)はシード及び場合によっては(新たな)秘密鍵を作り、それ/それらをユーザー装備又は端末へSMSを通じて送る。生成されたパスワードの数が設定可能な閾値に到達した後又は時間切れ後に、該サービス管理システムは、新しいシード(及び秘密鍵)を生成し、端末へ送る。ハッシュ関数の適用前に契約者にPINコードの入力を要求することは、この機構の安全性を高める。異なるシード、秘密鍵、及び/又は、ハッシュ関数を適用することにより、複数のパスワードドメインを生み出すことができる。
【0011】
特許文献3は、オンライントランザクションに対して認証又は承認を与えるのにPSTNを使用するシステム及び方法を開示している。ユーザーのアイデンティティを立証するために、2つの異なるネットワーク上の事実上同時の伝送を使用する。特許文献4は、ランダムに生成された認証秘密と個人秘密との結合に基づくユーザー認証を開示している。
【0012】
特許文献5は、ユーザー認証を開示している。このユーザー認証では、ユーザー式の形式で鍵を作成し、変数の用意(各変数に数値が割り当てられる)をユーザーに提供し、その数値をユーザー公式における適合する変数に適用し、第一の計算結果を得る。もし、この第一の結果が別個独立にユーザー式によって計算された第二の計算結果と一致すれば、このユーザーは認証される。
【0013】
特許文献6は、秘密鍵と公開鍵との非対称な鍵のペアにおける公開鍵を、モバイルステーションから鍵管理コンピューターへ配布する方法を開示している。この方法は、共有の秘密を提供するために、安全なチャンネルによってOTPを鍵管理コンピューターからモバイルステーションへ伝えること、第一のコードと第二のコードとがそれぞれ、モバイルステーションと鍵管理コンピューターとによって計算されること、第一のコードと公開鍵とを鍵管理コンピューターに伝えること、第一のコードと第二のコードとを比較することによってユーザーの権限が確認されることを含む。
【0014】
特許文献7は、ユーザーのアイデンティティの認証について開示しており、それは、コミュニケーションネットワークやモバイルコミュニケーションチャンネル等の、2つの別々のコミュニケーションチャンネル使用する。特許文献8は、1)ユーザーが知るもの、2)ユーザーが持つもの、3)ユーザーの身体特性 のうちの2つ又は3つを通じたユーザー認証を開示している。
【0015】
特許文献9は、ワイヤレスコミュニケーションネットワークにおける認証を開示している。携帯装置と本部装置との間で秘密が共有される。携帯装置と本部装置とに同時にチャレンジを送り、その結果を比較することによって、携帯装置が遠隔装置に接続できるかどうかを遠隔装置が判定する。
【0016】
トランザクション認証ナンバー(TAN)は、金融取引を許可する一回使用のパスワードという形で、いくつかのオンライン銀行サービスにより利用されている。TANは、従来の単独パスワード認証に加えられる第2のセキュリティ層である。
【0017】
以下はTANが機能する様態の概要である:
1. 銀行はユーザーのためにユニークなTANの1セットを作成する。典型的には、50個のTAN(各文字列長さは8)がリストに印刷される。それは、通常のユーザーなら十分半年もつ。
2. ユーザーは最も近い銀行の支店からそのリストを受け取る。ユーザーは典型的には、パスポート、IDカード、又は同類の書類を提示して、彼/彼女を証明する。
3. 数日後、ユーザーは5桁のパスワードを、ユーザーの自宅住所宛ての手紙によって受け取る。ユーザーはパスワードを暗記し、その通知を破棄し、TANリストをPC付近の安全な場所に保管することを求められる。
4. 彼/彼女のアカウントにログオンするために、ユーザーはユーザー名とパスワードを入力しなければならない。これによりアカウント情報にアクセスすることができるが、トランザクションを進行する能力は無効になっている。
5. トランザクションを行うために、ユーザーはその要求を入力し、未使用のTANを入力することでそのトランザクションに「サイン」する。銀行は、提出されたそのTANを、ユーザーに対して発行したTANリストに照らして確かめる。もし一致していれば、そのトランザクションは進行される。もし一致していなければ、そのトランザクションは拒絶される。
6. 該TANは最早消費されたとして、如何なる更なるトランザクションに対しても認識されない。
7.もしTANリストが危険にさらされたならば、ユーザーは銀行に通知することにより、それをキャンセルできる。
【0018】
TANは、二要素認証として作用するが故に、追加のセキュリティを提供するものと考えられている。もしTANを含む物理的な書類が盗まれても、それはパスワード無しでは殆ど役に立たない。一方、もしハッカーがユーザーのパスワードを解読したとしても、彼らはTAN無しではトランザクションを進められない。
【先行技術文献】
【特許文献】
【0019】
【特許文献1】米国特許出願公開第2003/0204726号
【特許文献2】米国特許出願公開第2006/0059344号
【特許文献3】米国特許出願公開第2005/0245257号
【特許文献4】米国特許出願公開第2006/0036857号
【特許文献5】米国特許出願公開第2005/0114675号
【特許文献6】米国特許出願公開第2005/0069137号
【特許文献7】米国特許出願公開第2003/0172272号
【特許文献8】米国特許出願公開第2005/0268107号
【特許文献9】米国特許出願公開第2006/0094401号
【発明の概要】
【課題を解決するための手段】
【0020】
本発明は、ユーザー装置を有するユーザーに対してトランザクションを行う許可を与えるための認証システムを提供する。このシステムは、上記ユーザーと関連付けられたユーザー識別コードを保存する手段と;上記ユーザー識別コードを含むユーザーによる少なくとも1つの入力に基づいてパスコードを作成する複数の関数を生成する手段と;少なくとも1つの関数を保存し、その関数をユーザーに関連付ける手段と;上記ユーザー装置上で上記少なくとも1つの関数を実行するためのアプリケーションを生成する手段と;上記アプリケーションを上記ユーザー装置に供給する手段と;上記トランザクションと関連付けられたトランザクションコードを生成し、そのトランザクションコードを上記アプリケーションへ供給する手段と;上記ユーザー装置から上記トランザクションのためのパスコードを受け取り、その受け取ったパスコード、上記ユーザーと関連付けられた上記関数、上記ユーザー識別コード、及び、上記トランザクションと関連付けられた上記トランザクションコードに基づいて上記トランザクションを認証する手段とを含むことを特徴とする。一実施形態においては、ユニークなOTP関数がユーザーごとに使用され、その結果、極めて安全な認証手続となる。もしハッカーがOTP関数を傍受し解読できても、それは1ユーザーに影響を与えるにすぎない。たとえこれが起こったとしても、ユーザーのアカウントは尚も安全である。なぜなら、ユーザー識別コードなしでは、該関数は役に立たないからである。
【0021】
一実施形態では、上記複数の関数は、少なくとも1つの入力が残りの入力、該関数、及び、出力の情報から導くことができる対称的又は可逆な関数である。上記複数の関数のうち少なくとも2つが、機能的にユニークであってよい。該少なくとも2つの関数が異なるユーザーと関連付けられていてもよい。
【0022】
上記アプリケーションが、1つを超える上記関数を実行するためのものであることができる。上記システムは、上記関数のうちの1つを選択するために、上記アプリケーションへコントロールコードを送るように構成されることができる。上記ユーザー識別コード及び上記トランザクションコードは、上記関数への入力として使うことができる。
上記トランザクションコードは、上記トランザクションのために実行される上記関数のうちの1つを選択するために、使用されてもよい。
【0023】
前記複数の関数を生成する手段が、関数成分のライブラリーと、前記関数成分からランダムに選択して複合関数を提供する手段とを含むことができる。上記関数成分は、数学関数、数学演算、文字列処理、日付計算、ビット操作、コンピューター論理命令、コンピューター論理フロー、コンピューター論理条件、埋め込まれハードコードされた値、及び、データ構造処理からなる群より選ばれた成分を含むことができる。
【0024】
上記複数の関数を生成する手段は、該関数を検証する手段を含むことができる。該関数を検証する手段は、前に生成された関数の所定の選集との比較を行い、所定の重複レベルを超えていたら、当該生成された関数を拒絶することをできてもよい。一実施形態では、一束の関数における各関数がユニークである。
【0025】
上記少なくとも1つの関数を実行するための上記アプリケーションは、ユーザーインターフェースを提供することができる。
【0026】
上記アプリケーションを上記ユーザー装置に供給する上記手段が、上記ユーザー装置に電子メッセージを送る手段を含み、該メッセージがアドレスを含んで、そのアドレスから上記アプリケーションがダウンロードできる、ということが可能である。
【0027】
本発明はまた認証方法も提供する。該認証方法は、ユーザーと関連付けられたユーザー識別コードを保存し;上記ユーザー識別コードを含むユーザーによる少なくとも1つの入力に基づいてパスコードを作成する複数の関数を生成し;少なくとも1つの関数を保存し、その関数をユーザーに関連付け;上記ユーザー装置上で上記少なくとも1つの関数を実行するためのアプリケーションを生成し;上記アプリケーションを上記ユーザー装置に供給し;トランザクションと関連付けられたトランザクションコードを生成し、そのトランザクションコードを上記アプリケーションへ供給し;上記ユーザー装置から上記トランザクションのためのパスコードを受け取り、その受け取ったパスコード、上記ユーザーと関連付けられた上記関数、上記ユーザー識別コード、及び、上記トランザクションと関連付けられた上記トランザクションコードに基づいて上記トランザクションを認証することを含むことを特徴とする。
【0028】
従来、二要素認証はハードウェアトークンを必要とし、ハードウェアトークンは配布するのに費用が高い。本発明においては、二要素認証プロセスの第二の要素(「あなたが持つもの」要素)は、ワンタイムパスワード(OTP)を生み出すソフトウェアソリューションである。その名が示す通り、OTPは1つのトランザクション又は1セットを構成するトランザクションの組合せに対して有効なパスワードであり、次のトランザクションは別のOTPを必要とする。
【0029】
本発明の実施は如何なる便利な形態によってもよく、例えば、専用ハードウェア、又は、専用ハードウェアとソフトウェアとの混合を使ってもよい。本発明は特に、サーバー、ワークステーション又はラップトップコンピューターによって実行されるコンピューターソフトウェアとしての実施に適している。本発明は更にネットワークを含むことができ、それには任意のローカルエリアネットワーク又は広域ネットワーク、従来の地上波又はワイヤレスのコミュニケーションネットワークを含む。該システムは、汎用コンピューター、個人用デジタル補助装置(PDA)、携帯電話(例えばWAP又は3G準拠の電話)などの適切にプログラム可能な装置を含むことができる。本発明の様態は、プログラム可能な装置において実施可能なコンピューターソフトウェアを含む。該コンピューターソフトウェアは、従来の如何なるキャリア媒体を使用して該プログラム可能な装置に提供されてもよい。該キャリア媒体は、コンピューターコードを運ぶ、電気的、光学的、マイクロ波の、音の、又は無線周波の信号等の一時的キャリア媒体を含むことができる。そのような一時的媒体の一例は、インターネットなどのIPネットワーク上コンピューターコードを運ぶTCP/IP信号である。該キャリア媒体はまた、フロッピー(登録商標)ディスク、ハードディスク、CD ROM、磁気テープ装置、又は固体記憶装置などの、プロセッサーが読むことのできるコードを保存するための記憶媒体を含むことができる。
【0030】
ここで本発明は、より詳細に、そして、ほんの一例として添付された図面を参照して記述される。
【図面の簡単な説明】
【0031】
【図1】OTPの生成を表す流れ図である。
【図2】登録プロセスにおいて実行されるPIN決定ステップを表す流れ図である。
【図3】本発明の一実施形態の登録プロセスを表す流れ図である。
【図4】本発明のトランザクションプロセスを表す流れ図である。
【図5】本発明の一実施形態に従って稼動するシステムのボックス図である。
【図6】本発明の一実施形態のOTPアプリケーションジェネレーターの要素を示すボックス図である。
【図7】本発明の認証プロセスを示すボックス図である。
【発明を実施するための形態】
【0032】
図1から図4は、本発明の実施形態による認証方法のプロセスを表している。
【0033】
図1に示されているように、ワンタイムパスワード(OTP)は、秘密鍵の一例であるPINと、トランザクション特定コードの一例であるトランザクションナンバーとに基づいて、OTP関数によって生成される。トランザクションナンバーは、そのOTPがユーザー認証に使われるトランザクションを特定する。典型的には、例えば、特定のサービス又はインターネットサイトにアクセスするためにユーザーによって要求されたときに、トランザクションナンバーが、ユーザー又はユーザー装置に提供される。
【0034】
一実施形態では、ユーザー装置は少なくともSMS機能を有するタイプの携帯電話である。ユーザー装置は、下記の認証システムによって提供されるコンピュータープログラムを走らせることができる。コンピュータープログラム(ここでは、OTPアプリケーションと呼ぶ)は、どんな適切な方法でユーザーに提供してもよい。OTPアプリケーションは、ユーザー装置の購入前にユーザー装置にプリインストールされていてもよいし、要求によりユーザー装置に提供されてもよい。認証システムによってコントロールされているコミュニケーションシステム上の安全な場所からOTPアプリケーションをダウンロードするのは、便利な方法である。
【0035】
ユーザー装置にOTPアプリケーションがプレインストールされる場合には、該OTPアプリケーションが認証サーバーに登録される必要があってもよい。登録は、購入時にユーザー装置についてくる登録セキュリティコードを使って、便利に行うことができる。該セキュリティコードは、該OTPアプリケーション(故に、単数または複数のOTP関数)とその新しいユーザーとを関連付けるために、ユーザー識別の細目とともに、認証サーバーに供給されてもよい。
【0036】
ユーザー装置は、どんなコミュニケーション装置であってもよい。単独のコミュニケーションチャンネルを有するものでもよいが、現代的な装置は2以上のコミュニケーションチャンネルを有する傾向がある。同一装置上の複数のコミュニケーションチャンネルを許す。また、複数のコミュニケーションチャンネルが、認証プロセスのための何らかの情報を転送するための別の装置を用いることにより提供されてもよい。携帯電話の送受話器上で走ることができるJava(登録商標)アプリケーションを使って、本発明の実施形態が実施されうる。しかし、それは事実上いかなるコンピューターベースのプラットフォーム(PDA、セットトップボックス等)においても使用可能である。本発明のいくつかの実施形態では、インターネットユーザーの大多数が既に所有しているハードウェア装置である携帯電話を用いる。これは単に実行費用を大幅に下げるだけではなく、ユーザーが慣れている装置を使えるようにすることで、ユーザー体験を良くする。しかし、ユーザー装置には、適切なOTPアプリケーションプログラムを走らすことができ、認証システムから必要なトランザクションコードを受け取ることができる、いかなるコミュニケーション装置も含めることができる。
【0037】
この実施形態において、ユーザーは、秘密鍵の一例であるユーザー識別コードを割り当てられるか、又は、選択する。典型的には、ユーザー識別コードは(例えば、4桁の数字の)個人識別番号(PIN)である。安全性を向上するため、PINは登録の際にユーザーによって定義され、任意の長さであることができる。さらに、簡単のためにはPINは実際の数字であるが、この技術分野においてよく知られているように、英数字列を含む如何なるパスコードでも使用することができる。認証プロセスは、別の更なる認証ステップの一部として、又は、OTP関数への更なる入力として、1つを超える秘密鍵を使用することができる。秘密鍵は、登録プロセスの際、認証サーバーに伝達される。1つを超える秘密鍵があるときには、それらは異なった時に、異なったチャンネルを通じて認証サーバーに伝達されてもよい。例えば、OTPアプリケーションが携帯電話などの新しいユーザー装置にインストールされている場合には、ユーザー情報が、例えば、その電話を購入した店舗の端末から認証サーバーに伝達される。PIN又は他のユーザー識別コードは、続く登録プロセスの際に、ユーザーによって選択されうる。
【0038】
本発明の登録プロセスの一実施形態において、認証サーバーはユーザー装置からOTPを受け取り、OTP関数の逆を実行して、ユーザーによって選択されたPINを決定する(図2)。そのPINは、他のユーザー情報と共に保存され、特に当該ユーザーと関連づけられる。ユーザー情報は、例えば安全なサーバー上に、安全に保存されることが好ましい。その安全なサーバーは、認証サーバーであってもよい。
【0039】
この実施形態において、トランザクションコード又はトランザクションナンバーは、各トランザクションに対して生成される。この実施形態のトランザクションナンバーは、サーバー上に生成された乱数又は擬似乱数である。既知の乱数ジェネレーターは十分な乱数度で数を生成することができ、事実上、次に生成される数を予測することは不可能である。それゆえ、トランザクションナンバーは、暗号のように安全である。乱数ジェネレーターはハードウェアに組み込んでもよい。ハードウェアの乱数ジェネレーターは、物理的プロセスにより乱数を生成する機器である。そのような装置は、典型的には、熱雑音、光電効果、又は、その他の量子現象のような微細な現象に基づいている。量子ベースのハードウェア乱数ジェネレーターは、典型的には、該物理的プロセスの出力を巨視的な領域へ持ち込むための増幅器と、その出力をデジタル信号に変換する変換器とを有する。
【0040】
PINとトランザクションナンバーとは、OTP関数への入力である(図1を参照)。OTP関数はランダムに生成された複合関数であり、該複合関数は、一実施形態においては、数学関数などの多くの部分関数を含む。OTP関数の出力は、下記のようにPINとトランザクションナンバーとをOTPアプリケーションへの2つの入力として使用し、各トランザクション対しユニークなOTPである。2つの入力は、OTPアプリケーションへの最小の入力である。
【0041】
OTPアプリケーションの或る使用においては、1以上の入力が該関数又はアルゴリズムに入れられる。更なるユーザー情報(例えば、日付、社員若しくはアカウントナンバー、又は他項目のユーザー識別情報)を含む更なる入力があってもよい。また、別の実施形態においては、更なるコードが認証システムによってOTP関数に供給されてもよい。単に、単独のトランザクションコードが要るに過ぎないときでも、下記のようにOTP関数の振る舞いを変化させるために、更なるコードが供給されてもよい。
【0042】
ユーザーがトランザクションナンバーとOTPとに基づいて選択したPINを決定するために、登録(図3)の際、ユーザーと関連付けられたOTP関数の逆が使用される。先行技術においては、パスワード生成の安全性は、暗号化及び一方向性ハッシュ関数の使用によって具備されるが、この実施形態は代わりに、計算負荷の少ない可逆または対称的関数を使用する。安全性は、各ユーザーに対してユニークなOTP関数を供給することで備わる。この発明の実施形態は、トランザクションごとに、新しいOTP関数を許す。もちろん、この技術分野でよく知られているように、暗号化は安全性を向上させるために使用できる。
【0043】
一般に、各ユーザーに、ユニークなOTP関数が割り当てられる。これにより、例え、ハッカーがOTP関数を傍受し解読しても、それは単に1ユーザーにのみ影響するだけである。各トランザクション又はトランザクションの群ごとに、ユニークなOTP関数を生成することにより、安全性を更に向上させることができる。安全性と処理能力のバランスにより必要ならば、OTP関数は複数のユーザー又はユーザー装置に割り当ててもよい。ユーザー装置への分配のために、ユニークな関数が導出されるということが本発明の特徴である。本発明のシステムは、膨大な数のユニークな対称的関数を計算することができ、それらの有効性及びユニークネスが試験される。理論的には、該システムで使用されるそれぞれの関数はそれぞれ異なることができる。もちろん、要求される安全性のレベルに依存して、許容可能な量の関数の再使用があってもよい。例えば、もしユーザーの数が大変多いならば、関数の再使用のリスクが、許容できないほど安全性のレベルに影響することはない。さらに、もし関数が長い間使用されていないならば、特にもしそれが該システムにおいて現在使用されていないならば(つまり、すでにユーザーに割り当てられていないならば)、そのような関数は該システムによって拒絶される必要はないし、ユーザーへの供給のために、OTPアプリケーションに組み込まれてもよい。
【0044】
ユニークなOTP関数は、認証サーバーによって提供される「関数ジェネレーター」モジュールによって、一括処理で生成されてもよい。この実施形態では、関数ジェネレーターが、OTP関数、該関数の逆、及び、PINの入力及び該関数の表示のためのユーザーインターフェースを該関数に与えるコンピュータープログラム(OTPアプリケーション)を生成する。表示されたOTPは、(場合によっては別の装置を使って)登録又はトランザクションプロセスで使用することができ、あるいは、例えば銀行において、人対人のトランザクションにおいて使用できる。また、認証サーバーによる認証のために、OTP関数はユーザー又はクライアントデバイスから直接に、コミュニケーションシステムへと提供されてもよい。一括処理で生成されるOTP関数の数は、顧客の要求に合わせて調整することができる(認証システムが第3者へのサービスとして提供されている場合)。あるいは、最近のトランザクションのレベルに基づいて、自動調整するように設定できる。もし、該システムがその日に利用可能なOTP関数を使い果たしたら、特別に生成することができる。OTPアプリケーションのタイプは、そのソリューションが実装されようとしているプラットフォームに依存するだろう。携帯電話をベースとした実施では、例えば、コンピュータープログラムは、最近のどんな携帯送受話器での使用にも適しているJava(登録商標)アプリケーションの形式であることができる。Java(登録商標)非対応のユーザー装置については、他の適切なプログラム言語が使用できる。
【0045】
登録プロセス
登録プロセスの目的は、ユーザーにユニークなOTPアプリケーションを供給することと、彼らから彼らの選択したPINを得ることである。一実施形態においては、登録プロセスは次のステップを含む:
・ユーザーが、トランザクションを開始するために、コミュニケーションネットワーク又はクライアントサーバーに接触する。
・ユーザーは、トランザクションを進めるために、認証プロセスへの登録を求められる。
・ユーザーは、OTP関数を含むOTPアプリケーションを供給される。
・トランザクションナンバーが、認証システムによってOTPアプリケーションに供給される。
・ユーザーがPINを選択し、それをOTPアプリケーションに入れる。
・OTPアプリケーションは、PINとトランザクションナンバーとをOTP関数への入力として使用し、ユーザー又は直接に認証システムへ供給することができるOTPを生成する。
・OTPが認証システムに供給される。
・認証システムが、ユーザーと関連付けられたOTP関数の逆を用いて、トランザクションナンバーとユーザーによって供給されたOTPとを使用し、ユーザーのPINを確立する。
・サーバーが、ユーザーのPINを安全に保存する。これが、PINが保存される唯一の場所であるということに注意せよ。PINは、OTPアプリケーションによって保存されないし、いちどOTP関数が走ってOTPを生成したら、ユーザー装置のメモリーに留まらない。
【0046】
OTPは、OTPアプリケーションやトランザクションナンバーを送るのに使用されたものとは異なる別のコミュニケーションチャンネルを通じて、認証システムに供給されてもよい。例えば、携帯電話ベースの実施においては、OTPアプリケーションはインターネートのウェブサイト又はWAPサイトから得ることができ、トランザクションナンバーはSMSを通じてユーザーに送ることができる。一実施形態においては、ユーザーは、インターネットを通じて(場合によってはPC等の別の装置を使って)OTPを提出する。別のコミュニケーションチャンネルの使用は、事実上いちどに両方が危険にさらされることは有り得ないため、極めて安全である。
【0047】
複数のコミュニケーションチャンネルの使用は、ハッカーが同時に複数を侵害することが事実上不可能であるため、安全性を高める。たとえ、該プロセスの1つの要素がハッカーによって傍受され、解読され、又は奪われることがありえても、全ての要素が無くては、該システムは危険にさらされない。例えば、ワンタイムパスワードアプリケーションへのアクセスを得たハッカー(例えば、該アプリケーションが保存された携帯装置を入手するなどして)は、ユーザー識別コード無しには、該アプリケーションを使用できない。
【0048】
トランザクションプロセス
トランザクションプロセスの目的は、ユーザーが彼らのアカウントと関連付けられたPINを知っているかを確かめることによって、ユーザーの認証を成すことであり、また、それによって、そのトランザクションをユーザーに認めることである。一実施形態においては、基本的なトランザクションプロセスは、次のステップ(図4を参照)を含むことができる。
・トランザクション開始ステップに応じて、OTPアプリケーションにトランザクションコードが供給される。例えば、ユーザーは製品又はサービスをクライアントウェブサイトからオンラインで購入する。
・OTPアプリケーションはユーザーにPINなどの秘密鍵の入力を要求する。
・ユーザーはPINをOTPアプリケーションに入力する。
・OTPアプリケーションは、PINとトランザクションコードとをOTPを生成するために使用する。OTPは、ユーザー又は直接に認証サーバー若しくはクライアントウェブサイトなどのコミュニケーションネットワークの要素に供給される。
・ OTPは認証サーバーに供給される。これがトランザクションナンバーをユーザーに送ったのと同じコミュニケーションチャンネルによって送られるか否かは、要求される安全性のレベルに依存して実施ごとに設定可能である。例えば、携帯電話ベースの実施においては、トランザクションナンバーとOTPは両方ともSMSを通じて伝達される。あるいは、(場合によっては別の装置を使って)インターネットを通じてOTPを提出するようにユーザーに要求してもよい。
・認証サーバーは、このユーザーと関連付けられたOTP関数を使用し、登録時に保存されたPINと、このトランザクションに関してユーザー装置に送られたトランザクションナンバーとを使って、OTPを生成する。あるいは、サーバーは、逆OTP関数、受け取ったOTP、及びトランザクションナンバーを使用し、PINを比較する。または、保存したPINと受け取ったOTPとを逆OTP関数において使用し、結果のトランザクションナンバーと、そのトランザクションに関連付けられたトランザクションナンバーとを比較して、認証が達せられる。
・サーバーは、このOTPと、ユーザーによって供給されたものとを比較する。もし一致すれば、該トランザクションが完了することを許す。
【0049】
OTPが正しくないために、認証サーバーがユーザーを認めることができない場合には、該サーバーはエラーメッセージを促し、認証における更なる試みができるように新しいトランザクションコードが該アプリケーションに送られる。しかし、認証失敗を処理する他の仕組みが知られており、選択されるプロセスは、トランザクションのタイプ、実装プラットフォーム、及びその他の要因を含む状況に依存するだろう。ユーザーが自分のPINを忘れた場合や、OTPアプリケーションが入っている自分のユーザー装置を失った場合には、システムがまた提供されうる。
【0050】
OTPアプリケーションは、他のタスクを行うルーチンを含むことができる。特に、いちどOTP関数スクリプトが実行されたら、OTPアプリケーションは、単数または複数のトランザクションコード、ユーザー識別コード、及び、他の秘密鍵といった全ての痕跡の記憶を消去してもよい。
【0051】
認証システム
図5は、本発明の一実施形態での、認証システムの機能的要素を示すブロック図である。該図は、本発明を理解するために必要な要素のみを概略的に示しており、限定しているわけではない。
【0052】
ここで図5を参照すると、ユーザー装置1(この場合では、携帯電話などのWAP使用可能な携帯コミュニケーション装置)がネットワーク接続により、クライアントサイト2に接続されている。クライアントサイトは、典型的には、安全なアクセスを要求するウェブサイトである。なぜなら、例えば、そのコンテンツは会費によって支えられ、又は、そのサイトは商品又は役務のための支払い取引に使われるからである。そのクライアントサイトは、安全及びユーザー認証が特に重要な、銀行又は他の金融機関に所属していてもよい。そのクライアントサイトは単独のウェブページであってもよいし、あるいは、普通は、単独サーバー又はインターネットによって接続された多くのサーバー上にある、一連のリンクされたページである。破線3は、ネットワーク接続を表す。この実施形態におけるネットワーク接続はインターネットによるものだが、類似のいかなるネットワークでもよいし、また、ピアツーピア接続であってもよい。
【0053】
例えば、銀行のウェブサイトは、取引額が£500を超える場合には、OTPの使用を要求することができる。
【0054】
クライアントサイト2は、認証サーバー4を使用して、該サイトへのアクセスを許可する前、又は、商品若しくはサービスの購入など一定の取引が起こる前に、クライアントサイト2のユーザーを認証する。クライアントサイト2は、セキュリティプロセスの一部として、そのトランザクションに固有のパスワード又はパスコードである、ユーザーからのOTPを要求する。この「トランザクション」という言葉は、金融取引に限定することを意図しておらず、許可を与える前に第2の者が第1の者のアイデンティティを確認したいと思う、2者間の如何なる目的の如何なるトランザクションをも意図している。
【0055】
OTPは、単に、複数のステップを含み、ユーザーへの様々なチャレンジを含みうるセキュリティプロセスの一部であってもよいことを注記する。特に、商用ウェブサイトのユーザーが、ウェブサイトにログオンするために、ユーザーネームやパスワード(固定パスワード)を入力することは一般的である。特定のトランザクションのためのOTPの要求は、ユーザーとクライアントサイト2との間の個々のトランザクションに対する、単に追加的なセキュリティステップであってもよい。
【0056】
図5において、認証サーバー4は単独の統一体として示されているが、認証システムの要素の全てが同じ場所にあることや、同じコンピューターにあることを必要としているわけではない。分散されたソリューションが想像される。簡単のために、認証システムは概略的に示されており、図5では単独の認証サーバー4上にある。
大抵の場合は、認証プロセスを進める以前に、ユーザーがユーザー装置1を認証サーバー4に登録する必要がある。登録されたユーザーの場合、認証システム4はユーザー識別情報をメモリー5に保存する。ユーザー識別情報は、名前や住所などの通常の細目を含むことができ、クライアントサイトにログオンするのに使われる固定パスワードを含むことができる。特に、認証システムは、ユーザー装置1のユーザーに知られた1つ又は複数のプライベート鍵を利用できる。単数又は複数のプライベート鍵が、上記のように、クライアント装置1上でのOTPの生成において用いられる。
【0057】
認証システムは、トランザクションコードジェネレーター6と、トランザクションコードディストリビューター7とを含む。トランザクションコードを要求するタイプのトランザクションが開始されるときは、コントローラー又はCPU8が、クライアントサイト2からの要求を受けて、ユーザー装置に提供するために、トランザクションコードを該ディストリビューターに提供するようにトランザクションコードジェネレーターに指示をする。トランザクションコードは、SMSメッセージを通じて、又は、如何なる便利なコミュニケーションチャンネルを通じても、ユーザー装置に提供することができる。一般に、トランザクションコードは、直接にOTPアプリケーションに提供されて、ユーザーには提示されない。少なくとも登録プロセスにおいては(そして、新たなアプリケーションがユーザーに発行される他のトランザクションにおいては)、アプリケーションがユーザーに提供される前に、トランザクションコードが該アプリケーションに提供されてもよい。しかし、より優れた安全性が要求される場合には、トランザクションコードとOTPアプリケーションとは、異なるコミュニケーションチャンネルで提供される。この実施形態においては、トランザクションコードはSMSメッセージによって提供され、OTPアプリケーションは下記のようにWAPプッシュによって提供される。
【0058】
この実施形態においては、OTPアプリケーションは、WAPプッシュによってユーザー装置に提供される。それは事実上、ヘッダーにWAPアドレスへのリンクが含まれる単純なSMSである。WAPプッシュを受け取った際には、ユーザー装置1は自動的にユーザーにOTPサイト9へのアクセスオプションを与える。こうして、WAPプッシュはエンドユーザーを、そのユーザーのためのOTPアプリケーションが送受話器へのダウンロードのために保存されているWAPアドレスへ仕向ける。SMSメッセージの使用は、GSMネットワーク上でのそのようなメッセージに限定されるわけではなく、3Gネットワークや、SkyMail(RTM)及びNTTDocomo(登録商標)のショートメール等の代替手段をも含む全ての類似のコミュニケーションチャンネルを含むことを意図している。NTTDocomoのiモード(登録商標)やRIMBlackBerry(RTM)などの携帯電話のEメールメッセージも、TCP/IP上のSMTPなどの典型的な標準的メールプロトコルを使用している。本発明は選択されたシステムにおいて利用可能などんなコミュニケーションチャンネルによっても実施できる。
【0059】
OTPアプリケーションは、1つ又は複数のOTPスクリプトを含む。OTPスクリプトは、ユーザー装置1上でOTP関数を実行するために、OTP関数から導出されたコンパイルされたコードである。下記で詳述するように、OTP関数はOTP関数ジェネレーター10によって生成される。特定のOTPアプリケーションのための単数又は複数の関数がメモリー5に保存され、ユーザー装置1のユーザーと関連付けられる。それゆえ、どのトランザクションに対しても、コントローラー8がトランザクションコード、秘密鍵、及びOTP関数をメモリー5から利用しやすい。トランザクションの認証は、上記のように、ユーザー装置1によってクライアントサイト2に提供されたOTPと、そのトランザクションと関連付けられた情報に基づいてコントローラー8によって生成されたOTPとの比較によってなすことができる。認証は、その後、クライアントサイト2へ伝達することができる。
【0060】
OTPアプリケーションジェネレーター11は、OTP関数を実行するためのOTPスクリプトを、OTPアプリケーションに埋め込む。OTPアプリケーションは、上記のように、OTPアプリケーションディストリビューター12によってユーザー装置へ供給される。OTP関数及びアプリケーションは、以下で詳細に論じる。
【0061】
OTP関数
ここでは、関数ジェネレーター10及びアプリケーションジェネレーター11を含むOTPアプリケーションエンジンの機能的要素を示す図6を参照する。
関数ジェネレーターは、事前定義モジュール13、関数複合モジュール14、及び評価/検証モジュール15を含む。
【0062】
この実施形態において、OTP関数は複合関数である。OTP関数は、ランダムに選択された数学演算を使って結合された数学関数等、ランダムに選択された事前定義された関数からなるアルゴリズムである。
【0063】
例えば、OTP関数は、関数f(x)=√(x)や関数g(x)=x2-5xを含むことができる。該演算は、加減乗除及びそれらの定義域を含むことができる。ユニークな関数に十分な可能性があるように、多数の選択できる関数があることが好ましい。しかし、ユニークなOTP関数の数は制限されない。なぜならば、アーギュメントの数(すなわち、関数のストリングの長さ)は固定されないからである。
【0064】
OTP関数は、単にアーギュメントの数においてだけでなく、計算結果の数、関数の種族、及び、入力や出力の範囲においても、異なっていてよい。
【0065】
OTP関数は、次のうちの幾つか又は全部を含むことができる:
a) 数学関数及び数学演算
b) 文字列処理
c) 日付計算
d) ビット操作(シフト、ローテート、その他)
e) コンピューター論理命令、フロー、及び条件(ループ、IF記述、その他)
f) 埋め込まれハードコードされた値
g) データ構造処理
当業者は、このほかの可能性を想到できる。
【0066】
上記の可能性の幾つか又は全てを含む関数成分のライブラリーは、事前関数定義プロセスの結果である。関数複合モジュール14は、該関数成分のライブラリーからランダムに選択して、一連の複合関数を生成する。各複合関数は、評価/検証モジュール15で試験されて、その関数が種々の要求を満たしていることが保証される。例えば、評価/検証モジュール15は、新しい複合関数が、あるパラメータの範囲内にあり、ユニークであり、所望の安全度を与えるほど十分複雑であることを判定し、異なる2つの関数が同じ入力を与えられた時に同じOTPを生成するかどうかを判定する。さらに、関数によって生成された単数又は複数の値は、有効であらねばならない。検証モジュールは、各関数が可逆(すなわち、対称的関数であること)を保証する。
【0067】
本発明の一実施形態においては、検証モジュールは、各関数がユニークであること、及び、どのOTPアプリケーションにも現在使用されていないことを保証する。つまり、検証モジュールは、システムにおける全てのユーザーに現在関連付けられている全ての関数を入手することができ、全ての関数のデータベースと、当該ランダムに生成された複合関数とを比較する。あるいは、検証モジュール15は、かつてそのアプリケーションジェネレーター11によって発行された全ての関数と当該関数とを比較することによって、当該関数が真にユニークであることを保証してもよい。安全性要求があまり厳しくない場合には、検証モジュールは、所定レベルのOTP関数の再使用を許すように設定できる。他の実施形態においては、検証モジュールは単に、各束の複合関数がユニークであることを保証する。アプリケーションジェネレーター11が異なる顧客たちのためにOTPアプリケーションを生成する場合(所有されたシステムでない場合)、検証モジュールは単に、OTP関数の各束がユニークな関数たちを含むことを保証する。関数のランダム生成は、一束の関数についての情報が、別の束の関数を解明する上で役に立たないことを保証する。
【0068】
検証された関数のライブラリーは、その後、データベース16に保存される。新しいOTPアプリケーションが、アプリケーションジェネレーター11によって生成されるとき、関数選択モジュール17は、データベース16に保存されている関数のライブラリーから、(例えばランダムに)関数を選択する。OTPアプリケーションビルダー18は、その複合関数を受け取る。その複合関数は、OTPアプリケーションに埋め込まれるOTP関数であり、そのOTPアプリケーションが提供されるユーザーに関連付けられる。アプリケーションビルダー18は、該複合関数を構文解析して、アプリケーションコンパイラーによるコンパイルのためのプログラムスクリプトを作る。アプリケーションコンパイラーは、基礎アプリケーションを取り、OTP関数スクリプトを該基礎プログラムに埋め込んで、OTPアプリケーションを形成する。コンパイルされたOTPアプリケーションは、続くアプリケーションディストリビューター12への供給のために、メモリー19に保存される。
【0069】
上記の実施形態においては、単独のOTP関数がOTPアプリケーションに埋め込まれ、ユーザー装置に提供される。別の実施形態では、ユーザー装置に提供されるOTPアプリケーションは複数の異なるOTP関数を有し、OTPアプリケーションに埋め込むことのできる関数の数は、ユーザー装置のメモリーや処理能力が関数の数に関して実際的又は商業的限界を置く場合を除き、制限はない。この場合、ユーザー装置に送られるトランザクションコードは、埋め込まれたOTP関数の一つを選択してそのトランザクションのためのOTP関数とするために、OTPアプリケーションによって使用されるコードであることができる。この場合、OTP関数への入力はただ一つ(ユーザー識別コード)であってもよい。もちろん、OTP関数はユーザーから更なる秘密鍵を受け取ってもよい。さらに、トランザクションコードはOTP関数を選択するために使用してもいいのだが、これが唯一の可能性というわけではない。OTP関数が単独である実施形態や、別のコードがOTP関数の1つを選択するために認証サーバーにより提供される実施形態など、トランザクションコードは、OTP関数への入力として使用することができる。
こうして、本発明においては、各ユーザー装置又は各ユーザーに対してユニークなOTP関数を有するだけでなく、新たなOTPアプリケーションをインストールせずに、トランザクションごとに新たなOTP関数を選択することを含め、OTP関数を定期的に変えることもできる。OTPアプリケーションに単独のOTP関数が埋め込まれている場合であっても、OTP関数への入力としてサーバーにより送られるコントロールコードによってOTP関数の振る舞いを(例えばトランザクションごとに)変化させることができる。
【0070】
二方向認証
相互認証としても知られ、2者が互いに認証することを指す。言い換えると、両者が他者のアイデンティティを確信できるやり方で、クライアント又はユーザーがサーバーに対して彼ら自身を証明し、そのサーバーはそのクライアント又はユーザーに対してそれ自身を証明する。
【0071】
二方向認証は、アクティブな(直接的な)「ファーミング」または「フィッシング」に対抗するのに特に役に立つ。それは、ユーザーが、サーバーからの応答が本物であるということを検証できる仕組みである。
【0072】
下記のこの実施形態の二方向プロトコルは、ここで述べる他の技術と結合して使用することができる。この実施形態において、上記のOTPプロトコルは二方向認証を実施するのに使われる。二方向認証の際、ユーザー登録及び認証(トランザクションプロセス)が上記のように行われ、例えば図3及び4と関連する。
【0073】
図7は、二方向認証におけるサーバーの認証を説明するのに役立つボックス図である。完全な二方向認証プロセスを示すものではなく、図3、図4、及び、ユーザーの登録及び認証に関連する上述の説明を合わせて考慮しなければならない。
【0074】
図7ではユーザーが既に登録されていることを仮定している。サーバーは既にユーザーの秘密鍵を有している。この場合、PINをラベルしている。このサーバーはトランザクションコードを生成し、ユーザーのPIN及び新しいトランザクションナンバーに基づいて、ユーザーと関連付けられたOTP関数を使ってOTPを算出する。トランザクションナンバーはユーザーに供給される。OTPもまた、ユーザー又はユーザー装置に供給される。或る実施形態におけるOTPとトランザクションナンバーは、異なるチャンネルを通じて供給される。
【0075】
OTPアプリケーションはユーザーからPINを要求し、トランザクションコードとユーザーのPINとに基づいて、OTP関数を使ってOTPを生成する。OTPアプリケーション又は他のアプリケーションは、ユーザーに対してサーバーを証明するために、ユーザー装置によって生成されたOTPと、サーバーによって供給されたOTPとの比較を行う。
【0076】
一実施形態では、ユーザー装置上のサーバーの認証は次を含む:
・サーバーは1つ又は複数のトランザクションナンバーを生成し、ユーザーのOTP関数と単数又は複数の秘密鍵とに基づいて、OTPを計算する。
・サーバーはOTPとトランザクションナンバーとをユーザー又はユーザー装置に送る。
・OTPの計算がそのユーザー装置で繰り返される
・ユーザー装置は同一のOTPが計算されたかを比較し、もしそのOTPが一致していればサーバーを認証する。
【0077】
上記の実施形態においては、トランザクションナンバーはサーバー側で生成されるが、別の実施形態では、クライアント装置がトランザクションナンバーを生成し、これをOTPの計算のためにサーバーに供給するようにプログラムされてもよい。さらに、サーバーとユーザーとの間のOTP比較の多重検証があってもよい。各検証に対して、新しいトランザクションコードがあるだろう。認証プロセスは対称的なプロセスである。つまり、サーバー側においてと同じようにして、クライアント側において適用される。こうして、単に一方向の多重検証(ユーザーからサーバー、又はサーバーからユーザー)だけでなく、両方向の認証もまた、1回またはそれ以上可能である。
【0078】
異なるチャンネル上の1を超える部分で、例えば、ウェブサイトに表示されて、テキストメッセージで送信されて、OTPはまたユーザーへ返すことができる(その逆も)。
上記の実施形態において、ユーザー装置は自動的にOTPを比較し、サーバーを認証するように設定されているが、この認証は、OTPをユーザーに表示することにより手動ですることができる。サーバー生成のOTPは、例えばウェブサイト上で、(全部又は一部が)表示されてもよいし、テキストによってユーザーに送られてもよい。本発明の範囲を離れずに、当業者は様々な比較のための技術を想到できる。
【0079】
本発明の技術の実施において、システムの安全レベルは変更できる。例えば、認証成立のためにユーザーによって問われるチャレンジの数は変更できるし、又、ユーザーに対してなされるチャレンジは定期的に変更されうる。例えば、最初のログオンの際、ユーザーはPIN及び郵便コード(Zipコード)を問われ、二回目のログオンの際には、ユーザーはPIN及び誕生日を問われる、ということが可能である。チャレンジ、質問の数は時間とともにランダムに変化してもよい。これは、ユーザーが許可を与えられる前に入力する必要があるチャレンジの数を定義するメタデータ表の使用によって達成される。
【0080】
図5に示された実施形態において、ユーザーは、OTPアプリケーションを有するその同じ装置を用いて、クライアントウェブサイトと交信している。現代の電気通信装置では、同じ装置が2又はそれ以上のコミュニケーションチャンネルを提供できる。しかし、本発明がコミュニケーションチャンネルを分けて使用されうることが想到される。例えば、携帯電話がOTP関数を有するユーザー装置であるが、しかし、トランザクションは人によって(例えば銀行で)、又は、別の機械(例えばPCや店頭端末)で行われる、というように。トランザクションを試みる人は、要求されたOTPを得ることができるように、電話を有していなければならない。権限のない人が携帯電話を手にすることができたり、又は、ユーザーPCへのアクセスができても、彼らがPCにアクセスできて、かつ、携帯電話を入手できて、かつ、ユーザーPINを入手できるということは、まず起こらない。
【0081】
それゆえ、OTPアプリケーションは、通常安全な二要素認証で必要とされるハードトークンと等価なソフトトークンである。しかし、同一のOTPアプリケーションが異なった安全鍵をサポートするのに使われうる。例えば、二人の人が携帯電話を共有し、異なるPINナンバーを使用して彼らを証明することができる。
【0082】
ある実施形態では、複数のユーザーそれぞれがOTPアプリケーションを有する、ジョイントアカウントシステムが想定される。トランザクションを認証し又は権限を与えるために、このアカウントに関連しているユーザーの全てが彼らの正しいOTPを供給する必要がある。
【0083】
該プロセスは機械、及び、人によって用いられる。例えば、B2Bトランザクションを認証するためのソリューションを、二つのサーバーが使用する。
【0084】
あまり厳しくない安全レベル方針につき、例えば我々は、ユーザーがOTPナンバーを異なるチャンネルを通じてサーバーに返さなければならない「クールオフ期間」をもつよう決めてもよい。例えば、OTPアプリケーションを持つものとは別の装置を通じて。クールオフ期間は、タイムリミット又トランザクションの量に基づいて計算される。
【0085】
該ソリューションは、異なるタイプの安全レベルをサポートするのに十分なほど柔軟である。例えば、銀行は、電子銀行業務(eBanking)のためのウェブサイトを経てのみ、OTPアプリケーションによって生成されたOTPが認証サーバーに送り返されることを決めることができる。すなわち、例えば、OTPアプリケーションは携帯電話上にあって、トランザクションコードがSMSを通じて受け取られ、OTPが異なるコミュニケーションチャンネル(つまり、インターネット)で返される。
【0086】
前に述べたように、本発明はセキュリティシステムの単に一部であることができ、どんな特定のトランザクションに対しても単に認証プロセスの一部を形成するだけであることができる。この発明は、制限なしに、他の安全機構と共に使用することができる。例えば、ユーザー装置は、GPRSシステム、又は、そのユーザー装置の場所を示すことのできる別のシステムの一部であることができる。それゆえ、認証プロセスは、ユーザー装置の場所のチェックを含むことができる。
明確のために別々の実施形態で述べられた本発明の種々の特徴は、組み合わされて、単独の実施形態において備えられることもできる。逆に、簡潔のために単独の実施形態で述べられた本発明の種々の特徴は、別々に又は適切に部分結合して、備えられることもできる。
【0087】
上記の実施形態のアルゴリズムエンジンは、他の適用においても役に立つ。該アルゴリズムエンジンの基礎は、多数の新しいOTP関数を生成するために種々の方法で組み合わされる、数多くのストックされた関数や演算の使用である。OTPアプリケーションエンジンの実施形態は、図6に示される。OTP関数とアプリケーションは、次のように、特定の応用で使用できる:
現在、ソフトウェアパッケージは一般にユーザーにライセンスされる。ソフトウェアのコピーごとにセキュリティコード又はナンバーを生成するのに、本質的に、一般には単独のアルゴリズムが使われる。場合によっては総当り攻撃で、いちどアルゴリズムが解読されたら、その製品の偽者のコピーが、検証サーバーによって受け入れられる「有効な」セキュリティコードを伴って作られる。ソフトウェアの正規のコピーを無効にせずに、アルゴリズムを変えることはできない。
【0088】
代替案は、異なったアルゴリズムを有する、異なった領域を持つことである。つまり、アルゴリズムは無効化されるが、それは単に当該同一の領域にある正規のコピーにのみ影響を与えるだけである。
【0089】
本発明は、本発明によるOTPアプリケーションを各パッケージに提供することにより、ソフトウェアパッケージごとにユニークなアルゴリズムを提供するのに用いられる。OTP関数の一例を含むOTPアプリケーションは、トランザクションコードと関連付けられる。OTP関数は、ソフトウェアパッケージごとにユニークであるか、又は、1つの領域においてソフトウェアパッケージごとにユニークである。それにより、アルゴリズムのハッキング行為は無益なものとなる。なぜなら、OTPアプリケーションのハッキングは、単にそのOTPアプリケーションの一例に影響を与えるに過ぎないからである。
【0090】
本発明のこの適用において、OTPアプリケーションは別のPINを必要としない。秘密鍵又は識別コードが、固定されているか、又は、重複すると考えることができる。
【0091】
この適用は、ソフトウェアパッケージとして述べられたけれども、製品のアイデンティティが認証されていることは、許諾OTPアプリケーションとは関係がなく、オンライン又は非オンラインの投票や、ユーザーアクセスなど、この技術は如何なる製品又は認証/検証シナリオに対しても適用できる。とくに、OTPアプリケーションはメディアファイルに添付され、コンピューターネットワークなどの電子手段によって配布されるそのようなファイルを安全にする。
【0092】
本発明はソフトウェアソリューションに限定されない。OTPアルゴリズムエンジンによって生成されるOTP関数は、メモリーカード又はICカードなどのカード、トークン、チケット等に埋め込むことができる。そのような物理的識別手段には入力がなく、そのユニーク又はほとんどユニークなアルゴリズムが、認証システムによって、ユーザーと関連付けられる。そのようなシステムは、例えば、銀行又は投票シナリオにおいて人を識別するのに使われる。
【0093】
本発明のOTPアプリケーションは、バイオメトリック装置がインターネット等のネットワーク上で認証のために使用されるのを許す。バイオメトリック装置ごとに、別のOTPアプリケーションが与えられ、OTPアプリケーションのための識別コードは入力バイオメトリックデータである。これは、OTP関数のために必要とされる秘密鍵又は識別コードを入力する代替手段の一例である。
【0094】
先行技術においては、バイオメトリック装置からの出力は、比較的固定された値である。つまり、バイオメトリック装置はユーザー側で検証する。本発明の使用は、非ユーザー側における(例えば認証サーバーによる)ユーザーの認証を許します。バイオメトリック装置と関連付けられたOTPアプリケーションの情報によって、及び、認証サーバーに便利に事前登録されたバイオメトリック情報に基づいて、認証サーバーはユーザーを認証することができます。この実施形態において、トランザクションコードは、この実施形態に対して別に供給される必要はない。例えば、バイオメトリックシステム自身の中で生成されてもよい。しかし、本発明の認証技術のより一般的な実施形態に従って、バイオメトリック装置は、OTPアプリケーションサーバーと結合して使われることができる。その場合、トランザクションコードの供給のための種々の選択肢が同等にこの実施形態に適用できる。
【0095】
さらに、OTPアプリケーションは、ユーザーのPIN等の一つまたはそれ以上の更なる入力を受け入れることができる。
【0096】
本発明の実施形態は例として記述されたけれども、当業者は、添付された請求の範囲により定義される本発明の範囲から外れずに、変更されたもの及び同等物を想到しうる。

【特許請求の範囲】
【請求項1】
ユーザー装置を有するユーザーに対してトランザクションを行う許可を与えるための認証システムであって、前記システムは、
前記ユーザーと関連付けられたユーザー識別コードを保存する手段と;
前記ユーザー識別コードを含むユーザーによる少なくとも1つの入力に基づいてパスコードを作成する複数の関数を生成する手段と;
少なくとも1つの関数を保存し、その関数をユーザーに関連付ける手段と;
前記ユーザー装置上で前記少なくとも1つの関数を実行するためのアプリケーションを生成する手段と;
前記アプリケーションを前記ユーザー装置に供給する手段と;
前記トランザクションと関連付けられたトランザクションコードを生成し、そのトランザクションコードを前記アプリケーションへ供給する手段と;
前記ユーザー装置から前記トランザクションのためのパスコードを受け取り、その受け取ったパスコード、前記ユーザーと関連付けられた前記関数、前記ユーザー識別コード、及び、前記トランザクションと関連付けられた前記トランザクションコードに基づいて前記トランザクションを認証する手段とを含むことを特徴とする認証システム。
【請求項2】
前記複数の関数が、少なくとも1つの入力が残りの入力、該関数、及び、出力の情報から導くことができる対称的関数であることを特徴とする請求項1記載のシステム。
【請求項3】
前記複数の関数のうち少なくとも2つが、機能的にユニークであることを特徴とする請求項1又は2記載のシステム。
【請求項4】
前記少なくとも2つの関数が異なるユーザーと関連付けられていることを特徴とする請求項3記載のシステム。
【請求項5】
前記アプリケーションが、1つを超える前記関数を実行するためのものであることを特徴とする請求項1〜4のうちいずれか一項記載のシステム。
【請求項6】
前記システムが、前記関数のうちの1つを選択するために、前記アプリケーションへコントロールコードを送るように構成されていることを特徴とする請求項5記載のシステム。
【請求項7】
前記トランザクションコードが、前記トランザクションのために実行される前記関数のうちの1つを選択するために、使用されることを特徴とする請求項5記載のシステム。
【請求項8】
前記ユーザー識別コード及び前記トランザクションコードが、前記関数への入力として使われることを特徴とする請求項1〜6のうちいずれか一項記載のシステム。
【請求項9】
前記複数の関数を生成する手段が、関数成分のライブラリーと、前記関数成分からランダムに選択して複合関数を提供する手段とを含むことを特徴とする請求項1〜8のうちいずれか一項記載のシステム。
【請求項10】
前記関数成分が、数学関数、数学演算、文字列処理、日付計算、ビット操作、コンピューター論理命令、コンピューター論理フロー、コンピューター論理条件、埋め込まれハードコードされた値、及び、データ構造処理からなる群より選ばれた成分を含むことを特徴とする請求項9記載のシステム。
【請求項11】
前記複数の関数を生成する手段が、該関数を検証する手段を含むことを特徴とする請求項1〜10のうちいずれか一項記載のシステム。
【請求項12】
前記関数を検証する手段が、前に生成された関数の所定の選集との比較を行い、所定の重複レベルを超えていたら、当該生成された関数を拒絶することを特徴とする請求項11記載のシステム。
【請求項13】
一束の関数における各関数がユニークであることを特徴とする請求項12記載のシステム。
【請求項14】
前記少なくとも1つの関数を実行するための前記アプリケーションが、ユーザーインターフェースを提供することを特徴とする請求項1〜13のうちいずれか一項記載のシステム。
【請求項15】
前記アプリケーションを前記ユーザー装置に供給する前記手段が、前記ユーザー装置に電子メッセージを送る手段を含み、該メッセージがアドレスを含んで、そのアドレスから前記アプリケーションがダウンロードできることを特徴とする請求項1〜14のうちいずれか一項記載のシステム。
【請求項16】
前記識別コードがバイオメトリックデータから導かれることを特徴とする請求項1〜15のうちいずれか一項記載のシステム。
【請求項17】
ユーザーと関連付けられたユーザー識別コードを保存し;
前記ユーザー識別コードを含むユーザーによる少なくとも1つの入力に基づいてパスコードを作成する複数の関数を生成し;
少なくとも1つの関数を保存し、その関数をユーザーに関連付け;
前記ユーザー装置上で前記少なくとも1つの関数を実行するためのアプリケーションを生成し;
前記アプリケーションを前記ユーザー装置に供給し;
トランザクションと関連付けられたトランザクションコードを生成し、そのトランザクションコードを前記アプリケーションへ供給し;
前記ユーザー装置から前記トランザクションのためのパスコードを受け取り、その受け取ったパスコード、前記ユーザーと関連付けられた前記関数、前記ユーザー識別コード、及び、前記トランザクションと関連付けられた前記トランザクションコードに基づいて前記トランザクションを認証することを含むことを特徴とする認証方法。
【請求項18】
前記複数の関数が、少なくとも1つの入力が残りの入力、該関数、及び、出力の情報から導くことができる対称的関数であることを特徴とする請求項17記載の方法。
【請求項19】
前記複数の関数のうち少なくとも2つが、機能的にユニークであることを特徴とする請求項17又は18記載の方法。
【請求項20】
前記少なくとも2つの関数が異なるユーザーと関連付けられていることを特徴とする請求項19記載の方法。
【請求項21】
前記アプリケーションが、1つを超える前記関数を実行するためのものであることを特徴とする請求項17〜20のうちいずれか一項記載の方法。
【請求項22】
前記方法が、前記関数のうちの1つを選択するために、前記アプリケーションへコントロールコードを送ることを含むことを特徴とする請求項21記載の方法。
【請求項23】
前記トランザクションコードが、前記トランザクションのために実行される前記関数のうちの1つを選択するために、使用されることを特徴とする請求項21記載の方法。
【請求項24】
前記ユーザー識別コード及び前記トランザクションコードが、前記関数への入力として使われることを特徴とする請求項17〜22のうちいずれか一項記載の方法。
【請求項25】
前記複数の関数を生成する手段が、関数成分のライブラリーと、前記関数成分からランダムに選択して複合関数を提供する手段とを含むことを特徴とする請求項17〜24のうちいずれか一項記載の方法。
【請求項26】
前記関数成分が、数学関数、数学演算、文字列処理、日付計算、ビット操作、コンピューター論理命令、コンピューター論理フロー、コンピューター論理条件、埋め込まれハードコードされた値、及び、データ構造処理からなる群より選ばれた成分を含むことを特徴とする請求項25記載の方法。
【請求項27】
前記複数の関数を検証することを含むことを特徴とする請求項17〜26のうちいずれか一項記載の方法。
【請求項28】
前記関数を検証する手段が、前に生成された関数の所定の選集との比較を行い、所定の重複レベルを超えていたら、当該生成された関数を拒絶することを特徴とする請求項27記載の方法。
【請求項29】
一束の関数における各関数がユニークであることを特徴とする請求項28記載の方法。
【請求項30】
前記少なくとも1つの関数を実行するための前記アプリケーションが、ユーザーインターフェースを提供することを特徴とする請求項17〜29のうちいずれか一項記載の方法。
【請求項31】
前記アプリケーションを前記ユーザー装置に供給することが、前記ユーザー装置に電子メッセージを送ることを含み、該メッセージがアドレスを含んで、そのアドレスから前記アプリケーションがダウンロードできることを特徴とする請求項17〜30のうちいずれか一項記載の方法。
【請求項32】
前記識別コードがバイオメトリックデータから導かれることを特徴とする請求項17〜31のうちいずれか一項記載の方法。
【請求項33】
ユーザーと関連付けられたユーザー識別コードを保存するメモリーと;
前記ユーザー識別コードを含むユーザーによる少なくとも1つの入力に基づいてパスコードを作成するための複数の関数を生成する関数ジェネレーターと;
少なくとも1つの関数を保存し、その関数をユーザーに関連付けるためのメモリーと;
前記ユーザー装置上で前記少なくとも1つの関数を実行するためのアプリケーションを生成するアプリケーションジェネレーターと;
前記ユーザー装置へ前記アプリケーションを配布するアプリケーションディストリビューターと;
トランザクションと関連付けられたトランザクションコードを生成するトランザクションコードジェネレーターと;
前記アプリケーションに前記トランザクションコードを供給するトランザクションコードディストリビューターと;
ユーザー装置から前記トランザクションのためのパスコードを受け取り、その受け取ったパスコードと、前記ユーザーに関連付けられた前記関数と、前記ユーザー識別コードと、前記トランザクションに関連付けられた前記トランザクションコードとに基づいて前記トランザクションを認証するコントローラーとを含むことを特徴とする認証サーバー。
【請求項34】
請求項17〜32のうちいずれか一項記載の方法を実行するために、コンピューターをコントロールするためのコンピューター可読コードを運ぶキャリア媒体。
【請求項35】
複数のパスコード関数を生成する関数ジェネレーターを含む認証システムであって、前記関数ジェネレーターが、
複数の事前定義された部分関数を選択し、その選択された部分関数を1つ又は複数の事前定義された演算を使って組合せて複合関数を作成する複合モジュールと;
各関数が可逆であることと、一束の複合関数における複合関数がユニークであることとを判定する検証モジュールとを含むことを特徴とする認証システム。
【請求項36】
前記検証モジュールが、前に生成された関数の所定の選集との比較を行い、所定の重複レベルを超えていたら、当該生成された関数を拒絶することを特徴とする請求項35記載の認証システム。
【請求項37】
前記検証モジュールが更に
(i)各複合関数が所定の複雑さを有すること、
(ii)一束の関数の各複合関数が、同一の入力が与えられたときに、異なる出力をすること、のうちの1つ又は複数を判定することを特徴とする請求項35又は36記載の認証システム。
【請求項38】
前記複数の事前定義された部分関数を生成する事前定義モジュールを含むことを特徴とする請求項35、36又は37記載の認証システム。
【請求項39】
前記部分的関数が、数学関数、数学演算、文字列処理、日付計算、ビット操作、論理フロー若しくは条件を含むコンピューター論理命令、埋め込まれハードコードされた値、及び、データ構造処理からなる群より選ばれた一つ又は複数であることを特徴とする請求項35〜38のうちいずれか一項記載の認証システム。
【請求項40】
検証された複合関数のデータベースを含むことを特徴とする請求項35〜39のうちいずれか一項記載の認証システム。
【請求項41】
前記データベースから少なくとも一つの複合関数を選択する関数選択モジュールと、その複合関数からプログラムスクリプトを生成するアプリケーションビルダーとを含むことを特徴とする請求項35〜40のうちいずれか一項記載の認証システム。
【請求項42】
前記アプリケーションビルダーが、前記プログラムスクリプトをアプリケーションへコンパイルして前記少なくとも一つの複合関数を前記アプリケーションに埋め込むコンパイラーを含むことを特徴とする請求項41記載の認証システム。
【請求項43】
認証アプリケーションを含むコミュニケーション装置であって、前記認証アプリケーションには少なくとも一つのパスコードアルゴリズムが埋め込まれ、該アプリケーションが、特定のトランザクションのために生成されたトランザクションコードと、認証のために人又はもののうちの1つを特定する識別コードとに基づいてパスコードを生成するように構成されていることを特徴とするコミュニケーション装置。
【請求項44】
前記少なくとも一つの埋め込まれたパスコード関数を含む前記アプリケーションが、データのユーザー入力のためのインターフェースを該パスコード関数に備えることを特徴とする請求項43記載のコミュニケーション装置。
【請求項45】
トランザクションに関連する第三者によって生成されたパスコードを受け取り、その第三者を認証するために、その受け取ったパスコードと認証アプリケーションによって生成されたパスコードとを前記コミュニケーション装置上で比較する認証アプリケーションを含む請求項43又は44記載のコミュニケーション装置。
【請求項46】
パスコード関数が埋め込まれたパスコードアプリケーションを生成する方法であって、
複数の事前定義された部分関数を選択し、その選択された部分関数を1つ又は複数の事前定義された演算を使って組合せて複合関数を作成し;
各関数が可逆であることと、一束の複合関数における複合関数がユニークであることとを判定することにより関数を検証することを特徴とする方法。
【請求項47】
前記検証ステップが、前に生成された関数の所定の選集との比較を行い、所定の重複レベルを超えていたら、当該生成された関数を拒絶することを含むことを特徴とする請求項46記載の方法。
【請求項48】
前記複数の事前定義された部分関数を生成することを含むことを特徴とする請求項46又は47記載の方法。
【請求項49】
前記部分的関数が、数学関数、数学演算、文字列処理、日付計算、ビット操作、論理フロー若しくは条件を含むコンピューター論理命令、埋め込まれハードコードされた値、及び、データ構造処理からなる群より選ばれた一つ又は複数であることを特徴とする請求項46〜48のうちいずれか一項記載の方法。
【請求項50】
検証された関数のデータベースを備えるために、検証された複合関数を保存することを含むことを特徴とする請求項46〜49のうちいずれか一項記載の方法。
【請求項51】
前記データベースから少なくとも一つの複合関数を選択し、その複合関数からプログラムスクリプトを生成することを含むことを特徴とする請求項45〜49のうちいずれか一項記載の方法。
【請求項52】
前記少なくとも一つの複合関数をアプリケーションに埋め込むために、前記プログラムスクリプトをアプリケーションへコンパイルすることを含むことを特徴とする請求項51記載の方法。
【請求項53】
バイオメトリック装置と、該バイオメトリック装置と関連付けられた認証アプリケーションとを含むシステムであって、前記認証アプリケーションには少なくとも一つのパスコードアルゴリズムが埋め込まれ、該アプリケーションが、特定のトランザクションのために生成されたトランザクションコードと、前記バイオメトリック装置によって生成されたバイオメトリックデータに対応する識別コードとに基づいてパスコードを生成するように構成されていることを特徴とするシステム。
【請求項54】
前記アプリケーションが、前記バイオメトリックデータとトランザクションコードに加え、少なくとも一つの更なる入力に基づいてパスコードを生成するように構成されていることを特徴とする請求項53記載のシステム。
【請求項55】
前記トランザクションコードが請求項16記載のシステムによって生成されることを特徴とする請求項53又は54記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2010−531506(P2010−531506A)
【公表日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2010−514086(P2010−514086)
【出願日】平成19年6月26日(2007.6.26)
【国際出願番号】PCT/GB2007/002375
【国際公開番号】WO2009/001020
【国際公開日】平成20年12月31日(2008.12.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(510000389)G3−ビジョン リミテッド (1)
【氏名又は名称原語表記】G3−vision Limited
【住所又は居所原語表記】2nd Floor 145−157 St.John Street London EC1V 4PY United Kingdom
【Fターム(参考)】