【文献】
田中 俊昭ほか,モバイルコマースにおけるPKIの現状と課題,情報処理学会研究報告,日本,社団法人情報処理学会,2003年 7月18日,Vol. 2003, No. 74,pp. 201-208,2003-CSEC-22
(58)【調査した分野】(Int.Cl.,DB名)
前記第3者クライアント識別子、前記第1の署名情報、および前記第2の鍵が第2の配列規則に従って配列された後、第2の文字列を生成する前記ステップの前に、前記方法が、
第2のタイムスタンプおよび第2の無作為な文字列のうちの少なくとも一方を獲得するステップをさらに含み、
前記第3者クライアント識別子、前記第1の署名情報、および前記第2の鍵が第2の配列規則に従って配列された後、第2の文字列を生成する前記ステップが、
獲得された第2のタイムスタンプおよび/または獲得された第2の無作為な文字列、前記第3者クライアント識別子、前記第1の署名情報、ならびに前記第2の鍵が前記第2の配列規則に従って配列された後に前記第2の文字列を生成するステップを含む、請求項3に記載の方法。
前記第3者サーバによって送信され、前記第3者クライアント識別子、前記第1の署名情報、および前記第2の署名に対応する第2のタイムスタンプを受信するステップと、
前記第2のタイムスタンプが予め定義された時間の範囲内にあるかどうかを検出するステップと、
検出結果が前記第2のタイムスタンプが前記予め定義された時間の範囲内にあることである場合に、前記第3者クライアント識別子に対応する前記第2の鍵を問い合わせる前記ステップを実行するステップとをさらに含む、請求項8または9に記載の方法。
前記獲得された第1のタイムスタンプおよび/または前記獲得された第1の無作為な文字列を前記第1の署名情報に追加するように構成された情報追加モジュールをさらに含む、請求項17に記載の装置。
前記第3者サーバによって送信され、前記第3者クライアント識別子、前記第1の署名情報、および前記第2の署名に対応する第2のタイムスタンプを受信するように構成されたタイムスタンプ受信モジュールと、
前記第2のタイムスタンプが予め定義された時間の範囲内にあるかどうかを検出するように構成された第1の検出モジュールとをさらに含み、
前記第1の問い合わせモジュールが、検出結果が前記第2のタイムスタンプが前記予め定義された時間の範囲内にあることである場合、前記第3者クライアント識別子に対応する前記第2の鍵を問い合わせることを実行するように構成される、請求項21または22に記載の装置。
【発明を実施するための形態】
【0017】
本発明の目的、技術的な解決策、および利点をより明瞭にするために、以下で、本発明の実施形態が、添付の図面を参照して詳細に説明される。
【0018】
第3者のサーバが1つの鍵を有するだけであり、決済情報に一度署名するだけである背景技術のメカニズムとは異なり、本発明の実施形態を実装するプロセスにおいて、発明者は、決済情報に対して二重の署名を行うために、第3者のサーバが2つの鍵を有し、一方の鍵がクライアントサーバによって提供され、他方の鍵が決済サーバによって提供されるメカニズムを提供する。
【0019】
図1は、本発明の実施形態による署名検証方法にともなう実装環境の例示的な概略構造図である。実装環境は、第3者サーバ120、クライアントサーバ140、および決済サーバ160を含む。
【0020】
第3者サーバ120は、決済情報を構築し、提供し、二重の署名を形成するように構成され、第3者サーバは、1つのサーバであるか、または複数のサーバによって形成されたサーバクラスタ、またはクラウドコンピューティングサービスセンターである可能性がある。第3者サーバ120は、ワイヤレスネットワークまたは有線ネットワークを通じてクライアントサーバ140に接続される。第3者サーバ120自体は、決済能力を持たず、第3者サーバ120は、決済を実行するためにクライアントサーバ140を呼び出す必要がある。第3者とは、商品を提供する売買業者を指し、商品は、表現(expression)、ゲーム機器、会員サービス、おもちゃ、服などである可能性がある。
【0021】
クライアントサーバ140は、1つのサーバ、または複数のサーバによって形成されたサーバクラスタ、またはクラウドコンピューティングセンターである可能性がある。クライアントサーバ140は、第3者のための決済を完了するための第3者サーバの呼び出しを受信し、決済プロセスにおいて、第3者サーバによって提供された決済情報の外側の(outer)第1のレイヤの署名を検証するように構成される。クライアントサーバ140は、ワイヤレスネットワークを通じて決済サーバ160に接続され、データ送信が、クライアントサーバと決済サーバとの間で実行され得る。クライアントサーバ140は、ソーシャルアプリケーションクライアントにバックグラウンドサービスを提供するサーバである可能性があり、またはインスタントメッセージングクライアントにバックグラウンドサービスを提供するサーバである可能性があり、これは、限定されない。
【0022】
決済サーバ160は、1つのサーバ、または複数のサーバによって形成されたサーバクラスタ、またはクラウドコンピューティングセンターである可能性がある。決済サーバ160は、クライアントサーバ140が決済情報の外側の署名を検証することに成功した後、決済情報の内側の(inner)署名を検証し続けるように構成される。署名の検証が成功した後、決済サーバ160は、決済情報に応じて、注文および転送などのさらなる応答を行う可能性がある。
【0023】
本発明の実施形態は、主として、3つの部分を含み、つまり、第1の部分において、第3者サーバが、決済情報のための内側の第1の署名および外側の第2の署名を生成し、第2の部分において、クライアントサーバが、外側の第2の署名を検証し、第3の部分において、クライアントサーバが外側の第2の署名を検証することに成功した後、決済サーバが、内側の第1の署名を検証する。以下では、まず、3つの実施形態、すなわち、第3者サーバの側の署名検証方法、クライアントサーバの側の外側の署名検証方法、および決済サーバの側の内側の署名検証方法を用いることによる二重署名メカニズムを説明し、それから、さらなる説明のために第3者サーバの側、クライアントサーバの側、および決済サーバの側を組み合わせる実施形態を提供する。詳細は、以下の通りである。
【0024】
図2は、本発明の実施形態による署名検証方法の流れ図である。この実施形態は、署名検証方法が
図1に示された第3者サーバにおいて適用される例を用いることによって説明を与える。署名検証方法は、以下を含む。
【0025】
ステップ202: 第1の鍵によって第3者決済識別子および決済情報を暗号化して第1の署名を得る。
【0026】
第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵であり、第3者決済識別子は、決済サーバにおける第3者の一意識別子である。
【0027】
ステップ204: 第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化して第2の署名を得る。
【0028】
第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子である。
【0029】
ステップ206: 検証のためにクライアントサーバに第3者クライアント識別子、第1の署名情報、および第2の署名を提供する。
【0030】
クライアントサーバは、クライアントサーバが第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名の検証に成功したときに、検証のために決済サーバに第1の署名情報を送信するように構成される。
【0031】
結論として、この実施形態において提供される署名検証方法においては、第3者決済識別子および決済情報が、第1の署名を得るために第1の鍵によって暗号化され、第3者クライアント識別子および第1の署名情報が、第2の署名を得るために第2の鍵によって暗号化され、第3者クライアント識別子、第1の署名情報、および第2の署名が、検証のためにクライアントサーバに提供され、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0032】
図3は、本発明の実施形態による署名検証方法の流れ図である。この実施形態は、署名検証方法が
図1に示されたクライアントサーバにおいて適用される例を用いることによって説明を与える。署名検証方法は、以下を含む。
【0033】
ステップ302: 第3者サーバによって提供される第3者クライアント識別子、第1の署名情報、および第2の署名を獲得する。
【0034】
第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子であり、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化することによって第3者サーバにより取得される。
【0035】
ステップ304: 第3者クライアント識別子に対応する第2の鍵を問い合わせる。
【0036】
ステップ306: 第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証する。
【0037】
ステップ308: 検証が成功したときに、検証のために決済サーバに第1の署名情報を送信する。
【0038】
第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報を暗号化することによって第3者サーバにより取得され、第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵である。
【0039】
結論として、この実施形態において提供される署名検証方法においては、第3者サーバによって提供される第3者クライアント識別子、第1の署名情報、および第2の署名が、獲得され、第3者クライアント識別子に対応する第2の鍵が、問い合わされ、第2の署名が、第2の鍵、第3者クライアント識別子、および第1の署名情報によって検証され、検証が成功したときに、第1の署名情報が、検証のために決済サーバに送信され、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0040】
図4は、本発明の実施形態による署名検証方法の流れ図である。この実施形態は、署名検証方法が
図1に示された決済サーバにおいて適用される例を用いることによって説明を与える。署名検証方法は、以下を含む。
【0041】
ステップ402: クライアントサーバによって送信された第1の署名情報を受信する。
【0042】
第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報を暗号化することによって第3者サーバにより取得される。
【0043】
ステップ404: 第3者決済識別子に対応する第1の鍵を問い合わせる。
【0044】
ステップ406: 第1の鍵、第3者決済識別子、および決済情報によって第1の署名を検証する。
【0045】
ステップ408: 検証が成功したときに、決済情報に応答する。
【0046】
第1の署名情報は、クライアントサーバが第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証することに成功した後にクライアントサーバによって送信され、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化することによって第3者サーバにより取得され、第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子である。
【0047】
結論として、この実施形態において提供される署名検証方法においては、クライアントサーバによって送信された第1の署名情報が、受信され、第3者決済識別子に対応する第1の鍵が、問い合わされ、第1の署名が、第1の鍵、第3者決済識別子、および決済情報によって検証され、検証が成功したときに、決済情報が、応答され、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信において使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0048】
図5Aは、本発明の実施形態による署名検証方法の流れ図である。この実施形態は、署名検証方法が
図1に示された実装環境において適用される例を用いることによって説明を与える。署名検証方法は、以下を含む。
【0049】
ステップ501: 第3者サーバが、第1の鍵によって第3者決済識別子および決済情報を暗号化して第1の署名を得る。
【0050】
第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵であり、第3者決済識別子は、決済サーバにおける第3者の一意識別子である。第3者決済識別子は、第3者の売買業者によって決済サーバにおいて登録される。
【0051】
第1の鍵は、決済サーバによって自動的に生成され、第3者サーバに提供される可能性があり、第1の鍵は、第3者決済識別子に対応する。それぞれの第3者決済識別子は、異なる第1の鍵に対応する。たとえば、第3者決済識別子がAである場合、Aに対応する第1の鍵A1がある。署名は、送信される決済情報を暗号化する方法であり、送信された決済情報およびその他の情報が改ざんされていないことを保証するために使用される。
【0052】
このステップは、特に、以下のサブステップを含む。
【0053】
1: 第3者決済識別子、決済情報、および第1の鍵が第1の配列規則に従って配列された後、第3者サーバが第1の文字列を生成する。
【0054】
第1の配列規則は、3つのフィールド、すなわち、第3者決済識別子、決済情報、および第1の鍵がフィールド名のASCIIコードの昇順に、またはフィールド名のASCIIコードの降順に、または別の方法で配列されることである可能性があり、これは、本明細書において限定されない。第1の文字列は、第3者決済識別子、決済情報、および第1の鍵が配列された後に、予め定義された規則に従って生成され、予め定義された規則は、URLのキー値のペアのフォーマット規則である可能性がある。
【0055】
たとえば、第3者決済識別子はa=1であり、決済情報はb=2であり、および第1の鍵はc=3であると仮定され、第3者決済識別子、決済情報、および第1の鍵がASCIIコードの昇順に配列される場合、データ列a=1 b=2 c=3が得られ、それから、URLのキー値のペアによってデータ列から文字列が生成され、URLのキー値のペアのフォーマットによってデータ列a=1 b=2 c=3から文字列a=1& b=2& c=3が生成される。
【0056】
2: 第3者サーバが、第1の非可逆暗号化方法で第1の文字列を暗号化して第1の署名を得る。
【0057】
第1の非可逆暗号化方法は、MD5またはSha1などの暗号化方法である可能性がある。たとえば、第3者サーバが、第1の非可逆暗号化方法で第1の文字列a=1& b=2& c=3を暗号化して第1の署名を得る。
【0058】
フィールドは、3つのフィールド、すなわち、第3者決済識別子、決済情報、および第1の鍵に限定されない可能性があり、第3者サーバは、通常、2つのフィールド、すなわち、第1のタイムスタンプおよび第1の無作為な文字列のうちの少なくとも一方をさらに獲得し、第1のタイムスタンプは、第1の署名が生成されるときのこの瞬間に対応する可能性があり、第1の無作為な文字列は、第1の文字列の一意性を保証するために使用されることにさらに留意されたい。この場合、第3者サーバは、獲得された第1のタイムスタンプおよび/または獲得された第1の無作為な文字列、第3者決済識別子、決済情報、ならびに第1の鍵が第1の配列規則に従って配列された後に第1の文字列を生成する可能性もあり、第3者サーバは、獲得された第1のタイムスタンプおよび/または第1の無作為な文字列を第1の署名情報に加える。
【0059】
ステップ502: 第3者サーバが、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化して第2の署名を得る。
【0060】
第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含む。第1の署名情報は、第1のタイムスタンプおよび/または第1の無作為な列をさらに含み得る。第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の売買業者の一意識別子である。第2の鍵は、第3者クライアント識別子に対応し、異なる第3者クライアント識別子は、異なる第2の鍵に対応する。
【0061】
このステップは、特に、以下のサブステップを含む。
【0062】
1: 第3者クライアント識別子、第1の署名情報、および第2の鍵が第2の配列規則に従って配列された後、第3者サーバが第2の文字列を生成する。
【0063】
このステップにおいて、第3者サーバによって第2の文字列を生成する方法は、ステップ501において第3者サーバによって第1の文字列を生成する方法と同様であり、さらなる詳細は、本明細書において与えられない。
【0064】
2: 第3者サーバが、第2の非可逆暗号化方法で第2の文字列を暗号化して第2の署名を得る。第2の非可逆暗号化方法は、MD5またはSha1などの暗号化方法である可能性がある。
【0065】
フィールドは、3つのフィールド、すなわち、第3者クライアント識別子、第1の署名情報、および第2の鍵に限定されない可能性があり、第3者サーバは、通常、2つのフィールド、すなわち、第2のタイムスタンプおよび第2の無作為な文字列のうちの少なくとも一方をさらに獲得し、第2のタイムスタンプは、第2の署名が生成されるときのこの瞬間に対応する可能性があり、第2の無作為な文字列は、第2の文字列の一意性を保証するために使用されることにさらに留意されたい。この場合、第3者サーバは、獲得された第2のタイムスタンプおよび/または獲得された第2の無作為な文字列、第3者クライアント識別子、第1の署名情報、ならびに第2の鍵が第2の配列規則に従って配列された後に第2の文字列を生成する可能性もある。
【0066】
ステップ503: 第3者サーバが、検証のためにクライアントサーバに第3者クライアント識別子、第1の署名情報、および第2の署名を提供する。
【0067】
加えて、第3者サーバは、第2のタイムスタンプおよび第2の無作為な文字列のうちの少なくとも一方を獲得する場合、検証のためにクライアントサーバに第2のタイムスタンプおよび/または第2の無作為な文字列、第3者クライアント識別子、第1の署名情報、ならびに第2の署名を提供する。
【0068】
第1のタイムスタンプおよび第2のタイムスタンプは、決済情報が有効な期間内にあるかどうかを判定するために使用される。
【0069】
異なる決済方法に関して、第3者サーバによってクライアントサーバに第3者クライアント識別子、第1の署名情報、および第2の署名を提供する方法は異なることに留意されたい。実装方法において、第3者サーバは、ユーザが決済をトリガするときにクライアントサーバに第3者クライアント識別子、第1の署名情報、および第2の署名を送信する可能性があり、別の実装方法において、第3者サーバは、第3者クライアント識別子、第1の署名情報、および第2の署名を2次元コードに前もって変換し、2次元コードを商品のウェブページに埋め込む可能性があり、ユーザがクライアントを使用することによって決済のために2次元コードをスキャンするとき、クライアントは、2次元コードをスキャンすることによって第3者クライアント識別子、第1の署名情報、および第2の署名を取得し、クライアントサーバに第3者クライアント識別子、第1の署名情報、および第2の署名を送信し、さらに別の実装方法において、第3者サーバは、第3者クライアント識別子、第1の署名情報、および第2の署名を使用することによって決済リンクを予め生成し、決済リンクを商品のウェブページに埋め込む可能性があり、ユーザが決済リンクをクリックして決済のためにクライアントを呼び出すとき、クライアントは、決済リンクから抽出される第3者クライアント識別子、第1の署名情報、および第2の署名をクライアントサーバに送信する。本明細書において、第3者サーバによってクライアントサーバに第3者クライアント識別子、第1の署名情報、および第2の署名を提供する方法は、特に限定されない。
【0070】
ステップ504: クライアントサーバが、第3者サーバによって提供される第3者クライアント識別子、第1の署名情報、および第2の署名を獲得する。
【0071】
第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子であり、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報に署名することによって第3者サーバにより取得される。
【0072】
第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報に署名することによって第3者サーバにより取得され、第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵である。
【0073】
第3者サーバによって提供される第3者クライアント識別子、第1の署名情報、および第2の署名をクライアントサーバによって獲得する方法は、第1に、クライアントサーバが、第3者サーバによって送信される第3者クライアント識別子、第1の署名情報、および第2の署名を直接受信し、第2に、クライアントサーバが、クライアントによって2次元コードをスキャンすることによって得られる第3者クライアント識別子、第1の署名情報、および第2の署名を受信し、2次元コードは、第3者サーバが前もって第3者クライアント識別子、第1の署名情報、および第2の署名を使用することによって2次元コードを生成した後に商品のウェブページに埋め込まれ、第3に、クライアントサーバが、クライアントによってトリガされた決済リンクから抽出される第3者クライアント識別子、第1の署名情報、および第2の署名を受信し、決済リンクは、第3者サーバが前もって第3者クライアント識別子、第1の署名情報、および第2の署名を使用することによって決済リンクを生成した後に商品のウェブページに埋め込まれることである可能性があることにさらに留意されたい。本明細書において、第3者サーバによって提供される第3者クライアント識別子、第1の署名情報、および第2の署名をクライアントサーバによって獲得する方法は、特に限定されない。
【0074】
たとえば、クライアントサーバは、クライアントが2次元コードによって表される商品購入情報をスキャンすることによって取得することを知っているとき、第3者サーバから対応する情報を直接引き出し、それによって、情報処理の速度を高める可能性がある。
【0075】
ステップ505: クライアントサーバが、第3者クライアント識別子に対応する第2の鍵を問い合わせる。
【0076】
第3者クライアント識別子、第1の署名情報、および第2の署名を獲得した後、クライアントサーバは、第3者クライアント識別子に対応する第2の鍵を問い合わせる。クライアントサーバは、第3者クライアント識別子に対応する第2の鍵を予め記憶する。たとえば、第3者クライアント識別子がBである場合、クライアントサーバにBに対応する第2の鍵B1が存在する。
【0077】
ステップ506: クライアントサーバが、第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証する。
【0078】
図5Bに示されるように、このステップは、以下のサブステップを含むがこれらに限定されない。
【0079】
ステップ506a: 第3者クライアント識別子、第1の署名情報、および第2の鍵が第2の配列規則に従って配列された後、クライアントサーバが第3の文字列を生成する。
【0080】
このステップにおいて、クライアントサーバによって第3の文字列を生成する方法は、ステップ502において第3者サーバによって第2の文字列を生成する方法と同様であり、さらなる詳細は、本明細書において与えられない。このステップの配列規則は、ステップ502における配列規則と同じであり、つまり、第3者クライアント識別子、第1の署名情報、および第2の鍵がステップ502においてフィールド名のASCIIコードの昇順に配列される場合、同じ方法がこのステップにおいて使用される。
【0081】
ステップ506b: クライアントサーバが、第2の非可逆暗号化方法で第3の文字列を暗号化して第3の署名を得る。
【0082】
第2の非可逆暗号化方法は、MD5またはSha1などの暗号化方法である可能性がある。このステップの暗号化方法はステップ502の暗号化方法と同じであり、つまり、Sha1暗号化方法がステップ502において使用される場合、Sha1暗号化方法がこのステップにおいても使用されることにさらに留意されたい。
【0083】
ステップ506c: クライアントサーバが、第3の署名が第2の署名と一貫性があるかどうかを判定する。
【0084】
ステップ506d: 判定結果が第3の署名が第2の署名と一貫性があるということである場合、クライアントサーバが、検証が成功したと判定する。
【0085】
たとえば、ステップ502において第2の鍵B1を使用することによって署名することにより第3者サーバによって取得された第2の署名がyyyyであり、このステップにおいて第2の鍵B1を使用することによって署名することによりクライアントサーバによって取得された第3の署名がyyyyであると仮定すると、第3の署名が、第2の署名と一貫性があり、これは、情報が改ざんされていないことを示し、クライアントサーバは、検証が成功したと判定する。
【0086】
ステップ506e: 判定結果が第3の署名が第2の署名と一貫性がないということである場合、クライアントサーバが、検証が失敗したと判定する。
【0087】
たとえば、ステップ502において第2の鍵B1を使用することによって署名することにより第3者サーバによって取得された第2の署名がyyyyであり、このステップにおいて第2の鍵B1を使用することによって署名することによりクライアントサーバによって取得された第3の署名がffffであると仮定すると、第3の署名が、第2の署名と一貫性がなく、これは、情報が改ざんされていることを示し、クライアントサーバは、検証が失敗したと判定する。
【0088】
ステップ507: 検証が成功したときに、クライアントサーバが、検証のために決済サーバに第1の署名情報を送信する。
【0089】
クライアントサーバが第3者サーバによって送信される第2のタイムスタンプを同時に受信する場合、ステップ505の前に、方法が以下のステップをさらに含むことにさらに留意されたい。
【0090】
1: クライアントサーバが、第3者サーバによって送信され、第3者クライアント識別子、第1の署名情報、および第2の署名に対応する第2のタイムスタンプを受信する。
【0091】
2: クライアントサーバが、第2のタイムスタンプが予め定義された時間の範囲内にあるかどうかを検出する。
【0092】
タイムスタンプは、決済情報が有効な期間内にあるかどうかを判定するために使用され、たとえば、第2のタイムスタンプが予め定義された時間の範囲内にある場合、クライアントサーバは、第2の署名を検証し続ける可能性があり、つまり、クライアントサーバは、第3者クライアント識別子に対応する第2の鍵を問い合わせるステップを実行し、第2のタイムスタンプが予め定義された時間の範囲を超える場合、クライアントサーバは、第2の署名を検証し続けず、つまり、クライアントサーバは、第3者クライアント識別子に対応する第2の鍵を問い合わせるステップを実行しない。
【0093】
3: 検出結果が第2のタイムスタンプが予め定義された時間の範囲内にあることである場合、クライアントサーバが、第3者クライアント識別子に対応する第2の鍵を問い合わせるステップを実行する。
【0094】
4: 検出結果が第2のタイムスタンプが予め定義された時間の範囲を超えていることである場合、クライアントサーバが、第3者クライアント識別子に対応する第2の鍵を問い合わせるステップを実行しない。
【0095】
たとえば、予め定義された時間の範囲が60秒であると仮定すると、第2のタイムスタンプが60秒以内にある場合、クライアントサーバは、第3者クライアント識別子に対応する第2の鍵を問い合わせるステップを実行し、第2のタイムスタンプが60秒を超えている場合、クライアントサーバは、第3者クライアント識別子に対応する第2の鍵を問い合わせるステップを実行しない。
【0096】
ステップ508: 決済サーバが、クライアントサーバによって送信された第1の署名情報を受信する。
【0097】
第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報に署名することにより第3者サーバによって取得される。
【0098】
第1の署名情報は、クライアントサーバが第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証することに成功した後にクライアントサーバによって送信され、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報に署名することによって第3者サーバにより取得され、第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子である。
【0099】
ステップ509: 決済サーバが、第3者決済識別子に対応する第1の鍵を問い合わせる。
【0100】
決済サーバが、第3者決済識別子に対応する第1の鍵を予め記憶する。たとえば、第3者決済識別子がAである場合、決済サーバにAに対応する第1の鍵A1がある。
【0101】
ステップ510: 決済サーバが、第1の鍵、第3者決済識別子、および決済情報によって第1の署名を検証する。
【0102】
このステップは、以下のサブステップを含むがこれらに限定されない。
【0103】
1: 第3者決済識別子、決済情報、および第1の鍵が第1の配列規則に従って配列された後、決済サーバが第4の文字列を生成する。
【0104】
このステップにおいて、決済サーバによって第4の文字列を生成する方法は、ステップ501において第3者サーバによって第1の文字列を生成する方法と同様であり、さらなる詳細は、本明細書において与えられない。このステップの配列規則は、ステップ501における配列規則と同じであり、つまり、第3者決済識別子、決済情報、および第1の鍵がステップ501においてフィールド名のASCIIコードの昇順に配列される場合、同じ方法がこのステップにおいて使用される。
【0105】
2: 決済サーバが、第1の非可逆暗号化方法で第4の文字列を暗号化して第4の署名を得る。
【0106】
第1の非可逆暗号化方法は、MD5またはSha1などの暗号化方法である可能性がある。このステップの暗号化方法はステップ501の暗号化方法と同じであり、つまり、MD5暗号化方法がステップ501において使用される場合、MD5暗号化方法がこのステップにおいても使用されることにさらに留意されたい。
【0107】
3: 決済サーバが、第4の署名が第1の署名と一貫性があるかどうかを判定する。
【0108】
4: 判定結果が第4の署名が第1の署名と一貫性があるということである場合、クライアントサーバは、検証が成功したと判定する。
【0109】
たとえば、ステップ501において第1の鍵A1を使用することによって署名することにより第3者サーバによって取得された第2の署名がaaaaであり、このステップにおいて第1の鍵A1を使用することによって署名することにより決済サーバによって取得された第4の署名がaaaaであると仮定すると、第4の署名が、第1の署名と一貫性があり、これは、情報が改ざんされていないことを示し、決済サーバは、検証が成功したと判定する。
【0110】
5: 判定結果が第4の署名が第1の署名と一貫性がないということである場合、決済サーバは、検証が失敗したと判定する。
【0111】
たとえば、ステップ501において第1の鍵A1を使用することによって署名することにより第3者サーバによって取得された第2の署名がaaaaであり、このステップにおいて第1の鍵A1を使用することによって署名することにより決済サーバによって取得された第4の署名がbbbbであると仮定すると、第4の署名が、第1の署名と一貫性がなく、これは、情報が改ざんされていることを示し、決済サーバは、検証が失敗したと判定する。
【0112】
ステップ511: 検証が成功したときに、決済サーバが、決済情報に応答する。
【0113】
つまり、決済情報は改ざんされておらず、次の動作が実行される可能性があり、決済サーバが注文、取引、または決済などの決済情報に応答する可能性がある。
【0114】
第1の署名情報が第1のタイムスタンプをさらに含む場合、ステップ509の前に、方法は以下のステップをさらに含むことにさらに留意されたい。
【0115】
1: 決済サーバが、第1のタイムスタンプが予め定義された時間の範囲内にあるかどうかを検出する。
【0116】
このステップにおいて第1のタイムスタンプが予め定義された時間の範囲内にあるかどうかを決済サーバによって検出する方法は、第2のタイムスタンプが予め定義された時間の範囲内にあるかどうかをクライアントサーバによって検出する方法と同様であり、さらなる詳細は、本明細書において再び与えられない。以下のステップの原理は、クライアントサーバによって実行される対応するステップの原理と同様であり、さらなる詳細は、本明細書において与えられない。
【0117】
2: 検出結果が第1のタイムスタンプが予め定義された時間の範囲内にあることである場合、決済サーバが、第3者決済識別子に対応する第1の鍵を問い合わせるステップを実行する。
【0118】
3: 検出結果が第1のタイムスタンプが予め定義された時間の範囲を超えていることである場合、決済サーバが、第3者決済識別子に対応する第1の鍵を問い合わせるステップを実行しない。
【0119】
結論として、この実施形態において提供される署名検証方法においては、第3者決済識別子および決済情報が、第1の署名を得るために第1の鍵によって署名され、第3者クライアント識別子および第1の署名情報が、第2の署名を得るために第2の鍵によって暗号化され、第3者クライアント識別子、第1の署名情報、および第2の署名が、検証のためにクライアントサーバに送信され、クライアントサーバは、第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名の検証に成功したときに、検証のために決済サーバに第1の署名情報を送信し、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0120】
以下は、本発明の装置の実施形態である。この部分において説明されない詳細に関しては、上の対応する方法の実施形態が参照され得る。
【0121】
図6は、本発明の実施形態による署名検証装置の概略構造図である。署名検証装置は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組合せを使用することによって第3者サーバ600のすべてまたは一部として実装される可能性がある。署名検証装置は、第1の署名モジュール620、第2の署名モジュール640、および第1の送信モジュール660を含み、
第1の署名モジュール620は、第1の鍵によって第3者決済識別子および決済情報を暗号化して第1の署名を取得するように構成され、第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵であり、第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、
第2の署名モジュール640は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化して第2の署名を取得するように構成され、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名モジュール620によって取得される第1の署名を含み、第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子であり、
第1の送信モジュール660は、第3者クライアント識別子、第1の署名情報、および第2の署名モジュール640によって取得される第2の署名を検証のためにクライアントサーバに送信するように構成され、その結果、クライアントサーバは、第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名の検証に成功したとき、第1の署名情報を検証のために決済サーバに送信する。
【0122】
結論として、この実施形態において提供される署名検証装置においては、第3者決済識別子および決済情報が、第1の署名を得るために第1の鍵によって暗号化され、第3者クライアント識別子および第1の署名情報が、第2の署名を得るために第2の鍵によって暗号化され、第3者クライアント識別子、第1の署名情報、および第2の署名が、検証のためにクライアントサーバに送信され、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0123】
図7は、本発明の実施形態による署名検証装置の概略構造図である。署名検証装置は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組合せを使用することによってクライアントサーバ700のすべてまたは一部として実装される可能性がある。署名検証装置は、第1の受信モジュール720、第1の問い合わせモジュール740、第1の検証モジュール760、および第2の送信モジュール780を含み、
第1の受信モジュール720は、第3者サーバによって送信される第3者クライアント識別子、第1の署名情報、および第2の署名を受信するように構成され、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子であり、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化することによって第3者サーバによって取得され、
第1の問い合わせモジュール740は、第1の受信モジュール720によって受信された第3者クライアント識別子に対応する第2の鍵を問い合わせるように構成され、
第1の検証モジュール760は、第1の問い合わせモジュール740によって問い合わされた第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証するように構成され、
第2の送信モジュール780は、第1の検証モジュール760が第2の署名の検証に成功したときに、検証のために決済サーバに第1の署名情報を送信するように構成され、
第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報を暗号化することによって第3者サーバにより取得され、第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵である。
【0124】
結論として、この実施形態において提供される署名検証装置においては、第3者サーバによって送信される第3者クライアント識別子、第1の署名情報、および第2の署名が、受信され、第3者クライアント識別子に対応する第2の鍵が、問い合わされ、第2の署名が、第2の鍵、第3者クライアント識別子、および第1の署名情報によって検証され、検証が成功したときに、第1の署名情報が、検証のために決済サーバに送信され、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0125】
図8は、本発明の実施形態による署名検証装置の概略構造図である。署名検証装置は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの組合せを使用することによって決済サーバ800のすべてまたは一部として実装される可能性がある。署名決済装置は、第2の受信モジュール820、第2の問い合わせモジュール840、第2の検証モジュール860、および情報応答モジュール880を含み、
第2の受信モジュール820は、クライアントサーバによって送信された第1の署名情報を受信するように構成され、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報を暗号化することによって第3者サーバにより取得され、
第2の問い合わせモジュール840は、第2の受信モジュール820によって受信された第3者決済識別子に対応する第1の鍵を問い合わせるように構成され、
第2の検証モジュール860は、第2の問い合わせモジュール840によって問い合わされた第1の鍵、第3者決済識別子、および決済情報によって第1の署名を検証するように構成され、
情報応答モジュール880は、第2の検証モジュール860が第1の署名の検証に成功したときに、決済情報に応答するように構成され、
第1の署名情報は、クライアントサーバが第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証することに成功した後にクライアントサーバによって送信され、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化することによって第3者サーバにより取得され、第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子である。
【0126】
結論として、この実施形態において提供される署名検証装置においては、クライアントサーバによって送信された第1の署名情報が、受信され、第3者決済識別子に対応する第1の鍵が、問い合わされ、第1の署名が、第1の鍵、第3者決済識別子、および決済情報によって検証され、検証が成功したときに、決済情報が、応答され、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0127】
図9は、本発明の実施形態による署名検証システムの概略構造図である。署名検証システムは、第3者サーバ600、クライアントサーバ700、および決済サーバ800を含み、第3者サーバ600は、ワイヤレスネットワークまたは有線ネットワークを通じてクライアントサーバ700に接続され、クライアントサーバ700は、ワイヤレスネットワークまたは有線ネットワークを通じて決済サーバ800に接続され、詳細は、以下の通りである。
【0128】
第3者サーバ600は、第1の署名モジュール620、第2の署名モジュール640、および第1の送信モジュール660を含み、
第1の署名モジュール620は、第1の鍵によって第3者決済識別子および決済情報を暗号化して第1の署名を取得するように構成され、第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵であり、第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、
第2の署名モジュール640は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化して第2の署名を取得するように構成され、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子であり、
第1の送信モジュール660は、第3者クライアント識別子、第1の署名情報、および第2の署名を検証のためにクライアントサーバに送信するように構成され、その結果、クライアントサーバは、第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名の検証に成功したとき、第1の署名情報を検証のために決済サーバに送信する。
【0129】
第1の署名モジュール620は、第1の生成ユニット621および第1の暗号化ユニット622を含み、
第1の生成ユニット621は、第3者決済識別子、決済情報、および第1の鍵が第1の配列規則に従って配列された後、第1の文字列を生成するように構成され、
第1の暗号化ユニット622は、第1の非可逆暗号化方法で第1の文字列を暗号化して第1の署名を得るように構成される。
【0130】
第2の署名モジュール640は、第2の生成ユニット641および第2の暗号化ユニット642を含み、
第2の生成ユニット641は、第3者クライアント識別子、第1の署名情報、および第2の鍵が第2の配列規則に従って配列された後に第2の文字列を生成するように構成され、
第2の暗号化ユニット642は、第2の非可逆暗号化方法で第2の文字列を暗号化して第2の署名を取得するように構成される。
【0131】
さらに、第3者サーバ600は、第1の獲得モジュール630をさらに含み、
第1の獲得モジュール630は、第1のタイムスタンプおよび第1の無作為な文字列のうちの少なくとも一方を獲得するように構成され、
第1の生成ユニット621は、獲得された第1のタイムスタンプおよび/または獲得された第1の無作為な文字列、第3者決済識別子、決済情報、ならびに第1の鍵が第1の配列規則に従って配列された後に第1の文字列を生成するようにさらに構成される。
【0132】
さらに、第3者サーバ600は、情報追加モジュール631をさらに含み、
情報追加モジュール631は、獲得された第1のタイムスタンプおよび/または獲得された第1の無作為な文字列を第1の署名情報に追加するように構成される。
【0133】
さらに、第3者サーバ600は、
第2のタイムスタンプおよび第2の無作為な文字列のうちの少なくとも一方を獲得するように構成された第2の獲得モジュール650をさらに含み、
第2の生成ユニット641は、獲得された第2のタイムスタンプおよび/または獲得された第2の無作為な文字列、第3者クライアント識別子、第1の署名情報、ならびに第2の鍵が第2の配列規則に従って配列された後に第2の文字列を生成するようにさらに構成され、
第1の送信モジュール660は、第2のタイムスタンプおよび/または第2の文字列、第3者クライアント識別子、第1の署名情報、ならびに第2の署名を検証のためにクライアントサーバに送信するようにさらに構成される。
【0134】
クライアントサーバ700は、第1の受信モジュール720、第1の問い合わせモジュール740、第1の検証モジュール760、および第2の送信モジュール780を含み、
第1の受信モジュール720は、第3者サーバによって送信される第3者クライアント識別子、第1の署名情報、および第2の署名を獲得するように構成され、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子であり、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化することによって第3者サーバによって取得され、
第1の問い合わせモジュール740は、第3者クライアント識別子に対応する第2の鍵を問い合わせるように構成され、
第1の検証モジュール760は、第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証するように構成され、
第2の送信モジュール780は、検証が成功したときに、検証のために決済サーバに第1の署名情報を送信するように構成され、
第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報を暗号化することによって第3者サーバにより取得され、第1の鍵は、決済サーバにおける第3者決済識別子に対応する鍵である。
【0135】
さらに、第1の検証モジュール760は、第3の生成ユニット761、第3の暗号化ユニット762、第1の判断ユニット763、第1の判定ユニット764、および第2の判定ユニット765を含み、
第3の生成ユニット761は、第3者クライアント識別子、第1の署名情報、および第2の鍵が第2の配列規則に従って配列された後に第3の文字列を生成するように構成され、
第3の暗号化ユニット762は、第2の非可逆暗号化方法で第3の文字列を暗号化して第3の署名を取得するように構成され、
第1の判断ユニットは、第3の署名が第2の署名と一貫性があるかどうかを判定するように構成され、
第1の判定ユニット764は、判定結果が第3の署名が第2の署名と一貫性があるということである場合、検証が成功したと判定するように構成され、
第2の判定ユニット765は、判定結果が第3の署名が第2の署名と一貫性がないということである場合、検証が失敗したと判定するように構成される。
【0136】
さらに、クライアントサーバ700は、
第3者サーバによって送信され、第3者クライアント識別子、第1の署名情報、および第2の署名に対応する第2のタイムスタンプを受信するように構成されたタイムスタンプ受信モジュール730と、
第2のタイムスタンプが予め定義された時間の範囲内にあるかどうかを検出するように構成された第1の検出モジュール731とをさらに含み、
第1の問い合わせモジュール740は、検出結果が第2のタイムスタンプが予め定義された時間の範囲内にあることである場合、第3者クライアント識別子に対応する第2の鍵を問い合わせるステップを実行するように構成される。
【0137】
決済サーバ800は、第2の受信モジュール820、第2の問い合わせモジュール840、第2の検証モジュール860、および情報応答モジュール880を含み、
第2の受信モジュール820は、クライアントサーバによって送信された第1の署名情報を受信するように構成され、第1の署名情報は、第3者決済識別子、決済情報、および第1の署名を含み、第3者決済識別子は、決済サーバにおける第3者の一意識別子であり、第1の署名は、第1の鍵によって第3者決済識別子および決済情報に署名することによって第3者サーバにより取得され、
第2の問い合わせモジュール840は、第3者決済識別子に対応する第1の鍵を問い合わせるように構成され、
第2の検証モジュール860は、第1の鍵、第3者決済識別子、および決済情報によって第1の署名を検証するように構成され、
情報応答モジュール880は、検証が成功したときに、決済情報に応答するように構成され、
第1の署名情報は、クライアントサーバが第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名を検証することに成功した後にクライアントサーバによって送信され、第2の署名は、第2の鍵によって第3者クライアント識別子および第1の署名情報を暗号化することによって第3者サーバにより取得され、第2の鍵は、クライアントサーバにおける第3者クライアント識別子に対応する鍵であり、第3者クライアント識別子は、クライアントサーバにおける第3者の一意識別子である。
【0138】
さらに、第2の検証モジュール860は、第4の生成ユニット861、第4の暗号化ユニット862、第4の判断ユニット863、第3の判定ユニット864、および第4の判定ユニット865を含み、
第4の生成ユニット861は、第3者決済識別子、決済情報、および第1の鍵が第1の配列規則に従って配列された後、第4の文字列を生成するように構成され、
第4の暗号化ユニット862は、第1の非可逆暗号化方法で第4の文字列を暗号化して第4の署名を得るように構成され、
第4の判断ユニット863は、第4の署名が第1の署名と一貫性があるかどうかを判定するように構成され、
第3の判定ユニット864は、判定結果が第4の署名が第1の署名と一貫性があるということである場合、検証が成功したと判定するように構成され、
第4の判定ユニット865は、判定結果が第4の署名が第1の署名と一貫性がないということである場合、検証が失敗したと判定するように構成される。
【0139】
さらに、第1の署名情報が第1のタイムスタンプをさらに含む場合、決済サーバ800は、
第1のタイムスタンプが予め定義された時間の範囲内にあるかどうかを検出するように構成された第2の検出モジュール830を含み、
第2の問い合わせモジュール840は、検出結果が第1のタイムスタンプが予め定義された時間の範囲内にあることである場合、第3者決済識別子に対応する第1の鍵を問い合わせるステップを実行するように構成される。
【0140】
結論として、この実施形態において提供される署名検証装置においては、第3者決済識別子および決済情報が、第1の署名を得るために第1の鍵によって署名され、第3者クライアント識別子および第1の署名情報が、第2の署名を得るために第2の鍵によって署名され、第3者クライアント識別子、第1の署名情報、および第2の署名が、検証のためにクライアントサーバに送信され、クライアントサーバは、第2の鍵、第3者クライアント識別子、および第1の署名情報によって第2の署名の検証に成功したときに、検証のために決済サーバに第1の署名情報を送信し、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、第3者の売買業者が2つの鍵を保有し、クライアントサーバおよび決済サーバが別々に1つの鍵を保有する。
【0141】
図10は、本発明の実施形態によるサーバの概略構造図である。サーバは、第3者サーバ、またはクライアントサーバ、または決済サーバである可能性がある。特に、
【0142】
サーバ1000は、中央演算処理装置(CPU) 1001、ランダムアクセスメモリ(RAM) 1002および読み出し専用メモリ(ROM) 1003を含むシステムメモリ1004、ならびにシステムメモリ1004およびCPU 1001を接続するシステムバス1005を含む。サーバ1000は、コンピュータの構成要素間の情報送信を助ける基本入出力システム(I/Oシステム) 1006、ならびにオペレーティングシステム1013、アプリケーションプログラム1014、および別のプログラムモジュール1015を記憶するように構成された大容量ストレージデバイス1007をさらに含む。
【0143】
基本I/Oシステム1006は、情報を表示するように構成されたディスプレイ1008と、ユーザによって情報を入力するように構成されたマウスまたはキーボードなどの入力デバイス1009とを含む。ディスプレイ1008および入力デバイス1009は、システムバス1005に接続された入力/出力コントローラ1010を使用することによってCPU 1001に接続される。基本I/Oシステム1006は、キーボード、マウス、および電子スタイラスなどの複数のその他のデバイスの入力を受信し、処理するために入力/出力コントローラ1010をさらに含む可能性がある。同様に、入力/出力コントローラ1010は、さらに、ディスプレイスクリーン、プリンタ、または別の種類の出力デバイスに出力を与える。
【0144】
大容量ストレージデバイス1007は、システムバス1005に接続された大規模ストレージコントローラ(図示せず)を使用することによってCPU 1001に接続される。大容量ストレージデバイス1007および関連するコンピュータ可読媒体は、クライアントデバイスのための不揮発性ストレージを提供する。つまり、大容量ストレージデバイス1007は、ハードディスクまたはCD-ROMドライブなどのコンピュータ可読媒体(図示せず)を含み得る。
【0145】
一般性を失うことなく、コンピュータ可読媒体は、コンピュータストレージ媒体および通信媒体を含み得る。コンピュータストレージ媒体は、任意の方法またはテクノロジーを使用することによって実装され、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するように構成された揮発性および不揮発性の移動可能なおよび移動不可能な媒体を含む。コンピュータストレージ媒体は、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、または別のソリッドストレージテクノロジー(solid storage technology)、およびCD-ROM、DVD、または別の光学式ストレージ、およびカセット、テープ、ディスクストレージ、または別の磁気式ストレージデバイスを含む。確かに、当業者は、コンピュータストレージ媒体が上述のものに限定されないことを知り得る。システムメモリ1004および大容量ストレージデバイス1007は、一律にメモリと呼ばれる可能性がある。
【0146】
本発明の様々な実施形態によれば、サーバ1000は、インターネットなどのネットワークを使用することによってネットワーク上のリモートコンピュータに接続することにより実行される可能性がある。つまり、サーバ1000は、システムバス1005に接続されたネットワークインターフェースユニット1011を使用することによってネットワーク1012に接続される可能性があり、またはサーバ1000は、ネットワークインターフェースユニット1011を使用することによって別の種類のネットワークもしくはリモートコンピュータシステム(図示せず)に接続される可能性がある。
【0147】
メモリは、1つまたは複数のプログラムをさらに含み、1つまたは複数のプログラムは、メモリに記憶され、1つまたは複数のCPU 1001は、
図2から
図5Bに示された実施形態のいずれかにおいて提供された署名検証方法を含む1つまたは複数のプログラムを実行するように構成される。
【0148】
図11は、本発明の実施形態による署名検証方法の特定の実装の概略図である。この実施形態において、説明は、第3者サーバが売買業者によって提供される第3者ウェブページサーバであり、クライアントサーバがWechatのバックグラウンドサーバであり、決済サーバがTenpayのバックグラウンドサーバである例を使用することによって与えられる。WechatおよびTenpayは、中国においてTencent technology (Shenzhen) Co., Ltd.によって提供されるインターネットサービスである。署名検証方法は、以下を含む。
【0149】
ステップ1101: 第3者ウェブページサーバが、ユーザによってウェブページ上でトリガされた購入信号を受信し、公開アカウントと、二重の署名を有する注文情報とをWechatクライアントに提供する。
【0150】
第3者ウェブページサーバは、商品の購入ウェブページを提供する可能性がある。ユーザは、モバイル電話のブラウザ上で購入ウェブページを見て、商品を購入することを決定するとき、購入ウェブページ上の購入ボタンをクリックして購入信号をトリガする可能性がある。購入信号を受信した後、第3者ウェブページサーバは、二重の署名を有する注文情報を生成する可能性があり、注文情報は、内側の第1の署名および外側の第2の署名を有する。内側の第1の署名は、Tenpayによって提供された第1の鍵による暗号化によって取得され、外側の第2の署名は、Wechatによって提供された第2の鍵による暗号化によって取得される。
【0151】
第3者ウェブページサーバは、決済プロセスを開始するために、予め定義された機能インターフェースを使用することによってユーザのモバイル電話上のWechatクライアントを呼び出し、呼び出しプロセスにおいて、第3者の売買業者の公開アカウントと、Wechatにおける二重の署名を有する注文情報とをWechatクライアントに提供する。
【0152】
ステップ1102: Wechatクライアントが、公開アカウントと、二重の署名を有する注文情報とをWechatのバックグラウンドサーバに送る。
【0153】
ステップ1103: Wechatのバックグラウンドサーバが、オープンプラットフォームを使用することによって外側の第2の署名を検証する。
【0154】
オープンプラットフォームとは、第3者の売買業者に開かれたサービスを提供するためのWechatのバックグラウンドサーバのためのプラットフォームであり、開かれたサービスは、Wechatの決済機能を含む。オープンプラットフォームは、Wechatのバックグラウンドサーバの一部と考えられ得る。
【0155】
二重の署名を有する注文情報を受信した後、Wechatのバックグラウンドサーバは、注文情報、Wechatにおける第3者の売買業者の公開アカウント、および外側の第2の署名をオープンプラットフォームに送信し、オープンプラットフォームは、外側の第2の署名を検証する。オープンプラットフォームは、Wechatにおける第3者の売買業者の公開アカウントに従って対応する鍵を問い合わせる可能性がある。
【0156】
ステップ1104: Wechatのバックグラウンドサーバが、オープンプラットフォームから検証結果を受信する。
【0157】
検証結果が検証が成功したことであるとき、ステップ1105を実行し、検証結果が検証が失敗したことであるとき、第2の署名に対する検証が失敗したことを示す応答をWechatクライアントにフィードバックする。
【0158】
ステップ1105: 外側の第2の署名に対する検証が成功したとき、Wechatのバックグラウンドサーバが、注文情報、第3者の決済アカウント、および内側の署名などの情報をTenpayのバックグラウンドサーバに送信する。
【0159】
第3者の決済アカウント(パートナーID)は、Tenpayにおける第3者の売買業者のアカウントである。
【0160】
ステップ1106: 注文情報などの情報を成功裏に受信した後、Tenpayのバックグラウンドサーバが、Wechatのバックグラウンドサーバに決済IDを返す。
【0161】
ステップ1107: Wechatのバックグラウンドサーバが、Wechatクライアントに決済IDを返す。
【0162】
決済IDを受信した後、Wechatクライアントは、決済IDについての決済ページをユーザに対して表示し得る。
【0163】
ステップ1108: Wechatクライアントが、ユーザの確認信号に従って現実の決済を開始する。
【0164】
Wechatクライアントは、決済ページ上でユーザの確認信号を受信し、このプロセスにおいて、ユーザは、Wechatの決済パスコードを入力するかまたは別の操作を実行する必要がある可能性もある。ユーザの確認信号を受信した後、Wechatクライアントは、Wechatのバックグラウンドサーバへの現実の決済を開始する。
【0165】
ステップ1109: Wechatのバックグラウンドサーバが、注文の支払いを実際にするようにTenpayのバックグラウンドサーバに要求する。
【0166】
ステップ1110: Tenpayのバックグラウンドサーバが、注文情報の内側の第1の署名を検証する。
【0167】
Tenpayのバックグラウンドサーバは、第3者の決済アカウントに応じて対応する鍵を問い合わせる可能性があり、それから、第1の署名を検証する。
【0168】
ステップ1111: Tenpayのバックグラウンドサーバが、内側の第1の署名に対する検証が成功したかどうかを示す応答を返す。
【0169】
検証が成功したとき、Tenpayのバックグラウンドサーバは、内側の第1の署名に対する検証が成功したことを示す応答をWechatのバックグラウンドサーバに返し、ステップ1112を実行する。
【0170】
検証が失敗したとき、Tenpayのバックグラウンドサーバは、内側の第1の署名に対する検証が失敗したことを示す応答をWechatのバックグラウンドサーバに返す。
【0171】
ステップ1112: 第1の署名に対する検証が成功したとき、Tenpayのバックグラウンドサーバが、注文情報を処理する。
【0172】
ステップ1113: Tenpayのバックグラウンドサーバが、決済が成功したかどうかを示す応答を返す。
【0173】
決済が成功したとき、Tenpayのバックグラウンドサーバは、決済が成功したことを示す応答をWechatのバックグラウンドサーバに返す。
【0174】
決済が失敗したとき、Tenpayのバックグラウンドサーバは、決済が失敗したことを示す応答をWechatのバックグラウンドサーバに返す。
【0175】
ステップ1114: Wechatのバックグラウンドサーバが、決済が成功したかどうかを示す応答をオープンプラットフォームに返す。
【0176】
決済が成功したとき、Wechatのバックグラウンドサーバは、決済が成功したことを示す応答をオープンプラットフォームに返す。
【0177】
決済が失敗したとき、Wechatのバックグラウンドサーバは、決済が失敗したことを示す応答をオープンプラットフォームに返す。
【0178】
ステップ1115: オープンプラットフォームが、決済が成功したかどうかを示す応答を第3者ウェブページサーバに返す。
【0179】
決済が成功したとき、オープンプラットフォームは、決済が成功したことを示す応答を第3者ウェブページサーバに返す。
【0180】
決済が失敗したとき、オープンプラットフォームは、決済が失敗したことを示す応答を第3者ウェブページサーバに返す。
【0181】
結論として、この実施形態において提供される署名生成装置においては、Wechatのバックグラウンドサーバが、注文情報の外側の第2の署名を検証し、Tenpayのバックグラウンドサーバが、注文情報の内側の第1の署名を検証し、それによって、第3者の売買業者と決済サービス提供者との両方が、上述の注文情報送信プロセスにおいて使用される第3者の売買業者の鍵を有し、鍵が漏らされると、他者が鍵を使用することによって注文情報を改ざんまたは偽造することができ、そのことが、ユーザまたは第3者の売買業者に対する財産の損失を容易に引き起こし、セキュリティが低いという問題を解決し、2つの署名を検証することによって検証の正確さを改善し、決済情報のセキュリティを改善する効果を実現し、2つの鍵が、第3者の売買業者によって保有され、WechatのバックグラウンドサーバおよびTenpayのバックグラウンドサーバが、別々に1つの鍵を有する。
【0182】
本発明の上述の実施形態の連番は、説明の便宜のためのものに過ぎず、実施形態の間の優先度を示唆しない。
【0183】
当業者は、上述の実施形態のステップのすべてまたは一部が、ハードウェアを用いることによって実装される可能性があり、または関連するハードウェアに指示を与えるプログラムによって実装される可能性があることを理解するであろう。プログラムは、コンピュータ可読ストレージ媒体に記憶され得る。ストレージ媒体は、ROM、磁気ディスク、光ディスクなどである可能性がある。
【0184】
上述の説明は、本発明の例示的な実施形態であるに過ぎず、本発明を限定するように意図されていない。本発明の精神および原理の中でなされたあらゆる修正、均等な置き換え、または改善は、本発明の保護範囲に入る。