JP6079875B2 - アプリケーション実行プログラム,アプリケーション実行方法及びアプリケーションを実行する情報処理端末装置 - Google Patents
アプリケーション実行プログラム,アプリケーション実行方法及びアプリケーションを実行する情報処理端末装置 Download PDFInfo
- Publication number
- JP6079875B2 JP6079875B2 JP2015519513A JP2015519513A JP6079875B2 JP 6079875 B2 JP6079875 B2 JP 6079875B2 JP 2015519513 A JP2015519513 A JP 2015519513A JP 2015519513 A JP2015519513 A JP 2015519513A JP 6079875 B2 JP6079875 B2 JP 6079875B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- data
- terminal device
- storage area
- browser
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 22
- 230000010365 information processing Effects 0.000 title claims description 13
- 238000013500 data storage Methods 0.000 claims description 67
- 230000006870 function Effects 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 18
- 238000007726 management method Methods 0.000 description 56
- 238000013523 data management Methods 0.000 description 21
- 239000008186 active pharmaceutical agent Substances 0.000 description 14
- 230000004044 response Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000004913 activation Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 102220619271 Alpha-1,3-galactosyltransferase 2_S29A_mutation Human genes 0.000 description 1
- 102220563870 Forkhead box protein O3_S12A_mutation Human genes 0.000 description 1
- 101001118566 Homo sapiens 40S ribosomal protein S15a Proteins 0.000 description 1
- 102220613635 Potassium voltage-gated channel subfamily C member 4_S21A_mutation Human genes 0.000 description 1
- 102220475759 Probable ATP-dependent RNA helicase DDX6_S15A_mutation Human genes 0.000 description 1
- 102220475756 Probable ATP-dependent RNA helicase DDX6_S30A_mutation Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/53—Network services using third party service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Description
本発明は,アプリケーション実行プログラム,アプリケーション実行方法及びアプリケーションを実行する情報処理端末装置に関する。
3G/LTE(Long Term Evolution)/ホットスポットの充実に伴い,例えばスマートフォンなどの情報処理端末装置(以下,単に端末または端末装置と称する)が,常時ネットワークに接続できる環境が整ってきている。
このような環境を利用して,アプリケーションサーバ(以下,単にアプリサーバと称する)から端末に必要なタイミングでアプリケーションプログラム(以下,単にアプリと称する)を配信して,端末に実行させる情報処理システムが提案されている。このようなシステムでは,端末を携帯するユーザの時間や場所に応じて必要となるアプリやデータについて,端末に配信,実行,消去などの一連の動作を自動で行う。例えば,サーバが端末の状況を端末が内蔵するセンサの出力から取得し,必要なアプリやデータを端末に配信する。そして,端末でアプリの実行が終了すると,そのデータが消去される。このシステムを利用することで,ユーザが事前にアプリやデータを端末にセットアップしておかなくても,必要なときに必要な場所で,端末でそのときその場所で必要なアプリを実行することができるようになる。
プレスリリース(技術)"時間や場所に応じて必要なアプリケーションが自動配信・自動実行される情報端末技術を開発",平成23年7月19日,株式会社富士通,(平成24年8月7日検索),http://pr.fujitsu.com/jp/news/2011/07/19-1.html
上記のような情報処理システムにおいて,データのセキュリティは重要な技術的課題である。端末は,オンライン状態でアプリサーバから必要なアプリとデータをダウンロードし,アプリサーバと接続できないオフライン環境で,そのデータに対してアプリを実行する。そして,このような情報処理システムにおけるアプリとして,HTMLで記述されたアプリケーションプログラムであるHTMLアプリが利用される。
オンライン環境でHTMLアプリを利用すると,端末上に一時的な情報を保存するためのストレージ領域を持つことができる。そのストレージ領域は,ブラウザによりインターネットアドレスであるURLに対して割り当てられ,それぞれ隔離されるので,各ストレージ領域内のデータは保護される。そして,ウインドウやタブが開いている間のみデータが保存され,閉じるとデータは失われる。例えば,セッションストレージと呼ばれているストレージ領域である。したがって,異なるHTMLアプリについてのデータは,それぞれ隔離されたストレージ領域に保存され,HTMLアプリの終了と共にそのストレージ領域内のデータはクリアされる。このように,オンライン環境でサーバからダウンロードして実行されるHTMLアプリを,ウエブアプリと称する。
一方,HTMLアプリは,端末内(ローカル内)の記憶領域内に保存することで,オフライン環境下で実行することができる。いわゆるオフライン閲覧が可能である。このように,オフライン環境で実行されるローカルに保存したHTMLアプリを,ローカルアプリと称する。しかし,この場合は,ブラウザがローカルファイル(Localfile)という同一のインターネットアドレスに対してデータのストレージ領域を割り当てるので,全てのローカルなHTMLアプリが同じストレージ領域を共有する。さらに,HTMLアプリを終了してもストレージ領域内のデータはクリアされない。
したがって,ローカルアプリの場合は,悪意のあるHTMLアプリによって共有されるストレージ領域内のデータが漏洩する問題がある。
そこで,本発明の目的は,セキュリティ性の高いアプリケーション実行プログラム,アプリケーション実行方法及びアプリケーションを実行する情報処理端末装置を提供することにある。
実施の形態の第1の側面は,端末装置のメモリに保存されているアプリケーションを実行するアプリケーション実行処理をプロセッサに実行させるアプリケーション実行プログラムであって,前記アプリケーション実行処理は,
前記メモリに保存されているアプリケーションに前記端末装置外の外部アドレスを対応付ける工程と,
前記外部アドレスが割り当てられた内部ウエブサーバを起動する工程と,
ブラウザに,前記外部アドレスの内部ウエブサーバにアクセスさせて前記アプリケーションを取得させる工程と,
前記ブラウザに,前記アプリケーションを実行させて,前記外部アドレスに対応付けられたデータストレージ領域内のデータにアクセスさせる工程とを有する。
前記メモリに保存されているアプリケーションに前記端末装置外の外部アドレスを対応付ける工程と,
前記外部アドレスが割り当てられた内部ウエブサーバを起動する工程と,
ブラウザに,前記外部アドレスの内部ウエブサーバにアクセスさせて前記アプリケーションを取得させる工程と,
前記ブラウザに,前記アプリケーションを実行させて,前記外部アドレスに対応付けられたデータストレージ領域内のデータにアクセスさせる工程とを有する。
第1の側面によれば,アプリケーションのデータのセキュリティ性を高めることができる。
図1は,本実施の形態におけるアプリプッシュの情報処理システムの全体構成を示す図である。この情報処理システムは,アプリケーション,例えばHTMLアプリ(HTMLで記述されたアプリケーションプログラム),を実行する複数の端末装置10と,アプリを端末装置10に送信するアプリサーバ20と,複数の端末装置10とアプリサーバ20とを通信可能にするネットワークNETとを有する。このネットワークNETは,ユーザが属する企業内のイントラネットや,企業外のインターネットや,その他企業外の無線LAN,公衆電話回線などが含まれる。
この情報処理システムの概略的な動作は次の通りである。アプリサーバ20は,各端末装置10を所有するユーザのスケジュールや行動範囲に関するデータを保持している。一方,各端末装置10は,端末装置の位置を検出をするGPSセンサや,無線通信を行う通信装置を有する。それにより,端末装置10は,アプリサーバ20と通信可能なオンライン状態で,端末装置の位置情報や,WiFi通信のアクセスポイントの識別子であるSSID(Service Set Identifier)や,IPアドレスなどをアプリサーバ20に送信する。
そして,アプリサーバ20は,端末装置10から送信されてきた各種情報と,保持しているスケジュールなどに基づいて,現在の端末装置の状況(以下,シーンと称する場合がある)と近い将来における状況(シーン)に応じて必要なアプリとアプリのデータとを,端末装置10に送信する。例えば,アプリサーバ20が,必要なアプリのダウンロード先情報,例えばURL,を有するメッセージを端末装置10にプッシュ送信する。すると,端末装置10が,そのダウンロード先情報に基づいて,現在必要なまたは近い将来必要になるアプリをアプリサーバ20からダウンロードし,端末装置内の内部メモリに保存する。
その後,オフライン状態において,端末装置10は,内部メモリに保存したアプリを実行しデータを更新する。端末装置10は,アプリの実行を終了させる時に,内部メモリに保存している更新されたデータを,セキュアなストレージシステムであるアプリサーバ20にアップロードする。端末装置10は,アプリの実行が終了すると,その更新されたデータを内部メモリから消去する。
上記のように,端末装置10は,必要なときに必要な場所で必要なアプリを実行し,不要になると端末装置内からアプリ実行で更新されたデータを消去する。したがって,ユーザは,出先の顧客先においても,オフラインで業務やプライベートについてのアプリを実行させることができ,そのアプリ実行により生成されたデータを端末装置から削除することができるので,端末装置を紛失した場合のデータに対するセキュリティを高めることができる。
図2は,本実施の形態におけるアプリサーバの構成図である。アプリサーバ20は,CPU201と,メインメモリであるRAM202と,表示装置203と,入力装置204と,ネットワークNETを介して外部と通信する通信装置205と,ハードディスクやフラッシュメモリなどの大容量メモリ206とを有する。
大容量メモリ206には,OS210と,アプリプッシュ制御プログラム211と,ユーザのスケジュールや端末情報を有するユーザ・端末データベース212が保存されている。さらに,大容量メモリ206には,端末装置にダウンロードされるHTMLアプリのプログラム221,223と,そのデータ222,224と,HTMLアプリを実行するランタイムライブラリ225と,各HTMLアプリに対応するデータについて,アプリサーバ20と端末装置10間で共有する暗号鍵や,そのデータが端末装置のどのシーンに対応するものかなどの情報を格納したデータ管理データベース226とが保存されている。
HTMLアプリはランタイムライブラリによって解釈され実行され,そして,ランタイムライブラリはOSによって解釈され実行される。したがって,HTMLアプリを端末装置に送信して端末装置上で実行させるためには,そのHTMLアプリを実行するランタイムライブラリも端末装置に送信する必要がある。但し,端末装置に既にランタイムライブラリが保存され実行可能になっている場合は,ランタイムライブラリを端末装置に送信する必要はない。
図3は,アプリプッシュ制御プログラム211の機能を示す図である。アプリプッシュ制御プログラム211を実行することにより実現される機能には,ユーザ・端末情報DB212を管理するユーザ・端末管理部230と,端末装置からアップロードされるセンサ値(位置情報,SSID,IPアドレスなど)と,ユーザのスケジュールなどに基づいて,端末装置の現在及び近い未来のシーンを検出する端末シーン検出部231とが含まれる。
さらに,アプリプッシュ制御プログラム211の機能には,検出した端末装置のシーンに基づいて,どのアプリとデータを端末装置にプッシュ送信すべきかを決定するアプリ・データ選択部232と,決定したアプリとデータ及びその暗号鍵などを端末装置に送信するアプリ送信制御部233と,データ管理DB226を管理するアプリ用データ管理部234とが含まれる。
図4は,本実施の形態における端末装置の構成図である。図4の端末装置10は,スマートフォンやタブレット端末などである。端末装置10は,CPU101と,メインメモリであるRAM102と,表示装置103と,操作入力を行うためのタッチスクリーン104と,無線通信を行う通信装置105と,端末装置の位置検出するGPSなどの各種センサ106とを有する。
さらに,端末装置10は,ハードディスク(HDD)やフラッシュメモリなどのSSDなど,大容量の補助メモリ107を有する。そして,補助メモリ107内には,OS110と,ブラウザ111と,アプリケーションプログラム群112とが保存されている。さらに,補助メモリ107には,アプリサーバ20からダウンロードしたHTMLアプリ121,123と,それらのアプリを実行するランタイムライブラリ113とが保存され,HTMLアプリを起動するときに生成されたHTMLアプリのデータを保存するデータストレージ領域122,124を有する。
図5は,図4の端末装置のハードウエアとソフトウエアの関係を示す図である。端末装置10は,CPU101やRAM102などのその他ハードウエア群120の上でOS110が動作する。そして,補助メモリ107に保存されているアプリケーションプログラム112がOS110上で実行され所定の機能を実現する。
一方,ブラウザ11によりアプリサーバ20からダウンロードされたHTMLアプリ121,123は,ランタイムライブラリ113により,端末装置内のローカルメモリである補助メモリ107内に保存される。そして,補助メモリ107内には,ランタイムライブラリに割り当てられたメモリ領域140が生成され,ランタイムライブラリ113のストレージ管理部132により管理される。
ランタイムライブラリ113は,アプリサーバ20からブラウザ111を介してダウンロードされたHTMLアプリを起動制御するランチャ130と,暗号鍵を管理する鍵管理部131と,ランタイムライブラリに割り当てられたメモリ領域140を管理するストレージ管理部132とを有する。
ダウンロードされたHTMLアプリ121,123は,ランタイムライブラリ113によりメモリ領域140内に保存される。ここで,HTMLアプリ121は,HTMLアプリ1であり,HTMLアプリ123は,HTMLアプリ2であり,それぞれ異なるHTMLアプリである。そして,ランチャ130がメモリ領域140内のHTMLアプリを起動する時に,起動するHTMLアプリのデータを保存するデータストレージ領域122,124がメモリ領域140内に確保され,そこに,ダウンロードしたデータが保存される。
HTMLアプリ121,123がブラウザ111とランタイムライブラリ113により実行されると,実行中のデータの読み出しと書き込みが,HTMLアプリ121,123それぞれに関連付けられたデータストレージ領域122,124に対して実行される。特に,後述するとおり,HTMLアプリがウエブサーバからダウンロードされた場合は,そのウエブサーバのURLに関連付けられたデータストレージ領域にデータが保存され,各データストレージ領域のデータは隔離して管理される。
[第1の実施の形態]
図6は,第1の実施の形態におけるアプリ実行シーケンスの概略を示すフローチャート図である。図6にしたがってアプリ実行シーケンスの概略を説明した後に,詳細な説明を行う。
図6は,第1の実施の形態におけるアプリ実行シーケンスの概略を示すフローチャート図である。図6にしたがってアプリ実行シーケンスの概略を説明した後に,詳細な説明を行う。
図6において,端末装置がアプリサーバと通信可能なオンライン状態において(S0),端末装置10は,端末装置の状況であるシーン(例えばプライベートまたは業務)に応じて必要なアプリとそのデータをアプリサーバからダウンロードし,それぞれ補助メモリ107内に保存する(S51)。この場合,アプリとそのデータが暗号化されている場合は,端末装置10は,暗号鍵も併せてダウンロードする。
そして,オンライン状態中にウエブサーバからダウンロードしたアプリ(ウエブアプリ)を実行した場合は,ブラウザが,ウエブサーバのURLに対応したストレージ領域を確保し,アプリの実行に伴ってデータを更新しストレージ領域内に書き込み,アプリの実行の終了に伴ってストレージ領域内のデータをアプリサーバにアップロードして,端末装置内のデータを削除する。オンライン状態中のアプリの実行は,図6には示されていない。
本実施の形態では,その後のオフライン状態(S5)において,端末装置10が,ダウンロードして内部の補助メモリ内に保存したアプリ(ローカルアプリ)を実行する実行シーケンスを説明する。ランタイムライブラリ113は,アプリを起動する時に,端末装置内で未使用の外部アドレスであるURLを決定し,起動するアプリと関連付ける(S52)。起動するアプリとURLとの関連付けはデータベース化されて補助メモリ107内に保存される。
そして,ランタイムライブラリ113は,URLに対応するデータストレージ領域を補助メモリ内に確保する初期化処理を行い,ダウンロードしたアプリのデータをデータストレージ領域に書き込んで復元する(S53)。
次に,ランタイムライブラリ113が,URLを有するウエブサーバを起動し,そのURLと,アプリが保存されているアドレスとを指定してブラウザ111にアプリをダウンロードするよう指示する。この指示に応答して,ブラウザがそのURLにアクセスし,アプリをダウンロードする(S54)。このように,ブラウザ111に,見せかけの外部アドレスであるURLを有するウエブブラウザにアクセスさせることで,ブラウザにウエブアプリをダウンロードして実行するよう制御させる。その結果,ブラウザは,アプリの実行中のデータの読み出し及び書き込み動作を,そのURLに対応付けられたデータストレージ領域に対して実行する(S55)。しかも,ブラウザは,このデータストレージ領域をURL毎に隔離してアクセス管理する。
最後に,ブラウザは実行中のアプリを終了し,データストレージ領域内のデータをクリア,すなわち削除する。そして,ランタイムライブラリは,アプリ終了前にデータストレージ領域内のデータを退避し,アプリが終了した後,退避したデータをセキュリティ性の高いセキュアファイルシステム,例えばアプリサーバにアップロードして保存する(S56)。
そして,その後,再度,オンライン状態になると,アプリサーバ20から端末装置10にメッセージがプッシュ送信され,端末装置10は,必要なアプリとそのデータの暗号化コンテンツと,暗号鍵とをアプリサーバ20からダウンロードし,内部メモリである補助メモリ内に保存する。以下,上記と同様に,オフライン状態では,ブラウザが内部メモリに保存されているアプリをウエブアプリとして実行する。
上記のアプリ実行シーケンスで概略的に示したとおり,端末装置内の内部メモリである補助メモリ内に保存しているアプリ,つまりローカルアプリを起動するときに,端末装置内に未使用の外部アドレスであるURLを選択し,ブラウザにそのURLにアクセスして端末装置内のメモリに保存されているローカルアプリをダウンロードさせる。このようにフェイクの外部アドレスであるURLからダウンロードさせることで,ブラウザはローカルアプリをウエブアプリとして実行する。その結果,そのURLに対応して生成されたデータストレージ領域は,他のアプリのデータストレージ領域とは隔離して管理される。したがって,データストレージ領域内のデータを盗み取られることを抑制することができる。また,アプリの実行が終了すると,そのアプリのURLに対応するデータストレージ領域内のデータは削除される。これにより,端末装置を紛失した場合でも,端末装置内にはアプリが更新したデータが保存されないので,セキュリティ性を高めることができる。
[第1の実施の形態の詳細]
図7,図8,図9は,第1の実施の形態におけるアプリ実行シーケンスのフローチャート図である。
図7,図8,図9は,第1の実施の形態におけるアプリ実行シーケンスのフローチャート図である。
前述したとおり,前提として,アプリサーバ20は,端末装置10から送信されてきた位置情報,IPアドレス,SSIDなどの端末装置10のシーンを類推するための各種情報と,保持している端末装置10のユーザのスケジュールなどに基づいて,端末装置の現在の状況と近い将来におけるシーン(状況)を類推する。そして,アプリサーバ20は,その端末装置のシーンに応じて必要なアプリとアプリのデータとを,端末装置10に送信する。例えば,アプリサーバ20が,必要なアプリのダウンロード先情報,例えばURL,を有するメッセージを端末装置10に送信する。
図7参照
これに応答して,端末装置10のランタイムライブラリのランチャ130は,そのダウンロード先情報URLにアクセスして,現在必要なまたは近い将来必要になるアプリとそのアプリのデータを暗号化した暗号化コンテンツと,暗号鍵の送信をアプリサーバ20に要求し(S1),アプリサーバ20はそれらを端末装置10に送信する(S2)。この暗号鍵は,例えば,アプリサーバと端末装置間で共有される共有鍵により暗号化されていてもよい。そして,ランチャ130は,鍵管理部131に暗号鍵の保存を要求し,鍵管理部131は暗号鍵を補助メモリ107内に保存する(S3)。さらに,ランチャ130は,ストレージ管理部132に暗号化コンテンツの保存を要求し,ストレージ管理部132はその暗号化コンテンツを補助メモリ107内に保存する(S4)。これで,端末装置10は,その後のオフライン状態において,補助メモリ107に保存したアプリを実行可能状態になる。
これに応答して,端末装置10のランタイムライブラリのランチャ130は,そのダウンロード先情報URLにアクセスして,現在必要なまたは近い将来必要になるアプリとそのアプリのデータを暗号化した暗号化コンテンツと,暗号鍵の送信をアプリサーバ20に要求し(S1),アプリサーバ20はそれらを端末装置10に送信する(S2)。この暗号鍵は,例えば,アプリサーバと端末装置間で共有される共有鍵により暗号化されていてもよい。そして,ランチャ130は,鍵管理部131に暗号鍵の保存を要求し,鍵管理部131は暗号鍵を補助メモリ107内に保存する(S3)。さらに,ランチャ130は,ストレージ管理部132に暗号化コンテンツの保存を要求し,ストレージ管理部132はその暗号化コンテンツを補助メモリ107内に保存する(S4)。これで,端末装置10は,その後のオフライン状態において,補助メモリ107に保存したアプリを実行可能状態になる。
その後,端末装置10がアプリサーバ20と通信不能のオフライン状態になる(S5)。このオフライン状態で,ランチャ130は,ユーザによるアプリ1の起動操作などのアプリ起動イベントを検知したり,現在の端末装置のシーンに基づいてアプリ1を起動することを決定すると,アプリ1に対応する外部アドレスであるURLを決定する(S6)。この外部アドレスは,端末装置内で未使用のアドレスである。以下の例では,この外部アドレスURLがURL1であるとする。そして,ランチャ130は,アプリ1とその外部アドレスURL1とが対応付けられたデータベースDB1を,例えば補助メモリ107内に保存する。ランチャ130がアプリ1に割り当てるURL1は,例えば,次のようなアドレスである。
http://171.0.0.1:5289/path/index.html
そして,ランチャ130は,アプリ1のデータの復元をストレージ管理部132に要求する(S7)。これに応答して,ストレージ管理部132は,アプリ1の暗号鍵を鍵管理部131から取得し,補助メモリ107に保存しているアプリ1のデータの暗号化コンテンツを暗号鍵により復号する(S9)。さらに,ストレージ管理部132は,アプリ1とその外部アドレスURL1の対応付けを有するデータベースDB1を参照して,URL1のデータストレージ領域を確保する初期化処理を,ブラウザ111に要求し(S11),ブラウザはURL1のデータストレージ領域を補助メモリ107内に確保する(S12)。
http://171.0.0.1:5289/path/index.html
そして,ランチャ130は,アプリ1のデータの復元をストレージ管理部132に要求する(S7)。これに応答して,ストレージ管理部132は,アプリ1の暗号鍵を鍵管理部131から取得し,補助メモリ107に保存しているアプリ1のデータの暗号化コンテンツを暗号鍵により復号する(S9)。さらに,ストレージ管理部132は,アプリ1とその外部アドレスURL1の対応付けを有するデータベースDB1を参照して,URL1のデータストレージ領域を確保する初期化処理を,ブラウザ111に要求し(S11),ブラウザはURL1のデータストレージ領域を補助メモリ107内に確保する(S12)。
図8参照
ブラウザ111がURL1のデータストレージ領域を初期化すると(S12),ストレージ管理部132は,復号したアプリ1のデータを初期化したデータストレージ領域DSに書き込んで復元する(S13)。すなわち,後でブラウザ111がローカルアプリであるアプリ1をウエブアプリとして実行するので,アプリ1の復号データをデータストレージ領域DSに予め書き込んでおく必要がある。
ブラウザ111がURL1のデータストレージ領域を初期化すると(S12),ストレージ管理部132は,復号したアプリ1のデータを初期化したデータストレージ領域DSに書き込んで復元する(S13)。すなわち,後でブラウザ111がローカルアプリであるアプリ1をウエブアプリとして実行するので,アプリ1の復号データをデータストレージ領域DSに予め書き込んでおく必要がある。
次に,ランチャ130は,アプリ1の暗号化コンテンツをストレージ管理部132から取得し(S14),更に,アプリ1の暗号鍵を鍵管理部131から取得する(S15)。そして,ランチャ130は,アプリ1を暗号鍵により復号する(S16)。復号されたアプリ1は,端末装置内のいずれかの領域に保存される。
そして,ランチャ130は,URL1のWebサーバ133を起動し(S17),ブラウザ111に,URL1のウエブサーバ133からアプリ1をURL1のWebサーバ133からダウンロードするよう指示する(S18)。このダウンロード指示には,URL1とアプリ1が保存されている端末装置内の領域情報とが含まれる。これに応答して,ブラウザ111は,URL1のWebサーバにアクセスし,アプリ1のダウンロードを要求する(S19)。それに応答して,Webサーバ133は,復号されているアプリ1をブラウザ111に送信し(S20),ブラウザ111は,ダウンロードしたアプリ1をWebアプリケーションとして実行する(S21)。
図9参照
ブラウザ111は,アクセスしたURL1でそれに対応付けられたデータストレージ領域DSを検索し,検出すれば,アプリ1の実行中に,そのデータストレージ領域DS内のデータにアクセスし,データの読み出し処理と,アプリ実行による更新データの書き込み処理を行う。検索して検出できなければ,ブラウザ111は,URL1に対するデータストレージ領域を初期化してアプリ1を実行する。
ブラウザ111は,アクセスしたURL1でそれに対応付けられたデータストレージ領域DSを検索し,検出すれば,アプリ1の実行中に,そのデータストレージ領域DS内のデータにアクセスし,データの読み出し処理と,アプリ実行による更新データの書き込み処理を行う。検索して検出できなければ,ブラウザ111は,URL1に対するデータストレージ領域を初期化してアプリ1を実行する。
上記のWebサーバ133は,端末装置内に設けられ,HTTPプロトコルでブラウザと通信することができる。したがって,ブラウザ111がURL1にアクセスすると,ブラウザ1は起動してWebサーバ133と接続状態になり,ブラウザ111が指定した端末装置内の領域情報内のアプリ1をダウンロードすることができる。これにより,ブラウザ111は,端末装置内に保存されたローカルアプリを外部のインターネット上のWebブラウザからダウンロードしたウエブアプリとして認識させられ,そのURL1に対応して確保されたデータストレージ領域DSに対してデータの読み出し,書き込み動作を実行する。このURL1に対応するデータストレージ領域DSに対してデータを書き込むのは,例えば,HTML5の規格でも規定されている動作である。
アプリ1の実行後,ランチャ130がアプリ1の終了を検知すると(S22)。アプリ1のデータの暗号化とアプリ1の実行の終了とをストレージ管理部132に要求する(S23)。これに応答して,ストレージ管理部132は,まず,アプリ1のデータをURL1のデータストレージ領域DSから退避(読み出して一時保存)する(S24)。さらに,ストレージ管理部132が,ブラウザ111にアプリ1の終了処理要求を行うと(S25),ブラウザ111は,アプリ1を終了し,アプリ1に関連付けられているURL1のストレージ領域DS内のデータを消去する。ブラウザ111は,ウエブアプリの終了と認識しているので,上記のように,アプリ1の終了と共にURL1のストレージ領域DS内のデータを消去する。
ストレージ管理部132は,アプリ1の暗号鍵を鍵管理部131から取得し,退避していたアプリ1のデータを暗号化し,一時記憶する(S27)。その後,ランチャ130は,一定時間アプリ1の実行が行われない場合に,ストレージ管理部132からアプリ1の暗号化したデータを取得し(S29),よりセキュアなファイルシステムであるアプリサーバ20に,アップロードする(S30)。セキュアなファイルシステムは,アプリサーバ20以外のファイルシステムでも良い。
以上の通り,ランチャ130がURL1のWebサーバ133を起動した状態で,ブラウザ111にURL1にアクセスしてアプリ1をダウンロードさせることで,ブラウザ111は,ローカルアプリであるアプリ1をウエブアプリと認識し,URL1に対応するデータストレージ領域DSにデータの読み出し書き込みを実行し,データストレージ領域DSへの他のアプリからのアクセスを制限し,アプリ1の終了時にそのデータストレージ領域DS内のデータを消去する。さらに,ランチャ130は,アプリ1の終了時にデータストレージ領域DSからデータを退避し,適切なタイミングで暗号化してセキュアなファイルシステムであるアプリサーバ20にアップロードする。
したがって,端末装置を紛失したとしても,端末装置内にはアプリ1により更新されたデータは消去されているし,アプリ1のデータストレージ領域DSは,他のアプリのデータストレージ領域とは隔離されて管理されるので,データに対するセキュリティを向上させることができる。
[第2の実施の形態]
第1の実施の形態において,アプリ1の実行中にURL1に対応付けられたデータストレージ領域に更新したデータが暗号化されずに書き込まれる。それに対して,第2の実施の形態におけるアプリ実行シーケンスでは,アプリ1の実行中にURL1に対応付けられたデータストレージ領域に更新したデータをリアルタイムで暗号化して保存する。そのために,読み出したデータを復号し書き込みデータを暗号化して書き込む処理を行う暗号・復号読み出し書き込み関数を,アプリ1の実行が開始されるときに登録し,アプリ1実行中のURL1のデータストレージ領域への読み出し書き込み処理を,その暗号・復号読み出し書き込み関数で処理させる。
第1の実施の形態において,アプリ1の実行中にURL1に対応付けられたデータストレージ領域に更新したデータが暗号化されずに書き込まれる。それに対して,第2の実施の形態におけるアプリ実行シーケンスでは,アプリ1の実行中にURL1に対応付けられたデータストレージ領域に更新したデータをリアルタイムで暗号化して保存する。そのために,読み出したデータを復号し書き込みデータを暗号化して書き込む処理を行う暗号・復号読み出し書き込み関数を,アプリ1の実行が開始されるときに登録し,アプリ1実行中のURL1のデータストレージ領域への読み出し書き込み処理を,その暗号・復号読み出し書き込み関数で処理させる。
図10,図11,図12は,第2の実施の形態におけるアプリの実行シーケンスを示すフローチャート図である。以下,図7,図8,図9のアプリ実行シーケンスと異なる処理について主に説明する。
図10参照
オンライン状態S0での処理S1-S4は,図7と同じである。さらに,オフライン状態S5での処理S6-S11も図7と同じである。
オンライン状態S0での処理S1-S4は,図7と同じである。さらに,オフライン状態S5での処理S6-S11も図7と同じである。
そして,ストレージ管理部132からのURL1に対応するデータストレージ領域の初期化要求に応答して,ブラウザ111は,URL1に対応するデータストレージ領域を補助メモリ107内に確保する初期化処理を行い(S12),さらに,ブラウザ111は,URL1に対応するデータストレージ領域への暗号・復号読み出し書き込み関数を,ブラウザエンジン内の読み出し書き込み関数テーブルに登録する(S12A)。
図13は,ブラウザエンジン内の読み出し書き込み関数テーブルを示す図である。ブラウザ111は,URL1への読み出し書き込み命令を実行すると,ブラウザエンジン111E内の読み出し書き込み(R/W)関数テーブル内のURL1に対応するR/W関数のアドレス2が参照され,ミドルエウアMW内のアドレス2に対応する暗号・復号読み出し書き込み(R/W)関数が,コールバック関数(Call Back Function)として呼び出されて,読み出し書き込み命令の処理が行われる。このアドレス2に対応する暗号・復号読み出し書き込み(R/W)関数は,一種のAPI(Application Program Interface)である。
なお,図13では,URL2への読み出し書き込み命令に対してもアドレス2の暗号・復号読み出し書き込み(R/W)関数が呼び出されるように登録されている。また,ブラウザ111によるURL3に対するデータ領域への通常の読み出し書き込み命令が実行されると,ブラウザエンジン111E内のアドレス3に登録されている通常読み出し書き込み関数が読み出される。
図11参照
ストレージ管理部132は,復号したデータを,初期化したURL1のデータストレージ領域SDに復元する(S13A)。この復元処理は,URL1のデータストレージ領域SDへのデータの書き込み処理であり,登録された暗号・復号読み出し書き込み関数が呼び出されて,その関数により復号データは暗号化されてURL1のデータストレージ領域SDに書き込まれる。
ストレージ管理部132は,復号したデータを,初期化したURL1のデータストレージ領域SDに復元する(S13A)。この復元処理は,URL1のデータストレージ領域SDへのデータの書き込み処理であり,登録された暗号・復号読み出し書き込み関数が呼び出されて,その関数により復号データは暗号化されてURL1のデータストレージ領域SDに書き込まれる。
図12参照
ブラウザ111がアプリ1を実行すると(S21),実行中のデータの読み出し,書き込み処理は,登録された暗号・復号読み出し書き込み関数で処理される(S21A)。したがって,更新されたデータは,この暗号・復号読み出し書き込み関数で暗号化されてデータストレージ領域SDに書き込まれ,データストレージ領域SDから読み出されたデータは復号される。これによりブラウザ111によるアプリ1の実行中のデータアクセスは,この関数を呼び出すことで実行され,データはリアルタイムで暗号化されてURL1のデータストレージ領域SDに書き込まれる。
ブラウザ111がアプリ1を実行すると(S21),実行中のデータの読み出し,書き込み処理は,登録された暗号・復号読み出し書き込み関数で処理される(S21A)。したがって,更新されたデータは,この暗号・復号読み出し書き込み関数で暗号化されてデータストレージ領域SDに書き込まれ,データストレージ領域SDから読み出されたデータは復号される。これによりブラウザ111によるアプリ1の実行中のデータアクセスは,この関数を呼び出すことで実行され,データはリアルタイムで暗号化されてURL1のデータストレージ領域SDに書き込まれる。
そして,アプリ1の終了時には,図9のようにストレージ管理部132がデータストレージ領域SD内のデータを暗号化する処理は不要になる。そのため,図12では,ランチャ130がアプリ1の終了を検知すると(S22),ストレージ管理部132に対して,アプリ1のデータの退避とアプリ1の終了を要求し(S23A),それに応答して,ストレージ管理部132は,アプリ1の暗号化済みのデータをURL1のデータストレージ領域から退避しておくだけであり,改めて暗号化処理を行う必要はない。そして,一定時間アプリ1の実行がない場合に,ランチャ130は,退避した暗号化データをストレージ管理部132から取得して,アプリサーバ20にアップロードする(S30)。
このように,ブラウザエンジン111E内に,URL1に対するデータストレージ領域SDへの読み出しと書き込み処理を専用に行う暗号・復号読み出し書き込み関数を登録しておくことで,ブラウザ111がURL1のアプリ1のデータアクセス処理を実行するとき,この登録した関数がフックされて呼び出されるので,リアルタイムにデータを暗号化してデータストレージ領域SD内に保存することができる。これにより,オフライン状態で端末装置10を紛失しても,アプリ実行中のデータを盗まれることが抑制され,データのセキュリティを高めることができる。
[第3の実施の形態]
第3の実施の形態では,HTMLアプリのデータを,端末装置10の状況に応じて,すなわちプライベートや業務などの状況(シーン)に応じて,区別して管理する。それを行うために,アプリサーバ20と端末装置10とは,アプリケーションと,データと,そのデータのシーンと,そのシーンでのアプリのデータについての暗号鍵の情報を有するデータ管理DBを共有する。そして,オンライン状態で,アプリサーバ20が端末装置10のシーンを検出して,アプリサーバ20が,検出したシーンに対するアプリとデータと暗号鍵と,そのアプリやデータの使用条件を記載したポリシーファイルとを,端末装置10に送信する。アプリサーバ20は,データ管理DBを参照して,アプリとシーン毎にポリシーファイルを作成する。
第3の実施の形態では,HTMLアプリのデータを,端末装置10の状況に応じて,すなわちプライベートや業務などの状況(シーン)に応じて,区別して管理する。それを行うために,アプリサーバ20と端末装置10とは,アプリケーションと,データと,そのデータのシーンと,そのシーンでのアプリのデータについての暗号鍵の情報を有するデータ管理DBを共有する。そして,オンライン状態で,アプリサーバ20が端末装置10のシーンを検出して,アプリサーバ20が,検出したシーンに対するアプリとデータと暗号鍵と,そのアプリやデータの使用条件を記載したポリシーファイルとを,端末装置10に送信する。アプリサーバ20は,データ管理DBを参照して,アプリとシーン毎にポリシーファイルを作成する。
そして,オフライン状態で,ダウンロードされたアプリとデータに対する起動を行う時に,端末装置10内の鍵管理部が,ポリシーファイルを参照して,起動しようとするアプリとデータの使用がアプリサーバにより許可されていたかを確認する。これにより,不正に端末装置を取得した第三者が,端末装置のセンサに虚偽のシーン状態(例えばプライベートであるにもかかわらず業務のシーン状態)を検出させ,内部メモリに保存されているアプリとデータ(業務のデータ)を不正に使用する試みを,防止できる。
さらに,アプリの終了時に,再度,鍵管理部が現在のシーンを検出し,アップロードするデータをどのアプリのどのシーンに対して保管すべきかの情報を有するポリシーファイルを作成し,アプリサーバ20に暗号化データとポリシーファイルとを共にアップロードする。アプリサーバ20は,このポリシーファイルを参照して,アプリと正しいシーンに対するデータを保存することができる。
図14は,アプリサーバが保持するデータ管理テーブルと各端末装置が保持するデータ管理テーブルの例を示す図である。図14に示されるとおり,アプリサーバは,全ての端末10−1,10−2,10−3それぞれについて,データ管理DBを保持している。端末10−1についてのデータ管理DBは,アプリ1について,端末のシーンがプライベートの場合の鍵名KEY1と,端末のシーンが業務の場合の鍵名KEY2と,それぞれについての,端末内の保存状態の情報とを有する。この鍵名KEY1は,例えば,アプリ名とシーンとを有するデータ名でもある。同様に,端末10−1についてのデータ管理DBは,アプリ2についても,同様に,端末のシーンがプライベートの場合の鍵名KEY3と,業務の場合の鍵名KEY4とを有する。
上記の鍵名は,アプリケーションがword(wordは登録商標)で,そのデータがプライベートに対するものであれば,word-private_xxx.keyなどである。鍵名には,アプリ名とシーンの情報が含まれている。
一方,各端末装置は,それぞれの端末装置に保存されたデータのデータ管理DBを保持している。図14の例では,端末装置10−1が保持するデータ管理DBは,アプリサーバが端末装置10−1について保持するデータ管理DBと,アプリ名,鍵名,シーンが一致している。ただし,端末装置10−1が保持するデータ管理DBは,端末内の保存場所のデータを有している。
図14で示したとおり,アプリサーバと端末装置は,特定のアプリの特定のシーンについての鍵情報を共有する。これにより,アプリサーバと端末装置間だけでデータの暗号化と復号とが可能になる。
図15は,アプリサーバ20と端末装置10内の鍵管理部131とが生成するポリシーファイルPFの例を示す図である。アプリ1についてのポリシーファイルは,端末のシーンがプライベートの場合のデータに添付されるポリシーファイルPF1と,端末のシーンが業務の場合のデータに添付されるポリシーファイルPF2とが生成される。ポリシーファイルPF1の鍵名は,アプリ1とシーン1の情報を有する,word-private_xxx.keyであり,署名hijklmが付加される。ポリシーファイルPF2の鍵名は,アプリ1とシーン2の情報を有する,word-business_xxx.keyであり,署名opqrstが付加される。また,ポリシーファイルPF3の鍵名は,アプリ2とシーン1の情報を有する,exel-private_xxx.keyであり,署名uwxyzが付加される。ポリシーファイルPF4の鍵名は,アプリ2とシーン2の情報を有する,exel-business_xxx.keyであり,署名abcdeが付加される。
端末装置10は,アプリサーバ20からアプリとそのデータをダウンロードするときに,それらの利用条件(アプリとシーン)を記述したポリシーファイルもダウンロードする。そして,オフライン状態で,端末のあるシーンが検出されると,あるアプリが起動されそのシーンについてのデータが使用される。その際に,端末装置10の鍵管理部がこのポリシーファイルPFを参照して,アプリサーバ20がオンライン状態で許可した特定のアプリの特定のシーンに対するデータであるか否かをチェックする。したがって,悪意のある第三者が,不正に端末装置を盗みたいデータに対するシーンにおいた場合に,シーンが異なるためそのデータの使用が許可されず,データについてのセキュリティ性を高めることができる。
また,端末装置10は,アプリを終了する時に,鍵管理部に端末装置のシーンを検出させてポリシーファイルPFを生成させ,退避させた暗号化データにそのポリシーファイルPFを添付して,アプリサーバなどのセキュアなファイルシステムにアップロードする。これにより,アプリサーバは,どのアプリのどのシーンのデータかをポリシーファイルから検出して,そのデータを正しいシーンに対するデータとして更新することができる。
図16,図17,図18は,第3の実施の形態におけるアプリ実行シーケンスのフローチャート図である。以下,図7,図8,図9のアプリ実行シーケンスと異なる処理について主に説明する。
図16参照
オンライン状態S0で,アプリサーバ20は,端末装置から端末のシーンに対応するセンサ情報を取得し,端末装置のユーザのスケジュール情報などを参照して,端末装置の現在のシーン及び近い将来のシーンに対応したアプリとそのデータを選択する(S40)。さらに,アプリサーバ20は,図14のデータ管理DBを参照して,図15に示したデータ毎のポリシーファイルを作成する(S41)。
オンライン状態S0で,アプリサーバ20は,端末装置から端末のシーンに対応するセンサ情報を取得し,端末装置のユーザのスケジュール情報などを参照して,端末装置の現在のシーン及び近い将来のシーンに対応したアプリとそのデータを選択する(S40)。さらに,アプリサーバ20は,図14のデータ管理DBを参照して,図15に示したデータ毎のポリシーファイルを作成する(S41)。
そして,アプリサーバ20は,例えば,選択した現在のシーン及び近い将来のシーンに対応したアプリとそのデータをダウンロードするよう要求するメッセージを,端末10にプッシュ送信する。これに応答して,端末装置のランチャ130は,プッシュ送信されたメッセージに記述されているアプリサーバのURLにアクセスして,ダウンロードするよう要求されているアプリの鍵,暗号化コンテンツの送信を要求する(S1)。これに応答して,アプリサーバ20は,暗号鍵と,暗号化コンテンツ(アプリとそのデータ)と,ポリシーファイルPFを端末装置10に送信する。そして,ランチャ130は,鍵管理部131に暗号鍵とポリシーファイルPFを補助メモリ107内に保存させ(S3),ストレージ管理部132に暗号化コンテンツを補助メモリ107内に保存させる(S4)。
その後,オフライン状態S5で,ランチャ130は,現在の端末のシーン1からアプリ1の起動を決定し,アプリ1とシーン1(以下AP1+SC1)に対応するURL1を決定し,ランチャ130は,アプリ1及びシーン1(AP1+SC1)とその外部アドレスURLとが対応付けられたデータベースDB1を,例えば補助メモリ107内に保存する(S6A)。そして,ランチャ130は,ストレージ管理部132に,アプリ1及びシーン1(AP1+SC1)に対するデータの復元を要求する(S7A)。
ストレージ管理部132は,データ管理DBを参照して,アプリ1及びシーン1(AP1+SC1)のデータを検出し(S42),その鍵名の暗号鍵を鍵管理部131に要求する(S8A)。これに応答して,鍵管理部131は,ポリシーファイルPFを参照し,現在の端末のシーン1でアプリ1のデータの利用を許可できるかチェックする(S43)。もし,端末装置を取得した悪意の第三者が,実際のシーンと異なる状況に端末装置を制御して,アプリ1及びシーン1(例えば業務)のデータへのアクセスを試みている場合に,オンライン状態でアプリサーバ20が作成したポリシーファイルPFにアプリ1及びシーン1のデータの使用を許可するものがなければ,データへの不正なアクセスを抑制することができる。ポリシーファイルPFを参照してデータの使用を許可できないと判断した場合は,鍵管理部131は,ユーザに認証情報の入力を要求して,データの使用許可を求めるようにしてもよい。
鍵管理部131は,アプリ1及びシーン1(AP1+SC1)のデータの使用を許可する場合は,ストレージ管理部132に暗号鍵を渡し,これにより,ストレージ管理部132は,保存していた暗号化コンテンツからデータを復号する(S9)。そして,ストレージ管理部132は,ブラウザ133にURL1のデータストレージ領域の初期化要求を行い,ブラウザ111は,URL1に対するデータストレージ領域を補助メモリ107内に確保する初期化処理を行う(S12)。
図17参照
図8と異なる処理は,ランチャ130が,アプリ1及びシーン1(AP1+SC1)の暗号化コンテンツと,暗号鍵をストレージ領域132から取得する処理S14A,S15Aである。
図8と異なる処理は,ランチャ130が,アプリ1及びシーン1(AP1+SC1)の暗号化コンテンツと,暗号鍵をストレージ領域132から取得する処理S14A,S15Aである。
図18参照
ブラウザ111は,アプリ1を実行し(S21),更新したデータをデータストレージ領域SDに書き込む。そして,ランチャがアプリ1の終了を検知すると(S22),ランチャ130は,アプリ1及びシーン1(AP1+SC1)のデータの暗号化と終了をストレージ管理部132に要求する(S23A)。これに応答して,ストレージ管理部132は,アプリ1及びシーン1のデータをURL1のデータストレージ領域SDから退避し,ブラウザ111にアプリ1の終了処理を要求する(S25)。これにより,ブラウザ111は,アプリ1を終了し,データストレージ領域SDのデータを消去する。
ブラウザ111は,アプリ1を実行し(S21),更新したデータをデータストレージ領域SDに書き込む。そして,ランチャがアプリ1の終了を検知すると(S22),ランチャ130は,アプリ1及びシーン1(AP1+SC1)のデータの暗号化と終了をストレージ管理部132に要求する(S23A)。これに応答して,ストレージ管理部132は,アプリ1及びシーン1のデータをURL1のデータストレージ領域SDから退避し,ブラウザ111にアプリ1の終了処理を要求する(S25)。これにより,ブラウザ111は,アプリ1を終了し,データストレージ領域SDのデータを消去する。
そして,ストレージ管理部132は,アプリ1及びシーン1(AP1+SC1)の暗号鍵を取得し(S26A),データを暗号化して一時記憶する(S27)。さらに,ストレージ管理部132は,端末のシーンに基づきポリシーファイルPFを生成することを鍵管理部131に依頼する(S44)。鍵管理部131は,現在の端末のシーンを検出し,ポリシーファイルPFを生成し,ストレージ管理部132に返信する(S45)。このポリシーファイルPFは一時記憶される。
一定時間アプリ1の実行がない場合に,ランチャ130は,アプリ1及びシーン1(AP1+SC1)の暗号化データと鍵管理部が生成したポリシーファイルPFとを,ストレージ管理部132に要求し取得する(S29A)。そして,ランチャ130は,シーン1(AP1+SC1)の暗号化データとポリシーファイルPFを,アプリサーバ20にアップロードする(S30A)。これに応答して,アプリサーバ20は,ポリシーファイルPFの情報に基づいて,アップロードされてきた暗号化データをポリシーファイルPF内のアプリ1及びシーン1に対応するデータとして保存する(S46)。さらに,アプリサーバ20は,ポリシーファイルPFに基づいて,データ管理DBを更新する。
これにより,アプリサーバ20は,次回,端末装置10がアプリ1及びシーン1の暗号化データのダウンロードを要求した場合に,その暗号化データとポリシーファイルPFとを端末装置に送信することができる。
アプリ名とシーン名が含まれているポリシーファイルPFがアプリサーバ20にアップロードされるので,業務用の暗号化データがプライベート用の暗号化データとして保存され,その後,プライベートのシーン下で業務用の暗号化データが悪意の第三者に覗かれることを抑制できる。また,ポリシーファイルPFによりデータ管理DBも更新されるので,その後のオンライン状態で,データ管理DBを参照してポリシーファイルPFを作成することができる。
以上の通り,第3の実施の形態では,アプリと端末のシーンとの組み合わせによりデータを管理し,ポリシーファイルを利用することで,オンライン状態でアプリサーバが許可したデータの利用を,オフライン状態で端末装置の鍵管理部が確認することができる。これにより,悪意の第三者が端末装置のシーンを意図的に実際とは異なるシーンに変更して,秘密データをのぞき見るようにすることを防止することができる。また,ポリシーファイルを利用して,セキュアなファイルシステムであるアプリサーバに,アプリとシーンに対応したデータとして安全に保存させることができる。
本実施の形態によれば,アプリプッシュシステムにおいて,ローカルアプリが実行中に更新するデータのセキュリティ性を高めることができる。
10:端末装置
20:アプリサーバ
107:補助メモリ
111:ブラウザ
113:ランタイムライブラリ
130:ランチャ
131:鍵管理部
132:ストレージ管理部
20:アプリサーバ
107:補助メモリ
111:ブラウザ
113:ランタイムライブラリ
130:ランチャ
131:鍵管理部
132:ストレージ管理部
Claims (9)
- 端末装置のメモリに保存されているアプリケーションを実行するアプリケーション実行処理をプロセッサに実行させるアプリケーション実行プログラムであって,前記アプリケーション実行処理は,
前記メモリに保存されているアプリケーションに前記端末装置内で未使用のURLである外部アドレスを対応付ける工程と,
前記外部アドレスが割り当てられた内部ウエブサーバを起動する工程と,
ブラウザに,前記外部アドレスの内部ウエブサーバにアクセスさせて前記アプリケーションを取得させる工程と,
前記ブラウザに,前記アプリケーションを実行させて,前記外部アドレスに対応付けられた前記メモリのデータストレージ領域内のデータにアクセスさせる工程とを有するアプリケーション実行プログラム。 - 請求項1において,
さらに,
前記外部アドレスに対応付けられたデータストレージ領域を前記メモリ内に確保する初期化処理を行う工程と,
前記データストレージ領域に,前記メモリ内に保存されているアプリケーションに対するデータを書き込む工程とを有するアプリケーション実行プログラム。 - 請求項1または2において,
さらに,前記データストレージ領域内のデータを退避する工程と,
前記データの退避後に,前記ブラウザに前記アプリケーションの実行を終了させて前記データストレージ領域内のデータを消去させる工程と,
前記退避したデータをセキュリティファイルシステムに保存する工程とを有するアプリケーション実行プログラム。 - 請求項1または2において,
さらに,前記端末装置がアプリケーションサーバと通信可能なオンライン状態において,前記アプリケーションサーバから前記アプリケーションと当該アプリケーションのデータとをダウンロードして,前記端末装置のメモリに保存する工程とを有するアプリケーション実行プログラム。 - 請求項2において,
前記初期化処理を行う工程で,前記データストレージ領域への読み出し処理を読み出しデータを復号して行い,書き込み処理をデータを暗号化して行う読み出し書き込み関数を,前記外部アドレスに対応付けて登録し,
前記ブラウザが前記アプリケーションを実行中に行う前記データストレージ領域へのアクセスが,前記読み出し書き込み関数を介して行われるアプリケーション実行プログラム。 - 請求項2において,
さらに,前記端末装置がアプリケーションサーバと通信可能なオンライン状態において,前記アプリケーションサーバから,前記アプリケーション及び当該アプリケーションのデータの暗号化コンテンツと,前記アプリケーションのデータに対応する端末装置状況を有する第1のポリシーファイルとをダウンロードして,前記暗号化コンテンツと第1のポリシーファイルとを前記端末装置のメモリに保存する工程と,
前記端末装置が前記アプリケーションサーバと通信不能なオフライン状態において,前記アプリケーションの起動時の前記端末装置状況が前記第1のポリシーファイル内の端末装置状況と一致する場合に,前記暗号化コンテンツを復号して前記アプリケーションのデータを前記データストレージ領域に保存する工程とを有するアプリケーション実行プログラム。 - 請求項6において,
さらに,前記データストレージ領域内のデータを退避する工程と,
前記データの退避後に,前記ブラウザに前記アプリケーションの実行を終了させて前記データストレージ領域内のデータを消去させる工程と,
前記アプリケーションの実行を終了させる時の前記端末装置状況を有する第2のポリシーファイルを生成する工程と,
前記退避したデータと前記生成した第2のポリシーファイルを前記アプリケーションサーバにアップロードする工程とを有するアプリケーション実行プログラム。 - 端末装置のメモリに保存されているアプリケーションを実行するアプリケーション実行方法であって,
前記メモリに保存されているアプリケーションに前記端末装置内で未使用のURLである外部アドレスを対応付ける工程と,
前記外部アドレスが割り当てられた内部ウエブサーバを起動する工程と,
ブラウザに,前記外部アドレスの内部ウエブサーバにアクセスさせて前記アプリケーションを取得させる工程と,
前記ブラウザに,前記アプリケーションを実行させて,前記外部アドレスに対応付けられた前記メモリのデータストレージ領域内のデータにアクセスさせる工程とを有するアプリケーション実行方法。 - 端末装置のメモリに保存されているアプリケーションを実行する情報処理端末装置であって,
前記メモリに保存されているアプリケーションに前記端末装置内で未使用のURLである外部アドレスを対応付ける対応付け手段と,
前記外部アドレスが割り当てられた内部ウエブサーバを起動する起動手段と,
ブラウザに,前記外部アドレスの内部ウエブサーバにアクセスさせて前記アプリケーションを取得させる取得手段と,
前記ブラウザに,前記アプリケーションを実行させて,前記外部アドレスに対応付けられた前記メモリのデータストレージ領域内のデータにアクセスさせるアクセス手段とを有する情報処理端末装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/064642 WO2014192063A1 (ja) | 2013-05-27 | 2013-05-27 | アプリケーション実行プログラム,アプリケーション実行方法及びアプリケーションを実行する情報処理端末装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6079875B2 true JP6079875B2 (ja) | 2017-02-15 |
JPWO2014192063A1 JPWO2014192063A1 (ja) | 2017-02-23 |
Family
ID=51988140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015519513A Active JP6079875B2 (ja) | 2013-05-27 | 2013-05-27 | アプリケーション実行プログラム,アプリケーション実行方法及びアプリケーションを実行する情報処理端末装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10440111B2 (ja) |
EP (1) | EP3007061B1 (ja) |
JP (1) | JP6079875B2 (ja) |
WO (1) | WO2014192063A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10142417B2 (en) * | 2012-04-17 | 2018-11-27 | Nimbix, Inc. | System and method for managing heterogeneous data for cloud computing applications |
US9973566B2 (en) | 2013-11-17 | 2018-05-15 | Nimbix, Inc. | Dynamic creation and execution of containerized applications in cloud computing |
US8775576B2 (en) | 2012-04-17 | 2014-07-08 | Nimbix, Inc. | Reconfigurable cloud computing |
JP6131817B2 (ja) * | 2013-10-08 | 2017-05-24 | 富士通株式会社 | 通信端末、通信処理方法および通信処理プログラム |
JP6638189B2 (ja) * | 2015-01-07 | 2020-01-29 | 富士通株式会社 | 連携方法、情報処理端末、及びプログラム |
JP6399965B2 (ja) * | 2015-04-24 | 2018-10-03 | 三菱電機エンジニアリング株式会社 | クライアント装置及びプログラム実行方法 |
CN106254448B (zh) * | 2016-07-29 | 2019-09-27 | 北京小度信息科技有限公司 | 一种信息获取方法及装置 |
US10235207B2 (en) | 2016-09-30 | 2019-03-19 | Nimbix, Inc. | Method and system for preemptible coprocessing |
US20180129793A1 (en) * | 2016-11-07 | 2018-05-10 | Rockwell Automation Technologies, Inc. | Precompile and encrypt industrial intellectual property |
US11202197B2 (en) * | 2017-10-05 | 2021-12-14 | Omron Corporation | Portable control device, control system, control method, and non-transitory storage medium storing control program |
WO2020171828A1 (en) * | 2019-02-22 | 2020-08-27 | Hewlett-Packard Development Company, L.P. | Identification of access point information |
US11720699B2 (en) * | 2020-12-15 | 2023-08-08 | Microsoft Technology Licensing, Llc | Inline file download controls in remote browser isolation system |
CN113037886B (zh) * | 2021-03-05 | 2022-02-08 | 腾讯科技(深圳)有限公司 | 网络设备的管理方法、装置、介质以及电子设备 |
US20230409680A1 (en) * | 2022-06-15 | 2023-12-21 | Microsoft Technology Licensing, Llc | System and method for client device authentication through remote browser isolation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004094682A (ja) * | 2002-08-30 | 2004-03-25 | Ntt Comware Corp | オフライン業務システム、業務端末及び業務サーバ |
JP2005235055A (ja) * | 2004-02-23 | 2005-09-02 | Dainippon Printing Co Ltd | 情報処理装置および情報処理装置におけるセキュリティ確保方法 |
WO2013042411A1 (ja) * | 2011-09-22 | 2013-03-28 | 九州日本電気ソフトウェア株式会社 | アプリケーション管理装置、アプリケーション管理方法、及びコンピュータ読み取り可能な記録媒体 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818435B1 (en) * | 2000-12-14 | 2010-10-19 | Fusionone, Inc. | Reverse proxy mechanism for retrieving electronic content associated with a local network |
WO2003050662A1 (fr) | 2001-12-13 | 2003-06-19 | Japan Science And Technology Agency | Systeme d'execution securisee d'un logiciel |
CN101789065B (zh) | 2005-02-14 | 2012-05-09 | 松下电器产业株式会社 | 应用程序执行装置、应用程序执行方法和程序 |
US7594003B2 (en) * | 2005-08-02 | 2009-09-22 | Aol Llc | Client/server web application architectures for offline usage, data structures, and related methods |
US7877602B2 (en) | 2007-07-27 | 2011-01-25 | International Business Machines Corporation | Transparent aware data transformation at file system level for efficient encryption and integrity validation of network files |
TWI384378B (zh) * | 2008-12-29 | 2013-02-01 | Ind Tech Res Inst | 網頁應用程式執行方法 |
US8745153B2 (en) | 2009-02-09 | 2014-06-03 | Apple Inc. | Intelligent download of application programs |
US9680964B2 (en) * | 2009-03-11 | 2017-06-13 | Microsoft Technology Licensing, Llc | Programming model for installing and distributing occasionally connected applications |
JP5795848B2 (ja) * | 2010-09-22 | 2015-10-14 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
US20140095870A1 (en) * | 2012-09-28 | 2014-04-03 | Prashant Dewan | Device, method, and system for controlling access to web objects of a webpage or web-browser application |
-
2013
- 2013-05-27 JP JP2015519513A patent/JP6079875B2/ja active Active
- 2013-05-27 WO PCT/JP2013/064642 patent/WO2014192063A1/ja active Application Filing
- 2013-05-27 EP EP13886076.2A patent/EP3007061B1/en active Active
-
2015
- 2015-11-02 US US14/930,002 patent/US10440111B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004094682A (ja) * | 2002-08-30 | 2004-03-25 | Ntt Comware Corp | オフライン業務システム、業務端末及び業務サーバ |
JP2005235055A (ja) * | 2004-02-23 | 2005-09-02 | Dainippon Printing Co Ltd | 情報処理装置および情報処理装置におけるセキュリティ確保方法 |
WO2013042411A1 (ja) * | 2011-09-22 | 2013-03-28 | 九州日本電気ソフトウェア株式会社 | アプリケーション管理装置、アプリケーション管理方法、及びコンピュータ読み取り可能な記録媒体 |
Non-Patent Citations (2)
Title |
---|
JPN6013038896; 菅原 英治: '僕にも作れるソーシャル・ネットワークの世界 続・Windows Azure上にFacebookアプリを' G-CLOUD Magazine 2011 Summer , 20110801, pp.78-109, (株)技術評論社 * |
JPN6013038897; Web Storage W3C Proposed Recommendation 9 April 2013, 20130409, W3C * |
Also Published As
Publication number | Publication date |
---|---|
WO2014192063A1 (ja) | 2014-12-04 |
JPWO2014192063A1 (ja) | 2017-02-23 |
EP3007061A4 (en) | 2016-05-25 |
EP3007061A1 (en) | 2016-04-13 |
US10440111B2 (en) | 2019-10-08 |
US20160057228A1 (en) | 2016-02-25 |
EP3007061B1 (en) | 2019-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6079875B2 (ja) | アプリケーション実行プログラム,アプリケーション実行方法及びアプリケーションを実行する情報処理端末装置 | |
US9098715B1 (en) | Method and system for exchanging content between applications | |
US10432619B2 (en) | Remote keychain for mobile devices | |
TWI687113B (zh) | 確定登錄網站的終端是否爲移動終端的方法及伺服器 | |
CN109634619B (zh) | 可信执行环境实现方法及装置、终端设备、可读存储介质 | |
US9769654B2 (en) | Method of implementing a right over a content | |
US20140096230A1 (en) | Method and system for sharing vpn connections between applications | |
US20140281499A1 (en) | Method and system for enabling communications between unrelated applications | |
US10630722B2 (en) | System and method for sharing information in a private ecosystem | |
CN103731395A (zh) | 文件的处理方法及系统 | |
US10045212B2 (en) | Method and apparatus for providing provably secure user input/output | |
JP2010213104A (ja) | コンテンツ処理装置、コンテンツ処理システム、およびコンテンツ処理プログラム | |
CN108229190B (zh) | 透明加解密的控制方法、装置、程序、存储介质和电子设备 | |
JP2007249507A (ja) | 情報漏洩防止方法、情報漏洩防止システム及び情報端末 | |
US20160373421A1 (en) | Virtual content repository | |
US11595208B2 (en) | Self-service device encryption key access | |
WO2018063947A1 (en) | Generating short-term signatures for accessing cloud storage | |
JP5678150B2 (ja) | ユーザ端末、鍵管理システム、及びプログラム | |
CN107787494B (zh) | 跨重启的登录的恢复 | |
CN114448722A (zh) | 跨浏览器登录方法、装置、计算机设备和存储介质 | |
US10277565B2 (en) | Enterprise service bus logging | |
CN114244573B (zh) | 数据传输管控方法、装置、计算机设备和存储介质 | |
KR101861015B1 (ko) | 클라우드 서비스 기반으로 사용자 단말에서 drm 기능을 제공하는 방법 | |
JP2012169983A (ja) | データ処理装置およびプログラム | |
JP2019061696A (ja) | 端末装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161220 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170102 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6079875 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |