用語解説
支払いネットワーク…現金の代用品を使用する送金に使用されるシステムまたはネットワーク。支払いネットワークは、種々の取引に対する送金を処理するために種々のプロトコルおよび手順を使用してもよい。支払いネットワークを介して実行されてもよい取引は、製品またはサービスの購入、信用購入、デビット取引、資金振替、口座引き出し等を含んでもよい。支払いネットワークは、支払いカード、信用状、小切手、取引口座等を含んでもよい現金の代用品を介して取引を実行するように構成されてもよい。支払いネットワークとして実行するように構成されたネットワークまたはシステムの例は、MasterCard(R)、VISA(R)、Discover(R)、American Express(R)、PayPal(R)等により運用されるもの含む。本明細書における用語「支払いネットワーク」の使用は、エンティティとしての支払いネットワークと、支払いネットワークを含む機器、ハードウェアおよびソフトウェア等の物理的支払いネットワークとの双方を示してもよい。
取引口座…当座預金口座、普通預金口座、掛売口座、仮想支払い口座等、取引に資金提供するために使用されてもよい金融口座。取引口座は、個人、家族、会社、企業、政府事業体等を含んでもよい支払い口座に関連付けられる何らかの適切な種類のエンティティであってもよい消費者と関連付けられてもよい。いくつかの例において、PayPal(R)等により運用される口座等、取引口座は仮想であってもよい。
支払いカード…関連する取引口座を介して金融取引に資金提供するために業者に提供されてもよい取引口座に関連付けられるカードまたはデータ。支払いカードは、クレジットカード、デビットカード、チャージカード、ストアドバリューカード、プリペイドカード、フリートカード、仮想支払い番号、仮想カード番号、仮想クレジットカード番号(controlled payment numbers)等を含んでもよい。支払いカードは、業者に提供されてもよい物理カードであってもよく、あるいは関連する取引口座を表すデータ(例えば、スマートフォンまたはコンピュータ等の通信装置に格納される)であってもよい。例えばいくつかの例において、支払い口座番号を含むデータは、関連する取引口座により資金提供される取引を処理するための支払いカードであると考えられてもよい。いくつかの例において、小切手が支払いカードとして適宜考えられてもよい。
支払取引…金銭または他の金銭的利得が一方のエンティティから他方のエンティティに交換される2つのエンティティ間の取引。支払取引は、商品またはサービスの購入、借金の返済、あるいは当業者には明らかだろう金銭的利得の他の何らかの交換のための資金移動であってもよい。いくつかの例において、支払取引は、クレジットカード取引等の支払いカードおよび/または支払い口座を介して資金提供される取引を示してもよい。そのような支払取引は、イシュア(カード発行会社)、支払いネットワークおよびアクワイアラ(加盟店管理業者)を介して処理されてもよい。そのような支払取引を処理する処理は、許可、バッチング、清算、決済および資金提供のうちの少なくとも1つを含んでもよい。許可は、消費者が業者に支払明細を提供することと、業者からアクワイアラに取引明細(例えば、支払明細を含む)を提出することと、取引に資金提供するために使用される消費者の支払い口座のイシュアと支払明細を照合することとを含んでもよい。バッチングは、アクワイアラに配布するために、許可された取引を他の許可された取引と共にまとめて格納することを示してもよい。清算は、処理するために、バッチングされた取引をアクワイアラから支払いネットワークに送出することを含んでもよい。決済は、イシュアの受取人が関係する取引に対して支払いネットワークによりイシュアから引き落とすことを含んでもよい。いくつかの例において、イシュアは支払いネットワークを介してアクワイアラに支払ってもよい。他の例において、イシュアはアクワイアラに直接支払ってもよい。資金提供は、清算され且つ決算された支払取引に対するアクワイアラから業者への支払いを含んでもよい。上述したステップの順序および/または分類は支払取引処理の一部として実行されることが当業者には明らかだろう。
POS…商品および/またはサービスの購入および/または支払いのために取引データ、支払いデータおよび/または他の適切な種類のデータを入力するためにユーザ(例えば、消費者、従業員等)との対話を受信するように構成されたコンピューティング装置またはコンピューティングシステム。POSは、取引の一部として消費者が訪れる「brick and mortar」ストア等の物理的場所における物理的装置(例えば、レジ、キオスク、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ等)であってもよく、あるいはインターネット等のネットワークを介して消費者から通信を受信するオンライン小売業者等の電子商取引環境において仮想であってもよい。POSが仮想であってもよい場合、取引を開始するためにユーザにより動作されるコンピューティング装置または取引の結果としてデータを受信するコンピューティングシステムはPOSであると適宜考えられてもよい。
セキュアエレメントを有さないモバイルデバイス(移動装置)を使用して支払取引を処理するシステム
図1は、セキュアエレメントの使用を必要とせずに移動装置を使用して支払取引を処理するシステム100を示す。これは、支払証明書を移動装置にセキュリティ保護して提供することと、セキュリティ保護して格納することと、支払取引を検証し且つ処理するために使用する複数のアプリケーション暗号を生成する際に使用することとを含むことができる。
システム100は取引管理サーバ102を含んでもよい。以下に更に詳細に説明する取引管理サーバ102は、セキュリティ保護して送信される遠隔通知メッセージを使用して移動装置104に支払証明書を提供するために、並びに支払取引の一部として移動装置104により生成された支払証明書を検証するために、本明細書中で説明する機能を実行するように特にプログラミングされた1つ以上のコンピューティング装置であってもよい。本明細書中では取引管理サーバ102が種々の機能を実行すると示し且つ説明するが、取引管理サーバ102は本明細書中で説明する機能を実行するように構成された複数のコンピューティング装置、サーバおよび/またはコンピューティングネットワークで構成されてもよいことが当業者には明らかだろう。以下に更に詳細に説明する移動装置104は、本明細書中で説明する機能を実行するのに適したあらゆる種類の移動コンピューティング装置であってもよく、携帯電話、スマートフォン、スマートウォッチ、他のウェアラブルまたは組み込み型コンピューティング装置、タブレットコンピュータ、ラップトップコンピュータ等を含んでもよい。いくつかの実施形態において、移動装置104はセキュアエレメントを有さなくてもよい。他の実施形態において、移動装置104はセキュアエレメントを含んでもよいが、そのようなエレメントは本明細書中で説明する方法およびシステムと関連して使用されなくてもよく、あるいは更なるセキュリティを提供するため等に本明細書中で説明する方法およびシステムと関連して使用されてもよい。
移動装置104は、デュアルチャネル通信を利用する等、複数の通信チャネルを使用して取引管理サーバ104と通信してもよい。デュアルチャネル通信は、データの送信におけるセキュリティ強化を保証するために、照合および認証等のためのデータの送信および受信において2つの通信チャネルを使用することを含んでもよい。移動装置104は、本明細書中で説明する移動装置104の機能を実行するために移動装置104により実行されるように構成されたモバイル支払いアプリケーション(MPA)を含んでもよい。以下に更に詳細に説明するMPAは移動装置104にインストールされてもよく、当業者には明らかだろう方法およびシステムを使用して取引管理サーバ102により提供される起動コードを使用して起動されてもよく、それにより、移動装置104および取引管理サーバ102は共有データを使用して2つ以上の通信チャネルにわたり通信をセキュリティ保護して送受信してもよい。
システム100はイシュア106を更に含んでもよい。イシュア106は、取引口座に関連する消費者108に支払いカードまたは支払証明書を発行する発行銀行等の金融機関であってもよい。イシュア106は、取引口座および/または支払いカードに関連する支払明細を取引管理サーバ102に提供してもよい。支払明細は、例えば取引口座番号、口座名義人の氏名、有効期限、セキュリティコード等を含んでもよい。以下に更に説明するように、取引管理サーバ102は口座データベースにデータを格納してもよい。取引管理サーバ102は、移動装置104に支払証明書を更に提供してもよい。本明細書中で使用される場合、用語「支払証明書」は、本明細書中で説明する方法およびシステムを使用する支払取引において使用される支払い情報の送信および検証において移動装置104および/または取引管理サーバ102により使用される支払明細、支払証明書、使い捨て鍵、セッション鍵、アプリケーション暗号、カードマスタ鍵等を含むがそれらに限定されない何らかのデータを示してもよい。
いくつかの実施形態において、支払証明書は、遠隔通知サービスメッセージを介して移動装置104に提供されてもよい。以下に更に詳細に説明するように、遠隔通知サービス(RNS)メッセージは、移動装置104へ送信された後に移動装置104により検証されるセキュリティ保護されたメッセージであってもよく、そのため、それに含まれるデータは他の装置およびユーザからセキュリティ保護されてもよい。移動装置104のMPAは、受信したRNSメッセージが正規のものであることを証明してもよく、それに含まれるデータを取得するために解読(復号化)してもよい。その後、移動装置104は、データに基づいて(例えば、データに含まれる命令を実行すること等により)何らかの必要な機能を実行してもよく、取引管理サーバ102に送出されるリターン(返信)メッセージを適宜生成してもよい。いくつかの例において、返信メッセージは取引管理サーバ102により検証される。
いくつかの例において、移動装置104におけるRNSメッセージの検証または取引管理サーバ102における返信メッセージの検証は、少なくともメッセージカウンタおよび認証コードを使用してもよい。カウンタおよび認証コードの双方を使用することにより、指定された移動装置104のみがRNSメッセージに含まれるデータを検証し且つ復号化できることが保証されてもよい。更に、認証コードを生成する際に使用されるルールおよび/またはアルゴリズムがMPAに含まれる場合、アプリケーションプログラムの特定のインスタンスを更に含む移動装置104のみがRNSメッセージを検証できてもよく、その結果、セキュリティが更に向上する。RNSメッセージが支払証明書を含んでもよい場合、このことは、適切な移動装置104においてのみ且つ支払証明書にアクセスするために使用されるMPAが適切な許可されたアプリケーションである場合のみ支払証明書が使用可能であることを保証してもよい。
移動装置104に提供される支払証明書は、以下に更に詳細に説明するカードデータベース等の移動装置104内の記憶装置にセキュリティ保護して格納されてもよい。いくつかの実施形態において、移動装置104は、移動装置104内のデータベースまたはメモリに支払証明書等のデータをセキュリティ保護して格納する際に使用される高度な記憶鍵を生成するように構成されてもよい。以下に更に詳細に説明するように、高度な記憶鍵の生成は、移動装置104にデータをセキュリティ保護して格納するために使用できるセキュリティ保護記憶鍵を識別するために、一意の装置情報、一意のMPA情報およびランダムに生成された情報を使用してもよい。それにより、支払証明書または他の機密データはセキュアエレメントを使用せずに移動装置104にセキュリティ保護されて格納されてもよく、その結果、移動装置104はセキュアエレメントを使用せずに支払取引を開始し且つ実行でき、高度なセキュリティを維持しつつイシュア106および消費者108が使用しやすくなる。
移動装置104が取引口座に対する支払証明書を受信し、検証し且つセキュリティ保護して格納すると、消費者108は移動装置104を業者のPOS110に持って行き、支払取引を実行する。消費者108は、購入する商品またはサービスを選択してもよく、その購入に対する支払取引を業者と開始してもよく、支払取引に資金提供する際に使用される支払証明書を伝達するために移動装置104を使用してもよい。POS110への支払証明書の伝達は、2つ以上のアプリケーション暗号の送信を含んでもよい。2つ以上のアプリケーション暗号を使用する結果、本明細書中で説明する方法およびシステムを使用して処理される取引は、セキュアエレメントを有する移動装置104を使用して実行される取引を含む従来の非接触遠隔取引よりセキュリティレベルが高くなる場合がある。
各アプリケーション暗号は、別個のセッション鍵および以下に更に詳細に説明する更なるデータを使用して移動装置104により生成されてもよい。高度な記憶鍵を介してセキュリティ保護され且つMPAと関連付けられる記憶装置等の移動装置104に格納されたデータを使用して生成されたアプリケーション暗号は、アプリケーション暗号が移動装置104およびMPAの特定のインスタンスを認証することを保証してもよい。いくつかの例において、暗号のうちの1つおよび/または暗号を生成するために使用されるセッション鍵は、個人識別番号(PIN)等の消費者108により提供される情報を使用してもよい。PINまたは他の消費者認証情報を使用することにより、暗号は消費者108および移動装置104の双方を認証できてもよい。そのような場合、移動装置104により生成される暗号は、移動装置104を認証する暗号と移動装置104および消費者108の双方を認証する第2の暗号とを含んでもよい。
暗号は、支払取引の実行の一部として近距離無線通信等を介してPOS110により受信されてもよい。アプリケーション暗号は、非接触取引、遠隔取引、セキュリティ保護される遠隔支払取引、磁気ストライプによる取引およびM/チップEMV取引等の何らかの適切な種類の支払取引の場合に必要とされるような更なる支払い情報を伴ってもよく、当業者には明らかなように、何らかの適切な方法を適宜使用してPOS110へ送信されてもよい。暗号は、業者と関連付けられる加盟店銀行等の金融機関であってもよいアクワイアラ112へ送信されてもよい。例えばアクワイアラ112は、支払取引に対して消費者108から資金の支払いを受け取るために使用される取引口座を業者に発行してもよい。アクワイアラ112は、当業者には明らかだろう方法およびシステムを使用して、支払いネットワーク114に暗号および更なる取引明細を提出してもよい。例えば取引明細およびアプリケーション暗号は、支払いレイルズ(rails)上で支払いネットワーク114に提出される許可要求に含まれてもよい。
いくつかの実施形態において、双方のアプリケーション暗号が単一の取引メッセージに含まれてもよい。例えば移動装置104および/またはPOS110は、既存の支払いシステムおよびハードウェアを使用して双方のアプリケーション暗号を送信するために、従来の取引メッセージの既存のデータフィールドに双方のアプリケーション暗号を含んでもよい。いくつかの例において、取引管理サーバ102は、磁気ストライプによる取引等におけるアプリケーション暗号の検証のためにトラック2データを使用するように構成されてもよい。そのような例において、取引メッセージがトラック1データを含む場合、取引管理サーバ102はトラック1データをトラック2データに変換するように構成されてもよく、これは変更されたトラック1データまたはトラック2データをそれぞれ変更前のトラック1データまたはトラック2データ(例えば、元のデータ、再構成されたデータ等)に変換することを更に含んでもよい。これらの機能を実行し且つ既存のデータフィールドにアプリケーション暗号を含むことにより、取引管理サーバ102は移動装置104上のセキュアエレメントを使用することを必要とせずに且つ既存の支払いシステムを変更することなく、移動装置104を使用する遠隔非接触支払取引を高いセキュリティレベルで処理し且つ検証するように構成されてもよい。
支払いネットワーク114は、当業者には明らかだろう方法およびシステムを使用して支払取引を処理してもよい。処理の一部として、支払いネットワーク114は照合のためにイシュア106へアプリケーション暗号を送信してもよい。いくつかの実施形態において、照合は支払いネットワーク114により実行されてもよい。イシュア106または支払いネットワーク114は取引管理サーバ102と通信してもよい。いくつかの実施形態において、アプリケーション暗号は取引管理サーバ102へ送信されてもよく、取引管理サーバ102を使用して検証用アプリケーション暗号を生成することにより照合されてもよい。これは、ローカルに格納された支払証明書を使用して生成されてもよい。他の実施形態において、イシュア106または支払いネットワーク114は取引管理サーバ102にアプリケーション暗号を要求してもよく、取引管理サーバ102はアプリケーション暗号を生成し、移動装置104により生成された暗号に対して検証するためにイシュア106または支払いネットワーク114に暗号を返送してもよい。
移動装置104がアプリケーション暗号を生成するために使用する支払証明書および他のデータは取引管理サーバ102が有するため、支払取引に資金提供するために移動装置104により生成された支払証明書の検証は、移動装置104により生成されたアプリケーション暗号と取引管理サーバ102により生成されたアプリケーション暗号とを比較することにより実行されてもよい。いくつかの実施形態において、取引管理サーバ102は支払いネットワーク114またはイシュア106の一部であってもよい。取引管理サーバ102が支払いネットワーク114の一部であってもよい場合、検証は、支払取引の従来の処理の一部としてイシュア106に連絡する前に実行されてもよい(例えば、イシュア106との消費者108の取引口座を使用する取引への資金提供を承認するために)。
複数のアプリケーション暗号を使用することにより、支払取引のセキュリティを向上できる。更に、一方の暗号が移動装置104を認証し且つ他方が移動装置104および消費者108の双方を認証する(例えば、消費者のPINを介して)場合等、各暗号が別個のデータを認証してもよい場合、取引を承認するかまたは拒否するかを決定する際に使用される更なるデータおよび考慮がイシュア106に更に提供されてもよい。例えば双方の暗号が誤っている(例えば、移動装置104により生成された暗号が取引管理サーバ102により生成された暗号と一致しない)場合、取引は拒否されてもよい。一方の暗号が正しくて他方が誤っている場合、取引はセキュリティ上の理由で拒否されてもよく、あるいはイシュア106の決定等に基づいて承認されてもよい。例えばイシュア106は、消費者の認証が失敗したが移動装置の認証が成功した場合、消費者108ではないが許可されたユーザが取引のために移動装置104を使用していると他の使用可能なデータが示す場合があるため、取引を承認してもよい。
その結果、双方の暗号を使用することにより、支払取引を処理する際に支払いネットワーク114およびイシュア106が使用できる有用なデータが提供されてもよい。更に、2つ以上の暗号を使用することにより、従来の非接触または遠隔支払い方法よりセキュリティが向上してもよく、その結果、詐欺が減少し、消費者108、イシュア106および業者に更に広く受け入れられてもよい。2つ以上のアプリケーション暗号の使用が本明細書中で説明するRNSメッセージ送信方法およびシステムを使用してセキュリティ保護されて提供された支払証明書から生成され且つ本明細書中で説明する方法およびシステムを使用して生成された高度な記憶鍵を介してセキュリティ保護されて格納される場合、非接触支払取引処理に対してシステム100全体のセキュリティを従来のシステムより大幅に向上できる。その結果、システム100は、データの送信、格納および処理の複数の側面において、従来の非接触支払いシステムよりセキュリティを向上してもよく、本明細書中で説明する方法およびシステムを使用してもよい他の種類の遠隔支払取引および支払取引一般を提供してもよい。
移動装置
図2は、システム100の移動装置104の一実施形態を示す。図2に示す移動装置104の実施形態は例示として提供されるにすぎず、本明細書中で説明する機能を実行するのに適した移動装置104の全ての可能な構成を含まなくてもよいことが当業者には明らかだろう。例えば図17に示し且つ以下に更に詳細に説明するコンピュータシステム1700が移動装置104の適切な構成であってもよい。
移動装置104は受信部202を含んでもよい。受信部202は、1つ以上のネットワークプロトコルにより1つ以上のネットワークを介してデータを受信するように構成されてもよい。受信部202は、例えば以下に更に詳細に説明するモバイル支払いアプリケーション(MPA)等の移動装置104上にインストールされて実行される1つ以上のアプリケーションプログラムに対するプログラムデータを受信してもよい。受信部202は、支払証明書を含む遠隔通知サービス(RNS)メッセージを含む取引管理サーバ102により送信されるメッセージ等のRNSメッセージを更に受信してもよい。受信部202は、電話通信、セルラ通信等の移動装置104の従来の機能を実行するのに適した更なるデータを更に受信してもよい。いくつかの例において、移動装置104は、各々が適切なプロトコルにより1つ以上の別個のネットワークと通信するように構成される別個の受信部202等の複数の受信部202を含んでもよい。例えば移動装置104は、NFC取引に対するデータを受信する第1の受信部202と、移動体通信ネットワークを介する通信を受信する第2の受信部202とを含んでもよい。
移動装置104は入力部214を更に含んでもよい。入力部214は、キーボード、マウス、クリックホイール、スクロールホイール、タッチスクリーン、マイク、カメラ、レシーバ等の消費者108から入力を受信するために移動装置104に内部接続または外部接続される1つ以上の入力装置と通信するように構成されてもよい。入力部214は消費者108から入力を受信してもよく、これは処理部204により処理されてもよい。
処理部204は、本明細書中で説明する移動装置104の機能を実行するように構成されてもよい。処理部204は、MPA等に対する移動装置に格納されたプログラムコードを実行してもよく、移動装置104の他の機能に加えて各アプリケーションプログラムに関連する複数の機能を実行するように構成されてもよい。処理部204は、入力部214を介して消費者108から入力を受信し、当業者には理解されるように、アプリケーションプログラムの実行、プログラム内の機能の実行、データの受信、データの送信、データの表示等により対応する機能を実行してもよい。例えば処理部204は、以下に更に詳細に説明するように、RNSメッセージを検証し、高度な記憶鍵を生成し、アプリケーション暗号を生成するように構成されてもよい。
移動装置104は表示部210を更に含んでもよい。表示部210は、表示するために処理部204により表示部210へ送信されたデータ等のデータを表示するために移動装置104に内部接続または外部接続される1つ以上の表示装置と通信するように構成されてもよい。表示装置は、液晶ディスプレイ、発光ダイオードディスプレイ、薄膜トランジスタディスプレイ、タッチスクリーンディスプレイ等を含んでもよい。
移動装置104は送信部206を更に含んでもよい。送信部206は、1つ以上のネットワークプロトコルにより1つ以上のネットワークを介してデータを送信するように構成されてもよい。送信部206は、取引管理サーバ102へRNS応答メッセージを送信してもよい。送信部206は、支払取引において使用するためにPOS110等へアプリケーション暗号および/または支払証明書を送信するように更に構成されてもよい。送信部206は、セルラ通信の送信等の移動通信装置の従来の機能等の当業者には明らかだろう移動装置104の更なる機能を実行するように更に構成されてもよい。いくつかの例において、移動装置104は、NFCを介して支払証明書および支払い暗号を送信するように構成された送信部206および移動体通信ネットワークを介してデータを送信するように構成された別の送信部206等、1つ以上の別個のネットワークと通信するように個別に構成されてもよい複数の送信部206を含んでもよい。
移動装置104はカードデータベース208を更に含んでもよい。以下に更に詳細に説明するカードデータベース208は、1つ以上の取引口座および/または支払いカードに関連するデータを格納するように構成される移動装置104上のデータ記憶装置であってもよい。カードデータベース208は、セキュリティ保護されたRNSメッセージにおいて取引管理サーバ102により移動装置104に提供される支払証明書等の取引口座に関連する支払証明書と、以下に更に詳細に説明するようにアプリケーション暗号を生成する際に使用されてもよい更なるデータとを格納してもよい。いくつかの例において、カードデータベース208はモバイル支払いアプリケーションの一部として格納されてもよい。
移動装置104はメモリ212を更に含んでもよい。以下に更に詳細に説明するメモリ212は、本明細書中で説明する移動装置104の機能を実行するのに適した移動装置104に対するデータを格納するように構成されてもよい。例えばメモリ212は、以下に更に詳細に説明するように、カードデータベース208等の移動装置104において更なるデータを暗号化するための高度な記憶鍵を生成するのに適したデータを格納してもよい。メモリ212は、オペレーティングシステム等の処理部204により実行されるアプリケーションプログラムに対するプログラムコード、入力部214を介してデータを受信し且つ表示部210を介してデータを表示するためのプログラムコード、本明細書中で説明する機能を実行するためのルールおよび/またはアルゴリズム等を格納するように更に構成されてもよい。メモリ212は、移動体ネットワークを介してセルラ通信を送受信するためのルールおよび/またはアルゴリズム等の移動装置104の従来の機能を実行するのに適したデータを更に格納してもよい。メモリ212に格納される更なるデータは当業者には明らかだろう。
移動装置のカードデータベース
図3は、移動装置108を用いて実行される支払取引に資金提供する際に使用される支払取引に関連する支払証明書および他のデータを格納する移動装置104のカードデータベース208の一実施形態を示す。
カードデータベース208は、図3において支払いプロファイル302a、302bおよび302cとして示す1つ以上の支払いプロファイル302を含んでもよい。各支払いプロファイル302は、支払取引に資金提供するために使用されてもよい取引口座と関連付けられてもよく、少なくとも支払証明書304、1つ以上の使い捨て鍵306、第1のセッション鍵308、第2のセッション鍵310およびアプリケーション取引カウンタ312を含んでもよい。
支払証明書304は、関連する取引口座を使用する支払取引の処理において支払いネットワーク114および/またはイシュア106により識別および検証のために使用される関連する取引口座に関連するデータを含んでもよい。支払証明書304は、例えば取引口座番号、セキュリティコード、有効期限、カード所持者の氏名、許可されたユーザ名、追跡データ、カードレイアウト記述データ、デジタルカウント、ビットマップ等を含んでもよい。
使い捨て鍵306は、支払取引において使用されるアプリケーション暗号のうちの1つ以上を生成するために移動装置104の処理部204により使用されてもよい単一の支払取引に対して有効な支払いトークンであってもよい。いくつかの実施形態において、使い捨て鍵306は支払いプロファイル302に含まれる他のデータ要素のうちの1つ以上を含んでもよい。例えば各使い捨て鍵306は別個のアプリケーション取引カウンタ312を含んでもよく、これはプロファイル302に別個に含まれなくてもよい。本明細書中で開示される機能を実行する際に使用される支払いプロファイル302に格納されるデータの異なる構成は当業者には明らかだろう。いくつかの例において、使い捨て鍵306は、1つ以上のアプリケーション暗号を生成するために使用される鍵を含んでもよく、あるいはそのような鍵で構成されてもよい。いくつかの実施形態において、第1のセッション鍵308および第2のセッション鍵310は、移動装置104に提供される使い捨て鍵306に含まれてもよく且つ/または使い捨て鍵306に含まれるデータを使用して生成されてもよい。
第1のセッション鍵308および第2のセッション鍵310は、移動装置104を使用する支払取引の実行の一部としてPOS110へ送信されるアプリケーション暗号を生成する際に処理部204により使用される更なる鍵であってもよい。いくつかの実施形態において、第1のセッション鍵308は、移動装置104のメモリ212に格納されたプログラムコード、ルールまたはアルゴリズム等を使用して処理部204により第1のアプリケーション暗号を生成する際に使用されてもよい。第2のセッション鍵310は、第2のアプリケーション暗号を生成する際に使用されてもよい。
いくつかの実施形態において、第2のセッション鍵310は処理部204により生成されてもよい。そのような一実施形態において、第2のセッション鍵310は、使い捨て鍵306と消費者108により提供された(例えば入力部214を介して)PIN等のユーザ認証データとを使用して生成されてもよい。そのような一実施形態において、第2のセッション鍵310は支払いプロファイル302に格納されなくてもよく、代わりに支払取引処理の一部として生成され、使用され、廃棄されてもよい。従って、使い捨て鍵306および消費者のPINを使用して生成される第2のセッション鍵310から生成される場合、第2のアプリケーション暗号は移動装置104および消費者108の双方を認証するために使用される。
個人識別番号(PIN)は、消費者108を認証するために使用されてもよい消費者108により提供される(例えば、移動装置104にMPAを登録する時またはイシュア106および/または取引管理サーバ102との取引口座を登録する時に)番号であってもよい。支払取引を実行する場合、消費者108または移動装置104の他のユーザは入力部214を介してPINを提供してもよい。いくつかの実施形態において、提供されたPINが誤っている(例えば、登録時に消費者108により提供されたPINと一致しない)場合、処理部204は第2のセッション鍵310の生成に進み、その後、第2のアプリケーション暗号を生成してもよい。提供されたPINが誤っている場合、第2のアプリケーション暗号は不正確であり、その結果、取引管理サーバ102、イシュア106および/または支払いネットワーク114による第2のアプリケーション暗号の検証は失敗し、それに従って取引を拒否するかまたは依然として取引を承認する機会がイシュア106に提供されてもよい。
移動装置のメモリ
図4は、移動装置104にデータをセキュリティ保護して格納する際に使用され且つ移動装置104を使用する支払取引を実行するために使用されるアプリケーションプログラムおよび他のデータを格納する移動装置104のメモリ212の一実施形態を示す。例示的な一実施形態において、メモリ212はセキュアエレメントでなくてもよい。
メモリ212は装置情報402を含んでもよい。装置情報402は、いくつかの例では移動装置104に特有であってもよい移動装置104に関連する1つ以上のデータを含んでもよい。例えば装置情報402は、媒体アクセス制御アドレス、参照番号、シリアル番号、識別番号等を含んでもよい。移動装置104の装置情報402であると考えられてもよい更なる情報は当業者には明らかだろう。
メモリ212は、モバイル支払いアプリケーション(MPA)404を更に含んでもよい。MPA404は、支払証明書の受信および格納、RNSメッセージの検証、並びに支払取引を実行する際に使用されるアプリケーション暗号の生成等の本明細書中で説明する移動装置104の機能を実行するように構成されたアプリケーションプログラムであってもよい。当業者には明らかなように、MPA404の更なる特徴は、デジタルウォレットまたは他の同様のアプリケーションプログラムの従来の特徴を含んでもよい。
MPA404はプログラムコード406を含んでもよい。プログラムコード406は、本明細書中で説明するMPA404の機能を移動装置104の処理部204および他の構成要素に実行させる移動装置104の処理部204により実行されるコードであってもよい。例えばプログラムコード406は、アプリケーション暗号の生成、RNSメッセージの検証等に適したコードを含んでもよい。プログラムコード406は、高度な記憶鍵を生成する際に使用されてもよい乱数値を生成するのに適したプログラムコードを更に含んでもよい。乱数値は、当業者には明らかだろう方法およびシステムを使用して生成されてもよい乱数または擬乱数であってもよい。
MPA404はインスタンス識別子408を更に含んでもよい。インスタンス識別子408は、カードデータベース208等の移動装置104においてデータをセキュリティ保護するために使用される高度な記憶鍵を生成する際に使用されてもよい特定のMPA404に特有の値であってもよい。MPA404に特有のインスタンス識別子408を有することにより、いずれのMPA404も他のMPA404によりセキュリティ保護されて格納されたデータにアクセスできない状態で複数のMPA404が移動装置104にインストールされてもよく、それにより、他のプログラムは特定の支払い口座に対する支払いプロファイル302にアクセスできないことを保証できる。インスタンス識別子408は、MPA404に特有であってもよい番号、アルファベット値、16進数または何らかの適切な値であってもよい。
以下に更に詳細に説明するように、移動装置104の処理部204は、装置情報402、MPA404のプログラムコード406を使用して生成された乱数値およびMPA404に格納されたインスタンス識別子408を使用して多様値(diversifier value)を生成するように構成されてもよい。多様値は、メモリ212に同様に格納される暗号アプリケーション410により使用されてもよい。暗号アプリケーション410は、ホワイトボックス暗号化および/または当業者には明らかだろう他の何らかの適切な暗号機能を実行するように構成されたアプリケーションプログラムであってもよい。
暗号アプリケーション410はプログラムコード412を含んでもよい。プログラムコード412は、移動装置104の処理部204および他の構成要素が本明細書中で説明する暗号アプリケーション410の暗号機能を実行できるようにするために移動装置104の処理部204により実行されてもよい。機能は、高度な記憶鍵の生成を含んでもよい。高度な記憶鍵は、モバイル支払いアプリケーション404により生成された多様値と暗号アプリケーション410に含まれる暗号鍵414とを使用して生成されてもよい。いくつかの実施形態において、多様鍵(多様値)は、高度な記憶鍵を取得するために暗号鍵414を使用して復号化されてもよい。
暗号アプリケーション410は、高度な記憶鍵を使用して移動装置104における格納を暗号化するように更に構成されてもよい。いくつかの実施形態において、暗号化は1つ以上のホワイトボックス暗号化技術を使用して実行されてもよい。暗号化される格納はカードデータベース208であってもよく且つ/またはMPA404に格納されるデータ等の移動装置104における他の何らかの適切な格納であってもよい。いくつかの実施形態において、暗号アプリケーション410はMPA404の一部として含まれてもよい。高度な記憶鍵は暗号アプリケーション410またはMPA404に格納されてもよく、あるいはいくつかの例では、必要な場合にMPA404および暗号アプリケーション410により再度生成されてもよい。
メモリ212は、移動装置104に格納され且つ本明細書中で説明する機能および移動装置の何らかの更なる機能を実行するのに適した何らかの更なるデータを更に含んでもよい。例えばメモリ212は、オペレーティングシステムに対するプログラムコード、通話等の移動体通信を送受信するためのコード、ルールまたはアルゴリズム等を含んでもよい。
いくつかの実施形態において、移動装置104は高度な記憶鍵を使用して既に暗号化されているデータを受信するように更に構成されてもよく、これは、メモリ212、カードデータベース208または他の適切な記憶装置等の移動装置104内の暗号化されたローカル記憶装置に格納されてもよい。そのような一実施形態において、移動装置104は生成された乱数値を取引管理サーバ102または他の信頼できるエンティティへ送信するように構成されてもよく、取引管理サーバ102または他の信頼できるエンティティは、生成された乱数値を用いて同一の方法およびシステムを使用して高度な記憶鍵を生成してもよく、移動装置104に提供されるデータを暗号化してもよい。このように、移動装置104は、移動装置104においてローカルに格納するために、高度な記憶鍵を使用して既に暗号化されたデータを受信してもよい。
取引管理サーバ
図5は、システム100の取引管理サーバ102の一実施形態を示す。図5に示す取引管理サーバ102の実施形態は例示として提供されるにすぎず、本明細書中で説明する機能を実行するのに適した取引管理サーバ102の全ての可能な構成を含まなくてもよいことが当業者には明らかだろう。例えば図17に示し且つ以下に更に詳細に説明するコンピュータシステム1700が取引管理サーバ102の適切な構成であってもよい。
取引管理サーバ102は受信部502を含んでもよい。受信部502は、1つ以上のネットワークプロトコルにより1つ以上のネットワークを介してデータを受信するように構成されてもよい。受信部502は、移動装置104、支払いネットワーク114、イシュア106または他の適切なエンティティから受信または返信メッセージ、確認メッセージ、取引通知等のデータを受信してもよい。受信部502は、支払取引における支払証明書の検証において使用されるアプリケーション暗号の生成を開始するため等の取引通知または暗号要求を受信してもよい。受信部502は、移動装置104に提供される支払証明書を生成する際に使用される取引口座データをイシュア106等から更に受信してもよい。
取引管理サーバ102は処理部504を更に含んでもよい。当業者には明らかなように、処理部504は、本明細書中で説明する取引管理サーバ102の機能を実行するように構成されてもよい。従って、以下に更に詳細に説明するように、処理部504はRNSメッセージおよびそれに含まれるデータを生成し且つ暗号化し、移動装置104からの返信メッセージを検証し、支払証明書を生成し、アプリケーション暗号を生成し、アプリケーション暗号を検証するように構成されてもよい。
取引管理サーバ102は送信部506を更に含んでもよい。送信部506は、1つ以上のネットワークプロトコルにより1つ以上のネットワークを介してデータを送信するように構成されてもよい。送信部506は、RNSメッセージ、支払証明書、アプリケーション暗号、検証通知、並びに当業者には明らかだろう他のデータを送信してもよい。送信部506は、移動体通信ネットワークまたはインターネット等を介して移動装置104、支払いネットワーク114、イシュア106および他の何らかの適切なエンティティへデータを送信するように構成されてもよい。
取引管理サーバ102は口座データベース508を更に含んでもよい。以下に更に詳細に説明するように、口座データベース508は複数の取引口座に対する口座情報を格納するように構成されてもよい。口座情報は、移動装置104を使用して実行される支払取引の間に受信される支払証明書を検証する際に使用されるアプリケーション暗号を生成するために使用されるデータおよび鍵を含んでもよい。口座データベース508は、移動装置104に関係して実行される支払取引に対する取引データ、並びに消費者108または関連する取引口座の他の許可されたユーザに関連するデータ等の他のデータを格納するように更に構成されてもよい。
取引管理サーバ102はメモリ510を更に含んでもよい。メモリ510は、本明細書中で開示される機能を実行する際に取引管理サーバ102により使用される更なるデータを格納するように構成されてもよい。例えばメモリ510は、アプリケーション暗号を検証するためのルールまたはアルゴリズム、検証通知を生成するためのルールまたはアルゴリズム、セッション鍵およびアプリケーション暗号を生成するためのアルゴリズム、データおよびRNSメッセージを暗号化および復号化するための暗号鍵等を格納してもよい。メモリ510に格納されてもよい更なるデータは当業者には明らかだろう。
取引管理サーバの口座データベース
図6は、支払証明書を検証する際に使用される取引口座に関連するデータと、移動装置104を含む支払取引を実行する際に提供される他の取引データとを格納する取引管理サーバ102の口座データベース508の一実施形態を示す。
口座データベース508は、図6において口座プロファイル602a、602bおよび602cとして示す複数の口座プロファイル602を含んでもよい。各口座プロファイル602は、1つ以上の使い捨て鍵604、第1のセッション鍵606、第2のセッション鍵608、アプリケーション取引カウンタ610および第1のカードマスタ鍵612を含んでもよい。いくつかの実施形態において、口座プロファイル602は第2のカードマスタ鍵612を更に含んでもよい。
各口座プロファイル602は、移動装置104に提供される支払いプロファイル302に対応してもよい。そのため、口座プロファイル602に格納される使い捨て鍵604は、同一の取引口座に関連する対応する支払いプロファイル302に格納される使い捨て鍵306に対応してもよい。アプリケーション暗号が取引管理サーバ102または移動装置104により生成される場合、データが正確であり且つ改竄されてない場合にアプリケーション暗号が一致するように、データは同様であってもよく、それにより移動装置104により提示される支払証明書の検証が可能になってもよい。
いくつかの実施形態において、口座プロファイル602は、対応する支払いプロファイル302に格納されたPIN314に対応する個人識別番号(PIN)を含んでもよい。そのような一実施形態において、PIN314は、以下に更に詳細に説明する移動装置104により提供される受信メッセージ等のセキュリティ保護されたメッセージにおいて取引管理サーバ102の受信部202に提供されてもよい。他の実施形態において、第1のカードマスタ鍵612等のカードマスタ鍵がPINの代わりに使用されてもよい。そのような一実施形態において、取引管理サーバ102の処理部504は、使い捨て鍵306およびPIN314を使用して移動装置104により生成された第2のセッション鍵310に対応する第2のセッション鍵608を第2のカードマスタ鍵614に基づいて生成するように構成されてもよい。いくつかの例において、第2のセッション鍵608は対応する使い捨て鍵604に更に基づいてもよい。そのような実施形態において、セッション鍵および/またはアプリケーション暗号を生成するためのアルゴリズムは、移動装置104により生成された暗号および取引管理サーバ102により生成された暗号がそれらにおいて使用されるデータに基づいて対応することを保証してもよい。
第1のセッション鍵606は、第1のアプリケーション暗号を生成するために取引管理サーバ102の処理部504により使用されてもよく、第2のセッション鍵608は第2のアプリケーション暗号を生成するために使用されてもよい。いくつかの実施形態において、アプリケーション取引カウンタ610は、セッション鍵および/またはアプリケーション暗号の1つ以上を生成する際に使用されてもよい。アプリケーション取引カウンタ610は、実行される支払取引に対応する値であってもよく、各取引の間に増分または変更される。アプリケーション取引カウンタ610は移動装置104内の対応する支払いプロファイル302に格納されたアプリケーション取引カウンタ312に対応してもよく、それを使用することにより、有効なMPA404のみが正確なアプリケーション取引カウンタ312を有し、有効なセッション鍵および/またはアプリケーション暗号を生成してもよいことが保証されてもよい。予測不能な数および当業者には明らかだろう他の技術等、セッション鍵および/またはアプリケーション暗号の生成のセキュリティを更に向上する更なる技術が使用されてもよい。
移動装置を使用する支払取引の処理
図7は、セキュアエレメントを有さない移動装置104を使用して且つ2つ以上のアプリケーション暗号の生成および検証を使用して実行される支払取引を処理する処理を示す。
ステップ702において、取引管理サーバ102は、以下に更に詳細に説明するRNSメッセージ等により支払証明書304および他の口座データを移動装置104に提供してもよい(例えば、送信部506を介して)。ステップ704において、移動装置104の受信部202は支払証明書304および他の口座データを受信してもよい。ステップ706において、移動装置104の処理部204は、カードデータベース208内の支払いプロファイル302にデータを格納してもよい。口座データは、支払証明書304、1つ以上の使い捨て鍵308、並びにセッション鍵308および310のうちの1つ以上等の他の何らかの適切なデータを含んでもよい。
ステップ708において、処理部204は、支払取引を実行する際に使用される2つのアプリケーション暗号を生成してもよい。いくつかの実施形態において、ステップ708は、入力部214を介して指示するか、近距離無線通信を介して取引を開始するためにPOS110の近傍に移動装置104を配置するかまたは他の適切な方法等により消費者108により開始されてもよい。アプリケーション暗号の生成は、支払いプロファイル302に格納された第1のセッション鍵308を使用して第1のアプリケーション暗号を生成することを含んでもよい。使い捨て鍵306およびPIN314を使用して生成されてもよい第2のセッション鍵310を使用して、第2のアプリケーション暗号が生成されてもよい。いくつかの例において、消費者108は、ステップ708の前またはステップ708の開始時に移動装置104にPINを入力してもよい(例えば、入力部214を介して)。いくつかの実施形態において、アプリケーション暗号の一方または双方はアプリケーション取引カウンタ312を使用して生成されてもよい。
アプリケーション暗号が生成されると、POS110を介してイシュア106、アクワイアラ112および支払いネットワーク114へ支払証明書304と共に送信されてもよい。ステップ710において、支払証明書304およびアプリケーション暗号はイシュア106により受信されてもよい。ステップ712において、移動装置104の送信部206は取引管理サーバ102へ取引通知を送信してもよい。ステップ714において、取引管理サーバ102の受信部502は取引通知を受信してもよい。取引通知は、移動装置104が支払いプロファイル302を使用して支払取引を開始したことを取引管理サーバ102に通知してもよい。いくつかの例において、取引通知は識別情報を含んでもよい。
ステップ716において、取引管理サーバ102の処理部504は支払いプロファイル302に対応する口座プロファイル602を識別してもよく、それに含まれるデータを使用して2つのアプリケーション暗号を生成してもよい。第1のアプリケーション暗号は、第1のカードマスタ鍵612を使用して生成されてもよい第1のセッション鍵606を使用して生成されてもよい。第2のアプリケーション暗号は、第2のセッション鍵608を使用して生成されてもよい。いくつかの実施形態において、アプリケーション暗号および/またはセッション鍵の一方または双方は、使い捨て鍵604、アプリケーション取引カウンタ610または他の何らかの適切なデータに更に基づいてもよい。
ステップ718において、取引管理サーバ102の送信部506は生成されたアプリケーション暗号をイシュア106へ送信してもよく、イシュア106はステップ718において暗号を受信してもよい。ステップ720において、イシュア106は、移動装置104により提供された支払証明書304を伴うアプリケーション暗号を検証してもよい。アプリケーション暗号の検証は、移動装置104により提供された暗号と取引管理サーバ102により生成され且つ提供されたアプリケーション暗号とを比較することを含んでもよい。検証が実行されると、ステップ722において、イシュア106は取引を適宜処理してもよい。取引を処理することは、暗号の一方または双方が確認された場合等に支払取引を承認することまたは暗号の一方または双方が無効であると判定された場合等に支払取引を拒否することを含んでもよい。
ステップ724において、取引通知が支払取引の処理の一部としてイシュア106または他のエンティティ(例えば、支払いネットワーク114、アクワイアラ112等)により送信されてもよい。ステップ726において、取引通知が取引管理サーバ102へ送信され、受信部502により受信されてもよい。ステップ728において、取引通知が移動装置104の受信部202により更に受信されてもよい。取引通知は、支払取引の承認または拒否の指示であってもよい。移動装置104の処理部204および取引管理サーバ102の処理部504はそれぞれ、受信した取引通知の結果として1つ以上の機能を実行してもよい。例えば取引が承認され且つ正常に処理された場合、それぞれのプロファイル内のアプリケーション取引カウンタ310および610が適宜更新されてもよい。
図8は、移動装置104を使用する支払取引を処理する別の処理を示す。
ステップ802において、支払証明書304および他の口座データが取引管理サーバ102の送信部506により移動装置104へ送信されてもよい。ステップ804において、移動装置104の受信部202は支払証明書304および他の口座データを受信してもよく、ステップ806において、それらは支払いプロファイル302に格納されてもよい。ステップ808において、移動装置104の処理部204は上述したように2つのアプリケーション暗号を生成してもよく、暗号、支払証明書304および他の適切なデータをイシュア106へ送信してもよい(例えば、POS110を介して)。
ステップ810において、イシュア106は、取引データを検証し且つ/または取引の承認または拒否を処理するためにイシュア106により使用されてもよいアプリケーション暗号および他の何らかの適切なデータを受信してもよい。ステップ812において、イシュア106は、暗号の検証を求める要求を取引管理サーバ102に提出してもよい。いくつかの実施形態において、要求は、検証暗号を生成するために使用される口座プロファイル602を識別する際に取引管理サーバ102が使用するのに適する支払証明書304および他のデータを含んでもよい。一実施形態において、要求は、検証のために移動装置104により生成された2つのアプリケーション暗号を更に含んでもよい。
ステップ814において、取引管理サーバ102の受信部502は暗号要求を受信してもよい。ステップ816において、取引管理サーバ102の処理部504は、上述のように、検証に使用される2つのアプリケーション暗号を生成してもよい。暗号要求が移動装置104により生成された2つのアプリケーション暗号を更に含む実施形態において、ステップ816は、2つの新規に生成されたアプリケーション暗号を使用して処理部504により2つの暗号を検証することを更に含んでもよい。検証暗号または該当する実施形態における検証結果は、送信部506によりイシュア106へ送信されてもよい。ステップ818において、イシュア106は検証暗号および/または検証結果を受信してもよい。
ステップ820において、イシュア106は、取引管理サーバ102により生成されたアプリケーション暗号を使用して、移動装置104により提供されたアプリケーション暗号を検証してもよい。取引管理サーバ102がイシュア106に検証結果を提供する実施形態において、ステップ820は2つのアプリケーション暗号の各々の検証の結果を識別することを含んでもよい。ステップ822において、イシュア106は検証の結果に従って支払取引を適宜処理してもよい。ステップ824において、取引通知が取引管理サーバ102および移動装置104へ送信され、ステップ826において受信部502により受信され、ステップ828において受信部202により受信されてもよい。
遠隔通知サービス/データメッセージ送信
図9は、取引管理サーバ102から移動装置104へ送信される遠隔通知サービス(RNS)メッセージおよび他のデータメッセージを送信および検証する処理を示す。RNSメッセージは、移動装置104と関連付けられた移動体通信ネットワーク等を使用する遠隔通知サービスを介して送信されてもよい。RNSメッセージは、支払証明書304と、上述したように支払取引を処理する際に使用される口座データ等の他の口座データと、移動装置104と取引管理サーバ102との間にセキュリティ保護された接続を確立する際に使用されてもよい他の情報とを移動装置104へ提供するために使用されてもよい。
ステップ902において、取引管理サーバ102の処理部504はメッセージを生成してもよい。移動装置104との相互認証を確立する場合、メッセージは、セッション識別子等の相互認証を確立するのに適した情報を含んでもよい。図9に示した本明細書中で説明する処理を使用して取引管理サーバ102と移動装置104との間の相互認証が確立済みである場合等の他の例において、生成されるメッセージは支払証明書304および口座データを含んでもよく、移動装置104のMPA404により実行される1つ以上のコマンド(例えば、使い捨て鍵306または支払証明書304の除去)を含んでもよく、消費者108に対して提示される通知(例えば、口座残高、支払い通知等)であってもよく、あるいは他の適切なデータを含んでもよい。
ステップ904において、処理部504は生成されたメッセージを暗号化してもよい。メッセージは秘密鍵/公開鍵対の秘密鍵を使用して暗号化されてもよく、その場合、移動装置104は対応する公開鍵を有してもよい。いくつかの例において、メッセージは、暗号鍵414等の移動装置104またはMPA404と関連付けられた暗号鍵を使用して暗号化されてもよい。ステップ906において、処理部504はメッセージ認証コードを生成してもよい。メッセージ認証コードは暗号化メッセージを使用して生成されてもよく、1つ以上の特別に構成されたルールおよび/またはアルゴリズムを使用して生成される鍵であってもよい。例えばメッセージ認証コードは、パディング等の1つ以上の暗号化/難読化法を使用して生成されてもよい。いくつかの実施形態において、メッセージ認証コードは暗号鍵を使用して生成されてもよい。
ステップ908において、取引管理サーバ102の送信部506は移動装置104へ複合データメッセージを送信してもよい。相互認証が実行中であってもよい実施形態において、複合データメッセージは遠隔通知サービスを介して移動装置104へ送信される遠隔通知サービスメッセージであってもよい。複合データメッセージはステップ910において移動装置104の受信部202により受信されてもよく、メッセージ認証コードおよび暗号化メッセージを含んでもよい。いくつかの例において、複合データメッセージは、MPA404が検証するために認識している方法を使用して生成された識別子等の更なる識別子を更に含んでもよい。相互認証が既に実行されている場合等のいくつかの例において、複合データメッセージはメッセージカウンタを更に含んでもよい。
ステップ912において、処理部204は参照認証コードを生成してもよい。参照認証コードは、受信した暗号化メッセージを使用して生成されてもよく、メッセージ認証コードが信頼できる送信元(例えば、取引管理サーバ102)により生成される場合に生成された参照認証コードがメッセージ認証コードに対応するように、取引管理サーバ102がメッセージ認証コードを生成するために使用したのと同一のルールおよびアルゴリズムを使用して生成されてもよい。メッセージ認証コードが暗号鍵を使用して生成されてもよい実施形態において、処理部204はメモリ212に格納された暗号鍵414または他の適切な暗号鍵を使用して参照認証コードを生成してもよい。
ステップ914において、処理部204は、生成された参照認証コードと比較することにより、受信した複合データメッセージに含まれるメッセージ認証コードを検証してもよい。メッセージカウンタおよびメッセージ認証コードの双方が確認された場合、複合データメッセージは取引管理サーバ102から送信されたため信頼できる(例えば、本物である)と判定されてもよい。複合データメッセージがメッセージ識別子を含んでもよい場合、処理部204は、メッセージ識別子を生成して比較するためにMPA404が認識している処理を使用してメッセージ識別子を生成することにより、メッセージ識別子を更に検証してもよい。複合データメッセージがメッセージカウンタを含んでもよい実施形態において、処理部204は、MPA404または支払いプロファイル502等の移動装置104に格納された参照カウンタを用いて、受信した複合データメッセージに含まれるメッセージカウンタを検証してもよい。
ステップ916において、処理部204は受信した複合データメッセージに含まれる暗号化メッセージを復号化してもよい。暗号化メッセージは、メモリ212(例えば、暗号アプリケーション410またはMPA404)またはローカル暗号化データベース(例えば、高度な記憶鍵を使用して暗号化された)に格納された鍵等の鍵を使用して復号化されてもよく、あるいは他の適切な復号化法により復号化されてもよい。ステップ918において、処理部204は、暗号化メッセージから復号化されたデータに基づいて1つ以上の適切な動作を実行してもよい。図9に示す例において、移動装置104は、暗号化メッセージ含まれて処理部204により復号化されたセッション識別子等を使用して、取引管理サーバ102との相互認証を実行してもよい。ステップ920において、取引管理サーバ102はセッション識別子を受信し、移動装置104との相互認証に必要な何らかの更なる動作を実行してもよい。相互認証が既に実行されている場合、メッセージは、支払証明書404、使い捨て鍵406、MPA404に対するプログラム命令等の本明細書中で開示される機能を実行するのに適した他の情報を含んでもよい。
いくつかの実施形態において、移動装置104は返信メッセージを生成して取引管理サーバ102に提出するように構成されてもよい(例えば、MPA404を介して)。いくつかの例において、返信メッセージは、上述したように復号化メッセージにおいて命令されて実行された動作に応答して生成されたデータを含んでもよい。例えば返信メッセージは、支払証明書304または使い捨て鍵306の有効な受信および格納を示してもよい。他の例において、返信メッセージは複合データメッセージの受信および検証の通知であってもよい。相互認証が最初に実行されている場合、返信メッセージは相互認証を実行するために使用されるセッション識別子を含んでもよい。
図10Aおよび図10Bは、移動装置104が返信メッセージを生成して送信し且つ取引管理サーバ102がそれを検証する処理を示す。
ステップ1002において、移動装置104の処理部204は受信メッセージを生成してもよい。受信メッセージはMPA404に格納されたプログラムコード406に基づいて生成されてもよく、取引管理サーバ102から受信して復号化された複合データメッセージにおいて指示されて実行された動作に更に基づいてもよい。例えば受信メッセージは、支払証明書304の正常な受信および格納の通知を含んでもよい。ステップ1004において、処理部204は受信カウンタを増分してもよい。受信カウンタは、取引管理サーバ102へ送信された受信メッセージの数を示すカウンタであってもよい。受信カウンタはMPA404等のメモリ212に格納されてもよく、あるいは高度な記憶鍵を使用して暗号化されたデータベースに格納されてもよい。ステップ1004はオプションのステップであってもよく、カウンタがデータメッセージの検証に使用される場合のみ使用されてもよいことが当業者には明らかだろう。
ステップ1006において、処理部204は受信メッセージを暗号化してもよい。受信メッセージは、暗号アプリケーション410に格納された暗号鍵414を使用して暗号化されてもよい。あるいは、暗号鍵はMPA404またはローカルに暗号化されたデータベースに格納されてもよい。受信メッセージを暗号化するために使用される暗号鍵は鍵対の一部である秘密鍵であってもよく、取引管理サーバ102が対応する公開鍵を有する。ステップ1008において、処理部204は、暗号化された受信メッセージに基づいて受信認証コードを生成してもよい。いくつかの実施形態において、受信認証コードは、上述した図9のステップ912で示した参照認証コードを生成するために使用されたのと同一のルール、アルゴリズムおよび/または処理を使用して生成されてもよい。
ステップ1010において、移動装置104の送信部206は取引管理サーバ102へ受信通知メッセージを送信してもよい。受信通知メッセージは取引管理サーバ102の受信部502により受信されてもよく、少なくとも受信認証コード、暗号化された受信メッセージおよび受信カウンタを含んでもよい。いくつかの実施形態において、受信通知メッセージは、移動装置104と関連付けられたセルラネットワーク等の移動体通信ネットワークを使用して取引管理サーバ102へ送信されてもよい。
ステップ1014において、取引管理サーバ102の処理部504は確認カウンタを増分してもよい。確認カウンタは移動装置104から受信したメッセージの数を示し、移動装置104から受信したメッセージの検証に使用されてもよい。確認カウンタは、取引管理サーバ102のメモリ510または他の適切なデータ記憶装置に格納されてもよい。例えばいくつかの実施形態において、確認カウンタは移動装置104に関連する口座プロファイル602に格納されてもよい。1つの例において、各口座プロファイル602は、取引管理サーバ102と対応する取引口座に関連する移動装置104との間で送信されるメッセージに対して使用される確認カウンタ(および/または例えばメッセージカウンタ)を含んでもよい。ステップ1014はオプションのステップであってもよく、カウンタが返信メッセージの検証に使用されなくてもよい場合は実行されなくてもよいことが当業者には明らかだろう。
ステップ1016において、処理部504は確認認証コードを生成してもよい。確認認証コードは、受信通知メッセージに含まれる暗号化された受信メッセージに基づいて生成されてもよく、メッセージ認証コードを生成するために使用されたのと同一のルール、アルゴリズムおよび/または処理を使用して生成されてもよい。ステップ1018において、処理部504は、確認カウンタと比較することにより、受信通知メッセージに含まれる受信カウンタを検証してもよい。ステップ1020において、処理部504は、メッセージが許可された移動装置104から送信されたことを保証するために、メッセージ認証コードと比較することにより受信認証コードを検証してもよい。
カウンタ(例えば、該当する場合)および認証コードが検証されると、ステップ1022において、処理部504は受信した受信通知メッセージに含まれる暗号化メッセージを復号化してもよい。暗号化メッセージは、格納された暗号鍵または他の適切な復号化法を使用して復号化されてもよい。暗号化メッセージは、移動装置104により生成された受信メッセージを取得するために復号化されてもよい。ステップ1024において、処理部504は、受信メッセージに含まれるデータに基づいて、必要に応じて何らかの適切な動作を実行してもよい。例えば受信メッセージが使い捨て鍵306の正常な受信および格納の指示を含む場合、処理部204は対応する口座プロファイル602内の対応する使い捨て鍵604を有効にしてもよい。
データメッセージの検証
図11は、移動装置104により取引管理サーバ102から受信されたデータメッセージを検証する処理1100を示す。
ステップ1102において、移動装置104の処理部204は、暗号鍵、認証生成鍵、並びにそれらを使用および適用するためのルールおよび/またはアルゴリズムをメモリ212または高度な記憶鍵を使用して暗号化されたローカルに暗号化された記憶装置等のローカル記憶装置に格納してもよい。ステップ1104において、移動装置104の受信部202は取引管理サーバ102からデータメッセージを受信してもよい。いくつかの実施形態において、データメッセージは、図9に示して上述した処理等を使用して2つの装置間の相互認証を確立した後に取引管理サーバ102から受信されてもよい。データメッセージは、少なくともメッセージカウンタ、メッセージ認証コードおよび暗号化メッセージを含んでもよい。
ステップ1106において、処理部204は参照カウンタを増分してもよい。参照カウンタはメモリ212または他のローカル記憶装置に格納されてもよく、取引管理サーバ102から受信したメッセージの数を示すために使用されてもよい。いくつかの例において、参照カウンタはアルゴリズムを使用して増分されてもよく、その場合、参照カウンタは連続番号を使用して増分されるのではなく、移動装置104(例えばMPA404を介して)および取引管理サーバ102が認識しているアルゴリズムを介して増分されてもよい。
ステップ1108において、処理部204は受信したデータメッセージに含まれるメッセージカウンタを検証してもよい。メッセージカウンタの検証は、メッセージカウンタと増分後の参照カウンタの値とを比較することを含んでもよい。検証が失敗した場合、これはデータメッセージの送信元が取引管理サーバ102ではないことまたは信頼できない送信元であることを示してもよい。検証が失敗した場合、ステップ1110において、処理部204は、データメッセージの受信および/または検証の失敗に関連する1つ以上の適切な動作を実行してもよい。例えば処理部204はデータメッセージを廃棄してもよく、取引管理サーバ102に通知してもよく、関連する支払いプロファイル302をロックしてもよく、あるいは当業者には明らかだろう他の動作を実行してもよい。
メッセージカウンタの検証が成功した場合、処理1100はステップ1112へ進んでもよく、暗号化メッセージがパディングされてもよい。暗号化メッセージのパディングは、暗号化メッセージまたはそれに関連するデータに値を追加することを含んでもよい。パディングは、相互に認識している移動装置104および取引管理サーバ102により実行される必要があり且つ無許可のエンティティが認証を行わずにデータメッセージを正常に送信または受信するためには再現する必要のある別の機能であってもよいため、メッセージ検証処理のセキュリティを強化するために使用されてもよい。ステップ1112はオプションのステップであってもよいことが当業者には明らかだろう。いくつかの実施形態において、ステップ1112は処理1110のいくつかの例において適用されてもよい。例えば暗号化メッセージは、参照カウンタが特定の値増分された時にパディングされてもよい。
ステップ1114において、処理部204は参照認証コードを生成してもよい。参照認証コードは、ステップ1102で格納されたルールまたはアルゴリズム等の1つ以上のルールまたはアルゴリズムを使用して、暗号化メッセージ(例えば、該当する場合にパディングされた)に基づいて生成されてもよい。いくつかの実施形態において、参照認証コードは鍵であってもよく、あるいは暗号化メッセージに鍵を適用することにより生成される値であってもよい。ステップ1116において、処理部204はRNSメッセージにおいて受信したメッセージ認証コードを検証してもよい。受信したデータメッセージが許可された送信元(例えば、取引管理サーバ102)から送信されたかを識別する別の方法として、メッセージ認証コードの検証は、メッセージ認証コードと生成された参照認証コードとを比較することを含んでもよい。
メッセージ認証コードの検証が失敗した場合、処理1100はステップ1110へ進んでもよく、失敗処理が実行される。メッセージ認証コードの検証が成功した場合、ステップ1118において、受信したデータメッセージに含まれる暗号化メッセージが処理部204により復号化されてもよい。メッセージは、ステップ1102で移動装置104に格納されたもの等の1つ以上の暗号/復号化鍵、ルールおよび/またはアルゴリズムを使用して復号化されてもよい。例えばメモリ212の暗号アプリケーション410に格納された暗号鍵414が暗号化メッセージを復号化するために使用されてもよい。ステップ1120において、処理部204は、復号化メッセージの内容に基づいて1つ以上の動作を適宜実行してもよい。例えば復号化メッセージが使い捨て鍵306を含む場合、使い捨て鍵306は、高度な記憶鍵を使用して暗号化されてもよいカードデータベース208の適切な支払いプロファイル302に格納されてもよい。
高度な記憶鍵
図12は、データを支払いプロファイル302等の移動装置104にセキュリティ保護して格納するための高度な記憶鍵の移動装置104による生成および使用と、セキュアエレメントを使用せずに移動装置104においてセキュリティ保護されて格納され且つアクセスされてもよい他のデータとを示す。
移動装置104のメモリ212に格納された装置情報402は、図12において装置情報1202a、1202bおよび1202cとして示す3つ以上の装置情報1202を含んでもよい。各装置情報1202は移動装置104と関連付けられてもよい。いくつかの例において、各装置情報1202は移動装置104に特有であってもよい。他の例において、装置情報1202のうちの1つ以上は移動装置104に特有でなくてもよい(例えば、モデル番号)が、3つの装置情報1202をまとめた場合に移動装置104に特有であってもよい(例えば、一意の組み合わせ)。装置情報1202は、移動装置104の使用期間中に変化しないデータであってもよい。
移動装置104の処理部204は、3つの装置情報1202a、1202b、1202cに基づいて移動装置の指紋1204を生成してもよい。移動装置の指紋1204は、移動装置104に特有の値であってもよく、MPA404のプログラムコード406等に含まれるメモリ212に格納された1つ以上のルールまたはアルゴリズムを使用して生成されてもよい。移動装置の指紋1204は、例えば数値、16進数、文字列等であってもよい。
処理部204は、移動装置の指紋1204を使用して多様値1208を生成するように更に構成されてもよい。多様値は、移動装置の指紋1204と、MPA404のインスタンス識別子408と、乱数値1206とを組み合わせることにより生成されてもよい。乱数値1206は、処理部204により生成される乱数または擬似乱数であってもよい。いくつかの例において、乱数値1206は、メモリ212に格納された1つ以上のルールまたはアルゴリズムに従って生成されてもよい。移動装置の指紋1204、インスタンス識別子408および乱数値1206を組み合わせることは、MPA404のプログラムコード406等に格納された1つ以上のルールまたはアルゴリズムを使用して更に実行されてもよい。多様値を生成するためにインスタンス識別408を使用することにより、MPA404を複数インストールしてもMPA404の他のインスタンスにより格納されたデータにアクセスできないように、MPA404のインスタンスと関連付けられたデータをセキュリティ保護して格納できるようになってもよい。
その後、処理部204は、暗号アプリケーション410に格納された暗号鍵414を多様値1208に適用することにより、高度な記憶鍵1210を生成してもよい。いくつかの例において、高度な記憶鍵1210は、暗号鍵414を使用して多様値1208を復号化することにより生成されてもよい。他の例において、高度な記憶鍵1210は、暗号鍵414を使用して多様値1208を暗号化した結果得られる値であってもよい。いくつかの実施形態において、高度な記憶鍵1210は、暗号鍵414および多様値1208を使用してホワイトボックス暗号化を実行した結果生成されてもよい。
高度な記憶鍵1210が生成されると、処理部204は高度な記憶鍵1210を使用してローカルデータベース1210を暗号化してもよい。ローカルデータベース1210は、例えばカードデータベース208、1つ以上の支払いプロファイル302、メモリ212の一部、あるいは他の適切なデータソースで構成されてもよい。いくつかの例において、ローカルデータベース1210は、カードデータベース208等の移動装置104内の別のデータベースの一部であってもよい。例えばカードデータベース208は、MPA404に関連する支払いプロファイル302を格納するためのMPA404の各インスタンスに対する別個のローカルデータベース1212等の複数のローカルデータベース1212を含んでもよい。従って、結果として得られる暗号化されたローカルデータベース1214は、インスタンス識別値408を含むMPA404の特定のインスタンス以外の移動装置104の内部または外部の他のあらゆるアプリケーションプログラムがアクセスできないようにセキュリティ保護してデータを格納してもよい。従って、暗号化されたローカルデータベース1214は、支払証明書304、使い捨て鍵306および他の口座データを格納するのに理想的であってもよく、セキュアエレメントを使用せずに機密口座情報をセキュリティ保護して格納してもよい。
いくつかの実施形態において、記憶鍵は、暗号化されたローカルデータベース1214に格納するために移動装置104に暗号化データを提供するために取引管理サーバ102により更に使用されてもよい。例えば移動装置104の送信部206は、生成された乱数値1206を取引管理サーバ102へ送信してもよい。いくつかの例において、インスタンス識別子408が取引管理サーバ102へ更に送信されてもよく、あるいはMPA404の登録時等に取引管理サーバ102が予め有していてもよい。その後、取引管理サーバ102は、高度な記憶鍵1210自体を生成し、移動装置104に提供される支払証明書304、使い捨て鍵306等のデータを高度な記憶鍵1210を使用して暗号化し、移動装置104へ暗号化データを送信してもよい。移動装置104は、既に暗号化されたデータを暗号化されたローカルデータベース1214に格納してもよい。
支払取引において支払証明書を生成する第1の例示的な方法
図13は、セキュアエレメントを有さない移動装置104において支払証明書をセキュリティ保護して使用するために2つのアプリケーション暗号を使用することを含む支払取引において支払証明書を生成する方法1300を示す。
ステップ1302において、少なくとも使い捨て鍵(例えば、使い捨て鍵306)が取引口座に関連付けられたメモリ(例えば、支払いプロファイル302)に格納されてもよい。いくつかの実施形態において、メモリ302は移動通信装置(例えば移動装置104)内の非セキュアエレメントメモリであってもよい。ステップ1304において、個人識別番号(PIN)が受信装置(例えば、受信部202および/または入力部214)により受信されてもよい。
ステップ1306において、第1のセッション鍵(例えば、第1のセッション鍵308)が処理装置(例えば、処理部204)により識別されてもよい。ステップ1308において、第2のセッション鍵(例えば、第2のセッション鍵310)が少なくとも格納された使い捨て鍵306および受信したPINに基づいて処理装置204により生成されてもよい。
ステップ1310において、第1のアプリケーション暗号が少なくとも第1のセッション鍵308に基づいて処理装置204により生成されてもよい。ステップ1312において、第2のアプリケーション暗号が少なくとも第2のセッション鍵310に基づいて処理装置204により生成されてもよい。
ステップ1314において、少なくとも第1のアプリケーション暗号および第2のアプリケーション暗号が支払取引において使用するために送信装置(例えば送信部206)により送信されてもよい。いくつかの実施形態において、第1のアプリケーション暗号および第2のアプリケーション暗号はPOS装置(例えば、POS110)へ送信されてもよい。一実施形態において、方法1300は取引口座に関連するカードマスタ鍵をメモリ302に格納することを更に含んでもよく、その場合、第1のセッション鍵308を識別することは、少なくとも格納されたカードマスタ鍵に基づいて処理装置204により第1のセッション鍵308を生成することを含む。
いくつかの実施形態において、方法1300は、アプリケーション取引カウンタ(例えば、アプリケーション取引カウンタ312)をメモリ302に格納することを更に含んでもよく、その場合、第1のセッション鍵308を識別することは、少なくとも格納されたアプリケーション取引カウンタ312に基づいて処理装置204により第1のセッション鍵308を生成することを含む。一実施形態において、方法1300は、第2のセッション鍵310を生成する前に、受信したPINを処理装置204により検証することを更に含んでもよい。更なる一実施形態において、処理装置204は、受信したPINの検証が失敗した場合に無効な第2のセッション鍵310を生成するように構成されてもよい。
支払取引において支払証明書を生成する第2の例示的な方法
図14は、セキュアエレメントを使用せずに移動装置104により生成された支払証明書の2つのアプリケーション暗号の検証を使用することを含む支払取引において支払証明書を生成する方法1400を示す。
ステップ1402において、少なくともカードマスタ鍵(例えば、第1のカードマスタ鍵612)が取引口座に関連付けられたメモリ(例えば、口座プロファイル602)に格納されてもよい。ステップ1404において、第1のセッション鍵(例えば、第1のセッション鍵606)が少なくとも格納されたカードマスタ鍵612に基づいて処理装置(例えば、処理装置504)により生成されてもよい。ステップ1406において、第2のセッション鍵(例えば、第2のセッション鍵608)が処理装置504により生成されてもよい。
ステップ1408において、第1のアプリケーション暗号が少なくとも第1のセッション鍵606に基づいて処理装置504により生成されてもよい。ステップ1410において、第2のアプリケーション暗号が少なくとも第2のセッション鍵608に基づいて処理装置504により生成されてもよい。ステップ1412において、少なくとも第1のアプリケーション暗号および第2のアプリケーション暗号が支払取引において使用するために送信装置(例えば、送信部506)により送信されてもよい。
一実施形態において、方法1400は、取引口座に関連する取引口座シーケンス番号をメモリ602に格納することを更に含んでもよく、その場合、第1のセッション鍵は格納された取引口座シーケンス番号に更に基づく。いくつかの実施形態において、方法1400は、取引口座に関連する第2のカードマスタ鍵(例えば、第2のカードマスタ鍵614)をメモリ602に格納することを更に含んでもよく、その場合、第2のセッション鍵608は少なくとも格納された第2のカードマスタ鍵614に基づく。
一実施形態において、方法1400は、第1の対応するアプリケーション暗号および第2の対応するアプリケーション暗号を受信装置(例えば、受信部502)により受信することと、処理装置により(i)受信した第1の対応するアプリケーション暗号を生成された第1のアプリケーション暗号に基づいて検証し且つ(ii)受信した第2の対応するアプリケーション暗号を生成された第2のアプリケーション暗号に基づいて検証することと、支払取引において使用するために検証の結果を送信装置506により送信することとを更に含んでもよい。更なる一実施形態において、第1の対応するアプリケーション暗号および第2の対応するアプリケーション暗号はPOS装置(例えば、POS110)から受信されてもよい。別の更なる実施形態において、検証の結果は取引口座に関連する金融機関(例えば、イシュア106)へ送信されてもよい。
データメッセージを処理する例示的な方法
図15は、セキュアエレメントを使用せずに移動装置104により受信および検証することを含む遠隔通知サービスを介して受信された遠隔通知メッセージ等のデータメッセージを処理する方法1500を示す。
ステップ1502において、少なくとも暗号鍵がメモリ(例えば、メモリ212)に格納されてもよい。いくつかの実施形態において、メモリ212は、移動通信装置(例えば移動装置104)内の非セキュアエレメントメモリであってもよい。ステップ1504において、データメッセージが受信装置(例えば、受信部202)により受信され、その場合、データメッセージは少なくとも暗号化メッセージおよびメッセージ認証コードを含んでもよく、メッセージ認証コードは暗号化メッセージの少なくとも一部分を使用して生成される。いくつかの実施形態において、データメッセージは遠隔通知サービスを介して受信される遠隔通知サービスメッセージであってもよい。
ステップ1506において、受信したデータメッセージに含まれる暗号化メッセージの少なくとも一部分を使用して、参照認証コードが処理装置(例えば、処理部204)により生成されてもよい。一実施形態において、メモリ212は1つ以上の認証コード生成ルールを更に含んでもよく、参照認証コードは、受信したデータメッセージに含まれる暗号メッセージの一部分に対して格納された1つ以上の認証コード生成ルールを適用することに基づいて生成されてもよい。ステップ1508において、受信したデータメッセージは、受信したデータメッセージに含まれるメッセージ認証コードを生成された参照認証コードに対して検査(チェック)することに基づいて処理装置204により検証されてもよい。いくつかの実施形態において、メモリは参照カウンタを更に含んでもよく、受信したデータメッセージはメッセージカウンタを更に含んでもよく、受信したデータメッセージは、受信したデータメッセージに含まれるメッセージカウンタを格納された参照カウンタに対してチェックすることに基づいて処理装置204により更に検証されてもよい。
ステップ1510において、データメッセージに含まれる暗号化メッセージが、格納された暗号鍵を使用して処理装置204により復号化され、復号化メッセージが取得されてもよい。一実施形態において、復号化メッセージは、支払取引において使用されるデジタル化されたカードプロファイル(例えば、支払証明書304)および使い捨て鍵(例えば、使い捨て鍵306)のうちの少なくとも1つを含んでもよい。いくつかの実施形態において、方法1500は、1つ以上のデータフォーマッティングルール(データフォーマット化ルール)に基づいて復号化メッセージのデータフォーマットを処理装置204によりチェックすることを更に含んでもよい。
一実施形態において、方法1500は、受信したデータメッセージに応答する受信通知を送信装置(例えば、送信部206)により送信することを更に含んでもよい。更なる一実施形態において、方法1500は、復号化メッセージに基づいて1つ以上の動作を処理装置204により実行することと、1つ以上の動作を実行した結果としてまたは実行された1つ以上の動作に基づく返信メッセージを処理装置204により生成することと、暗号化された返信メッセージを取得するために、生成された返信メッセージを格納された暗号鍵を使用して処理装置204により暗号化することと、暗号化された返信メッセージの少なくとも一部分を使用して返信認証コードを処理装置204により生成することとを更に含んでもよく、その場合、送信される受信通知は暗号化された返信メッセージおよび返信認証コードを含む。更に別の一実施形態において、メモリ212は返信カウンタを更に含んでもよく、送信される受信通知は返信カウンタを更に含んでもよい。
いくつかの実施形態において、方法1500は、受信したデータメッセージに含まれる暗号化メッセージをパディング鍵を使用して処理装置204によりパディングすることを更に含んでもよく、その場合、参照認証コードを生成するために使用される暗号化メッセージの一部分は、パディングされた暗号化メッセージである。更なる一実施形態において、パディング鍵は暗号鍵であってもよい。別の更なる実施形態において、メモリ212は認証コードパディングアルゴリズムを更に含んでもよく、パディング鍵を使用して暗号化メッセージをパディングすることは、認証コードパディングアルゴリズムにパディング鍵を適用することに基づいて暗号化メッセージをパディングすることを含んでもよい。
高度な記憶鍵を作成する例示的な方法
図16は、セキュアエレメントを使用せずに移動装置104においてローカルデータをセキュリティ保護して暗号化し且つ格納するための高度な記憶鍵を作成する方法600を示す。
ステップ1602において、少なくとも移動通信装置(例えば、移動装置104)に関連する装置情報(例えば、装置情報402)、第1のアプリケーションプログラム(例えば、モバイル支払いアプリケーション404)に関連するプログラムコード(例えば、プログラムコード406)、並びに第2のアプリケーションプログラム(例えば、暗号アプリケーション410)に関連するプログラムコード(例えば、プログラムコード412)が移動通信装置104のメモリ(例えば、メモリ212)に格納されてもよく、その場合、第1のアプリケーションプログラム404に関連するプログラムコード406は少なくともインスタンス識別子(例えば、インスタンス識別子408)を含み、第2のアプリケーションプログラム410に関連するプログラムコード412は少なくとも第1の鍵(例えば、暗号鍵414)を含む。
いくつかの実施形態において、装置情報402は移動通信装置104に関連する1つ以上の一意の識別子を含んでもよい。一実施形態において、インスタンス識別子408は、第1のアプリケーションプログラム404のインスタンスに特有であってもよい。いくつかの実施形態において、第2のアプリケーションプログラム410は、第1の鍵を使用してホワイトボックス暗号化を実行するように構成されてもよい。一実施形態において、第1の鍵は動的鍵であってもよい。いくつかの実施形態において、第2のアプリケーションプログラム410に関連するプログラムコード412は、第1のアプリケーションプログラム404に関連するプログラムコード406に含まれてもよい。更なる実施形態において、第2のアプリケーションプログラム410は第1のアプリケーションプログラム404の実行可能な機能であってもよい。
ステップ1604において、移動通信装置104に関連する装置の指紋(例えば、移動装置の指紋1204)が、第1のアプリケーションプログラム404に関連するプログラムコード406を実行することにより、格納された装置情報402に基づいて処理装置(例えば、処理部204)により生成されてもよい。ステップ1606において、乱数値(例えば、乱数値1206)が、第1のアプリケーションプログラム404に関連するプログラムコード406を実行することにより処理装置204により生成されてもよい。いくつかの実施形態において、乱数値1206は乱数または擬似乱数であってもよい。
ステップ1608において、多様値(例えば多様値1208)が、少なくとも生成された装置の指紋1204と、生成された乱数値1206と、第1のアプリケーションプログラム404に関連するプログラムコード406に含まれるインスタンス識別子408とに基づいて処理装置204により作成されてもよい。ステップ1610において、作成された多様値1208は、第2のアプリケーションプログラム410に関連するプログラムコード412を実行することにより、第2のアプリケーションプログラム410に関連するプログラムコード412に格納された第1の鍵を使用して処理装置204により復号化されて、記憶鍵(例えば、高度な記憶鍵1210)が取得されてもよい。
いくつかの実施形態において、方法1600は、移動通信装置104のローカルデータベース(例えば、ローカルデータベース1212)に保護データを格納することと、ローカルデータベース1212に格納された保護データを記憶鍵1210を使用して処理装置204により暗号化することとを更に含んでもよい。一実施形態において、方法1600は、第1のアプリケーションプログラム404に関連するプログラムデータをメモリ212に格納することと、生成された乱数値1206を第1のアプリケーションプログラム404に関連するプログラムデータに格納することとを更に含んでもよい。
一実施形態において、方法1600は、少なくとも乱数値1206を送信装置(例えば、送信部206)により送信することと、各々が記憶鍵1210を使用して暗号化された1つ以上の暗号化パラメータを受信装置(例えば、受信装置202)により受信することと、受信した1つ以上の暗号化パラメータを移動通信装置104のローカルデータベース1212に格納することとを更に含んでもよい。更なる一実施形態において、記憶鍵1210は第3者(例えば、取引管理サーバ102)へ送信されてもよく、1つ以上の暗号化パラメータは第3者102から受信されてもよい。いくつかの更なる実施形態において、インスタンス識別子408は送信装置206により送信されてもよい。
コンピュータシステムのアーキテクチャ
図17は、本発明の実施形態またはその一部がコンピュータ可読コードとして実現されてもよいコンピュータシステム1700を示す。例えば図1の取引管理サーバ102および移動装置104は、ハードウェア、ソフトウェア、ファームウェア、命令が格納された非一時的なコンピュータ可読媒体またはそれらの組み合わせを使用してコンピュータシステム1700において実現されてもよく、1つ以上のコンピュータシステムまたは他の処理システムにおいて実現されてもよい。ハードウェア、ソフトウェアまたはそれらの何らかの組み合わせは、図7、図8、図9A、図9B、図10A、図10B、図11および図13〜図16の方法を実現するために使用されるモジュールおよび構成要素を実現してもよい。
プログラム可能論理が使用される場合、そのような論理は市販の処理プラットフォームまたは専用装置において実行してもよい。本発明の実施形態は、マルチコアマルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、分散機能を用いてリンクされるかまたはクラスタ化されたコンピュータ、並びに事実上あらゆる装置に埋め込まれてもよいパーベイシブまたは小型コンピュータを含む種々のコンピュータシステム構成を用いて実施可能であることが当業者には理解されるだろう。例えば少なくとも1つのプロセッサ装置およびメモリが上述した実施形態を実現するために使用されてもよい。
本明細書中で説明するプロセッサユニットまたは装置は、単一のプロセッサ、複数のプロセッサまたはそれらの組み合わせであってもよい。プロセッサ装置は1つ以上のプロセッサ「コア」を有してもよい。本明細書中で説明する用語「コンピュータプログラム媒体」、「非一時的なコンピュータ可読媒体」および「コンピュータ使用可能媒体」は、取外し可能記憶装置1718、取外し可能記憶装置1722およびハードディスクドライブ1712にインストールされたハードディスク等の有形媒体を一般に示すために使用される。
本例のコンピュータシステム1700に関して、本発明の種々の実施形態を説明する。本説明を読むことにより、他のコンピュータシステムおよび/またはコンピュータアーキテクチャを使用して本発明を実現する方法が当業者には明らかになるだろう。動作は一連の処理として説明されてもよいが、動作のうちのいくつかは実際は並行して、同時におよび/または分散環境で実行されてもよく、単一のプロセッサマシンまたはマルチプロセッサマシンがアクセスするためにローカルにまたはリモートに格納されたプログラムコードを用いて実行されてもよい。更に、いくつかの実施形態において、動作の順序は、本発明の主旨から逸脱することなく並べ替えられてもよい。
プロセッサ装置1704は専用または汎用プロセッサ装置であってもよい。プロセッサ装置1704は、バス、メッセージキュー、ネットワーク、マルチコアメッセージパッシングスキーム等の通信インフラストラクチャ1706に接続されてもよい。ネットワークは、本明細書中で開示される機能を実行するのに適したあらゆるネットワークであってもよく、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク(例えば、WiFi)、移動体通信ネットワーク、衛星ネットワーク、インターネット、光ファイバ、同軸ケーブル、赤外線、無線周波数(RF)またはそれらの何らかの組み合わせを含んでもよい。他の適切なネットワークの種類および構成は当業者には明らかだろう。コンピュータシステム1700はメインメモリ1708(例えば、ランダムアクセスメモリ、読み出し専用メモリ等)を更に含んでもよく、補助メモリ1710を更に含んでもよい。補助メモリ1710は、ハードディスクドライブ1712と、フロッピディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリ等の取外し可能記憶装置ドライブ1714とを含んでもよい。
取外し可能記憶装置ドライブ1714は、既知の方法で取外し可能記憶装置1718との間で読み出しおよび/または書き込みを行ってもよい。取外し可能記憶装置1718は、取外し可能記憶装置ドライブ1714により読み出され且つ書き込まれてもよい取外し可能記憶媒体を含んでもよい。例えば取外し可能記憶装置ドライブ1714がフロッピディスクドライブまたはユニバーサルシリアルバスポートである場合、取り外し可能記憶装置1718はそれぞれフロッピディスクまたはポータブルフラッシュドライブであってもよい。一実施形態において、取り外し可能記憶装置1718は非一時的なコンピュータ可読記録媒体であってもよい。
いくつかの実施形態において、補助メモリ1710は、コンピュータプログラムまたは他の命令がコンピュータシステム1700にロードされるようにする例えば取外し可能記憶装置1722およびインタフェース1720である別の手段を含んでもよい。当業者には明らかなように、そのような手段の例は、プログラムカートリッジおよびカートリッジインタフェース(例えば、ビデオゲームシステムにおいて見られる)、取外し可能メモリチップ(例えば、EEPROM、PROM等)および関連するソケット、並びに他の取外し可能記憶装置1722およびインタフェース1720を含んでもよい。
コンピュータシステム1700(例えば、メインメモリ1708および/または補助メモリ1710)に格納されたデータは、光記憶装置(例えば、コンパクトディスク、デジタル多目的ディスク、ブルーレイディスク等)または磁気テープ記憶装置(例えば、ハードディスクドライブ)等の何らかの種類の適切なコンピュータ可読媒体に格納されてもよい。データは、関係データベース、構造化照会言語(SQL)データベース、分散データベース、オブジェクトデータベース等の何らかの種類の適切なデータベース構成において構成されてもよい。適切な構成および記憶装置の種類は当業者には明らかだろう。
コンピュータシステム1700は通信インタフェース1724を更に含んでもよい。通信インタフェース1724は、ソフトウェアおよびデータがコンピュータシステム1700と外部装置との間で転送されるようにするように構成されてもよい。通信インタフェース1724の例は、モデム、ネットワークインタフェース(例えば、イーサネットカード)、通信ポート、PCMCIAスロット/カード等を含んでもよい。通信インタフェース1724を介して転送されるソフトウェアおよびデータは、電気信号、電磁信号、光信号または当業者には明らかだろう他の信号であってもよい信号の形態であってもよい。信号は、信号を搬送するように構成されてもよく且つワイヤ、ケーブル、光ファイバ、電話線、携帯電話リンク、無線周波数リンク等を使用して実現されてもよい通信パス1726を介して移動してもよい。
コンピュータシステム1700はディスプレイインタフェース1702を更に含んでもよい。ディスプレイインタフェース1702は、データがコンピュータシステム1700と外部ディスプレイ1730との間で転送されるようにするように構成されてもよい。ディスプレイインタフェース1702の例は、高精細度マルチメディアインタフェース(HDMI)、デジタルビジュアルインタフェース(DVI)、ビデオグラフィックアレイ(VGA)等を含んでもよい。ディスプレイ1730は、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、容量性タッチディスプレイ、薄膜トランジスタ(TFT)ディスプレイ等を含むコンピュータシステム1700のディスプレイインタフェース1702を介して送信されたデータを表示するあらゆる適切な種類のディスプレイであってもよい。
コンピュータプログラム媒体およびコンピュータ使用可能媒体は、メモリ半導体(例えば、DRAM等)であってもよいメインメモリ1708および補助メモリ1710等のメモリを示してもよい。それらのコンピュータプログラム製品は、コンピュータシステム1700にソフトウェアを提供する手段であってもよい。コンピュータプログラム(例えば、コンピュータ制御論理)は、メインメモリ1708および/または補助メモリ1710に格納されてもよい。コンピュータプログラムは、通信インタフェース1724を介して更に受信されてもよい。そのようなコンピュータプログラムは、実行される場合、本明細書中で説明する本方法をコンピュータシステム1700が実行できるようにしてもよい。特にコンピュータプログラムは、実行される場合、本明細書中で説明する図7、図8、図9A、図9B、図10A、図10B、図11および図13〜図16により示す方法をプロセッサ装置1704が実現できるようにしてもよい。従って、そのようなコンピュータプログラムはコンピュータシステム1700の制御器を表してもよい。本発明がソフトウェアを使用して実現される場合、ソフトウェアはコンピュータプログラム製品に格納され、取外し可能記憶装置ドライブ1714、インタフェース1720およびハードディスクドライブ1712を使用してまたは通信インタフェース1724を使用してコンピュータシステム1700にロードされてもよい。
本発明と一致する技術は、他の特徴の中でも特に、遠隔通知サービスメッセージを送信し且つ検証することと高度な記憶鍵を使用してデータをセキュリティ保護して格納することとを含むセキュアエレメントを使用せずに移動装置を使用して支払取引を処理するシステムおよび方法を提供する。開示されるシステムおよび方法の種々の例示的な実施形態を上述したが、それらは限定するためでなく説明するために提示されたにすぎないことが理解されるべきである。これは網羅的でなく、開示される正確な形式に本発明を限定するものでない。変更および変形が上記の教示を鑑みて可能であり、あるいは本発明の範囲から逸脱せずに本発明を実施することから取得されてもよい。