JP2009503633A - ユーザアカウント内のアプリケーション特有データの分離 - Google Patents

ユーザアカウント内のアプリケーション特有データの分離 Download PDF

Info

Publication number
JP2009503633A
JP2009503633A JP2008521680A JP2008521680A JP2009503633A JP 2009503633 A JP2009503633 A JP 2009503633A JP 2008521680 A JP2008521680 A JP 2008521680A JP 2008521680 A JP2008521680 A JP 2008521680A JP 2009503633 A JP2009503633 A JP 2009503633A
Authority
JP
Japan
Prior art keywords
data
application
handle
access
counter
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.)
Granted
Application number
JP2008521680A
Other languages
English (en)
Other versions
JP5118638B2 (ja
Inventor
サムボティン,ドラゴス
ティルマライ,カーティック
ワード,リチャード・ビー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009503633A publication Critical patent/JP2009503633A/ja
Application granted granted Critical
Publication of JP5118638B2 publication Critical patent/JP5118638B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本メカニズムは、複数のアプリケーションが同一のユーザアカウントを共有する環境において、アプリケーション特有のデータを分離するために提供される。本メカニズムによって、アプリケーション特有のデータはそのアプリケーションだけによってアクセスされることが可能になる。アプリケーションがアプリケーション特有のデータをリクエストするとき、そのデータはロードされ、データへのハンドルがアプリケーションに返される。ハンドルを介してのみデータへのアクセスが許される。したがって、ハンドルを所有するアプリケーションだけが、データにアクセスできる。ロードされたデータにカウンタを関連付けることができる。データ用ハンドルが生成される度にカウンタの値を増やし、データ用ハンドルが終了される度に減らす。カウンタの値が0に達すると、データを自動的にアンロードする。
【選択図】 図1

Description

従来、オペレーティングシステムは、ユーザアカウントの粒度でアプリケーション特有のデータを分離する。すなわち、異なるユーザアカウントで動作するアプリケーションは、相互に分離される。その結果、あるユーザアカウントで動作するアプリケーションは、別のユーザアカウントで動作する同一のアプリケーション用のデータにアクセスできない。しかし、同一のユーザアカウントで実行するアプリケーション用のデータは、相互に分離されない。その結果、あるユーザアカウントで実行するアプリケーションが、同一のユーザアカウントで実行する別のアプリケーション用のデータにアクセスし、変更することさえ可能である。これによって潜在的な安定性、セキュリティ及び管理に問題をもたらし得る。したがって、同一のユーザアカウントを共有するアプリケーションの間でアプリケーション特有のデータを分離するためのメカニズムを提供するのが望まれる。
詳細説明において、さらに後述する概念を抽出したものを簡易化された形式で紹介するためにこの概要を提供する。この概要は、請求項に記載された対象に関する重要な特徴を特定することを意図せず、また請求項に記載された対象の範囲を決定する際の支援として使用されることも意図しない。
複数のアプリケーションが同一のユーザアカウントに関連付けられた環境において、本発明によって、アプリケーション特有のデータが別のアプリケーションから分離できる。例えば、本発明はデータにアクセスするために、ハンドルを基本とするアプローチを使用する。アプリケーションが、データに対するハンドルを所有している場合、そのアプリケーションは、データにアクセスできる。データがアプリケーション特有である場合、そのデータ用にただ1つのハンドルを生成できる。ハンドルは、データを特定しているアプリケーションに渡される。ハンドルを所有するアプリケーションだけがそのデータにアクセスできる。同一のユーザアカウントをアプリケーションと共有する別のアプリケーションからのアクセスリクエストは拒否される。
本発明の一特徴によると、アプリケーションがデータにアクセスする必要があって、データがロードされていないとき、データがまずロードされる。望ましくは、固有識別子がデータ用に生成される。固有識別子はその後、データ用のアクセス経路を形成するために使用される。アクセス経路は、データがロードされ得る場所を示す。データは、その場所にロードされる。ハンドルは、ロードされたデータ用に生成され、アプリケーションに渡される。アプリケーションは、ハンドルを介しデータにアクセスできる。アプリケーションただ1つがデータにアクセスできる場合、そのデータはそのアプリケーション特有と見なされる。同一のユーザアカウントをそのアプリケーションと共有する他のいかなるアプリケーションもロードされたデータに対するハンドルを生成できず、ハンドルを介してデータにアクセスもできない。他方、データがアプリケーション特有でない場合、別のアプリケーションは、データに対するハンドルを生成し、そのハンドルを介しデータにアクセスできる。
本発明のもう1つの特徴によると、データがロードされるとき、カウンタがそのデータ用に生成される。ハンドルがそのデータ用に生成される度にカウンタの値を増やし、そのデータ用のハンドルが終了される度に減らす。カウンタの値が0に達すると、データは自動的にアンロードされる。
本発明のさらなる特徴によると、アプリケーション特有のデータアクセスのためにアプリケーションプログラミングインターフェースが提供される。複数のアプリケーションが同一のユーザアカウントを共有する環境において、アプリケーションプログラミングインターフェースは、計算プロセスすなわちアプリケーションからアクセスリクエストを受信したときにデータオブジェクトへのアクセスを提供する機能を含む。アクセスをリクエストする計算プロセスのみによって、データオブジェクトがアクセスされ得るだけであるように本機能を構成できる。すなわち、別の計算プロセスはそのデータオブジェクトにアクセスできない。望ましくは、本機能を現在呼んでいる計算プロセスだけがデータオブジェクトにアクセスできるように構成され得るパラメタを本機能は含む。また、データオブジェクトにアクセスするための本機能を呼ぶ任意の計算プロセスがデータオブジェクトにアクセスできるようにもパラメタを構成できる。
さらに具体的にいうと、データオブジェクトへのアクセスをリクエストする計算プロセスによって呼ばれたとき、本機能はそのデータオブジェクト用の固有識別子を生成する。固有識別子はその後、データオブジェクトをロードするための場所を示す経路を生成するために使用され得る。それにしたがって本機能がその後、データオブジェクトをロードする。本機能はその後、ロードされたデータオブジェクトへのハンドルを計算プロセスに返す。計算プロセスがアクセスリクエストを完了する度に、対応するハンドルを終了する。データオブジェクトに関連付けられるハンドルがなくなると、本機能はそのデータオブジェクトをアンロードする。
要約すれば、本発明によって、アプリケーション特有のデータが同一のユーザアカウントを前記アプリケーションと共有する別のアプリケーションによってアクセスされるのを防ぐことができる。本発明によって、アプリケーション特有のデータは、そのアプリケーションだけによってアクセス可能になる。こうして同一のユーザアカウントをアプリケーションと共有する別のアプリケーションは、アプリケーション特有のデータの整合性を干渉し得ない。
添付図面と併用するときに以下の詳細説明を参照することにより、同等のことがさらに理解されるようになるので、上記の特徴及び本発明の添付の利点の多くが、さらに容易に正しく評価されるようになるだろう。
一般的に説明すると、本発明の実施形態は、同一のユーザアカウントに関連付けられたアプリケーション間においてアプリケーション特有のデータを分離する。さらに具体的にいうと、本発明の実施形態は、複数のアプリケーションが同一のユーザアカウントに関連付けられている環境において、データにアクセスするためのハンドルを基本とするアプローチを採用する。アプリケーションが、アプリケーション特有のデータにアクセスする必要があるとき、そのデータはロードされ、ハンドルがデータ用に生成され、アプリケーションに渡される。アプリケーションは、ハンドルを介しデータにアクセスする。別のアプリケーションは、そのデータ用のハンドルを生成できず、したがってそのデータへのアクセスは拒否される。本発明の実施形態においては、データは、同一のユーザアカウントを共有するアプリケーションによって使用され得る任意のデータを含み得る。
図1はユーザ(101)のために複数のアプリケーションをホスティングする計算機システム(100)を例示する。複数のアプリケーションは、アプリケーションA(102A)及びアプリケーションB(102B)を含む。例示されたこの例においては、アプリケーションデータA(104A)は、アプリケーションA(102A)特有であり、一方、アプリケーションデータB(104B)は、アプリケーションB(102B)特有である。本発明の実施形態においては、アプリケーション特有のデータオブジェクトに対してアプリケーションからアクセスリクエストを受信したとき、固有識別子(”UID”)が動的に生成される。UIDは、データオブジェクト用のアクセス経路を生成するために使用される。例えばアプリケーションA(102A)が一旦、アプリケーションデータA(104A)をリクエストすると、UID A(106A)が動的に生成される。UID A(106A)))))はその後、/root/app/UID A/Application Data Aのようなアクセス経路を生成するのに使用され、そのアクセス経路によって指定される場所にアプリケーションデータA(104A)をロードするために使用され得る。同様に、アプリケーションB(102B)がアプリケーションデータB(104B)にアクセスすることを望むときは、計算機システム(100)は、UID B(106B)を動的に生成し、UID Bは、アプリケーションデータB(104B)用のアクセス経路を形成するのに使用される。そのようなアクセス経路は、例えば、/root/app/UID B/Application Data Bであり得る。アプリケーションデータB(104B)は、アクセス経路によって指定される場所にロードされ得る。
本発明の実施形態においては、UID及びアプリケーション特有のデータオブジェクト用アクセスに対応する経路の生成後、計算機システム(100)は、アクセス経路によって指定される場所にデータオブジェクトをロードする。計算機システム(100)はその後、ロードされたデータオブジェクトへのハンドルを生成し、データオブジェクトをリクエストしているアプリケーションにそのハンドルを渡す。例えば図1に示されるように、アプリケーションA(102A)は、アプリケーションデータA(104A)へのハンドルA(110A)を受け取る。アプリケーションB(102B)は、アプリケーションデータB(104B)へのハンドルB(110B)を受け取る。本発明の実施形態においては、データオブジェクトへのハンドルを所有するアプリケーションだけが、データオブジェクトにアクセスでき、データオブジェクトを明確に特定するアプリケーションだけが、そのデータオブジェクトへのハンドルを所有できる。したがって、図1に例示された例において、アプリケーションA(102A)だけが、アプリケーションデータA(104A)にアクセスでき、アプリケーションB(102B)だけが、アプリケーションデータB(104B)にアクセスできる。
理論的には別のアプリケーションがそのアクセス経路を介し、データオブジェクトにアクセスできる。本発明の実施形態においては、あるアプリケーションがそのアクセス経路を介しデータオブジェクトにアクセスするのを試みる場合、そのアクセスは拒否される。例えば、前述のようにアプリケーションデータA(104A)用のアクセス経路は、/root/app/UID A/Application Data Aである。理論的には、アプリケーションB(102B)は、このアクセス経路を介し、アプリケーションデータA(104A)にアクセスできる。本発明の実施形態においては、そのようなアクセスを拒否し、ハンドルA(110A)を介しアプリケーションデータA(104A)に対してのみアクセスを許可する。このように、アプリケーションA(102A)だけがアプリケーションデータA(A104)にアクセスできる。
本発明の実施形態はまた、ロードされたデータオブジェクト用のカウンタも提供する。ロードされたデータオブジェクト用にハンドルが生成される度に、カウンタの値を増やす。ロードされたデータオブジェクトへのハンドルが終了される度に、カウンタの値を減らす。本発明の実施形態においては、カウンタの値が0に達すると、対応するデータオブジェクトはアンロードされる。例えば、図1に示されるように、ロードされたアプリケーションデータA(104A)はカウンタ(112A)に関連付けられ、ロードされたアプリケーションデータB(104B)はカウンタ(112B)に関連付けられる。本発明の実施形態においては、あるデータオブジェクトがロードされると、別のアプリケーションは、そのロードされたデータオブジェクトと別のデータオブジェクトとを置換できない。
本発明の例示的な実施形態においては、計算機システム(100)は、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティングシステムを使用する。当業者によって知られているように、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティングシステムは、システム及びユーザ関連のデータ用のセントラルリポジトリとして、ウィンドウズ(登録商標)レジストリを使用する。ディスク上では、ウィンドウズ(登録商標)レジストリは、個別ファイル、データオブジェクトのセットとして組織化されていてハイブ(hive)と呼ばれる。ハイブそれぞれは、データの階層構造を含む。ハイブが計算機システムのファイルシステムにロードされると、ハイブへのアクセス経路がHKEY LOCAL MACHINE/SYSTEM/CurrentControlSet/Control/hivelist下に記録される。ハイブがアンロードされると、アクセス経路は削除される。
今、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティングシステムが始動すると、ウィンドウズ(登録商標)レジストリは、デフォルトによりいくつかのハイブをロードする。従来、RegLoadKey APIは、ユーザが特定のハイブをオンデマンドでロード可能にすることに使用されてきた。RegLoadKey APIを使用し、ハイブがロードされると、ハイブはシステム全体から見えるようになる。その結果、十分なアクセス権を有する人であればハイブのデータにアクセスできる。しかし、RegLoadKey APIにより、普通のユーザは特権を必要としないでハイブをロードできない。RegLoadKey APIはまた、同一のユーザアカウントで動作する別のアプリケーションが、ハイブのデータを操作することを防げない。
RegLoadKey APIによってもたらされる制限の解決のために、本発明の例示的な実施形態は、例えば、RegLoadAppKeyと呼ばれる新規のハイブロードAPIを提供する。RegLoadAppKey APIによってユーザは、特権を必要とせずにハイブをロードできる。RegLoadAppKey APIはまた、このAPIを使用しロードされたハイブのアプリケーションレベルの分離も可能にする。システムワイドの可視性を有するハイブをロードする既存のRegLoadKey APIと異なり、RegLoadAppKey APIは、プロセスワイドの可視性だけを有するハイブをロードする。すなわち、RegLoadAppKey APIを呼ぶプロセスだけが、ハイブへのハンドルを取得する。RegLoadAppKey APIは、ハイブを首尾よくロードする最初のプロセスだけに対してハイブを公開する。このようにRegLoadAppKey APIを使用し、アプリケーションは、そのアプリケーションだけに関連する設定を含むハイブをロード可能であって、同一又は異なるユーザアカウントの下で実行するいかなる他のアプリケーションもこのハイブにアクセスできないことを保証できる。アプリケーションの終了時又はハイブに関連付けられるハンドルへの最後のリファレンスがクローズされると、ハイブは自動的にアンロードされる。
図2は、RegLoadAppKey API(200)の例示的な使用法を例示する。アプリケーション(202)が特定のハイブをロードするためにRegLoadAppKey API(200)を呼ぶと、アプリケーション(202)は、ロードされるべきハイブのファイル名をRegLoadAppKey API(200)に提供する。提供されたファイル名にしたがって、RegLoadAppKey API(200)は、指定されるハイブをロードし、逆にアプリケーション(202)へハイブ用ハンドル(204)を提供する。アプリケーション(202)はその後、ハンドル(204)を介しロードされたハイブを操作できる。
RegLoadAppKey API(200)の例示的な実装においては、ロードされるハイブのファイル名を受信したとき、RegLoadAppKey API(200)は、UID(206)を生成する。ハイブが既にロードされている場合は、UID(206)は無視される。そうでない場合、UID(206)は、「ロードする場所への経路」(208)を形成するために使用され、ハイブをロード可能な場所を示す。例えば、ハイブを/registry/app/UIDにロードできる。
本発明の例示的な実施形態においては、RegLoadAppKey(200)はその後、ハイブをロードするために、NtLoadKeyEx API(210)を呼ぶことができる。NtLoadKeyEx API(210)は、「ロードする場所への経路」(208)によって指定される場所にハイブをロードし、ハイブ用のハンドル(204)を返す。望ましくは、アプリケーション(202)がハイブにアクセスするために、RegLoadAppKey API(200)を呼ぶ度に、ハイブ(204)用のハンドルが生成される。アプリケーション(202)がアクセスを手放すと、対応するハンドルがクローズされる。ハイブ用のハンドルすべてがクローズされると、ハイブは自動的にアンロードされる。
操作上、RegLoadAppKey API(200)は、ハイブへのアクセスが呼び出したアプリケーション(202)に限定される指定をするためのパラメタを含むことができる。パラメタが指定されると、その後、別のアプリケーションによる同一のハイブをロードする試みは失敗し、このようにそれをロードしたアプリケーション(202)だけに対してハイブをアクセス可能にする。パラメタが指定されない場合、複数のアプリケーション、すなわちプロセスが、同一のハイブをロードできる。さらに、あるアクセスリクエストが、ハイブ用のハンドル(204)からの代わりに「ロードする場所への経路」(208)を介してハイブへのアクセスを試みる場合、RegLoadAppKey API(200)は、そのアクセスリクエストを拒否する。
図3A及び3Bは、同一のユーザアカウントをそのアプリケーションと共有する別のアプリケーションからそのアプリケーション特有のデータを分離するための例示的なプロセス(300)を示す。本質的にデータがアンロードされた場合、プロセス(300)は、リクエストされたデータをロードし、ロードされたデータへのハンドルを生成し、そのデータをリクエストしているアプリケーションにハンドルを渡す。プロセス(300)はまた、データに関連付けられたハンドル数を追跡するために、カウンタを使用する。ハンドルがデータ用に生成される度にカウンタの値を増やし、アプリケーションがデータに関連付けられたハンドルを終了する度に減らす。カウンタの値が0に達すると、データは自動的にアンロードされる。特にアプリケーションは、他のいかなるアプリケーションもデータにアクセスできない仕様のもとデータをロードできる。このような場合、別のアプリケーションからのアクセスリクエストは拒否される。
具体的にいうと図3Aに示されるように、アプリケーションAがあるデータへのアクセスをリクエストすると、プロセス(300)が開始される。判断ブロック(301)を参照されたい。本発明の例示的な実施形態においては、そのようなリクエストを受信したとき、プロセス(300)がデータ用の固有識別子を生成する。ブロック(302)を参照されたい。プロセス(300)はその後、固有識別子を使用し、データ用アクセス経路を生成する。ブロック(304)を参照されたい。前述のように、例えばUID A(106A)を有するプリケーションデータA(104A)用のアクセス経路は、/Root/App/UID A/ApplicationDataAである。
プロセス(300)はその後、別のアプリケーションによって既にデータをロードされたか否かを決定するために次に進む。判断ブロック(305)を参照されたい。判断ブロック(305)に対する回答が肯定である場合、プロセス(300)は、ロードされたデータがアプリケーション特有か、すなわちデータをロードしたアプリケーションだけがデータにアクセスできるか否かの決定するために次に進む。判断ブロック(306)を参照されたい。判断ブロック(306)に対する回答が肯定の場合、データはアプリケーション特有であって、かつ、別のアプリケーションによってロードされたことを意味し、プロセス(300)は終了する。アプリケーションAからのアクセスリクエストは拒否される。
判断ブロック(306)に対する回答が否定の場合、そのデータは複数のアプリケーションからアクセスされ得ることを意味し、プロセス(300)は、ロードされたデータへのハンドルを生成する。ブロック(308)を参照されたい。
一方、判断ブロック(305)に対する回答が否定である場合、データはいかなるアプリケーションによってもロードされていないことを意味し、プロセス(300)は、生成されたアクセス経路によって特定される場所にデータをロードする。ブロック(307)を参照されたい。プロセス(300)はその後、ロードされたデータに関連付けられるカウンタを生成する。ブロック(308)を参照されたい。カウンタの初期値は、0に設定される。プロセス(300)はその後、データへのハンドルを生成する。ブロック(309)を参照されたい。プロセス(300)は、ハンドルをアプリケーションに渡す。ブロック(310)を参照されたい。プロセス(300)は、ブロック(310)から継続端子Aに続く。
本発明の実施形態においては、データがアプリケーション特有である場合、たった1つのハンドルがデータ用に生成され、そのハンドルを所有しているアプリケーションだけがそのデータにアクセスできる。別のアプリケーションは、データに対するハンドルを有しないために、そのデータにアクセスできない。前述のように、理論的には別のアプリケーションは、生成されたアクセス経路を介しデータにアクセスできる。しかし、本発明の実施形態は、そのアクセス経路を介したデータへのアクセスを拒否する。したがって、データに対するハンドルを所有しているアプリケーションだけが、そのデータにアクセスできる。
本発明の実施形態においては、ロードされたデータに関連付けられたハンドル数を追跡するために、カウンタが使用される。ハンドルがロードされたデータ用に生成される度にカウンタの値を増やし、データへのハンドルが終了される度に減らす。カウンタの値が0に達すると、データは自動的にアンロードされる。その結果、継続端子Aからの図3Bに例示されるように、ハンドルがデータ用に生成されると、カウンタを増やす。ブロック(314)を参照されたい。さらに、データへのハンドルを終了されると、カウンタの値を減らす。ブロック(316)を参照されたい。本発明の実施形態においては、プロセス(300)は、カウンタの値が0に達したか否かを決定するために、その値を定期的にチェックする。判断ブロック(318)を参照されたい。カウンタの値が0に達すると、そのデータに関連付けられたハンドルがないことを意味し、プロセス(300)は、データをアンロードする。ブロック(320)を参照されたい。判断ブロック(318)に対する回答が否定の場合、カウンタの値は0でないことを意味し、プロセス(300)は、ループしてカウンタの値の任意の調整を待つためにブロック(314)へ戻る。一旦、データがアンロードされると、プロセス(300)は終了する。
結果として本発明の実施形態は、同一のユーザアカウントのもとで実行するアプリケーション特有のデータを分離する。本発明の実施形態はまた、データオブジェクトへの最後のリファレンスが一旦、クローズされると、データオブジェクトを自動的にアンロードする。
本発明の例示的な実施形態を示し説明してきたが、本発明の趣旨と範囲から逸脱せずに本明細への様々な変更を行うことができるのがよく理解されよう。
本発明の特徴を実施するための例示的な計算機システムを示すブロック図であって、同一のユーザアカウントを有する複数のアプリケーションに対し、アプリケーション特有のデータが分離される。 本発明の特徴を実施するための例示的なウィンドウズ(登録商標)のAPIを示すブロック図である。 あるユーザアカウント内でアプリケーション特有のデータを分離するための例示的なプロセスを示すフロー図である。 あるユーザアカウント内でアプリケーション特有のデータを分離するための例示的なプロセスを示すフロー図である。

Claims (14)

  1. 同一のユーザアカウント(101A)に複数のアプリケーションを関連付ける計算機システムにおいて、第1のアプリケーション特有のデータを第2のアプリケーションから分離するための方法であって、第1のアプリケーション及び第2のアプリケーションが、前記同一のユーザアカウントを共有していて、
    前記データに対するリクエストを前記第1のアプリケーションから受信したとき、前記データをロードするステップと、
    前記データへのハンドルを生成するステップと、
    前記ハンドルを前記第1のアプリケーションに渡すステップと、
    前記第2のアプリケーションからの前記データに対するアクセスリクエストを拒否するステップと、を含む方法。
  2. 前記データをロードするステップが、前記データ用の固有識別子を生成するステップと、
    前記固有識別子を使用し、前記データ用のアクセス経路を生成するステップと、
    前記アクセス経路によって指定される位置に前記データをロードするステップと、を含む請求項1記載の方法。
  3. さらに、前記データをロードしたあと前記データ用のカウンタを生成するステップであって、前記カウンタの値が0に初期化されるものと、
    前記ハンドルが前記データ用に生成されるとき前記カウンタの値を増やすステップと、
    前記ハンドルが終了されるとき前記カウンタの値を減らすステップと、を含む請求項1記載の方法。
  4. さらに、前記カウンタの値が0に達したとき、前記データをアンロードするステップを含む請求項3記載の方法。
  5. 前記計算機システムがマイクロソフトのウィンドウズ(登録商標)レジストリを含み、前記データが、ウィンドウズ(登録商標)レジストリの1つ以上のハイブであることを特徴とする請求項1記載の方法。
  6. 複数のアプリケーションが同一のユーザアカウントを共有する環境において、
    アプリケーション特有のデータアクセスを提供することに関連する機能を含み、
    計算プロセスからアクセスリクエストを受信したとき、前記機能が、データオブジェクトへのアクセスを提供し、かつ計算プロセス(202)ただ1つによって前記データオブジェクトがアクセスできるように構成できるもの、を含む1つ以上の計算機可読媒体において実装されるアプリケーションプログラミングインターフェース。
  7. 前記機能は、前記データオブジェクトへのアクセスが、前記機能を呼ぶ前記計算プロセスに限定されるか否かを示すように構成可能なパラメタ、を含むことを特徴とする請求項6記載のアプリケーションプログラミングインターフェース。
  8. 前記計算プロセスによって呼ばれたとき、前記機能が、
    前記データオブジェクト用の固有識別子を生成することと、
    前記固有識別子を使用し経路を生成することと、
    前記経路で示される位置に前記データオブジェクトをロードすること、を特徴とする請求項6記載のアプリケーションプログラミングインターフェース。
  9. 前記機能が、前記データオブジェクトへのハンドルを計算プロセスに返すこと、を特徴とする請求項8記載のアプリケーションプログラミングインターフェース。
  10. 前記機能が、計算プロセスが前記ハンドル使用を終了するとき、前記ハンドルをクローズし、
    いかなるハンドルも前記データオブジェクトと関連付けられていないとき、前記データオブジェクトをアンロードすること、を特徴とする請求項9記載のアプリケーションプログラミングインターフェース。
  11. あるアプリケーションと同一のユーザアカウントを共有する別のアプリケーションから前記アプリケーション特有のデータを分離するための計算機に実装された方法であって、
    前記データに対して前記アプリケーションからアクセスリクエストを受信したとき、
    前記データをロードするステップと、
    前記データへのハンドルを生成するステップと、
    前記ハンドルを前記アプリケーションに渡すステップと、及び
    他のアプリケーションから前記データへのいかなるアクセスリクエストも拒否するステップと、を含む方法。
  12. 前記データをロードするステップが、
    前記データ用の固有識別子を生成するステップと、
    前記固有識別子を使用して前記データ用のアクセス経路を生成するステップと、
    前記アクセス経路によって指定される位置に前記データをロードするステップと、を含む請求項11記載の計算機実装方法。
  13. さらに、前記データをロードするとき前記データ用のカウンタを生成し、前記カウンタの値が0に初期化するステップと、
    前記データのためにハンドルが作成される度に前記カウンタの値を増やすステップと、
    前記ハンドルが終了される度に前記カウンタの値を減らすステップを含む請求項11記載の計算機実装方法。
  14. さらに、前記カウンタの値が0に達するとき、前記データをアンロードするステップを含む請求項13記載の計算機実装方法。
JP2008521680A 2005-07-15 2006-07-13 ユーザアカウント内のアプリケーション特有データの隔離 Expired - Fee Related JP5118638B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US69996305P 2005-07-15 2005-07-15
US60/699,963 2005-07-15
US11/274,023 2005-11-15
US11/274,023 US8074288B2 (en) 2005-07-15 2005-11-15 Isolation of application-specific data within a user account
PCT/US2006/027523 WO2007011800A2 (en) 2005-07-15 2006-07-13 Isolation of application-specific data within a user account

Publications (2)

Publication Number Publication Date
JP2009503633A true JP2009503633A (ja) 2009-01-29
JP5118638B2 JP5118638B2 (ja) 2013-01-16

Family

ID=37669429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521680A Expired - Fee Related JP5118638B2 (ja) 2005-07-15 2006-07-13 ユーザアカウント内のアプリケーション特有データの隔離

Country Status (6)

Country Link
US (1) US8074288B2 (ja)
EP (1) EP1905190B1 (ja)
JP (1) JP5118638B2 (ja)
KR (1) KR101279671B1 (ja)
CN (1) CN101502042B (ja)
WO (1) WO2007011800A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US20170060112A1 (en) * 2015-08-24 2017-03-02 Katrina Danielle PIRNER Control program for accessing browser data and for controlling appliance
US10241776B2 (en) 2016-04-08 2019-03-26 Microsoft Technology Licensing, Llc User settings across programs
US10325116B2 (en) * 2017-06-30 2019-06-18 Vmware, Inc. Dynamic privilege management in a computer system
US11675902B2 (en) 2018-12-05 2023-06-13 Vmware, Inc. Security detection system with privilege management
CN113626212A (zh) * 2021-07-12 2021-11-09 广州致远电子有限公司 一种基于句柄结构的对象管理方法及装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1021097A (ja) * 1996-07-02 1998-01-23 Canon Inc プログラムの起動方法および記憶媒体およびコンピュータ装置
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
EP1204026A2 (en) * 2000-11-01 2002-05-08 Sun Microsystems, Inc. Mandatory locking mechanisms for unix file systems
US20020066021A1 (en) * 2000-11-29 2002-05-30 Chien Andrew A. Method and process for securing an application program to execute in a remote environment
JP2002530943A (ja) * 1998-11-12 2002-09-17 ジェネラル・インスツルメント・コーポレイション ダウンロード可能の放送アプリケーションのためのデジタルテレビジョン受信機ユーザマネージメントアプリケーションプログラミングインターフェース(api)
US20020172363A1 (en) * 2001-05-15 2002-11-21 Dierks Timothy M. Data security on a mobile device
JP2003050746A (ja) * 2001-08-06 2003-02-21 Yamaha Corp パーソナルコンピュータにおける著作権保護装置および保護方法
US20030233644A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation System and method for manipulating offline software
US6779179B1 (en) * 2000-03-20 2004-08-17 Exent Technologies, Inc. Registry emulation
JP2005129066A (ja) * 2003-10-24 2005-05-19 Microsoft Corp オペレーティングシステムリソース保護
US20050160276A1 (en) * 2004-01-16 2005-07-21 Capital One Financial Corporation System and method for a directory secured user account

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02195453A (ja) * 1989-01-25 1990-08-02 Toshiba Corp ファイルアクセス制御方式
US5842015A (en) * 1996-07-26 1998-11-24 Hewlett-Packard Company System and method for real-time control of hardware in a multiprocessing environment
JPH10240589A (ja) * 1997-02-21 1998-09-11 Hitachi Ltd 実データ遅延取出しを行うデータベース処理方法
US6085030A (en) * 1997-05-02 2000-07-04 Novell, Inc. Network component server
US6148336A (en) * 1998-03-13 2000-11-14 Deterministic Networks, Inc. Ordering of multiple plugin applications using extensible layered service provider with network traffic filtering
DE19839847A1 (de) * 1998-09-02 2000-03-09 Ibm Speichern von Datenobjekten im Speicher einer Chipkarte
FR2784479B1 (fr) * 1998-10-09 2000-11-17 Bull Cp8 Protocole d'echange interne de donnees entre applications d'un objet portatif multi-applications et objet portatif multi-applications correspondant
US6578045B1 (en) * 1999-04-20 2003-06-10 Microsoft Corporation System and method for retrieving registry data
US6347331B1 (en) * 1999-04-26 2002-02-12 International Business Machines Corporation Method and apparatus to update a windows registry from a hetrogeneous server
US6513107B1 (en) * 1999-08-17 2003-01-28 Nec Electronics, Inc. Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
US6651123B1 (en) * 2000-03-30 2003-11-18 International Business Machines Corporation File system locking
US7039801B2 (en) * 2000-06-30 2006-05-02 Microsoft Corporation System and method for integrating secure and non-secure software objects
US7246135B2 (en) * 2001-01-08 2007-07-17 Intel Corporation Sharing classes between programs
US7461148B1 (en) * 2001-02-16 2008-12-02 Swsoft Holdings, Ltd. Virtual private server with isolation of system components
US7620731B1 (en) * 2001-02-21 2009-11-17 Microsoft Corporation Isolated persistent storage
TWI236298B (en) * 2001-08-13 2005-07-11 Qualcomm Inc Application level access privilege to a storage area on a computer device
US7257815B2 (en) * 2001-09-05 2007-08-14 Microsoft Corporation Methods and system of managing concurrent access to multiple resources
US20030118188A1 (en) * 2001-12-26 2003-06-26 Collier David C. Apparatus and method for accessing material using an entity locked secure registry
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer
US20030115476A1 (en) * 2001-10-31 2003-06-19 Mckee Bret Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms
FR2833374A1 (fr) * 2001-12-12 2003-06-13 Cp8 Procede et dispositif de controle d'acces dans un systeme embarque
US7844994B2 (en) * 2002-03-22 2010-11-30 The Directv Group, Inc. System and method for persistent storage of common user information for interactive television using a centrally located repository
US20040107199A1 (en) * 2002-08-22 2004-06-03 Mdt Inc. Computer application backup method and system
US7020653B2 (en) * 2002-11-06 2006-03-28 Oracle International Corporation Techniques for supporting application-specific access controls with a separate server
JP4322021B2 (ja) * 2003-02-06 2009-08-26 株式会社ルネサステクノロジ メモリカード
US20040162807A1 (en) * 2003-02-14 2004-08-19 Montagne Michael D. Cooperative, simultaneous operation on data by many processes, with concurrent retention of process status, resumed processing, and minimal consumption of inter-nodal throughput
EP1639462B1 (en) * 2003-06-27 2022-05-11 Oracle America, Inc. Hybrid system implementing distinct and co-existing application execution environments and methods for implementing the same
WO2005010757A1 (ja) * 2003-07-24 2005-02-03 Matsushita Electric Industrial Co., Ltd. ファイル管理方法及び情報処理装置
US20050081204A1 (en) * 2003-09-25 2005-04-14 International Business Machines Corporation Method and system for dynamically bounded spinning threads on a contested mutex
EP1676204A2 (en) * 2003-10-13 2006-07-05 Koninklijke Philips Electronics N.V. Storage allocation per application
US20050114870A1 (en) * 2003-11-21 2005-05-26 Song Dong H. System and method for executing an application on a secured run-time environment
US7610322B2 (en) * 2004-05-25 2009-10-27 Microsoft Corporation Safe handle
US7853947B2 (en) * 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US7765548B2 (en) * 2005-02-17 2010-07-27 Red Hat, Inc. System, method and medium for using and/or providing operating system information to acquire a hybrid user/operating system lock

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1021097A (ja) * 1996-07-02 1998-01-23 Canon Inc プログラムの起動方法および記憶媒体およびコンピュータ装置
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
JP2002530943A (ja) * 1998-11-12 2002-09-17 ジェネラル・インスツルメント・コーポレイション ダウンロード可能の放送アプリケーションのためのデジタルテレビジョン受信機ユーザマネージメントアプリケーションプログラミングインターフェース(api)
US6779179B1 (en) * 2000-03-20 2004-08-17 Exent Technologies, Inc. Registry emulation
EP1204026A2 (en) * 2000-11-01 2002-05-08 Sun Microsystems, Inc. Mandatory locking mechanisms for unix file systems
US20020066021A1 (en) * 2000-11-29 2002-05-30 Chien Andrew A. Method and process for securing an application program to execute in a remote environment
US20020172363A1 (en) * 2001-05-15 2002-11-21 Dierks Timothy M. Data security on a mobile device
JP2003050746A (ja) * 2001-08-06 2003-02-21 Yamaha Corp パーソナルコンピュータにおける著作権保護装置および保護方法
US20030233644A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation System and method for manipulating offline software
JP2005129066A (ja) * 2003-10-24 2005-05-19 Microsoft Corp オペレーティングシステムリソース保護
US20050160276A1 (en) * 2004-01-16 2005-07-21 Capital One Financial Corporation System and method for a directory secured user account

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
CSNB199900202001; NT研究グループ: Windows NT 4.0ハンドブック(上) 第1版, 19970101, p.171-172, 株式会社IDGコミュニケーションズ *
CSNB200200350001; David A. Solomon: アーキテクチャ徹底解説 Microsoft Windows 2000 上 第1版, 20010402, 第128,130,142頁, 日経BPソフトプレス *
CSNB200300050001; Walter Oney: Microsoft WDM プログラミング 第1版, 20010921, 第128-129頁, 株式会社アスキー *
CSND200200247015; 三谷 直之: 'Windows 2000対応版 Windows 2000 使いこなし講座 NTでポン 第59回' DOS/V magazine 第9巻第5号, 20000315, p.315, ソフトバンクパブリッシング(株) *
JPN6011021048; David A. Solomon: アーキテクチャ徹底解説 Microsoft Windows 2000 上 第1版, 20010402, 第128,130,142頁, 日経BPソフトプレス *
JPN6011021051; Walter Oney: Microsoft WDM プログラミング 第1版, 20010921, 第128-129頁, 株式会社アスキー *
JPN6011054293; 三谷 直之: 'Windows 2000対応版 Windows 2000 使いこなし講座 NTでポン 第59回' DOS/V magazine 第9巻第5号, 20000315, p.315, ソフトバンクパブリッシング(株) *
JPN6011054294; NT研究グループ: Windows NT 4.0ハンドブック(上) 第1版, 19970101, p.171-172, 株式会社IDGコミュニケーションズ *

Also Published As

Publication number Publication date
EP1905190A4 (en) 2010-12-08
KR20080034118A (ko) 2008-04-18
US20070033638A1 (en) 2007-02-08
WO2007011800A2 (en) 2007-01-25
CN101502042B (zh) 2012-03-07
JP5118638B2 (ja) 2013-01-16
EP1905190A2 (en) 2008-04-02
CN101502042A (zh) 2009-08-05
US8074288B2 (en) 2011-12-06
EP1905190B1 (en) 2015-12-09
WO2007011800A3 (en) 2009-04-16
KR101279671B1 (ko) 2013-06-28

Similar Documents

Publication Publication Date Title
US10387132B2 (en) Cloud-based application resource files
US8122484B2 (en) Access control policy conversion
US6606711B2 (en) Object security boundaries
US7996834B2 (en) Virtual machine self-service restrictions
US6766397B2 (en) Controlling access to a storage device
US20110078699A1 (en) Computer system with dual operating modes
US8904400B2 (en) Processing system having a partitioning component for resource partitioning
US20020078365A1 (en) Method for securely enabling an application to impersonate another user in an external authorization manager
US20020166052A1 (en) System and methods for caching in connection with authorization in a computer system
US8191115B2 (en) Method and apparatus for extensible security authorization grouping
JP5118638B2 (ja) ユーザアカウント内のアプリケーション特有データの隔離
US20020007408A1 (en) Resource management
CA2830880C (en) Managing permission settings applied to applications
US8584129B1 (en) Dispenser determines responses to resource requests for a single respective one of consumable resource using resource management policy
US20220309497A1 (en) Credit-based access control for data center resources
US9754121B2 (en) System and methods for live masking file system access control entries
US11356438B2 (en) Access management system with a secret isolation manager
CA2854540C (en) Managing cross perimeter access
Madani et al. C-ABAC: An ABAC based Model for Collaboration in Multi-tenant Environment
Varadharajan et al. Issues in the design of secure authorization service for distributed applications
US20060224591A1 (en) Authorization over a distributed and partitioned management system
JP2000298648A (ja) 実行可否判定装置及びプログラムを記録した機械読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110728

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111017

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120501

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120829

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120905

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: 20120921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121019

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5118638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151026

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees