JP2023518824A - リモートサーバと通信するモバイル機器から安全なデータにアクセスするためのシステムアーキテクチャ - Google Patents

リモートサーバと通信するモバイル機器から安全なデータにアクセスするためのシステムアーキテクチャ Download PDF

Info

Publication number
JP2023518824A
JP2023518824A JP2022557144A JP2022557144A JP2023518824A JP 2023518824 A JP2023518824 A JP 2023518824A JP 2022557144 A JP2022557144 A JP 2022557144A JP 2022557144 A JP2022557144 A JP 2022557144A JP 2023518824 A JP2023518824 A JP 2023518824A
Authority
JP
Japan
Prior art keywords
data
server
mobile device
request
website
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022557144A
Other languages
English (en)
Inventor
エリック スミス,チャールズ
グスタボ アジェスタラン,セルジオ
Original Assignee
エーピーピーブリリアンス,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エーピーピーブリリアンス,インコーポレイテッド filed Critical エーピーピーブリリアンス,インコーポレイテッド
Publication of JP2023518824A publication Critical patent/JP2023518824A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/108Remote banking, e.g. home banking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3221Access to banking information through M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3223Realising banking transactions through M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

ヘッドレスブラウザを実行するサーバに接続して操作するネイティブ・モバイルアプリケーションを実行するモバイル機器からの安全化されたデータアクセスを可能にするシステム、方法、及びコンピュータ読み取り可能な記憶装置について開示する。

Description

関連する出願の相互参照
本願は、2020年3月24日に出願された「SYSTEM ARCHITECTURE FOR ACCESSING SECURE DATA FROM A MOBILE DEVICE IN COMMUNICATION WITH A REMOTE SERVER,」と題する米国特許出願第16/828,449号の利益を主張し、35U.S.C.§119(e)に基づく優先権を主張し、当該米国特許出願のすべての記載内容を援用する。
背景
モバイル機器が一般的になるにつれて、ユーザは、モバイル機器を用いてますます多くの日常業務をこなすことを選択する。例えば、ユーザはモバイル機器を用いて、ドキュメント及びスプレッドシートの編集、図面又はグラフィック デザインの作成、マルチメディアコンテンツの生成など、通常はデスクトップ又はラップトップコンピュータ用に割り当てていたプロジェクトに取り組むことができる。モバイル機器が特定の業務を実行するには、モバイル機器が安全化されたユーザデータにアクセスする必要があるだろう。ただし、セキュリティ上の考慮事項と既存のバックエンドシステムにより、そのような安全化されたユーザデータへのアクセスをモバイル機器に提供することが困難な場合がある。
例えば、モバイル機器が用いられる可能性のある日常業務の1つは、モバイルバンキングである。銀行の顧客は、モバイル機器アプリケーションを用いて資金を管理することをますます好む。その結果として、銀行はモバイルバンキングアプリケーションを展開している。中小規模の銀行に対して、バックエンドのセキュリティ機能の設定、及びそのようなアプリケーションが既存のアカウントデータやデータウェアハウスに格納されているデータなどのように安全化されたデータにアクセスできるようにするデータ統合を含め、カスタマイズされたフル機能のモバイルバンキングアプリケーションを(例えば、社内開発を介して又はサードパーティの開発チームを雇うことによって)開発するには、法外な費用がかかる場合がある。中小規模の銀行にモバイルバンキングを提供するために、一部のベンダはアカウントアグリゲーション(アカウント集約)を用いる。このアカウントアグリゲーションには、銀行のユーザクレデンシャルを中継サーバに格納し、後に中継サーバを介して銀行にアクセスすることが含まれる。ただし、銀行がセキュリティ上の理由でサードパーティのサーバからのアクセスをブロックしている場合、アカウントアグリゲーションのアプローチは適切に機能しない。例えば、銀行が同じインターネットプロトコルアドレスからの複数のアクセスを識別できる場合、銀行はそのインターネットプロトコルアドレスからのすべてのアクセスをブロックする可能性があり、それによってアカウントアグリゲーションの手法が機能しなくなる可能性がある。ユーザのアクセス資格(アクセス・クレデンシャル)を中継サーバ(クラウドなど)に格納することも、セキュリティリスクになり得る。さらに、一部のモバイル機器の処理能力とバッテリ寿命は、モバイルバンキングアプリケーションを作成する際の課題につながり得る。例えば、コンピュータ化された時計などの一部のデバイスでは、フル機能のモバイルバンキングアプリケーションをサポートするのに十分な処理リソースとバッテリ電源が不足する場合がある。
図1は、グラフィカル・ユーザ・インターフェイス(GUI)を持たないヘッドレスブラウザを実行するサーバと統合されたネイティブアプリケーションを実行するモバイル機器からの、安全化されたデータアクセスをサポートするシステムの態様を示す図である。 図2は、ヘッドレスブラウザを実行するサーバと統合された、ネイティブアプリケーションを実行するモバイル機器からの、安全化されたデータアクセスをサポートするシステムの別の態様を示す図である。 図3は、サーバにおける操作方法を示すフローチャートである。 図4は、モバイル機器における操作方法を示すフローチャートである。 図5は、本明細書で開示される方法、装置、及びコンピュータ読み取り可能な記憶装置をサポートするように操作可能なモバイル機器の態様を示すブロック図である。 図6は、本明細書で開示される方法、装置、及びコンピュータ読み取り可能な記憶装置をサポートするサーバの例示的な態様のブロック図である。
詳細な説明
本開示は、「ネイティブ」モバイルアプリケーション(本明細書では「モバイルアプリ」とも呼ばれる)を実行し、「ヘッドレス」ブラウザを実行するバックエンドサーバでサポートされるモバイル機器によって、安全化されたデータへの読み取り及び書き込みアクセスを可能にする。本明細書で用いられる「ネイティブ」モバイルアプリは、特定のモバイル機器のオペレーティングシステムなど、特定のデバイス・プラットフォーム向けに設計及びコーディングされたアプリケーションである。ネイティブアプリは特定のプラットフォーム用に作成されるため、通常、ネイティブアプリは基盤となるオペレーティングシステムと同じ「ルックアンドフィール」を有し、非ネイティブアプリよりも信頼性が高く高速なパフォーマンスを提供する。ネイティブアプリは、非ネイティブアプリでは利用できないデバイス機能にアクセスすることもできる。さらに、多くのモバイルプラットフォームのベンダは、ユーザがネイティブアプリをダウンロードできるストアフロント(オンラインショップ)を提供する。ネイティブアプリの開発を促進するために、プラットフォームのベンダは、標準化されたソフトウェア開発キット(SDKs)を提供することが多い。
本明細書で用いられる「ヘッドレスブラウザ」は、グラフィカルユーザインターフェース(GUI)の表示のない、デバイスによって実行されるWebブラウザのインスタンスである。したがって、ヘッドレスブラウザを用いてWebデータを(例えば、ハイパーテキスト転送プロトコル(HTTP)GETコマンド、POSTコマンドなどを介して)送受信することはできるが、ヘッドレスブラウザ自体はそのようなWebデータを表示しない場合がある。代わりに、本明細書で更に説明するように、ヘッドレスブラウザは、モバイル機器上のネイティブアプリのWebアクセスメカニズムとして機能する場合がある。
特定の態様では、本開示のシステム及び方法は、データのプロバイダ(例えば、銀行)が、モバイル・ソリューション・プロバイダ(例えば、モバイルアプリの開発者又はベンダ)とインターネットバンキングソフトウェア/Webサイトプロバイダとの間の技術統合を実施することを必要とせずに、モバイル機器及び1つ以上のバックエンドサーバが銀行口座データなどの安全化されたデータにアクセスすることを可能にする。このような統合は、レガシーバンキングシステムとの互換性を維持しながら、セキュリティプロトコル、データ暗号化、標準準拠のアプリケーション・プログラミング・インターフェース(API)及び/又は異なるベンダ間の調整の確立を含む場合があり、複雑で高価なものになり得る。本明細書では、銀行業務及び金融業務の文脈で様々な態様を説明するが、そのような様々な態様の説明は例示だけのためであり、限定的なものと見なしてはならない。本開示の手法は、追加的又は代替的に、ヘルスケアデータ、エンタープライズデータなど、銀行/金融データ以外の安全化されたデータへのモバイル機器のアクセスを可能にするために使用することができる。
記載された手法に従って、モバイル機器とサーバは、リモートバンキングサーバなどのリモートサーバから安全化されたデータにアクセスするために連動して操作することができる。例えば、モバイル機器は、モバイルバンキング機能を提供するためにネイティブアプリケーションを利用することができる。特定の実施では、ネイティブアプリケーションは、安全な接続を介してサーバ(例えば、バックエンドサーバ)と通信して、サーバがリモートサーバ(例えば、リモートバンキングサーバ)が提供するWebサイトにアクセス可能にし、モバイル機器のみがリモートサーバにアクセスしているように見えるようにする。例えば、モバイル機器は、サーバからメッセージ又はコマンド(例えば、非限定的な例として、HTTP GET及びHTTP POSTコマンド)を受信し、メッセージ又はコマンドがモバイル機器から発信されたように見えるようにメッセージ又はコマンドを修正した後にメッセージ又はコマンドをリモートサーバに提供するなど、サーバとリモートサーバとの間の中継として作動するように構成される構成可能なネットワークサービスを提供できる。このように、リモートサーバはバックエンドサーバの操作を知らないため、メッセージをブロックされずに進行させることができる場合がある。
さらに説明すると、サーバ(例えば、バックエンドサーバ)は、構成可能なネットワークサービスと安全な接続(例えば、暗号化されたネットワークトンネル)を介して通信するヘッドレスブラウザを実行することができる。サーバは、ネイティブアプリケーションを実行するモバイル機器からリクエスト又はコマンドを受信することができる。例えば、ネイティブアプリケーションは、ユーザ入力に基づいて、Webサイトにログオンするためのリクエストを生成する場合があり、そのリクエストはモバイル機器からサーバへ送信される。サーバはヘッドレスブラウザをインスタンス化し、Webサイトに基づくアプリケーション・プログラミング・インターフェース(API)フィンガープリントのデータをヘッドレスブラウザに注入することができる。APIフィンガープリントデータは、ネイティブアプリケーションの要素とWebサイトの要素を対応付けるサービス経路や他の要素を示すことがある。例えば、APIフィンガープリントデータは、Webサイトへのログオンに関連付けられたサービス経路と要素を示すことができる。サーバは、ヘッドレスブラウザを利用して、モバイル機器の構成可能なネットワークサービスへリクエストを送信することによって、Webサイトへのログオンを行うことができる。構成可能なネットワークサービスは、リクエストを受信し、そのリクエストをリモートサーバ(例えば、リモートバンキングサーバなどのサードパーティのサーバ)へ送信する前に、リクエストがモバイル機器から発信されたように見えるように、リクエストを修正する。モバイル機器がリクエストに対するレスポンスを受信すると、構成可能なネットワークリソースは、ヘッドレスブラウザを介して処理するために、レスポンスをサーバ(例えば、バックエンドサーバ)に転送する。サーバはレスポンスを処理した後、モバイル機器のネイティブアプリケーションへログオン完了の情報を送信する。このように、サーバ(例えば、バックエンドサーバ)は、モバイル機器の構成可能なネットワークリソースを「介して」機能し、Webサイトにアクセスする。このアクセスは、モバイル機器から(例えば、リモートサーバを運営する銀行の顧客から)のアクセスに見えるため、バックエンドサーバがWebサイトに直接アクセスしようとした場合にバックエンドサーバをブロックすることに比べると、セキュリティ上の理由から銀行がモバイル機器をブロックする可能性は低くなる。
このように、モバイル機器のネイティブ・モバイルアプリケーションは、バックエンドサーバと通信して、安全化されたデータへのアクセスを可能にし、インターネットバンキングのWebサイトなどのWebサイトに関連付けられた様々な機能を有効にすることができる。モバイルバンキングのネイティブアプリケーションでは、口座残高の報告、口座ごとの取引履歴の表示、口座間の資金移動、リモート小切手預金の実行、請求書の支払いなどの機能を実現することができる。実施例によっては、モバイルバンキングのネイティブアプリケーションは、ピアツーピア資金移動のためのソフトウェア、非接触型決済の現金自動預払機(ATM)認証、ローンアプリケーションなど、他のソフトウェア及び機能との統合を可能にする(及び、それによってアクセスを可能にする)APIを有する場合がある。
態様によっては、APIは、モバイル機器のネイティブアプリをバックエンドサーバのヘッドレスブラウザにリンクして、顧客向け機能を実装し、ネイティブアプリとサーバ(例えば、ネイティブアプリのプロバイダに関連付けられたサーバ、サードパーティのサーバ、インターネットバンキングWebサイトを提供するサーバ)との間でデータを読み書きする一貫した方法を提供することができる。ネイティブ・モバイルアプリ、ヘッドレスブラウザ、及びAPIは、アプリから直接、特定のユーザの銀行口座などの個別設定データの統合を作成する場合がある。
態様によっては、ユーザアクセスクレデンシャル及び他のアクセスデータ(個人識別番号(PIN)、多要素認証コードなど)は、ネイティブアプリに入力され、後に埋め込みAPIの方法でヘッドレスブラウザへ渡すことができる。このAPIは:(1)金融機関の間で標準化できる、ユーザ認証又は口座情報のための一連の共通の機能及びデータ、及び(2)パーソナルコンピュータ(例えば、非モバイル)ブラウザによって通常解釈され、インターネットバンキングWebサイトとしてユーザに提示される、特定のページのレイアウト、ハイパーテキストマークアップ言語(HTML)、カスケードスタイルシート(CSS)及び/又はJavaScriptコンテンツなどの金融機関用の特定のWebサイト、を含むことができる。APIは、ヘッドレスブラウザがモバイル機器を介して(例えば、モバイル機器で実行される構成可能なネットワークリソースを介して)Webサイト(又はWebサイトを提供するリモートサーバ)と前後にユーザインタラクション及びデータを渡すことを可能にするためにヘッドレスブラウザに埋め込まれる(例えば、注入される)APIフィンガープリントデータに基づいてもよい。このように、バックエンドサーバのヘッドレスブラウザは、デスクトップやラップトップコンピュータ上の非ヘッドレスブラウザや、Webサイトに直接アクセスする非ヘッドレスモバイルブラウザが行う操作をエミュレートするために用いられる場合がある。
実施例によっては、APIフィンガープリントデータは、ネイティブアプリ内のバンキング機能とWebサイト上のそれらの対応するインターネットバンキング要素との間のマッピングを、スクリーンスクレイピング(データ収集)などを介して確立できるように、アプリごとに構成することができる。したがって、本開示の手法により、インターネットバンキングサービス/Webサイトのバージョンごとに埋め込みAPIを構成し、多くの銀行利用者に届くことが可能になる場合がある。米国だけでも14,000を超える金融機関があるのに対し、インターネットバンキングのサービスやWebサイトのバージョンは数十に過ぎないため、この方法で埋め込みAPIを設定する方が、金融機関ごとにカスタムネイティブアプリや統合を構築するよりシンプルになる可能性がある。本明細書に記載されたシステム及び方法は、エンドユーザが、アプリに固有の専用の高価な、又は限定的な統合へのアクセスを必要とするのではなく、インターネットバンキングへの安全なリアルタイム接続を活用しながら、ネイティブモバイルバンキングアプリを介してインターネットバンキング機能に安全且つ効率的にアクセスする手法を提供することができる。さらに、本開示は、操作をモバイル機器からサーバにオフロードすることを可能にし、これにより、ネイティブ・モバイルアプリを実行する際にモバイル機器が使用する処理リソースを削減し、モバイル機器における電力消費を削減することができる。
本開示の態様は、モバイルバンキングの文脈で説明されているが、そのような説明は限定的ではない。他の実施では、本明細書に記載されたシステム及び方法は、任意のタイプの安全化されたデータへのアクセスを可能にする。特定の例として、本開示の態様は、モバイル機器及びバックエンドサーバが、オンライン小売業者などのオンライン商人との間で、安全化されたデータにアクセスすることを可能にできる。安全化されたデータには、口座残高、注文履歴、現在の注文、その他の情報が含まれる場合がある。別の特定の例として、本開示の態様は、モバイル機器及びバックエンドサーバが、雇用者のプライベートネットワークなどのプライベートネットワーク上の安全化されたデータにアクセスすることを可能にできる。したがって、本開示の態様は、複数の種類の安全なデータへのアクセスを可能にする。
図1を参照すると、システムの例示的な態様が示され、全体として100で示される。システム100は、携帯電話、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、ウェアラブルコンピューティングデバイス、ポータブルメディアプレーヤ、車両のコンピューティングデバイスなどのモバイル機器110を含む。モバイル機器110は、1つ以上のアプリケーション(「アプリ」)に対応するプロセッサ実行可能命令及びデータを格納するメモリを含む。例えば、モバイル機器110は、ネイティブアプリ112を含むことができる。モバイル機器110は、プロセッサ実行可能命令を実行するように構成されたプロセッサも含む。モバイル機器110は、1つ以上の他のデバイスと通信するように構成された無線送受信機も含む。
実施例によっては、本明細書で更に説明するように、ネイティブアプリ112は、特定の銀行又は特定の信用組合などの金融機関に固有のモバイルバンキングアプリケーションの「ブランド化された」バージョンであってもよい。特定の態様では、モバイル機器110のユーザは、ネイティブアプリ112をアプリのストアフロントからダウンロードすることができる。実施例によっては、ネイティブアプリ112は、名前、ロゴ、配色、書体スキームなどのブランディングコンポーネントを追加することにより、汎用ネイティブアプリテンプレートに基づいて生成することができる。モバイルバンキングの場合、ネイティブアプリ112は、口座残高操作、資金移動操作、クレジットカード決済操作、入金操作、出金操作、手形支払い操作、取引履歴操作などの銀行業務を実行するように構成することができる。
システム100は、バックエンドサーバ120を含む。(代替例では、複数のバックエンドサーバに対応できる)バックエンドサーバ120は、ネイティブアプリ112をサポートするためにモバイル機器110とインタラクトする(対話する)ように構成される。例えば、バックエンドサーバ120は、本明細書で更に説明するように、バックエンド統合を提供し、ネイティブアプリ112の機能をサポートするヘッドレスブラウザ122を実行することができる。さらに説明すると、本明細書で更に記載するように、ヘッドレスブラウザ122によって生成された情報を、別のデバイスへの送信のためにバックエンドサーバ120からモバイル機器110に渡すことができる。ネイティブアプリ112は、ユーザに表示されるGUI113を有することができるが、ヘッドレスブラウザ122は、ユーザに表示されるGUIを含まない。バックエンドサーバ120は、プロセッサと、本明細書で説明する操作のうちの1つ以上を実行するためのプロセッサ実行可能命令を格納するメモリとを含む。バックエンドサーバ120は、インターネットなどの1つ以上のネットワークを介して、モバイル機器110又はサードパーティのサーバなどの1つ以上のデバイスと通信するように構成された送受信機も含む。
システム100は、モバイル機器110から離れて配置されたWebサーバ130も含む。(代替例では複数のWebサーバに対応できる)Webサーバ130は、Webサイト132を提供するように構成することができる。特定の実施例では、Webサイト132は、インターネットバンキングのWebサイトであってもよい。態様によっては、Webサイト132は、インターネットバンキングWebサイトの「デスクトップ」バージョンであってもよい。例えば、Webサイト132は、モバイル機器での提示用にフォーマットされたコンテンツのモバイルバージョンよりむしろ、デスクトップ又はラップトップコンピュータでの提示用にフォーマットされたコンテンツを配信することができる。したがって、態様によっては、Webサイト132は、通常、例示的なコンピュータ150などのコンピュータにおけるユーザによって、その金融機関にログインし、インターネットバンキング機能を実行するために使用できる。他の態様では、Webサイト132は、モバイルブラウザでの提示用にフォーマットされたコンテンツを有してもよい。Webサイト132は、コンピュータ150のユーザが、銀行口座に関する情報など、安全化されたデータ140にアクセスすることを可能にできる。別の例として、Webサイト132は、コンピュータ150のユーザが口座残高、取引履歴、及びクレジットカード情報を閲覧することを可能にできる。さらに別の例として、Webサイト132は、コンピュータ150のユーザが口座間で資金を移動することを可能にできる。
操作中、モバイル機器110とバックエンドサーバ120は、Webサイト132がモバイル機器用にフォーマットされていないコンテンツを含んでいても、Webサイト132を用いて安全化されたデータ140にアクセスするために協働することができる。例えば、ネイティブアプリ112は、バックエンドサーバ120とWebサイト132(又はWebサーバ130)との間の通信を可能にするために、構成可能なネットワークサービス115を起動することができる。構成可能なネットワークサービス115は、モバイル機器110から情報又はユーザインタラクションを受信し、情報又はユーザインタラクションをモバイル機器110から発信されたかのように見えるように修正しながら、Webサーバ130に渡すように構成可能である。例えば、メッセージのヘッダは、バックエンドサーバ120の代わりに、モバイル機器110をメッセージの発信元として示すように修正されてもよい。例えば、バックエンドサーバ120に関連付けられたIPアドレス又は他の識別情報は、モバイル機器110に関連付けられたIPアドレス又は他の識別情報に置き換えてもよい。このように、構成可能なネットワークサービス115は、バックエンドサーバ120に匿名性を提供することができる。構成可能なネットワークサービス115は、本明細書で更に説明するように、Webサーバ130からレスポンス又はデータも受信し、レスポンス又はデータをバックエンドサーバ120に転送する。
ネイティブアプリ112は、起動時(例えば、実行時)に構成可能なネットワークサービス115を起動するように構成される。構成可能なネットワークサービス115を初期化した後、ネイティブアプリ112は、バックエンドサーバ120との登録プロセスの一部として、登録データ124を生成する。登録データ124は、ネイティブアプリ112に関連付けられたアプリケーション識別子(例えば、一意のアプリID)を示す。登録データ124は、構成可能なネットワークサービス115に関連付けられたアドレスデータも示す。例えば、登録データ124は、構成可能なネットワークサービス115に割り当てられたインターネットプロトコル(IP)アドレス及びポートを示すことができる。モバイル機器110は、登録データ124をバックエンドサーバ120へ送信し、ネイティブアプリ112をバックエンドサーバ120に登録する。実施によっては、登録データ124は、構成可能ネットワークサービス115への安全なアクセスを可能にする1つ以上のクレデンシャル(例えば、ユーザ名、パスワードなど)を示すクレデンシャルデータを含む。クレデンシャルデータ(資格データ)は、バックエンドサーバ120と構成可能なネットワークサービス115との間の安全な接続のセットアップ中に、バックエンドサーバ120(又は他の関連するバックエンドサーバ)を認証するために使用できる。他のデバイスにはクレデンシャルデータがなく、構成可能なネットワークサービス115に接続できない。特定の実施では、クレデンシャルデータは、登録データ124の一部としてバックエンドサーバ120に渡されるランダムな文字列のランダムに生成された組み合わせを示す。他の実施では、登録データ124はクレデンシャルデータを含まず、構成可能なネットワークサービス115との接続を確立しようとするデバイスを認証するために他の方法が使用される。非限定的な例として、構成可能なネットワークサービス115との安全な接続のセットアップ中にバックエンドサーバ120を認証するために、安全なハンドシェイクプロトコルを使用できる。
バックエンドサーバ120は、ヘッドレスブラウザ122を起動するために登録データ124を用いるように構成される。例えば、バックエンドサーバ120は、登録データ124に基づいて、ヘッドレスブラウザ122のインスタンスをインスタンス化することができる。例えば、バックエンドサーバ120は、ヘッドレスブラウザ122をインスタンス化してもよく、ヘッドレスブラウザ122とクッキー、キャッシュ、アドレス情報などの関連情報をアプリケーション識別子と関連付けてもよい。アプリケーション識別子を用いてヘッドレスブラウザ122を他の情報と関連付けることによって、バックエンドサーバ120は、モバイル機器110のユーザに関する個人情報又は識別可能な情報を格納せずに、ヘッドレスブラウザ122をモバイル機器110と関連付けることを可能にする。例えば、(オプションのクレデンシャルデータを含む)登録データ124は、Webサイト132にアクセスするために用いられるユーザ名及びパスワードなどのアクセス・クレデンシャルデータとは異なるものである。このような個人情報の保管には、1つ以上の法規制やその他の規則に従って、より高度なセキュリティが要求される場合がある。
バックエンドサーバ120は、登録データに基づいて、ヘッドレスブラウザ122と構成可能なネットワークサービス115との間の安全な接続を開始する。例えば、バックエンドサーバ120は、バックエンドサーバのIPアドレス及びポートと、構成可能なネットワークサービス115に対応する(及び登録データ124によって示される)IPアドレス及びポートとの間の安全な接続を開始することができる。特定の実施では、安全な接続は暗号化されたネットワークトンネルである。例えば、暗号化されたネットワークトンネル(カプセル化通信路)は、セキュアシェル(ssh)プロトコルを用いて作成され、それによって(例えば、sshを用いて)ネットワークトンネルが暗号化される。バックエンドサーバ120がネイティブアプリ112から第1のリクエストを受信すると、安全な接続が開始される。安全な接続は、セキュリティを提供するために(例えば、許可されていないデバイスが構成可能なネットワークサービス115にアクセスするのを防ぐために)、登録データ124(例えば、クレデンシャルデータ)を用いて初期化できる。安全な接続が確立されると、ネイティブアプリ112が閉じられるまで、安全な接続は構成可能なネットワークサービス115を用いるように構成されたままであり、閉じられた時点で安全な接続は「切断」(例えば無効化)される。特定の実施では、モバイル機器110及び構成可能なネットワークサービス115に関連付けられたIPアドレス又はポートが変更されると、ネイティブアプリ112は登録データ124を更新し、更新された登録データ124に基づいて安全な接続が再構成される。
モバイル機器110のユーザがネイティブアプリ112とインタラクトするとき、ネイティブアプリ112はリクエスト125を発行することができる。例えば、モバイル機器110のユーザは、ネイティブアプリ112を用いてユーザの銀行にログインしようと試みることができる。ネイティブアプリ112は、Webサイト132にログオンするためのリクエスト125を生成することができる。ログインのリクエストについて説明したが、リクエスト125は、特定のWebページからのデータのリクエストや、トランザクションの実行リクエスト(例えば、請求書支払いのリクエスト、資金移動のリクエストなど)のような実行すべきコマンドのリクエストなど、どのような種類のリクエストであってもよい。
特定の実施では、リクエストは、Webサイト132にログインするためのリクエストである。この実施では、リクエスト125は、アクセス・クレデンシャルデータ114を含む。例えば、ネイティブアプリ112は、ユーザのユーザ名及びパスワードをバックエンドサーバ120へ送信することができる。実施例によっては、アクセス・クレデンシャルデータ114は、タッチスクリーンなどのモバイル機器110のユーザ入力装置を介して受信される。或いは、アクセス・クレデンシャルデータ114は、モバイル機器110のメモリから取得されてもよい。
リクエスト125は、モバイル機器110からバックエンドサーバ120へ送信される。バックエンドサーバ120はリクエスト125を受信し、ヘッドレスブラウザ122はリクエスト125に基づいて第2のリクエスト126を生成する。例えば、ヘッドレスブラウザ122は、情報のためのリクエストを生成してもよいし、リクエストされたコマンドの実行を開始してもよい。例えば、バックエンドサーバ120は、ヘッドレスブラウザ122を用いて、デスクトップインターネットバンキングのWebサイトの場合にはコンピュータ(例えば、コンピュータ150)のブラウザ、又はモバイルインターネットバンキングのWebサイトの場合にはモバイル機器110のブラウザなどの非ヘッドレスブラウザからWebサイト132にログインするリクエストをエミュレートすることができる。第2のリクエスト126は、バックエンドサーバ120が第2のリクエスト126の発信元であることを示す第1のヘッダ127を含む。上述したように、特定の実施では、第2のリクエスト126は、Webサイト132にログインするためのリクエストである。この実施では、第2のリクエスト126は、アクセス・クレデンシャルデータ114を示す。例えば、ネイティブアプリ112からのリクエスト125は、HTTP GET/POSTコマンドなどを用いるなどして、ヘッドレスブラウザ122にWebサイト132のログインページをリクエストさせ、ユーザ名及びパスワードをWebサイト132へ送信させることができる。アクセス・クレデンシャルデータ114(例えば、ユーザ名とパスワード)は、第2のリクエスト126を生成するためにのみ用いられ、その後は破棄される。特定の実施では、アクセス・クレデンシャルデータ114は、バックエンドサーバ120に格納されない。これにより、アクセス・クレデンシャルデータ114が格納されないので、悪意のある侵入者によって検索されることが不可能なため、ユーザのセキュリティを向上することができる。代替の実施では、バックエンドサーバ120は、1つ以上のガイドライン又は規則に従って、セキュアストレージを実装し、アクセス・クレデンシャルデータ114はバックエンドサーバ120に格納される。
ヘッドレスブラウザ122は、アプリケーション・プログラミング・インターフェース(API)フィンガープリントデータ121にアクセスして、第2のリクエスト126を生成することができる。APIフィンガープリントデータ121は、Webサイト132とネイティブアプリ112との間のマッピングを示すデータを含む。例えば、Webサイト132のAPIフィンガープリントデータは、Webサイト132の特徴と、ネイティブアプリ112のGUI113の1つ以上の要素(ボタン、フィールド、画面)との間のマッピングを示す。例示的な一実施例として、APIフィンガープリントデータ121は、ユーザ名、パスワード、ログインボタン、又はそれらの組み合わせについて、Webサイト132とネイティブアプリ112との間のマッピングを示す。APIフィンガープリントデータ121は、Webサイト132のアドレス(例えば、URLアドレス)、又はログインページなどのWebサイト132の特定のページも識別できる。APIフィンガープリントデータ121は、ユーザがログイン、認証、及びインターネットバンキングで可能な他のアクションを取るために用いられるインターネットバンキングサービス経路の「フィンガープリント」も含むことができる。さらに説明すると、APIフィンガープリントデータ121は、多要素認証がWebサイト132へのアクセスを可能にするために使用される場合、多要素認証中に使用されるサービス経路を示すことができる。APIフィンガープリントデータ121は、(例えば、ネイティブアプリ112とWebサイト132との間に実際のAPIがないにもかかわらず)(ヘッドレスブラウザ122を介した)ネイティブアプリとWebサイトとの間の「埋め込まれた」(又は「注入された」)APIを形成するために使用することができる。例えば、APIフィンガープリントデータ121は、ネイティブアプリ112が、ヘッドレスブラウザ122を介して、Webサイト132と、あたかもネイティブアプリ112がWebサイト132との使用のために設計されたかのように通信することを可能にする。
実施によっては、(APIフィンガープリントデータ121を含む)APIフィンガープリントデータのデータベースは、バックエンドサーバ120にアクセス可能であり、バックエンドサーバ120は、非限定例として、金融機関の名称(又は部分名称)又はWebサイト132のアドレスなど、Webサイト132に関連付けられた識別子に基づいて特定のAPIフィンガープリントデータを取得する。或いは、バックエンドサーバ120は、Webサイト132から取得されたデータに対して、1つ以上のスクリーンスクレイピング操作(データ取得操作)、1つ以上のJavascript注入操作、他のプログラミング言語に従った1つ以上の操作、1つ以上の文書オブジェクトモデル(DOM)検査操作、又はそれらの組み合わせを行うことによってAPIフィンガープリントデータ121を生成するように構成されてもよい。このデータは、本明細書で更に説明するように、Webサイト132から取得できる。
第2のリクエス126を生成した後、バックエンドサーバ120は、Webサーバ130への送信のために、第2のリクエスト126をモバイル機器110の構成可能なネットワークサービス115へ送信する。第2のリクエスト126は、Webサイト132に対応する。特定の例として、第2のリクエスト126は、Webサイト132にログインするためのリクエストを含むことができる。ただし、第2のリクエスト126をWebサーバ130へ直接送信する代わりに、バックエンドサーバ120は、第2のリクエスト126をモバイル機器110へ(例えば、構成可能なネットワークサービス115へ)送信する。例えば、バックエンドサーバ120は、ヘッドレスブラウザ122と構成可能なネットワークサービス115との間の安全な接続を介して第2のリクエスト126を送信することができる。
モバイル機器110は、バックエンドサーバ120から第2のリクエスト126(例えば、第1のデータパケット)を受信する。モバイル機器110は、第2のリクエスト126を修正して、第3のリクエスト136(例えば、修正された第1のデータパケット)を生成する。例えば、構成可能なネットワークサービス115は、第1のヘッダ127を修正して、第3のリクエスト136の第2のヘッダ137を生成することができる。第2のヘッダ137は、モバイル機器110を第3のリクエスト136の発信元として示す。さらに説明すると、構成可能なネットワークサービス115は、第1のヘッダ127を修正して、バックエンドサーバ120に関連付けられた任意のアドレス(例えば、IPアドレス)又は識別情報を削除し、この情報をモバイル機器110のアドレス(又は他の識別情報)に置き換える。
モバイル機器110は、構成可能なネットワークサービス115からWebサイト132への安全な接続の形成を開始する。特定の実施では、安全な接続はセキュア・ソケット・レイヤ(SSL)接続である。安全な接続を形成した後、モバイル機器110は、第3のリクエスト136をWebサイト132へ送信する。
Webサーバ130は、第3のリクエスト136を受信し、第3のリクエスト136を処理する。特定の実施では、第3のリクエスト136は、Webサイト132にログインするためのリクエストであり、アクセス・クレデンシャルデータ114を示す。Webサーバ130は、検証のためにネイティブ・アプリ112からアクセス・クレデンシャルデータ114を受信することができる。例えば、Webサーバ130は、アクセス・クレデンシャルデータ114を以前に格納されたアクセス・クレデンシャルデータと比較するように構成されたソフトウェアを含むことができる。或いは、Webサーバ130は、アクセス・クレデンシャルデータ114を認証サーバに転送することができる。具体的な実施によっては、アクセス・クレデンシャルデータはデバイスの安全な要素(キーチェーン又はキーストア)に格納され、ログオン操作を続行するために短期間Webサーバへ送信される。アクセス・クレデンシャルデータ114が検証された後、Webサーバ130は、Webページデータ134を構成可能なネットワークサービス115へ送信することができる。例えば、Webページデータ134は、コンピュータ150のユーザがWebサイト132のログインプロセスを完了した後にコンピュータ150へ送信されるであろうWebサイト132のWebページに対応できる。したがって、Webページデータ134は、ユーザの名前、ユーザの口座番号、口座残高、及び/又はユーザの当座預金口座、普通預金口座、クレジットカード口座、マネーマーケット口座、ローン口座、投資口座などのうちの1つ以上に対応する他の情報などのユーザ固有のデータを含むことができる。
構成可能なネットワークサービス115は、Webページデータ134を受信し、ヘッドレスブラウザ122による構文解析のためにWebページデータ134をバックエンドサーバ120に転送する。例えば、構成可能なネットワークサービス115は、Webページデータ134を安全な接続を介してヘッドレスブラウザ122へ送信することができる。バックエンドサーバ120は、モバイル機器110から(例えば、構成可能なネットワークサービス115から)Webページデータ134を受信し、Webページデータ134を処理する。例えば、バックエンドサーバ120は、ヘッドレスブラウザ122を用いて、Webページデータ134を構文解析して、ユーザ固有のデータを識別することができる。さらに説明すると、バックエンドサーバ120は、Webページデータを構文解析してユーザ固有のデータを識別し、ネイティブアプリ112にマッピングされる要素を識別するように構成された構文解析及びマッピングコンポーネント123を含むことができる。例えば、構文解析及びマッピングコンポーネント123は、Webページデータ134に対してスクリーンスクレイピング又はWebスクレイピング操作を実行して、ユーザの名前、ユーザの口座番号、口座残高、又は他の情報などのユーザ固有のデータを識別することができる。実施例によっては、ヘッドレスブラウザは、Webサイト132の様々なWebページ及び機能と、ネイティブアプリ112の対応するGUI要素(例えば、フィールド、ボタン、画面など)との間のマッピング(例えば、APIフィンガープリントデータ121)にアクセスすることができる。例えば、このようなマッピングは、スクリーンスクレイピング操作を使用して決定することができる。このように、ネイティブアプリ112の異なるバージョンは、異なる金融機関、異なるインターネットバンキングのWebサイト又はサービスなどのために展開することができる。ヘッドレスブラウザ122の外部として図示されているが、構文解析及びマッピングコンポーネント123は、非限定的な例として、ヘッドレスブラウザ122を用いて、スクリーンスクレイピング操作、Webスクレイピング操作、又はJavascript注入操作などの操作を実行することができる。このように、構文解析及びマッピングコンポーネント123は、実施によっては、ヘッドレスブラウザ122の内部にすることができる。
ユーザ固有の情報を識別した後、バックエンドサーバ120は、ネイティブアプリ112のGUI113に表示するために、ユーザ固有の情報をネイティブアプリ112へ送信する。例えば、GUI113は、ユーザの名前、ユーザの口座番号、口座残高、又は他の情報を表示することができる。このようにして、モバイル機器110及びバックエンドサーバ120は、ネイティブアプリ112を介してモバイル機器110でモバイルバンキング機能を提供することができる。ログイン操作について説明してきたが、他のタイプの操作も同様に進行することができる。例えば、トランザクションを実行するコマンド(例えば、請求書の支払い、資金の送金など)の受信に応答して、ネイティブアプリ112は、トランザクションデータをバックエンドサーバ120のヘッドレスブラウザ122へ送信する。ヘッドレスブラウザ122は、トランザクションデータを、Webサーバ130への送信のために構成可能なネットワークサービス115へ送信する。トランザクションデータを送信する前に、構成可能なWebサーバは、トランザクションデータがモバイル機器110から発信されたように見えるように、トランザクションデータを修正する。修正後、モバイル機器110の構成可能なネットワークサービス115は、トランザクションデータを処理のためにWebサイト132へ送信する。トランザクションデータの送信に応答して追加のWebページデータ(例えば、確認)を受信した場合、構成可能なネットワークサービス115は、構文解析のために追加のWebページデータをバックエンドサーバ120のヘッドレスブラウザ122に渡し、任意のユーザ固有のデータ(又は他の表示可能データ)がGUI113を介して表示のためにバックエンドサーバ120からネイティブアプリ112へ提供される。このように、ネイティブアプリ112は、バックエンドサーバ120と協働することによって、様々なオンラインバンキング機能をサポートすることができる。
バックエンドサーバ120でのヘッドレスブラウザ122の操作中に、永続状態データ129を生成できる。永続状態データ129は、Webサイト132へのログオンに関連付けられた1つ以上のクッキーを含む。永続状態データ129は、ユーザトランザクションデータ、画像、及び/又はメタデータなどのキャッシュ(又は他の一時的に格納されたデータ)も含むことができる。この情報は、ネイティブアプリ112が次に起動されたときに、Webサイト132との、(多要素認証を含む場合がある)ログインプロセスを回避するために又はログイン時の多要素認証を回避するために(最初のログイン後、モバイル機器110は所定のユーザにとって既知のデバイスとなるので)ヘッドレスブラウザ122のセッションに情報を取得しロードするように、ネイティブアプリ112が閉じられたときにデータベースに格納されるようにできる。例えば、バックエンドサーバ120は、モバイル機器110から、ネイティブアプリ112が閉じられているという表示を受信することができる。この表示の受信に応答して、バックエンドサーバ120は、永続状態データ129をブラウザの状態データベース128に格納する。特定の実施では、ブラウザの状態データベース128は、バックエンドサーバ120の外部にあり、バックエンドサーバ120にアクセス可能である。他の実装では、ブラウザの状態データベース128は、バックエンドサーバ120に格納される。実施によっては、ブラウザの状態データベース128に格納されたデータは、格納前に暗号化される。
格納された永続状態データ129は、ネイティブアプリ112が再び起動されるときに使用できる。例えば、ネイティブアプリ112が起動されると、ネイティブアプリ112は、登録データ124をバックエンドサーバ120へ送信する。登録データ124を受信した後、バックエンドサーバ120は、ブラウザの状態データベース128にアクセスし、ネイティブアプリ112に関連付けられた(そして登録データ124によって示された)特定のアプリケーション識別子に対して永続的な状態情報が見つかったかどうかを判断する。永続状態データ129が見つかったことに応答して(例えば、登録データ124が示すアプリケーションIDと永続状態データ129に関連付けられたアプリケーションIDとの間の一致に応答して)、永続状態データ129が取得され、ヘッドレスブラウザ122のインスタンスにロードされる。永続状態データ129は、Webサイト132へのログオンに関連付けられた1つ以上のクッキーを含むので、永続状態データ129は、ヘッドレスブラウザ122が、多要素認証プロセスを含むことができる認証プロセスを実行せずにWebサイト132に(構成可能なネットワークサービス115を介して)接続することを可能にし、又は最初のログイン成功後、モバイル機器110が所定のユーザにとって既知のデバイスであるので、最初のログイン後の多要素認証プロセスがスキップされることがある。例えば、ユーザは、特定の時間(例えば、10分から15分)の非アクティブの後にWebサイト132からログアウトされ、Webサイト132に再ログインする際に、ヘッドレスブラウザ122がクッキーを用いてWebサーバ130によるモバイル機器110の再認証を引き起こすので、ユーザは多要素認証をスキップできる。さらに、バックエンドサーバが複数ある場合、ヘッドレスブラウザのセッションは、永続状態データ129の使用により、後で別のバックエンドサーバで再作成することが可能である。
代替の実施では、永続状態データ129はモバイル機器110に格納される。例えば、バックエンドサーバ120は、ネイティブアプリ112が閉じられようとする表示を受信した後、永続状態データ129をモバイル機器110へ送信し、モバイル機器110は、永続状態データ129をメモリに格納する。この代替の実施では、モバイル機器110は、次にネイティブアプリ112が起動したときに、永続状態データ129をバックエンドサーバ120へ提供することができる。
Webサイト132へのコンピュータログインをエミュレートし、ユーザ固有の情報をGUI113に表示することによって、(バックエンドサーバ120におけるヘッドレスブラウザ122とインタラクトする)ネイティブアプリ112は、モバイル機器110のユーザによる安全化されたデータ140への読み取りアクセスを可能にできることが理解されよう。本開示の手法は、読み取り専用アクセスに限定されない。例えば、ネイティブアプリ112の操作中、ネイティブアプリ112は、例示的な非限定的な実施例として、2つのアカウント間で資金を転送するコマンドなどのユーザコマンドを受信することができる。これに応答して、ネイティブアプリ112からの情報に基づいて、ヘッドレスブラウザ122は、安全化された接続を介してWebサイト132へ送信するためのトランザクションデータを構成可能なネットワークサービス115へ送信し、トランザクションデータは、安全なデータ140に対して行われる修正を示す。例えば、トランザクションデータは、Webサイト132上で資金移動操作をリクエストする際にコンピュータ150によって発行されるであろうHTTPコマンドに対応することができる。したがって、Webサイト132から見れば、コンピュータから発信されるトランザクションデータと、モバイル機器110で構成可能なネットワークサービス115によって送信されるトランザクションデータとの間に差はない。トランザクションデータを受信すると、Webサーバ130は、安全化されたデータ140を修正するためのアクションをとることができる(例えば、資金移動操作を開始することができる)。安全化されたデータ140への修正が実行された後、Webサイト132は、安全化されたデータ140への修正(例えば、資金移動操作の完了)を確認するためにモバイル機器110に取引確認を送信でき、取引確認は、バックエンドサーバに提供されて、バックエンドサーバによって処理され、オプションとしてネイティブアプリ112のGUI113に表示するためにモバイル機器110へ送信できる。ユーザのアカウントの新しい残高も、ネイティブアプリ112が(バックエンドサーバ120との組み合わせで)次に安全化されたデータ140に対して読み取り操作を行うときにも、GUI113に表示することができる。
実施例によっては、ネイティブアプリ112は、インターネットバンキングWebサイト132を介して通常は利用できない追加のソフトウェア及び機能へのアクセスを可能にできる。例えば、ネイティブアプリ112は、モバイル機器110上のハードウェア/ソフトウェアインターフェースを介して、他のソフトウェア及びモバイル機器110の基礎となるハードウェア、又はサードパーティのサービス若しくはデバイスとインタラクトするための別の機能又は統合を含むことができる。例えば、ネイティブアプリ112は、自動預払機(ATM)ソフトウェアプロバイダ又はネットワークとの統合を有し、モバイル機器110の短距離無線送受信機を利用してATMとの非接触認証を実行することができる。
別の例として、ネイティブアプリ112は、安全なネットワーク接続を介してインターネットにアクセスし、インターネットバンキングWebサイト132と通信するためにAPIに依存するのではなく、ピアツーピア資金移動サービスなどの外部サービスと直接インタラクトすることができる。例えば、ネイティブアプリが本開示に従って操作するモバイル機器上にネイティブアプリを持っている2人のユーザを考えてみよう。ネイティブアプリは、同じ金融機関向けの場合もあれば、異なる金融機関向けの(したがって、関連するブランディングを含む)場合もある。各ユーザは、モバイル機器上でネイティブアプリとインタラクトすることができ、ネイティブアプリはサードパーティのピアツーピア資金移動サービスと統合されている(ただし、ピアツーピア資金移動サービスは銀行との統合を有していない)。ネイティブアプリは、クリアリングハウス/ルーティング及び/又はデビット/クレジットカード情報など、各ユーザのアカウント情報にアクセスできる。例えば、そのような情報は、以前にユーザによって提供されたかもしれないし、銀行のバンキングWebサイトとインタラクトするためにヘッドレスブラウザを用いて特定されたかもしれない。この情報とネイティブアプリは、サードパーティのピアツーピアサービスを介した送金を容易にするために用いられる場合がある。態様によっては、アカウント情報の入力をリクエストする代わりに、2つのモバイル機器を近接させることを、安全でローカルなディスカバリーオプションとして用いることができる。例えば、それぞれのネイティブモバイルバンキングアプリを実行している近くにあるモバイル機器の場合、認証は自動的に行われる場合がある。モバイル機器がアプリを実行していない場合でも、アプリは、デバイス機能又はサービス、全地球測位システム(GPS)、短距離無線ネットワーキング、アプリケーションレベルのハンドシェイクなどを介して、互いに「見つける」ことができる。例えば、ネイティブアプリは、モバイル機器に対して、「ディスカバリーモードで互換性のあるモバイルバンキングアプリを有し、過去30秒以内にサードパーティのサーバに登録し、私の1メートル以内にGPS座標を持っているすべてのユーザを表示する」ようにリクエストすることができる。
図1のシステム100は、したがって、ネイティブアプリ112とレガシーバンキングシステムとの間の専用のバックエンド統合を必要とせずに、ネイティブアプリ112による安全化されたデータ140への読み取り及び書き込みアクセスを可能にすることができる。一部の操作(例えば、ヘッドレスブラウザ122の操作)がモバイル機器110からバックエンドサーバ120にオフロードされるので、ネイティブアプリ112は、すべての操作がモバイル機器110によって実行される実施よりも少ない処理リソースを使用し、モバイル機器110における電力消費を低減できる。消費電力が低減されるため、ネイティブアプリ112は、コンピュータ化された時計や他のデバイスなどの、より厳しい電力要件を有するデバイスで実行可能にできる。さらに、構成可能なネットワークサービス115は、バックエンドサーバ120に匿名性を提供するので(例えば、Webサイト132へのアクセスは、バックエンドサーバ120ではなくモバイル機器110で発生するように見えるので)、Webサイト132を提供する機関は、モバイル機器110によるアクセスをブロックしそうにない。さらなる利点は、バックエンドサーバ120にアクセス・クレデンシャルデータ114を格納するシステムと比較して、セキュリティを向上することである。さらに、Webアプリ、ハイブリッドアプリ、又は(例えば、コンピュータ150によって実行されるような)従来のWebページアクセスの代わりにネイティブアプリ112を利用することによって、パフォーマンス及び/又はユーザエクスペリエンスが改善される場合がある。
図2は、ヘッドレスブラウザを実行するサーバと統合されたネイティブアプリケーションを実行するモバイル機器からの安全化されたデータアクセスをサポートするシステム200の別の態様を示す。システム200は、モバイル機器202、第1のバックエンドサーバ220、第2のバックエンドサーバ224、及びサードパーティのWebサーバ240を含む。特定の実施では、モバイル機器202はモバイル機器110を含むか又はそれに対応し、第1のバックエンドサーバ220及び第2のバックエンドサーバ224はバックエンドサーバ120を含むか又はそれに対応し、第3のWebサーバ240は図1のWebサーバ130を含むか又はそれに対応する。2つのバックエンドサーバ220及び224が図示されているが、他の実施では、2つ以上のバックエンドサーバがシステム200に含まれてもよく、又は単一のバックエンドサーバがバックエンドサーバ220及び224を参照して説明したすべての操作を実行してもよい。
モバイル機器202は、ネイティブ・モバイルアプリ203を実行するように構成される。特定の実施では、ネイティブ・モバイルアプリ203は、図1のネイティブアプリ112を含むか又はそれに対応する。ネイティブ・モバイルアプリ203は、ユーザインターフェース(UI)/プレゼンテーションコード204、構成可能なネットワークサービス206、アプリ/サービス登録コンポーネント208、及びリモートAPIアクセス・コンポーネント210を含む。第1のバックエンドサーバ220は、アプリ/サービスディレクトリサービス222を含み、第2のバックエンドサーバ224は、API/Web API226、ヘッドレスブラウザ管理API 228、及びヘッドレスブラウザ230を含む。特定の実施では、構成可能なネットワークサービスは、構成可能なネットワークサービス115を含むか、又はそれに対応し、ヘッドレスブラウザ230は、図1のヘッドレスブラウザ122を含むか、又はそれに対応する。UI/プレゼンテーションコード204、構成可能なネットワークサービス206、アプリ/サービス登録コンポーネント208、及びリモートAPIアクセス・コンポーネント210の各々は、モバイル機器202のプロセッサに本明細書に記載の操作を実行させる、プロセッサ実行可能命令を含んでもよい。代替の実施では、UI/プレゼンテーションコード204、構成可能ネットワークサービス206、アプリ/サービス登録コンポーネント208、及びリモートAPIアクセス・コンポーネント210の1つ以上は、FPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などのハードウェアに実装されてもよい。
UI/プレゼンテーションコード204は、ネイティブ・モバイルアプリ203のユーザインターフェース要素を提供することに加えて、GUI(例えば、図1のGUI113)及び他の視覚コンテンツを介したような表示を生成するように構成される。例えば、UI/プレゼンテーションコード204は、ボタン、フィールド、ボックス、及びテキスト情報などの要素、例えば、ユーザ名、口座番号、口座残高、又は他の情報を含むユーザ固有の情報を含むネイティブ・モバイルアプリ203の表示を生成する責任を負う。UI/プレゼンテーションコード204も、本明細書で更に説明するように、サードパーティのWebサーバ240からの安全化されたデータにアクセスするために、第2バックエンドサーバ224のヘッドレスブラウザ230にアクセスするように構成される。
構成可能なネットワークサービス206は、第2のバックエンドサーバ224から(例えば、第2のバックエンドサーバ224によって実行されるヘッドレスブラウザ230から)リクエストを受け取り、リクエストを第3のWebサーバ240に転送するように構成される。例えば、構成可能なネットワークサービス206は、非限定的な例として、HTTP又はHTTPSリクエストを受信してもよく、リクエストをサードパーティのWebサーバ240へ送信することができる。リクエストを送信する前に、構成可能なネットワークサービス206は、リクエストが第2のバックエンドサーバ224ではなくモバイル機器202から発信されたように見えるように、リクエストを修正する。例えば、構成可能なネットワークサービス206は、リクエストのヘッダを監視して、モバイル機器202をリクエストの発信元として示すことができる。構成可能なネットワークサービス206は、本明細書で更に説明するように、第2のバックエンドサーバ224によって実行されるヘッドレスブラウザ230と安全な接続を形成し、構成可能なネットワークサービス206がヘッドレスブラウザ230からのリクエストをサードパーティのWebサーバ240に安全にルートし、サードパーティのWebサーバ240からのレスポンスを処理のためにヘッドレスブラウザ230にルートできるように構成可能である。
アプリ/サービス登録コンポーネント208は、ネイティブ・モバイルアプリ203をバックエンドサーバ220及び224に登録するように構成される。例えば、ネイティブ・モバイルアプリ203が起動されると、アプリ/サービス登録コンポーネント208は、第1のバックエンドサーバ220へ送信される登録データを生成する。登録データは、構成可能なネットワークサービス206に割り当てられたIPアドレス及びポートに加えて、ネイティブ・モバイルアプリ203のネイティブ・モバイルアプリID(例えば、任意のデバイス上のネイティブ・モバイルアプリ203の各インスタンスに固有なID)を含む。登録データは、構成可能ネットワークサービス208とヘッドレスブラウザ230との間の安全な接続のセキュリティを提供するために使用される1つ以上のクレデンシャル(例えば、ユーザ名及びパスワードなど)を示すクレデンシャルデータも任意選択で含む。クレデンシャルデータは、Webサイト242へのログインに用いられるアクセス・クレデンシャルデータ(例えば、異なるユーザ名及び異なるパスワード)とは異なるものである。例えば、クレデンシャルデータは、ユーザとは無関係にネイティブ・モバイルアプリ203によって生成することができ、一方、アクセス・クレデンシャルデータは、Webサイト242でモバイルバンキング機能にアクセスするためにユーザによって確立されるユーザ名及びパスワードを含む。特定の実施では、クレデンシャルデータは、ネイティブ・モバイルアプリ203によってランダムに生成され、登録データの一部として第1のバックエンドサーバ220に渡される。登録データは、第1のリクエストがリモートAPIアクセス・コンポーネント210から第2のバックエンドサーバ224へ送信されたときなど、ヘッドレスブラウザ管理API228によって、新しいヘッドレスブラウザインスタンスをセットアップするために使用される。アプリ/サービス登録コンポーネント208も、モバイル機器202でIPアドレスの変更が発生するたびに登録データをリフレッシュ(例えば、更新)するように構成される。例えば、モバイル機器202がセルラーネットワーク(例えば、LTEネットワーク)からWi-Fiネットワークに移行する場合、又はインターネットサービスプロバイダ(ISP)が割り当てられたIPアドレスを動的に変更する場合、アプリ/サービス登録コンポーネント208は登録データを更新して新しいIPアドレス(又は他の変更)を示し、更新した登録データを第1のバックエンドサーバ220へ送信する。
リモートAPIアクセス・コンポーネント210は、UI/プレゼンテーションコード204からのリクエストを第2のバックエンドサーバ224に渡すように構成される。例えば、リモートAPIアクセス・コンポーネント210は、ネイティブ・モバイルアプリ203の表示を生成するために必要なデータをUI/プレゼンテーションコード204に提供するために、リクエストを第2のバックエンドサーバ224へ送信し、第2のバックエンドサーバ224からレスポンスを受信することを担当することができる。
アプリ/サービスディレクトリサービス222は、1つ以上のネイティブ・モバイルアプリ(例えば、1つ以上のモバイル機器)の登録データの保管を維持するように構成されている。例えば、登録データは、構成可能なネットワークサービス206に割り当てられたIPアドレス及びポートに加えて、ネイティブ・モバイルアプリIDを示すことができる。アプリ/サービスディレクトリサービス222は、ネイティブ・モバイルアプリIDによって索引付けされた登録データを、第1のバックエンドサーバ220のメモリに格納することができる。実施によっては、アプリ/サービスディレクトリサービス222は、構成可能なネットワークサービス206に関連付けられたIPアドレス及びポートと、ヘッドレスブラウザ230によって使用される第2のバックエンドサーバ224のIPアドレス及びポートとの間に安全な接続(例えば、暗号化ネットワークトンネル)を作成するように構成されている。これは、第2のバックエンドサーバ224からの安全な接続(例えば、暗号化ネットワークトンネル)が、モバイル機器202で実行されている構成可能なネットワークサービス206にアクセスするためのユーザ名及びパスワード(又は他の認証手段)の代わりにIPアドレス(例えば、バックエンドサーバの1つにおいてヘッドレスブラウザインスタンスが実行されているIPアドレス)を用いて認証できるので、安全な接続の設定及び使用を簡略化することができる。或いは、登録データは、安全な接続の設定プロセス中に第2のバックエンドサーバ224を認証するために使用されるクレデンシャルデータを含むことができる。クレデンシャルデータは、Webサイト242にアクセスするために使用されるユーザ名及びパスワードとは異なる(例えば、関連しない)ものである。このように、アクセス・クレデンシャルデータ(例えば、Webサイト242へのログインに関連するユーザ名及びパスワード)は、安全な接続を確立するために使用されない(また登録データに含まれない)ので、アクセス・クレデンシャルデータはバックエンドサーバ220及び224に格納されず、バックエンドサーバに個人識別情報(例えば、アクセス・クレデンシャルデータ)を格納するシステムと比較してセキュリティが改善される。
API/Web API226は、ヘッドレスブラウザ230で処理するために、リモートAPIアクセス・コンポーネント210からのリクエスト又はレスポンスをヘッドレスブラウザ管理API228へ転送するように構成される。API/Web API226は、WebサーバのWeb APIなどの標準的なサーバ/クライアントAPIであってもよい。例えば、UI/プレゼンテーションコード204によって生成されたリクエストは、リモートAPIアクセス・コンポーネント210に渡され、API/Web API226へ送信できる。API/Web APIは、ヘッドレスブラウザ230での操作のために、受信したリクエストをヘッドレスブラウザ管理API228に渡すことができる。同様に、ヘッドレスブラウザ230によって受信されるリクエストに対するレスポンスは、ヘッドレスブラウザ管理API228からAPI/Web API226に渡され、リモートAPIアクセス・コンポーネント210へ送られ、ネイティブ・モバイルアプリ203のGUIを介してユーザに表示するために、レスポンスをUI/プレゼンテーションコード204へ渡すことができる。
ヘッドレスブラウザ管理API228は、UI/プレゼンテーションコード204から転送されたリクエストを受信して、リクエストに基づいてアクションを起こすか、又はサードパーティのWebサーバ240が提供するWebサイト242の所定のWebページ上のデータをフェッチするように構成される。ヘッドレスブラウザ管理API228も、ヘッドレスブラウザ230のインスタンスを生成(例えば、インスタンス化)及び破棄するように構成される。ヘッドレスブラウザ230のインスタンス(例えば、セッション)をインスタンス化するために、ヘッドレスブラウザ管理API228は、アプリ/サービスディレクトリサービス222にアクセスして、(構成可能なネットワークサービス206への安全な接続を設定するために)構成可能なネットワークサービス206に割り当てられたIPアドレスとポート及びクレデンシャルデータを取得する。
ヘッドレスブラウザ管理API228も、ブラウザの状態データベース234にアクセスして、永続状態データが格納されているかどうかを判断するように構成されている。例えば、ヘッドレスブラウザ管理API228は、アプリ/サービスディレクトリサービス222からの格納された登録データによって示されるネイティブ・モバイルアプリIDに対して、永続状態データが格納されているかどうかを判断することができる。永続状態データは、ヘッドレスブラウザ230の以前のセッションからの、1つ以上のクッキー、ローカルストレージ、キャッシュされたデータ、又はそれらの組み合わせを含むことができる。ブラウザの状態データベース234は、第2のバックエンドサーバ224のメモリに格納されてもよいし、第2のバックエンドサーバ224の外部にあってもよい。例えば、ブラウザの状態データベース234を、クラウド(例えば、1つ以上の外部サーバ)に格納できる。ネイティブ・モバイルアプリIDについて永続状態データが見つかった場合、永続状態データを取得し、ヘッドレスブラウザ230の以前のセッションを再現するために使用される。ネイティブ・モバイルアプリIDの永続状態データが見つからない場合、ヘッドレスブラウザ230の新しいインスタンスが、API/Web API226からヘッドレスブラウザ管理API228が受け取った1つ以上のリクエストを処理するためにインスタンス化される。
ヘッドレスブラウザ230は、ネイティブ・モバイルアプリ203から(例えば、リモートAPIアクセス・コンポーネント210を介してUI/プレゼンテーションコード204から)受信したリクエストを処理するために使用される、表示されたGUIを持たないWebブラウザである。さらに、ヘッドレスブラウザ230は、構成可能なネットワークサービス206を介してWebサイト242と通信するように構成される。例えば、ヘッドレスブラウザ230は、非限定的な例として、サードパーティのWebサーバ240への送信のために構成可能なネットワークサービス206へ送信されるHTTP又はHTTPSリクエストを生成することができる。
Webサイト242に対応するAPIフィンガープリントデータ232は、ヘッドレスブラウザ230がWebサイト242と(構成可能なネットワークサービス206を介して)通信できるようにするために、ヘッドレスブラウザ230に埋め込む(例えば、注入する)ことができる。例えば、本開示のシステム及び方法は、ユーザがログイン、認証、及びインターネットバンキングで可能な他のアクションを取るために使用されるインターネットバンキングサービス経路の「フィンガープリント」を作成することができる。この一意のサービスフィンガープリントは、(例えば、第2のバックエンドサーバ224又はクラウドに)格納でき、ネイティブ・モバイルアプリ203及びWebサイト242とのヘッドレスブラウザインタラクションを構成する埋め込み(例えば、注入)APIコンポーネントとして(例えば、実行時に)ヘッドレスブラウザ230にロードされることがある。このフィンガープリントは、インターネットバンキングソフトウェア(例えば、Webサイト242)に発生する変更の識別を可能にすることもできる。これらの変更は、ユーザアカウントに正しくアクセスできる(し続けられる)ことを検証する自動検証プロセスを起動する場合がある。所与の銀行又は信用組合のAPIフィンガープリントに変更が検出された場合、通常のオペレーションを回復できるよう、変更を取り込むためにフィンガープリントを更新するプロセスを起動する場合がある。各銀行又は信用組合に対して、ヘッドレスブラウザ230とインターネットバンキングソフトウェアとの間でAPIがどのようにインタラクトするかを構成するための一意のフィンガープリントIDが存在する場合がある。APIシステムがアプリケーションごとに複数のフィンガープリントをロードすることが可能であり、それにより、ネイティブ・モバイルアプリ203が、複数の機関で有効な資格情報を持つユーザに代わって、複数の銀行又は信用組合のインターネットバンキングソフトウェアに直接アクセスすることを可能にできる。これにより、ネイティブ・モバイルアプリ203が独立してブランド化され、消費者がどのフィンガープリントされたインターネット・バンキングシステムにアクセスすることも可能になる。このように構成された場合、ユーザは、最初のログインの前に、複数のフィンガープリントされた組織の中から自分の金融機関を選択することができる。或いは、ヘッドレスブラウザ230の異なるインスタンスが、異なる銀行又は信用組合ごとにインスタンス化されてもよい。
態様によっては、ネイティブ・モバイルアプリ203は、ヘッドレスブラウザ230を用いて、確立されたインターフェースを介して(構成可能なネットワークサービス206を介して)インターネット・バンキングシステムとの間で情報を送受信する。銀行又は信用組合のシステムが埋め込みAPIによって用いるためにフィンガープリントされると、ネイティブ・モバイルアプリ203は、ユーザ名、パスワード、及び認証に必要な任意の追加情報(例えば、多要素認証コードなど)などのアクセス・クレデンシャルデータを提供することができる。追加の認証情報を渡す必要性は、ユーザ名/パスワードを渡すアプリケーションへの最初のレスポンスを構文解析するヘッドレスブラウザ230によって決定される。Webサイト242が、多要素認証リクエストに関連付けられるものとして以前にフィンガープリントされた方法で応答した場合、ネイティブ・モバイルアプリ203は、電子メール又はテキストメッセージなどの帯域外のチャネルを介して取得できる、情報を入力するようにユーザに促すことができる。同様に、Webサイト242が認証試行に多要素認証の課題と共に応答する場合、フィンガープリントは、そのような課題に応答する方法を示し、ヘッドレスブラウザ230は、ネイティブ・モバイルアプリ203のGUIでユーザに表示するために課題をモバイル機器202に中継できるように課題を構文解析することができる。次に、ユーザからの結果のレスポンスは、埋め込みAPIを介してヘッドレスブラウザ230に戻され、その後、構成可能なネットワークサービス206を介してヘッドレスブラウザ230からインターネットバンキングWebサイトを提供するサードパーティのWebサーバ240に中継されることになる。
或いは、サードパーティのWebサーバ240は、認証を拒否/失敗し、エラーステータス/ページを提供することができる。このシナリオでは、エラー/ステータスページが事前にマッピングされ、フィンガープリントが作成されている可能性がある。エラーステータスは構文解析され、埋め込みAPIによってネイティブ・モバイルアプリ203に返されてユーザに表示されるため、ユーザはアクションを実行できる(例えば、正しい情報を再入力するなど)。このように、埋め込みAPIは、Webサイト242/サードパーティのWebサーバ240/インターネットバンキングページと、ユーザがネイティブ・モバイルアプリ203で取ることができるアクションとの間のすべての潜在的なインタラクション及びレスポンスのマッピングとして機能することができる。
操作中、ネイティブ・モバイルアプリ203は、第1のバックエンドサーバ220に登録する。例えば、アプリ/サービス登録コンポーネント208は、図1の登録データ124などの登録データを第1のバックエンドサーバ220へ送信する。登録データは、ネイティブ・モバイルアプリ203のネイティブ・モバイルアプリIDと、構成可能なネットワークサービス206に割り当てられたIPアドレス及びポートとを含むことができる。実施によっては、登録データは、ヘッドレスブラウザ230と構成可能なネットワークサービス206との間の安全な接続をセットアップするために使用されるクレデンシャルデータも含む。第1のバックエンドサーバ220のアプリ/サービスディレクトリサービス222は、ヘッドレスブラウザ230と構成可能なネットワークサービス206との間の安全な接続を確立する際に後で用いるために登録データを格納する。さらに、UI/プレゼンテーションコード204は、ユーザに表示するためのネイティブ・モバイルアプリ203のGUIを生成する。ログインする銀行を選択し、Webサイト242にログオンするためのアクセスクレデンシャル(例えば、ユーザ名及びパスワード)を入力するなど、ユーザがGUIとインタラクトするとき、UI/プレゼンテーションコード204は、図1のリクエスト125のようなリクエストを発生させる。このリクエストはリモートAPIアクセス・コンポーネント210に渡され、リモートAPIアクセス・コンポーネント210はリクエストを第2のバックエンドサーバ224のAPI/Web API 226へ送信する。API/Web API226はリクエストを受け取り、そのリクエストをヘッドレスブラウザ管理API228へ渡す。
ヘッドレスブラウザ管理API228は、リクエストの受信に基づいてヘッドレスブラウザ230の起動を開始する。特定の実施では、ヘッドレスブラウザ管理API228は、ブラウザの状態データベース234にアクセスし、ネイティブ・モバイルアプリIDに対して永続状態データが存在するか否かを判断する。ネイティブ・モバイルアプリIDの永続状態データがブラウザの状態データベース234に格納されている場合、永続状態データを取り出してヘッドレスブラウザ230にロードし、以前のヘッドレスブラウザ・セッションを再現することができる。多要素認証の課題は、ヘッドレスブラウザ230のセッション及びクッキー処理によって、すでに実施されているインターネットバンキングのセキュリティプロトコルを活用して容易にすることができる。或いは、永続状態データが見つからない場合、ヘッドレスブラウザ管理API228は、ヘッドレスブラウザ230の新しいセッションをインスタンス化(実体化)する。さらに、ヘッドレスブラウザ管理API228は、アプリ/サービスディレクトリサービス222にアクセスして、ヘッドレスブラウザ230と構成可能なネットワークサービス206との間の安全な接続の形成を開始することができる。例えば、構成可能なネットワークサービス206のIPアドレス及びポートと、第2のバックエンドサーバ224のIPアドレス及びポートとの間に、安全な接続(例えば、暗号化ネットワークトンネル)を作成することができる。安全な接続を作成するプロセスの一部として、第2のバックエンドサーバ224は、アプリ/サービスディレクトリサービス222によって管理される登録データに含まれるクレデンシャルデータに基づいて認証されてもよい。
ヘッドレスブラウザ管理API228は、Webサイト242に対応するAPIフィンガープリントデータ232も特定し、Webサイト242とネイティブ・モバイルアプリ203との間のAPIが形成されるように、APIフィンガープリントデータ232をヘッドレスブラウザ230に埋め込む(例えば、注入する)ことができる。例えば、APIフィンガープリントデータ232は、ネイティブ・モバイルアプリケーション203とWebサイト242のログインボタンなどの要素間のマッピングを示すことができる。APIフィンガープリントデータ232に基づいて、ヘッドレスブラウザ230は、Webサイト242にログインするための図1の第2のリクエスト126のようなリクエストを生成する。このリクエストは、安全な接続を介して、構成可能なネットワークサービス206へ送信される。構成可能なネットワークサービス206は、リクエストを受信し、図1の第3のリクエスト136など、Webサイト242(又は第3のWebサーバ240)にはモバイル機器202が発信元のように見える新しいリクエストを生成する。例えば、構成可能なネットワークサービスは、リクエストを送信する前にリクエストのヘッダを修正して、修正されたヘッダは、モバイル機器202をリクエストの発信元として示す(例えば、図1の第3のリクエスト136)。このようにして、構成可能なネットワークサービス206は、第2のバックエンドサーバ224を匿名化し、第3のWebサーバ240には、すべてのリクエストがモバイル機器202から来るように見える。
リクエストを送信した後、構成可能なネットワークサービス206は、図1のWebページデータ134などのWebページデータをWebサイト242から受信することができる。構成可能なネットワークサービス206は、ヘッドレスブラウザ230を介して処理するために、Webページデータ134を第2のバックエンドサーバ224に転送する。例えば、ヘッドレスブラウザ230は、口座番号、口座残高などのユーザ固有のデータを識別するために、Webページデータを構文解析するために使用できる。ユーザ固有の情報は、リモートAPIアクセス・コンポーネント210へ送信するために、ヘッドレスブラウザ管理API228によってAPI/Web API226へ渡される場合がある。リモートAPIアクセス・コンポーネント210は、ユーザ固有のデータを受け取り、ネイティブ・モバイルアプリ203のGUIを介してユーザに表示するために、ユーザ固有のデータをUI/プレゼンテーションコードへ渡す。
このようにして、モバイル機器202は、バックエンドサーバ220及び224と共に操作し、アクセスが第2のバックエンドサーバ224ではなく、モバイル機器202から発信されているかのように見せながら、Webサイト242における安全化されたデータにアクセスすることができる。例えば、ヘッドレスブラウザ230は、インターネット・バンキングシステムにリアルタイム又は準リアルタイムで一意の分散型の安全なWebブラウジングセッションを提示する統合層として機能することができる。他のアプローチとは対照的に、ネイティブ・モバイルアプリ203に代わるヘッドレスブラウザ230によるアクセスは、金融機関に代わって認可されたユーザ活動に直接関連し、同じデバイスから発信されるモバイルブラウザログインへのアクセストラフィックという点で同一である。これは、セキュリティ、パフォーマンス、統合、運用、ビジネスにおいて実質的なメリットをもたらす。ヘッドレスブラウザ技術を活用することによって、このアプローチでは、直接的なモバイル統合インターフェース(例えば、金融機関が作成したカスタマイズされたモバイルアプリケーションなどの直接的なモバイル統合)を必要とせずに、ユーザの口座に対する「読み取り」「書き込み」両方のアクティビティに対してリアルタイム又は準リアルタイムで直接的なインタラクションが可能になる。
ヘッドレスブラウザを利用できる他のシステムとは異なり、本開示の手法は、ヘッドレスブラウザにおいてユーザインターフェースを実行し、その後、得られたエクスペリエンスをクライアントに翻訳しないことに留意されたい。むしろ、「クライアント」ネイティブ・モバイルアプリは、サーバ側のWebサイトに基づいて表示が変化しない、固定されたユーザインターフェースを持つことがある。その代わりに、ネイティブアプリをアプリストアに公開する時点で、クライアントユーザインターフェースを定義することもできる。さらに、本開示の技術では、ヘッドレスブラウザは、インターネットバンキングとの安全な標準ベースのブラウザセッションを作成するために使用される。ネイティブアプリが公開される前に、銀行又は信用金庫のための埋め込みAPI構成が作成され、埋め込みAPI構成は、利用可能なインターネットバンキング機能と、その情報をインターネットバンキングサイトに読み書きするためのHTML/JavaScriptで期待されるメソッドを定義する。この構成は、銀行/信用金庫によって異なる場合があり、ユーザ名やパスワード、取引情報などの項目に対応する場合がある。このような各項目は、ネイティブアプリのすべてのブランド「バージョン」で標準化されている可能性があるバンキングアプリケーションAPIに対して、構成にあらかじめマッピングされている場合がある。したがって、ある側面では、特定のネイティブアプリは、特定のWebサイト及び/又は特定のバージョンのインターネットバンキングソフトウェア上での使用にのみ互換性がある場合がある。本開示のシステム及び方法において、ヘッドレスブラウザは、Webサイトのインターフェースとバンキングアプリとの間の翻訳に依存しない。その代わり、ヘッドレスブラウザは、オープンネットワーク・インターフェース上の安全なパイプとして使用することができる。
図3を参照すると、サーバにおける操作の方法300の例示的な態様が示されている。特定の例では、方法300は、図1のバックエンドサーバ120又は図2のバックエンドサーバ220、224によって実行できる。
方法300は、ステップ302において、サーバで、ネイティブアプリケーションを実行し、リモートサーバによって提供されるWebサイトに接続するための構成可能なネットワークサービスを提供する、モバイル機器から、登録データを受信するステップを含む。例えば、図1のバックエンドサーバ120は、モバイル機器110から登録データ124を受信する。登録データは、ネイティブアプリケーションに関連付けられたアプリケーション識別子と、構成可能なネットワークリソースに関連付けられたアドレスデータとを示す。例えば、登録データ124は、ネイティブアプリ112のアプリケーション識別子(例えば、一意の識別子)と、図1の構成可能なネットワークサービス115に割り当てられたIPアドレス及びポートとを含む。実施によっては、登録データは、任意で、構成可能なネットワークサービスとの安全な接続の確立に関連するクレデンシャルデータを含む。特定の実施では、クレデンシャルデータはランダムに(又は疑似ランダムに)生成される。
方法300は、ステップ304において、登録データに基づいて、サーバによって実行されるヘッドレスブラウザと、構成可能なネットワークサービスとの間の安全な接続を確立するステップを含む。例えば、バックエンドサーバ120は、バックエンドサーバ120のヘッドレスブラウザ122と、モバイル機器110の構成可能なネットワークサービス115との間に安全な接続を確立する。ヘッドレスブラウザは、対応する表示されたグラフィカルユーザインターフェース(GUI)を持たないWebブラウザを含む。
方法300は、ステップ306において、モバイル機器のネイティブアプリケーションから第1のリクエストを受信するステップを含む。例えば、バックエンドサーバ120は、モバイル機器110のネイティブアプリ112からリクエスト125を受信する。
方法300は、ステップ308において、リモートサーバへ送信するために、ヘッドレスブラウザからモバイル機器の構成可能なネットワークサービスに第2のリクエストを送信するステップを含む。第2のリクエストは、Webサイトに対応する情報のリクエストである。例えば、バックエンドサーバ120は、第2のリクエスト126をモバイル機器110の構成可能なネットワークサービス115へ送信し、構成可能なネットワークサービス115は、修正された第2のリクエスト(例えば、第3のリクエスト136)をWebサーバ130に転送する前に、第2のリクエスト126を修正する。
方法300は、ステップ310において、モバイル機器の構成可能なネットワークサービスから第1のWebページデータを受信するステップも含む。最初のWebページのデータは、リモートサーバから発信される。例えば、バックエンドサーバ120は、モバイル機器110の構成可能なネットワークサービス115からWebページデータ134を受信する。Webページデータは、Webサーバ130から発信される。
特定の実施では、方法300は、モバイル機器からアクセス・クレデンシャルデータをサーバで受信するステップと、アクセス・クレデンシャルデータに基づいて、且つWebサイトに関連付けられたアプリケーション・プログラミング・インターフェース(API)データに基づいて、第2のリクエストを生成するステップとを含む。例えば、図1のリクエスト125は、アクセス・クレデンシャルデータを含むか又は示すことができ、図1のバックエンドサーバ120は、APIフィンガープリントデータ121に基づいて第2のリクエスト126を生成することができる。方法300は、アクセス・クレデンシャルデータに基づいて、構成可能なネットワークサービスを介してリモートサーバに接続するステップと、リモートサーバに接続した後のヘッドレスブラウザの状態に基づいて、永続状態データを生成するステップとを含むこともできる。例えば、モバイル機器110の構成可能なネットワークサービス115は、バックエンドサーバ120の匿名性を維持しながら、バックエンドサーバ120をWebサーバ130に接続するように操作してもよい(例えば、Webサーバ130にとっては、モバイル機器110のWebブラウザによって発生するであろうアクセスと同じであるように見える)。さらに、図1のバックエンドサーバ120は、ネイティブアプリ112が閉じられたという表示を受信すると、永続状態データ129を生成して、ブラウザの状態データベース128に格納する。特定の実施では、アクセス・クレデンシャルデータはバックエンドサーバに格納されない。
図4を参照すると、モバイル機器における操作の方法400の例示的な態様が示されている。特定の例では、方法400は、図1のモバイル機器110又は図2のモバイル機器202によって実行できる。
方法400は、ステップ402において、モバイル機器において、第1のサーバ上で実行されるヘッドレスブラウザから、第1のデータパケットを受信するステップを含む。第1のデータパケットは、ヘッダと、第2のサーバが提供するWebサイトからのデータのリクエストを含む。ヘッダは、第1のデータパケットの発信元である第1のサーバを示す。例えば、図1のモバイル機器110は、バックエンドサーバ120から第2のリクエスト126を受信する。
方法400は、ステップ404において、第1のデータパケットのヘッダを修正して、修正されたデータパケットを生成するステップを含む。修正された第1のデータパケットのヘッダは、モバイル機器が第1のパケットの送信元であることを示す。例えば、モバイル機器110は、第2のリクエスト126の第1のヘッダ127を修正し、修正された第1のデータパケット(例えば、図1の第3のリクエスト136)を生成する。第3のリクエスト136の第2のヘッダ137は、モバイル機器110を第3のリクエスト136の発信元として示す。
方法400は、ステップ406において、修正された第1のデータパケットを第2のサーバへ送信するステップを含む。例えば、図1のモバイル機器110は、第3のリクエスト136をWebサーバ130へ送信する。
方法400は、ステップ408において、データのリクエストに応答して第2のサーバから第1のデータを受信するステップを含む。例えば、モバイル機器110は、Webサーバ130からWebページデータ134を受信する。
方法400は、ステップ410において、ヘッドレスブラウザによる構文解析のために第1のデータを第1のサーバへ送信するステップも含む。例えば、図1のモバイル機器110は、Webページデータ134を、ヘッドレスブラウザ122による構文解析のためにバックエンドサーバ120へ送信する。
特定の実施では、方法400は、ネイティブアプリケーションの実行に応答して、登録データを生成し、登録データを第1のサーバへ送信するステップを含む。登録データは、ネイティブアプリケーションに関連付けられたアプリケーション識別子、第2のサーバと通信する構成可能なネットワークサービスに関連付けられたアドレス情報、及び構成可能なネットワークサービスとの安全な接続の確立に関連付けられたクレデンシャルデータを含む。例えば、図1のモバイル機器110は、登録データ124を生成し、バックエンドサーバ120へ送信する。図1の登録データ124は、ネイティブアプリ112に関連付けられたアプリケーション識別子、構成可能なネットワークサービス115に割り当てられたIPアドレス及びポート(例えば、アドレス情報)、並びにヘッドレスブラウザ122と構成可能なネットワークサービス115との間の接続を確保するために使用されるクレデンシャル(例えば、ユーザ名及びパスワード等)を示すクレデンシャルデータを含む。特定の実施では、クレデンシャルデータは、ネイティブアプリ112によってランダムに(又は疑似ランダムに)生成される。方法400は、構成可能なネットワークサービスとヘッドレスブラウザとの間に安全な接続を確立するステップも含むことができる。例えば、バックエンドサーバ120のヘッドレスブラウザ122と、モバイル機器110の構成可能なネットワークサービス115との間に、暗号化ネットワークトンネルなどの安全な接続を確立することができる。安全な接続を確立するステップは、登録データ124に含まれるクレデンシャルデータに基づいてバックエンドサーバ120を認証するステップを含むことができる。
別の特定の実施では、方法400は、第1のサーバから永続状態データを受信するステップと、モバイル機器のメモリで永続状態データを格納するステップとを含む。例えば、図1のモバイル機器110は、永続状態データ129を受信し、永続状態データ129をメモリで格納することができる。ネイティブアプリ112を起動した後、ヘッドレスブラウザ122のセットアップに使用するために、永続状態データ129をバックエンドサーバ120へ送信することができる。
代替的な態様において、図3から図4の方法300、400の1つ以上のステップは、異なる順序で実行されてもよく、組み合わされてもよく、少なくとも部分的に同時に実行されてもよく、又は省略されてもよいことを理解すべきである。さらに、1つ以上の他のステップが追加されてもよい。
図5を参照すると、モバイル機器502の例示的な実施例が示されている。モバイル機器502は、図1から図4を参照して上述した機能及び方法のうちの1つ以上を実行するように構成されてもよい。特定の実施では、モバイル機器502は、図1のモバイル機器110又は図2のモバイル機器202を含むか、又はモバイル機器110又は図2のモバイル機器202に対応してもよい。
モバイル機器502は、コンピュータ読み取り可能な記憶装置506、1つ以上のプロセッサ508(例えば、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理装置(GPU)など)、及びメモリ510を含む。記憶装置506は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、及び/又はハードディスクドライブ、フラッシュメモリ装置、又は他のタイプの記憶装置などの永続ストレージとして実装できる。メモリ510は、図1から図4を参照して上述した機能又は方法の1つ以上を実行するために、プロセッサ508によって実行可能な命令512を格納するように構成される。非限定的な例として、メモリ510は、図1のネイティブアプリ112又は図2のネイティブ・モバイルアプリ203を格納するように構成できる。コンピュータ読み取り可能な記憶装置506は、信号ではない。
モバイル機器502は、ロケーション装置516(例えば、GPS送受信機)、及びモバイル機器502が他のデバイスと信号を交換する(例えば、他のデバイスから信号を受信し、及び/又は他のデバイスに信号を送信する)ことを可能にする1つ以上の無線送受信機514も含む。各無線送受信機514は、無線周波数(RF)回路517、コントローラ518、及び/又はアンテナ519を含むか、又はこれらに結合されてもよい。例示的な実施例では、無線送受信機514は、第3世代(3G)送受信機、第4世代(4G)送受信機、Wi-Fi送受信機、近距離無線通信(NFC)送受信機、BLUETOOTH(BLUETOOTHは米国ワシントン州カークランドのBluetooth SIG,Inc.の登録商標)又はBLUETOOTH低エネルギー(BLE)送受信機、又はそれらの任意の組合せを含む。図5の例では、モバイル機器502は、直接的なピアツーピア通信及びインターネットなどの1つ以上のネットワーク524を介した通信のために、1つ以上の無線送受信機514を利用するように構成される。例えば、モバイル機器502は、ピアツーピア無線チャネル(例えば、BLUETOOTH、BLE、又はNFC)を介して外部デバイス526(例えば、非接触型ATM認証のための自動支払機(ATM))と通信してもよく、セルラー又はWi-Fi無線チャネルを介してWebサイト132を提供しているWebサーバ130と通信してもよい。
図5の例では、モバイル機器502は、入力装置及び出力装置を含むか、又はこれらに結合される。例えば、モバイル機器502は、表示装置532、マイクロホン534、スピーカ536、及び/又はユーザ入力装置538(例えば、タッチスクリーン)を含んでもよいし、これらに結合されていてもよい。モバイル機器502の外側として図示されているが、デバイス532から538のうちの1つ以上は、携帯電話又はタブレットコンピュータの場合のように、モバイル機器502のハウジングに統合されてもよいことに留意されたい。
図6を参照すると、サーバ602の例示的な実施例が示されている。サーバ602は、図1から図4を参照して上述した機能及び方法のうちの1つ以上を実行するように構成されてもよい。特定の実施では、サーバ602は、図1のバックエンドサーバ120又は図2のバックエンドサーバ220、224を含むか、又はそれに対応するものである。
サーバ602は、コンピュータ読み取り可能な記憶装置606、1つ以上のプロセッサ608(例えば、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理装置(GPU)など)、及びメモリ610を含む。記憶装置606は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、及び/又はハードディスクドライブ、フラッシュメモリ装置、又は他のタイプの記憶装置などの永続ストレージとして実装することができる。メモリ610は、図1から図4を参照して上述した機能又は方法の1つ以上を実行するために、プロセッサ608によって実行可能な命令612を格納するように構成される。コンピュータ読み取り可能な記憶装置606は、信号ではない。
サーバ602は、サーバ602が他の装置と信号を交換する(例えば、他の装置から信号を受信し、及び/又は他の装置に信号を送信する)ことを可能にする1つ以上の送受信機614も含む。実施によっては、送受信機614は無線送受信機であり、各送受信機614は、無線周波数(RF)回路、コントローラ、及び/又はアンテナを含むか、又はこれらに結合されてもよい。例示的な一実施例では、送受信機614は、第3世代(3G)送受信機、第4世代(4G)送受信機、wi-fi送受信機、近距離無線通信(NFC)送受信機、BLUETOOTH又はBLUETOOTH低エネルギー(BLE)送受信機、有線送受信機又はこれらの任意の組合せを含む。図6の例では、サーバ602は、インターネットなどの1つ以上のネットワーク624を介した通信のために、1つ以上の送受信機614を利用するように構成される。例えば、サーバ602は、インターネットを介してモバイル機器110と通信することができる。
サーバ602は、任意に、ロケーション装置616(例えば、GPS送受信機)を含む。図6の例では、サーバ602も、任意に、入力装置及び出力装置を含むか、又は入力装置及び出力装置に結合される。例えば、サーバ602は、ディスプレイ装置632、マイクロホン634、スピーカ636、ユーザ入力装置638(例えば、タッチスクリーン)、又はそれらの組み合わせを任意に含むことができ、又は結合されることができる。
説明された態様と関連して、サーバは、ネイティブアプリケーションを実行するように構成され、リモートサーバによって提供されるWebサイトに接続するための構成可能なネットワークサービスを提供するように構成されたモバイル機器と通信するように構成された送受信機を含む。サーバは、プロセッサを含む。サーバは、モバイル機器から登録データを受信することを含む操作を実行するためにプロセッサによって実行可能な命令を格納するメモリも含む。登録データは、ネイティブアプリケーションに関連するアプリケーション識別子と、構成可能なネットワークサービスに関連するアドレスデータとを示す。この操作は、登録データに基づいて、ヘッドレスブラウザと構成可能なネットワークサービスとの間の安全な接続の確立を開始することを含む。ヘッドレスブラウザは、対応する表示されたグラフィカルユーザインターフェースを持たないWebブラウザを含む。この操作は、モバイル機器のネイティブアプリケーションから第1のリクエストを受信することを含む。この操作は、ヘッドレスブラウザからモバイル機器の構成可能なネットワークサービスに、リモートサーバへ送信するための第2のリクエストを送信することを開始することを含む。第2のリクエストは、Webサイトに対応する情報のリクエストである。この操作は、モバイル機器の構成可能なネットワークサービスから第1のWebページデータを受信することを含む。第1のWebページのデータは、リモートサーバから発信されている。
説明された態様に関連して、1つの方法は、ネイティブアプリケーションを実行し、リモートサーバによって提供されるWebサイトに接続するための構成可能なネットワークサービスを提供するモバイル機器から、サーバにおいて登録データを受信するステップを含む。登録データは、ネイティブアプリケーションに関連付けられたアプリケーション識別子と、構成可能なネットワークサービスに関連付けられたアドレスデータとを示す。この方法は、登録データに基づいて、サーバによって実行されるヘッドレスブラウザと構成可能なネットワークサービスとの間の安全な接続を確立するステップを含む。ヘッドレスブラウザは、対応する表示されたグラフィカルユーザインターフェースを持たないWebブラウザを含む。この方法は、モバイル機器のネイティブアプリケーションから第1のリクエストを受信するステップを含む。この方法は、リモートサーバへ送信するために、ヘッドレスブラウザからモバイル機器の構成可能なネットワークサービスに第2のリクエストを送信するステップを含む。第2のリクエストは、Webサイトに対応する情報のリクエストである。この方法は、モバイル機器の構成可能なネットワークサービスから第1のWebページデータを受信するステップも含む。第1のWebページデータは、リモートサーバから発信される。
説明された態様と関連して、コンピュータ読み取り可能な記憶装置は、プロセッサによって実行されると、ネイティブアプリケーションを実行し、リモートサーバによって提供されるWebサイトに接続するための構成可能なネットワークサービスを提供するモバイル機器からの登録データをサーバで受信することを含む操作をプロセッサに実行させる命令を格納する。登録データは、ネイティブアプリケーションに関連付けられたアプリケーション識別子と、構成可能なネットワークサービスに関連付けられたアドレスデータとを示す。この操作は、登録データに基づいて、サーバによって実行されるヘッドレスブラウザと構成可能なネットワークサービスとの間の安全な接続を確立することを含む。ヘッドレスブラウザは、対応する表示されたグラフィカルユーザインターフェースを持たないWebブラウザを含む。操作は、モバイル機器のネイティブアプリケーションから第1のリクエストを受信することを含む。この操作は、ヘッドレスブラウザからモバイル機器の構成可能なネットワークサービスにリクエストを送信し、リモートサーバへ送信することを含む。第2のリクエストは、Webサイトに対応する情報のリクエストである。この操作は、モバイル機器の構成可能なネットワークサービスから第1のWebページデータを受信することも含む。第1のWebページデータは、リモートサーバから発信される。
説明された態様と関連して、モバイル機器は、第1のサーバ及び第2のサーバと通信するように構成された無線送受信機を含む。第1のサーバは、ヘッドレスブラウザを実行するように構成される。第2のサーバは、Webサイトを提供するように構成される。モバイル機器は、表示装置を含む。モバイル機器は、無線送受信機及び表示装置に結合されたプロセッサを含む。モバイル機器は、プロセッサに結合され、ヘッドレスブラウザから第1のデータパケットを受信することを含む操作を実行するためにプロセッサによって実行可能なネイティブアプリケーションを格納しているメモリも含む。第1のデータパケットは、ヘッダとWebサイトからのデータのリクエストを含む。ヘッダは、第1のデータパケットの発信元である第1のサーバを示す。この操作は、第1のデータパケットのヘッダを修正して、修正された第1のデータパケットを生成することを含む。修正された第1のデータパケットのヘッダは、第1のデータパケットの送信元としてモバイル機器を示す。この操作は、無線送受信機を介して、修正された第1のデータパケットの第2のサーバへの送信を開始することを含む。操作は、無線送受信機を介して第2のサーバに修正された第1のデータパケットの送信を開始することを含む。この操作は、データのリクエストに応答して、無線送受信機を介して第2のサーバから第1のデータを受信することを含む。この操作は、ヘッドレスブラウザによる構文解析のために、第1のデータを第1のサーバへ送信することを開始することを含む。
説明された態様と関連して、1つの方法は、第1のサーバで実行されるヘッドレスブラウザから、第1のデータパケットを受信することを含む。第1のデータパケットは、ヘッダと、第2のサーバが提供するWebサイトからのデータのリクエストを含む。ヘッダは、第1のデータパケットの発信元である第1のサーバを示す。この方法は、第1のデータパケットのヘッダを修正して、修正された第1のデータパケットを生成することを含む。修正された第1のデータパケットのヘッダは、第1のデータパケットの送信元としてモバイル機器を示す。この方法は、モバイル機器から第2のサーバに修正された第1のデータパケットを送信するステップを含む。この方法は、データのリクエストに応答して、モバイル機器において第2のサーバから第1のデータを受信するステップを含む。この方法は、ヘッドレスブラウザによって構文解析するために、モバイル機器から第1のデータを第1のサーバへ送信するステップも含む。
説明された態様と関連して、コンピュータ読み取り可能な記憶装置は、プロセッサによって実行されると、第1のサーバで実行されるヘッドレスブラウザから、第1のデータパケットを受信することを含む操作をプロセッサに実行させる命令を格納する。第1のデータパケットは、ヘッダと、第2のサーバが提供するWebサイトからのデータのリクエストを含む。ヘッダは、第1のデータパケットの発信元である第1のサーバを示す。この操作は、第1のデータパケットのヘッダを修正して、修正された第1のデータパケットを生成することを含む。修正された第1のデータパケットのヘッダは、第1のデータパケットの送信元としてモバイル機器を示す。この操作は、モバイル機器から第2のサーバに修正された第1のデータパケットを送信することを含む。この操作は、データのリクエストに応答して、モバイル機器において第2のサーバから第1のデータを受信することを含む。この操作は、ヘッドレスブラウザによって構文解析するために、モバイル機器から第1のデータを第1のサーバへ送信することも含む。
本明細書に記載された本開示の例示及び態様は、本開示の一般的理解を提供することを意図しており、すべての可能な態様を網羅的に例示することを意図しておらず、その一部は、同じ又は同様の目的を達成するための代替配置を組み込むことが可能である。本開示は、本明細書に記載された態様の任意の及びすべてのその後の修正又は変更を含む。
図が縮尺通りに描かれていない場合があること、また、要約は、特許請求の範囲や意味の解釈や限定に使用されるものではないことを理解すべきである。さらに、用語:発明、実施の形態、態様、又は例の使用は、記述された特徴を一緒にグループ化する必要はない。本開示は、いかなる特許請求の範囲の態様、例、又は実施の形態が、特許請求の範囲に記載された以上の要素を必要とすることを意図していると解釈されるべきではない。
したがって、本明細書に記載された主題は、制限的ではなく例示的であり、特許請求の範囲は、本開示の範囲に入るすべてを含むことを意図している。法律で認められる最大限の範囲において、本開示の範囲は、(本明細書の詳細な説明に組み込まれている)以下の特許請求の範囲及びその等価物の最も広い許容される解釈によって特定され、前述の詳細な説明によって制限又は限定されないものとする。

Claims (21)

  1. サーバであって:
    モバイル機器と通信するように構成された送受信機と;
    プロセッサと;
    前記プロセッサによって実行可能な命令を格納するメモリと:を備え、前記プロセッサは:
    前記モバイル機器から登録データを受信することであって、前記登録データは、前記モバイル機器で実行されるネイティブアプリケーションに関連付けられたアプリケーション識別子と、前記モバイル機器によって提供される構成可能なネットワークサービスに関連付けられたアドレスデータとを示し、前記構成可能なネットワークサービスはリモートサーバによって提供されるWebサイトに接続する、登録データを受信すること;
    前記登録データに基づいて、前記プロセッサで実行されるヘッドレスブラウザと前記構成可能なネットワークサービスとの間の安全な接続の確立を開始することであって、前記ヘッドレスブラウザは、対応する表示されたグラフィカルユーザインターフェースを有しないWebブラウザを備える、安全な接続の確立を開始すること;
    前記モバイル機器の前記ネイティブアプリケーションから第1のリクエストを受信すること;
    前記リモートサーバへ送信するために前記ヘッドレスブラウザから前記モバイル機器の構成可能なネットワークサービスに第2のリクエストを送信することを開始することであって、前記第2のリクエストは前記Webサイトに対応する情報のリクエストである、第2のリクエストを送信することを開始すること;及び
    前記モバイル機器の前記構成可能なネットワークサービスから第1のWebページデータを受信することであって、前記第1のWebページデータは前記リモートサーバから発信される、第1のWebページデータを受信すること;を備える操作を実行する、サーバ。
  2. 請求項1に記載のサーバであって、前記登録データは、前記構成可能なネットワークサービスとの安全な接続の確立に関連付けられたクレデンシャルデータを更に備えることを特徴とするサーバ。
  3. 請求項1のサーバにおいて、
    前記操作は:
    前記モバイル機器からアクセス・クレデンシャルデータを受信することであって、前記第2のリクエストが前記アクセス・クレデンシャルデータを示し、前記アクセス・クレデンシャルデータが前記Webサイトに関連付けられる、アクセス・クレデンシャルデータを受信することを更に備えることを特徴とするサーバ。
  4. 請求項1のサーバにおいて、
    前記操作は:
    前記第1のWebページデータを構文解析して、ユーザ固有のデータを識別すること;及び
    前記ネイティブアプリケーションのグラフィカルユーザインターフェースに表示するために、前記ユーザ固有のデータを前記ネイティブアプリケーションへ送信することを開始すること;を更に備えることを特徴とするサーバ。
  5. 請求項1のサーバにおいて、
    前記操作は、前記第2のリクエストを生成するために、前記Webサイトに関連付けられたアプリケーション・プログラミング・インターフェース(API)フィンガープリントのデータにアクセスすることを更に備え、前記APIフィンガープリントのデータは、前記Webサイトと前記ネイティブアプリケーションとの間のユーザ名、パスワード、ログインボタン又はそれらの組み合わせに関するマッピングを示すことを特徴とするサーバ。
  6. 請求項1のサーバにおいて、
    前記操作は、前記登録データに基づいて前記ヘッドレスブラウザをインスタンス化することを更に備えることを特徴とするサーバ。
  7. 請求項1のサーバにおいて、
    前記操作は:
    前記モバイル機器から、前記ネイティブアプリケーションが閉じられたことを示す表示を受信すること;及び
    前記表示を受信することに応答して、前記ヘッドレスブラウザの状態に関連付けられた永続状態情報をブラウザの状態データベースに格納すること;を更に備えることを特徴とするサーバ。
  8. 請求項1のサーバにおいて、
    前記操作は:
    前記登録データを受信することに応答して、ブラウザの状態データベースにアクセスし、前記ネイティブアプリケーションに関連付けられた特定のアプリケーション識別子に対して永続状態情報が見つかったかどうかを判断すること;及び
    前記永続状態情報が見つかったことに応答して、前記永続状態情報を前記ヘッドレスブラウザにロードすること;を更に備えることを特徴とするサーバ。
  9. 請求項8のサーバにおいて、
    前記永続状態情報は、前記Webサイトへのログオンに関連付けられた1つ以上のクッキーを含むことを特徴とするサーバ。
  10. 請求項1のサーバにおいて、
    前記安全な接続は、暗号化されたネットワークトンネルを備えることを特徴とするサーバ。
  11. 方法であって:
    ネイティブアプリケーションを実行し、リモートサーバによって提供されているWebサイトに接続するための構成可能なネットワークサービスを提供しているモバイル機器からの登録データをサーバで受信することであって、前記登録データは、前記ネイティブアプリケーションに関連付けられたアプリケーション識別子と、前記構成可能なネットワークサービスに関連付けられたアドレスデータとを示す、登録データをサーバで受信することと;
    前記登録データに基づいて、前記サーバによって実行されるヘッドレスブラウザと前記構成可能なネットワークサービスとの間の安全な接続を確立することであって、前記ヘッドレスブラウザは、対応する表示されたグラフィカルユーザインターフェースを持たないWebブラウザを備える、安全な接続を確立することと;
    前記モバイル機器の前記ネイティブアプリケーションから第1のリクエストを受信することと;
    前記リモートサーバへ送信するために、前記ヘッドレスブラウザから前記モバイル機器の前記構成可能なネットワークサービスに第2のリクエストを送信することであって、前記第2のリクエストは、前記Webサイトに対応する情報をリクエストする、第2のリクエストを送信することと;
    前記モバイル機器の前記構成可能なネットワークサービスから第1のWebページデータを受信することであって、前記第1のWebページデータは前記リモートサーバから発信される、第1のWebページデータを受信することと;を備える、方法。
  12. 請求項11の方法において、
    前記モバイル機器からアクセス・クレデンシャルデータを前記サーバで受信することと;
    前記アクセス・クレデンシャルデータと、前記Webサイトに関連付けられたアプリケーション・プログラミング・インターフェース(API)データとに基づいて、前記第2のリクエストを生成することと;を更に備えることを特徴とする方法。
  13. 請求項12の方法において、
    前記アクセス・クレデンシャルデータに基づいて、前記構成可能なネットワークサービスを介して前記リモートサーバに接続することと;
    前記リモートサーバに接続した後の前記ヘッドレスブラウザの状態に基づいて、永続状態データを生成することと;を更に備えることを特徴とする方法。
  14. 請求項13の方法において、
    前記永続状態データをデータベース又は前記モバイル機器に格納することを更に備えることを特徴とする方法。
  15. モバイル機器であって:
    第1のサーバ及び第2のサーバと通信するように構成された無線送受信機であって、前記第1のサーバはヘッドレスブラウザを実行するように構成され、前記第2のサーバはWebサイトを提供するように構成された、無線送受信機と;
    表示装置と;
    前記無線送受信機及び前記表示装置に結合されたプロセッサと;
    前記プロセッサに結合され、前記プロセッサによって実行可能なネイティブアプリケーションを格納するメモリと;を備え、前記プロセッサは:
    前記ヘッドレスブラウザから、第1のデータパケットを受信することであって、前記第1のデータパケットは、ヘッダと前記Webサイトからのデータのリクエストを含み、前記ヘッダは、前記第1のデータパケットの発信元として前記第1のサーバを示す、第1のデータパケットを受信すること;
    前記第1のデータパケットのヘッダを修正して修正された第1のデータパケットを生成することであって、前記修正された第1のデータパケットのヘッダは前記モバイル機器を前記第1のデータパケットの発信元として示す、修正された第1のデータパケットを生成すること;
    前記修正された第1のデータパケットを、前記無線送受信機を介して前記第2のサーバへ送信することを開始すること;
    前記データのリクエストに応答して、前記無線送受信機を介して前記第2のサーバから第1のデータを受信すること;及び
    前記ヘッドレスブラウザによって構文解析するために、前記第1のデータを前記第1のサーバへ送信することを開始すること;を備える操作を実行する、モバイル機器。
  16. 請求項15のモバイル機器において、
    前記操作は:
    前記ネイティブアプリケーションを実行することに応答して、登録データを生成することであって、前記登録データは、前記ネイティブアプリケーションに関連付けられたアプリケーション識別子と、前記第2のサーバと通信する構成可能なネットワークサービスに関連付けられたアドレス情報と、前記構成可能なネットワークサービスとの安全な接続の確立に関連付けられたクレデンシャルデータとを含む、登録データを生成すること;及び
    前記登録データを前記第1のサーバへ送信する処理を開始すること;を更に備えることを特徴とするモバイル機器。
  17. 請求項16のモバイル機器において、
    前記操作は、前記構成可能なネットワークサービスと前記ヘッドレスブラウザとの間の安全な接続の確立を開始することを更に備えることを特徴とするモバイル機器。
  18. 請求項15のモバイル機器において、
    前記操作は:
    前記ヘッドレスブラウザに関連付けられた永続状態データを前記第1のサーバから受信すること;及び
    前記永続状態データを前記メモリに格納すること;を更に備えることを特徴とするモバイル機器。
  19. 請求項15のモバイル機器において、
    アクセス・クレデンシャルデータを受信するように構成されたユーザ入力装置であって、前記操作は前記アクセス・クレデンシャルデータを前記第1のサーバへ送信することを更に備える、ユーザ入力装置を更に備えることを特徴とするモバイル機器。
  20. 請求項15のもモバイル機器において、
    前記第1のサーバから受信した情報に基づいて、グラフィカルユーザインターフェース(GUI)を表示するように構成された表示装置を更に備えることを特徴とするモバイル機器。
  21. 請求項1のサーバにおいて、
    前記操作は、前記デバイス内の安全な要素(キーチェーン、キーストア)からアクセス・クレデンシャルデータを受信することであって、前記第2のリクエストが前記アクセス・クレデンシャルデータを示し、前記アクセス・クレデンシャルデータが前記Webサイトに関連付けられる、アクセス・クレデンシャルデータを受信することを更に備えることを特徴とするサーバ。
JP2022557144A 2020-03-24 2021-03-19 リモートサーバと通信するモバイル機器から安全なデータにアクセスするためのシステムアーキテクチャ Pending JP2023518824A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/828,449 US10986504B1 (en) 2020-03-24 2020-03-24 System architecture for accessing secure data from a mobile device in communication with a remote server
US16/828,449 2020-03-24
PCT/US2021/023124 WO2021194870A1 (en) 2020-03-24 2021-03-19 System architecture for accessing secure data from a mobile device in communication with a remote server

Publications (1)

Publication Number Publication Date
JP2023518824A true JP2023518824A (ja) 2023-05-08

Family

ID=75495336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022557144A Pending JP2023518824A (ja) 2020-03-24 2021-03-19 リモートサーバと通信するモバイル機器から安全なデータにアクセスするためのシステムアーキテクチャ

Country Status (7)

Country Link
US (2) US10986504B1 (ja)
EP (1) EP4128852A4 (ja)
JP (1) JP2023518824A (ja)
AU (1) AU2021244177A1 (ja)
CA (1) CA3173102C (ja)
MX (1) MX2022011913A (ja)
WO (1) WO2021194870A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10986504B1 (en) * 2020-03-24 2021-04-20 Appbrilliance, Inc. System architecture for accessing secure data from a mobile device in communication with a remote server
US11657295B2 (en) * 2020-03-31 2023-05-23 Bank Of America Corporation Cognitive automation platform for dynamic unauthorized event detection and processing
US11381628B1 (en) * 2021-12-22 2022-07-05 Hopin Ltd Browser-based video production
US11516666B1 (en) 2022-05-22 2022-11-29 Starkeys Llc Access controlling network architectures utilizing cellular signaled access control to restricted services with expected keys in accordance with novel communications protocols, and methods for use thereof
US11564266B1 (en) 2022-07-11 2023-01-24 Starkeys Llc Permission-based controlling network architectures and systems, having cellular network components and elements modified to host permission controlling schemas designed to facilitates electronic peer-to-peer communication sessions methods for use thereof
US11533619B1 (en) 2022-05-22 2022-12-20 Starkeys Llc Access controlling network architectures utilizing novel cellular signaled access control and machine-learning techniques to identify, rank modify and/or control automated programmable entities (such as robots/bots) and their visual schemas, and methods for use thereof
US11477654B1 (en) 2022-05-31 2022-10-18 Starlogik Ip Llc Access controlling network architectures and systems, having cellular network components and elements modified to host access controlling schemas designed to transform and/or facilitate cellular communication signals in accordance with novel cellular communications protocols with multi-part multi-functional address signaling, and methods for use thereof
US11432154B1 (en) 2021-12-31 2022-08-30 Ari Kahn Cellular systems having elements modified for access control based on expectation data records in accordance with novel cellular communications protocols and network architectures utilizing cellular network hosted access controlling schemas, and methods for use thereof
US11388601B1 (en) * 2021-12-31 2022-07-12 Ari Kahn Cellular systems having elements modified to transform and/or operate cellular communication signals in accordance with novel cellular communications protocols and network architectures utilizing cellular network hosted access controlling schemas, and methods for use thereof

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522025B2 (en) * 2006-03-28 2013-08-27 Nokia Corporation Authenticating an application
US8959353B2 (en) * 2009-03-31 2015-02-17 Topaz Systems, Inc. Distributed system for multi-function secure verifiable signer authentication
US20120216281A1 (en) * 2011-02-22 2012-08-23 PCTEL Secure LLC Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
US20140379925A1 (en) * 2013-06-21 2014-12-25 Electronics And Telecommunications Research Institute Apparatus and method for interworking between app store servers to share application information
US9787820B2 (en) * 2013-08-07 2017-10-10 Linkedin Corporation Navigating between a mobile application and a mobile browser
US20150149582A1 (en) * 2013-11-25 2015-05-28 International Business Machines Corporation Sending mobile applications to mobile devices from personal computers
US9544329B2 (en) * 2014-03-18 2017-01-10 Shape Security, Inc. Client/server security by an intermediary executing instructions received from a server and rendering client application instructions
EP3770781B1 (en) 2014-09-30 2022-06-08 Citrix Systems, Inc. Fast smart card logon and federated full domain logon
US10084794B2 (en) * 2015-06-02 2018-09-25 ALTR Solutions, Inc. Centralized access management of web-based or native applications
US9866545B2 (en) * 2015-06-02 2018-01-09 ALTR Solutions, Inc. Credential-free user login to remotely executed applications
US10484385B2 (en) * 2015-06-04 2019-11-19 Sap Se Accessing an application through application clients and web browsers
US20170032362A1 (en) * 2015-07-31 2017-02-02 Ca, Inc. Streamlined enrollment of credit cards in mobile wallets
US9979717B2 (en) * 2015-09-25 2018-05-22 Mcafee, Llc Algorithm hardening in background context and external from the browser to prevent malicious intervention with the browser
US10846154B2 (en) * 2016-03-31 2020-11-24 Appbrilliance, Inc. Application programming interface fingerprint data generation at a mobile device executing a native mobile application
US10009773B2 (en) * 2016-03-31 2018-06-26 Appbrilliance, Inc. Secured data access from a mobile device executing a native mobile application and a headless browser
US11403078B2 (en) * 2016-10-21 2022-08-02 Vmware, Inc. Interface layout interference detection
US10382386B2 (en) * 2016-10-27 2019-08-13 Ranorex GmbH Functional webpage testing tool
US10986504B1 (en) * 2020-03-24 2021-04-20 Appbrilliance, Inc. System architecture for accessing secure data from a mobile device in communication with a remote server

Also Published As

Publication number Publication date
CA3173102C (en) 2024-01-02
WO2021194870A1 (en) 2021-09-30
EP4128852A4 (en) 2024-04-10
CA3173102A1 (en) 2021-09-30
US10986504B1 (en) 2021-04-20
US20210306857A1 (en) 2021-09-30
AU2021244177A1 (en) 2022-10-13
EP4128852A1 (en) 2023-02-08
MX2022011913A (es) 2023-01-04

Similar Documents

Publication Publication Date Title
US11797363B2 (en) Application programming interface fingerprint data generation at a mobile device executing a native mobile application
CA3173102C (en) System architecture for accessing secure data from a mobile device in communication with a remote server
US11689927B2 (en) Secured data access from a mobile device executing a native mobile application and a headless browser
US11106476B2 (en) Helper software developer kit for native device hybrid applications
JP6257670B2 (ja) 安全な銀行取引を実行するための方法およびシステム
US20200175584A1 (en) Financial Account Authentication
US9165291B1 (en) Payment transaction by email
US11424930B2 (en) Systems and methods for providing account information
US11683296B2 (en) Headless browser system with virtual API
US20230237490A1 (en) Authentication transaction
US20230229814A1 (en) System and Method for Providing Trusted Links Between Applications
KR20220019834A (ko) 디바이스로의 보안 자격증명 전송을 인증하는 방법 및 시스템
US20210326836A1 (en) Computerized payments for transaction authorization
US11594219B2 (en) Method and system for completing an operation
CA3081898A1 (en) System and method for providing trusted links between applications
CN111971706A (zh) 使用无线个人助理执行金融交易的系统和方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240206