説明

電子取引を認証するためのシステムと方法

【課題】クライアントコンピュータと取引サーバとの間で電子的要求を認証するためのシステムを提供する。
【解決手段】要求を発信しているユーザの識別子を含む、クライアントコンピュータ100からのアプリケーション要求が、アプリケーションサーバ180において受信される。アプリケーションサーバ180は、要求発信ユーザの識別子と、時間ベースのソルト値と、アプリケーションサーバ180および取引サーバ200の間で共有される秘密と、オプション的にアプリケーションの開発者を識別する識別子に基づいて、サイン鍵を構成する。ブランド化されていないアプリケーションにサイン鍵を埋め込んでブランド化されたアプリケーションを形成する。ブランド化されたアプリケーションは、サイン鍵で要求にサインして、ユーザの識別子、および、アプリケーションの開発者を識別する識別子とともに、サインされた要求を、取引サーバ200に送出できる。

【発明の詳細な説明】
【発明の分野】
【0001】
本発明は、一般的に、セキュリティ保護されていないかもしれないアプリケーションから発信されている電子取引を認証するためのシステムと方法に関連する。
【背景】
【0002】
クライアントコンピュータが、セキュリティ保護されたリアルタイム取引サービスを要求するのにかかわらず、クライアントコンピュータ上で実行されている、潜在的にセキュリティ保護されていないアプリケーションの数は増え続けている。このようなアプリケーションの制限的でない1つの例は、FLASH(登録商標)ベースのゲームアプリケーションであり、FLASHベースのゲームアプリケーションは、レベルアンロック、仮想の装備、仮想特別武器、および、ゲーマーに対する直接のチートのようなゲーム内アップグレードを購入するために、仮想通貨の補充を必要とする。このようなリアルタイム取引をセキュリティ保護することは、ユーザおよびアプリケーション開発者を、アカウント情報の不正取得、識別子盗難、および、他の形態の詐欺から保護するために、技術的に必要とされている。
【0003】
このような取引をセキュリティ保護するための、1つの知られている方法は、共有された秘密(秘密鍵暗号化技術)の使用の概念である。秘密鍵暗号化技術は、単一の鍵を使用することを含む。メッセージおよび鍵があるとして、暗号化は、解読するために鍵を必要とする理解不可能なデータを生み出す。例えば、ここで参照により組み込まれている、Kaufman氏の“Network Security” Prentice−Hall, Inc., Upper Saddle River, New Jerseyのセクション2.4を参照せよ。しかしながら、共有化秘密方法は、アプリケーションのうちの1つが、セキュリティ保護されていないインスタンスにおいては、作用しない。例えば、数多くの人気のあるプログラミングアプリケーションは、FLASHプレーヤによって実行され、セキュリティ保護されていない。典型的に、共有秘密アルゴリズムが使用されるとき、ローカルウェブサーバを呼び出す、リモートウェブサーバがある。秘密は、リモートウェブサーバ、および、ローカルウェブサーバにおいて安全であり、2つのサーバの間で通信されない。アプリケーションが、クライアントコンピュータに対してダウンロードされ、例えば、クライアントのブラウザ内で実行される、FLASH、または、他のプログラムにおいて記述されているとき、これは失敗する。FLASHのケースでは、ユーザがFLASHアプリケーションを要求するとき、FLASHプレーヤによって解釈されるバイトコードを含むSWFファイルが、クライアントコンピュータにダウンロードされ、クライアントのブラウザ内のFLASHプレーヤによって、実行(解釈)される。SWFファイル中のバイトコードを、クライアントコンピュータにおいて検査して、秘密を決定することができる。このように、FLASHのSWFファイル内に、秘密を含めることはできない。
【0004】
上記の背景を仮定すると、技術的に必要とされるものは、セキュリティ保護されていないかもしれないアプリケーションから発信されている電子取引を認証するための改善されたシステムおよび方法である。
【概要】
【0005】
本開示は、技術的な不備に対処する。1つの観点は、クライアントコンピュータと取引サーバとの間で、電子的要求を認証するための方法を提供する。方法では、適切にプログラムされているアプリケーションサーバにおいて、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求が受信される。適切にプログラムされているアプリケーションサーバを使用して、受信に応答して、(i)アプリケーションに関する、電子的要求を発信しているユーザの識別子と、(ii)第1の時間ベースのソルト値と、(iii)適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む、複数のパラメータの第1の関数として、サイン鍵が構築される。いくつかの実施形態では、複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。
【0006】
いくつかの実施形態では、アプリケーションのブランド化されていないバージョン中に、サイン鍵が埋め込みされて、これによって、アプリケーションのブランド化されたバージョンが形成される。このような実施形態では、ブランド化されたアプリケーションが、クライアントコンピュータに配信される。いくつかの実施形態では、アプリケーションサーバは、アプリケーションをサイン鍵でブランド化せず、むしろ、サイン鍵をクライアントブラウザに送出する。このような実施形態では、クライアントブラウザ自体が、アプリケーションをサイン鍵でブランド化する。アプリケーションのブランド化されたバージョンが、どのように構成されているかにかかわらず、アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求(例えば、サイン鍵に基づいて、発生される署名を含む要求)を形成し、(ii)オプション的に、ユーザの識別子、および、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。
【0007】
いくつかの実施形態では、第1の関数は、ハッシュ関数であり、サイン鍵は、(i)アプリケーションに関する電子的要求を発信しているユーザの識別子と、(ii)アプリケーションの分配者または開発者を識別する識別子と、(iii)第1の時間ベースのソルト値と、(iv)適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とのハッシュである。
【0008】
いくつかの実施形態では、第1の関数は、ハッシュ関数であり、サイン鍵は、(i)アプリケーションに関する電子的要求を発信しているユーザの識別子と、(ii)第1の時間ベースのソルト値と、(iii)適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とのハッシュである。
【0009】
いくつかの実施形態では、第1の時間ベースのソルト値は、(i)受信に関係する協定世界時(UTC)と、(ii)予め定められた時間インクリメントと
の整数除算値である。いくつかの実施形態では、第1の時間ベースのソルト値は、(i)構築に関係する協定世界時(UTC)と、(ii)予め定められた時間インクリメントとの整数除算値である。
【0010】
いくつかの実施形態では、サインされた取引要求は、取引サーバ上で維持されている、ユーザの識別子に関係するアカウントを使用して、ゲーム内アップグレードを購入するための、ゲーム内取引である。いくつかの実施形態では、ゲーム内アップグレードは、レベルアンロック、仮想の装備の購入、仮想の特別武器の購入、チートの購入、または、仮想通貨の購入である。
【0011】
いくつかの実施形態では、アプリケーションは、ソーシャルネットワークのアプリケーション、金融サービスのアプリケーション、会計アプリケーション、または、税金準備アプリケーションである。
【0012】
いくつかの実施形態では、方法は、クライアントコンピュータを使用して、ブランド化アプリケーションを実行することをさらに含み、クライアントコンピュータは、ブランド化アプリケーションを実行するように適切にプログラムされている。次に、実行されているブランド化アプリケーションを使用して、サイン鍵とともにサインされた要求が行われ、この要求が、取引サーバに通信される。いくつかの実施形態では、サインされた要求は、ユーザの識別子、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子を含む。
【0013】
いくつかの実施形態では、方法は、取引サーバにおいて、サインされた要求を受信することをさらに含み、ここで、取引サーバは、(i)秘密鍵のそのバージョンを使用して、再構築されたサイン鍵を発生させることと、(ii)再構築されたサイン鍵を使用して、再構築された署名を形成することと、によって、サインされた要求の有効性を確認する。明瞭さの目的で、取引サーバによって発生されるサイン鍵を、“再構築されたサイン鍵”として、ここで参照する。明瞭さの目的で、取引サーバを使用して、再構築されたサイン鍵から形成される再構築された署名を、“再構築された署名”として、ここで参照する。再構築された署名が、要求中の署名とマッチングする場合、取引サーバは要求を“信用”して、これにサービスすることになる。取引サーバは、サイン鍵を作成するためにアプリケーションサーバによって使用されたのと、全く同一の関数を使用して、再構築されたサイン鍵を発生させる。明瞭さの目的で、秘密鍵から再構築されたサイン鍵を発生させるために、取引サーバによって使用される関数を、ここで、“第2の関数”として参照し、他方、秘密鍵からサイン鍵を発生させるために、アプリケーションサーバによって使用される関数を、ここで、“第1の関数”として参照する。しかしながら、第1の関数および第2の関数は別のサーバ上で実行されるが、第1の関数および第2の関数は、必ずしも互いに同一でないことが理解されるだろう。このことを考慮して、また、アプリケーションサーバによる第1の関数の性質に依拠して、取引サーバは、第2の関数を、第2の複数のパラメータに適用することによって、再構成されたサイン鍵を形成する。いくつかの実施形態では、第2の複数のパラメータは、(i)要求を行っているユーザの識別子と、(ii)第2の時間ベースのソルト値と、(iii)適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む。いくつかの実施形態では、第2の複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。次に、取引サーバは、再構築されたサイン鍵から再構築された署名を形成する。次に、取引サーバは、再構築された署名を、要求中の署名に比較することによって、取引要求を有効性確認する。
【0014】
いくつかの実施形態では、第2の関数は、ハッシュ関数であり、再構築されたサイン鍵は、(i)アプリケーションに関する電子的要求を発信しているユーザの識別子と、(ii)オプション的に、アプリケーションの分配者または開発者を識別する識別子と、(iii)第2の時間ベースのソルト値と、(iv)適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とのハッシュである。いくつかの実施形態では、第2の時間ベースのソルト値は、(i)取引サーバにおける要求の受信のステップ、または、(ii)取引サーバによってとられるステップに関係する、協定世界時(UTC)と、(ii)予め定められた時間インクリメントとの整数除算値である。
【0015】
いくつかの実施形態では、前述の認証が、再構築された署名が、要求中の署名とマッチングしないと決定する。いくつかのこのような例において、方法は、再構築されたサイン鍵を形成しようと、したがって、インクリメントまたはデクリメントされた、第2の時間ベースのソルト値とともに、新しい再構築されたサイン鍵を、再試行することをさらに含む。
【0016】
前述のように、検証が成功したとき、取引サーバは、要求をサービスする。いくつかの実施形態では、適切にプログラムされたアプリケーションサーバは、取引サーバ以外のサーバであってもよい。いくつかの実施形態では、適切にプログラムされたアプリケーションサーバと、取引サーバとは、同一のサーバである。いくつかの実施形態では、アプリケーションは、FLASHアプリケーションである。ここで使用するように、用語“サーバ”を、ここで、秘密鍵を記憶するのに十分にセキュリティ保護されているとして考えられている、また、何らかの手段(例えば、ワイヤレス通信、インターネット、データケーブル、および、類似物)によって、別のコンピュータと電子的に通信することのできる、何らかのコンピュータを広く意味するために、使用する。
【0017】
別の観点は、コンピュータシステムと関連して使用するためのコンピュータプログラム製品を提供し、コンピュータプログラム製品は、コンピュータ読取可能記憶媒体と、その中に埋め込まれたコンピュータプログラムメカニズムとを備える。コンピュータプログラムメカニズムは、クライアントコンピュータと取引サーバとの間で、電子的要求を認証するためのものである。コンピュータプログラムメカニズムは、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信させるためのコンピュータ実行可能命令を含む。コンピュータプログラムメカニズムは、受信に応答して、複数のパラメータの関数として、サイン鍵を構築させるためのコンピュータ実行可能命令をさらに含み、複数のパラメータは、(i)アプリケーションに関する、電子的要求を発信しているユーザの識別子と、(ii)第1の時間ベースのソルト値と、(iii)適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む。
【0018】
いくつかの実施形態では、複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。
【0019】
いくつかの実施形態では、コンピュータプログラムメカニズムは、アプリケーションのブランド化されていないバージョン中に、サイン鍵を埋め込みして、これによって、アプリケーションのブランド化されたバージョンを形成させるためのコンピュータ実行可能命令をさらに含み、ここで、アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求を形成し、(ii)ユーザの識別子、および、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。このような実施形態では、コンピュータプログラムメカニズムは、クライアントコンピュータに対してサイン鍵を配信させるためのコンピュータ実行可能命令をさらに含む。
【0020】
いくつかの代替の実施形態では、コンピュータプログラムメカニズムは、サイン鍵をクライアントコンピュータに電子的に配信させるためのコンピュータ実行可能命令をさらに含み、クライアントコンピュータが、代わりに、アプリケーションのブランド化されていないバージョンをブランド化して、これによって、アプリケーションのブランド化されたバージョンを形成する。これらの代替の実施形態では、アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求を形成し、(ii)ユーザの識別子とともに、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。
【0021】
別の観点は、適切にプログラムされているアプリケーションサーバにおいて、クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信する手段を含むシステムを提供し、ここで、電子的要求は、電子的要求を発信しているユーザの識別子を含む。システムは、受信に応答して、複数のパラメータの関数として、サイン鍵を構築する手段をさらに含み、複数のパラメータは、(i)アプリケーションに関する、電子的要求を発信しているユーザの識別子と、(ii)第1の時間ベースのソルト値と、(iii)適切にプログラムされているアプリケーションサーバおよび取引サーバの間で共有される秘密とを含む。いくつかの実施形態では、複数のパラメータは、アプリケーションの分配者または開発者を識別する識別子をさらに含む。
【0022】
いくつかの実施形態では、システムは、アプリケーションのブランド化されていないバージョン中に、サイン鍵を埋め込みして、これによって、アプリケーションのブランド化されたバージョンを形成する手段をさらに含み、ここで、アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求を形成し、(ii)ユーザの識別子、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。このような実施形態では、システムは、システムは、クライアントコンピュータにアプリケーションのブランド化されたバージョンを電子的に配信する手段をさらに含む。
【0023】
いくつかの代替の実施形態では、システムは、クライアントコンピュータに対してサイン鍵を配信する手段をさらに含み、クライアントコンピュータが、サイン鍵を使用して、代わりに、アプリケーションのブランド化されていないバージョンをブランド化して、これによって、アプリケーションのブランド化されたバージョンを形成する。アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求を形成し、(ii)ユーザの識別子とともに、および、オプション的に、アプリケーションの分配者または開発者を識別する識別子とともに、サインされた要求を、取引サーバに送出するように構成されている。
【図面の簡単な説明】
【0024】
同一の参照番号は、図面のいくつかの視点全体を通しての対応する部分を参照する。
【図1】図1は、本開示の観点にしたがった、システムを図示する。
【図2】図2は、本開示の観点にしたがった、方法を図示する。
【詳細な説明】
【0025】
本開示は、潜在的にセキュリティ保護されていないアプリケーションによって通信されている電子取引を認証するための、周知のシステムおよび方法についての新規な前進を詳述する。本開示は、一時的なサイン鍵の使用を行う。クライアントコンピュータ上で実行されており、潜在的にセキュリティ保護されていない、FLASHアプリケーションのようなアプリケーションと、セキュリティ保護されている取引サーバとの間で、サイン鍵が送られる。サイン鍵は、一時的なものであるので、鍵の不正使用の機会は少ない。言い換えると、誰かが、サイン鍵を構築できた場合であっても、彼らが鍵とともに実行可能なことは、非常に限られている。
【0026】
いくつかの実施形態では、サイン鍵は、以下の(i)ないし(iii)を含む複数のパラメータから発生される。すなわち、(i)アプリケーション開発者と、取引サーバとの間で共有されている、実際の共有の秘密、(ii)セキュリティ保護されていないアプリケーションのユーザに関係するアプリケーションユーザ識別子(例えば、クライアント上で実行されているFLASHゲームのインスタンスに一意的であり、言い換えると、ゲームのインスタンスを要求しているユーザが、FLASHゲームのそのインスタンスに対する、一意的なアプリケーションユーザ識別子を与えられ、ゲームセッションの最後においてインスタンスは終了する)、および、(iii)サイン鍵が作成されるときのような、基準時間(例えば、何らかの時間期間、言ってみれば、1日によって分けられたUTCの整数値)に基づいたソルト値である。いくつかの実施形態では、複数のパラメータは、セキュリティ保護されていないアプリケーションの開発者に対して与えられる(または、アプリケーションの開発者によって作られる)アプリケーション開発者識別子をさらに含む。この追加的なパラメータは、所定のアプリケーション開発者が、複数の独立した通貨プラットフォームまたは取引構成の使用を行うときに、有用である。したがって、開発者によって提供されている、このような通貨プラットフォームまたは構成うちの1つだけのもののユーザが、アプリケーション開発者によって提供されている、他の通貨プラットフォームまたは構成の、認証されていない要求を行うことを防止するために、アプリケーション開発者は、特定の通貨プラットフォームまたは構成を識別する、アプリケーション開発者識別子を、好都合にも提供することができる。したがって、アプリケーション開発者は、それぞれが、1つ以上のアプリケーションにおいて、アプリケーション開発者によって使用される、異なる通貨プラットフォームまたは構成に対応する、任意の数の(例えば、1つ以上のアプリケーション開発者識別子、2つ以上のアプリケーション開発者識別子、5つ以上のアプリケーション開発者識別子、および、類似物の)アプリケーション開発者識別子を有することが可能である。
【0027】
いくつかの実施形態では、追加的なコンポーネント(パラメータ)を使用して、署名鍵を形成してもよく、すべてのこのような実施形態は、本開示内に包含される。
【0028】
上で識別したコンポーネントが、一緒にされ、ハッシュされて、潜在的にセキュリティ保護されていないアプリケーションによって、取引サーバとの通信にサインするために使用される一意的な一時鍵を形成してもよい。
【0029】
アプリケーションの開発者識別子、時間期間識別子、オプション的なアプリケーションユーザ識別子鍵、および、上で特定した秘密鍵の要求のために、この一意的な鍵(ハッシュ値)は、特定の時間期間の間(例えば、特定の24時間の期間)、特定のアプリケーション開発者とともに、特定のユーザに対してだけ、有効である。サイン鍵を傍受した誰か、または、サイン鍵を使用して生成された署名は、他のユーザのデータまたは、他のマーチャントのデータにアクセスするために、それを使用することができないだろう。さらに、一意的なサイン鍵が、アプリケーション開発者と、取引サーバとだけが所有する、共有される秘密に基づいているので、アプリケーション開発者と、取引サーバとだけは、第1のインスタンスにおける一意的なハッシュ鍵を発生させることさえもできる。潜在的にセキュリティ保護されていないアプリケーションは、サイン鍵で、個別の取引要求にサインする。このことが意味するのは、当業者にとって周知の方法を使用して、取引中に含められる署名を形成するための基礎として、サイン鍵が使用されることである。サインされた要求が、取引サーバによって受信されるとき、チェックが行われて、要求が、特定の基準から発生された鍵でサインされたかが確認される。行われることは、取引サーバが、(アプリケーションサーバ上で)第1のインスタンスにおけるサイン鍵を構成するのに使用された、同一のパラメータをハッシュしようとすることである。このことは、再構成されたサイン鍵の形成をもたらす。次に、取引サーバは、再構成されたサイン鍵を使用して、再構成された署名を形成する。再構成された署名は、次に、要求中の署名と比較される。しかしながら、いくつかの実施形態では、サイン鍵が作成されたときの時間(および、したがって、サイン鍵が作成されたときの時間ベースのソルト値)と、取引サーバがサインされた取引要求を受信したときの時間との間の差に対処するために、取引サーバは、必要な場合、以下の3つの異なる時間:すなわち、(i)現在時間、(ii)将来への1つの時間インクリメント(例えば、次の8時間間隔)、(iii)過去への1つの時間インクリメント(例えば、直近の8時間間隔)に、再構築されたサイン鍵を形成しようと試みるだろう。当然ながら、実施形態において、より多くの時間間隔が試みられてもよく、ここで、将来の時間間隔探査が適切である。上の例では、現在の時間に基づいたハッシュ(再構築されたサイン鍵の形成)が行われ、なぜなら、これは、使用するための最も正確な見込みのある値であるからであり、前の時間インクリメントを使用したハッシュ(再構築されたサイン鍵の形成)は、前の時間インクリメントにおいて潜在的にセキュリティ保護されていないアプリケーションの使用を開始したインスタンス(例えば、誰かが、言ってみれば、11PMに、潜在的にセキュリティ保護されていないアプリケーションのインスタンスを開始し、彼らが、1時間後にこのアップリケーションをキックアウトしていることが望ましくない場合)を許容するために行われ、将来の時間インクリメントを使用したハッシュ(再構築されたサイン鍵の形成)は、潜在的にセキュリティ保護されていないアプリケーションを実行しているコンピュータと、取引サーバとの間でクロックスキューがある可能性に対処するために行われる。
【0030】
ここで、潜在的にセキュリティ保護されていないアプリケーションから、セキュリティ保護された要求を行うための新規なプロセスの方法の概要を開示することとし、その利点を提供し、本願にしたがったシステムのより詳細な説明を、図1に関連して記述する。図1は、本開示にしたがった環境のトポロジーを図示する。
【0031】
トポロジーにおいて、アプリケーションサーバ180、クライアントコンピュータ100、および、取引コンピュータ200がある。もちろん、他のトポロジーもまた可能であり、例として、アプリケーションサーバ180は、実際には、複数のサーバを含んでもよい。さらに、典型的に、何百の、何千の、何十万の、または、それ以上のクライアントコンピュータ100がある。図1に示した例示的なトポロジーは、単に、当業者にとって容易に理解されることになるような方法で、本発明の特徴を最もよく記述するのに役立つ。
【0032】
アプリケーションサーバ180は、典型的に、1つ以上の処理ユニット(CPU)102、ネットワークまたは他の通信インターフェース110、メモリ114、1つ以上の制御装置118によってアクセスされる1つ以上の磁気ディスク記憶デバイス120、前述のコンポーネントを相互接続するための1つ以上の通信バス112、および、前述のコンポーネントに電源供給するための電源供給部124を有することになる。メモリ114中のデータは、キャッシングのような周知のコンピューティング技術を使用して、不揮発性メモリ120とシームレスに共有される。メモリ114および/またはメモリ120は、中央処理ユニット102に関して、遠隔地に位置している大容量記憶装置を含む。言い換えると、メモリ114および/またはメモリ120中に記憶されている何らかのデータは、実際には、アプリケーションサーバ180に対して外部にあるが、アプリケーションサーバ180によって、ネットワークインターフェース110を使用して、(図1中にエレメント126として図示する)インターネット、イントラネット、または、他の形態のネットワークもしくは電子ケーブルを通して、電子的にアクセスされることができるコンピュータ上でホスティングされていてもよい。
【0033】
メモリ114は、好ましくは、以下のものを記憶する。
・さまざまな基本システムサービスを取り扱うための、また、ハードウェア依存タスクを実行するための手続を含む、オペレーティングシステム130;
・インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク(例えば、ローカルワイヤレスネットワークは、クライアントコンピュータ100をアプリケーションサーバ180に接続できる)、都市エリアネットワーク、等のような通信ネットワークを通して、クライアントコンピュータ100(図1)のようなさまざまなクライアントコンピュータに対して、および、潜在的に、(取引サーバ200のような)他のサーバもしくはコンピュータに対して、アプリケーションサーバ180を接続するために使用されるアプリケーション供給モジュール132;
・ユーザ要求の際に、クライアントコンピュータ100に配信するためのブランド化されていないアプリケーション134;
・本開示にしたがって、ブランド化されていないアプリケーションを、ブランド化するのを支援するために使用される、サイン鍵発生モジュール140。
【0034】
アプリケーションサーバ180は、1つ以上のクライアントデバイス100に対して、インターネット/ネットワーク126を介して接続される。図1は、1つだけのこのようなクライアントデバイス100に対する接続を図示する。クライアントデバイスが、パーソナルコンピュータ(例えば、デスクトップもしくはラップトップコンピュータ)または、任意の形態の移動コンピュータデバイス(例えば、i−phone(登録商標)、Blackberry(登録商標)、および、類似物)であることが可能である。典型的な実施形態において、クライアントデバイス100は、以下のものを含む。
【0035】
・1つ以上の処理ユニット(CPU)2;
・ネットワークまたは他の通信インターフェース10;
・メモリ14;
・オプション的に、1つ以上のオプション的な制御装置18によってアクセスされる1つ以上の磁気ディスク記憶デバイス20;
・ユーザインターフェース4、ユーザインターフェース4は、ディスプレイ6、および、キーボードまたはキーパッド8を含む;
・前述のコンポーネントを相互接続するための1つ以上の通信バス;
・前述のコンポーネントに電源供給するための電源供給部24、電源供給部は、例えば、バッテリであってもよい。
【0036】
いくつかの実施形態では、メモリ14中のデータは、キャッシングのような周知のコンピューティング技術を使用して、オプション的不揮発性メモリ20とシームレスに供給されることができる。いくつかの実施形態において、クライアントデバイス100は、磁気ディスク記憶デバイスを持っていない。例として、いくつかの実施形態では、クライアントデバイス100は、ポータブル手持ちコンピューティングデバイスであり、ネットワークインターフェース10は、ワイヤレス手段によって、インターネット/ネットワーク126と通信する。
【0037】
メモリ14は、好ましくは、以下のものを記憶する。
・さまざまな基本システムサービスを取り扱うための、また、ハードウェア依存タスクを実行するための手続を含む、オペレーティングシステム30;
・アプリケーションサーバ180と取引サーバ200のような他のコンピュータに対してクライアントデバイス100を接続するために使用される、ネットワーク通信モジュール32;
・Microsoft(登録商標)インターネットエクスプローラ(登録商標)バージョン6.0または6.0以降、Firefox (登録商標) 2.x、Firefox 3.x、AOL(登録商標)9、Opera9.5または9.5以降、Safari3.x、Chrome2.0または2.0より上のもののような、ブランド化アプリケーションを実行するためのオプション的なウェブブラウザ34(いくつかの実施形態において、オプション的なウェブブラウザ34は、FLASHプレーヤのようなモジュールを含む);
・本開示にしたがって、サイン鍵138を使用して、サインされた要求を行うことができる、ブランド化アプリケーション36。
【0038】
取引サーバ200は、典型的に、1つ以上の処理ユニット(CPU)202、ネットワークまたは他の通信インターフェース210、メモリ214、1つ以上の制御装置218によってアクセスされる1つ以上の磁気ディスク記憶デバイス220、前述のコンポーネントを相互接続するための1つ以上の通信バス212、および、前述のコンポーネントに電源供給するための電源供給部224を有することになる。メモリ214中のデータは、キャッシングのような周知のコンピューティング技術を使用して、不揮発性メモリ220とシームレスに共有される。メモリ214および/またはメモリ220は、中央処理ユニット102に関して、遠隔地に位置している大容量記憶装置を含む。言い換えると、メモリ214および/またはメモリ220中に記憶されている何らかのデータは、実際には、取引サーバ200に対して外部にあるが、取引サーバ200によって、ネットワークインターフェース210を使用して、(図1中にエレメント126として図示する)インターネット、イントラネット、または、他の形態のネットワークもしくは電子ケーブルを通して、電子的にアクセスされることができるコンピュータ上でホスティングされてもよい。
【0039】
メモリ214は、好ましくは、以下のものを記憶する。
・さまざまな基本システムサービスを取り扱うための、また、ハードウェア依存タスクを実行するための手続を含む、オペレーティングシステム230;
・インターネット、他のワイドエリアネットワーク、ローカルエリアネットワーク(例えば、ローカルワイヤレスネットワークは、クライアントコンピュータ100をアプリケーションサーバ180に接続できる)、都市エリアネットワーク、等のような通信ネットワークを通して、クライアントコンピュータ100(図1)のようなさまざまなクライアントコンピュータに対して、および、潜在的に、(アプリケーションサーバ180のような)他のサーバもしくはコンピュータに対して、取引サーバ2000を接続するために使用されるネットワーク通信モジュール232;
・さまざまなクライアントデバイス100上で実行されているブランド化アプリケーション36との取引を行うための取引モジュール234;
・再構築されたサイン鍵を形成するための、再構築されたサイン鍵から署名を形成するための、再構築された署名を、取引モジュール234によってサービスされるサイン去れた取引要求中の署名に比較するための、サイン鍵検証モジュール236;
・アプリケーションサーバ180と共有される秘密148。
【0040】
図2を参照して、本開示の1つの実施形態にしたがって、例示的な方法を記述する。方法は、本開示にしたがって、取引を対話的にサービスするために、アプリケーションサーバ180、クライアントコンピュータ100、および、取引サーバ200によって、行われるステップを詳述する。
【0041】
ステップ202 ステップ202において、クライアント100がアプリケーションを要求する。例えば、オンラインゲームをプレイすることを望むユーザは、ゲームを選択するのに、彼らのウェブブラウザ34を使用する。この要求は、アプリケーションサーバ180に送られ、アプリケーションサーバ180は、シームレスな方法でアプリケーションを認証することを課される。いくつかの実施形態では、アプリケーションは、クライアント100上に、ブランド化されていない形態で、既に存在していてもよく、このような実施形態において、アプリケーションサーバ180に要求されることは、アプリケーションが取引要求を行うことができるように、アプリケーションをブランド化することである。いくつかの実施形態では、アプリケーションは、クライアント100上にまだ存在しておらず、このような実施形態において、アプリケーションサーバ180に要求されることは、クライアントに、(i)アプリケーションをブランド化された形態で提供することと、(ii)アプリケーションをブランド化されていない形態でサイン鍵とともに提供することと、のうちのいずれかである。
【0042】
典型的な実施形態では、ユーザの識別子(例えば、アプリケーションユーザ識別子鍵144)とともに、要求が送られる。いくつかの実施形態では、ユーザは、アプリケーション開発者動作されているアプリケーションサーバ180とともに、アカウントを有しており、アプリケーションユーザ識別子鍵144は、このアカウントに関係する一意的な識別子である。
【0043】
ステップ204 ステップ204において、サイン鍵発生モジュール140は、一時的なサイン鍵138を発生させる。いくつかの実施形態では、このタスクを完了させるのに、少なくとも4つの異なるパラメータが必要とされる。いくつかの実施形態では、このタスクを完了させるのに、少なくとも3つの異なるパラメータが必要とされる。
【0044】
サイン鍵発生モジュール140によって、一時的なサイン鍵138を発生させるのに使用されてもよいオプション的なパラメータは、アプリケーション開発者識別子142である。いくつかの実施形態では、識別子142は、要求しているクライアント100に供給されることになるアプリケーションの開発者を一意的に識別する。いくつかの実施形態では、アプリケーション開発者識別子142が、取引サーバ200を制御するエンティティによって割り当てられる。いくつかの実施形態では、開発者識別子142は、開発者によって作成され、取引サーバ200に登録される。いくつかの実施形態では、所定のアプリケーション開発者は、複数の独立した通貨プラットフォームまたは取引構成の使用を行う。このような実施形態では、開発者によって提供されている、1つだけのこのような通貨プラットフォームまたは構成のユーザが、アプリケーション開発者によって提供されている、他の通貨プラットフォームまたは構成の認証されていない要求を行うことを防止するために、アプリケーション開発者は、特定の通貨プラットフォームまたは構成を識別する、アプリケーション開発者識別子144を、好都合にも提供することができる。したがって、アプリケーション開発者は、それぞれが、1つ以上のアプリケーションにおいてアプリケーション開発者によって使用される、異なる通貨プラットフォームまたは構成に対応する、任意の数の(例えば、1つ以上のアプリケーション開発者識別子、2つ以上のアプリケーション開発者識別子、5つ以上のアプリケーション開発者識別子、および、類似物の)アプリケーション開発者識別子を有することが可能である。したがって、いくつかの実施形態では、アプリケーション開発者が、ステップ202の取引要求に関係付けした通貨プラットフォームまたは構成を、オプション的な第1のパラメータが特定する。
【0045】
サイン鍵を発生させるのに、サイン鍵発生モジュール140によって使用される、第1に要求されるパラメータは、ユーザ識別子鍵(アプリケーションユーザ識別子鍵)144である。いくつかの実施形態では、上のステップ202に関連して前述したように、アプリケーションユーザ識別子鍵144は、クライアント100から発せられたステップ202の要求とともに提供される。いくつかの実施形態では、アプリケーションユーザ識別子鍵144は、ユーザが、アプリケーション開発者とともに有しているアカウントに関係しており、このアカウントは、取引サーバ214の取引モジュール234によってサービスされる。いくつかの実施形態では、要求はこのような識別子に関係付けられていないので、ステップ204において、新しいアプリケーションユーザ識別子鍵を発生させることが必要である。これは、例えば、ユーザが、要求されたアプリケーションの新しいユーザであり、アプリケーション開発者とともにアカウントを有していないときのケースであってもよい。いくつかの実施形態では、アプリケーションユーザ識別子鍵が、FACEBOOK(登録商標)のような、第三者によって提供される。
【0046】
サイン鍵を発生させるのに、サイン鍵発生モジュール140によって使用される、第2に要求されるパラメータは、基準時間に基づいているソルト値146である。いくつかの実施形態において、このソルト値は、要求202に関係付けられた協定世界時(UTC)である。例えば、ソルト値146は、ステップ202の要求が、クライアント100によって発せられたときのUTCであってもよく、アプリケーションサーバ180によってステップ202の要求が受信されたときのUTC、ステップ204において要求が処理されたときのUTC、または、ステップ202の要求が、クライアント100によって発せられたとき、もしくは、アプリケーションサーバ180によって受信されたときのいずれかの時間の、他の何らかの予め定められた関数であってもよい。UTCは、地球の自転の遅れを補償するために、不規則な間隔で追加される、うるう秒を有する国際原子時(TAI)に基づいた時間標準である。うるう秒は、UTCが、UT1を近く追跡することを可能にするために使用され、これは、王立天文台、グリニッジにおける太陽時間を意味する。いくつかの実施形態では、ソルト値146は、UTC、および、1時間、8時間、12時間、または、類似物のような、何らかの時間インクリメントの整数除算値である。
【0047】
サイン鍵を発生させるのに、サイン鍵発生モジュール140によって使用される、第3に要求されるパラメータは、アプリケーションサーバ180、および、取引サーバ200によって共有される秘密鍵148である。秘密鍵148の特徴は、これが、インターネット/ネットワーク126を通して通信されず、アプリケーション開発者および取引サーバ200のホストだけが、その識別を知っていることである。例えば、ここで参照により組み込まれている、Kaufman氏の“Network Security” Prentice−Hall, Inc., Upper Saddle River, New Jerseyのセクション2.4を参照せよ。
【0048】
ステップ204のいくつかの実施形態では、(i)オプション的なアプリケーション開発者識別子142、(ii)アプリケーションを要求しているクライアントのアプリケーションユーザ識別子144、(iii)時間に基づいたソルト値146、および、(iv)秘密鍵148が、一時的なサイン鍵138を発生させるのに使用される。例えば、いくつかの実施形態では、これらの4つの値が一緒に短縮され、または、そうではなく結合され、次に、サイン鍵138を発生させるために一方向ハッシュされる。
【0049】
ステップ204のいくつかの実施形態では、(i)アプリケーションを要求しているクライアントのアプリケーションユーザ識別子144、(ii)時間に基づいたソルト値146、および、(iii)秘密鍵148が、一時的なサイン鍵138を発生させるのに使用される。例えば、いくつかの実施形態では、これらの3つの値が一緒に短縮され、または、そうではなく結合され、次に、サイン鍵138を発生させるために一方向ハッシュされる。
【0050】
いくつかの実施形態では、追加の値を使用して、サイン鍵138を発生させる。
【0051】
以下のことは、アプリケーションサーバ180が、アプリケーションをブランド化し、アプリケーションをクライアント100に送る実施形態における、ステップ206から210中に発生することの記述である。代わりの実施形態では、アプリケーションサーバ180は、アプリケーションをブランド化しておらず、むしろ、クライアント100に対してサイン鍵を送っており、これは、代わりに、アプリケーションをブランド化する。
【0052】
ステップ206 ステップ206において、一時的なサイン鍵138が、ブランド化されていないアプリケーション134のインスタンスに組み込まれ、これによって、ブランド化されたアプリケーション36を形成する。いくつかの実施形態では、ブランド化されたアプリケーション34は、ADOBE(登録商標)アクションスクリプト(登録商標) バージョン1、2、3、または、利用可能なときには、これ以降のバージョンからコンパイルされるバイトコードを含むSWFファイルである。図1に示したように、ブランド化されていないアプリケーション134は、要求モジュール136を含む。いったんブランド化されると、アプリケーションは、有効サイン鍵138をさらに含むことになり、したがって、ブランド化されたアプリケーション36になる。このようにして、示していないが、ブランド化されたアプリケーション36は、送信要求を行うための要求モジュールと、サイン鍵138とを含む。
【0053】
ステップ208 ステップ208において、ブランド化アプリケーション36が、クライアントコンピュータ100に送られる。有利なことに、さまざまな実施形態において、サイン鍵36は、ソルト値が生成されてから最大2、3、4、5、6、7、8時間後や、ソルト値が生成されてから最大12時間後や、ソルト値が生成されてから最大1日、2日、3日、4日後や、ソルト値が生成されてから最大1週間、2週間、または、3週間のような、予め規定された時間期間の間だけ有効である。
【0054】
ステップ210 ステップ210において、クライアントがブランド化アプリケーション36を実行する。例えば、いくつかの実施形態では、ブランド化アプリケーションは、ADOBEアクションスクリプト バージョン1、2、または、3からコンパイルされるFLASH SWFファイルである。このような実施形態では、ウェブブラウザ34は、SWFバイトコードを解釈するために、クライアント100上で、(示していない)FLASHプレーヤを利用する(実行する)。このようにして、アプリケーションが実行される。それが実現されるプログラミング言語にかかわらず、ブランド化アプリケーション36は、例えば、ゲーム、ソーシャルネットワークのアプリケーション、金融サービスのソフトウェア、会計ソフトウェア、税金準備ソフトウェア、または、取引要求を安全に行う必要があるかもしれない、他の任意のタイプのアプリケーションであってもよい。
【0055】
ステップ212 ステップ212において、クライアントが、セキュリティ保護された取引要求を行う。このことは、ブランド化アプリケーション36の要求モジュール136によって行われる。特に、ブランド化アプリケーション36が、要求を形成し、次に、サイン鍵138を使用して、要求にサインして、これによって、要求中へと署名を組み込む。署名は、所定の時間期間の間だけ、要求を行ったアプリケーションに対してだけ、アプリケーションを要求している特定のユーザに対してだけ有効なので、サインされた取引要求が、悪意を持って傍受されて、解釈された場合でも、署名の有効性は、少なくとも時間146、ユーザ識別子144、特定のアプリケーション開発者に関係する秘密鍵、そして、オプション的に、アプリケーション開発者識別子142(アプリケーション構成)によって、厳しくゲートされているので、取引サーバ216によってゲートされているアカウントにアクセスするのに、取引要求内の署名を使用することはできない。
【0056】
ステップ214および216 いくつかの実施形態では、ステップ212の要求は、アプリケーションサーバ180に送られ、次に、アプリケーションサーバ180が、要求を取引サーバ200に送る。このことは、例えば、妥当性確認目的で、アプリケーションユーザ識別子鍵144に、サインされた要求を関係付けるために、発生してもよい。他の実施形態では、サインされた要求は、取引サーバに直接送られる。
【0057】
取引サーバ180が、サインされた要求を受信したとき、サイン鍵検証モジュール236は、取引要求中の署名にマッチする署名を再構築しようとする。認証されていない源によって、要求が送られているのとは対照的に、正当な要求であることを確実にするために、このことは必要である。要求中に含まれる署名を再構築するために、サイン鍵検証モジュール236は、第1のインスタンスにおいて、サイン鍵138をビルドするのにサイン鍵発生モジュール140が使用したものと同一の情報を要求する。すなわち、サイン鍵検証モジュール236は、(i)オプション的なアプリケーション開発者識別子142、(ii)アプリケーションを要求しているクライアントのアプリケーションユーザ識別子144、(iii)現在の時間に基づいたソルト値146、および、(iv)秘密鍵148を要求する。セキュリティの目的のために、好ましい実施形態において、ソルト値146および秘密鍵148は、インターネットを通して通信されない。図1に示したように、取引サーバ200は、既に秘密148を知っている。ソルト値146は、現在の時間に基づいて、取引サーバによって再構築される。例として、サイン鍵発生モジュール140は、UTCの整数除算値、および、1時間のような、何らかの時間インクリメントをとる場合、サイン鍵検証モジュール236も同様に、UTCの整数除算値、および、何らかの時間インクリメントをとる。しかしながら、ここでの違いは、サイン鍵発生モジュール140がいつ整数除算をとるかを、取引サーバ200が知らないことである。したがって、いくつかの実施形態では、サイン鍵発生モジュール140が整数除算をとったときと、サイン鍵検証モジュール236が整数除算をとるときとの間の時間差に対処するために、サイン鍵検証モジュールは、3つの異なる時間を試すことになる:すなわち、(i)現在の時間、(ii)将来への1つの時間インクリメント(例えば、次の8時間間隔)、(iii)過去への1つの時間インクリメント(例えば、直近の8時間間隔)である。このような実施形態では、サイン鍵検証モジュール236は、それぞれが異なる時間に基づいている、3つの異なる再構築されたサイン鍵を作成することになる。3つの異なる再構築されたサイン鍵から、サイン鍵検証モジュール236は、3つの異なる再構築された署名を作成することになる。他の実施形態では、適切なところでは、より多くの時間インクリメントが探索され、さらに、より多くの再構築されたサイン鍵および再構築された署名をもたらしている。
【0058】
いくつかの実施形態では、サイン鍵検証モジュール236は、サインされた取引要求から直接、アプリケーション開発者識別子142と、アプリケーションユーザ識別子鍵144とを、サインされていない方法で取得する。いくつかの実施形態では、サイン鍵検証モジュール236は、サインされた取引要求を識別する識別子とともに、要求モジュール136から、アプリケーション開発者識別子142と、アプリケーションユーザ識別子鍵144とを取得する。当業者は、サイン鍵検証モジュール236が、これらの2つのパラメータを取得してもよい、任意の数の方法があり、このような方法のすべてが、本開示によって、企図されていることを理解するだろう。
【0059】
ステップ218 前述のように、いったん、サイン鍵検証モジュール236が、必須のパラメータを持つと、サイン鍵を再生成して、サイン鍵に基づいて署名を発生させ、そして、この発生された署名を、取引要求中の署名に対して比較することが可能になる。サイン鍵検証モジュール236によって発生された再構成された署名が、要求とともに提供された署名とマッチングする場合、取引モジュールは取引をサービスする。例えば、取引は、レベルアンロックのようなゲーム内アップグレード、仮想の装備、仮想特別武器、チート、ポイント、および、仮想通貨のような、その他のゲーム内価値を販売するためのゲーム内取引であってもよい。しかしながら、サイン鍵検証モジュール236が、モジュール236によって発生された再構成された署名を、取引要求中の署名にマッチングすることができない場合、取引要求は拒否され、開示されたプロセスは、クライアント100に対して何らかのアカウント情報を開示することなく、終了する。
【0060】
ステップ220 ステップ220において、取引のステータスがレポートされる。例えば、いくつかの実施形態では、取引のステータスは、バイナリの”成功”または“失敗”の表示であってもよい。いくつかの実施形態では、ステップ220において、仮想通貨、実際の通貨(例えば、口座残高)、あるいは、取引に適応可能なものであってもよい、他の何らかのメトリックのパラメータのような、アカウント情報がレポートされる。
【0061】
ステップ222 ステップ222において、ブランド化アプリケーション36が、また、いくつかの実施形態では、アプリケーション担当モジュール132が、取引のステータスを通知される。例えば、いくつかの実施形態では、ユーザをゲーム中に保持するために引き起こされた、ゲーム内取引である場合、アプリケーション担当モジュール132は、取引が成功したか否かを通知され、取引が成功しなかった場合、アプリケーション担当モジュール132は、ブランド化アプリケーション36が、ゲームを継続することを防止する。
【0062】
ステップ224 ステップ224において、アプリケーションユーザ識別子鍵に関係するユーザは、ブランド化アプリケーション36の使用を停止し、ブランド化アプリケーションは終了される。
【0063】
引用された参考文献、および、代わりの実施形態
ここで引用されたそれぞれの個別の出版物、特許、もしくは、特許出願が、あらゆる目的のために、参照によりその全体を組み込まれることになるように、特に個別に示されるのと同様に、ここで引用されたすべての参考文献は、あらゆる目的のために、参照により、それらの全体を組み込まれる。
【0064】
本発明は、コンピュータ読取可能記憶媒体中に埋め込まれる、コンピュータプログラムメカニズムを含む、コンピュータプログラム製品として実現されてもよい。例として、コンピュータプログラム製品は、図1に示したプログラムモジュールを含むことができる。これらのプログラムモジュールは、CD−ROM、DVD、磁気ディスク記憶装置製品、または、他の何らかの有体的なコンピュータ読取可能データもしくはプログラム記憶装置製品上に記憶されることができる。
【0065】
当業者によって明らかになるように、本発明の精神および範囲を逸脱することなく、本発明の数多くの修正および変形を行うことができる。ここで記述して特定の実施形態は、例としての目的でのみ提供した。実施形態は、本発明の原則と、その実際の応用を最もよく説明するために、選ばれ、記述され、これによって、企図される特定の使用に適したさまざまな修正とともに、発明およびさまざまな実施形態を、当業者が最も良く利用することを可能にしている。本発明は、添付の特許請求の範囲に対する同等物の全体の範囲の権利が与えられたものとともに、添付の特許請求の範囲の用語によってのみ限定されている。

