(57)【要約】      （修正有）【課題】複数のアプリケーションでのセキュリティを有する認証を管理する方法を提供する。【解決手段】ユーザは、最初に、すべてのアプリケーションについて一意とすることのできるマスタ・パスワードを供給する。「アプリケーション」パスワードは、マスタ・パスワードまたは「アプリケーション」パスワード構文規則から、新しい要求ごとに再計算され、システム内には絶対に保管されない。「アプリケーション」パスワードの最初の生成で、少なくとも１つのランダム・キーが生成される。「アプリケーション」パスワードの再計算のために保管される情報は、「アプリケーション」名、生成されたランダム・キー、および「アプリケーション」パスワード構文規則だけである。「アプリケーション」パスワード計算関数を、セキュリティのレベルに従って変更することができ、「アプリケーション」構文規則を要件に従うために変更することができる。【選択図】図２
2007035041.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションまたはシステム（いわゆる「アプリケーション」）にアクセスするためのコンピュータでのユーザ認証を管理する方法であって、
ユーザが、前記コンピュータで「アプリケーション」名および少なくとも１つの好ましいパスワードすなわちいわゆる「マスタ」パスワードを入力するステップと、
前記コンピュータが、少なくとも１つのランダム・キーを生成するステップと、
前記コンピュータが、前記アプリケーションの名前および前記少なくとも１つの生成されたランダム・キーを記憶手段のレコードに保管するステップと、
前記コンピュータが、前記少なくとも１つの「マスタ」パスワードおよび前記少なくとも１つのランダム・キーを入力として使用することによって、前記「アプリケーション」パスワードを計算する所定のアルゴリズムを使用するステップと、
前記コンピュータが、前記計算された「アプリケーション」パスワードを前記ユーザに供給するステップと
を含む方法。
【請求項２】
前記ユーザが入力する前記ステップが、さらに、
前記ユーザが「アプリケーション」パスワード構文規則を入力すること
を含み、前記コンピュータが保管する前記ステップが、さらに、
前記コンピュータが前記「アプリケーション」パスワード構文規則を前記記憶手段の前記レコードに保管すること
を含み、前記「アプリケーション」パスワードを計算する前記ステップが、さらに、
前記「アプリケーション」パスワードを計算する前記所定のアルゴリズムが、前記「アプリケーション」パスワード構文規則を考慮に入れること
を含む、請求項１に記載の方法。
【請求項３】
前記ユーザが「アプリケーション」名および少なくとも１つのマスタ・パスワードを入力するステップと、
前記コンピュータが、前記記憶手段内で、同一のアプリケーション名を有するレコードを検索し、前記少なくとも１つのランダム・キーを読み取るステップと、
前記コンピュータが、前記少なくとも１つの「マスタ」パスワード、前記少なくとも１つのランダム・キー、および前記「アプリケーション」パスワード構文規則のいずれかが前記記憶手段の前記レコード内で見つかる場合に、これらを入力として使用して前記「アプリケーション」パスワードを再計算する前記所定のアルゴリズムを使用するステップと、
前記コンピュータが、前記再計算された「アプリケーション」パスワードを前記ユーザに供給するステップと
をさらに含む、請求項１または請求項２のいずれか一項に記載の方法。
【請求項４】
少なくとも１つのランダム・キーを生成する前記ステップが、前記「アプリケーション」パスワード構文規則によって供給される前記「アプリケーション」パスワード内の文字の個数と同一回数だけランダム・キー生成関数を適用し、したがって前記「アプリケーション」パスワード内の文字の個数と同数のランダム・キーを得るステップからなる、請求項１ないし３のいずれか一項に記載の方法。
【請求項５】
所定のアルゴリズムを使用して前記「アプリケーション」パスワードを計算する前記ステップが、
所定のメッシング関数を使用して前記少なくとも１つのランダム・キーを前記少なくとも１つのマスタ・パスワードとメッシングするステップと、
前記「アプリケーション」パスワード構文規則が前記記憶手段の前記レコード内で見つかる場合にこれに従って、前記メッシングするステップの結果に適用される剰余計算を実行することによって前記「アプリケーション」パスワードの各文字を計算するステップと
を含む、請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
メッシング関数自体を判定する最初のステップが、
前記ユーザがメッシング関数を選択するステップと、
前記コンピュータが前記選択されたメッシング関数を、前記「アプリケーション」名および前記少なくとも１つの生成されたランダム・キーと共に前記記憶手段の同一のレコードに保管するステップと、
前記コンピュータが、この「アプリケーション」に対応する前記メッシング関数を読み取るステップと
を含む、請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
前記記憶手段の前記保管ステップおよび前記読み取るステップが、前記コンピュータにローカルに実行される、請求項１ないし６のいずれか一項に記載の方法。
【請求項８】
前記記憶手段の前記保管ステップおよび前記読み取るステップが、前記コンピュータにリモートに実行される、請求項１ないし６のいずれか一項に記載の方法。
【請求項９】
前記記憶手段の前記保管ステップおよび前記読み取るステップが、前記「キー」テーブルを列によって分割することによってリモートにおよびローカルに実行される、請求項１ないし６のいずれか一項に記載の方法。
【請求項１０】
前記ユーザによって実行される前記ステップが、ユーザ・コンピューティング・デバイスで実行され、前記コンピュータによって実行される前記ステップが、ネットワークを介して前記ユーザによってアクセスされるリモート・サーバで実行される、請求項１ないし９のいずれか一項に記載の方法。
【請求項１１】
前記ユーザによって実行される前記ステップが、さらに、ローカルに擬似ランダムに生成されたテール・キーを前記「マスタ」パスワードの末尾に追加するステップを含み、前記リモート・サーバによって実行されるステップが、さらに、前記リモート・サーバで同一のテール・キーを同時にランダムに生成し、マスタ・パスワードの前記テール・キーが前記リモート・サーバで生成された前記テール・キーと異なる場合に前記方法のさらなるステップを処理するのではなく前記ユーザにエラー・メッセージを送るステップを含む、請求項１０に記載の方法。
【請求項１２】
前記「アプリケーション」パスワードを変更する、前記ユーザからの要求の際に、古い「アプリケーション」パスワードを再計算すること、および
前記ユーザが、「アプリケーション」名および少なくとも１つの好ましいパスワードすなわちいわゆる前記「マスタ」パスワードを入力すること
をさらに含み、
前記コンピュータが、少なくとも１つのランダム・キーを生成し、
前記コンピュータが、前記アプリケーション名および前記少なくとも１つの生成されたランダム・キーを記憶手段のレコードに保管し、
前記コンピュータが、前記少なくとも１つの「マスタ」パスワードおよび前記少なくとも１つのランダム・キーを入力として使用することによって、新しい「アプリケーション」パスワードを計算する所定のアルゴリズムを使用し、
前記コンピュータが、前記古い計算された「アプリケーション」パスワードおよび前記新しい計算された「アプリケーション」パスワードを前記ユーザに供給する
請求項１ないし１１のいずれか一項に記載の方法。
【請求項１３】
記憶手段のレコード内で実行される前記読み取るステップ、前記検索するステップ、および前記保管するステップが、テーブルすなわちいわゆる前記「キー」テーブルのレコード内で実行される読み取るステップ、検索するステップ、および保管するステップである、請求項１ないし１２のいずれか一項に記載の方法。
【請求項１４】
「前記ユーザが、アプリケーション名および少なくとも１つのマスタ・パスワードを入力する」前記ステップが、
前記コンピュータが、前記「アプリケーション」から前記「アプリケーション」名を受け取るステップと、
前記ユーザが、前記コンピュータで少なくとも１つのマスタ・パスワードを入力するステップと
によって置換され、「前記コンピュータが、前記計算された「アプリケーション」パスワードを前記ユーザに供給する」前記ステップが、
前記コンピュータが、前記計算された「アプリケーション」パスワードを前記「アプリケーション」に供給するステップ
によって置換される、請求項１ないし１３のいずれか一項に記載の方法。
【請求項１５】
請求項１ないし１４のいずれか一項に記載の方法の前記ステップをコンピュータに実行させるプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはコンピュータ支援認証方法に関し、具体的には、本発明は、ユーザが複数のシステムにアクセスする権限を有するときに使用することができる。
【背景技術】
【０００２】
現在、ユーザは、ユーザの会社または外部システムに属する異なるシステム／アプリケーション（通常はインターネット・アプリケーション／ウェブサイト）で認証される複数のユーザＩＤおよびパスワードを維持する必要に直面している。高いレベルのセキュリティを保つために、ユーザは、通常、アプリケーション／システムごとに異なるパスワードを採用しなければならない。しかし、人々は、管理するには多すぎるユーザＩＤおよびパスワードを有し、したがって、アプリケーション／サイトの間でパスワードを共有し、またはパスワードを予定表ファイルもしくはテキスト・ファイルに平文で書き込み、あるいはこの両方を行う。その結果、セキュリティは、非常に重要でしっかりと保護されたアプリケーションに関してさえ危険にさらされる。「シングル・サインオン」（ＳＳＯ）ソフトウェア・スタック（信任証、サード・パーティ認証、…）またはパスワード同期化を使用するものなど、この問題を軽減するのに使用される複数のシステムがある。問題は、これらのシステムのすべてが、既知のアプリケーションすなわち、ＳＳＯ／パスワード同期化ソリューションに統合できるアプリケーション／システムを管理できるにすぎず、集中化された複雑な作業でなければならないことである。したがって、ユーザは、どの場合でも、複数のパスワードを管理する必要に直面する。
【０００３】
Sun Microsystems Inc.社の米国特許第６００６３３３号は、マスタ・パスワードの使用によって複数パスワードの問題を解決することを試みる。各リモート・サーバは、異なるパスワードを使用してアクセスされるが、ユーザは、１つのマスタ・パスワードを記憶する必要だけがある。残念ながら、この特許の解決策を用いると、パスワードおよびユーザＩＤが、データベースに保管され、これらが暗号化される場合であっても、ハッカーがデータベースの侵害に成功した場合に、認証システム全体が破られ得る。
【０００４】
したがって、複数のシステムでユーザを認証すると同時に、ユーザがあまりに多数のパスワードを記憶するのを防止し、直接に使用可能な機密情報を保管するのを避けることによって高いレベルのセキュリティを維持するシステムおよび方法を提供する必要がある。
【特許文献１】米国特許第６００６３３３号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、ユーザが記憶しなければならないパスワードの個数を制限しながら、複数のアプリケーションまたはシステムでユーザを認証する方法およびシステムを提供することである。
【０００６】
本発明のもう１つの目的は、パスワードなどの直接に使用可能な機密情報を保管するのを避けることである。
【課題を解決するための手段】
【０００７】
これらの目的は、請求項１に従って、アプリケーションまたはシステム（いわゆる「アプリケーション」）にアクセスするためのコンピュータでのユーザ認証を管理する方法であって、
・ユーザが、前記コンピュータで「アプリケーション」名および少なくとも１つの好ましいパスワードすなわちいわゆる「マスタ」パスワードを入力するステップと、
・前記コンピュータが、少なくとも１つのランダム・キーを生成するステップと、
・前記コンピュータが、前記アプリケーション名および前記少なくとも１つの生成されたランダム・キーを記憶手段のレコードに保管するステップと、
・前記コンピュータが、前記少なくとも１つの「マスタ」パスワードおよび前記少なくとも１つのランダム・キーを入力として使用することによって、前記「アプリケーション」パスワードを計算する所定のアルゴリズムを使用するステップと、
・前記コンピュータが、前記計算された「アプリケーション」パスワードを前記ユーザに供給するステップと
を含む方法を用いて達成される。
【０００８】
これらの目的は、請求項２に従って、前記ユーザが入力する前記ステップが、さらに、
・前記ユーザが、「アプリケーション」パスワード構文規則を入力すること
を含み、前記コンピュータが保管する前記ステップが、さらに、
・前記コンピュータが、前記「アプリケーション」パスワード構文規則を前記記憶手段の前記レコードに保管すること
を含み、前記「アプリケーション」パスワードを計算する前記ステップが、さらに、
・前記「アプリケーション」パスワードを計算する前記所定のアルゴリズムが、前記「アプリケーション」パスワード構文規則を考慮に入れること
を含む、請求項１に記載の方法を用いても達成される。
【０００９】
これらの目的は、請求項３に従って、
・前記ユーザが、「アプリケーション」名および少なくとも１つのマスタ・パスワードを入力するステップと、
・前記コンピュータが、前記記憶手段内で、同一のアプリケーション名を有するレコードを検索し、前記少なくとも１つのランダム・キーを読み取るステップと、
・前記コンピュータが、前記少なくとも１つの「マスタ」パスワード、前記少なくとも１つのランダム・キー、および前記「アプリケーション」パスワード構文規則のいずれかが前記記憶手段の前記レコード内で見つかる場合に、これらを入力として使用して前記「アプリケーション」パスワードを再計算する前記所定のアルゴリズムを使用するステップと、
・前記コンピュータが、前記再計算された「アプリケーション」パスワードを前記ユーザに供給するステップと
をさらに含む、請求項１または請求項２のいずれか一項に記載の方法を用いても達成される。
【００１０】
これらの目的は、請求項４に従って、少なくとも１つのランダム・キーを生成する前記ステップが、前記「アプリケーション」パスワード構文規則によって供給される前記「アプリケーション」パスワード内の文字の個数と同一回数だけランダム・キー生成関数を適用し、したがって前記「アプリケーション」パスワード内の文字の個数と同数のランダム・キーを得るステップからなる、請求項１ないし３のいずれか一項に記載の方法を用いても達成される。
【００１１】
これらの目的は、請求項５に従って、所定のアルゴリズムを使用して前記「アプリケーション」パスワードを計算する前記ステップが、
・所定のメッシング関数を使用して前記少なくとも１つのランダム・キーを前記少なくとも１つのマスタ・パスワードとメッシングするステップと、
・前記「アプリケーション」パスワード構文規則が前記記憶手段の前記レコード内で見つかる場合にこれに従って、前記メッシング・ステップの前記結果に適用される剰余計算を実行することによって前記「アプリケーション」パスワードの各文字を計算するステップと
を含む、請求項１ないし４のいずれか一項に記載の方法を用いても達成される。
【００１２】
これらの目的は、請求項６に従って、メッシング関数自体を判定する最初のステップが、
・前記ユーザが、メッシング関数を選択するステップと、
・前記コンピュータが、前記選択されたメッシング関数を、前記「アプリケーション」名および前記少なくとも１つの生成されたランダム・キーと共に前記記憶手段の同一のレコードに保管するステップと、
・前記コンピュータが、この「アプリケーション」に対応する前記メッシング関数を読み取るステップと
を含む、請求項１ないし５のいずれか一項に記載の方法を用いても達成される。
【００１３】
これらの目的は、請求項７に従って、前記記憶手段の前記保管ステップおよび前記読取ステップが、前記コンピュータにローカルに実行される、請求項１ないし６のいずれか一項に記載の方法を用いても達成される。
【００１４】
これらの目的は、請求項８に従って、前記記憶手段の前記保管ステップおよび前記読取ステップが、前記コンピュータにリモートに実行される、請求項１ないし６のいずれか一項に記載の方法を用いても達成される。
【００１５】
これらの目的は、請求項９に従って、前記記憶手段の前記保管ステップおよび前記読取ステップが、前記「キー」テーブルを列によって分割することによってリモートにおよびローカルに実行される、請求項１ないし６のいずれか一項に記載の方法を用いても達成される。
【００１６】
これらの目的は、請求項１０に従って、前記ユーザによって実行される前記ステップが、ユーザ・コンピューティング・デバイスで実行され、前記コンピュータによって実行される前記ステップが、ネットワークを介して前記ユーザによってアクセスされるリモート・サーバで実行される、請求項１ないし９のいずれか一項に記載の方法を用いても達成される。
【００１７】
これらの目的は、請求項１１に従って、前記ユーザによって実行される前記ステップが、さらに、ローカルに擬似ランダムに生成されたテール・キーを前記「マスタ」パスワードの末尾に追加するステップを含み、前記リモート・サーバによって実行されるステップが、さらに、前記リモート・サーバで同一のテール・キーを同時にランダムに生成し、マスタ・パスワードの前記テール・キーが前記リモート・サーバで生成された前記テール・キーと異なる場合に前記方法のさらなるステップを処理するのではなく前記ユーザにエラー・メッセージを送るステップを含む、請求項１０に記載の方法を用いても達成される。
【００１８】
これらの目的は、請求項１２に従って、
前記「アプリケーション」パスワードを変更する、前記ユーザからの要求の際に、古い「アプリケーション」パスワードを再計算すること、および
前記ユーザが、「アプリケーション」名および少なくとも１つの好ましいパスワードすなわちいわゆる前記「マスタ」パスワードを入力すること
をさらに含み、
・前記コンピュータが、少なくとも１つのランダム・キーを生成し、
・前記コンピュータが、前記アプリケーション名および前記少なくとも１つの生成されたランダム・キーを記憶手段のレコードに保管し、
・前記コンピュータが、前記少なくとも１つの「マスタ」パスワードおよび前記少なくとも１つのランダム・キーを入力として使用することによって、新しい「アプリケーション」パスワードを計算する所定のアルゴリズムを使用し、
・前記コンピュータが、前記古い計算された「アプリケーション」パスワードおよび前記新しい計算された「アプリケーション」パスワードを前記ユーザに供給する
請求項１ないし１１のいずれか一項に記載の方法を用いても達成される。
【００１９】
これらの目的は、請求項１３に従って、記憶手段のレコード内で実行される前記読み取るステップ、前記検索するステップ、および前記保管するステップが、テーブルすなわちいわゆる前記「キー」テーブルのレコード内で実行される読み取るステップ、検索するステップ、および保管するステップである、請求項１ないし１２のいずれか一項に記載の方法を用いても達成される。
【００２０】
これらの目的は、請求項１４に従って、
「前記ユーザが、アプリケーション名および少なくとも１つのマスタ・パスワードを入力する」前記ステップが、
・前記コンピュータが、前記「アプリケーション」から前記「アプリケーション」名を受け取るステップと、
・前記ユーザが、前記コンピュータで少なくとも１つのマスタ・パスワードを入力するステップと
によって置換され、「前記コンピュータが、前記計算された「アプリケーション」パスワードを前記ユーザに供給する」前記ステップが、
・前記コンピュータが、前記計算された「アプリケーション」パスワードを前記「アプリケーション」に供給するステップ
によって置換される、請求項１ないし１３のいずれか一項に記載の方法を用いても達成される。
【００２１】
これらの目的は、請求項１５に従って、プログラムがコンピュータで実行されるときの、請求項１ないし１４のいずれか一項に記載の方法の前記ステップを実行するプログラミング・コード命令を含むコンピュータ・プログラム製品を用いても達成される。
【００２２】
これらの目的は、請求項１６に従って、請求項１ないし１４のいずれか一項に記載の方法を実行するように適合された手段を含むシステムを用いても達成される。
【００２３】
本発明の認証方法を用いると、ユーザは、総合的なセキュリティを危険にさらさずに、複数の認証動作を簡単かつセキュアに管理することができる。パスワードが、まずユーザ入力（１つまたは複数のマスタ・パスワードを含む）から計算されるときに、１つまたは複数のランダム・キーが、生成され、保管される。計算されたパスワードは、アプリケーションへの接続に使用することができるが、保管「されない」。その代わりに、これらのパスワードは、保管されたランダム・キーを使用して再生成され、キーを保管したテーブルの内容を読み取ったハッカーは、使用されるマスタ・パスワードおよび計算アルゴリズムの知識がなければ、対応するパスワードを再生成することができない。満了ポリシを尊重するためのパスワードの変更は、新しいランダム・キーの再生成および新しいパスワードの計算によって単純に管理される。
【００２４】
同一のマスタ・パスワードを、セキュリティを危険にさらさずに、複数のアプリケーションに接続するパスワードを計算するためのユーザ入力として使用することができる。これによって、ユーザの義務が単純になり、ユーザは、１つのパスワードを記憶するだけでよい。
【００２５】
このソリューションの他の利益は、異なる状況への適応能力に関する。たとえば、複数のマスタ・パスワード（１つは会社イントラネット用、１つはインターネット・アプリケーション用）を使用して、セキュリティをさらに高めることができる。もう１つの代替案は、１つの非常に機密のアプリケーションへの接続に複数のマスタ・パスワードを使用することにある。
【００２６】
もう１つの適応は、より低いセキュリティ・グレード・ソリューションのために、保管されたキーをそれを要求するユーザに送ることによって、世界中からの認証サービスを可能にする共用サーバを提供することにあるものとすることもできる。これは、ユーザが何もローカルに保管する必要がなく、必要なときに一時的にロードできることを暗示する。
【００２７】
必ず、リモート・システムごとにパスワード計算に異なる関数を使用することが可能なので、このソリューションの追加の適合が可能である。
【００２８】
本発明の方法を、アプリケーションへのユーザのアクセスまたは特定のコンピュータ支援デバイス（いわゆるユーザ・デバイス）からシステムへのログインをロックするのに使用することができることにも留意されたい。実際に、パスワード計算は、アクセスが要求される特定のユーザ・デバイスに置かれた「キー」テーブルに依存する。さらなるセキュリティのために、「キー」テーブルをその機械の非リムーバブル・ストレージに保管することを検討することができる。ユーザは、おそらく、最終的なアプリケーション・パスワードが何であるかを知ることができないので、そのユーザは、その特定のユーザ・デバイスを使用していない場合に、アプリケーション／システムにアクセスできないか、アプリケーション／システムにアクセスすることを強制されることができない。このソリューションは、ネットワーク・アドレスによって識別される許可される機械をシステム／アプリケーションから選択することからなる既存ソリューションまたは匹敵するソリューションと比較して、改善されている。事実の問題として、この後者のソリューションは、通常、ネットワーク・プロトコル依存であり、ユーザ・デバイスのアドレスをおそらくはごまかすことができるので、より非セキュアである。また、ユーザ・デバイス・アドレスの維持は、重い維持プロセスを必要とするが、この維持プロセスは、本発明のソリューションを用いれば完全に不要である。
【００２９】
さらに、本発明のソリューションは、クライアントベースのみのソリューションとすることができるので、インストールが単純である。
【００３０】
本発明の特記される利益の１つは、実生活の状況で、ユーザが、後で好ましい実施形態の詳細な説明で説明する認証要求を処理する異なる可能な実装変形形態（その好ましい実施形態は、ユーザがアクティブ化するソリューション、アプリケーションが認証プログラムを自動的にアクティブ化するときにパブリッシュされるインターフェース、認証プログラムがアプリケーション認証プロトコルを知っている特定の「アプリケーション」認証プロトコル統合である）のすべてからの異なるオプションを有することによる、同一の認証プログラムで同時に利益を得ることができることである。
【発明を実施するための最良の形態】
【００３１】
図１に、本発明の好ましい実施形態の環境を示す。好ましい実施形態では、特に「キー」テーブル（１７５）を使用する「認証」プログラム（１７０）が、コンピュータ支援デバイス（１４０、１４５、１５０）で実行されて、コンピュータ・システムまたはアプリケーションへのユーザのアクセスを制御する。この文書の残りで、好ましい実施形態の方法で、１アプリケーションであるいわゆる「アプリケーション」へのアクセスについて語るが、同一の方法が、システムへのアクセスに適用されることを理解されたい。「アプリケーション」（１９０）は、サーバ（１６０）で動作し、各「アプリケーション」（１９０）は、おそらく「アプリケーション」インターフェース（１８０）を提供する。「アプリケーション」インターフェースを、サーバ（１６０）によって直接に提供することもできることに留意されたい。コンピュータ支援デバイスは、スマート・カード・リーダなどの組み込みインターフェース、ワークステーションであるコンピュータ支援デバイス（１４０、１５０、１４５）、ＰＳＴＮなどのＶＯＩＰおよびＰＯＴＳとすることのできる電話回線（１９５＋１９７＋１９６）などの任意のタイプとすることができる。「アプリケーション」データ処理システムは、任意の性質のネットワーク（１００、１１０、１２０、１３０、１９７）すなわち、ローカル・エリア・ネットワーク（１３０、１２０）、広域ネットワーク（１００、１１０）、無線ネットワークまたは有線ネット、ＶＯＩＰネットワークまたはＰＳＴＮネットワークである電話回線（１９７）を介して分散することができる。本発明の「認証」プログラムを実装するデバイスは、リモートのコンピュータ支援デバイス（１４０、１５０）上またはアプリケーションの稼動するシステム上とするか、同一システムに常駐することさえできる。
【００３２】
図２は、好ましい実施形態による方法の全般的な流れ図である。デバイスのユーザが、ローカルにまたはリモートにのいずれかで「アプリケーション」に接続する必要があるときに、そのユーザは、通常、適当な「アプリケーション」インターフェース（１８０）を起動する。「アプリケーション」インターフェースは、ブラウザ、ｔｅｌｎｅｔセッション、端末エミュレーション、ウィンドウベース・インターフェース、または他のインターフェーシング・プログラムとすることができる。ユーザは、「アプリケーション」インターフェースを介して「アプリケーション」にサービスの要求を送る。「アプリケーション」は、通常、ユーザ・サービス要求を満足する前に、「アプリケーション・インターフェース」を介してユーザに認証要求を送る。この要求を満足するために、ユーザは、いわゆるユーザＩＤおよび「アプリケーション」パスワードを「アプリケーション」インターフェースを介して入力しなければならない。ユーザは、好ましい実施形態で、ユーザにローカルなアプリケーションである認証プログラムを始動する（２００）。この認証プログラムは、「アプリケーション」によって受け入れられる「アプリケーション」パスワードをユーザのために計算する責任を負う。「認証」プログラムは、ユーザに「アプリケーション」名を入力するように求める（２１０）。「認証」プログラムは、テーブル内にレコードがある場合に、特定のフィールドに「アプリケーション」名を含む「キー」テーブル（図１の１７５）を検索する。
【００３３】
「認証」プログラムが、「キー」テーブル内でユーザによって供給された「アプリケーション」名を有するレコードを見つけない（テスト２３０に対する回答Ｎｏ）場合に、これは、ユーザが、このアプリケーションに一度も接続したことがないことと、この「アプリケーション」へのユーザの最初の接続についてパスワードを作成しなければならないことを意味する。この場合に、「認証」プログラムは、最初の「アプリケーション」パスワード計算が好ましいパスワード、「マスタ」パスワード、「関数タイプ」、および「アプリケーション」のパスワード構文規則を入力するためのウィンドウ（後でこの文書で図５に関して説明する）を用いてユーザにプロンプトを出す（２４０）。関数タイプは、後でこの文書で説明するように、「認証」プログラムによって「アプリケーション」パスワードの計算に使用される数学関数の簡略名とすることのできる識別子であり、認証プログラムの所定の関数に対応することができ、あるいは、ユーザに、数学関数を入力するように促すことができる。入力関数がユーザによって入力されない場合に、デフォルト値が、関数タイプと構文規則の両方について提供される。好ましい実施形態では、関数タイプのリストが表示され、ユーザが、その中で選択する。次に、「認証」プログラムは、少なくとも１つのキーをランダムに生成し（２５０）、好ましい実施形態では、「アプリケーション」パスワードの１文字ごとに１つのキーが生成される。ランダム・キーを生成したならば、「認証」プログラムは、「アプリケーション」名のフィールド（このフィールドは、「キー」テーブルの将来の使用のための検索キーとして使用される）と、関数タイプのフィールド、ランダム・キーのフィールド、および「アプリケーション」パスワード構文ルールのフィールドとを有する「キー」テーブル内のレコードを作成する（２６０）。次に、「認証」プログラムは「マスタ」パスワード、「アプリケーション」パスワード構文規則、およびランダム・キーを使用して、「アプリケーション」パスワードを計算する（２７５）。構文規則に従い、キーに基づいてパスワードを計算する多数の既存の形があり、好ましい実施形態は、後でこの文書で図６に関して説明する１例である。好ましい実施形態では、「アプリケーション」パスワードが、計算された後に、隠された形（「＊＊＊＊＊＊＊＊」）で、「認証」プログラムによってユーザに表示される（２８０）。
【００３４】
認証プログラムが、ユーザによって入力された「アプリケーション」名を有するレコードを「キー」テーブル内で見つける（テスト２３０に対する回答Ｙｅｓ）場合に、これは、ユーザが、既に一度「アプリケーション」にアクセスしていることと、「アプリケーション」パスワードが、以前に、この文書で直前で説明したように計算済みであることを意味する。その結果、ランダム・キーが、既に認証プログラムによって生成されており、「キー」テーブルのレコードに保管されている。この場合に、認証プログラムは、最初の「アプリケーション」パスワード計算用のウィンドウを表示するのではなく、「アプリケーション」パスワードを再計算するウィンドウ（後でこの文書で図４に関して説明する）でユーザにプロンプトを出す。「認証」プログラムは、関数タイプ、ランダム・キー、および「アプリケーション」パスワード構文規則を、この「アプリケーション」の「キー」テーブルのレコードから取り出す（２６５）。次に、ユーザが、「マスタ」パスワードを入力するように要求され（２７０）、「認証」プログラムが、最初の「アプリケーション」パスワード計算に関して説明したものと同一の形で「アプリケーション」パスワードを計算し（２７５）、好ましい実施形態で、そのパスワードを隠された形（「＊＊＊＊＊＊＊＊」）でユーザに表示する（２８０）。
【００３５】
ユーザは、認証プログラムによって供給される計算されたパスワードを読み取り、「アプリケーション・インターフェース」に入力することができる。好ましい実施形態では、ユーザは、「認証」プログラムのウィンドウに表示された隠された形の「アプリケーション」パスワードをコピーし、「アプリケーション」インターフェースのウィンドウに貼り付ける（２８５）。次に、「アプリケーション」パスワードが、ユーザによって「アプリケーション」インターフェースを介して「アプリケーション」に送られる。次に、「アプリケーション」が、「アプリケーション」を実行するサーバ上でパスワード検査を実行し、「アプリケーション」インターフェースを介して、認証されたユーザとの接続を開始する。ユーザは、今、「認証」プログラム実行を停止することができる。
【００３６】
ランダム・キーの生成：当業者に既知の多数の既存のランダム・キー・ジェネレータがある。唯一の制約は、これらのキーを「キー」テーブルのレコードに書き込まなければならないことである。好ましい実施形態では、生成されるランダム・キーの個数が、「アプリケーション」パスワードの文字数と等しい。
【００３７】
「アプリケーション」パスワードの計算：ランダム・キーを使用する「アプリケーション」パスワードの計算は、好ましい実施形態では、文字ごとに実行される。好ましい実施形態では、「アプリケーション」パスワードの文字ごとに１つのランダム・キーが生成されており、すべてのキーが、「キー」テーブル内の対応する「アプリケーション」のレコードに保管される。「アプリケーション」パスワードの文字「ｉ」ごとに（「ｉ」は、１と「アプリケーション」パスワードの文字数との間である）、計算の最初のステップは、ユーザによって選択された関数タイプを使用する、ランダム・キー「ｉ」から計算された値と「マスタ」パスワードから計算された値との数学的メッシングからなる。関数は、ｆ（Ｍ，Ｋｉ）の形であり、ここで、Ｍは、「マスタ」パスワードの各文字のＡＳＣＩＩ値から所定の形で計算される正の数であり、Ｋｉは、対応するランダム・キーの各文字のＡＳＣＩＩ値から所定の形で計算される正の数である。好ましい実施形態では、「アプリケーション」パスワードの文字「ｉ」を計算する第２ステップが、第１ステップで計算された数を、剰余計算技法を使用することによって、図６で説明する、その「アプリケーション」のパスワード構文規則に従う文字に変換することからなる。前に述べたように、好ましい実施形態のソリューションを用いると、ローカル・ユーザ・デバイスは、ランダム・キーだけを保管し、このランダム・キーは、ハッカーによって盗まれた場合に、「アプリケーション」パスワードを計算するのに不十分である。というのは、計算のアルゴリズムと「マスタ」パスワードが必要であるからである。
【００３８】
ランダム・キーの個数：「アプリケーション」パスワードの計算中に、認証プログラムによって生成される１つまたは複数のランダム・キーがある場合がある。同一の一意のランダム・キーを、「アプリケーション」パスワード文字を計算するすべてのループで使用することができる。代替案では、好ましい実施形態がそうであるが、「アプリケーション」パスワード全体を計算するのに一意のランダム・キーを生成するのではなく、認証プログラムが、「アプリケーション」パスワードの文字ごとに１つのランダム・キーを計算する。ランダム・キーの個数を増やすことによって、セキュリティが高まる。他の実施形態では、異なる個数のキーを生成し、「アプリケーション」パスワードの計算に使用することができる。
【００３９】
「マスタ」パスワードの個数：ユーザは、すべての「アプリケーション」での認証に同一の「マスタ」パスワードを使用することができる。すべての「アプリケーション」に同一の「マスタ」パスワードが用いられる場合であっても、「アプリケーション」パスワードが、「アプリケーション」ごとにランダムに生成されるキーを使用することによって計算され、「アプリケーション」パスワード構文規則を異なるものにすることができるので、計算される「アプリケーション」パスワードは、すべて異なる。代替案では、ユーザが、異なるタイプのアプリケーションのセキュリティのレベルに従って、制限された個数の「マスタ」パスワードを使用することを選択することができる。この可能性は、好ましい実施形態のソリューションを、柔軟にし、非常に異なるレベルのセキュリティを有する多数の環境に同時に適合可能にする。
【００４０】
「アプリケーション」構文規則オプション・フィールド：「アプリケーション」パスワード構文規則は、「アプリケーション」パスワードが始めて計算されるときに、「認証」プログラムのウィンドウ内でユーザによって入力される。「認証」プログラムは、「アプリケーション」パスワード構文規則を「キー」テーブルに保管し、「アプリケーション」パスワードが再計算されるたびにそれを再利用する。ユーザによって定義されない場合に、「認証」プログラムは、デフォルト「アプリケーション」パスワード構文規則を適用する。
【００４１】
関数タイプ・オプション・フィールド：関数タイプは、「アプリケーション」パスワードの計算に使用される数学関数の簡略名である。好ましい実施形態では、関数は、「アプリケーション」パスワード文字計算の第１ステップで使用される。この関数の複雑さに応じて、「アプリケーション」パスワード計算が、異なるレベルのセキュリティを有する。しかし、数学関数が複雑であるほど、その計算がより長いＣＰＵ時間を使用する。多数の数学関数を、その目的に使用することができ、認証プログラムを、それ相応にパラメータ化することができる。好ましい実施形態では、関数タイプが、最初の「アプリケーション」パスワード計算用の「認証」プログラムのウィンドウ内のリストから選択される。ユーザによって定義されない場合に、「認証」プログラムが、デフォルト関数タイプを適用する。
【００４２】
通常、「アプリケーション」プログラムによって要求されるアプリケーション・パスワード変更を処理するために、ユーザは、古いパスワードと新しいパスワードの両方を必要とする。ユーザは、「認証」プログラムを始動し、この「認証」プログラムが、古いパスワード計算のための図４と同一の情報および新しいパスワード計算のための図５の情報をユーザに求める。次に、認証プログラムは、古いパスワードを再計算し、新しいパスワードを計算する。最後に、「認証」プログラムは、古いアプリケーション・パスワードと新しいアプリケーション・パスワードの両方を、好ましい実施形態では隠された形（「＊＊＊＊＊＊＊＊」）でユーザに表示する。
【００４３】
ユーザは、認証プログラムによって供給された計算されたパスワードを読み取り、「アプリケーション・インターフェース」に入力する。好ましい実施形態では、ユーザは、「認証」プログラムのウィンドウに表示された隠された形の「アプリケーション」パスワードをコピーし、「アプリケーション」インターフェースのウィンドウに貼り付ける。パスワード変更が「アプリケーション」プログラムによってユーザに対して確認され、ユーザによって「認証」プログラムに対して確認された後に、新しい情報が、「キー」テーブルのレコードに保管される。
【００４４】
他の実施形態は、おそらく組み合わせることのできる、次の変形形態を有することができる。
・リモート「キー」テーブル：ローカルにではなく、「アプリケーション」インターフェースからリモートに「キー」テーブルをローカライズすること。この場合に、「キー」テーブルを、複数のユーザによって使用することもでき、各レコードに、「ユーザＩＤ」用の追加フィールドが含まれる。ユーザは、「認証」プログラムを使用するときに、ユーザＩＤも供給しなければならない。集中化された共通のテーブルは、レコードを区別する一意キーとしてユーザＩＤおよびアプリケーション名の組合せを用いる集中サービスを提供するのに貴重である。
・絶対に終了しない「認証」プログラム：ユーザ・デバイスでローカルに稼動する、自動開始の絶対に終了しないプログラムとして「認証」プログラムを実装すること。この「認証」プログラムは、「アプリケーション」からの認証要求をインターセプトし、「アプリケーション」名をユーザに提供する「認証」プログラム・インターフェースをユーザに表示し、その後、普通に振る舞い、計算されたパスワードを要求元のアプリケーションに直接に送る。これは、好ましい実施形態ではない。というのは、この場合に、認証プログラムが、認証に関して「アプリケーション」の特定のプロトコルに適合されるからである。この実施形態の「認証」プログラムは、ユーザが自分のユーザ・デバイスから接続しようとするどの「アプリケーション」からも独立のプログラムとすることができない。この悪影響は、多数のアプリケーションが認証に関して同一の標準規格に準拠する場合などの、条件付きの状況によって軽減することができる。
・パブリッシュされたインターフェースとしての「認証」プログラム：認証システムによって呼び出されている常駐プログラム（Ｊａｖａ（Ｒ）アプレット、ＡｃｔｉｖｅＸ、…）またはリモート・サービス（ウェブ・サービス、…）を用いて、パブリッシュされたインターフェースとして「認証」プログラムを実装すること。「アプリケーション」は、「認証プログラム」のパブリッシュされたインターフェースを使用して、これにアプリケーション名を送る。次に、「認証」プログラムは、ユーザとインターフェースして、「アプリケーション」名を供給し、欠けているデータ（マスタ・パスワード、…）を得る。次に、アプリケーション・パスワードを計算し、パブリッシュされたインターフェースを使用して、計算されたパスワードを要求元の「アプリケーション」に直接に送り返す。絶対に終了しない「認証」プログラムと同様に、これは好ましい実施形態ではない。というのは、この場合に、アプリケーションが、認証に関して「認証」プログラムの特定のパブリッシュされたインターフェースに適合されるからである。「アプリケーション」プログラムを、ユーザが使用する「認証」プログラムから独立にすることはできない。この悪影響は、「認証」プログラムのパブリッシュされたインターフェースを標準化できる場合に軽減することができる。
【００４５】
図３に、好ましい実施形態による「キー」テーブルの例を示す。このキー・テーブルに、「認証」プログラムが必要とする永久的情報だけが保管される。最初のフィールドに、「アプリケーション」名（３０１）が含まれ、次のフィールドに、ランダム・キー（３０３…３０４）が含まれ、最後のフィールドに、「アプリケーション」パスワード構文規則（３０５）が含まれる。３０５で、「Ａ」は、パスワード構文規則を記述する英数字文字を保管することを意味し、Ｎは数字、Ｃは文字である。他のコーディングを使用して、パスワード規則を表すことができる。
【００４６】
「認証」プログラムが、関数タイプについてデフォルト値によるもの以外の可能な選択を有する可能性を提供する場合に、フィールド（３０６）に、ユーザによって指定された関数タイプも含まれる。セキュリティを強化するために関数タイプを保管しないことが、オプションである。この場合に、ユーザは、認証が必要になるたびにその情報を供給する。「アプリケーション」名、「アプリケーション」パスワード構文規則、および関数タイプは、「アプリケーション」パスワードの最初の計算のときに、ユーザによって入力され、「認証」プログラムによって保管される。ランダム・キーは、「アプリケーション」パスワードの最初の計算のときに、「認証」プログラムによって計算され、「キー」テーブルに保管される。
【００４７】
図４に、好ましい実施形態による「アプリケーション」パスワード再計算用の「認証」プログラム・ユーザ・ダイアログのウィンドウ（４００）を示す。この例では、ユーザが、以前に「アプリケーション」名、ここでは「ｍｙ  Ｉｎｔｅｒｎｅｔ  ｍａｉｌ」（４０５）を入力している。このウィンドウで、「認証」プログラムは、既にわかっている「アプリケーション」の「アプリケーション」パスワードを再計算するのに必要なマスタ・パスワードを対応するフィールド（４２０）に収集する情報ボックス（４１０）を表示し、このフィールド（４２０）に、「マスタ」パスワードが、隠された形（「＊＊＊＊＊＊＊＊」）で表示される。「認証」プログラムは、ユーザに、フィールド（４４０、４６０）で、「キー」テーブルから取り出されたパスワード構文規則（４３０）および関数タイプ（４５０）の情報も供給する。１つのボタン（４７０）は、情報を供給せずにこのインターフェースを閉じるためにユーザによってクリックされ、第２のボタン（４８０）は、「アプリケーション」パスワード再計算のために「認証」プログラムに情報をサブミットするためにユーザによってクリックされる。
【００４８】
図５に、好ましい実施形態による最初の「アプリケーション」パスワードの計算および「キー」テーブルの更新用の「認証」プログラム・ユーザ・ダイアログのウィンドウ（５００）を示す。この例では、ユーザが、「アプリケーション」名、ここでは「ｍｙ  Ｉｎｔｅｒｎｅｔ  ｍａｉｌ」をフィールド（５０５）に入力している。このウィンドウで、「認証」プログラムは、「アプリケーション」パスワードを初めて計算するのに必要なすべての情報を収集するための他の情報ボックスを表示する。第１の情報ボックス（５１０）は、ユーザが対応するフィールド（５２０）に「マスタ」パスワードを入力するためのものであり、ここで、「マスタ」パスワードは、隠された形（「＊＊＊＊＊＊＊＊」）で表示される。１つの他の情報ボックス（５３０）は、ユーザが、対応するフィールド（５４０）に「アプリケーション」パスワード構文規則を入力するためのものである。１つの他の情報ボックス（５５０）は、ユーザが、対応するフィールド（５６０）内のリストのうちの１つを選択することによって関数タイプを入力するためのものである。関数タイプは、「アプリケーション」パスワード生成の第１ステップで「マスタ」パスワードとランダム・キーを数学的にメッシングするのに、好ましい実施形態の「認証」プログラムによって使用される関数である。関数タイプのリストは、より高いセキュリティおよび実行時のより長いＣＰＵ時間を暗示する複雑さの順である。１つのボタン（５７０）は、情報を供給せずにこのインターフェースを閉じるためにユーザによって使用され、第２のボタン（５８０）は、「アプリケーション」パスワードの最初の計算のためおよびフィールド（５０５、５４０、５６０）の情報をランダム・キーと共に図３に示された「キー」テーブルの新規レコードに保管するために、「認証」プログラムに情報をサブミットするためにユーザによって使用される。
【００４９】
図６は、図２の全般的な流れ図のステップ２７５として参照される「アプリケーション」パスワード生成ステップの流れ図である。第１ステップ（６００）は、「認証」プログラムが、「アプリケーション」パスワード生成に使用される情報を読み取ることからなる。この「アプリケーション」パスワード生成が再計算である場合に、「認証」プログラムは、この「アプリケーション」に対応する「キー」テーブルのレコード内のランダム・キー、関数タイプ、および「アプリケーション」パスワード構文規則を読み取る。「マスタ」パスワードは、図４に関して説明したメニューでユーザによって供給された入力から、「認証」プログラムによって読み取られる。「アプリケーション」パスワード生成が最初の計算である場合には、パスワード・ジェネレータは、図５に関して説明した対応するウィンドウでユーザによって供給された入力を読み取ることによって、必要なデータを収集する。「認証」プログラムは、好ましい実施形態では、文字ごとに「アプリケーション」パスワード文字を計算する。「認証」プログラムは、「マスタ」パスワードを読み取り、最初のランダム・キーと数学的にメッシング（６１５）して、本特許で前に説明したように最初の数を得る。最初の文字の「アプリケーション」パスワード構文規則が、１例として、アルファベット文字でなければならない場合に、「認証」プログラムは、この数の２６を法とする剰余をとり（６２０）、これをカーソルとして使用して、アルファベットの対応する文字を見つける（６３０）（Ａは０、Ｂは１、…）。したがって、この文字が、「アプリケーション」パスワードの最初の文字である。同様に、文字の構文規則が、１桁の整数である場合には、当技術分野で周知のように、メッシング演算からの結果の数に対する１０を法とする剰余の計算（６２０、６３０）が実行される。一般に、「認証」プログラムは、数としてｆ（Ｍ，Ｋｉ）の結果、除数としてパスワード規則による最大の許容可能な文字数に対応する数を使用する剰余計算を実行する。まだすべての文字が作成されてはいない（テスト６４０に対する回答「Ｎｏ」）場合に、「アプリケーション」パスワードのすべての文字が計算される（テスト６４０に対する回答「Ｙｅｓ」）まで、次のランダム・キーが読み取られ（６４５）、プロセス（６１５、６２０、６３０）が繰り返される。
【００５０】
図７に、「認証」プログラムが所与の「アプリケーション」への接続を求めるユーザにサービスとして提供される、本発明の１実施形態を示す。ユーザは、図１に示されたすべてのタイプとすることができる。このユーザは、ユーザ・デバイス（７３０）からネットワーク（７１０）を介してリモートのサーバ（１６０）上の「アプリケーション」（１９０）に接続するために認証を必要とするユーザ、または電話回線（１９６、１９７）と、ＩＶＲ（対話型音声応答）プログラムおよび「アプリケーション」インターフェースを動作させる中継サーバ（７００）とを介して「アプリケーション」に接続することを必要とするユーザとすることができる。相違は、「認証」プログラム（１７０）が、ユーザ・デバイスでも中継サーバ（７００）でも動作せず、プロバイダ・サーバ（７２０）で動作する独立アプリケーションとして動作し、ユーザのプロキシとして働くことである。ユーザ・インターフェース（７４０）が、「認証」プログラム・サービスへのユーザの接続を可能にする。「認証」サービスは、ユーザの「キー」テーブル（１７５）を生成し、保管する。「認証」プログラムが、サービスとして使用される場合に、認証を要求するユーザを識別し、そのユーザ固有の「キー」テーブルを使用することに留意されたい。ユーザが、プロバイダ側の「認証」プログラムが「アプリケーション」パスワードを再計算することを求めるときに、「認証」プログラムは、ユーザから「マスタ」パスワードおよび「アプリケーション」名を収集し、「アプリケーション」パスワードを生成し、ユーザに送り返す。
【００５１】
もう１つのサービス状況は、ユーザにキー・テーブルの安全な保管および送達を提供する状況である。その状況では、「認証」プログラム（１７０）およびキー・テーブル（１７５）が、要求元ユーザに送達され、この要求元ユーザは、好ましい実施形態およびその可能な適用可能な変形形態と同様にこれらを使用する。このサービスおよび前のサービスは、プロバイダ・サーバ（７２０）を有するイントラネットで使用される場合、およびロケーション・セキュリティを実施するために保護されたユーザ・デバイス（７３０）または中継サーバ（７００）からのみアクセス可能であるときにも価値があるものとすることができる。
【００５２】
使用可能度またはセキュリティを改善するために、サービスとして実装される「認証」プログラムに関する異なる実装がある。使用可能度またはセキュリティを改善するために、ユーザ・デバイス（７３０）が不安全と考えられる場合に、プロバイダ・サーバ（７２０）側の「認証」プログラムは、「アプリケーション」パスワードをユーザに送り返すのではなく、「アプリケーション」パスワードをリモートのサーバ（１６０）上の対応する「アプリケーション」（１９０）に直接に送り、したがって、保護されていないシステムであるユーザ・デバイス（７３０）および中継サーバ（７００）に「アプリケーション」パスワードを供給する必要をなくす。この文書で既に前に述べた、「絶対に終了しない認証」プログラムまたはパブリッシュされたインターフェースとしての「認証」プログラムのソリューションと同様に、この「アプリケーション」プログラムは、「認証」プログラムから独立でない。
【００５３】
サービスとしての本発明の他の実装は、改善されたセキュリティを有することができる。「マスタ」パスワードをユーザ・デバイスからプロバイダに送るのを避けるために、ワン・タイム・パスワード（ＯＴＰ）が、ユーザ・インターフェース（ＵＩ）から「マスタ」パスワードを送る前にＯＴＰの末尾に追加される。この実施形態では、ＯＴＰジェネレータ・プログラムが、ユーザおよびプロバイダによって操作される。ＯＴＰジェネレータは、当技術分野で周知であり、ＯＴＰジェネレータは、同時にユーザおよびプロバイダについてトークンを擬似ランダムに生成し、このトークンは、たとえば８桁の数である。「マスタ」パスワードおよびＯＴＰのプロバイダでの受取時に、「認証」プログラムは、ユーザおよびプロバイダによって生成されたＯＴＰが同一であることを検査することによって、「マスタ」パスワードが実際に所与のユーザから来たかどうかを検査する。ＯＴＰが２つの機械で同一である場合に限って、「認証」プログラムは、「マスタ」パスワードおよびランダム・キーから「アプリケーション」パスワードを計算する。ハッカーは、「アプリケーション」パスワードおよびＯＴＰをインターセプトすることができるが、これらを使用してリモート・アプリケーションにアクセスすることはできない。というのは、アクセスが、異なる瞬間に行われ、ＯＴＰが、「認証」プログラムに関してもはや有効でないからである。
【００５４】
サービスとしての本発明の１つの他の実装に、ユーザ・デバイス（７３０）とプロバイダ・サーバ（７２０）の間での「キー」テーブル（１７５）の分割を含めることができる。２つの「キー」テーブルへの「キー」テーブルの分割は、リモートおよびローカルの「キー」テーブルで「アプリケーション」名を複製することによって行うことができ、「アプリケーション」パスワード構文規則および関数タイプは、２つの「キー」テーブルで複製されまたは複製されないのいずれかであり、ランダム・キーの一部が、ローカル「キー」テーブルに保管され、残りのランダム・キーが、リモート「キー」テーブルに保管される。「キー」テーブルがリモートおよびローカルの「キー」テーブルに分割される場合に、ＵＩによって送られる認証サービスに関する要求に、必ず、ユーザのコンピュータ・デバイス上でそのＵＩプログラムによってローカルに読み取られたランダム・キーの部分が含まれる。「アプリケーション」パスワードを計算するために、プロバイダ側の「認証」プログラムは、プロバイダに保管された「キー」テーブルの部分に保管されたランダム・キーと、ユーザ・コンピュータ・デバイスに保管された「キー」テーブルの第２部分に保管された、「マスタ」パスワードと共にユーザによってプロバイダに送られるランダム・キーとを必要とする。これは、サービス・プロバイダによるユーザの暗黙の認証という利益を提供し、１つの部分としてのユーザのキー・テーブルのユーザ制御は、プロバイダ・サーバ（７２０）から永久的に使用可能ではないはずである。
【００５５】
「認証」プログラムが、パブリッシュされるインターフェースとして実装される場合に、前の段落で説明した分割の種類に似た「キー」テーブルの分割を、ユーザ・デバイス（７３０）、プロバイダ・サーバ（７２０）、および「アプリケーション」をホスティングするサーバ（１６０）の間で行えることにも留意されたい。というのは、「アプリケーション」（１９０）が、このパブリッシュされたインターフェースを使用して、プロバイダ側の「認証」プログラムと通信できるからである。これは、サービス・プロバイダによるユーザおよび「アプリケーション」の暗黙の認証という追加の利益をさらに提供するはずである。
【図面の簡単な説明】
【００５６】
【図１】本発明の好ましい実施形態の環境を示す図である。
【図２】好ましい実施形態による方法を示す全般的な流れ図である。
【図３】好ましい実施形態による、本方法によってランダムに生成されるキーと、「アプリケーション」パスワード生成に関する他の情報とを保管する「キー」テーブルの例を示す図である。
【図４】好ましい実施形態に従って開発されたユーザ・インターフェースの一部である「アプリケーション」パスワード再計算用のダイアログを示す図である。
【図５】好ましい実施形態に従って開発されたユーザ・インターフェースの一部である新規「アプリケーション」パスワード生成用のダイアログを示す図である。
【図６】好ましい実施形態による、図２の全般的な流れ図のステップ２７５の「アプリケーション」パスワード生成を示す詳細な流れ図である。
【図７】「認証」プログラムがサービスとして実装された、本発明の実施形態の環境を示す図である。
【符号の説明】
【００５７】
１００  広域ネットワーク
１１０  広域ネットワーク
１２０  ローカル・エリア・ネットワーク
１３０  ローカル・エリア・ネットワーク
１４０  コンピュータ支援デバイス
１４５  コンピュータ支援デバイス
１５０  コンピュータ支援デバイス
１６０  サーバ
１７０  「認証」プログラム
１７５  「キー」テーブル
１８０  「アプリケーション」インターフェース
１９０  「アプリケーション」
１９５  電話回線
１９６  電話回線
１９７  電話回線
３０１  「アプリケーション」名
３０３  ランダム・キー
３０４  ランダム・キー
３０５  「アプリケーション」パスワード構文規則
３０６  フィールド
４００  ウィンドウ
４０５  「ｍｙ  Ｉｎｔｅｒｎｅｔ  ｍａｉｌ」
４１０  情報ボックス
４２０  フィールド
４３０  パスワード構文規則
４４０  フィールド
４５０  関数タイプ
４６０  フィールド
４７０  ボタン
４８０  ボタン
５００  ウィンドウ
５０５  フィールド
５１０  情報ボックス
５２０  フィールド
５３０  情報ボックス
５４０  フィールド
５５０  情報ボックス
５６０  フィールド
５７０  ボタン
５８０  ボタン
７００  中継サーバ
７１０  ネットワーク
７２０  プロバイダ・サーバ
７３０  ユーザ・デバイス
７４０  ユーザ・インターフェース
【図１】
2007035041.tif 000003
【図２】
2007035041.tif 000004
【図３】
2007035041.tif 000005
【図４】
2007035041.tif 000006
【図５】
2007035041.tif 000007
【図６】
2007035041.tif 000008
【図７】
2007035041.tif 000009