(57)【特許請求の範囲】
【請求項１】
１以上のプロセッサによって実行されるコンピュータ処理方法であって、前記プロセッサは、
制限された動作環境によって管理されるリソースの選択を受信すること、
前記選択に応答して、前記リソースに関連する位置識別情報を、信頼できるアクセス制御システムである前記制限された動作環境のリソースマネージャから要求すること、
前記要求に応答して、ブックマークと、記憶装置上の前記リソースの取り出しを可能とする前記ブックマークの暗号ハッシュ値であるダイジェストとを受信し、
前記リソースの信頼を示すため、前記制限された動作環境に関連する記憶装置の部分に、前記ブックマーク及び前記ダイジェストを記憶すること、
を含む方法。
【請求項２】
前記ブックマークはＵＲＬを含み、前記ダイジェストは前記ＵＲＬの第１の鍵付きハッシュ値を含む、請求項１に記載の方法。
【請求項３】
前記リソースは、ファイル、フォルダ、又はメモリの少なくとも１つを含む、請求項２に記載の方法。
【請求項４】
前記リソースマネージャは、コンピュータオペレーティングシステムの構成要素であり、アプリケーションが実行していない間に前記ファイル又はフォルダが名称変更又は移動した場合でさえも、前記アプリケーションにより前記ファイル又はフォルダの取り出しが可能である、請求項３に記載の方法。
【請求項５】
選択したリソースへのアクセスを要求すること、
前記ブックマーク及び前記ダイジェストを提供すること、
前記リソースにアクセスすることを更に含み、
前記リソースへのアクセスは、前記ファイル又はフォルダが名称変更若しくは移動した場合でさえも可能である、請求項４に記載の方法。
【請求項６】
前記リソースマネージャは、前記ブックマークの第２の暗号ハッシュ値を作成すること、及び前記第２の暗号ハッシュ値と前記ダイジェストとを比較することによって前記位置識別情報を認証する、請求項５に記載の方法。
【請求項７】
電子コンピュータシステムのリソースへのアクセスを管理するための制限された動作環境であって、
前記リソースへのアクセスを制限するサンドボックスと、
前記サンドボックス内のアプリケーションのために、前記リソースへのアクセスを管理するリソースマネージャとを含み、
前記リソースマネージャは、
前記リソースにアクセスするための位置識別情報に関する要求を受け取り、
前記リソースへのアクセスが許可されているかどうかを判定することによって前記要求を検証し、更に
前記位置識別情報及び識別情報を送信し、
前記識別情報は、前記リソースが名称変更若しくは移動した場合でさえも、前記サンドボックス外部の前記リソースの取り出しを可能にする、制限された動作環境。
【請求項８】
前記サンドボックスは、ファイル及びフォルダへのアクセスを制限し、前記ファイル及びフォルダは、前記サンドボックスの外部にある、請求項７に記載の制限された動作環境。
【請求項９】
前記リソースマネージャは、コンピュータオペレーティングシステム内における、暗号化された署名付きの構成要素である、請求項８に記載の制限された動作環境。
【請求項１０】
前記識別情報はＵＲＬであり、前記位置識別情報は前記ＵＲＬの鍵付きハッシュ値である、請求項９に記載の制限された動作環境。
【請求項１１】
前記鍵付きハッシュ値を生成及び暗号化し、
前記鍵付きハッシュ値は、前記ＵＲＬを第２の鍵付きハッシュ値へと再符号化すること、及び前記第２の鍵付きハッシュ値を前記ＵＲＬの鍵付きハッシュ値と比較することにより、認証される、請求項１０に記載の制限された動作環境。
【請求項１２】
前記サンドボックスは、メインメモリへのアクセスを制限する、請求項７に記載の制限された動作環境。
【請求項１３】
処理システムによって実行されたときに、前記処理システムに対して、制限された動作環境においてリソースアクセスを管理するオペレーションを実行させる命令群を提供する不揮発性の機械読み取り可能な記憶媒体であって、前記オペレーションは、
ファイル又はフォルダに関連する位置識別情報を提供するための第１の要求を受け取ること、
前記第１の要求が前記ファイル又はフォルダにアクセスする権限があることを検証すること、
ランダム鍵を作成し、前記ランダム鍵を前記ファイル又はフォルダに結合すること、
前記ランダム鍵を用いて第１の鍵付きハッシュ値を作成すること、
前記ファイル又はフォルダに関連し、ＵＲＬ及び前記第１の鍵付きハッシュ値を含む前記位置識別情報を返すことを含む、機械読み取り可能な記憶媒体。
【請求項１４】
前記ファイル又はフォルダにアクセスするための第２の要求を受け取ることであって、前記第２の要求は、前記ＵＲＬ及び前記第１の鍵付きハッシュ値を含む、受け取ること、  前記ファイル又はフォルダから前記ランダム鍵を取り出すこと、
前記ランダム鍵を用いて第２の鍵付きハッシュ値を作成すること、
前記前記第２の鍵付きハッシュ値を第１の鍵付きハッシュ値と比較することを更に含む、請求項１３に記載の機械読み取り可能な記憶媒体。
【請求項１５】
前記ランダム鍵は、前記ファイル又はフォルダにアクセスするアプリケーションからアクセス不可能である、請求項１４に記載の機械読み取り可能な記憶媒体。
【請求項１６】
前記ＵＲＬ及び第１のハッシュ鍵が、ユーザにより選択された文書のコレクションへのアクセスを提供する、請求項１５に記載の機械読み取り可能な記憶媒体。
【請求項１７】
前記ＵＲＬ及び第１のハッシュ鍵は、特定のアプリケーションに固有である、請求項１５に記載の機械読み取り可能な記憶媒体。
【請求項１８】
前記ＵＲＬは前記第１のハッシュ鍵を含む、請求項１５に記載の機械可読記憶媒体。
【請求項１９】
前記ＵＲＬ及び第１のハッシュ鍵は、アプリケーションの複数のセッションにわたって一貫したアクセスを提供する、請求項１５に記載の機械読み取り可能な記憶媒体。
【請求項２０】
前記ＵＲＬ及び第１のハッシュ鍵は、システムの電源切断・再投入のサイクルにわたって一貫したアクセスを提供する、請求項１９に記載の機械読み取り可能な記憶媒体。
【請求項２１】
実行時にデータ処理システムに対して請求項１〜６の何れか１項に記載の方法を実行させる命令を提供する、機械読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２０１２年１月１７日に出願された米国仮特許出願第６１／６３２，１０１号に基づく優先権を主張し、この仮特許出願を本明細書に援用する。本願は、２０１１年１月１４日に出願された米国特許出願第１３／００７，４７２号、２０１０年５月２８日に出願された米国特許出願第１２／７９０，４５１号、及び２０１１年１月１４日に出願された米国特許出願第１３／００７，４８０号に関連する。
【背景技術】
【０００２】
あらゆる種類のプロセッサに基づく電子装置、とりわけ、コンピュータ装置に関するセキュリティ上の問題が重要となってきている。悪意あるコード、例えば、ウィルス、ワーム、マルウェア及びその他のコードは、画面上のメッセージ表示のような比較的優しいものから装置の乗っ取り、プロセスの実行、ファイルの送信及び／又は削除等に至るまでの影響を与えることが可能である。これらの攻撃の多くは、コンピュータ装置、例えば、ワークステーション、サーバ、デスクトップコンピュータ、ノート型携帯コンピュータ及びその他の類似装置を対象にしている。このようなコンピュータ装置の多くは、ユーザが操作して一連の所望の機能を実行できる１つ以上のアプリケーションプログラムを実行できる。
【０００３】
悪意あるコード又は欠陥のあるコードによる攻撃、及び影響を共に低減又は除去するために、数多くの手法が使用されてきた。一般に、これらの手法には、検出、防止及び軽減を伴い、更に悪意あるコードをスキャン、特定及び隔離する試みが挙げられる。また、信用できないアプリケーションに認めるアクセスの量を抑えることで、悪意あるコードが実行できる被害の量を制限するための幾つかの方法も使用されてきた。だが、従来の方法論では、制限された環境の外部のリソースにアクセスする、一貫したかつ持続的な方法を提供する統一的で体系的な手法がない。リソースの名称又は位置が変わる場合は特にそうである。
【発明の概要】
【０００４】
本発明の実施形態は、全体としてセキュアコンピューティング技術、具体的には、プログラムによって使用されるリソースの制限技術に関する。本発明の一態様によれば、１つ以上のアプリケーションが、アクセス制御システムによりサンドボックス化された、サンドボックス化された環境においてファイル又はフォルダへのアクセスを許可する識別情報が提供される。このようなアクセス制御システムは、オペレーティングシステムの信用できるソフトウェア構成要素等の、信用できるソフトウェア構成要素の一部であり得る。この識別情報はブックマーク又はその他の何らかの識別情報であってもよく、アプリケーションが終了してからユーザがファイルを名称変更又は移動をした場合でも、アプリケーションはファイルにアクセスできる。従来は、サンドボックス化された環境外部のファイル若しくはフォルダが移動又は名称変更されると、そのファイル若しくはフォルダを使用するアプリケーションは、ファイル若しくはフォルダの名称変更又は移動に関する何の情報を持たず、アクセスできなくなる。
【０００５】
だが、本発明の実施形態では、リソースマネージャ又はその他の何らかの信用できるアクセス制御システムが、アプリケーション（又は「アプリ」）と相互作用して、この環境内でブックマークの使用を可能にする。サンドボックス環境では、一実施形態では、各アプリケーションが特定のファイル若しくはフォルダへのアクセスするために、サンドボックスアプリケーションに要求しなければならないというように、サンドボックスアプリケーションがファイルへのアクセスを制御する。具体的には、本発明の実施形態は、悪意あるコードが重要なシステムリソースへの不正なアクセスを試みる状況を防止するために、ファイル若しくはフォルダにアクセスすることがユーザの意図であることを示す何らかの表示がないと、アプリケーションがこのようなファイル若しくはフォルダにアクセスすることを許可しない。しかしながら、一部の実施形態では、一度ユーザの意図がファイルの選択によって指定されると、この選択がアプリケーションの複数のセッションにわたって永続可能である。
【０００６】
この概要が本発明の全態様に関する網羅的な一覧を含む訳ではなく、本発明は上記の概要で開示されている実施形態に限定されないことに留意するべきである。本発明のその他の特徴は、添付の図面から、及び以下の詳細な説明から明らかとなるであろう。また、本発明は、上記で概説した種々の態様、更には、以下の詳細な説明の中で開示されている態様の適切な全ての組み合わせから実施可能とする全てのシステム及び方法も含むことも想定される。
【０００７】
本発明の実施形態を、例として、そして、限定としてではなく、添付の図面の図において説明する。図面では同様の参照符号は類似の要素を示す。
【図面の簡単な説明】
【０００８】
【図１Ａ】本明細書で述べた１つ以上の実施形態から構成可能なデータ処理システムの一例を示す図である。
【図１Ｂ】本発明の一実施形態に係る、制限された動作環境においてプログラム又はアプリケーションを実行するシステムについて説明するブロック図である。
【図２Ａ】本発明の一実施形態に係る、制限された動作環境においてファイルへの永続的なアクセスを許可するアプリスコープのブックマーク処理を実行するための一実施形態における方法を示すフローチャートである。
【図２Ｂ】再起動されたアプリケーションが、本発明の一実施形態に係る、制限された動作環境において、ブックマーク又はその他の識別情報を介してどのようにアクセスできるかについて説明するフローチャートである。
【図３Ａ】本発明の一実施形態に係る、制限された動作環境において使用するためのコレクションスコープのブックマークを作成するための方法について説明するフローチャートである。
【図３Ｂ】本発明の一実施形態に係る、制限された動作環境におけるコレクションスコープのブックマークに関連するプロジェクトを介したアクセスを許可する方法について説明するフローチャートである。
【発明を実施するための形態】
【０００９】
１つ以上のサンドボックス化されたアプリケーションへのファイルアクセスを管理するための種々の実施形態について、以下の説明及び図面において説明する。以下の説明及び図面は、本発明の例示であり、発明を限定するものとして解釈されるべきではない。本発明の種々の実施形態に関する十分な理解をもたらすために、多くの具体的な詳細について述べる。だが、場合によっては、本発明の実施形態に関する議論を簡潔化するために、公知、または、従来の詳細については、説明しない。
【００１０】
本明細書中における「一実施形態（one embodiment）」又は「一実施形態（an embodiment）」への言及は、その実施形態に関連して説明される特定の機能、構造又は特徴を、本発明の少なくとも１つの実施形態の中に含まれることを意味する。本明細書における様々な箇所での、語句「一実施形態では」の出現は、必ずしも全てが同じ実施形態を言及しているものではない。以下でプロセスについて幾つかの連続的な操作の観点で述べるが、説明する操作の一部は、異なる順序で実施できることを認識すべきである。更に、一部の操作は、連続的ではなく並列で実施可能である。
【００１１】
制限された動作環境は、悪意あるコードを実行するプログラムによる被害の可能性を限定する方法の１つである。制限された動作環境には、オペレーティングシステムで実行するアプリケーションにオペレーティングシステムがサンドボックス化機構を強制するような環境が挙げられる。これらのサンドボックス化機構には、アプリケーションがアクセス可能なメモリ、例えば、コンピュータ装置のＤＲＡＭ又はその他のメインメモリに対する制限、更には、ハードドライブのような不揮発性記憶装置又はソリッドステートディスクのようなフラッシュメモリ素子上に記憶されたファイルへのアクセスに関する制限が挙げられる。制限された動作環境の例は、２０１１年１月１４日に出願された同時係属米国特許出願第１３／００７，４７２号、２０１０年５月２８日に出願された米国特許出願第１２／７９０，４５１号及び２０１１年１月１４日に出願された米国特許出願第１３／００７，４８０号で述べられており、これら特許出願全てを、ここにその全容を援用するものである。
【００１２】
サンドボックスアプリケーションが、ファイルアクセスを制限する際、例えば、オペレーティングシステムの信用できる要素から提供されるファイルを開く操作用ダイアログボックス又はパネルのような信用できるシステムリソースを介した、ユーザによるファイル選択のような、信用できる装置を介したユーザの意図の証明を要求することによって、サンドボックスアプリケーションはファイルアクセスを制限できる。したがって、アプリケーションが実行する際、信用できるシステムリソースにより提供されるオープンダイアログボックス又は保存ダイアログボックス、あるいはその他のダイアログボックス又はパネルを介してファイルを選択することによって、ユーザは必要とされる信用の表示を提供できる。
【００１３】
しかしながら、アプリケーションが、ファイル又はフォルダにアクセスしようとするが、このファイル又はフォルダが信用できることを示すユーザ対話を行わずに、アクセスする状況がある。例えば、電子メールアプリケーションが、電子メール内のダウンロードを格納するために、ダウンロードフォルダにアクセスしようとする場合がある。このことは、電子メールプログラムの起動時に起こりうるが、電子メールプログラムの起動には、ユーザによる特定のダウンロードフォルダの選択を伴わない。したがって、この場合、電子メールアプリケーションは、これが再起動された後、このフォルダへのアクセスが拒否される。アプリケーションが制限された環境内でアクセスが拒否されると思われる別の例として、アプリケーションが、プロジェクト又はコレクションファイル、例えば、「ＦＩＮＡＬ  ＣＵＴ  ＰＲＯ」（登録商標）動画編集ソフトウェアアプリケーションで使用されるプロジェクトファイルを使用する場合がある。プロジェクト又はコレクションファイルは、プレゼンテーションを提供するために同時に使用される種々の動画及びその他のコンテンツを指定するメタデータ並びにパス名を含むディレクトリであると考えられる。プロジェクトファイルの通常の使用では、ユーザは、開く操作用ダイアログボックスを使用してアプリケーションの中から、プロジェクトファイルを開く。この場合、ユーザは信用できるものとみなされ、かつ、ユーザによるファイル選択操作はファイルの信用性を示しているので、システムは、ファイルの信用性を検証する必要は無い。しかしながら、アプリケーションは、プロジェクト又はコレクション内で参照されるファイルへのアクセスを後で必要とする又は必要とする場合があり、制限された環境内ではこれらファイルへのアクセスは拒否され、特定のファイルの信用性に関するユーザによる表示が要求される。
【００１４】
本明細書で述べる方法のいずれでも、限定されないが、汎用コンピュータシステム、専用コンピュータシステム、組み込みコンピュータシステム等を含む種々のデータ処理装置で実行可能である。例えば、本明細書で述べる方法の任意の１つを使用可能なデータ処理システムには、デスクトップコンピュータ若しくはラップトップコンピュータ、タブレットコンピュータ、スマートフォン、若しくは携帯電話のような携帯装置、パーソナルテジタルアシスタント（ＰＤＡ）、又はその他の何らかの形態の組み込み電子装置、又は民生電子機器が挙げられる。図１Ａは、本発明で使用可能な典型的なデータ処理システムの一例を示す。図１Ａは、コンピュータシステムのようなデータ処理システムの種々の構成要素について説明しているが、このようなシステムの詳細は、本発明と密接に関連しないので、この図は、任意の特定のアーキテクチャー又は構成要素の相互接続方式を表す意図がないことに、留意する。更に、図１Ａで示したものよりも少ない構成要素、又は図１Ａで示したものよりも多い構成要素を含むその他の種類のデータ処理システムも、本発明で使用できることも認識するべきである。図１Ａのデータ処理システムは、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）からのＭａｃｉｎｔｏｓｈ（登録商標）コンピュータでよい。
【００１５】
図１Ａで示すように、データ処理システム１００は、システムの種々の構成要素を相互接続する１つ以上のバス１２５を含む。１つ以上のプロセッサ１１５は、当該技術分野において既知の１つ以上のバス１２５に接続する。メモリ１２０は、ＤＲＡＭ若しくは不揮発性ＲＡＭでもよく、あるいはフラッシュメモリ又はその他の種類のメモリも可能である。このメモリは、当該技術分野において既知の技術を用いて、１つ以上のバス１２５に接続する。更に、データ処理システム１００は、不揮発性メモリ１２２も含むことが可能であり、これはハードディスクドライブ、フラッシュメモリ、磁気光学ドライブ、磁気メモリ、光学ドライブ、又はその他の種類のメモリシステムでよく、システムから電力を取り外した後でもデータを保持する。不揮発性メモリ１２２及びメモリ１２０は共に、既知のインタフェース及び接続法を用いて、１つ以上のバス１２５に接続する。ディスプレイコントローラ１３０は、ユーザインタフェース機能、又は本明細書で述べる実施形態の任意の１つを表示できる、ディスプレイ装置１３２上に表示する表示データを受け取るために、１つ以上のバス１２５に接続する。ディスプレイ装置１３２は、タッチスクリーンを提供する統合型タッチ入力を含んでもよい。
【００１６】
このデータ処理システム１００は、更に、１つ以上の入出力（Ｉ／Ｏ）装置、例えば、１つ以上のマウス、タッチスクリーン、タッチパッド、ジョイスティック及び当該技術分野で知られるものを含むその他の入力装置、並びに出力装置（例えば、スピーカ）のためのインタフェースを提供する１つ以上のＩ／Ｏコントローラ１４０も含み得る。入出力装置１４２は、当該技術分野で知られる１つ以上のＩ／Ｏコントローラ１４０を介して、接続する。図１Ａは、不揮発性メモリ１２２及びメモリ１２０がネットワークインタフェースを介してではなく１つ以上のバスと直接接続するように示しているが、このデータ処理システムは、システムから離れた場所にある不揮発性メモリ、例えば、モデム、イーサネット（登録商標）インタフェース、又は無線Ｗｉ−Ｆｉトランシーバ１４５、無線携帯電話トランシーバ、又はこのようなトランシーバの組み合わせのような無線インタフェース等のネットワークインタフェース１３５を介して、データ処理システムに接続するネットワーク記憶装置を、使用できることも認識すべきである。
【００１７】
当該技術分野で知られるように、１つ以上のバス１２５は、種々のバス同士を相互接続するための１つ以上のブリッジ、コントローラ、又はアダプターを含むことができる。一実施形態において、Ｉ／Ｏコントローラ１４０は、ＵＳＢ周辺機器を制御するためのＵＳＢアダプターを含み、イーサネットポート、無線トランシーバ、又は無線トランシーバの組み合わせを制御できる。この説明から、本発明に関する複数の態様は、その少なくとも一部を、ソフトウェアとして実施できることが明らかとなるであろう。つまり、プロセッサが、例えば、メモリ１２０、不揮発性メモリ１２２、又は纏めて非一時的機械可読記憶媒体を実現するようなメモリの組み合わせ等のメモリの中に含まれる命令シーケンスを実行することに呼応して、この技術をデータ処理システム内で実行できる。種々の実施形態では、本発明を実装するソフトウェア命令も合わせてハードウェア回路も使用できる。したがって、この技術は、ハードウェア回路とソフトウェアの何らかの特定の組み合わせ、又はデータ処理システムにより実行される命令用の何らかの特定の命令ソースに限定されない。
【００１８】
図１Ｂは、本発明の一実施形態に係る図１Ａのデータ処理システムを含む動作環境を示す。この動作環境は、アプリケーションが終了して、再起動した後でも、アプリケーションが制限された環境内でアクセスできるようにするため、リソースマネージャ又はその他の信用できるアクセス制御システム１６１を用いて、サンドボックス化されたアプリ、又はアプリケーションにブックマークを提供する。リソースマネージャ１６１は、オペレーティングシステム内のアクセス制御システムでよく、リソースマネージャ１６１の実行可能オブジェクトコードは、ある実施形態においては、その信用性を検証するために暗号学的に署名されるか又は別の方法で認証されることが可能である。記憶装置１５５は、リソースマネージャ１６１を介してアクセスされる。一実施形態では、リソースマネージャは、ファイルシステムを介して記憶装置１５５にアクセスする。アプリ１５１は、リソースマネージャ１６１を介して、ファイル又はフォルダ、例えば、ファイル１５９又はフォルダ１５７にアクセスし、リソースマネージャは次にファイルシステムを介して記憶装置１５５にアクセスする。記憶装置１５５は、ハードドライブ、フラッシュドライブ、又は当該技術分野で知られるその他の不揮発性記憶装置でよい。アプリ１５１はサンドボックス１５３によりサンドボックス化され、メインメモリ内のメモリの使用はサンドボックスアプリケーションにより制限可能であり、アプリ１５１はリソースマネージャ１６１を介してアクセスを要求することによってのみ、パッケージ又はコンテナ外部のファイル若しくはフォルダにアクセスできる。ユーザがアプリケーションを実行して、信用できるシステムソフトウェア構成要素により提供される、オープンダイアログボックス若しくは保存ダイアログボックス、又はパネルを介してファイルを要求する際、リソースマネージャ１６１は、ファイルへのアクセスを許可できる。例えば、ユーザが、使用する特定のダウンロードフォルダ、又はアプリケーションのある目的で使用するその他のフォルダを環境設定パネルから選択すると、アプリケーションは現在の実行中にそのフォルダを使用できる。だが、アプリケーションが終了又は中断してから、再起動する際、アプリケーションは、ユーザと対話しない限り、フォルダ若しくはファイルを再利用又はアクセスできない。
【００１９】
図２Ａ及び図２Ｂで示す方法は、アプリケーションが終了した後であっても、アプリケーション又はアプリが以前に信用したファイル又はフォルダへのアクセスを、どのようにして許可されるか、という例を提供している。つまり、システムは、セキュリティスコープのブックマーク又はＵＲＬ（Uniform Resource Locator）のようなその他の識別情報を使用して、以前に信用したファイル又はフォルダへのアクセスを提供できる。図２Ａ及び図２Ｂで示した方法は、アプリケーションがアプリケーションスコープのブックマークを用いて、以前にユーザにより選択されたファイル又はフォルダにアクセスする状況に関連している。図２Ａで示す方法は、アプリが、その実行中に、ユーザによるファイル又はフォルダの選択を受け取る動作２０１おいて開始可能である。次いで、アプリは、動作２０３の応答において、アプリケーションスコープのブックマークの作成を、リソースマネージャに要求する。この要求は、リソースマネージャ１６１のような信用できるリソース構成要素へのＡＰＩ呼び出しを介して、実行可能である。この要求は、フォルダ又はファイルを指定可能であり、更に、要求元アプリケーションも指定できる。動作２０５において、次いでリソースマネージャはアプリケーションがアクセスする権限があるかどうかを検証する。一実施形態では、この検証はアプリケーションからファイル記述子を受け取ることで実施可能であり、そして、リソースマネージャは、このファイル記述子を動作２０１においてユーザにより選択された要求ファイルのファイル記述子と突き合わせて検証する。動作２０５の判定において、アクセスする権限がこのアプリケーションにあれば、リソースマネージャは、アプリケーションから分からない秘密鍵とアプリの署名鍵又は署名識別情報との組合せを用いて、組合せ鍵を作成する。そして、リソースマネージャは、動作２０９において要求ファイル若しくはフォルダ用のブックマークを決定又は受け取ることができ、更に組合せ鍵をハッシュ関数と組み合わせて使用して、動作２０９のブックマークのハッシュ値又はダイジェスト値に相当する暗号化した位置識別情報を生成できる。次に、動作２１１でリソースマネージャはブックマーク及びブックマークのハッシュ値をアプリに送ることができ、次いでアプリは動作２１３で、ブックマーク及びブックマークのハッシュ値を記憶できる。一実施形態において、ブックマーク及びブックマークのハッシュ値は、サンドボックス内のアプリケーションのパッケージ又はコンテナにおいて符号化可能であり、これによって、リソースマネージャからパーミッションを取得することなく、データにアクセスできる。次に、動作２１５で、アプリケーションを終了する、又はシステムを終了できる。この時点で、制限された動作環境は、ファイル又はフォルダが信用できることを示すために、更なるユーザとの対話を要求することなく、以前に選択したファイル又はフォルダにアプリケーションがアクセスすることを許可するためのアプリケーションスコープのブックマークを作成済みである。
【００２０】
図２Ｂは、アプリケーション再起動後のアプリケーションスコープのブックマークの使用を示す。ここで、アプリケーションは、動作２１５の終了処理の後、再度実行する。動作２２１において、再起動が行われ、次に動作２２３でアプリはサンドボックス外部のファイル又はフォルダへのアクセスを要求する。例えば、電子メールプログラムが、以前にユーザが選択したダウンロードフォルダにダウンロードを保存することを要求する場合がある。動作２２５で、アプリはＡＰＩを介してファイル又はフォルダ（例えば、ダウンロードフォルダ）へのアクセスを求めてリソースマネージャを呼び出すことができ、アプリはブックマーク及びブックマークのハッシュ値を提供する。これは動作２１３においてアプリが記憶したものである。動作２２７において、リソースマネージャは、アプリからブックマーク及びブックマークのハッシュ値を受け取り、受け取ったブックマークの組み合わせ鍵を用いてＵＲＬを第２の鍵付きハッシュ値へと再符号化して、この再生成されたハッシュ値とアプリから受け取ったハッシュとを比較することにより、ブックマークのハッシュ値を暗号的に認証する。動作２２９で比較して一致が得られれば、リソースマネージャは要求を承認してファイル又はフォルダへのアクセスを許可する。ハッシュ値が一致しなければ、アクセスを拒否する。
【００２１】
図３Ａ及び図３Ｂは、「ＦＩＮＡＬ  ＣＵＴ  ＰＲＯ」動画編集プロジェクトのようなコレクション又はプロジェクト内で指定されるファイルへの永続的アクセスを可能とするための一実施形態に係る方法の例を示す。図３Ａで示す方法は動作３０１で始められ、ユーザがアプリケーションを使用してコレクション又はプロジェクトを開く。ユーザがアプリケーション内で開く操作用ダイアログボックスを使ってプロジェクトを開くとき、その開く操作用ダイアログボックスが信用できるシステムリソース、例えば、開く操作用ダイアログボックスを提供するオペレーティングシステムソフトウェアにより提供されているならば、ユーザによる開く操作はプロジェクト又はコレクションに関して信用できることを表示している。そして、ユーザは、動作３０３において、プロジェクトに追加する動画を選択又は開くことができる。動作３０５においてアプリケーションは、この動画用のブックマークを作成することを、リソースマネージャ１６１に要求する。このブックマークは、プロジェクトを有効範囲としており、そのことはプロジェクトのファイルのパス名により指定可能である。一実施形態では、アプリはファイル名によりプロジェクトを指定し、そのファイル名をリソースマネージャに提供する。動作３０７において、リソースマネージャはアプリがプロジェクト及び指定された動画にアクセスする権利があることを検証し、もし権利があれば動作３０９に進み、プロジェクト用のキーが既に存在していなければリソースマネージャはランダム鍵を作成し、この鍵をプロジェクトファイルに追加する。一実施形態では、この鍵はプロジェクトファイルに追加される場合であっても、アプリケーションから隠蔽される。このような実施形態では、ランダム鍵をファイルブロックの残りから独立したブロックに記憶することをファイルシステムに要求する、又は当該技術分野で知られるその他の機構を用いて、リソースマネージャはランダム鍵を含むファイルの一部へのアクセスを制限できる。動作３１１において、リソースマネージャ１６１は、プロジェクトファイル用に動作３０９で作成したランダム鍵を用いて、動画用のブックマークの鍵付きハッシュ値又はダイジェスト値を作成可能である。そして、動作３１３において、リソースマネージャは動画用のブックマークをアプリに戻し、鍵付きハッシュ値／ダイジェスト値も戻す。一実施形態では、ブックマークは、鍵付きハッシュ値／ダイジェスト値を含むことができる。動作３１５において、アプリはブックマーク及び鍵付きハッシュ値／ダイジェスト値を、図３Ｂと併せてこれから説明するように、再利用するためプロジェクトのファイル又はディレクトリ内に記憶する。動作３０３〜３１５は、プロジェクト又はコレクションに含まれる動画又はその他のオブジェクトごとに反復される。コレクション又はプロジェクトは、動画プロジェクト、音楽プロジェクト、又は参照項目がそのアプリケーションで使用する文書ライブラリを表すその他のアプリケーションでよいことを、認識するものとする。動作３１５の後、アプリケーションを中断若しくは終了する、又はシステムを終了できる。
【００２２】
図３Ｂで示す方法は、図３Ａで示した方法で作成したコレクションスコープのブックマークの使用を示す。動作３２１において、アプリケーションを再起動し、次いで動作３２３で、ユーザはこのアプリケーション内でプロジェクトを開く。一実施形態では、システムは、プロジェクト、その他のファイル又は文書のコレクションの信用性を表すものとして、ユーザによるプロジェクトの選択を信じることができるので、プロジェクトの信用性に対する検証は必要ない。次いで、動作３２５において、アプリケーションは、プロジェクトにより参照される１つ以上のブックマークを送り、更に、プロジェクトファイルのパス名及びブックマークの鍵付きハッシュ値をリソースマネージャ１１１に送る。次いで、動作３２７において、リソースマネージャは、動作３０９で作成されたプロジェクトファイルからランダム鍵を取り出すことができる。次いでリソースマネージャは、動作３２９で、取り出したランダム鍵を用い、動作３２５によりアプリケーションから受け取った各ブックマークに関する鍵付きハッシュ値を作成できる。次に、リソースマネージャは、アプリケーションから受け取ったブックマークの各鍵付きハッシュ値と再計算された各ブックマークの鍵付きハッシュとを比較し、一致すればアクセスを提供し、一致しなければアクセスを拒否する。このようにして、文書コレクションを参照するコレクション又はプロジェクト内のユーザによって、選択された文書への永続的なアクセスを許可できる。
【００２３】
図３Ａ及び図３Ｂで示した方法の場合、永続的参照は、文書若しくは文書群を表すコレクション又はプロジェクトに固有であり、アプリケーション構成の一部ではなく、アプリケーションが開くことのできる特定の文書の一部なのである。
【００２４】
一方、図２Ａ及び図２Ｂで示した方法は、アプリケーション実行中にユーザによるファイル又はフォルダの選択を受け取ったアプリケーションに固有である。リソースマネージャ又は信用できるその他のアクセス制御システムは、ブックマーク（ＵＲＬでよい）が改ざんされていないこと、そして、ユーザにより選択され、以前にアクセスされたファイルに同じアプリケーションがアクセスを試みていることを検証できる。したがって、アプリケーションスコープのブックマーク又は識別情報は特定のアプリケーションに固有である。
【００２５】
上述の明細書では、本発明は、その特定の例示の実施形態を参照して説明されている。以下の特許請求の範囲で述べられる本発明のより広い趣旨や範囲から逸脱することなく、種々の変形形態を実施できることは明らかであろう。したがって、明細書及び図面は、限定的な意味ではなく、例示的な意味として考慮されるべきである。実施形態の様々な態様、実施形態、実装、又は機構は、個別に若しくは任意の組み合わせで使用することができる。
【００２６】
更に、説明した実施形態は、非一時的コンピュータ可読媒体上のコンピュータ可読コードとして実施できる。非一時的コンピュータ可読媒体は、一時的信号の伝搬専用に設計された媒体以外のコンピュータシステムにより、後で読み取り可能なデータを記憶可能とする任意のデータ記憶装置である。非一時的コンピュータ可読媒体の例には、フロッピーディスク（登録商標）、フラッシュメモリデバイス、光学ディスク、ＣＤ−ＲＯＭ、磁気光学ディスク、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、磁気又は光学カード、あるいは、電子命令を記憶するのに適したその他の種類の媒体が挙げられる。種々の実施形態では、機械可読記憶媒体上に記憶されたソフトウェア命令は、本発明を実装するハードウェア回路と共に使用可能である。したがって、この技術は、ハードウェア回路とソフトウェア命令からなるいずれか特定の組み合わせ、又は本明細書で述べた１つ以上の動作を実行するための装置に関連してデータ処理装置により実行されるいずれかの特定の命令ソースコードに限定されない。
【図１Ａ】
0005900911.tif 000002
【図１Ｂ】
0005900911.tif 000003
【図２Ａ】
0005900911.tif 000004
【図２Ｂ】
0005900911.tif 000005
【図３Ａ】
0005900911.tif 000006
【図３Ｂ】
0005900911.tif 000007