【特許請求の範囲】
【請求項1】
クライアントコンピュータと取引サーバとの間で、電子的要求を認証するための方法において、
(A)適切にプログラムされているアプリケーションサーバにおいて、前記クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信することと、
(B)前記適切にプログラムされているアプリケーションサーバを使用して、前記(A)の受信に応答して、第1の複数のパラメータの第1の関数として、サイン鍵を構築することと、
(C)前記アプリケーションのブランド化されていないバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションのブランド化されたバージョンを形成することと
を含み、
前記電子的要求は、前記電子的要求を発信しているユーザの識別子を含み、
前記複数のパラメータは、(i)前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、(ii)第1の時間ベースのソルト値と、(iii)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求を形成し、(ii)ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、方法。
【請求項2】
前記第1の複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、請求項1記載の方法。
【請求項3】
前記(C)の埋め込みは、前記適切にプログラムされているアプリケーションサーバによって実行され、
前記方法は、
(D)前記アプリケーションのブランド化されたバージョンを、前記クライアントコンピュータに電子的に配信すること
をさらに含む、請求項1記載の方法。
【請求項4】
前記(C)の埋め込みは、前記クライアントコンピュータによって実行され、
前記方法は、
前記(C)の埋め込みの前に、前記サイン鍵を、前記クライアントコンピュータに電子的に配信すること
をさらに含む、請求項1記載の方法。
【請求項5】
前記第1の関数は、ハッシュ関数であり、
前記サイン鍵は、
(i)前記アプリケーションに関する電子的要求を発信している前記ユーザの識別子と、
(ii)前記アプリケーションの分配者または開発者を識別する識別子と、
(iii)第1の時間ベースのソルト値と、
(iv)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、請求項1記載の方法。
【請求項6】
前記第1の関数は、ハッシュ関数であり、
前記サイン鍵は、
(i)前記アプリケーションに関する前記電子的要求を発信しているユーザの識別子と、
(ii)第1の時間ベースのソルト値と、
(iii)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、請求項1記載の方法。
【請求項7】
前記第1の時間ベースのソルト値は、
(i)前記(A)の受信に関係する協定世界時(UTC)と、
(ii)予め定められた時間インクリメントと
の整数除算値である、請求項1記載の方法。
【請求項8】
前記第1の時間ベースのソルト値は、
(i)前記(B)の構築に関係する協定世界時(UTC)と、
(ii)予め定められた時間インクリメントと
の整数除算値である、請求項1記載の方法。
【請求項9】
前記サインされた取引要求は、前記取引サーバ上で維持されている、前記ユーザの識別子に関係するアカウントを使用して、ゲーム内アップグレードを購入するための、ゲーム内取引である、請求項1記載の方法。
【請求項10】
前記ゲーム内アップグレードは、レベルアンロック、仮想の装備の購入、仮想の特別武器の購入、チートの購入、または、仮想通貨の購入である、請求項9記載の方法。
【請求項11】
前記アプリケーションのブランド化バージョンは、ソーシャルネットワークのアプリケーション、金融サービスのアプリケーション、会計アプリケーション、または、税金準備アプリケーションである、請求項1記載の方法。
【請求項12】
前記方法は、
前記クライアントコンピュータを使用して、前記ブランド化アプリケーションを実行することと、
前記実行されているブランド化アプリケーションを使用して、前記サイン鍵に基づいた署名を含む要求を行うことと、
前記サインされた要求を、前記取引サーバに通信することと
をさらに含み、
前記クライアントコンピュータは、前記ブランド化アプリケーションを実行するように適切にプログラムされている、請求項1記載の方法。
【請求項13】
前記サインされた要求は、前記ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子を含む、請求項12記載の方法。
【請求項14】
前記方法は、
(i)前記取引サーバにおいて、前記サインされた要求を受信することと、
(ii)再構築されたサイン鍵を形成することと、
(iii)前記再構築されたサイン鍵から署名を形成することと、
(iv)前記サインされた要求を評価することと
をさらに含み、
前記取引サーバは、前記形成を実行するように適切にプログラムされており、前記形成は、第2の複数のパラメータに対して、第2の関数を適用することを含み、
前記第2の複数のパラメータは、(i)前記要求を行っているユーザの識別子と、(ii)第2の時間ベースのソルト値と、(iii)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記評価は、
(a)前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングするとき、認証された状態が得られ、
(b)前記再構築されたサイン鍵から形成された署名が、前記取引要求中の署名とマッチングしないとき、失敗した状態が得られる、請求項12記載の方法。
【請求項15】
前記第2の複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、請求項14記載の方法。
【請求項16】
前記第2の関数は、ハッシュ関数であり、
前記再構築されたサイン鍵は、
(i)前記アプリケーションに関する前記電子的要求を発信しているユーザの識別子と、
(ii)前記アプリケーションの分配者または開発者を識別する識別子と、
(iii)第2の時間ベースのソルト値と、
(iv)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、請求項14記載の方法。
【請求項17】
前記第2の関数は、ハッシュ関数であり、
前記再構築されたサイン鍵は、
(i)前記アプリケーションに関する前記電子的要求を発信しているユーザの識別子と、
(ii)第2の時間ベースのソルト値と、
(iii)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密と
のハッシュである、請求項14記載の方法。
【請求項18】
前記第2の時間ベースのソルト値は、
(i)前記(H)の受信、(I)の形成、または、(J)の認証に関係する、協定世界時(UTC)と、
(ii)予め定められた時間インクリメントと
の整数除算値である、請求項14記載の方法。
【請求項19】
前記失敗した状態が得られるとき、前記方法は、
インクリメントされた、または、デクリメントされた、前記第2の時間ベースのソルト値とともに、前記(i)の形成と、前記(ii)の形成と、前記(iii)の評価とを繰り返すことをさらに含む、請求項14記載の方法。
【請求項20】
前記認証された状態が得られるとき、前記方法は、
前記取引サーバを使用して、前記要求にサービスすることをさらに含み、
前記取引サーバは、前記認証された状態が得られるときに、前記要求にサービスするように、適切にプログラムされている、請求項14記載の方法。
【請求項21】
前記適切にプログラムされているアプリケーションサーバは、前記取引サーバ以外のサーバである、請求項1記載の方法。
【請求項22】
前記適切にプログラムされているアプリケーションサーバと、前記取引サーバとは、同一のサーバである、請求項1記載の方法。
【請求項23】
前記アプリケーションは、FLASHアプリケーションである、請求項1記載の方法。
【請求項24】
コンピュータシステムと関連して使用するためのコンピュータプログラム製品において、
前記コンピュータプログラム製品は、コンピュータ読取可能記憶媒体と、その中に埋め込まれたコンピュータプログラムメカニズムとを備え、前記コンピュータプログラムメカニズムは、クライアントコンピュータと取引サーバとの間で、電子的要求を認証するためのものであり、前記コンピュータプログラムメカニズムは、
(A)適切にプログラムされているアプリケーションサーバにおいて、前記クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信させるためのコンピュータ実行可能命令と、
(B)前記適切にプログラムされているアプリケーションサーバを使用して、前記(A)の受信に応答して、複数のパラメータの関数として、サイン鍵を構築させるためのコンピュータ実行可能命令と、
(C1)前記アプリケーションのブランド化されていないバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションのブランド化されたバージョンを形成させるためのコンピュータ実行可能命令と、
(C2)前記クライアントコンピュータに対して前記サイン鍵を配信させるためのコンピュータ実行可能命令と、
を含み、
前記電子的要求は、前記電子的要求を発信しているユーザの識別子を含み、
前記複数のパラメータは、(i)前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、(ii)第1の時間ベースのソルト値と、(iii)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求を形成し、(ii)ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、コンピュータプログラム製品。
【請求項25】
前記複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、請求項24記載のコンピュータプログラム製品。
【請求項26】
システムにおいて、
(A)適切にプログラムされているアプリケーションサーバにおいて、前記クライアントコンピュータからの、アプリケーションに関する電子的アプリケーション要求を受信する手段と、
(B)前記適切にプログラムされているアプリケーションサーバを使用して、前記(A)の受信に応答して、複数のパラメータの関数として、サイン鍵を構築する手段と、
(C1)前記アプリケーションのブランド化されていないバージョン中に、前記サイン鍵を埋め込みして、これによって、前記アプリケーションのブランド化されたバージョンを形成する手段と、
(C2)前記クライアントコンピュータに対して前記サイン鍵を配信する手段と、
を含み、
前記電子的要求は、前記電子的要求を発信しているユーザの識別子を含み、
前記複数のパラメータは、(i)前記アプリケーションに関する、前記電子的要求を発信しているユーザの識別子と、(ii)第1の時間ベースのソルト値と、(iii)前記適切にプログラムされているアプリケーションサーバおよび前記取引サーバの間で共有される秘密とを含み、
前記アプリケーションのブランド化されたバージョンは、(i)サイン鍵で要求にサインして、これによって、サインされた要求を形成し、(ii)ユーザの識別子、および、前記アプリケーションの分配者または開発者を識別する識別子とともに、前記サインされた要求を、前記取引サーバに送出するように構成されている、システム。
【請求項27】
前記複数のパラメータは、前記アプリケーションの分配者または開発者を識別する識別子をさらに含む、請求項26記載のシステム。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2013−101639(P2013−101639A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−277989(P2012−277989)
【出願日】平成24年12月20日(2012.12.20)
【分割の表示】特願2012−537007(P2012−537007)の分割
【原出願日】平成22年10月27日(2010.10.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Opera
2.Safari
3.Chrome
【出願人】(502208397)グーグル インコーポレイテッド (161)
【Fターム(参考)】