(57)【特許請求の範囲】
【請求項１】
クライアントコンピュータと取引サーバとの間で、電子的要求を認証するための方法において、
１つ以上の第１のコンピューティングデバイスを使用して、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信することと、
前記１つ以上の第１のコンピューティングデバイスを使用して、前記電子的アプリケーション要求の受信に応答して、第１の複数のパラメータの第１の関数として、サイン鍵を構築することと、
前記アプリケーションの第１のバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションの第２のバージョンを形成することと
を含み、
前記電子的要求は、前記電子的要求に関係するユーザの識別子を含み、
前記アプリケーションの第２のバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、方法。
【請求項２】
前記第１の複数のパラメータは、
（ｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉ）前記アプリケーションに関する、前記電子的要求に関係するユーザの識別子と、
（ｉｉｉ）第１の時間ベースのソルト値と、
（ｉｖ）前記１つ以上の第１のコンピューティングデバイスおよび１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のうちの複数を含む、請求項１記載の方法。
【請求項３】
前記アプリケーションの第１のバージョン中に、前記サイン鍵を埋め込みすることは、前記１つ以上の第１のコンピューティングデバイスによって実行され、
前記方法は、
前記アプリケーションの第２のバージョンを、クライアントコンピュータに電子的に配信すること
をさらに含む、請求項１記載の方法。
【請求項４】
前記アプリケーションの第１のバージョン中への、前記サイン鍵の埋め込みは、クライアントコンピュータによって実行され、
前記方法は、
前記アプリケーションの第１のバージョン中への、前記サイン鍵の埋め込みの前に、前記サイン鍵を、クライアントコンピュータに電子的に配信すること
をさらに含む、請求項１記載の方法。
【請求項５】
前記第１の関数は、ハッシュ関数であり、
前記サイン鍵は、
（ｉ）前記アプリケーションに関する電子的要求に関係する前記ユーザの識別子と、
（ｉｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉｉ）第１の時間ベースのソルト値と、
（ｉｖ）前記１つ以上の第１のコンピューティングデバイスおよび前記１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のハッシュである、請求項２記載の方法。
【請求項６】
前記第１の関数は、ハッシュ関数であり、
前記サイン鍵は、
（ｉ）前記アプリケーションに関する前記電子的要求に関係するユーザの識別子と、
（ｉｉ）第１の時間ベースのソルト値と、
（ｉｉｉ）前記１つ以上の第１のコンピューティングデバイスおよび前記１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のハッシュである、請求項２記載の方法。
【請求項７】
前記第１の時間ベースのソルト値は、
（ｉ）前記アプリケーションに関する電子的アプリケーション要求の受信に関係する協定世界時（ＵＴＣ）と、
（ｉｉ）予め定められた時間インクリメントと
の整数除算値である、請求項２記載の方法。
【請求項８】
前記第１の時間ベースのソルト値は、
（ｉ）前記サイン鍵の構築に関係する協定世界時（ＵＴＣ）と、
（ｉｉ）予め定められた時間インクリメントと
の整数除算値である、請求項２記載の方法。
【請求項９】
前記サインされた取引要求は、前記１つ以上の第２のコンピューティングデバイス上で維持されている、前記ユーザの識別子に関係するアカウントを使用して、ゲーム内アップグレードを購入するための、ゲーム内取引である、請求項１記載の方法。
【請求項１０】
前記ゲーム内アップグレードは、レベルアンロック、仮想の装備の購入、仮想の特別武器の購入、チートの購入、または、仮想通貨の購入である、請求項９記載の方法。
【請求項１１】
前記アプリケーションの第２のバージョンは、ソーシャルネットワークのアプリケーション、金融サービスのアプリケーション、会計アプリケーション、または、税金準備アプリケーションである、請求項１記載の方法。
【請求項１２】
前記方法は、
クライアントコンピュータを使用して、前記アプリケーションの第２のバージョンを実行することと、
前記実行されているアプリケーションの第２のバージョンを使用して、前記サイン鍵に基づいた署名を含む要求を行うことと、
前記サインされた要求を、前記１つ以上の第２のコンピューティングデバイスに通信することと
をさらに含み、
前記クライアントコンピュータは、前記アプリケーションの第２のバージョンを実行するように適切にプログラムされている、請求項１記載の方法。
【請求項１３】
前記サインされた要求は、前記ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子を含む、請求項１２記載の方法。
【請求項１４】
前記方法は、
１つ以上の第２のコンピューティングデバイスによって、前記アプリケーションの第２のバージョン中に埋め込まれたサイン鍵に基づいた署名を含む前記サインされた要求を、前記クライアントコンピュータから受信することと、
前記１つ以上の第２のコンピューティングデバイスによって、再構築されたサイン鍵を形成することと、
前記１つ以上の第２のコンピューティングデバイスによって、前記再構築されたサイン鍵から署名を形成することと、
前記再構築されたサイン鍵から形成された署名と、前記取引要求中の署名との比較に基づいて、前記サインされた要求を評価することと
をさらに含み、
前記１つ以上の第２のコンピューティングデバイスは、前記形成を実行するように適切にプログラムされており、
前記形成は、第２の複数のパラメータに対して、第２の関数を適用することを含み、
前記評価は、
（ａ）前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングするとき、認証された状態が得られ、
（ｂ）前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングしないとき、失敗した状態が得られる、請求項１記載の方法。
【請求項１５】
前記第２の複数のパラメータは、
（ｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉ）前記要求を行っているユーザの識別子と、
（ｉｉｉ）第２の時間ベースのソルト値と、
（ｉｖ）前記１つ以上の第１のコンピューティングデバイスおよび前記１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のうちの複数を含む、請求項１４記載の方法。
【請求項１６】
前記第２の関数は、ハッシュ関数であり、
前記再構築されたサイン鍵は、
（ｉ）前記アプリケーションに関する前記電子的要求に関係するユーザの識別子と、
（ｉｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉｉ）第２の時間ベースのソルト値と、
（ｉｖ）前記１つ以上の第１のコンピューティングデバイスおよび前記１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のハッシュである、請求項１５記載の方法。
【請求項１７】
前記第２の関数は、ハッシュ関数であり、
前記再構築されたサイン鍵は、
（ｉ）前記アプリケーションに関する前記電子的要求を発信しているユーザの識別子と、
（ｉｉ）第２の時間ベースのソルト値と、
（ｉｉｉ）前記１つ以上の第１のコンピューティングデバイスおよび前記１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のハッシュである、請求項１５記載の方法。
【請求項１８】
前記第２の時間ベースのソルト値は、
（ｉ）前記サインされた要求の受信、前記再構築されたサイン鍵の形成、または、前記再構築されたサイン鍵からの署名の形成に関係する、協定世界時（ＵＴＣ）と、
（ｉｉ）予め定められた時間インクリメントと
の整数除算値である、請求項１５記載の方法。
【請求項１９】
前記失敗した状態が得られるとき、前記方法は、
インクリメントされた、または、デクリメントされた、前記第２の時間ベースのソルト値とともに、前記再構築されたサイン鍵の形成と、前記再構築されたサイン鍵からの署名の形成と、前記サインされた要求の評価とを繰り返すことをさらに含む、請求項１５記載の方法。
【請求項２０】
前記認証された状態が得られるとき、前記方法は、
前記１つ以上の第２のコンピューティングデバイスを使用して、前記要求にサービスすることをさらに含み、
前記１つ以上の第２のコンピューティングデバイスは、前記認証された状態が得られるときに、前記要求にサービスするように、適切にプログラムされている、請求項１４記載の方法。
【請求項２１】
前記１つ以上の第１のコンピューティングデバイスは、前記１つ以上の第２のコンピューティングデバイス以外のサーバである、請求項１記載の方法。
【請求項２２】
前記１つ以上の第１のコンピューティングデバイスと、前記１つ以上の第２のコンピューティングデバイスとは、同一のサーバである、請求項１記載の方法。
【請求項２３】
前記アプリケーションは、ＦＬＡＳＨアプリケーションである、請求項１記載の方法。
【請求項２４】
クライアントコンピュータと取引サーバとの間で、電子的要求を認証するための方法をコンピュータに実行させるコンピュータプログラムにおいて、
前記方法は、
１つ以上の第１のコンピューティングデバイスを使用して、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信することと、
前記１つ以上の第１のコンピューティングデバイスを使用して、前記電子的アプリケーション要求の受信に応答して、第１の複数のパラメータの第１の関数として、サイン鍵を構築することと、
前記アプリケーションの第１のバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションの第２のバージョンを形成することと
を含み、
前記アプリケーションの第２のバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）前記電子的要求を発信しているユーザの識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、コンピュータプログラム。
【請求項２５】
前記第１の複数のパラメータは、
（ｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉ）前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、
（ｉｉｉ）第１の時間ベースのソルト値と、
（ｉｖ）前記１つ以上の第１のコンピューティングデバイスおよび１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のうちの複数を含む、請求項２４記載のコンピュータプログラム。
【請求項２６】
前記方法は、
１つ以上の第２のコンピューティングデバイスを使用して、前記アプリケーションの第２のバージョン中に埋め込まれたサイン鍵に基づいた署名を含む前記サインされた要求を、前記クライアントコンピュータから受信することと、
前記１つ以上の第２のコンピューティングデバイスを使用して、第２の複数のパラメータの第２の関数として、再構築されたサイン鍵を形成することと、
前記１つ以上の第２のコンピューティングデバイスを使用して、前記再構築されたサイン鍵から署名を形成することと、
前記再構築されたサイン鍵から形成された署名と、前記取引要求中の署名との比較に基づいて、前記サインされた要求を評価することと
をさらに含み、
前記評価は、
前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングするとき、認証された状態が得られ、
前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングしないとき、失敗した状態が得られる、請求項２４記載のコンピュータプログラム。
【請求項２７】
前記第２の複数のパラメータは、
（ｉ）前記要求を行っている前記ユーザの識別子と、
（ｉｉ）第１の時間ベースのソルト値と、
（ｉｉｉ）前記１つ以上の第１のコンピューティングデバイスおよび前記１つ以上の第２のコンピューティングデバイスの間で共有される秘密と
のうちの複数を含む、請求項２６記載のコンピュータプログラム。
【請求項２８】
クライアントコンピュータと取引サーバとの間で、電子的要求を認証するシステムにおいて、
第１のサーバと、
第２のサーバと
を具備し、
前記第１のサーバは、アプリケーションコード命令を実行するように構成されており、  前記第１のサーバにより実行されるアプリケーションコード命令は、
前記システムに、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信させ、
前記システムに、第１の複数のパラメータの第１の関数として、サイン鍵を構築させ、
前記システムに、前記アプリケーションの第１のバージョン中に、前記サイン鍵を埋め込みさせて、これによって、前記アプリケーションの第２のバージョンを形成させ、
前記電子的要求は、前記電子的要求を発信しているユーザの識別子を含み、
前記アプリケーションの第２のバージョンは、サイン鍵で要求にサインして、これによって、サインされた要求を形成し、ユーザの識別子とともに、前記サインされた要求を、前記第２のサーバに送出するように構成されており、
前記第２のサーバは、アプリケーションコード命令を実行するように構成されており、  前記第２のサーバにより実行されるアプリケーションコード命令は、
前記システムに、前記アプリケーションの第２のバージョン中に埋め込まれたサイン鍵に基づいた署名を含む前記サインされた要求を、前記クライアントコンピュータから受信させ、
前記システムに、第２の複数のパラメータの第２の関数として、再構築されたサイン鍵を形成させ、
前記システムに、前記再構築されたサイン鍵から署名を形成させ、
前記システムに、前記サインされた要求を評価させる、システム。
【請求項２９】
前記第１の複数のパラメータは、
（ｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉ）前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、
（ｉｉｉ）第１の時間ベースのソルト値と、
（ｉｖ）前記第１のサーバおよび前記第２のサーバの間で共有される秘密と
のうちの複数を含む、請求項２８記載のシステム。
【請求項３０】
前記第１の関数は、ハッシュ関数であり、
前記サイン鍵は、
（ｉ）前記アプリケーションに関する電子的要求を発信している前記ユーザの識別子と、
（ｉｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉｉ）第１の時間ベースのソルト値と、
（ｉｖ）前記第１のサーバおよび前記第２のサーバの間で共有される秘密と
のハッシュである、請求項２９記載のシステム。
【請求項３１】
前記第２の複数のパラメータは、
（ｉ）前記要求を行っているユーザの識別子と、
（ｉｉ）第２の時間ベースのソルト値と、
（ｉｉｉ）前記第１のサーバおよび前記第２のサーバの間で共有される秘密と
のうちの複数を含む、請求項２８記載のシステム。
【請求項３２】
前記サインされた要求の評価は、
前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングするとき、認証された状態が得られ、
（ｂ）前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングしないとき、失敗した状態が得られる、請求項２８記載のシステム。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明は、一般的に、セキュリティ保護されていないかもしれないアプリケーションから発信されている電子取引を認証するためのシステムと方法に関連する。
【背景】
【０００２】
クライアントコンピュータが、セキュリティ保護されたリアルタイム取引サービスを要求するのにかかわらず、クライアントコンピュータ上で実行されている、潜在的にセキュリティ保護されていないアプリケーションの数は増え続けている。このようなアプリケーションの制限的でない１つの例は、ＦＬＡＳＨ（登録商標）ベースのゲームアプリケーションであり、ＦＬＡＳＨベースのゲームアプリケーションは、レベルアンロック、仮想の装備、仮想特別武器、および、ゲーマーに対する直接のチートのようなゲーム内アップグレードを購入するために、仮想通貨の補充を必要とする。このようなリアルタイム取引をセキュリティ保護することは、ユーザおよびアプリケーション開発者を、アカウント情報の不正取得、識別子盗難、および、他の形態の詐欺から保護するために、技術的に必要とされている。
【０００３】
このような取引をセキュリティ保護するための、１つの知られている方法は、共有された秘密（秘密鍵暗号化技術）の使用の概念である。秘密鍵暗号化技術は、単一の鍵を使用することを含む。メッセージおよび鍵があるとして、暗号化は、解読するために鍵を必要とする理解不可能なデータを生み出す。例えば、ここで参照により組み込まれている、Ｋａｕｆｍａｎ氏の“Ｎｅｔｗｏｒｋ Ｓｅｃｕｒｉｔｙ” Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ， Ｉｎｃ．， Ｕｐｐｅｒ Ｓａｄｄｌｅ Ｒｉｖｅｒ， Ｎｅｗ Ｊｅｒｓｅｙのセクション２．４を参照せよ。しかしながら、共有化秘密方法は、アプリケーションのうちの１つが、セキュリティ保護されていないインスタンスにおいては、作用しない。例えば、数多くの人気のあるプログラミングアプリケーションは、ＦＬＡＳＨプレーヤによって実行され、セキュリティ保護されていない。典型的に、共有秘密アルゴリズムが使用されるとき、ローカルウェブサーバを呼び出す、リモートウェブサーバがある。秘密は、リモートウェブサーバ、および、ローカルウェブサーバにおいて安全であり、２つのサーバの間で通信されない。アプリケーションが、クライアントコンピュータに対してダウンロードされ、例えば、クライアントのブラウザ内で実行される、ＦＬＡＳＨ、または、他のプログラムにおいて記述されているとき、これは失敗する。ＦＬＡＳＨのケースでは、ユーザがＦＬＡＳＨアプリケーションを要求するとき、ＦＬＡＳＨプレーヤによって解釈されるバイトコードを含むＳＷＦファイルが、クライアントコンピュータにダウンロードされ、クライアントのブラウザ内のＦＬＡＳＨプレーヤによって、実行（解釈）される。ＳＷＦファイル中のバイトコードを、クライアントコンピュータにおいて検査して、秘密を決定することができる。このように、ＦＬＡＳＨのＳＷＦファイル内に、秘密を含めることはできない。
【０００４】
上記の背景を仮定すると、技術的に必要とされるものは、セキュリティ保護されていないかもしれないアプリケーションから発信されている電子取引を認証するための改善されたシステムおよび方法である。
【概要】
【０００５】
本開示は、技術的な不備に対処する。１つの観点は、クライアントコンピュータと取引サーバとの間で、電子的要求を認証するための方法を提供する。方法では、適切にプログラムされているアプリケーションサーバにおいて、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求が受信される。適切にプログラムされているアプリケーションサーバを使用して、受信に応答して、（ｉ）アプリケーションに関する、電子的要求を発信しているユーザの識別子と、（ｉｉ）第１の時間ベースのソルト値と、（ｉｉｉ）適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む、複数のパラメータの第１の関数として、サイン鍵が構築される。いくつかの実施形態では、複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。
【０００６】
いくつかの実施形態では、アプリケーションのブランド化されていないバージョン中に、サイン鍵が埋め込みされて、これによって、アプリケーションのブランド化されたバージョンが形成される。このような実施形態では、ブランド化されたアプリケーションが、クライアントコンピュータに配信される。いくつかの実施形態では、アプリケーションサーバは、アプリケーションをサイン鍵でブランド化せず、むしろ、サイン鍵をクライアントブラウザに送出する。このような実施形態では、クライアントブラウザ自体が、アプリケーションをサイン鍵でブランド化する。アプリケーションのブランド化されたバージョンが、どのように構成されているかにかかわらず、アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求（例えば、サイン鍵に基づいて、発生される署名を含む要求）を形成し、（ｉｉ）オプション的に、ユーザの識別子、および、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。
【０００７】
いくつかの実施形態では、第１の関数は、ハッシュ関数であり、サイン鍵は、（ｉ）アプリケーションに関する電子的要求を発信しているユーザの識別子と、（ｉｉ）アプリケーションの分配者または開発者を識別する識別子と、（ｉｉｉ）第１の時間ベースのソルト値と、（ｉｖ）適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とのハッシュである。
【０００８】
いくつかの実施形態では、第１の関数は、ハッシュ関数であり、サイン鍵は、（ｉ）アプリケーションに関する電子的要求を発信しているユーザの識別子と、（ｉｉ）第１の時間ベースのソルト値と、（ｉｉｉ）適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とのハッシュである。
【０００９】
いくつかの実施形態では、第１の時間ベースのソルト値は、（ｉ）受信に関係する協定世界時（ＵＴＣ）と、（ｉｉ）予め定められた時間インクリメントと
の整数除算値である。いくつかの実施形態では、第１の時間ベースのソルト値は、（ｉ）構築に関係する協定世界時（ＵＴＣ）と、（ｉｉ）予め定められた時間インクリメントとの整数除算値である。
【００１０】
いくつかの実施形態では、サインされた取引要求は、取引サーバ上で維持されている、ユーザの識別子に関係するアカウントを使用して、ゲーム内アップグレードを購入するための、ゲーム内取引である。いくつかの実施形態では、ゲーム内アップグレードは、レベルアンロック、仮想の装備の購入、仮想の特別武器の購入、チートの購入、または、仮想通貨の購入である。
【００１１】
いくつかの実施形態では、アプリケーションは、ソーシャルネットワークのアプリケーション、金融サービスのアプリケーション、会計アプリケーション、または、税金準備アプリケーションである。
【００１２】
いくつかの実施形態では、方法は、クライアントコンピュータを使用して、ブランド化アプリケーションを実行することをさらに含み、クライアントコンピュータは、ブランド化アプリケーションを実行するように適切にプログラムされている。次に、実行されているブランド化アプリケーションを使用して、サイン鍵とともにサインされた要求が行われ、この要求が、取引サーバに通信される。いくつかの実施形態では、サインされた要求は、ユーザの識別子、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子を含む。
【００１３】
いくつかの実施形態では、方法は、取引サーバにおいて、サインされた要求を受信することをさらに含み、ここで、取引サーバは、（ｉ）秘密鍵のそのバージョンを使用して、再構築されたサイン鍵を発生させることと、（ｉｉ）再構築されたサイン鍵を使用して、再構築された署名を形成することと、によって、サインされた要求の有効性を確認する。明瞭さの目的で、取引サーバによって発生されるサイン鍵を、“再構築されたサイン鍵”として、ここで参照する。明瞭さの目的で、取引サーバを使用して、再構築されたサイン鍵から形成される再構築された署名を、“再構築された署名”として、ここで参照する。再構築された署名が、要求中の署名とマッチングする場合、取引サーバは要求を“信用”して、これにサービスすることになる。取引サーバは、サイン鍵を作成するためにアプリケーションサーバによって使用されたのと、全く同一の関数を使用して、再構築されたサイン鍵を発生させる。明瞭さの目的で、秘密鍵から再構築されたサイン鍵を発生させるために、取引サーバによって使用される関数を、ここで、“第２の関数”として参照し、他方、秘密鍵からサイン鍵を発生させるために、アプリケーションサーバによって使用される関数を、ここで、“第１の関数”として参照する。しかしながら、第１の関数および第２の関数は別のサーバ上で実行されるが、第１の関数および第２の関数は、必ずしも互いに同一でないことが理解されるだろう。このことを考慮して、また、アプリケーションサーバによる第１の関数の性質に依拠して、取引サーバは、第２の関数を、第２の複数のパラメータに適用することによって、再構成されたサイン鍵を形成する。いくつかの実施形態では、第２の複数のパラメータは、（ｉ）要求を行っているユーザの識別子と、（ｉｉ）第２の時間ベースのソルト値と、（ｉｉｉ）適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む。いくつかの実施形態では、第２の複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。次に、取引サーバは、再構築されたサイン鍵から再構築された署名を形成する。次に、取引サーバは、再構築された署名を、要求中の署名に比較することによって、取引要求を有効性確認する。
【００１４】
いくつかの実施形態では、第２の関数は、ハッシュ関数であり、再構築されたサイン鍵は、（ｉ）アプリケーションに関する電子的要求を発信しているユーザの識別子と、（ｉｉ）オプション的に、アプリケーションの分配者または開発者を識別する識別子と、（ｉｉｉ）第２の時間ベースのソルト値と、（ｉｖ）適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とのハッシュである。いくつかの実施形態では、第２の時間ベースのソルト値は、（ｉ）取引サーバにおける要求の受信のステップ、または、（ｉｉ）取引サーバによってとられるステップに関係する、協定世界時（ＵＴＣ）と、（ｉｉ）予め定められた時間インクリメントとの整数除算値である。
【００１５】
いくつかの実施形態では、前述の認証が、再構築された署名が、要求中の署名とマッチングしないと決定する。いくつかのこのような例において、方法は、再構築されたサイン鍵を形成しようと、したがって、インクリメントまたはデクリメントされた、第２の時間ベースのソルト値とともに、新しい再構築されたサイン鍵を、再試行することをさらに含む。
【００１６】
前述のように、検証が成功したとき、取引サーバは、要求をサービスする。いくつかの実施形態では、適切にプログラムされたアプリケーションサーバは、取引サーバ以外のサーバであってもよい。いくつかの実施形態では、適切にプログラムされたアプリケーションサーバと、取引サーバとは、同一のサーバである。いくつかの実施形態では、アプリケーションは、ＦＬＡＳＨアプリケーションである。ここで使用するように、用語“サーバ”を、ここで、秘密鍵を記憶するのに十分にセキュリティ保護されているとして考えられている、また、何らかの手段（例えば、ワイヤレス通信、インターネット、データケーブル、および、類似物）によって、別のコンピュータと電子的に通信することのできる、何らかのコンピュータを広く意味するために、使用する。
【００１７】
別の観点は、コンピュータシステムと関連して使用するためのコンピュータプログラム製品を提供し、コンピュータプログラム製品は、コンピュータ読取可能記憶媒体と、その中に埋め込まれたコンピュータプログラムメカニズムとを備える。コンピュータプログラムメカニズムは、クライアントコンピュータと取引サーバとの間で、電子的要求を認証するためのものである。コンピュータプログラムメカニズムは、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信させるためのコンピュータ実行可能命令を含む。コンピュータプログラムメカニズムは、受信に応答して、複数のパラメータの関数として、サイン鍵を構築させるためのコンピュータ実行可能命令をさらに含み、複数のパラメータは、（ｉ）アプリケーションに関する、電子的要求を発信しているユーザの識別子と、（ｉｉ）第１の時間ベースのソルト値と、（ｉｉｉ）適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む。
【００１８】
いくつかの実施形態では、複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。
【００１９】
いくつかの実施形態では、コンピュータプログラムメカニズムは、アプリケーションのブランド化されていないバージョン中に、サイン鍵を埋め込みして、これによって、アプリケーションのブランド化されたバージョンを形成させるためのコンピュータ実行可能命令をさらに含み、ここで、アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子、および、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。このような実施形態では、コンピュータプログラムメカニズムは、クライアントコンピュータに対してサイン鍵を配信させるためのコンピュータ実行可能命令をさらに含む。
【００２０】
いくつかの代替の実施形態では、コンピュータプログラムメカニズムは、サイン鍵をクライアントコンピュータに電子的に配信させるためのコンピュータ実行可能命令をさらに含み、クライアントコンピュータが、代わりに、アプリケーションのブランド化されていないバージョンをブランド化して、これによって、アプリケーションのブランド化されたバージョンを形成する。これらの代替の実施形態では、アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子とともに、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。
【００２１】
別の観点は、適切にプログラムされているアプリケーションサーバにおいて、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信する手段を含むシステムを提供し、ここで、電子的要求は、電子的要求を発信しているユーザの識別子を含む。システムは、受信に応答して、複数のパラメータの関数として、サイン鍵を構築する手段をさらに含み、複数のパラメータは、（ｉ）アプリケーションに関する、電子的要求を発信しているユーザの識別子と、（ｉｉ）第１の時間ベースのソルト値と、（ｉｉｉ）適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む。いくつかの実施形態では、複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。
【００２２】
いくつかの実施形態では、システムは、アプリケーションのブランド化されていないバージョン中に、サイン鍵を埋め込みして、これによって、アプリケーションのブランド化されたバージョンを形成する手段をさらに含み、ここで、アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。このような実施形態では、システムは、システムは、クライアントコンピュータにアプリケーションのブランド化されたバージョンを電子的に配信する手段をさらに含む。
【００２３】
いくつかの代替の実施形態では、システムは、クライアントコンピュータに対してサイン鍵を配信する手段をさらに含み、クライアントコンピュータが、サイン鍵を使用して、代わりに、アプリケーションのブランド化されていないバージョンをブランド化して、これによって、アプリケーションのブランド化されたバージョンを形成する。アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子とともに、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。
【図面の簡単な説明】
【００２４】
同一の参照番号は、図面のいくつかの視点全体を通しての対応する部分を参照する。  
【図１】図１は、本開示の観点にしたがった、システムを図示する。
【図２】図２は、本開示の観点にしたがった、方法を図示する。
【詳細な説明】
【００２５】
本開示は、潜在的にセキュリティ保護されていないアプリケーションによって通信されている電子取引を認証するための、周知のシステムおよび方法についての新規な前進を詳述する。本開示は、一時的なサイン鍵の使用を行う。クライアントコンピュータ上で実行されており、潜在的にセキュリティ保護されていない、ＦＬＡＳＨアプリケーションのようなアプリケーションと、セキュリティ保護されている取引サーバとの間で、サイン鍵が送られる。サイン鍵は、一時的なものであるので、鍵の不正使用の機会は少ない。言い換えると、誰かが、サイン鍵を構築できた場合であっても、彼らが鍵とともに実行可能なことは、非常に限られている。
【００２６】
いくつかの実施形態では、サイン鍵は、以下の（ｉ）ないし（ｉｉｉ）を含む複数のパラメータから発生される。すなわち、（ｉ）アプリケーション開発者と、取引サーバとの間で共有されている、実際の共有の秘密、（ｉｉ）セキュリティ保護されていないアプリケーションのユーザに関係するアプリケーションユーザ識別子（例えば、クライアント上で実行されているＦＬＡＳＨゲームのインスタンスに一意的であり、言い換えると、ゲームのインスタンスを要求しているユーザが、ＦＬＡＳＨゲームのそのインスタンスに対する、一意的なアプリケーションユーザ識別子を与えられ、ゲームセッションの最後においてインスタンスは終了する）、および、（ｉｉｉ）サイン鍵が作成されるときのような、基準時間（例えば、何らかの時間期間、言ってみれば、１日によって分けられたＵＴＣの整数値）に基づいたソルト値である。いくつかの実施形態では、複数のパラメータは、セキュリティ保護されていないアプリケーションの開発者に対して与えられる（または、アプリケーションの開発者によって作られる）アプリケーション開発者識別子をさらに含む。この追加的なパラメータは、所定のアプリケーション開発者が、複数の独立した通貨プラットフォームまたは取引構成の使用を行うときに、有用である。したがって、開発者によって提供されている、このような通貨プラットフォームまたは構成うちの１つだけのもののユーザが、アプリケーション開発者によって提供されている、他の通貨プラットフォームまたは構成の、認証されていない要求を行うことを防止するために、アプリケーション開発者は、特定の通貨プラットフォームまたは構成を識別する、アプリケーション開発者識別子を、好都合にも提供することができる。したがって、アプリケーション開発者は、それぞれが、１つ以上のアプリケーションにおいて、アプリケーション開発者によって使用される、異なる通貨プラットフォームまたは構成に対応する、任意の数の（例えば、１つ以上のアプリケーション開発者識別子、２つ以上のアプリケーション開発者識別子、５つ以上のアプリケーション開発者識別子、および、類似物の）アプリケーション開発者識別子を有することが可能である。
【００２７】
いくつかの実施形態では、追加的なコンポーネント（パラメータ）を使用して、署名鍵を形成してもよく、すべてのこのような実施形態は、本開示内に包含される。
【００２８】
上で識別したコンポーネントが、一緒にされ、ハッシュされて、潜在的にセキュリティ保護されていないアプリケーションによって、取引サーバとの通信にサインするために使用される一意的な一時鍵を形成してもよい。
【００２９】
アプリケーションの開発者識別子、時間期間識別子、オプション的なアプリケーションユーザ識別子鍵、および、上で特定した秘密鍵の要求のために、この一意的な鍵（ハッシュ値）は、特定の時間期間の間（例えば、特定の２４時間の期間）、特定のアプリケーション開発者とともに、特定のユーザに対してだけ、有効である。サイン鍵を傍受した誰か、または、サイン鍵を使用して生成された署名は、他のユーザのデータまたは、他のマーチャントのデータにアクセスするために、それを使用することができないだろう。さらに、一意的なサイン鍵が、アプリケーション開発者と、取引サーバとだけが所有する、共有される秘密に基づいているので、アプリケーション開発者と、取引サーバとだけは、第１のインスタンスにおける一意的なハッシュ鍵を発生させることさえもできる。潜在的にセキュリティ保護されていないアプリケーションは、サイン鍵で、個別の取引要求にサインする。このことが意味するのは、当業者にとって周知の方法を使用して、取引中に含められる署名を形成するための基礎として、サイン鍵が使用されることである。サインされた要求が、取引サーバによって受信されるとき、チェックが行われて、要求が、特定の基準から発生された鍵でサインされたかが確認される。行われることは、取引サーバが、（アプリケーションサーバ上で）第１のインスタンスにおけるサイン鍵を構成するのに使用された、同一のパラメータをハッシュしようとすることである。このことは、再構成されたサイン鍵の形成をもたらす。次に、取引サーバは、再構成されたサイン鍵を使用して、再構成された署名を形成する。再構成された署名は、次に、要求中の署名と比較される。しかしながら、いくつかの実施形態では、サイン鍵が作成されたときの時間（および、したがって、サイン鍵が作成されたときの時間ベースのソルト値）と、取引サーバがサインされた取引要求を受信したときの時間との間の差に対処するために、取引サーバは、必要な場合、以下の３つの異なる時間：すなわち、（ｉ）現在時間、（ｉｉ）将来への１つの時間インクリメント（例えば、次の８時間間隔）、（ｉｉｉ）過去への１つの時間インクリメント（例えば、直近の８時間間隔）に、再構築されたサイン鍵を形成しようと試みるだろう。当然ながら、実施形態において、より多くの時間間隔が試みられてもよく、ここで、将来の時間間隔探査が適切である。上の例では、現在の時間に基づいたハッシュ（再構築されたサイン鍵の形成）が行われ、なぜなら、これは、使用するための最も正確な見込みのある値であるからであり、前の時間インクリメントを使用したハッシュ（再構築されたサイン鍵の形成）は、前の時間インクリメントにおいて潜在的にセキュリティ保護されていないアプリケーションの使用を開始したインスタンス（例えば、誰かが、言ってみれば、１１ＰＭに、潜在的にセキュリティ保護されていないアプリケーションのインスタンスを開始し、彼らが、１時間後にこのアップリケーションをキックアウトしていることが望ましくない場合）を許容するために行われ、将来の時間インクリメントを使用したハッシュ（再構築されたサイン鍵の形成）は、潜在的にセキュリティ保護されていないアプリケーションを実行しているコンピュータと、取引サーバとの間でクロックスキューがある可能性に対処するために行われる。
【００３０】
ここで、潜在的にセキュリティ保護されていないアプリケーションから、セキュリティ保護された要求を行うための新規なプロセスの方法の概要を開示することとし、その利点を提供し、本願にしたがったシステムのより詳細な説明を、図１に関連して記述する。図１は、本開示にしたがった環境のトポロジーを図示する。
【００３１】
トポロジーにおいて、アプリケーションサーバ１８０、クライアントコンピュータ１００、および、取引コンピュータ２００がある。もちろん、他のトポロジーもまた可能であり、例として、アプリケーションサーバ１８０は、実際には、複数のサーバを含んでもよい。さらに、典型的に、何百の、何千の、何十万の、または、それ以上のクライアントコンピュータ１００がある。図１に示した例示的なトポロジーは、単に、当業者にとって容易に理解されることになるような方法で、本発明の特徴を最もよく記述するのに役立つ。
【００３２】
アプリケーションサーバ１８０は、典型的に、１つ以上の処理ユニット（ＣＰＵ）１０２、ネットワークまたは他の通信インターフェース１１０、メモリ１１４、１つ以上の制御装置１１８によってアクセスされる１つ以上の磁気ディスク記憶デバイス１２０、前述のコンポーネントを相互接続するための１つ以上の通信バス１１２、および、前述のコンポーネントに電源供給するための電源供給部１２４を有することになる。メモリ１１４中のデータは、キャッシングのような周知のコンピューティング技術を使用して、不揮発性メモリ１２０とシームレスに共有される。メモリ１１４および／またはメモリ１２０は、中央処理ユニット１０２に関して、遠隔地に位置している大容量記憶装置を含む。言い換えると、メモリ１１４および／またはメモリ１２０中に記憶されている何らかのデータは、実際には、アプリケーションサーバ１８０に対して外部にあるが、アプリケーションサーバ１８０によって、ネットワークインターフェース１１０を使用して、（図１中にエレメント１２６として図示する）インターネット、イントラネット、または、他の形態のネットワークもしくは電子ケーブルを通して、電子的にアクセスされることができるコンピュータ上でホスティングされていてもよい。
【００３３】
メモリ１１４は、好ましくは、以下のものを記憶する。  
・さまざまな基本システムサービスを取り扱うための、また、ハードウェア依存タスクを実行するための手続を含む、オペレーティングシステム１３０；  
・インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク（例えば、ローカルワイヤレスネットワークは、クライアントコンピュータ１００をアプリケーションサーバ１８０に接続できる）、都市エリアネットワーク、等のような通信ネットワークを通して、クライアントコンピュータ１００（図１）のようなさまざまなクライアントコンピュータに対して、および、潜在的に、（取引サーバ２００のような）他のサーバもしくはコンピュータに対して、アプリケーションサーバ１８０を接続するために使用されるアプリケーション供給モジュール１３２；  
・ユーザ要求の際に、クライアントコンピュータ１００に配信するためのブランド化されていないアプリケーション１３４；  
・本開示にしたがって、ブランド化されていないアプリケーションを、ブランド化するのを支援するために使用される、サイン鍵発生モジュール１４０。
【００３４】
アプリケーションサーバ１８０は、１つ以上のクライアントデバイス１００に対して、インターネット／ネットワーク１２６を介して接続される。図１は、１つだけのこのようなクライアントデバイス１００に対する接続を図示する。クライアントデバイスが、パーソナルコンピュータ（例えば、デスクトップもしくはラップトップコンピュータ）または、任意の形態の移動コンピュータデバイス（例えば、ｉ−ｐｈｏｎｅ（登録商標）、Ｂｌａｃｋｂｅｒｒｙ（登録商標）、および、類似物）であることが可能である。典型的な実施形態において、クライアントデバイス１００は、以下のものを含む。
【００３５】
・１つ以上の処理ユニット（ＣＰＵ）２；  
・ネットワークまたは他の通信インターフェース１０；  
・メモリ１４；  
・オプション的に、１つ以上のオプション的な制御装置１８によってアクセスされる１つ以上の磁気ディスク記憶デバイス２０；  
・ユーザインターフェース４、ユーザインターフェース４は、ディスプレイ６、および、キーボードまたはキーパッド８を含む；  
・前述のコンポーネントを相互接続するための１つ以上の通信バス；  
・前述のコンポーネントに電源供給するための電源供給部２４、電源供給部は、例えば、バッテリであってもよい。
【００３６】
いくつかの実施形態では、メモリ１４中のデータは、キャッシングのような周知のコンピューティング技術を使用して、オプション的不揮発性メモリ２０とシームレスに供給されることができる。いくつかの実施形態において、クライアントデバイス１００は、磁気ディスク記憶デバイスを持っていない。例として、いくつかの実施形態では、クライアントデバイス１００は、ポータブル手持ちコンピューティングデバイスであり、ネットワークインターフェース１０は、ワイヤレス手段によって、インターネット／ネットワーク１２６と通信する。
【００３７】
メモリ１４は、好ましくは、以下のものを記憶する。  
・さまざまな基本システムサービスを取り扱うための、また、ハードウェア依存タスクを実行するための手続を含む、オペレーティングシステム３０；  
・アプリケーションサーバ１８０と取引サーバ２００のような他のコンピュータに対してクライアントデバイス１００を接続するために使用される、ネットワーク通信モジュール３２；  
・Ｍｉｃｒｏｓｏｆｔ（登録商標）インターネットエクスプローラ（登録商標）バージョン６．０または６．０以降、Ｆｉｒｅｆｏｘ （登録商標） ２．ｘ、Ｆｉｒｅｆｏｘ ３．ｘ、ＡＯＬ（登録商標）９、Ｏｐｅｒａ９．５または９．５以降、Ｓａｆａｒｉ３．ｘ、Ｃｈｒｏｍｅ２．０または２．０より上のもののような、ブランド化アプリケーションを実行するためのオプション的なウェブブラウザ３４（いくつかの実施形態において、オプション的なウェブブラウザ３４は、ＦＬＡＳＨプレーヤのようなモジュールを含む）；  
・本開示にしたがって、サイン鍵１３８を使用して、サインされた要求を行うことができる、ブランド化アプリケーション３６。
【００３８】
取引サーバ２００は、典型的に、１つ以上の処理ユニット（ＣＰＵ）２０２、ネットワークまたは他の通信インターフェース２１０、メモリ２１４、１つ以上の制御装置２１８によってアクセスされる１つ以上の磁気ディスク記憶デバイス２２０、前述のコンポーネントを相互接続するための１つ以上の通信バス２１２、および、前述のコンポーネントに電源供給するための電源供給部２２４を有することになる。メモリ２１４中のデータは、キャッシングのような周知のコンピューティング技術を使用して、不揮発性メモリ２２０とシームレスに共有される。メモリ２１４および／またはメモリ２２０は、中央処理ユニット１０２に関して、遠隔地に位置している大容量記憶装置を含む。言い換えると、メモリ２１４および／またはメモリ２２０中に記憶されている何らかのデータは、実際には、取引サーバ２００に対して外部にあるが、取引サーバ２００によって、ネットワークインターフェース２１０を使用して、（図１中にエレメント１２６として図示する）インターネット、イントラネット、または、他の形態のネットワークもしくは電子ケーブルを通して、電子的にアクセスされることができるコンピュータ上でホスティングされてもよい。
【００３９】
メモリ２１４は、好ましくは、以下のものを記憶する。  
・さまざまな基本システムサービスを取り扱うための、また、ハードウェア依存タスクを実行するための手続を含む、オペレーティングシステム２３０；  
・インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク（例えば、ローカルワイヤレスネットワークは、クライアントコンピュータ１００をアプリケーションサーバ１８０に接続できる）、都市エリアネットワーク、等のような通信ネットワークを通して、クライアントコンピュータ１００（図１）のようなさまざまなクライアントコンピュータに対して、および、潜在的に、（アプリケーションサーバ１８０のような）他のサーバもしくはコンピュータに対して、取引サーバ２０００を接続するために使用されるネットワーク通信モジュール２３２；  
・さまざまなクライアントデバイス１００上で実行されているブランド化アプリケーション３６との取引を行うための取引モジュール２３４；  
・再構築されたサイン鍵を形成するための、再構築されたサイン鍵から署名を形成するための、再構築された署名を、取引モジュール２３４によってサービスされるサイン去れた取引要求中の署名に比較するための、サイン鍵検証モジュール２３６；  
・アプリケーションサーバ１８０と共有される秘密１４８。
【００４０】
図２を参照して、本開示の１つの実施形態にしたがって、例示的な方法を記述する。方法は、本開示にしたがって、取引を対話的にサービスするために、アプリケーションサーバ１８０、クライアントコンピュータ１００、および、取引サーバ２００によって、行われるステップを詳述する。
【００４１】
ステップ２０２  ステップ２０２において、クライアント１００がアプリケーションを要求する。例えば、オンラインゲームをプレイすることを望むユーザは、ゲームを選択するのに、彼らのウェブブラウザ３４を使用する。この要求は、アプリケーションサーバ１８０に送られ、アプリケーションサーバ１８０は、シームレスな方法でアプリケーションを認証することを課される。いくつかの実施形態では、アプリケーションは、クライアント１００上に、ブランド化されていない形態で、既に存在していてもよく、このような実施形態において、アプリケーションサーバ１８０に要求されることは、アプリケーションが取引要求を行うことができるように、アプリケーションをブランド化することである。いくつかの実施形態では、アプリケーションは、クライアント１００上にまだ存在しておらず、このような実施形態において、アプリケーションサーバ１８０に要求されることは、クライアントに、（ｉ）アプリケーションをブランド化された形態で提供することと、（ｉｉ）アプリケーションをブランド化されていない形態でサイン鍵とともに提供することと、のうちのいずれかである。
【００４２】
典型的な実施形態では、ユーザの識別子（例えば、アプリケーションユーザ識別子鍵１４４）とともに、要求が送られる。いくつかの実施形態では、ユーザは、アプリケーション開発者動作されているアプリケーションサーバ１８０とともに、アカウントを有しており、アプリケーションユーザ識別子鍵１４４は、このアカウントに関係する一意的な識別子である。
【００４３】
ステップ２０４  ステップ２０４において、サイン鍵発生モジュール１４０は、一時的なサイン鍵１３８を発生させる。いくつかの実施形態では、このタスクを完了させるのに、少なくとも４つの異なるパラメータが必要とされる。いくつかの実施形態では、このタスクを完了させるのに、少なくとも３つの異なるパラメータが必要とされる。
【００４４】
サイン鍵発生モジュール１４０によって、一時的なサイン鍵１３８を発生させるのに使用されてもよいオプション的なパラメータは、アプリケーション開発者識別子１４２である。いくつかの実施形態では、識別子１４２は、要求しているクライアント１００に供給されることになるアプリケーションの開発者を一意的に識別する。いくつかの実施形態では、アプリケーション開発者識別子１４２が、取引サーバ２００を制御するエンティティによって割り当てられる。いくつかの実施形態では、開発者識別子１４２は、開発者によって作成され、取引サーバ２００に登録される。いくつかの実施形態では、所定のアプリケーション開発者は、複数の独立した通貨プラットフォームまたは取引構成の使用を行う。このような実施形態では、開発者によって提供されている、１つだけのこのような通貨プラットフォームまたは構成のユーザが、アプリケーション開発者によって提供されている、他の通貨プラットフォームまたは構成の認証されていない要求を行うことを防止するために、アプリケーション開発者は、特定の通貨プラットフォームまたは構成を識別する、アプリケーション開発者識別子１４４を、好都合にも提供することができる。したがって、アプリケーション開発者は、それぞれが、１つ以上のアプリケーションにおいてアプリケーション開発者によって使用される、異なる通貨プラットフォームまたは構成に対応する、任意の数の（例えば、１つ以上のアプリケーション開発者識別子、２つ以上のアプリケーション開発者識別子、５つ以上のアプリケーション開発者識別子、および、類似物の）アプリケーション開発者識別子を有することが可能である。したがって、いくつかの実施形態では、アプリケーション開発者が、ステップ２０２の取引要求に関係付けした通貨プラットフォームまたは構成を、オプション的な第１のパラメータが特定する。
【００４５】
サイン鍵を発生させるのに、サイン鍵発生モジュール１４０によって使用される、第１に要求されるパラメータは、ユーザ識別子鍵（アプリケーションユーザ識別子鍵）１４４である。いくつかの実施形態では、上のステップ２０２に関連して前述したように、アプリケーションユーザ識別子鍵１４４は、クライアント１００から発せられたステップ２０２の要求とともに提供される。いくつかの実施形態では、アプリケーションユーザ識別子鍵１４４は、ユーザが、アプリケーション開発者とともに有しているアカウントに関係しており、このアカウントは、取引サーバ２１４の取引モジュール２３４によってサービスされる。いくつかの実施形態では、要求はこのような識別子に関係付けられていないので、ステップ２０４において、新しいアプリケーションユーザ識別子鍵を発生させることが必要である。これは、例えば、ユーザが、要求されたアプリケーションの新しいユーザであり、アプリケーション開発者とともにアカウントを有していないときのケースであってもよい。いくつかの実施形態では、アプリケーションユーザ識別子鍵が、ＦＡＣＥＢＯＯＫ（登録商標）のような、第三者によって提供される。
【００４６】
サイン鍵を発生させるのに、サイン鍵発生モジュール１４０によって使用される、第２に要求されるパラメータは、基準時間に基づいているソルト値１４６である。いくつかの実施形態において、このソルト値は、要求２０２に関係付けられた協定世界時（ＵＴＣ）である。例えば、ソルト値１４６は、ステップ２０２の要求が、クライアント１００によって発せられたときのＵＴＣであってもよく、アプリケーションサーバ１８０によってステップ２０２の要求が受信されたときのＵＴＣ、ステップ２０４において要求が処理されたときのＵＴＣ、または、ステップ２０２の要求が、クライアント１００によって発せられたとき、もしくは、アプリケーションサーバ１８０によって受信されたときのいずれかの時間の、他の何らかの予め定められた関数であってもよい。ＵＴＣは、地球の自転の遅れを補償するために、不規則な間隔で追加される、うるう秒を有する国際原子時（ＴＡＩ）に基づいた時間標準である。うるう秒は、ＵＴＣが、ＵＴ１を近く追跡することを可能にするために使用され、これは、王立天文台、グリニッジにおける太陽時間を意味する。いくつかの実施形態では、ソルト値１４６は、ＵＴＣ、および、１時間、８時間、１２時間、または、類似物のような、何らかの時間インクリメントの整数除算値である。
【００４７】
サイン鍵を発生させるのに、サイン鍵発生モジュール１４０によって使用される、第３に要求されるパラメータは、アプリケーションサーバ１８０、および、取引サーバ２００によって共有される秘密鍵１４８である。秘密鍵１４８の特徴は、これが、インターネット／ネットワーク１２６を通して通信されず、アプリケーション開発者および取引サーバ２００のホストだけが、その識別を知っていることである。例えば、ここで参照により組み込まれている、Ｋａｕｆｍａｎ氏の“Ｎｅｔｗｏｒｋ Ｓｅｃｕｒｉｔｙ” Ｐｒｅｎｔｉｃｅ−Ｈａｌｌ， Ｉｎｃ．， Ｕｐｐｅｒ Ｓａｄｄｌｅ Ｒｉｖｅｒ， Ｎｅｗ Ｊｅｒｓｅｙのセクション２．４を参照せよ。
【００４８】
ステップ２０４のいくつかの実施形態では、（ｉ）オプション的なアプリケーション開発者識別子１４２、（ｉｉ）アプリケーションを要求しているクライアントのアプリケーションユーザ識別子１４４、（ｉｉｉ）時間に基づいたソルト値１４６、および、（ｉｖ）秘密鍵１４８が、一時的なサイン鍵１３８を発生させるのに使用される。例えば、いくつかの実施形態では、これらの４つの値が一緒に短縮され、または、そうではなく結合され、次に、サイン鍵１３８を発生させるために一方向ハッシュされる。
【００４９】
ステップ２０４のいくつかの実施形態では、（ｉ）アプリケーションを要求しているクライアントのアプリケーションユーザ識別子１４４、（ｉｉ）時間に基づいたソルト値１４６、および、（ｉｉｉ）秘密鍵１４８が、一時的なサイン鍵１３８を発生させるのに使用される。例えば、いくつかの実施形態では、これらの３つの値が一緒に短縮され、または、そうではなく結合され、次に、サイン鍵１３８を発生させるために一方向ハッシュされる。
【００５０】
いくつかの実施形態では、追加の値を使用して、サイン鍵１３８を発生させる。
【００５１】
以下のことは、アプリケーションサーバ１８０が、アプリケーションをブランド化し、アプリケーションをクライアント１００に送る実施形態における、ステップ２０６から２１０中に発生することの記述である。代わりの実施形態では、アプリケーションサーバ１８０は、アプリケーションをブランド化しておらず、むしろ、クライアント１００に対してサイン鍵を送っており、これは、代わりに、アプリケーションをブランド化する。
【００５２】
ステップ２０６  ステップ２０６において、一時的なサイン鍵１３８が、ブランド化されていないアプリケーション１３４のインスタンスに組み込まれ、これによって、ブランド化されたアプリケーション３６を形成する。いくつかの実施形態では、ブランド化されたアプリケーション３４は、ＡＤＯＢＥ（登録商標）アクションスクリプト（登録商標）  バージョン１、２、３、または、利用可能なときには、これ以降のバージョンからコンパイルされるバイトコードを含むＳＷＦファイルである。図１に示したように、ブランド化されていないアプリケーション１３４は、要求モジュール１３６を含む。いったんブランド化されると、アプリケーションは、有効サイン鍵１３８をさらに含むことになり、したがって、ブランド化されたアプリケーション３６になる。このようにして、示していないが、ブランド化されたアプリケーション３６は、送信要求を行うための要求モジュールと、サイン鍵１３８とを含む。
【００５３】
ステップ２０８  ステップ２０８において、ブランド化アプリケーション３６が、クライアントコンピュータ１００に送られる。有利なことに、さまざまな実施形態において、サイン鍵３６は、ソルト値が生成されてから最大２、３、４、５、６、７、８時間後や、ソルト値が生成されてから最大１２時間後や、ソルト値が生成されてから最大１日、２日、３日、４日後や、ソルト値が生成されてから最大１週間、２週間、または、３週間のような、予め規定された時間期間の間だけ有効である。
【００５４】
ステップ２１０  ステップ２１０において、クライアントがブランド化アプリケーション３６を実行する。例えば、いくつかの実施形態では、ブランド化アプリケーションは、ＡＤＯＢＥアクションスクリプト バージョン１、２、または、３からコンパイルされるＦＬＡＳＨ ＳＷＦファイルである。このような実施形態では、ウェブブラウザ３４は、ＳＷＦバイトコードを解釈するために、クライアント１００上で、（示していない）ＦＬＡＳＨプレーヤを利用する（実行する）。このようにして、アプリケーションが実行される。それが実現されるプログラミング言語にかかわらず、ブランド化アプリケーション３６は、例えば、ゲーム、ソーシャルネットワークのアプリケーション、金融サービスのソフトウェア、会計ソフトウェア、税金準備ソフトウェア、または、取引要求を安全に行う必要があるかもしれない、他の任意のタイプのアプリケーションであってもよい。
【００５５】
ステップ２１２  ステップ２１２において、クライアントが、セキュリティ保護された取引要求を行う。このことは、ブランド化アプリケーション３６の要求モジュール１３６によって行われる。特に、ブランド化アプリケーション３６が、要求を形成し、次に、サイン鍵１３８を使用して、要求にサインして、これによって、要求中へと署名を組み込む。署名は、所定の時間期間の間だけ、要求を行ったアプリケーションに対してだけ、アプリケーションを要求している特定のユーザに対してだけ有効なので、サインされた取引要求が、悪意を持って傍受されて、解釈された場合でも、署名の有効性は、少なくとも時間１４６、ユーザ識別子１４４、特定のアプリケーション開発者に関係する秘密鍵、そして、オプション的に、アプリケーション開発者識別子１４２（アプリケーション構成）によって、厳しくゲートされているので、取引サーバ２１６によってゲートされているアカウントにアクセスするのに、取引要求内の署名を使用することはできない。
【００５６】
ステップ２１４および２１６  いくつかの実施形態では、ステップ２１２の要求は、アプリケーションサーバ１８０に送られ、次に、アプリケーションサーバ１８０が、要求を取引サーバ２００に送る。このことは、例えば、妥当性確認目的で、アプリケーションユーザ識別子鍵１４４に、サインされた要求を関係付けるために、発生してもよい。他の実施形態では、サインされた要求は、取引サーバに直接送られる。
【００５７】
取引サーバ１８０が、サインされた要求を受信したとき、サイン鍵検証モジュール２３６は、取引要求中の署名にマッチする署名を再構築しようとする。認証されていない源によって、要求が送られているのとは対照的に、正当な要求であることを確実にするために、このことは必要である。要求中に含まれる署名を再構築するために、サイン鍵検証モジュール２３６は、第１のインスタンスにおいて、サイン鍵１３８をビルドするのにサイン鍵発生モジュール１４０が使用したものと同一の情報を要求する。すなわち、サイン鍵検証モジュール２３６は、（ｉ）オプション的なアプリケーション開発者識別子１４２、（ｉｉ）アプリケーションを要求しているクライアントのアプリケーションユーザ識別子１４４、（ｉｉｉ）現在の時間に基づいたソルト値１４６、および、（ｉｖ）秘密鍵１４８を要求する。セキュリティの目的のために、好ましい実施形態において、ソルト値１４６および秘密鍵１４８は、インターネットを通して通信されない。図１に示したように、取引サーバ２００は、既に秘密１４８を知っている。ソルト値１４６は、現在の時間に基づいて、取引サーバによって再構築される。例として、サイン鍵発生モジュール１４０は、ＵＴＣの整数除算値、および、１時間のような、何らかの時間インクリメントをとる場合、サイン鍵検証モジュール２３６も同様に、ＵＴＣの整数除算値、および、何らかの時間インクリメントをとる。しかしながら、ここでの違いは、サイン鍵発生モジュール１４０がいつ整数除算をとるかを、取引サーバ２００が知らないことである。したがって、いくつかの実施形態では、サイン鍵発生モジュール１４０が整数除算をとったときと、サイン鍵検証モジュール２３６が整数除算をとるときとの間の時間差に対処するために、サイン鍵検証モジュールは、３つの異なる時間を試すことになる：すなわち、（ｉ）現在の時間、（ｉｉ）将来への１つの時間インクリメント（例えば、次の８時間間隔）、（ｉｉｉ）過去への１つの時間インクリメント（例えば、直近の８時間間隔）である。このような実施形態では、サイン鍵検証モジュール２３６は、それぞれが異なる時間に基づいている、３つの異なる再構築されたサイン鍵を作成することになる。３つの異なる再構築されたサイン鍵から、サイン鍵検証モジュール２３６は、３つの異なる再構築された署名を作成することになる。他の実施形態では、適切なところでは、より多くの時間インクリメントが探索され、さらに、より多くの再構築されたサイン鍵および再構築された署名をもたらしている。
【００５８】
いくつかの実施形態では、サイン鍵検証モジュール２３６は、サインされた取引要求から直接、アプリケーション開発者識別子１４２と、アプリケーションユーザ識別子鍵１４４とを、サインされていない方法で取得する。いくつかの実施形態では、サイン鍵検証モジュール２３６は、サインされた取引要求を識別する識別子とともに、要求モジュール１３６から、アプリケーション開発者識別子１４２と、アプリケーションユーザ識別子鍵１４４とを取得する。当業者は、サイン鍵検証モジュール２３６が、これらの２つのパラメータを取得してもよい、任意の数の方法があり、このような方法のすべてが、本開示によって、企図されていることを理解するだろう。
【００５９】
ステップ２１８  前述のように、いったん、サイン鍵検証モジュール２３６が、必須のパラメータを持つと、サイン鍵を再生成して、サイン鍵に基づいて署名を発生させ、そして、この発生された署名を、取引要求中の署名に対して比較することが可能になる。サイン鍵検証モジュール２３６によって発生された再構成された署名が、要求とともに提供された署名とマッチングする場合、取引モジュールは取引をサービスする。例えば、取引は、レベルアンロックのようなゲーム内アップグレード、仮想の装備、仮想特別武器、チート、ポイント、および、仮想通貨のような、その他のゲーム内価値を販売するためのゲーム内取引であってもよい。しかしながら、サイン鍵検証モジュール２３６が、モジュール２３６によって発生された再構成された署名を、取引要求中の署名にマッチングすることができない場合、取引要求は拒否され、開示されたプロセスは、クライアント１００に対して何らかのアカウント情報を開示することなく、終了する。
【００６０】
ステップ２２０  ステップ２２０において、取引のステータスがレポートされる。例えば、いくつかの実施形態では、取引のステータスは、バイナリの”成功”または“失敗”の表示であってもよい。いくつかの実施形態では、ステップ２２０において、仮想通貨、実際の通貨（例えば、口座残高）、あるいは、取引に適応可能なものであってもよい、他の何らかのメトリックのパラメータのような、アカウント情報がレポートされる。
【００６１】
ステップ２２２  ステップ２２２において、ブランド化アプリケーション３６が、また、いくつかの実施形態では、アプリケーション担当モジュール１３２が、取引のステータスを通知される。例えば、いくつかの実施形態では、ユーザをゲーム中に保持するために引き起こされた、ゲーム内取引である場合、アプリケーション担当モジュール１３２は、取引が成功したか否かを通知され、取引が成功しなかった場合、アプリケーション担当モジュール１３２は、ブランド化アプリケーション３６が、ゲームを継続することを防止する。
【００６２】
ステップ２２４  ステップ２２４において、アプリケーションユーザ識別子鍵に関係するユーザは、ブランド化アプリケーション３６の使用を停止し、ブランド化アプリケーションは終了される。
【００６３】
引用された参考文献、および、代わりの実施形態 
ここで引用されたそれぞれの個別の出版物、特許、もしくは、特許出願が、あらゆる目的のために、参照によりその全体を組み込まれることになるように、特に個別に示されるのと同様に、ここで引用されたすべての参考文献は、あらゆる目的のために、参照により、それらの全体を組み込まれる。
【００６４】
本発明は、コンピュータ読取可能記憶媒体中に埋め込まれる、コンピュータプログラムメカニズムを含む、コンピュータプログラム製品として実現されてもよい。例として、コンピュータプログラム製品は、図１に示したプログラムモジュールを含むことができる。これらのプログラムモジュールは、ＣＤ−ＲＯＭ、ＤＶＤ、磁気ディスク記憶装置製品、または、他の何らかの有体的なコンピュータ読取可能データもしくはプログラム記憶装置製品上に記憶されることができる。
【００６５】
当業者によって明らかになるように、本発明の精神および範囲を逸脱することなく、本発明の数多くの修正および変形を行うことができる。ここで記述して特定の実施形態は、例としての目的でのみ提供した。実施形態は、本発明の原則と、その実際の応用を最もよく説明するために、選ばれ、記述され、これによって、企図される特定の使用に適したさまざまな修正とともに、発明およびさまざまな実施形態を、当業者が最も良く利用することを可能にしている。本発明は、添付の特許請求の範囲に対する同等物の全体の範囲の権利が与えられたものとともに、添付の特許請求の範囲の用語によってのみ限定されている。  
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］クライアントコンピュータと取引サーバとの間で、電子的要求を認証するための方法において、
（Ａ）適切にプログラムされているアプリケーションサーバにおいて、前記クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信することと、
（Ｂ）前記適切にプログラムされているアプリケーションサーバを使用して、前記（Ａ）の受信に応答して、第１の複数のパラメータの第１の関数として、サイン鍵を構築することと、
（Ｃ）前記アプリケーションのブランド化されていないバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションのブランド化されたバージョンを形成することと
を含み、
前記電子的要求は、前記電子的要求を発信しているユーザの識別子を含み、
前記複数のパラメータは、（ｉ）前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、（ｉｉ）第１の時間ベースのソルト値と、（ｉｉｉ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、方法。
［２］前記第１の複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、上記［１］の方法。
［３］前記（Ｃ）の埋め込みは、前記適切にプログラムされているアプリケーションサーバによって実行され、
前記方法は、
（Ｄ）前記アプリケーションのブランド化されたバージョンを、前記クライアントコンピュータに電子的に配信すること
をさらに含む、上記［１］の方法。
［４］前記（Ｃ）の埋め込みは、前記クライアントコンピュータによって実行され、
前記方法は、
前記（Ｃ）の埋め込みの前に、前記サイン鍵を、前記クライアントコンピュータに電子的に配信すること
をさらに含む、上記［１］の方法。
［５］前記第１の関数は、ハッシュ関数であり、
前記サイン鍵は、
（ｉ）前記アプリケーションに関する電子的要求を発信している前記ユーザの識別子と、
（ｉｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉｉ）第１の時間ベースのソルト値と、
（ｉｖ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、上記［１］の方法。
［６］前記第１の関数は、ハッシュ関数であり、
前記サイン鍵は、
（ｉ）前記アプリケーションに関する前記電子的要求を発信しているユーザの識別子と、
（ｉｉ）第１の時間ベースのソルト値と、
（ｉｉｉ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、上記［１］の方法。
［７］前記第１の時間ベースのソルト値は、
（ｉ）前記（Ａ）の受信に関係する協定世界時（ＵＴＣ）と、
（ｉｉ）予め定められた時間インクリメントと
の整数除算値である、上記［１］の方法。
［８］前記第１の時間ベースのソルト値は、
（ｉ）前記（Ｂ）の構築に関係する協定世界時（ＵＴＣ）と、
（ｉｉ）予め定められた時間インクリメントと
の整数除算値である、上記［１］の方法。
［９］前記サインされた取引要求は、前記取引サーバ上で維持されている、前記ユーザの識別子に関係するアカウントを使用して、ゲーム内アップグレードを購入するための、ゲーム内取引である、上記［１］の方法。
［１０］前記ゲーム内アップグレードは、レベルアンロック、仮想の装備の購入、仮想の特別武器の購入、チートの購入、または、仮想通貨の購入である、上記［９］の方法。
［１１］前記アプリケーションのブランド化バージョンは、ソーシャルネットワークのアプリケーション、金融サービスのアプリケーション、会計アプリケーション、または、税金準備アプリケーションである、上記［１］の方法。
［１２］前記方法は、
前記クライアントコンピュータを使用して、前記ブランド化アプリケーションを実行することと、
前記実行されているブランド化アプリケーションを使用して、前記サイン鍵に基づいた署名を含む要求を行うことと、
前記サインされた要求を、前記取引サーバに通信することと
をさらに含み、
前記クライアントコンピュータは、前記ブランド化アプリケーションを実行するように適切にプログラムされている、上記［１］の方法。
［１３］前記サインされた要求は、前記ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子を含む、上記［１２］の方法。
［１４］前記方法は、
（ｉ）前記取引サーバにおいて、前記サインされた要求を受信することと、
（ｉｉ）再構築されたサイン鍵を形成することと、
（ｉｉｉ）前記再構築されたサイン鍵から署名を形成することと、
（ｉｖ）前記サインされた要求を評価することと
をさらに含み、
前記取引サーバは、前記形成を実行するように適切にプログラムされており、前記形成は、第２の複数のパラメータに対して、第２の関数を適用することを含み、
前記第２の複数のパラメータは、（ｉ）前記要求を行っているユーザの識別子と、（ｉｉ）第２の時間ベースのソルト値と、（ｉｉｉ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記評価は、
（ａ）前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングするとき、認証された状態が得られ、
（ｂ）前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングしないとき、失敗した状態が得られる、上記［１２］の方法。
［１５］前記第２の複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、上記［１４］の方法。
［１６］前記第２の関数は、ハッシュ関数であり、
前記再構築されたサイン鍵は、
（ｉ）前記アプリケーションに関する前記電子的要求を発信しているユーザの識別子と、
（ｉｉ）前記アプリケーションの分配者または開発者を識別する識別子と、
（ｉｉｉ）第２の時間ベースのソルト値と、
（ｉｖ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、上記［１４］の方法。
［１７］前記第２の関数は、ハッシュ関数であり、
前記再構築されたサイン鍵は、
（ｉ）前記アプリケーションに関する前記電子的要求を発信しているユーザの識別子と、
（ｉｉ）第２の時間ベースのソルト値と、
（ｉｉｉ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、上記［１４］の方法。
［１８］前記第２の時間ベースのソルト値は、
（ｉ）前記（Ｈ）の受信、（Ｉ）の形成、または、（Ｊ）の認証に関係する、協定世界時（ＵＴＣ）と、
（ｉｉ）予め定められた時間インクリメントと
の整数除算値である、上記［１４］の方法。
［１９］前記失敗した状態が得られるとき、前記方法は、
インクリメントされた、または、デクリメントされた、前記第２の時間ベースのソルト値とともに、前記（ｉ）の形成と、前記（ｉｉ）の形成と、前記（ｉｉｉ）の評価とを繰り返すことをさらに含む、上記［１４］の方法。
［２０］前記認証された状態が得られるとき、前記方法は、
前記取引サーバを使用して、前記要求にサービスすることをさらに含み、
前記取引サーバは、前記認証された状態が得られるときに、前記要求にサービスするように、適切にプログラムされている、上記［１４］の方法。
［２１］前記適切にプログラムされているアプリケーションサーバは、前記取引サーバ以外のサーバである、上記［１］の方法。
［２２］前記適切にプログラムされているアプリケーションサーバと、前記取引サーバとは、同一のサーバである、上記［１］の方法。
［２３］前記アプリケーションは、ＦＬＡＳＨアプリケーションである、上記［１］の方法。
［２４］コンピュータシステムと関連して使用するためのコンピュータプログラム製品において、
前記コンピュータプログラム製品は、コンピュータ読取可能記憶媒体と、その中に埋め込まれたコンピュータプログラムメカニズムとを備え、前記コンピュータプログラムメカニズムは、クライアントコンピュータと取引サーバとの間で、電子的要求を認証するためのものであり、前記コンピュータプログラムメカニズムは、
（Ａ）適切にプログラムされているアプリケーションサーバにおいて、前記クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信させるためのコンピュータ実行可能命令と、
（Ｂ）前記適切にプログラムされているアプリケーションサーバを使用して、前記（Ａ）の受信に応答して、複数のパラメータの関数として、サイン鍵を構築させるためのコンピュータ実行可能命令と、
（Ｃ１）前記アプリケーションのブランド化されていないバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションのブランド化されたバージョンを形成させるためのコンピュータ実行可能命令と、
（Ｃ２）前記クライアントコンピュータに対して前記サイン鍵を配信させるためのコンピュータ実行可能命令と、
を含み、
前記電子的要求は、前記電子的要求を発信しているユーザの識別子を含み、
前記複数のパラメータは、（ｉ）前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、（ｉｉ）第１の時間ベースのソルト値と、（ｉｉｉ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、コンピュータプログラム製品。
［２５］前記複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、上記［２４］のコンピュータプログラム製品。
［２６］システムにおいて、
（Ａ）適切にプログラムされているアプリケーションサーバにおいて、前記クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信する手段と、
（Ｂ）前記適切にプログラムされているアプリケーションサーバを使用して、前記（Ａ）の受信に応答して、複数のパラメータの関数として、サイン鍵を構築する手段と、
（Ｃ１）前記アプリケーションのブランド化されていないバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションのブランド化されたバージョンを形成する手段と、
（Ｃ２）前記クライアントコンピュータに対して前記サイン鍵を配信する手段と、
を含み、
前記電子的要求は、前記電子的要求を発信しているユーザの識別子を含み、
前記複数のパラメータは、（ｉ）前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、（ｉｉ）第１の時間ベースのソルト値と、（ｉｉｉ）前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記アプリケーションのブランド化されたバージョンは、（ｉ）サイン鍵で要求にサインして、これによって、サインされた要求を形成し、（ｉｉ）ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、システム。
［２７］前記複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、上記［２６］のシステム。
【図１】
0005480358.tif 000002
【図２】
0005480358.tif 000003