特許第6483243号(P6483243)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マジックキューブ, インコーポレイテッドの特許一覧

<>
  • 特許6483243-トランザクション承認のためのシステム 図000002
  • 特許6483243-トランザクション承認のためのシステム 図000003
  • 特許6483243-トランザクション承認のためのシステム 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6483243
(24)【登録日】2019年2月22日
(45)【発行日】2019年3月13日
(54)【発明の名称】トランザクション承認のためのシステム
(51)【国際特許分類】
   G06F 21/53 20130101AFI20190304BHJP
   G06F 21/60 20130101ALI20190304BHJP
   G06F 9/455 20060101ALI20190304BHJP
【FI】
   G06F21/53
   G06F21/60 360
   G06F9/455 150
【請求項の数】18
【全頁数】16
(21)【出願番号】特願2017-511950(P2017-511950)
(86)(22)【出願日】2015年2月18日
(65)【公表番号】特表2017-535833(P2017-535833A)
(43)【公表日】2017年11月30日
(86)【国際出願番号】US2015016313
(87)【国際公開番号】WO2016032563
(87)【国際公開日】20160303
【審査請求日】2018年2月15日
(31)【優先権主張番号】62/042,148
(32)【優先日】2014年8月26日
(33)【優先権主張国】US
(31)【優先権主張番号】14/502,300
(32)【優先日】2014年9月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】517063983
【氏名又は名称】マジックキューブ, インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ザイード, ナンシー
【審査官】 宮司 卓佳
(56)【参考文献】
【文献】 特開2010−170543(JP,A)
【文献】 国際公開第2013/087126(WO,A1)
【文献】 米国特許出願公開第2014/0053245(US,A1)
【文献】 米国特許出願公開第2009/0068982(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/53
G06F 9/455
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
ホストオペレーティングシステムを有するホストデバイス上にエミュレータをインスタンス化することであって、前記エミュレータは、前記ホストデバイスのハードウェアアーキテクチャと異なるハードウェアアーキテクチャの機能性を実装し、前記エミュレータは、前記ホストデバイスの集積回路と異なる命令セットを有する少なくとも1つの集積回路をエミュレートするように構成されている、ことと、
前記エミュレートされた集積回路上で実行するゲストオペレーティングシステムを前記エミュレータのエミュレートされたネットワークインターフェースを通して通信するように構成することであって、前記ゲストオペレーティングシステムおよびホストオペレーティングシステムは両方とも、前記ホストデバイス上で実行し、前記エミュレートされたネットワークインターフェースは、前記ホストオペレーティングシステムのネットワークスタックを介して、前記ゲストオペレーティングシステムへおよびそこからのデータの転送を促進するように構成されている、ことと、
前記ゲストオペレーティングシステムおよび前記ゲストオペレーティングシステム上で実行するアプリケーションが、前記ホストデバイスのソフトウェアおよびハードウェアへの不正アクセスを有しないように、前記エミュレータを前記ホストデバイスから切り離すように構成することと、
前記エミュレータの環境が、前記ホストオペレーティングシステムおよび前記ホストオペレーティングシステム上で実行するアプリケーションによる不正アクセスから保護され、前記ホストデバイスの環境が、前記ゲストオペレーティングシステムおよび前記ゲストオペレーティングシステム上で実行するアプリケーションによる不正アクセスから保護されるように、前記エミュレータを構成することと、
前記エミュレートされた集積回路上で実行する1つ以上のゲストオペレーティングシステムプロセスの制御下、
第1のセキュアな通信チャネルを経由して、トランザクションを承認するための要求を受信することであって、前記要求は、前記ホストデバイス上で実行するアプリケーションから受信される、ことと、
前記受信された要求に基づいて、前記ホストデバイスの入力デバイスからユーザ入力を得て、前記ユーザ入力を検証データに変換することであって、前記検証データは、クレジットカードセキュリティコード、クイックレスポンスコード、またはクレジットカード上の集積回路から受信された情報である、ことと、
前記エミュレートされたネットワークインターフェースを通して、遠隔システムへの異なる第2のセキュアな通信チャネルを確立することと、
前記第2のセキュアな通信チャネルを経由して、前記検証データに基づいて前記トランザクションを承認するための要求を前記遠隔システムに送信することと、
前記第2のセキュアな通信チャネルを経由して、承認結果を前記遠隔システムから受信することと、
前記第1のセキュアな通信チャネルを経由して、前記承認結果を示す応答を前記アプリケーションに送信することと
を含む、方法。
【請求項2】
前記エミュレートされた集積回路は、複数の命令を実行する対応する物理的集積回路の動作を複製し、前記物理的集積回路は、中央処理ユニットを備える、請求項1に記載の方法。
【請求項3】
前記エミュレートされた集積回路は、前記物理的集積回路の命令サイクルおよび命令サイクルタイミングを複製する、請求項2に記載の方法。
【請求項4】
前記ホストデバイス上に前記エミュレータをインスタンス化することは、前記エミュレータによってアクセスされ得る制御されたリソースのセットを有するサンドボックスプロセスにおいて前記ホストデバイスを実行することを含む、請求項1に記載の方法。
【請求項5】
前記第1のセキュアな通信チャネルから受信された情報は、暗号化される、請求項1に記載の方法。
【請求項6】
前記入力デバイスは、タッチスクリーンであり、前記入力デバイスから前記ユーザ入力を得ることは、それぞれが前記タッチスクリーンとの相互作用の場所を示す、複数の場所を受信することを含む、請求項1に記載の方法。
【請求項7】
前記エミュレートされたネットワークインターフェースを通して前記遠隔システムへの異なる第2のセキュアな通信チャネルを確立することは、第2のゲストオペレーティングシステムプロセスと前記遠隔システムとの間にセキュアな仮想プライベートネットワークを確立することを含む、請求項1に記載の方法。
【請求項8】
前記ホストデバイスのホストオペレーティングシステムと通信するように前記エミュレータを構成することは、第2のゲストオペレーティングシステムプロセスを前記エミュレートされたネットワークインターフェースにアタッチすることを含み、前記第2のプロセスは、前記エミュレートされたネットワークインターフェースと前記ホストオペレーティングシステムネットワークスタックとの間でパケットを転送するように構成されている、請求項1に記載の方法。
【請求項9】
前記ゲストオペレーティングシステムプロセスのうちの少なくとも1つは、前記ゲストオペレーティングシステムのカーネル空間内で実行する、請求項1に記載の方法。
【請求項10】
システムであって、
コンピュータ実行可能命令を記憶するためのメモリと、
前記メモリ上に記憶された命令を実行するための処理ユニットであって、前記命令の実行は、前記処理ユニットが、
ホストオペレーティングシステムを有するホストデバイス上にエミュレータをインスタンス化することであって、前記エミュレータは、前記ホストデバイスのハードウェアアーキテクチャと異なるハードウェアアーキテクチャの機能性を実装し、前記エミュレータは、前記ホストデバイスの集積回路と異なる命令セットを有する少なくとも1つの集積回路をエミュレートするように構成されている、ことと、
前記エミュレートされた集積回路上で実行するゲストオペレーティングシステムを前記エミュレータのエミュレートされたネットワークインターフェースを通して通信するように構成することであって、前記ゲストオペレーティングシステムおよびホストオペレーティングシステムは両方とも、前記ホストデバイス上で実行し、前記エミュレートされたネットワークインターフェースは、前記ホストオペレーティングシステムのネットワークスタックを介して、前記ゲストオペレーティングシステムへおよびそこからのデータの転送を促進するように構成されている、ことと、
前記ゲストオペレーティングシステムおよび前記ゲストオペレーティングシステム上で実行するアプリケーションが、前記ホストデバイスのソフトウェアおよびハードウェアへの不正アクセスを有しないように、前記エミュレータを前記ホストデバイスから切り離すように構成することと、
前記エミュレータの環境が、前記ホストオペレーティングシステムおよび前記ホストオペレーティングシステム上で実行するアプリケーションによる不正アクセスから保護され、前記ホストデバイスの環境が、前記ゲストオペレーティングシステムおよび前記ゲストオペレーティングシステム上で実行するアプリケーションによる不正アクセスから保護されるように、前記エミュレータを構成することと、
前記エミュレートされた集積回路上で実行する1つ以上のゲストオペレーティングシステムプロセスの制御下、
第1のセキュアな通信チャネルを経由して、トランザクションを承認するための要求を受信することであって、前記要求は、前記ホストデバイス上で実行するアプリケーションから受信される、ことと、
前記受信された要求に基づいて、前記ホストデバイスの入力デバイスからユーザ入力を得て、前記ユーザ入力を検証データに変換することであって、前記検証データは、クレジットカードセキュリティコード、クイックレスポンスコード、またはクレジットカード上の集積回路から受信された情報である、ことと、
前記エミュレートされたネットワークインターフェースを通して、遠隔システムへの異なる第2のセキュアな通信チャネルを確立することと、
前記第2のセキュアな通信チャネルを経由して、前記検証データに基づいて前記トランザクションを承認するための要求を前記遠隔システムに送信することと、
前記第2のセキュアな通信チャネルを経由して、承認結果を前記遠隔システムから受信することと、
前記第1のセキュアな通信チャネルを経由して、前記承認結果を示す応答を前記アプリケーションに送信することと
を含む動作を行う結果をもたらす、処理ユニットと
を備える、システム。
【請求項11】
前記エミュレートされた集積回路は、複数の命令を実行する対応する物理的集積回路の動作を複製し、前記物理的集積回路は、中央処理ユニットを備える、請求項10に記載のシステム。
【請求項12】
前記エミュレートされた集積回路は、前記物理的集積回路の命令サイクルおよび命令サイクルタイミングを複製する、請求項11に記載のシステム。
【請求項13】
前記ホストデバイス上に前記エミュレータをインスタンス化することは、前記エミュレータによってアクセスされ得る制御されたリソースのセットを有するサンドボックスプロセスにおいて前記ホストデバイスを実行することを含む、請求項10に記載のシステム。
【請求項14】
前記第1のセキュアな通信チャネルから受信された情報は、暗号化される、請求項10に記載のシステム。
【請求項15】
前記入力デバイスは、タッチスクリーンであり、前記入力デバイスから前記ユーザ入力を得ることは、それぞれが前記タッチスクリーンとの相互作用の場所を示す、複数の場所を受信することを含む、請求項10に記載のシステム。
【請求項16】
前記エミュレートされたネットワークインターフェースを通して前記遠隔システムへの異なる第2のセキュアな通信チャネルを確立することは、第2のゲストオペレーティングシステムプロセスと前記遠隔システムとの間にセキュアな仮想プライベートネットワークを確立することを含む、請求項10に記載のシステム。
【請求項17】
前記ホストデバイスのホストオペレーティングシステムと通信するように前記エミュレータを構成することは、第2のゲストオペレーティングシステムプロセスを前記エミュレートされたネットワークインターフェースにアタッチすることを含み、前記第2のプロセスは、前記エミュレートされたネットワークインターフェースと前記ホストオペレーティングシステムネットワークスタックとの間でパケットを転送するように構成されている、請求項10に記載のシステム。
【請求項18】
前記ゲストオペレーティングシステムプロセスのうちの少なくとも1つは、前記ゲストオペレーティングシステムのカーネル空間内で実行する、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本出願は、2014年8月26日に出願された「System for Transaction Authentication」という題名の米国仮特許出願第62/042,148号に対して優先権主張する、2014年9月30日に出願された「System for Transaction Authentication」という題名の米国特許出願第14/502,300号に対して優先権を主張する。上記文献の全ては、本明細書において参照することによって援用される。
【0002】
(背景)
本開示は、概して、ハードウェアおよびソフトウェアエミュレーションに関し、より具体的には、エミュレートされた認証デバイスを介して、機密情報をセキュアに記憶、捕捉、および転送するためのシステムならびに方法に関する。
【背景技術】
【0003】
認証ならびにセキュアなデータの記憶および転送のためのハードウェアベースの解決策は、多くの場合、複雑なカスタマイズされた回路を要求し、設計上の制約、デバイス間のハードウェアの非互換性、長期リードタイム、製造遅延、および他の障害のため、展開がゆっくりである。既存のハードウェアベースの解決策は、種々のモバイルおよび他のデバイス間で非常に異なり、これは、そのネットワーク効果を低減させ、チップベースまたはSIMカードベースである異なるアプローチにわたって市場を分断化させたままにする。市場は、ハードウェアの差異にかかわらず、セキュアな情報を任意のデバイスからおよびそこに記憶、交換、ならびに伝送するための解決策から利益を享受するであろう。
【発明の概要】
【課題を解決するための手段】
【0004】
(簡単な要約)
セキュアなトランザクション承認のためのシステムおよび方法が提供される。一側面では、コンピュータ実装方法は、エミュレータをホストデバイス上にインスタンス化することであって、エミュレータは、ホストデバイスの集積回路と異なる命令セットを有する集積回路をエミュレートするように構成される、ことと、エミュレータのエミュレートされたネットワークインターフェースを通してホストデバイスのホストオペレーティングシステムと通信するようにエミュレートされた集積回路上で実行するゲストオペレーティングシステムを構成することと、エミュレートされた集積回路上で実行する1つ以上のゲストオペレーティングシステムプロセスの制御下:第1のセキュアな通信チャネルを経由して、ホストオペレーティングシステム上で実行するアプリケーションまたは遠隔アプリケーションから、トランザクションを承認するための要求を受信することと、受信された要求に基づいて、ホストデバイスの入力デバイスからユーザ入力を得て、ユーザ入力を検証データに変換することと、エミュレートされたネットワークインターフェースを通して、遠隔システムへの異なる第2のセキュアな通信チャネルを確立することと、第2のセキュアな通信チャネルを経由して、検証データに基づいてトランザクションを承認するための要求を遠隔システムに送信することと、第2のセキュアな通信チャネルを経由して、承認結果を遠隔システムから受信することと、第1のセキュアな通信チャネルを経由して、承認結果を示す応答をアプリケーションに送信することとを含む。本側面の他の実施形態は、対応するシステムおよびコンピュータプログラムを含む。
【0005】
一実装では、エミュレートされた集積回路は、複数の命令を実行する対応する物理的集積回路の動作を複製し、物理的集積回路は、中央処理ユニットを備える。エミュレートされた集積回路は、物理的集積回路の命令サイクルおよび命令サイクルタイミングを複製することができる。
【0006】
別の実装では、エミュレータをホストデバイス上にインスタンス化することは、エミュレータによってアクセスされ得る制御されたリソースのセットを有するサンドボックスプロセスにおいてホストデバイスを実行することを含む。第1のセキュアな通信チャネルから受信された情報は、暗号化されることができる。入力デバイスは、タッチスクリーンであることができ、入力デバイスからユーザ入力を得ることは、それぞれがタッチスクリーンとの相互作用の場所を示す、複数の場所を受信することを含むことができる。
【0007】
さらなる実装では、エミュレートされたネットワークインターフェースを通して遠隔システムへの異なる第2のセキュアな通信チャネルを確立することは、第2のゲストオペレーティングシステムプロセスと遠隔システムとの間にセキュアな仮想プライベートネットワークを確立することを含む。ホストデバイスのホストオペレーティングシステムと通信するようにエミュレータを構成することは、第2のゲストオペレーティングシステムプロセスをエミュレートされたネットワークインターフェースにアタッチすることを含むことができ、第2のプロセスは、エミュレートされたネットワークインターフェースとホストオペレーティングシステムネットワークスタックとの間でパケットを転送するように構成される。ゲストオペレーティングシステムプロセスのうちの少なくとも1つは、ゲストオペレーティングシステムのカーネル空間内で実行することができる。検証データは、クレジットカードセキュリティコード、クイックレスポンスコード、またはクレジットカード上の集積回路から受信された情報であることができる。
【0008】
本明細書に説明される主題の1つ以上の実装の詳細は、付随の図面および以下の説明に記載される。本主題の他の特徴、側面、および利点は、説明、図面、ならびに請求項から明白となるであろう。
【0009】
図面中、同様の参照文字は、概して、異なる図全体を通して、同一部分を指す。また、図面は、必ずしも、正確な縮尺ではなく、代わりに、概して実装の原理の例証に強調が置かれる。以下の説明では、種々の実装は、以下の図面を参照して説明される。
【図面の簡単な説明】
【0010】
図1図1は、ある実装による、ユーザデバイスおよびエミュレートされたデバイスの高レベルシステムアーキテクチャを描写する、略図である。
図2図2は、ある実装による、セキュアな認証のための方法を描写する、フロー図である。
図3図3は、ある実装による、例示的ネットワーク通信フローを描写する、略図である。
【発明を実施するための形態】
【0011】
(詳細な説明)
種々の実装において本明細書に説明されるのは、エミュレートされたデバイスを使用して、セキュアな通信、セキュアなデータ転送および記憶、ならびに認証を提供するためのシステムおよび方法である。エミュレートされたデバイスは、ホストデバイスのモバイルデバイスオペレーティングシステム(OS)上で実行することができ、モバイルおよび電子商取引マーチャントならびにサービスプロバイダのためのデバイスベースの認証サービスを有効にすることができる。例えば、エミュレートされたデバイスは、モバイルアプリケーションおよびクラウドベースのウェブサービスを通して、セキュアな様式で金融に関わる暗証番号(PIN)ベースの認証を提供することができる。他の事例では、エミュレートされたデバイスは、種々の形態のモバイルおよび非モバイルデバイス、器具、コンピュータ、ならびに他のシステムへおよびそこからの情報のセキュアな記憶、交換、および伝送を有効にする。さらに、種々のデバイス、システム、プログラム、器具、および機器が、本明細書に説明される技法を使用してエミュレートされることができ、キオスク、ワークステーション、販売時点情報管理システムのためのハンドヘルドデバイス、銀行デバイス、現金自動支払い機、小売および支払システム、医療デバイス、防衛および行政に関わる機器、投票およびデータ収集デバイス、ならびに他のデータ記憶および伝送デバイス等が挙げられる。
【0012】
エミュレーションとは、他のソフトウェアまたはハードウェアの機能性を提供(すなわち、エミュレート)するためのコンピュータプログラムまたはハードウェアの使用を指す。エミュレータは、エミュレートされたデバイスのハードウェア構成要素に対応する、モジュールを含むことができる。例えば、エミュレータは、中央処理ユニット(CPU)、メモリサブシステム、および入力/出力デバイスのエミュレーションを提供することができる。ソフトウェアベースのエミュレータによるエミュレーションの場合、オペレーティングシステムおよび他のアプリケーションは、ネイティブハードウェアによって起動されるのではなく、エミュレータによって解釈されることができる。ソフトウェアベースのエミュレータはまた、エミュレータが実行するホストデバイスのアーキテクチャのうちの特定のハードウェアアーキテクチャをエミュレートすることができる。例えば、エミュレータは、ホストデバイスの物理的集積回路と異なる命令セットを有する、集積回路(例えば、CPU)をエミュレートするように構成されることができる。エミュレートされた集積回路は、物理的集積回路の命令サイクルおよび命令サイクルタイミングを複製することができる。
【0013】
エミュレートされたデバイスは、エミュレートされたハードウェア、オペレーティングシステム、ソフトウェアモジュール、アプリケーション、プラグイン、ランタイム環境、グラフィックエンジン、入力/出力方法、ドライバ、抽象層クライアント、接続プロトコル、セキュリティプロトコル、記憶、メモリ、および仮想化された周辺機器を含むことができる。さらに、エミュレートされたデバイスは、ホストデバイスのCPUによって使用される命令セットと異なり得る、動作のための異なるCPU命令セットを選択することができる。一実装では、これは、特定の命令セットアーキテクチャ(ISA)およびISAに適切な付随のオペレーティングシステムを有するエミュレートされたデバイスをランダムにインスタンス化することによって達成される。
【0014】
標準的オペレーティングシステムと異なり、エミュレートされたデバイスは、その中で起動するアプリケーションがホストデバイスのハードウェアにアクセス不能であることを確実にすることができる。これらの制約は、エミュレートされたデバイスを不正な外部アクセスから遮蔽し、ホストデバイスのネイティブ環境をエミュレートされたデバイスによる不正アクセスから遮蔽する、完全にセキュアな環境およびコンテナを作成する。特に、エミュレートされたデバイスは、影響を受けやすい内部アプリケーションを外部からの不正改ざんから遮蔽する、暗号化された環境を提供する。
【0015】
図1を参照すると、一実装では、システムは、デバイスハードウェア110上で実行するネイティブオペレーティングシステム114を有する、ユーザデバイス102を含む。ユーザデバイス102は、スマートフォン、スマートウォッチ、スマートグラス、タブレットコンピュータ、デスクトップコンピュータ、ポータブルコンピュータ、テレビ、ゲームデバイス、音楽プレーヤ、携帯電話、ラップトップ、パームトップ、スマートまたはダム端末、ネットワークコンピュータ、携帯情報端末、ワイヤレスデバイス、情報器具、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、または本明細書に説明される機能性を実行することができる、汎用コンピュータもしくは特殊目的ハードウェアデバイスとして動作される、他のコンピューティングデバイス等のモバイルまたは他のデバイスであることができる。ネイティブオペレーティングシステム114は、Apple iOS(登録商標)プラットフォーム、Google AndroidTMプラットフォーム、Microsoft Windows(登録商標)オペレーティングシステム、Apple OS X(登録商標)オペレーティングシステム、Linux(登録商標)オペレーティングシステム、UNIX(登録商標)オペレーティングシステムの亜種、および同等物等のモバイル、デスクトップ、サーバ、または他のオペレーティングシステムであることができる。
【0016】
デバイスハードウェア110は、汎用および特殊目的の両方のマイクロプロセッサを含む、コンピュータプログラムの実行のために好適な1つ以上のプロセッサを含むことができる。概して、プロセッサは、読取専用メモリまたはランダムアクセスメモリもしくは両方上に記憶された命令およびデータを受信する。コンピュータプログラム命令およびデータを具現化するために好適な情報担体は、一例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、例えば、内部ハードディスクまたは可撤性ディスク;磁気光ディスク;ならびにCD−ROMおよびDVD−ROMディスクを含む、あらゆる形態の不揮発性メモリを含む。1つ以上のメモリは、プロセッサによって実行されると、本明細書に説明されるモジュールおよび他の構成要素を形成し、構成要素と関連付けられた機能性を行う、命令を記憶することができる。プロセッサおよびメモリは、特殊目的論理回路によって補完される、またはその中に組み込まれることができる。
【0017】
ユーザデバイス102は、メモリ内に記憶され、プロセッサ上で実行される、複数のソフトウェア処理モジュールを含むことができる。例証として、プログラムモジュールは、機械言語またはオブジェクトコードに変換され、プロセッサまたは複数のプロセッサが命令を実行することを可能にする、1つ以上の好適なプログラミング言語の形態であることができる。ソフトウェアは、好適なプログラミング言語またはフレームワークで実装される、スタンドアロンアプリケーションの形態であることができる。
【0018】
一実装では、ソフトウェアは、スタンドアロンアプリケーション、プラグイン、構成要素、モジュール、ライブラリ(静的または動的にリンクされる)、または他のソフトウェアオブジェクトの形態であり得る、第三者モバイルアプリケーション122を含む。第三者モバイルアプリケーション122は、ユーザデバイス102上にエミュレートされたデバイス120(本明細書では、「エミュレータ」または「エミュレーションエンジン」とも称される)の作成およびそれとの通信を提供する、フレームワークまたはアプリケーションプログラミングインターフェース(API)を呼び出す、または別様に実行することができる。例えば、フレームワーク/APIは、第三者モバイルアプリケーション122とリンクされる、またはその中にインポートされる、ライブラリ内に提供されることができる。第三者モバイルアプリケーション122は、フレームワークに呼を発呼し、エミュレートされたデバイス120をユーザデバイス102上にインスタンス化することができる。エミュレートされたデバイス120は、エミュレートされたハードウェア130およびエミュレートされたゲストオペレーティングシステム140等のエミュレートされたソフトウェアを含むことができる。エミュレートされたハードウェア130は、エミュレートされた中央処理ユニット(CPU)134、エミュレートされたメモリおよび他の記憶媒体、エミュレートされた入力および/または出力デバイス、エミュレートされた通信ポートおよび他のインターフェース等の1つ以上のエミュレートされたプロセッサを含むことができる。エミュレートされたオペレーティングシステム140は、エミュレートされたカーネル144および/または他のシステムおよびユーザ空間要素を含むことができる。
【0019】
エミュレートされたゲストオペレーティングシステム140は、エミュレートされたデバイス120のエミュレートされたネットワークインターフェースを通して、ネイティブオペレーティングシステム114と通信するように構成されることができる。一実装では、通信は、ゲストオペレーティングシステムプロセスをエミュレートされたネットワークインターフェースにアタッチし、アタッチされたプロセスを使用して、エミュレートされたネットワークインターフェースとネイティブオペレーティングシステム114のネットワークスタックとの間でデータを転送する(例えば、伝送制御プロトコル(TCP)パケット、ユーザデータグラムプロトコル(UDP)データグラム、インターネットプロトコル(IP)パケット、および/または他のネットワークメッセージを介して)ことによって遂行される。アタッチされたプロセスは、ゲストオペレーティングシステムのカーネル空間またはユーザ空間内で実行することができる。いくつかの実装では、ネットワークトンネルおよび/またはネットワークタップ(TUNおよび/またはTAP)等の仮想ネットワークカーネルデバイスが、シミュレートされたネットワークおよびリンク層を提供し、ゲストとネイティブオペレーティングシステム140、114間における通信を促進するために使用される。
【0020】
エミュレートされたゲストオペレーティングシステム140はまた、ネイティブオペレーティングシステム114と関連付けられた典型的ネイティブランタイムフレームワークおよびAPIを利用するのではなく、ネイティブオペレーティングシステム114のエミュレートされたネットワークインターフェースおよびネットワークスタックを介して、1つ以上の遠隔システムと通信することができる。別の実装では、ゲストオペレーティングシステム140は、遠隔システムへのセキュアなトンネルを作成する、仮想ネットワークアダプタを通して通信する。ユーザデバイス102と遠隔システムとの間の通信は、例えば、標準的電話回線、LANもしくはWANリンク(例えば、T1、T3、56kb、X.25)、ブロードバンド接続(ISDN、Frame Relay、ATM)、および/または無線リンク(802.11(Wi−Fi)、Bluetooth(登録商標)、ZigBee、Z−Wave、GSM(登録商標)、TD−CDMA、TD−SCDMA、CDMA、無線を経由したSMS、光ファイバ等)等の媒体を経由して生じることができる。他の通信媒体も、検討される。ネットワークは、TCP/IPプロトコル通信、HTTP/HTTPS伝送等を搬送することができ、ユーザデバイス102と遠隔システムとの間の接続は、そのようなTCP/IPネットワークを経由して通信されることができる。他の通信プロトコルも、検討される。さらに、ユーザデバイス102と遠隔システムとの間の通信は、公知のおよび/またはカスタム暗号化/解読アルゴリズムを使用して、暗号化される/解読されることができる。
【0021】
一実施形態では、エミュレートされたデバイス120は、仮想トラステッドプラットフォームモジュール(TPM)にエミュレートされたデバイス120によって生成される特殊トークンを提供することによって、エミュレートされたゲストオペレーティングシステム140のためのセキュアなブートモードを有効にする。特殊トークンは、エミュレーションシステムを利用する、ユーザデバイス102および/またはソフトウェア(例えば、第三者モバイルアプリケーション122)にウォーターマーク化されることができる。
【0022】
いくつかの実装では、あるモバイルクライアントおよびバックエンド/クラウドサーバのための承認されたアクセスは、不透明データモデルを実装する、セキュアなフレームワーク/APIを通して遂行されることができる。いくつかの事例では、第三者モバイルアプリケーション114は、アプリケーション114およびユーザデバイス102の組み合わせが合法ユーザプラットフォームとして正当性を立証されるまで、フレームワークを介して提供されるサービスを使用することが許可されない。例えば、エンドユーザが、そのサービスプロバイダ(例えば、銀行、マーチャント、医療機関)によって、フレームワークを使用するアプリケーションをダウンロードするように命令され、フレームワークが、続いて、デバイス102が感染している(例えば、脱獄されている、疑わしいソフトウェアを有する等)ことを検出する場合、フレームワークは、アプリケーションをフレームワークプロバイダによって動作される遠隔システムにアクセスさせないように拒否することができる。遠隔システムはまた、サービスプロバイダのバックエンドシステムと通信し、その特定のユーザのためのその特定のデバイス102の疑わしいステータスをアラートすることができる。
【0023】
エミュレートされたデバイス120はまた、1つ以上のサービス160が実行し得る、サービスコンテナ150を含むことができる。サービス160は、限定ではないが、セキュアな入力/出力、仮想プライベートネットワーク(VPN)通信、記憶、キー管理、クイックレスポンスコード(QRC)管理、近距離通信(NFC)、ホストカードエミュレーション(HCE)、支払トークン管理、マルウェア保護、ウイルス検出、ならびに他のセキュリティおよび記憶サービスを含むことができる。
【0024】
一実装では、エミュレートされたデバイス120は、エミュレートされたデバイス120によってアクセスされ得る制御されたリソースのセット(例えば、メモリ、記憶空間、プロセッサ、プロセッササイクル等)を有する、サンドボックスプロセスにおいて実行される。サンドボックスは、例えば、サンドボックスの内側で実行するソフトウェアによるサンドボックスの外側のソフトウェアおよび/またはハードウェアへのアクセスが制限されるように、プログラムを起動する、または命令を実行するための機構もしくは空間であることができる。いくつかの事例では、サービスコンテナ150は、サービス160が実行され得る、1つ以上の二次サンドボックスを含む。
【0025】
加えて、または代替として、いくつかの機能性は、遠隔で、クラウド内で、またはサービスとしてのソフトウェア(Software−as−a−Service)を介して、行われることができる。遠隔機能性は、十分なメモリ、データ記憶、および処理能力を有し、サーバクラスオペレーティングシステム(例えば、Oracle(登録商標)Solaris(登録商標)、GNU/Linux(登録商標)、およびMicrosoft(登録商標)Windows(登録商標)系のオペレーティングシステム)を起動させる、サーバクラスコンピュータ上で実行することができる。
【0026】
システムはまた、分散型コンピューティング環境において実践されることができ、タスクは、通信ネットワークを通してリンクされる、遠隔処理デバイスによって行われる。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含む、ローカルおよび遠隔コンピュータ記憶媒体の両方内に位置することができる。本明細書に説明されるもの以外のタイプのシステムハードウェアおよびソフトウェアもまた、デバイスの容量および要求されるデータ処理能力の量に応じて、使用されることができる。
【0027】
本明細書に説明される技法の方法ステップは、1つ以上のコンピュータプログラムを実行し、入力データを操作し、出力を生成することによって、機能を果たす、1つ以上のプログラマブルプロセッサによって行われることができる。方法ステップはまた、特殊目的論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行われることができ、モジュールは、そのようなものとして実装されることができる。モジュールは、コンピュータプログラムおよび/またはその機能性を実装するプロセッサ/特殊回路の一部を指すことができる。
【0028】
また、システムおよび方法の実装は、1つ以上の製造品上もしくはその中に具現化される1つ以上のコンピュータ可読プログラムとして提供されることができることに留意されたい。プログラム命令は、データ処理装置による実行のために好適な受信機装置への伝送のために、情報をエンコードするために生成される、人工的に生成される伝搬信号、例えば、機械生成電気、光学、または電磁信号上にエンコードされることができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つ以上の組み合わせである、またはその中に含まれることができる。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成される伝搬信号内にエンコードされるコンピュータプログラム命令源またはその宛先であることができる。コンピュータ記憶媒体はまた、1つ以上の別個の物理的構成要素もしくは媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)である、またはその中に含まれることができる。
【0029】
ここで図2および3を参照すると、一実装では、1つ以上のセキュアな通信チャネルが、購入、アカウントログイン、セキュアなデータ転送、または認証の形態を要求するデータもしくはプロパティの他の伝送、要求、もしくは受信等のトランザクションを承認するために作成される。一般に、セキュアな通信チャネルとは、セキュアな様式における(例えば、データを暗号化することによる)データの転送(送信および/または受信)のための2つ以上のエンドポイント間の接続を指す。セキュアな通信チャネルの実施例は、仮想プライベートネットワーク(VPN)、トランスポート層セキュリティ(TLS)およびセキュアソケット層(SSL)トンネル、IPセキュリティ(IPsec)伝送、ならびに他の形態のセキュアな通信を含む。
【0030】
ステップ202では、クライアントアプリケーション(例えば、第三者モバイルアプリケーション122)が、クライアントアプリケーションにリンクされたフレームワークに呼を発呼し、フレームワークが、エミュレータ(例えば、エミュレートされたデバイス120)をホストデバイス(例えば、ユーザデバイス102)上にインスタンス化する。エミュレータは、エミュレートされたハードウェアおよびソフトウェアを含むことができ、ホストデバイス内の特定の集積回路(例えば、デバイスハードウェア110内のCPU)と異なる命令セットを有する、集積回路(例えば、エミュレートされたCPU134)の命令を再現することができる。エミュレートされた集積回路(例えば、エミュレートされたゲストOS140)上で実行するゲストオペレーティングシステムは、エミュレータのエミュレートされたネットワークインターフェースを通して、ホストデバイス上で実行するホストオペレーティングシステム(例えば、ネイティブオペレーティングシステム114)と通信するように構成される(ステップ206)。
【0031】
通信動作が、次いで、エミュレートされた集積回路上で実行する1つ以上のゲストオペレーティングシステムプロセスの制御下で行われることができる。第1の通信チャネルが、クライアントアプリケーションがフレームワークに初期化呼を発呼すると確立されることができる。初期化呼は、例えば、デバイス情報とフレームワーク実装と関連付けられたウォーターマークの組み合わせを使用して、そのチャネルを経由した通信の正当性を立証することができる。第1のセキュアな通信チャネルは、例えば、ホストオペレーティングシステムとゲストオペレーティングシステムのエミュレートされたネットワークインターフェースにアタッチされたゲストオペレーティングシステムプロセスとの間に形成されることができる。
【0032】
ステップ210では、ゲストオペレーティングシステムが、第1のセキュアな通信チャネルを経由して、ホストオペレーティングシステム(例えば、第三者モバイルアプリケーション122)上で実行するクライアントアプリケーションから発信される、トランザクションを承認するための要求を受信する。エミュレータによって、またはそれを通して提供されるサービスの使用を承認するための要求、金融商品の使用と関連付けられた秘密(例えば、クレジットカードと関連付けられた情報)が存在するかどうかを判定するための要求、および秘密の有効性(例えば、エミュレータによって捕捉されたクレジットカード番号の有効性)を検証するための要求を含む、種々のタイプの要求が、フレームワークを介して行われることができる。
【0033】
ステップ214では、承認のための受信された要求に基づいて、ゲストオペレーティングシステムは、ホストデバイスの入力デバイスからユーザ入力を得て、ステップ218では、ユーザ入力を検証データに変換する。ゲストオペレーティングシステムはさらに、ユーザの決定的識別を維持する、サービスプロバイダのシステムを用いて、検証データの正当性を立証することができる。検証データとは、クライアントアプリケーションのユーザの識別を認証するデータを指し、例えば、クレジットカードセキュリティコード(CSC)、QRC、誕生日、共有秘密、視覚的認識、バイオメトリック識別子、および/または支払カード上の磁気ストリップもしくは集積回路(例えば、埋設されたマイクロチップ)から受信された情報を含むことができる。
【0034】
一実装では、入力デバイスは、タッチスクリーンであり、ユーザ入力は、それぞれがタッチスクリーンとのユーザの相互作用(例えば、デジタルキーパッド上の番号のユーザの打ち込み)の場所を示す、タッチスクリーン上の複数の場所である。より具体的には、ゲストオペレーティングシステムは、タッチスクリーングラフィカルデバイスを表す仮想入力デバイスのためのスクリーンバッファを作成することができ、バッファにユーザ制御の適切な表現(例えば、キーパッド)を作成させることができる。フレームワークは、ユーザデバイスのディスプレイを見ているユーザが、異なるまたは遠隔デバイスのディスプレイを視認および/または制御し得るように、遠隔ディスプレイおよび/または制御プロトコルもしくは他の技法を組み込むことができる。ユーザの相互作用に基づくユーザ入力は、捕捉され、捕捉された入力をエンコードならびに伝送し得る、カーネルモジュールおよび/またはユーザ空間プロセスとして、ゲストオペレーティングシステム内で起動する特定用途向けモジュールにダイレクトされる。
【0035】
入力デバイスはまた、例えば、内蔵デバイス(例えば、タッチパッド、ポインティングスティック、クリックホイール、カメラ、マイクロホン、ジャイロスコープ、加速度計、内蔵キーボード等)、および/またはホストデバイスに結合される別個の入力周辺機器(例えば、マウス、キーボード、トラックボール、ジョイスティック、カメラ、マイクロホン、ゲームコントローラ、仮想ヘッドセット等)であることができる。ユーザ入力は、例えば、タッチスクリーンジェスチャ、マウスジェスチャ、タップ、クリック、クリックアンドドラッグ、追跡された眼の動き、ボタン押下、ユーザの顔のビデオフィード、印加された圧力、またはユーザが入力をホストデバイスに提供することを可能にするために好適な他のアクションであることができる。
【0036】
ゲストオペレーティングシステムは、次いで、エミュレートされたネットワークインターフェースを通して、遠隔システム(例えば、フレームワークプロバイダによって動作されるシステム)への第2のセキュアな通信チャネルを確立する(ステップ222)。遠隔システムへの通信チャネルは、例えば、新しいまたは既存のゲストオペレーティングシステムプロセスと遠隔システムとの間のセキュアなVPNであることができ、通信は、RESTful(表現可能な状態の転送アーキテクチャ制約に準拠する)APIを使用して、第2のチャネルを経由して達成されることができる。いったん遠隔システムへのチャネルが確立されると、ゲストオペレーティングシステムは、検証データに基づいてトランザクションの承認を促進するための遠隔システムへの要求を送信する(ステップ226)。
【0037】
いくつかの実装では、遠隔システム自体は、トランザクションを承認しないが、検証データをトランザクションと関連付けられた認証オーソリティにセキュアに伝送する。例えば、金融トランザクションの場合、ユーザは、支払カードのための暗証番号(PIN)を打ち込むことができ、これは、ゲストオペレーティングシステムによってセキュアに捕捉され、遠隔システムに伝送される。遠隔システムは、次いで、認証のために、PINを支払カードと関連付けられた金融ネットワークシステムに転送することができる。ある場合には、応答は、PINが有効または無効であると判定される場合、受信される。他の事例では、PINが検証されることができない場合、トランザクションは、トランザクションを拒否するであろう、関連付けられた金融ネットワーク内の既存のシステムを通してパスされる。
【0038】
ステップ230では、ゲストオペレーティングシステムが、第2のセキュアな通信チャネルを経由して、遠隔システムから承認結果(例えば、許可または否定)を受信し、ステップ234では、第1のセキュアな通信チャネルを経由して、承認結果を示す応答をホストオペレーティングシステム上で実行するアプリケーションに送信する。いくつかの実装では、フレームワークは、ユーザデバイスが感染されていることを検出し、遠隔システムに、デバイスから要求の受諾を停止するように信号伝達することができる。遠隔システムはまた、トランザクション承認に関与する他のシステムにアラートし、ユーザデバイスが、承認が否定される、または別様に、トランザクションを行うことが禁止されるべきことを知らせることができる。
【0039】
本システムおよび技法を使用した例示的トランザクションが、ここで、説明される。ユーザであるSallyが、家電販売店であるMega−mart用のモバイル電子商取引アプリケーションをそのスマートフォン上にダウンロードする。電子商取引アプリケーションは、本明細書に説明される承認フレームワーク/APIを統合する、Mega−martブランドのモバイルウォレットアプリケーションとインターフェースをとり、Sallyが、例えば、Sallyがモバイルウォレットアプリケーションに登録したクレジットカードを用いて、Mega−mart商品をセキュアに購入することを可能にする。電子商取引アプリケーション内での会計時、モバイルウォレットアプリケーションは、フレームワークを介して、初期化機能を呼び出し、他のデータのうち、Sallyのクレジットカード情報をパラメータとしてパスする。初期化機能は、スマートフォンのローカル環境を調べ、セキュアである(例えば、脱獄されていない、または疑わしいソフトウェアを有していない)かどうかを判定し、環境がセキュアである場合、機能は、エミュレーションエンジンおよび環境をインスタンス化し、パラメータデータを適切なゲストオペレーティングサービスおよびモジュール(以降、「gOM」と称される)にパスする。
【0040】
gOMは、パラメータデータをエンコードおよび暗号化し、それをフレームワークプロバイダの遠隔バックエンドシステム(以降、「BE」と称される)に送信する。BEは、新しいユーザであると判定する場合、適切なデータ構造を作成し、Sallyについての情報を記憶する。BEは、次いで、1つ以上の金融システムと通信し、該当する場合、認証のためのPINを使用し得るカードを判定し、応答をgOMに返し、PINに対応するカードをマークする。gOMは、本情報をエミュレーションエンジンに中継し、これは、順に、それを電子商取引アプリケーションに中継する。モバイルウォレットアプリケーションは、次いで、ユーザが支払のために好ましいPIN対応クレジットカードを選択することを可能にし、ユーザの選択に応じて、パラメータとして選択されたカードとのフレームワーク内のトランザクション承認機能を読み出す、インターフェースをユーザに表示することができる。gOMは、次いで、PIN捕捉インターフェース(例えば、仮想キーパッド)をアクティブ化し、捕捉されたPINをBEに送信し、これは、カード発行者のバックエンドシステムの能力に基づいて、応答をまとめる。モバイルウォレットアプリケーションは、次いで、Mega−martによって定義された経験に従って、その通常トランザクションフローを継続する。
【0041】
さらに、会計時、電子商取引アプリケーションは、RESTful API初期化機能をBE上に呼び出し、パラメータとしてSallyのクレジットカード情報をパスすることができる。初期化機能は、SallyがユーザとしてBE内に存在するかどうかを判定し、該当しない場合、電子商取引アプリケーションに、Mega−martのモバイルウォレットアプリケーションをダウンロードするようにSallyに命令するように指示する。いったんモバイルウォレットアプリケーションがSallyのスマートフォン上にインストールされると、BEは、通知要求の暗号化されたペイロードとしての結果とともに、通知サービスをモバイルウォレットアプリケーションに送信する。ウォレットアプリケーションは、次いで、フレームワーク内のデータ処理機能に呼を発呼し、通知ペイロードのコンテンツをパスする。データ処理機能は、ペイロードを受信し、スマートフォンプラットフォームの完全性をチェックする。プラットフォームが、完全性チェックに失敗する場合、BEは、失敗を通知されることができ、BEはまた、デバイスをブラックリストにするために、他の遠隔システムにも失敗を知らせることができる。プラットフォームが、無傷であると判定される場合、データ処理機能は、モバイルウォレットアプリケーションに応答し、支払画面を示し、適切なgOMをプロビジョニングするために、エミュレーションエンジンをインスタンス化し、受信されたデータ(通知ペイロード)をパスする。gOMは、PIN捕捉デバイスをアクティブ化し、任意の捕捉されたデータをBEに直ちに送信し、これは、トランザクションをログ化し、gOMに、通常通り進めるように命令する。gOMは、肯定応答をエミュレーションエンジンに中継し、これは、順に、それをモバイルウォレットアプリケーションに中継する。モバイルウォレットアプリケーションは、次いで、Mega−martによって設計された経験に従って、その通常トランザクションフローを継続する。
【0042】
本明細書に採用される用語および表現は、限定ではなく、説明の用語および表現として使用され、そのような用語および表現の使用において、図示および説明される特徴の任意の均等物またはその一部を除外することを意図するものではない。加えて、本開示においてある実装が説明されたが、本明細書に開示される概念を組み込む他の実装も、本発明の精神および範囲から逸脱することなく、使用されることができることが当業者に明白となるであろう。種々の実装の特徴および機能は、種々の組み合わせおよび順列において配列されることができ、全て、開示される発明の範囲内にあると見なされる。故に、説明される実装は、あらゆる点において、制限ではなく、例証であると見なされるものとする。本明細書に説明される構成、材料、および寸法もまた、いかようにも限定として意図されず、例証として意図される。同様に、物理的説明が、説明目的のために提供されたが、任意の特定の理論または機構によって境界される、またはそれに従って請求項を限定するように意図されない。
図1
図2
図3