(57)【要約】  データファイルは、データファイルへのアクセスを制御するデータ保護ポリシーを設定するエンティティに関連付けられた鍵に基づいて暗号化される。データ保護ポリシーは、データファイル内の暗号化されたデータのプレーンテキストデータがどのように使用され得るかについての様々な制約を識別する。データファイルは、データ保護ポリシーを設定するエンティティを識別する対応するメタデータを有し、プレーンテキストデータにアクセスすることを許されたアプリケーションの実行中のインスタンスであるプロセスもまた、エンティティの識別子と関連付けられる。エンティティのこれらの識別子、並びにデータ保護ポリシーは、その保護を保護されたデータとともに他のデバイスに転送すること、又は保護されたデータが他のデバイスに転送されることを阻止することを含む、データ保護ポリシーに従ったデータ保護のために、コンピューティングデバイスのオペレーティングシステムによって使用される。
2017527919.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて実装される方法であって、
前記コンピューティングデバイス上のエンティティに信頼されたアプリケーションを識別するステップであり、前記エンティティに信頼されたアプリケーションはデータにアクセスするように構成される、ステップと、
前記エンティティに信頼されたアプリケーションの実行中のインスタンスである第１のプロセスを前記データへのアクセスを制御するデータ保護ポリシーを設定するエンティティの識別子と関連付けるステップと、
前記コンピューティングデバイスのオペレーティングシステムによって、前記エンティティの前記データ保護ポリシーを実施して、前記エンティティに信頼されたアプリケーションのために前記オペレーティングシステムが前記データ保護ポリシーを実施するステップにより前記コンピューティングデバイスによって提供されるデータセキュリティを向上させるステップとを含み、前記実施が、
前記第１のプロセスによって保存されたデータを前記データ保護ポリシーに従って前記オペレーティングシステムによって自動的に暗号化するステップと、
エンティティに信頼されていないアプリケーションの実行中のインスタンスである第２のプロセスが前記暗号化されたデータにアクセスすることを前記データ保護ポリシーに従って前記オペレーティングシステムによって阻止するステップと
を含む、方法。
【請求項２】
前記実施がさらに、前記第１のプロセスによって読み取られたデータを前記オペレーティングシステムによって解読するステップと、前記第１のプロセスに前記解読されたデータを提供するステップとを含む、請求項１に記載の方法。
【請求項３】
前記エンティティに信頼されたアプリケーションが、啓発されたアプリケーションであり、前記データ保護ポリシーを実施するステップが、前記オペレーティングシステムが前記啓発されたアプリケーションを啓発されていないアプリケーションとして扱うようにという前記第１のプロセスからの要求に応答して前記データ保護ポリシーを実施するステップを含む、請求項１又は２に記載の方法。
【請求項４】
前記第１のプロセスが、複数のスレッドを含み、前記データ保護ポリシーを前記実施するステップが、前記複数のスレッドのうちの１つ又は複数の第１のセットについて前記データ保護ポリシーを実施するが、前記複数のスレッドのうちの１つ又は複数の第２のセットについて実施しないステップを含む、請求項１から３に記載の方法。
【請求項５】
前記オペレーティングシステムが前記エンティティに信頼されたアプリケーションをエンティティに信頼されていないアプリケーションとして扱うようにという前記第１のプロセスからの要求に応答して、前記エンティティに信頼されたアプリケーションを前記データ保護ポリシーの少なくとも一部について信頼されないアプリケーションとして扱うステップをさらに含む、請求項１から４に記載の方法。
【請求項６】
前記第１のプロセスが、複数のスレッドを有し、前記第１のプロセスは、前記オペレーティングシステムが、１つ又は複数のスレッドの第２のセットとは異なる１つ又は複数のスレッドの第１のセットのポリシー実施ビヘイビアーを取得するために信頼されないものとして、前記複数のスレッドのうちの１つ又は複数の前記第１のセットを扱うが、前記複数のスレッドのうちの１つ又は複数の前記第２のセットはそのように扱わないことを要求する、請求項１から５に記載の方法。
【請求項７】
前記実施が、バッファー読取り動作及びバッファー書込み動作の間と、クリップボード読取り動作及びクリップボード書込み動作の間とにネットワークを介して別のデバイスに前記データを通信するときに前記データを保護するステップをさらに含む、請求項１から６に記載の方法。
【請求項８】
前記実施が、メタデータ及び前記暗号化されたデータの両方を含むコンテナーファイルに前記暗号化されたデータを保存するステップであり、前記メタデータは前記エンティティの前記識別子を含む、ステップをさらに含む、請求項１から７に記載の方法。
【請求項９】
前記実施が、前記エンティティに信頼されていないアプリケーションが前記コンテナーファイルで動作することを可能にするが、前記エンティティに信頼されていないアプリケーションの前記暗号化されたデータを解読しないステップをさらに含む、請求項８に記載の方法。
【請求項１０】
別個のアプリケーションコンテナー内の前記エンティティに信頼されたアプリケーション及び前記エンティティに信頼されていないアプリケーションと、異なるユーザーカウントにログインする前記コンピューティングデバイスのユーザーとの論理的又は視覚的分離なしに前記実施を実行するステップをさらに含む、請求項１から９に記載の方法。
【請求項１１】
コンピューティングデバイスであって、
１つ又は複数のプロセッサを備える処理システムと、
前記処理システムによって実行されるときに、
前記コンピューティングデバイス上の第１のアプリケーションを識別するステップであり、前記第１のアプリケーションは暗号化されたデータにアクセスするように構成される、ステップと、
前記データを含むデータファイルを前記データの所有者の識別子と関連付けるステップであり、前記データの前記所有者は前記データへのアクセスを制御するデータ保護ポリシーを設定し、前記データの前記所有者の前記識別子は前記コンピューティングデバイスにログインさせられるユーザーの識別子とは別個である、ステップと、
前記第１のアプリケーションの実行中のインスタンスである第１のプロセスを前記データの前記所有者の前記識別子と関連付けるステップと、
前記所有者の前記データ保護ポリシーを前記コンピューティングデバイスのオペレーティングシステムによって実施して、前記第１のアプリケーションのために前記オペレーティングシステムが前記データ保護ポリシーを実施することにより前記コンピューティングデバイスによって提供されるデータセキュリティを向上させるステップであり、前記実施は、
前記データが前記第１のプロセスに提供されるプレーンテキストデータに解読されることを可能にするステップ、及び
前記データがプレーンテキストデータに解読されること及び第２のアプリケーションの実行中のインスタンスである第２のプロセスに提供されることを阻止するステップであり、前記第２のプロセスは前記データの前記所有者の前記識別子と関連付けられない、ステップを含む、ステップと
を備えるアクションを前記処理システムに実行させる複数の命令がそこに記憶された１つ又は複数のコンピューター可読記憶媒体と
を備える、コンピューティングデバイス。
【請求項１２】
前記実施がさらに、前記オペレーティングシステムによって及び前記所有者の鍵に基づいて、前記第１のプロセスによって書き込まれたデータを暗号化するステップと、前記第２のプロセスによって書き込まれたデータが前記所有者の前記鍵に基づいて暗号化されることを阻止するステップとをさらに含む、請求項１１に記載のコンピューティングデバイス。
【請求項１３】
前記暗号化が、前記第１のプロセスによって書き込まれたデータのうちの少なくとも第１のタイプを前記オペレーティングシステムによって暗号化するが、前記第１のプロセスによって書き込まれたデータのうちの少なくとも第２のタイプを暗号化しないステップをさらに含む、請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記実施がさらに、前記コンピューティングデバイスのデータバッファーに記憶された追加のデータが前記第１のプロセスに提供されるプレーンテキストデータに解読されることを可能にするが、前記追加のデータがプレーンテキストデータに解読され、前記第２のプロセスに提供されることを阻止するステップをさらに含む、請求項１１から１３に記載のコンピューティングデバイス。
【請求項１５】
前記実施がさらに、前記第１のプロセスによって前記コンピューティングデバイスのクリップボードにコピーされたデータを前記オペレーティングシステムによって及び前記所有者の鍵に基づいて保護するが、前記第２のプロセスによってクリップボードにコピーされたデータが前記所有者と関連付けられることを阻止するステップをさらに含む、請求項１１から１４に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポリシーを有するデータ保護の保持に関する。
【背景技術】
【０００２】
[0001]コンピューティング技術が進歩するにつれて、コンピューターは、私たちの生活において益々ありふれたものになった。人々は、ラップトップ、タブレット、スマートフォンなどを含む、複数の異なるコンピューターをしばしば有し、複数のコンピューターにわたってデータを頻繁に共用する。これは、機密作業データなどの一部のデータをそのデータを暗号化することによって保護することが望ましい状況をもたらした。データの暗号化は多数の利点を有するが、問題がないわけではない。そのような問題の１つは、たびたび、アプリケーションは、データに作用するために、暗号化されていないデータへのアクセスを有する必要があるということである。データにアクセスする個々のアプリケーションに応じて、暗号化されていないデータへのアプリケーションのアクセスを可能にすることは、暗号化されていないデータを開示されやすくする可能性がある。ユーザーが秘密にされることを期待するデータが公開される可能性があるので、これは、ユーザーにとってフラストレーションになり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は上記の課題を解決しようとするものである。
【課題を解決するための手段】
【０００４】
[0002]本概要は、発明を実施するための形態において以下でさらに説明される概念の選択を簡略化された形で紹介するために提供される。本概要は、特許請求されている主題の主要な特徴又は本質的な特徴を識別することを意図されておらず、特許請求されている主題の範囲を限定するために使用されることも意図されていない。
【０００５】
[0003]１つ又は複数の態様によれば、コンピューティングデバイスにおいて、コンピューティングデバイス上でエンティティに信頼されたアプリケーション（ｅｎｔｉｔｙ−ｔｒｕｓｔｅｄ  ａｐｐｌｉｃａｔｉｏｎ）が識別され、エンティティに信頼されたアプリケーションは、データにアクセスするように構成されている。エンティティに信頼されたアプリケーションの実行中のインスタンスである第１のプロセスは、データへのアクセスを制御するデータ保護ポリシーを設定するエンティティの識別子と関連付けられる。コンピューティングデバイスのオペレーティングシステムは、エンティティのデータ保護ポリシーを実施し、その実施は、第１のプロセスによって保存されたデータをデータ保護ポリシーに従ってオペレーティングシステムによって自動的に暗号化するステップを含み、エンティティに信頼されていないアプリケーション（ｅｎｔｉｔｙ−ｕｎｔｒｕｓｔｅｄ  ａｐｐｌｉｃａｔｉｏｎ）の実行中のインスタンスである第２のプロセスが暗号化されたデータにアクセスすることをデータ保護ポリシーに従ってオペレーティングシステムによって阻止するステップをさらに含む。
【０００６】
[0004]１つ又は複数の態様によれば、コンピューティングデバイスは、１つ又は複数のプロセッサを備える処理システムと、そこに複数の命令を記憶した１つ又は複数のコンピューター可読記憶媒体とを含む。命令は、処理システムによって実行されるときに、コンピューティングデバイス上の第１のアプリケーションを識別するステップであり、第１のアプリケーションは暗号化されたデータにアクセスするように構成される、ステップと、そのデータを含むデータファイルをそのデータの所有者の識別子と関連付けるステップとを含む、アクションを処理システムに実行させ、そのデータの所有者は、データへのアクセスを制御するデータ保護ポリシーを設定し、そのデータの所有者の識別子は、コンピューティングデバイスにログインさせられるユーザーの識別子とは潜在的に別個である。そのアクションはさらに、第１のアプリケーションの実行中のインスタンスである第１のプロセスをデータの所有者の識別子と関連付けるステップと、所有者のデータ保護ポリシーをコンピューティングデバイスのオペレーティングシステムによって実施するステップとを含む。その実施は、第１のプロセスに提供されるプレーンテキストデータにデータが解読されることを可能にするステップと、データがプレーンテキストデータに解読されること及び第２のアプリケーションの実行中のインスタンスである第２のプロセスに提供されることを阻止するステップとを含み、第２のプロセスはデータの所有者の識別子と関連付けられない。
【０００７】
[0005]発明を実施するための形態は、添付の図面を参照して説明される。図では、参照番号の最も左の数字は、その参照番号が最初に現われた図を識別する。本説明及び図中の異なる例における同じ参照番号の使用は、同様の又は同一の項目を示し得る。図中に表されたエンティティは、１つ又は複数のエンティティを示すことができ、したがって、本論考内のエンティティの単数形又は複数形は、同義的に参照され得る。
【図面の簡単な説明】
【０００８】
【図１】[0006]１つ又は複数の実施形態によるポリシーを有するデータ保護の保持を実装する例示的コンピューティングデバイスを示すブロック図である。
【図２】[0007]１つ又は複数の実施形態によるデータ保護ポリシーのデータとの関連付けの例を示す図である。
【図３】[0008]１つ又は複数の実施形態によるポリシーを有するデータ保護の保持を実装するための例示的プロセスを示す流れ図である。
【図４】[0009]１つ又は複数のシステムを代表する及び／又は本明細書に記載の様々な技法を実装することができる例示的コンピューティングデバイスを含む例示的システムを示す図である。
【発明を実施するための形態】
【０００９】
[0010]ポリシーを有するデータ保護の保持が、本明細書で論じられる。データファイルは、データファイルへのアクセスを制御するデータ保護ポリシーを設定するエンティティ、データの所有者とも称される、に関連付けられた鍵に基づいて暗号化される。データ保護ポリシーは、プレーンテキストデータにアクセスするためにコンピューティングデバイスが有することになる構成又は設定など、データファイル内のデータがどのように使用され得るか、アプリケーションがプレーンテキストデータをどのように使用し得るかなどの様々な制約を識別する。データファイルは、データの所有者を識別する対応するメタデータを有する。データにアクセスすることを許可されたアプリケーションの実行中のインスタンスであるプロセスはまた、データの所有者の識別子と関連付けられる。データの所有者のこれらの識別子、並びにデータ保護ポリシーは、データ保護ポリシーに従ってデータを保護するために、コンピューティングデバイスのオペレーティングシステムによって使用される。オペレーティングシステムは、プロセスがそのエンティティによって信頼されたアプリケーションのインスタンスであり、データ保護ポリシーが満たされ、そのプロセスが関連付けられたエンティティ識別子が、データファイルが関連付けられたエンティティ識別子と同じである場合にのみ、プロセスがデータにアクセスすることを許可する。
【００１０】
[0011]データファイルに対応するメタデータは、データファイルとともに伝わり、データファイルが他のデバイスに転送され、保護が他のデバイスへのデータに続くことを可能にする。オペレーティングシステムはまた、データバッファー、クリップボードなどにおいてデータを暗号化及び解読するために、エンティティと関連付けられた鍵を使用することができ、データが解読され、プロセスに提供された後も、オペレーティングシステムがデータを保護し続けることを可能にする。
【００１１】
[0012]本明細書で論じられるポリシーを有するデータ保護の保持の技法は、有利には、データへのアクセスを制御するデータ保護ポリシーが、そのデータがどこでローミングされ得るかにかかわらずデータとともに伝わることを可能にすることによって、データセキュリティを高める。データファイルは、有利には、安全に暗号化され続け、許可を有するアプリケーションがデータにアクセスすることを可能にするメタデータは、有利には、データファイルでローミングする。コンピューティングデバイスのオペレーティングシステムは、有利には、データへのアクセスを試みるアプリケーションのためにデータの暗号化及び解読を制御し、それによって、データの保護を保つためのアプリケーションの変更の必要性を緩和しながら、データの保護を提供することによって、データのセキュリティを強化する。
【００１２】
[0013]本明細書では、暗号化、解読、及び鍵が参照される。暗号化及び解読は、対称鍵暗号法並びに公開／秘密鍵ペアを用いる公開鍵暗号法を使用して、実行され得る。そのような鍵暗号法は、当業者にはよく知られているが、そのような暗号法の簡潔な概要が、読者を助けるために、本明細書に含まれる。公開鍵暗号法では、エンティティ（ユーザー、ハードウェア又はソフトウェア構成要素、デバイス、ドメインなど）が、それと公開／秘密鍵ペアを関連付ける。公開鍵は、公的に入手可能にされ得るが、エンティティは、秘密鍵を秘密にする。秘密鍵なしでは、公開鍵を使用して暗号化されたデータを解読することは計算的に非常に困難である。したがって、データは、公開鍵を有する任意のエンティティによって暗号化することができ、対応する秘密鍵を有するエンティティによってのみ解読され得る。
【００１３】
[0014]それに対して、対称鍵暗号法では、共有鍵（対称鍵とも呼ばれる）が、それらの２つのエンティティによって知られ、秘密にされる。共有鍵を有する任意のエンティティは、通常は、その共有鍵で暗号化されたデータを解読することができる。共有鍵なしには、共有鍵で暗号化されたデータを解読することは計算的に非常に困難である。したがって、２つのエンティティの両方が、共有鍵を知っている場合、各々は、他方によって解読され得るデータを暗号化することができるが、他のエンティティは、他のエンティティが共有鍵を知らない場合には、そのデータを解読することはできない。同様に、共有鍵を有するエンティティは、同エンティティによって解読され得るデータを暗号化することができるが、他のエンティティは、他のエンティティが共有鍵を知らない場合には、そのデータを解読することはできない。
【００１４】
[0015]図１は、１つ又は複数の実施形態によるポリシーを有するデータ保護の保持を実装する例示的コンピューティングデバイス１００を示すブロック図である。コンピューティングデバイス１００は、デスクトップコンピューター、サーバーコンピューター、ラップトップ又はネットブックコンピューター、タブレット又はファブレットデバイス、ノートパッドコンピューター、移動局、エンターテインメントアプライアンス、表示デバイスに通信可能に連結されたセットトップボックス、テレビジョン又は他の表示デバイス、セルラー又は他のワイヤレス電話、ゲーム機、自動車用コンピューターなど、様々な異なるタイプのデバイスでもよい。したがって、コンピューティングデバイス１００は、かなりのメモリリソース及びプロセッサリソースを有する十分なリソースのデバイス（たとえば、パーソナルコンピューター、ゲーム機）から、限られたメモリリソース及びプロセッサリソースを有する低リソースデバイス（たとえば、従来のセットトップボックス、ハンドヘルドゲーム機）にわたり得る。
【００１５】
[0016]コンピューティングデバイス１００は、データ保護システム１０２、オペレーティングシステム１０４、啓発されたアプリケーション（ｅｎｌｉｇｈｔｅｎｅｄ  ａｐｐｌｉｃａｔｉｏｎ）１０６、及び啓発されていないアプリケーション（ｕｎｅｎｌｉｇｈｔｅｎｅｄ  ａｐｐｌｉｃａｔｉｏｎ）１０８を含む。オペレーティングシステム１０４は、様々な異なるアプリケーション（啓発されたアプリケーション１０６及び啓発されていないアプリケーション１０８を含む）の実行を管理し、様々な構成要素又は他のデバイスへの制御の管理などを行う。データ保護システム１０２は、以下でさらに詳しく論じられるように、エンティティによって設定されたデータ保護ポリシーの実施を円滑にする。啓発されたアプリケーション１０６及び啓発されていないアプリケーション１０８の両方が図示されるが、状況によっては、コンピューティングデバイス１００は、啓発されたアプリケーション１０６又は啓発されていないアプリケーション１０８を含まない。
【００１６】
[0017]様々な異なるエンティティは、コンピューティングデバイス１００のデータのためのデータ保護ポリシーの設定を望むことがある。そのようなエンティティは、たとえば、コンピューティングデバイス１００のユーザーを雇う及びそれの運営に関する様々なデータの機密を保持したい組織（たとえば、会社、大学又は他の学校、政府など）、様々な個人情報の機密の保持を望むコンピューティングデバイス１００のユーザーなどを含み得る。異なるエンティティは、コンピューティングデバイス１００の異なるデータのために異なるデータ保護ポリシーを設定することができ、そうして、任意の所与の時間に、コンピューティングデバイス１００によって記憶又はアクセスされる異なるデータは、異なるデータ保護ポリシーによって保護され得る。
【００１７】
[0018]一般に、データ保護ポリシーは、データがどのように保護されることになるかを識別する。データ保護ポリシーは、データファイル内のプレーンテキストデータ（暗号化されていないデータ）がどのように使用され得るか、どのアプリケーションがプレーンテキストデータにアクセスすることができるか、どのアプリケーションがプレーンテキストデータを使用することができるかを識別する方法、データがアクセスされ得る日付又は時間、コンピューティングデバイスがデータにアクセスするために有することになる構成又は設定などの制約など、その中でデータが保護されることになる様々な異なる方法を識別する様々な設定又はルールを含み得る。データ保護ポリシー内のこれらの設定又はルールは、エンティティによって指定され、何であれ、そのエンティティが望む設定又はルールである。
【００１８】
[0019]データ保護ポリシーは、データ保護ポリシーを設定するエンティティの要望に応じて時間とともに変更し得ることに留意されたい。これらの変更は、エンティティの要望に応じて、データ保護ポリシーをより限定的に（たとえば、データの保護を強化する）又は非限定的に（たとえば、データの保護を低減する）し得る。これらの変更は、行われた後は、データ保護システム１０２及び／又はオペレーティングシステム１０４によって実施される。したがって、データ保護ポリシーへの変更より前に生成されたデータファイルは、変更が行われた後は、変更されたデータ保護ポリシーを使用して保護される。
【００１９】
[0020]データは、特定のエンティティについて、そのエンティティに関連付けられた１つ又は複数の鍵を使用してデータを暗号化することと、そのエンティティに関連付けられた鍵を使用して適切な場合にデータを解読することとによって、保護される。暗号化及び解読は、データ保護システム１０２又はオペレーティングシステム１０４によって実装され得る、コンピューティングデバイス１００の暗号化／解読構成要素を呼び出すことによって、行われ得る。特定のエンティティに関連付けられた鍵は、コンピューティングデバイス１００でローカルに保持され得る、あるいは別法として、別のデバイス又はサービスから取得され得る。別法として、暗号化及び／又は解読は、別のデバイス又はサービス（たとえば、コンピューティングデバイス１００によって信頼される及びネットワークを介してアクセスされるサービス）によって実行され得る。
【００２０】
[0021]暗号化されたデータは、データのためのデータ保護ポリシーを設定するエンティティを識別する対応するメタデータを有するデータファイルとして記憶することができる。この識別子は、以下でさらに詳しく論じられるように、データ保護ポリシーを識別するために使用することができる。メタデータ自体、データ保護ポリシー、又はその組合せは、データファイルを解読及び／又は暗号化するためにエンティティの１つ又は複数の鍵をどこで又はどのように取得するか、データファイル内のデータにアクセスする方法（たとえば、どのデータ暗号化及び／又は解読アルゴリズム又は技法を使用するか）などを指示する。したがって、メタデータは、データファイル内のデータを解読する方法を記述する、又はその方法の記述がどこに置かれているかを識別する。本明細書の論考は、データファイルとしての暗号化されたデータの記憶に言及するが、これらの論考は、バッファー、ブロブ、又はデータの他のコレクションである、暗号化されたデータに類似的に適用される。たとえば、データファイルは、異なるエンティティによって所有される異なるコレクション、暗号化されていないデータのいくつかのコレクションなどを含む、データの複数の異なるコレクションを含み得る。
【００２１】
[0022]メタデータは、様々な異なる方式で、暗号化されたデータファイルに対応し得る、又はそれと関連付けられ得る。１つ又は複数の実施形態では、オペレーティングシステム１０４は、暗号化をサポートするファイルシステム１１０を含む。たとえば、オペレーティングシステムのＷｉｎｄｏｗｓ（登録商標）ファミリーのうちのオペレーティングシステムのいくつかは、暗号化をサポートする暗号化ファイルシステム（ＥＦＳ）を組み込む。そのようなオペレーティングシステムは、メタデータを含む代替データストリーム（たとえば、＄ＥＦＳストリーム）を有し得、それにより、オペレーティングシステムファイルシステムは、暗号化されたデータファイルとそれの対応するメタデータとの間の対応の維持を管理する。
【００２２】
[0023]別法として、暗号化されたデータ及びメタデータの両方を含むコンテナー（たとえば、ファイル）が、生成され得る。コンテナーは、次いで、暗号化されたデータ及びメタデータの両方を含むコンテナーによるデータの保護を維持したまま様々な他のデバイスにローミング（たとえば、コピー、移動など）され得る。コンテナーがローミングされる先のデバイスのオペレーティングシステムは、暗号化をサポートする必要はないが、データは引き続き保護される。１つ又は複数の実施形態では、コンテナーは、他のデータ保護の解決法（たとえば、安全なデータ共有に重点を置いた、情報権利管理）のために使用されるコンテナーと同様（又は全く同じ）でもよく、それによって、安全なデータ記憶、安全なデータローミング及び安全なデータ共有のシームレスな終端間の適用範囲を実現する。
【００２３】
[0024]アプリケーションは、本明細書では、エンティティに信頼された又はエンティティに信頼されていない、及び、啓発された又は啓発されていないと称される。エンティティに信頼されたアプリケーションは、企業の情報技術（ＩＴ）管理部など、データのためのデータ保護ポリシーを設定するエンティティによって信頼されたアプリケーションを指す。エンティティに信頼されていないアプリケーションは、データのためのデータ保護ポリシーを設定するエンティティによって信頼されていないアプリケーションを指す。エンティティに信頼されたアプリケーションは、データ保護ポリシーによって保護されたデータにアクセスすることを許可され得るが、一方で、エンティティに信頼されていないアプリケーションは、データ保護ポリシーによって保護されたデータにアクセスすることを許可されない。
【００２４】
[0025]啓発されたアプリケーションは、データ保護ポリシーに従ってデータを保護及び処理するために必要に応じてコンピューティングデバイス１００の機能を呼び出す、データ保護ポリシーに従ってデータを保護するアプリケーションを指す。啓発されていないアプリケーションは、データ保護ポリシーに従ってデータを保護しない（もしくは、する必要がない）及びオペレーティングシステムにデータ保護ポリシーを実施させるアプリケーションを指す。オペレーティングシステム１０４は、啓発されたアプリケーションのデータを自動的に解読して及び／又は啓発されたアプリケーションからの要求に応答してデータを解読して、及び、啓発されたアプリケーションに依存して必要に応じてデータを暗号化させて、啓発されたアプリケーションがデータ保護ポリシーによって保護されたデータにアクセスすることを可能にすることができる。しかし、啓発されていないアプリケーションについては、オペレーティングシステム１０４は、啓発されていないアプリケーションはそれを行うために依存され得ないことを知っているため、オペレーティングシステム１０４は、暗号化及び解読を実行してデータ保護ポリシーによるデータの保護を維持する。
【００２５】
[0026]アプリケーションが、稼働又は実行されるとき、アプリケーションの実行中のインスタンスであるプロセスが、開始又は作成される。オペレーティングシステム１０４は、プロセスの様々な態様を記述するプロセストークンを保持し、１つ又は複数の実施形態では、プロセスによってアクセスされるデータのためのデータ保護ポリシーを設定するエンティティの識別子をプロセストークン内に含む。データのためのデータ保護ポリシーを設定するエンティティはまた、たとえば、そのエンティティがデータの保護を指図することにより、データの所有者とも称される。データの所有者及びコンピューティングデバイスにログインさせられるユーザーは、２つの異なるエンティティでもよいことに留意されたい。データの所有者は、だれがコンピューティングデバイスにログインさせられるかにかかわらずデータがどのように保護されることになるか、コンピューティングデバイスのログイン資格情報などを指図する。したがって、プロセストークンは、コンピューティングデバイスにログインさせられたユーザーの識別子を含むことができ、ユーザーがその一部であるグループの識別子を含むことができ、加えて、プロセスによってアクセスされるデータのためのデータ保護ポリシーを設定するエンティティの識別子を含む。データ保護ポリシーを設定するエンティティの識別子は、コンピューティングデバイスにログインさせられるユーザーの識別子とは別個である。
【００２６】
[0027]データの所有者及びコンピューティングデバイスにログインさせられるユーザーは２つの異なるエンティティでもよいが、データの所有者とコンピューティングデバイスにログインさせられるユーザーとが同じエンティティである状況が生じ得る。そのような状況では、プロセストークンは、コンピューティングデバイスにログインさせられるユーザーとデータの所有者との両方を識別する単一識別子を含むことができ、あるいは、プロセストークンは、コンピューティングデバイスにログインさせられるユーザーの識別子（又は、他の方法で、コンピューティングデバイスにログインさせられるユーザーをプロセスと関連付ける）と、データの所有者の別個の識別子（又は、他の方法で、データの所有者をプロセスと関連付ける）とを含み得る。
【００２７】
[0028]図２は、１つ又は複数の実施形態によるデータとデータ保護ポリシーの関連付けの例２００を示す。暗号化されたデータファイル２０２は、対応するメタデータ２０４を有する。メタデータ２０４（暗号化されなくてもよい）は、暗号化されたデータファイル２０２の所有者を識別する所有権識別子２０６を含む。所有権識別子２０６は、暗号化されたデータファイル２０２のためのデータ保護ポリシーを設定するエンティティである暗号化されたデータファイル２０２の所有者のデータ保護ポリシー２０８を直接的に又は間接的に識別する。識別子は、名、又は、異なる所有者が互いに区別されることを可能にする他の文字列でもよい。
【００２８】
[0029]２００の例では、プロセス２１０は、関連付けられたプロセストークン２１２を有する。プロセストークン２１２は、プロセス２１０によってアクセスされるデータの所有者を識別する所有権識別子２１４を含む。所有権識別子２１４は、プロセス２１０によってアクセスされるデータの所有者のデータ保護ポリシー２０８を直接的に又は間接的に識別する。プロセス２１０が、新しいデータファイルを作成するとき、新しいデータファイルは、暗号化され、データ保護ポリシー２０８を識別する所有権識別子を有するメタデータ（メタデータ２０４及び所有権識別子２０６と類似の）を含む。これは、啓発されたアプリケーションから開始されるプロセスによって、又は以下でさらに詳しく論じられるプロセスのためにオペレーティングシステムによって、実行され得る。
【００２９】
[0030]データファイルに対応するメタデータは、本明細書において、データ保護ポリシーを識別するために使用され得る識別子を含むものとして論じられる。別法として、データ保護ポリシーの少なくとも一部は、任意でデータ保護ポリシーの整合性制御とともに、メタデータに含まれ得る。データ保護ポリシーは、データ保護ポリシーがどのように識別又は取得されるかにかかわらず（たとえば、データ保護ポリシーがメタデータに含まれるか、又はデータ保護ポリシーの識別子がメタデータに含まれるかにかかわらず）本明細書で論じられるように使用される。
【００３０】
[0031]異なるデータは、異なるエンティティによって所有され得る。複数の異なるエンティティ（企業ＩＴ部門部署など）のどれが所有権識別子２１４において識別されることになるかは、異なる方式で決定され得る。１つ又は複数の実施形態では、プロセスが、開かれようとするデータファイルの選択によって開始される場合、次いで、所有権識別子２１４が、選択されたデータファイルの所有権識別子と同じになるように設定される。たとえば、暗号化されたデータファイル２０２が、開くために選択されようとした場合、そのとき、所有権識別子２１４は、所有権識別子２０６と同じになるように設定されることになる。データファイルは、たとえば、グラフィカルユーザーインターフェース内のデータファイルを表す名又はアイコンをユーザーがダブルクリックすること、ユーザーインターフェース内の名又はアイコンが強調表示される間に「ｅｎｔｅｒ」キーをユーザーが押すこと、データファイルに関連付けられたものとして表示されたメニューの「開く」又は「実行」オプションをユーザーが選択することなどによって、選択されて開くことができる。
【００３１】
[0032]別法として、所有権識別子２１４は、他の方式で設定され得る。たとえば、コンピューティングデバイス１００は、デフォルト所有者（たとえば、データ保護システム１０２又はオペレーティングシステム１０４において構成された）を有することができ、所有権識別子２１４は、デフォルト所有者の識別子になるように設定される。デフォルト所有者は、たとえば、コンピューティングデバイス１００のユーザーが働く組織（たとえば、会社又は企業の識別子）でもよい。もう１つの例として、コンピューティングデバイス１００のユーザーは、プロセスの所有者を指示するために、プロンプト表示を受けることができる。たとえば、プロンプトは、可能な異なる所有者を識別してユーザーに表示することができ、表示された所有者のうちの１人を選択するユーザー入力が、受信される。所有権識別子２１４は、次いで、選択された所有者の識別子になるように設定される。
【００３２】
[0033]さらにもう１つの例として、開始されるプロセスは、別のデバイス上のロケーションを開こうとすることがあり、そのロケーションを開くために、資格情報を提供することができる。この状況で、所有権識別子２１４は、資格情報の少なくとも一部の指示（たとえば、資格情報に含まれるドメイン名又は組織識別子）でもよく、あるいは、別法として、資格情報は、その資格情報に関連付けられた所有者を検索する（たとえば、別のサービス又はマッピングを介して）ために使用され得る。
【００３３】
[0034]１つ又は複数の実施形態では、暗号化されたデータファイル２０２及びメタデータ２０４はともに、それ自体がファイルであるコンテナーを形成する。コンテナーファイルは、暗号化されたデータファイル２０２とは異なるファイルタイプ（たとえば、異なる拡張子を有する）でもよい。コンテナーファイル名は、暗号化されたデータファイル２０２と同じである開始部分を有することができ、それにより、暗号化されたデータファイルに関連するものとしてユーザーによって容易に識別可能である。たとえば、暗号化されたデータファイル２０２の名は、「ｆｏｏ．ｔｘｔ」でもよく、コンテナーデータファイル名は、「ｆｏｏ．ｔｘｔ．ｐｆｉｌｅ」でもよい。別法として、コンテナーファイル名は、暗号化されたデータファイル２０２の名に基づき得るが、コンテナーデータファイル名が、暗号化されたデータファイルに関連するものとしてユーザーによって容易に識別可能でないように、様々なアルゴリズム又は技法を使用して、暗号化されたデータファイル２０２の名から修正又は導出され得る。たとえば、暗号化されたデータファイル２０２の名は、「ｆｏｏ．ｔｘｔ」でもよく、コンテナーデータファイル名は、「ｇｒｓ３９．ｐｆｉｌｅ」でもよい。別法として、コンテナーファイル名は、暗号化されたデータファイル２０２の名と同じでもよく、ファイルシステムは、それら２つの区別をつけることができる。
【００３４】
[0035]単一プロセス２１０が、図２には示されるが、複数のプロセスが所与の時間にコンピューティングデバイス上で実行可能であり、各プロセスのプロセストークンに含まれる所有権識別子は、同じでも異なってもよいことに留意されたい。加えて、プロセスは、所有権識別子を他のプロセスから継承することができる。たとえば、１つのプロセスが、１つ又は複数の子プロセスを作成する場合、それらの追加の子プロセスの各々は、それが作成された元であるプロセスとそれのプロセストークンに同じ所有権識別子を有し得る。
【００３５】
[0036]図２は、メタデータが所有権識別子を含み、プロセストークンが所有権識別子を含む、一例を示す。これらは、所有権識別子の暗号化されたデータファイル及びプロセスとの関連付けの例であることと、他の機構が、所有権識別子を暗号化されたデータファイル又はプロセスと関連付けるために使用され得ることとに留意されたい。オペレーティングシステムが、関連付けの記録を取り、他のデバイスにローミングされる場合に暗号化されたデータファイルで伝わり得る限り、他の任意の記録、リスト、又は、所有権識別子を暗号化されたデータファイルと関連付けるための他の技法が、使用され得る。オペレーティングシステムが、プロセスと、そのプロセスが開始されたアプリケーションがエンティティによって信頼されるかどうかとの関連付けの記録を取る限り、他の任意の記録、リスト、又は、所有権識別子をプロセスと関連付けるための他の技法もまた、使用され得る。
【００３６】
[0037]図１に戻ると、特定のエンティティを識別する所有権識別子を有するプロセスそれ自体は、プロセスがエンティティのデータ保護ポリシーによって保護されたデータにアクセスすることを可能にしない。そうではなくて、追加の基準もまた、エンティティのデータ保護ポリシーによって保護されたデータにアクセスするために、満たされることになる。具体的には、プロセスが開始されたアプリケーションは、エンティティに信頼されたアプリケーションであることになり、以下にさらに詳しく論じられるように、データ保護ポリシーは、データへのアクセスが許可されることを指示することになる。
【００３７】
[0038]データ保護システム１０２は、エンティティに信頼されたアプリケーション決定モジュール１１２及びアクセス決定モジュール１１４を含む。エンティティに信頼されたアプリケーション決定モジュール１１２は、アプリケーションが、信頼されて、エンティティ（アプリケーションの実行中のインスタンスであるプロセスのプロセストークンにおいて所有権識別子によって識別されるエンティティ）によって保護されたデータにアクセスするかどうかを決定する。アプリケーションが、信頼されて、エンティティによって保護されたデータにアクセスする場合、そのとき、アプリケーションから開始されるプロセスは、アクセス決定モジュール１１４の決定次第で、エンティティによって保護されたデータにアクセスすることができ得る。しかし、アプリケーションが、エンティティによって保護されたデータにアクセスするように信頼されない場合、そのとき、アプリケーションから開始されるプロセスは、エンティティによって保護されたデータにアクセスすることができない。
【００３８】
[0039]アプリケーションが、信頼されて、エンティティによって保護されたデータにアクセスするかどうかは、様々な方式で決定され得る。１つ又は複数の実施形態では、エンティティに信頼されたアプリケーション決定モジュール１１２は、エンティティによって信頼されたアプリケーションのリストへのアクセスを保持する又は有する。そのような実施形態では、エンティティに信頼されたアプリケーション決定モジュール１１２は、アプリケーションがリスト上にある場合には、そのアプリケーションは信頼されると決定し、そうでない場合には、そのアプリケーションは信頼されないと決定する。
【００３９】
[0040]別法として、エンティティに信頼されたアプリケーション決定モジュール１１２は、他の方式においてアプリケーションが信頼されるかどうかを決定し得る。たとえば、様々なルール、プロパティ、基準、アルゴリズムなどが、アプリケーションが信頼されるかどうかを決定するために、適用され得る。そのようなルール、基準、アルゴリズムなどは、データ保護ポリシーを設定するエンティティによって、あるいは別法として、別のエンティティ、構成要素、又はモジュールによって、提供され得る。
【００４０】
[0041]追加で、アプリケーション自体が、それが信頼されないことを望む状況が生じ得る。そのような状況では、アプリケーションから開始されるプロセスは、信頼されず、データ保護ポリシーによって保護されたデータにアクセスすることを許可されない。そのような指示は、ユーザー入力など、様々な事象に応答してアプリケーションによって行われ得る。たとえば、ユーザーは、彼又は彼女が作業のために使用するワードプロセッシングアプリケーションを実行したいと思うが、それを個人用文書を編集するために使用することがある。ユーザーは、アプリケーションが、エンティティに信頼されていないモードで実行するように要求することができ、そうして、ユーザーは、エンティティに信頼されていないモードでアプリケーションを実行する間、暗号化された作業データへのアクセスを有さないことになり、エンティティに信頼されていないモードで実行する間にアプリケーションによって保存されたデータは、データ保護ポリシーに基づいて暗号化又は他の方法で保護されないことになる。
【００４１】
[0042]同アプリケーションから開始される２つの異なるプロセスは、１つはエンティティに信頼されたモードで、そしてもう１つはエンティティに信頼されていないモードで、同時に実行し得ることに留意されたい。たとえば、ユーザーが、プロセスがエンティティに信頼されたモードで実行しているときに個人ファイルが開かれることを要求する場合、エンティティに信頼されていないモードで実行する、新しいプロセスが、開始され得る。これは、たとえば、保護されないファイル（たとえば、個人ファイル）を保護されたファイル（たとえば、作業ファイル）にする可能性を阻止する。逆の状況もまた、存在し得る。たとえば、保護されたデータが、ユーザーフローを中断することなしに、データ保護ポリシーを保持しながら、開かれ、使用され得るように、アクセス拒否されたメッセージをエンティティに信頼されていないモードで実行するエンティティに信頼されたアプリケーションに与えるのではなくて、新しいプロセスが、エンティティに信頼されたモードにおいて開始され得る。
【００４２】
[0043]アプリケーションが、信頼される場合、そのとき、アプリケーションから開始されるプロセスは、信頼され、アクセス決定モジュール１１４は、エンティティのデータ保護ポリシーに基づいて、アプリケーションがデータにアクセスすることを許可されるかどうかを決定する。データ保護ポリシーは、その中でデータが保護されることになる様々な異なる方法で識別する様々な設定又はルールを識別する。アクセス決定モジュール１１４は、様々な設定又はルールが満たされることを検証して、データ保護ポリシーを実施する。データ保護ポリシー内の設定又はルールが、満たされる場合、そのとき、アクセス決定モジュール１１４は、データが解読されることを可能にすることによって（たとえば、データを解読するための鍵を取得することによって）、アプリケーションがデータにアクセスすることを可能にする。しかし、データ保護ポリシー内の設定又はルールが、満たされない場合、そのとき、アクセス決定モジュール１１４は、アプリケーションがデータにアクセスすることを可能にしない。
【００４３】
[0044]１つ又は複数の実施形態では、データ保護ポリシーは、アプリケーションが、保護されたデータにアクセスする及び／又は保護されたデータを表示するときにのみなど、条件付きで実施される。追加で、１つ又は複数の実施形態では、プロセスは、プロセスが、エンティティに信頼されたモードで実行していると主張する又はそのように実行しているとテストされ得るときになど、条件付きで信頼される。これは、そのデータが、同じアプリケーションから以前に届いたとしても、プロセスがある特定の時間にある特定の動作（たとえば、保護されたデータの貼り付け）について信頼されない、という状況を可能にする。たとえば、いくらかの保護されたデータが１つの文書からコピーされることと、保護されないデータである文書が同プロセスにおいて開かれ、次いで、プロセスが、エンティティに信頼されていないモードに切り替わることを想定する。ユーザーが、保護されたデータを貼り付けようとする場合、そのプロセスは、保護されたデータを保護されないデータ内に置こうと試みるので、その貼り付けは、失敗することになる。
【００４４】
[0045]コンピューティングデバイス１００は、１つ又は複数の啓発されたアプリケーション１０６と、１つ又は複数の啓発されていないアプリケーション１０８とを含み得る。アプリケーションが、啓発されたアプリケーションであるか啓発されていないアプリケーションであるかは、様々な方式で決定され得る。たとえば、アプリケーションが信頼されるかどうかに関して決定が行われる方式と類似して、様々なリスト、ルール、プロパティ、基準、アルゴリズムなどが、アプリケーションが、啓発されたアプリケーションか啓発されていないアプリケーションかを決定するために使用され得る。もう１つの例として、啓発されたアプリケーションの指示が、データ保護ポリシーに含まれ得、それにより、啓発された異なるアプリケーションを異なる所有者が指定することを可能にする。
【００４５】
[0046]オペレーティングシステム１０４は、啓発されたアプリケーション１０６のためのデータを自動的に解読して及び／又は啓発されたアプリケーションからの要求に応答してデータを解読して、データ保護ポリシーに従ってそのデータを保護するために、啓発されたアプリケーション１０６に依存して、データ保護ポリシーによって保護されたデータに啓発されたアプリケーション１０６がアクセスすることを可能にする。啓発されたアプリケーション１０６は、データ保護システム１０２と通信してデータ保護システム１０２にデータを暗号化又は解読させることができる（又は、別法として、データを暗号化するための鍵を取得することができる）。要求中のアプリケーションが啓発されたアプリケーションであることを知る、アクセス決定モジュール１１４は、データが解読されることを可能にする。要求中のアプリケーションが啓発されたアプリケーションであることを知る、アクセス決定モジュール１１４はまた、所有者ポリシーに基づいて、アプリケーションが所有者の鍵を暗号化することを可能にするかどうかを決定することができる。
【００４６】
[0047]啓発されたアプリケーション１０６は、任意で、啓発されたモード及び啓発されていないモードでの動作を切り替えることができる。この切替えは、たとえば、オペレーティングシステム１０４が、啓発されたアプリケーション１０６を啓発されていないアプリケーションとして扱うことを要求する啓発されたアプリケーション１０６の実行中のインスタンスであるプロセスによって、実行される。啓発されたモードでは、オペレーティングシステム１０４は、啓発されたアプリケーション１０６の実行中のインスタンスであるプロセスがデータ保護ポリシーに従ってデータを保護することを可能にする。啓発されていないモードでは、オペレーティングシステム１０４は、暗号化及び解読を実行し、他の方法で、データ保護ポリシーによるデータの保護を維持するように動作する。オペレーティングシステムは、以下でさらに詳しく論じられるように、啓発されたアプリケーション１０６が啓発されていないアプリケーションであるかのように、啓発されたアプリケーション１０６の実行中のインスタンスであるプロセスのためにこれらの様々な動作を実行する。
【００４７】
[0048]啓発されたモード及び啓発されていないモードについての取り扱いのこの差は、任意で、プロセス内のスレッドの粒度で実施され得る。プロセスは、複数のスレッドとして実行することができ、各スレッドは、啓発されたモード又は啓発されていないモードのいずれかで動作することができる。
【００４８】
[0049]同様に、啓発されたアプリケーション１０６は、任意で、１つ又は複数のデータ保護ポリシーのエンティティに信頼されたモード及びエンティティに信頼されていないモードでの動作を切り替えることができる。この切替えは、たとえば、オペレーティングシステム１０４が啓発されたアプリケーション１０６をエンティティに信頼された又はエンティティに信頼されていない、のいずれかとして取り扱うことを要求する啓発されたアプリケーション１０６の実行中のインスタンスであるプロセスによって、実行される。エンティティに信頼されたモードでは、啓発されたアプリケーション１０６は、データのためのデータ保護ポリシーを設定するエンティティによって信頼されたアプリケーションとして扱われる。エンティティに信頼されていないモードでは、啓発されたアプリケーション１０６は、データのためのデータ保護ポリシーを設定するエンティティによって信頼されない、信頼されないアプリケーションとして扱われる。これは、たとえば、プロセスがいくつかの動作（たとえば、データ暗号化決定）に関して自らの決定を行うことを可能にするが、他の動作（たとえば、保護されたデータの貼り付け）に関しては可能にしない。
【００４９】
[0050]エンティティに信頼されたモード及びエンティティに信頼されていないモードについての取り扱いのこの差は、任意で、プロセス内のスレッドの粒度で実施され得る。プロセスは、複数のスレッドとして実行することができ、各スレッドは、エンティティに信頼されたモード又はエンティティに信頼されていないモードのいずれかで動作し得る。
【００５０】
[0051]エンティティに信頼されたモード及びエンティティに信頼されていないモード、並びに啓発されたモード及び啓発されていないモードにおけるスレッドの異なる取り扱いを有することで、様々な使用シナリオをサポートする。たとえば、エンティティに信頼されたアプリケーションの実行中のインスタンスであるプロセスは、エンティティに信頼されたモードからエンティティに信頼されていないモードにダウングレードされたプロセス（あるいは、プロセスの１つ又は複数のスレッド）を有して、ダウングレードされたプロセス又はスレッドのためのより多数の厳重な実施ビヘイビアーを得ることができる。もう１つの例として、啓発されていないアプリケーションの実行中のインスタンスであるプロセスは、啓発されたモードから啓発されていないモードにダウングレードされたプロセス（あるいは、プロセスの１つ又は複数のスレッド）を有して、ダウングレードされたプロセス又はスレッドのためのより多数の厳重な実施ビヘイビアーを得る（たとえば、オペレーティングシステムによる自動暗号化を得る）。
【００５１】
[0052]コンピューティングデバイス１００はまた、１つ又は複数の啓発されていないアプリケーション１０８を含み得る。啓発されていないアプリケーション１０８について、オペレーティングシステム１０４は、啓発されていないアプリケーション１０８が暗号化及び解読を行ために信頼され得ないことを知っているので、オペレーティングシステム１０４は、暗号化及び解読を実行し、そうでなければ、データ保護ポリシーによるデータの保護を維持するように動作する。オペレーティングシステム１０４は、データ保護システム１０２と通信して、データを暗号化又は解読するための鍵を取得する、あるいは、データ保護システム１０２にデータを暗号化又は解読させることができる。
【００５２】
[0053]オペレーティングシステム１０４は、データ保護ポリシーに従ってデータを保護するために様々な異なるアクションを実行する。この保護は、ファイルアクセス中にデータを保護するステップ（ファイル読取り及び書込み）、ネットワークを介して通信されるときにデータを保護するステップ、データバッファーアクセス中にデータを保護するステップ、クリップボードアクセス中にデータを保護するステップ、他のデータ共有アクセス（たとえば、画面キャプチャ、データ印刷）中にデータを保護するステップ、その組合せなどを含み得る。
【００５３】
[0054]ファイルアクセス中にデータを保護するステップは、オペレーティングシステム１０４がファイル読取り動作及びファイル書込み動作中にデータを保護するステップを含む。啓発されていないアプリケーション１０８の実行中のインスタンスであるプロセスによって要求されるファイル書込み動作に応答して、オペレーティングシステム１０４は、実行中のプロセスに関連する所有権識別子によって識別されるエンティティとして書かれたデータの所有者を識別する。オペレーティングシステム１０４は、データの所有者のデータ保護ポリシーを取得し、データ保護ポリシー内のその他の条件が満たされることを検証する。データ保護ポリシーが満たされる場合、次いで、オペレーティングシステム１０４は、データの所有者の暗号化鍵に基づいてデータを暗号化し（又は、データ保護システム１０２によってデータを暗号化させ）、プロセスによって要求されたロケーションにデータファイルを記憶する。
【００５４】
[0055]啓発されていないアプリケーション１０８の実行中のインスタンスであるプロセスによって要求されるファイル読取り動作に応答して、オペレーティングシステム１０４は、データファイルに関連する所有権識別子によって識別されるエンティティとして読み取られる（たとえば、そのデータファイルに対応するメタデータから）データの所有者を識別する。オペレーティングシステム１０４はまた、実行中のプロセスに関連する所有権識別子を取得し、データファイル及びプロセスに関連する所有権識別子を比較する。２つの所有権識別子が、異なる所有者を指示する（たとえば、２つの所有権識別子が異なる）場合、次いで、オペレーティングシステム１０４は、データを解読しない。２つの所有権識別子が、同じ所有者を指示する（たとえば、２つの所有権識別子が同じである）場合、次いで、オペレーティングシステム１０４は、データの所有者のデータ保護ポリシーを取得し、データ保護ポリシー内のその他の条件が満たされることを検証する。データ保護ポリシーが満たされる場合、次いで、オペレーティングシステム１０４は、データの所有者の解読鍵に基づいてデータを解読し（又は、データ保護システム１０２によってデータを解読させ）、プレーンテキストデータを啓発されていないアプリケーション１０８に返す。
【００５５】
[0056]ネットワークを介して通信されるときにデータを保護するステップは、別のデバイスにデータを通信するときにオペレーティングシステム１０４がデータを保護するステップを含む。データは、ファイル記憶のために、他のデータ出力（たとえば、印刷）のためになど、他のデバイスにネットワークを介して通信され得る。たとえば、啓発されたアプリケーション１０６又は啓発されていないアプリケーション１０８は、ネットワーク１２２を介する１つ又は複数の他のデバイス１２０（１）、…、１２０（ｍ）からのファイルの読取り、そこへのファイルの書込み、又は他の方法でのそこへのもしくはそこからのデータの転送を試みることができる。各デバイス１２０は、様々な異なるタイプのコンピューティングデバイス（たとえば、コンピューティングデバイス１００を参照して前述されたような）、専用ストレージデバイス（たとえば、ネットワークハードドライブ）、専用入力又は出力デバイス（たとえば、スキャナー、プリンター）などのいずれかでもよい。ネットワーク１２２は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、公衆電話網、イントラネット、他の公衆及び／又は固有ネットワーク、その組合せなどを含む、様々な異なるネットワークでもよい。
【００５６】
[0057]オペレーティングシステム１０４は、データ保護ポリシーに基づいて、他のどのデバイス１２０に又はどのデバイス１２０からデータが転送され得るかを制限することができる。データ保護ポリシーは、データがそこに又はそこから転送され得る１つ又は複数のデバイス１２０のネットワークアドレスを指定することができる。ネットワークアドレスは、データがそこに又はそこから転送され得るネットワークアドレスのリスト、データがそこに又はそこから転送され得ないネットワークアドレスのリスト、どのネットワークアドレスに又はネットワークアドレスから転送され得るかを決定するために適用されるルール又は基準（たとえば、ある特定の資格情報が、ネットワークアドレスによって識別されるエンドポイントにアクセスするために必要とされるかどうか）など、異なる方式で指定され得る。
【００５７】
[0058]データ転送の要求が、啓発されていないアプリケーション１０８の実行中のインスタンスであるプロセスからオペレーティングシステム１０４によって受信される。その要求は、ターゲットデバイスのネットワークアドレスによって指定されたターゲットデバイス（たとえば、デバイス１２０）への又はターゲットデバイスからのデータ転送の要求である。データ転送の要求に応答して、オペレーティングシステム１０４は、実行中のプロセスに関連する所有権識別子によって識別されるエンティティとして転送されるデータの所有者を識別する。オペレーティングシステム１０４は、データの所有者のデータ保護ポリシーを取得し、データ保護ポリシー内のその他の条件が満たされることを検証する。ターゲットデバイスが、データがそこに又はそこから転送され得るネットワークアドレスを有することを含めて、データ保護ポリシーが満たされる場合、次いで、オペレーティングシステム１０４は、ターゲットデバイスにデータを転送する。この転送は、データの暗号化又は解読なしに実行され得ることに留意されたい。たとえば、プレーンテキストデータは、そのプレーンテキストデータのハードコピーを印刷するためにプリンターターゲットデバイスに、そのプレーンテキストデータを表示するために表示ターゲットデバイスに、ネットワークスキャナーなどから転送され得る。
【００５８】
[0059]１つ又は複数の実施形態では、オペレーティングシステム１０４は、データの所有者の仮想プライベートネットワーク（ＶＰＮ）を活用する。たとえば、コンピューティングデバイス１００のユーザーは、作業のためにデバイス１００を使用することができ、ユーザーが働く組織は、コンピューティングデバイス１００が会社ネットワーク上の他のデバイス１２０と通信することを可能にする会社ＶＰＮを実装することができる。ＶＰＮは、どのネットワークアドレスが会社ネットワークに含まれるか、そして、それにより、どのネットワークアドレスに又はネットワークアドレスからデータが転送され得るかを指定する、様々なファイアウォールルールを含み得る。ＶＰＮによって許可されないアドレスへの又はアドレスからのデータの転送の試みは、ＶＰＮが通信を遮断する結果をもたらす。したがって、プレーンテキストデータは、会社ネットワーク上の他のデバイス１２０にのみ通信され得る。
【００５９】
[0060]別法として、データは、転送される前に暗号化され得る。たとえば、特定の（たとえば、非会社ネットワーク）ネットワークアドレスへのアクセスを遮断する代わりに、オペレーティングシステム１０４は、データの転送を可能にするが、それがそのようなネットワークアドレスに転送されるときにローミングされ得るコンテナーファイルにおいてデータをカプセル化させることができる。
【００６０】
[0061]データバッファーアクセス中にデータを保護するステップは、オペレーティングシステム１０４がバッファー読取り動作及びバッファー書込み動作中にデータを保護するステップを含む。啓発されていないアプリケーション１０８の実行中のインスタンスであるプロセスによって、書込みバッファー動作が要求されることに応答して、オペレーティングシステム１０４（たとえば、オペレーティングシステム１０４のデータバッファーアクセスモジュール１２４）は、実行中のプロセスに関連付けられた所有権識別子によって識別されるエンティティとして書かれたデータの所有者を識別する。オペレーティングシステム１０４は、データの所有者のデータ保護ポリシーを取得し、データ保護ポリシー内のその他の条件が満たされることを検証する。データ保護ポリシーが満たされる場合、次いで、オペレーティングシステム１０４は、データの所有者の暗号化鍵に基づいてデータを暗号化し（又は、データ保護システム１０２によってデータを暗号化させ）、プロセスによって要求されるデータバッファーにデータを記憶する。
【００６１】
[0062]啓発されていないアプリケーション１０８の実行中のインスタンスであるプロセスによって、読取りバッファー動作が要求されることに応答して、オペレーティングシステム１０４（たとえば、データバッファーアクセスモジュール１２４）は、実行中のプロセスに関連する所有権識別子によって識別されるエンティティとして読み取られるデータの所有者を識別する。オペレーティングシステム１０４は、データの所有者のデータ保護ポリシーを取得し、データ保護ポリシー内のその他の条件が満たされることを検証する。データ保護ポリシーが満たされる場合、次いで、必要に応じて、オペレーティングシステム１０４は、データの所有者の解読鍵に基づいてデータバッファーからのデータを解読し（又は、データ保護システム１０２によってデータバッファーからのデータを解読させ）、プレーンテキストデータを啓発されていないアプリケーション１０８に返す。
【００６２】
[0063]クリップボードアクセス中にデータを保護するステップは、オペレーティングシステム１０４がクリップボード読取り動作及びクリップボード書込み動作中にデータを保護するステップを含む。アプリケーション（啓発されたアプリケーション１０８又は啓発されていないアプリケーション１０８）の実行中のインスタンスであるプロセスによって、書込みクリップボード動作が要求されることに応答して、オペレーティングシステム１０４は、実行中のプロセスに関連する所有権識別子によって識別されるエンティティとして書かれるデータの所有者を識別する。オペレーティングシステム１０４は、データの所有者のデータ保護ポリシーを取得し、データ保護ポリシー内のその他の条件が満たされることを検証する。データ保護ポリシーが満たされる場合、次いで、オペレーティングシステム１０４は、データの所有者の暗号化鍵に基づいてデータを暗号化し（又は、データ保護システム１０２によってデータを暗号化させ）、クリップボードにデータを記憶する。別法として、データの暗号化ではなくて、オペレーティングシステムは、クリップボードデータを実行中のプロセスに関連する所有権識別子と関連付け（識別子でのクリップボードデータのマーキング又はタグ付けとも呼ばれる）、オペレーティングシステムアクセス制御を使用してエンティティに信頼されていないアプリケーションにクリップボードデータが提供されることを阻止することによって、データを保護する。しかし、データ保護ポリシーが満たされない場合、次いで、オペレーティングシステム１０４は、データを暗号化せず、あるいは他の方法でデータを所有権識別子と関連付けさせない。
【００６３】
[0064]アプリケーション（啓発されたアプリケーション１０６又は啓発されていないアプリケーション１０８）の実行中のインスタンスであるプロセスによって、読取りクリップボード動作が要求されることに応答して、オペレーティングシステム１０４は、実行中のプロセスに関連する所有権識別子によって識別されるエンティティとして読み取られるデータの所有者を識別する。オペレーティングシステム１０４は、データの所有者のデータ保護ポリシーを取得し、データ保護ポリシー内のその他の条件が満たされることを検証する。データ保護ポリシーが満たされる場合、次いで、オペレーティングシステム１０４は、データの所有者の解読鍵に基づいてクリップボードからのデータを解読し（又は、データ保護システム１０２によってクリップボードからのデータを解読させ）、プレーンテキストデータをアプリケーションに返す。
【００６４】
[0065]オペレーティングシステム１０４は、データバッファーアクセス中のデータの保護又はネットワークを介して通信されるときのデータの保護と類似的に他のロケーションに転送される（たとえば、書き込まれる）及び他のロケーションから転送される（たとえば、読み取られる）データを同様に保護することができる。たとえば、画面キャプチャデータバッファーに書き込まれるデータの所有者は、現在のウインドウ又は画面キャプチャ要求が受信されたときのアクティブアプリケーションのユーザーインターフェースを生成するプロセスと関連付けられた所有権識別子によって識別されるエンティティでもよく、データは、データ保護ポリシーが満たされた場合、所有者の鍵に基づいて暗号化及び解読され得る。もう１つの例として、コンピューティングデバイス１００のローカルプリンターで印刷されることになるデータの所有者は、印刷要求を送信するプロセスと関連付けられた所有権識別子によって識別されるエンティティでもよく、データは、ローカルプリンターがデータが転送され得る先のデバイスとして識別される（たとえば、アドレス、名、又は他の識別子によって）ことを含めて、データ保護ポリシーが満たされる場合、印刷することができる。
【００６５】
[0066]データ保護ポリシーが、前述で論じられた。データ保護ポリシーに含まれるルール又は基準のうちの１つはユーザー入力でもよいことに留意されたい。一部のデータへのアクセスは、ユーザーが正しいユーザー入力を提供する場合に許可され得、そして、ユーザーが正しいユーザー入力を提供しない場合には、許可され得ない。たとえば、パスワード、個人識別番号（ＰＩＮ）など、様々なユーザー資格情報が、ユーザー入力として提供され得る。
【００６６】
[0067]データ保護ポリシーに含まれるルール又は基準のうちの１つは、コンピューティングデバイス１００の物理ロケーション（たとえば、ジオロケーション）でもよいことにも留意されたい。一部のデータへのアクセスは、コンピューティングデバイス１００が特定の１つ又は複数のロケーション内（たとえば、１つ又は複数の特定の地理的地域又はジオフェンス内）にある場合には許可され得るが、コンピューティングデバイス１００が特定の１つ又は複数のロケーションにない（たとえば、１つ又は複数の地理的地域又はジオフェンスの外側にある）場合には拒否され得る。
【００６７】
[0068]データ保護ポリシーに含まれるルール又は基準のうちの１つは、データが保護されることになるファイルのタイプでもよいことにも留意されたい。これらのタイプのファイルは、ファイル名拡張子、そのファイルのメタデータに含まれるデータ、そのファイルがどこで見つかったかの指示（たとえば、ローカルデバイスで、リモートデバイスで、電子メールを介して受信された）、そのファイルがどこに由来するかの指示（たとえば、どのデバイスか、又はどの所有者か）、そのファイルがどこに記憶されるかの指示（たとえば、ローカルデバイスに、リモートデバイスに）など、異なる方式で指定され得る。たとえば、ある特定のタイプのファイル（たとえば、描画ファイル又はスプレッドシートファイル）に記憶されたデータが保護され得、一方で、他のタイプのファイル（たとえば、テキストファイル又はワードプロセッシングファイル）に記憶されたデータは保護されないことが可能である。この保護は、どのアプリケーションがそのファイルを作成したかにかかわらず、適用される。したがって、オペレーティングシステムは、有利には、一部のタイプのデータ（たとえば、所有者によって機密又は秘密だと考えられていないデータ）を暗号化、解読、又は他の方法で保護しないことによって、処理能力、電池残量などを節約することができる。
【００６８】
[0069]同様に、ファイルにアクセスするためのアプリケーションの許可（たとえば、前述のようにアクセス決定モジュール１１４によって実施されるものとしての）は、すべてのファイルについて同じでもよく、又は別法として、異なるタイプのファイルについて異なり得ることに留意されたい。たとえば、特定のアプリケーションが、いくつかのタイプのファイル（たとえば、テキストファイル又はワードプロセッシングファイル）にアクセスすることを許可されるが、他のタイプのファイル（たとえば、描画ファイル又はスプレッドシートファイル）にアクセスすることは許可されないことが可能である。したがって、データ保護システムは、有利には、ある特定のタイプのデータについてアプリケーションの使用を可能にするが、他のタイプのデータについては可能にしないことによって、コンピューティングデバイスの有用性及びセキュリティを向上させる。たとえば、同期化エンジンが、テキストファイル又はワードプロセッシングファイルにアクセスすることを許可され、描画ファイル又はスプレッドシートファイルにアクセスすることを許可されないことが可能である。本例では、同期化エンジンは、いくつかのデータファイルを様々な他のデバイスと同期させることができるが、他のタイプのファイル（描画ファイル又はスプレッドシートファイル）のセキュリティは、これらの他のタイプのファイルが他のデバイスと同期することを阻止することによって、向上させられる。
【００６９】
[0070]１つ又は複数の実施形態では、ファイル読取り動作に応答して、オペレーティングシステムは、要求されたファイルをそのファイルを要求するプロセスに提供することにも留意されたい。プロセスが、要求されたファイル内のプレーンテキストデータにアクセスすることを許可される場合、次いで、データが解読され、プレーンテキストデータがプロセスに提供される。しかし、プロセスが、要求されたファイル内のプレーンテキストデータにアクセスすることを許可されない場合、次いで、暗号化されたデータが、代わりにプロセスに提供され得る。これは、有利には、いくつかのアプリケーションが、たとえそれらがファイル内のプレーンテキストデータにアクセスすることを許可されなくても、ファイルで動作することを可能にすることによって、コンピューティングデバイスの有用性を向上させる。たとえば、ファイルは、前述のように暗号化されたデータファイル及び対応するメタデータを有するコンテナーとして記憶され得る。同期化プロセスは、プレーンテキストデータへのアクセスを有することなしに、これらのコンテナーを読み取り、別のデバイスにそれらを書き込むことができる。一方でプレーンテキストデータにアクセスすることを許可された、他のデバイスからコンテナーにアクセスするアプリケーションは、プレーンテキストデータにアクセスすることができる。
【００７０】
[0071]データ保護ポリシー自体は、動作に基づいて異なってアプリケーションを扱う異なるポリシー群を任意で識別することができることに留意されたい。たとえば、ポリシー群は、ある特定のアプリケーションは、オペレーティングシステムによってあまり厳重でない遮断（たとえば、動作がユーザーオーバーライド／承認で可能にされる）が課される貼り付け動作の適格なターゲット（エンティティに信頼されたアプリケーション）であり、他のアプリケーションは、オペレーティングシステムが保護されたデータの受信を阻止する完全に信頼されないアプリケーションであると指示し得る。
【００７１】
[0072]図３は、１つ又は複数の実施形態によるポリシーを有するデータ保護の保持を実装するための例示的プロセス３００を説明する流れ図である。プロセス３００は、図１のコンピューティングデバイス１００などのデバイスによって実行され、ソフトウェア、ファームウェア、ハードウェア、又はその組合せにおいて実装され得る。プロセス３００は、１組のアクションとして示され、様々なアクションの動作を実行するための図示された順番に限定されない。プロセス３００は、ポリシーを有するデータ保護の保持を実装するための例示的プロセスであり、ポリシーを有するデータ保護の保持の実装のさらなる論考が、異なる図面を参照して、本明細書に含まれる。
【００７２】
[0073]プロセス３００では、コンピューティングデバイス上のエンティティに信頼されたアプリケーションが、識別される（アクション３０２）。アプリケーションがエンティティに信頼されたアプリケーションであるかどうかは、前述のようにリスト、他のルール又は基準の使用など、異なる方式で決定され得る。この信頼状況は、前述のようにアプリケーションの実行中のインスタンスであるプロセスの有効期間中に任意で変更することができる（エンティティに信頼されたアプリケーションとエンティティに信頼されていないアプリケーションとの間で）。信頼状況は、任意で、啓発されたアプリケーションについてのみ変更することができ、あるいは別法として、啓発されたアプリケーション又は啓発されていないアプリケーションについて変更することができる。
【００７３】
[0074]データが、データへのアクセスを制御するデータ保護ポリシーを設定するエンティティの識別子と関連付けられる（アクション３０４）。データは、そのデータを含むデータファイルに関連付けられたメタデータにエンティティの所有権識別子を含めること（データのマーキング又はタグ付けとも呼ばれる）によってなど、異なる方式で、又は別法として前述のような他の方式で、識別子と関連付けられ得る。エンティティはまた、前述のように、データの所有者とも呼ばれる。
【００７４】
[0075]エンティティに信頼されたアプリケーションの実行中のインスタンスであるプロセスは、データへのアクセスを制御するデータ保護ポリシーを設定するエンティティの識別子と関連付けられる（アクション３０６）。そのプロセスは、プロセスのプロセストークンにエンティティの所有権識別子を含めること（データのマーキング又はタグ付けとも呼ばれる）によってなどの異なる方式で、又は別法として前述のような他の方式で、識別子と関連付けられ得る。所有権識別子とプロセスのこの関連付けは、任意で、プロセスが実行している間に変更され得る（たとえば、データ保護ポリシーの変更に応答して）ことに、留意されたい。この関連付けが変更される方式は、その関連付けが維持される方式に基づいて異なり得る（たとえば、実行中のプロセスのプロセストークン内の所有権識別子が、変更され得る）。アクション３０４及び３０６内のエンティティの識別子は、同じエンティティを識別し、前述のように、同じ識別子でもよい。
【００７５】
[0076]エンティティのデータ保護ポリシーが、コンピューティングデバイスのオペレーティングシステムによって実施される（アクション３０８）。データ保護ポリシーのこの実施は、前述のように、データ保護ポリシーに基づいてデータを保護する。この実施は、プロセスによって保存されたデータをオペレーティングシステムが自動的に暗号化するステップを含むことができ、エンティティに信頼されていないアプリケーションの実行中のインスタンスであるプロセスが暗号化されたデータにアクセスすることをオペレーティングシステムが阻止するステップをさらに含み得る。この実施はまた、前述のように、ネットワークを介して通信されるときにデータを保護するステップ、データバッファーアクセス中にデータを保護するステップ、クリップボードアクセス中にデータを保護するステップ、他のデータ共有アクセス（たとえば、画面キャプチャ、データ印刷）中にデータを保護するステップなどを含み得る。
【００７６】
[0077]ある特定の状況では、オペレーティングシステムは、プロセスによって保存されたデータを自動的に暗号化せず、又は、エンティティに信頼されていないアプリケーションの実行中のインスタンスであるプロセスが暗号化されたデータにアクセスすることを阻止しないことに留意されたい。たとえば、そのような状況は、これがデータ保護ポリシーの外にあり得ることと、アクションが監査されることになることとをユーザーが認めた場合に、エンティティに信頼されていないアプリケーションがデータを受信することを可能にすることを含み得る。もう１つの例として、そのような状況は、ユーザー介入のないアクションを可能にするが、侵害が告発され得るようにアクションの監査を含み得る。もう１つの例として、そのような状況は、アプリケーションが実際にどのように使用されるかを試すとき、及び、エンティティによって信頼されたアプリケーションのリストが、エンティティがより多くの厳重な実施を容易に有効にするような方法で定義され得るように、どのアプリケーションが信頼されるデータを一般に処理するかを決定するためにデータを集めるときなど、ユーザー介入のないアクションを可能にすることを含み得る。
【００７７】
[0078]したがって、本明細書で論じられる技法は、有利には、分離保証を提供するために視覚的又は論理的セッション境界を表示又は公開する必要なしに、データの所有者によって求められるデータ保護ポリシーを使用して異なるデータが保護されることを可能にすることが、理解されよう。データは、データ保護ポリシーを使用して、アプリケーション又はユーザーログインアカウントの可視の分離なしに、保護される（エンティティに信頼されたアプリケーションは、信頼されるために、他のアプリケーションからの特別な隔離において実行する必要はなく、したがって、信頼されるアプリケーションは、ユーザーの視点で孤立して見えない）。ユーザーは、異なるアカウントにログインする必要はなく、アプリケーションは、別個のアプリケーション実行コンテナー（たとえば、サンドボックス）において実行される必要はないなどとなる。データ保護ポリシーは、アプリケーションが実行されるときに、アプリケーションに適用され、オペレーティングシステムは、有利には、そのような異なるアカウント又はアプリケーションコンテナーを必要とせずにデータ保護を提供する。
【００７８】
[0079]しかし、本明細書で論じられる技法は、任意のそのような視覚的又は論理的セッション境界、異なるアカウント又はアプリケーションコンテナーなどと連動して実行されてもよく、それらを排除しない。たとえば、本明細書で論じられる技法を使用し、アプリケーションは、別個のアプリケーション実行コンテナーにおいて実行される必要はないが、コンピューティングデバイスが、別個のアプリケーション実行コンテナー内のアプリケーションを実行する場合、本明細書で論じられる技法は、そのような各アプリケーションに適用され得る（アプリケーションがどのアプリケーション実行コンテナー内で実行されるかにかかわらず）。もう１つの例として、本明細書で論じられる技法を使用して、ユーザーは、別個アカウントにログインする必要はないが、ユーザーが、コンピューティングデバイス上に別個アカウントを有する場合、本明細書で論じられる技法は、各アカウントで実行するアプリケーションに適用され得る（どのアカウントにユーザーがログインしたかにかかわらず）。
【００７９】
[0080]さらに、本明細書で論じられる技法は、有利には、アプリケーションが、他のデータを保護しない一方で、一部のデータを保護することを可能にする。データの所有者にとって重要なデータは、有利には、保護され（暗号化されることを含む）、一方、同時に、計算リソース及び電力が、データの所有者にとって重要性の低いデータを保護するために費やされる必要はない。加えて、保護されるデータは、別のデバイスに転送されるときにそのデータとともに伝わるそのような保護を有し、又は、保護されたデータは、他のデバイスに伝わることを阻止される。
【００８０】
[0081]本明細書の論考では、様々な異なる実施形態が説明される。本明細書で説明される各実施形態は、そのままで、あるいは本明細書に記載の１つ又は複数の他の実施形態に関連して、使用され得ることを理解されたい。
【００８１】
[0082]特定の機能が、特定のモジュールを参照して本明細書で論じられるが、本明細書で論じられる個々のモジュールの機能は、複数のモジュールに分けることができ、及び／又は、複数のモジュールの少なくともいくつかの機能は、単一モジュールに結合され得ることに留意されたい。加えて、アクションを実行するものとして本明細書で論じられる特定のモジュールは、アクションをそれ自体で実行するその特定のモジュール、あるいは別法として、アクションを実行する（又はその特定のモジュールと連動してアクションを実行する）別の構成要素又はモジュールを呼び出す又は他の方法でアクセスするその特定のモジュールを含む。したがって、アクションを実行する特定のモジュールは、アクションをそれ自体で実行するその特定のモジュール、及び／又は、アクションを実行するその特定のモジュールによって呼び出される又は他の方法でアクセスされる別のモジュールを含む。
【００８２】
[0083]図４は、１つ又は複数のシステムを代表する例示的コンピューティングデバイス４０２及び／又は本明細書に記載の様々な技法を実装することができるデバイスを含む例示的システムを４００に概して示す。コンピューティングデバイス４０２は、たとえば、サービスプロバイダーのサーバー、クライアントに関連付けられたデバイス（たとえば、クライアントデバイス）、オンチップシステム、及び／又は、他の任意の適切なコンピューティングデバイスもしくはコンピューティングシステムでもよい。
【００８３】
[0084]図示されるような例示的コンピューティングデバイス４０２は、互いに通信可能なように連結された、処理システム４０４、１つ又は複数のコンピューター可読媒体４０６、及び１つ又は複数のＩ／Ｏインターフェース４０８を含む。図示されないが、コンピューティングデバイス４０２はさらに、システムバス、あるいは、様々な構成要素を互いに連結させる他のデータ及びコマンド転送システムを含み得る。システムバスは、メモリバスもしくはメモリコントローラー、周辺バス、ユニバーサルシリアルバス、及び／又は、様々なバスアーキテクチャのいずれかを使用するプロセッサもしくはローカルバスなど、異なるバス構造物のいずれか１つ又は任意の組合せを含み得る。制御及びデータ回線など、様々な他の例もまた、意図されている。
【００８４】
[0085]処理システム４０４は、ハードウェアを使用して１つ又は複数の動作を実行するための機能を表す。したがって、処理システム４０４は、プロセッサ、機能ブロックなどとして構成され得るハードウェア要素４１０を含むものとして示される。これは、特定用途向け集積回路又は１つもしくは複数の半導体を使用して形成された他の論理デバイスとしてのハードウェアにおける実装を含み得る。ハードウェア要素４１０は、それらが形成された材料又はそこで使用される処理機構によって限定されない。たとえば、プロセッサは、半導体及び／又はトランジスタ（たとえば、電子集積回路（ＩＣ））で構成され得る。そのような関連で、プロセッサ実行可能命令は、電子的実行可能命令でもよい。
【００８５】
[0086]コンピューター可読媒体４０６は、メモリ／ストレージ４１２を含むものとして示される。メモリ／ストレージ４１２は、１つ又は複数のコンピューター可読媒体に関連するメモリ／ストレージ能力を表す。メモリ／ストレージ４１２は、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）など）及び／又は不揮発性媒体（読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスクなど）を含み得る。メモリ／ストレージ４１２は、固定媒体（たとえば、ＲＡＭ、ＲＯＭ、固定ハードドライブなど）並びに取外し可能媒体（たとえば、フラッシュメモリ、取外し可能ハードドライブ、光ディスクなど）を含み得る。コンピューター可読媒体４０６は、以下にさらに説明されるように様々な他の方法で構成され得る。
【００８６】
[0087]入力／出力インターフェース４０８は、ユーザーがコマンド及び情報をコンピューティングデバイス４０２に入力することを可能にする、及び情報が様々な入力／出力デバイスを使用してユーザー及び／又は他の構成要素あるいはデバイスに提示されることを可能にする機能を表す。入力デバイスの例は、キーボード、カーソル制御デバイス（たとえば、マウス）、マイクロフォン（たとえば、音声入力のための）、スキャナー、タッチ機能（たとえば、物理接触を検出するように構成された容量性又は他のセンサー）、カメラ（たとえば、赤外振動数などの可視の又は非可視の波長を使用して、ジェスチャとしてのタッチを含まない動きを検出することができる）などを含む。出力デバイスの例は、表示デバイス（たとえば、モニター又はプロジェクター）、スピーカー、プリンター、ネットワークカード、触覚応答デバイスなどを含む。したがって、コンピューティングデバイス４０２は、ユーザー対話をサポートするために、以下でさらに説明されるような様々な方法で構成され得る。
【００８７】
[0088]コンピューティングデバイス４０２はまた、本明細書で論じられるデータ保護ポリシー保持の技法を実装する、データ保護システム４１４及びオペレーティングシステム４１６を含む。データ保護システム４１４は、たとえば、図１のデータ保護システム１０２でもよく、オペレーティングシステム４１６は、たとえば、図１のオペレーティングシステム１０４でもよい。
【００８８】
[0089]様々な技法は、ソフトウェア、ハードウェア要素、又はプログラムモジュールとの一般的関連において本明細書で説明され得る。一般に、そのようなモジュールは、特定のタスクを実行する又は特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、要素、構成要素、データ構造物などを含む。本明細書では、「モジュール」、「機能」、及び「構成要素」という用語は、概して、ソフトウェア、ファームウェア、ハードウェア、又はその組合せを表す。本明細書に記載の技法の特徴は、プラットフォームに依存せず、すなわち、本技法は、様々なプロセッサを有する様々なコンピューティングプラットフォームで実装され得る。
【００８９】
[0090]記載されるモジュール及び技法の実装形態は、何らかの形のコンピューター可読媒体に記憶することができ、又は、それを横切って送信され得る。コンピューター可読媒体は、コンピューティングデバイス４０２によってアクセスされ得る様々な媒体を含み得る。例として、そして限定ではなく、コンピューター可読媒体は、「コンピューター可読記憶媒体」及び「コンピューター可読信号媒体」を含み得る。
【００９０】
[0091]「コンピューター可読記憶媒体」は、単なる信号送信、搬送波、又は信号それ自体と対照的に、情報の永続的記憶及び／又は有形である記憶を可能にする媒体及び／又はデバイスを指す。したがって、コンピューター可読記憶媒体は、非信号担持媒体（ｎｏｎ−ｓｉｇｎａｌ  ｂｅａｒｉｎｇ  ｍｅｄｉａ）を指す。コンピューター可読記憶媒体は、コンピューター可読命令、データ構造物、プログラムモジュール、論理要素／回路、又は他のデータなどの情報の記憶に適した方法又は技術において実装される揮発性及び不揮発性、取外し可能及び取外し不能媒体及び／又はストレージデバイスなどのハードウェアを含む。コンピューター可読記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、又は他のストレージデバイス、有形媒体、あるいは、所望の情報を記憶するのに適した及びコンピューターによってアクセスされ得る製品を含み得るが、これらに限定されない。
【００９１】
[0092]「コンピューター可読信号媒体」は、ネットワークを介するなどして、コンピューティングデバイス４０２のハードウェアに命令を送信するように構成された信号担持媒体を指す。信号媒体は、通常は、搬送波、データ信号、又は他の移送機構など、変調データ信号においてコンピューター可読命令、データ構造物、プログラムモジュール、又は他のデータを実施し得る。信号媒体はまた、任意の情報配信媒体を含む。「変調データ信号」という用語は、その特性集合うちの１つ又は複数を有するあるいは信号内の情報をエンコードするなどの方式で変更された信号を意味する。例として、そして限定ではなく、通信媒体は、ワイヤードネットワーク又は直接ワイヤード接続などのワイヤード媒体と、アコースティック、ＲＦ、赤外線、及び他のワイヤレス媒体などのワイヤレス媒体とを含む。
【００９２】
[0093]前述のように、ハードウェア要素４１０及びコンピューター可読媒体４０６は、本明細書に記載の技法の少なくともいくつかの態様を実装するためにいくつかの実施形態において使用され得るハードウェアの形において実装された命令、モジュール、プログラマブルデバイス論理及び／又は固定デバイス論理を代表する。ハードウェア要素は、集積回路又はオンチップシステム、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複合プログラマブル論理デバイス（ＣＰＬＤ）、及び、シリコン又は他のハードウェアデバイスにおける他の実装形態の構成要素を含み得る。これに関連して、ハードウェア要素は、ハードウェア要素によって実施される命令、モジュール、及び／又は論理によって定義されたプログラムタスクを実行する処理デバイス、並びに、実行するための命令を記憶するために使用されるハードウェアデバイス、たとえば、前述のコンピューター可読記憶媒体、として動作し得る。
【００９３】
[0094]前述の組合せもまた、本明細書に記載の様々な技法及びモジュールを実装するために使用され得る。それに応じて、ソフトウェア、ハードウェア、又はプログラムモジュール及び他のプログラムモジュールが、何らかの形のコンピューター可読記憶媒体で及び／又は１つ又は複数のハードウェア要素４１０によって実施される１つ又は複数の命令及び／又は論理として実装され得る。コンピューティングデバイス４０２は、ソフトウェア及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実装するように構成され得る。それに応じて、ソフトウェアとしてコンピューティングデバイス４０２によって実行可能なモジュールとしてのモジュールの実装は、ハードウェアにおいて、たとえば、処理システムのコンピューター可読記憶媒体及び／又はハードウェア要素４１０の使用を介して、少なくとも部分的に達成され得る。命令及び／又は機能は、本明細書に記載の技法、モジュール、及び例を実装するために、１つ又は複数の製品（たとえば、１つ又は複数のコンピューティングデバイス４０２及び／又は処理システム４０４）によって実行可能／動作可能であり得る。
【００９４】
[0095]図４においてさらに示されるように、例示的システム４００は、パーソナルコンピューター（ＰＣ）、テレビジョンデバイス、及び／又はモバイルデバイスでアプリケーションを実行するときにシームレスなユーザー体験のためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを使用する、ビデオゲームをする、ビデオを見る間などにあるデバイスから次のデバイスに移行するときに共通のユーザー体験のためにすべての３つの環境において実質的に同様に実行する。
【００９５】
[0096]例示的システム４００において、複数のデバイスが、中央コンピューティングデバイスを介して相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルでもよく、又は、複数のデバイスから遠隔に置かれ得る。１つ又は複数の実施形態では、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを介して複数のデバイスに接続された１つ又は複数のサーバーコンピューターのクラウドでもよい。
【００９６】
[0097]１つ又は複数の実施形態では、この相互接続アーキテクチャは、機能が、複数のデバイスのユーザーに共通の及びシームレスな体験を提供するために複数のデバイスにわたって配信されることを可能にする。複数のデバイスの各々は、異なる物理要件及び能力を有することができ、そして、中央コンピューティングデバイスは、プラットフォームを使用して、そのデバイスに適合させられたのみならずすべてのデバイスにさらに共通したデバイスへの体験の配信を可能にする。１つ又は複数の実施形態では、ターゲットデバイスのクラスが作成され、体験は、一般クラスのデバイスに適合させられる。デバイスのクラスは、デバイスの物理特徴、使用のタイプ、又は他の共通する特徴によって定義され得る。
【００９７】
[0098]様々な実装形態では、コンピューティングデバイス４０２は、コンピューター４１８、モバイル４２０、及びテレビジョン４２２使用のためなどの様々な異なる構成を想定し得る。これらの構成の各々は、一般に異なる構成概念及び能力を有し得るデバイスを含み、それにより、コンピューティングデバイス４０２は、異なるデバイスクラスのうちの１つ又は複数に従って、構成され得る。たとえば、コンピューティングデバイス４０２は、パーソナルコンピューター、デスクトップコンピューター、マルチスクリーンコンピューター、ラップトップコンピューター、ネットブックなどを含むデバイスのコンピューター４１８クラスとして実装され得る。
【００９８】
[0099]コンピューティングデバイス４０２はまた、携帯電話、携帯音楽プレーヤー、携帯ゲームデバイス、タブレットコンピューター、マルチスクリーンコンピューターなどのモバイルデバイスを含むデバイスのモバイル４２０クラスとして実装され得る。コンピューティングデバイス４０２はまた、カジュアルな視聴環境において一般に大画面を有する又はそれに接続されるデバイスを含むデバイスのテレビジョン４２２クラスとして実装され得る。これらのデバイスは、テレビジョン、セットトップボックス、ゲーム機などを含む。
【００９９】
[00100]本明細書に記載の技法は、コンピューティングデバイス４０２のこれらの様々な構成によってサポートすることができ、本明細書に記載の技法の特定の例に限定されない。本機能はまた、以下に説明されるようにプラットフォーム４２６を介する「クラウド」４２４を介してなど、分散システムの使用を介してすべて又は部分的に実装され得る。
【０１００】
[00101]クラウド４２４は、リソース４２８のプラットフォーム４２６を含む及び／又はそれを代表する。プラットフォーム４２６は、クラウド４２４のハードウェア（たとえば、サーバー）及びソフトウェアリソースの基礎的機能を抽象化する。リソース４２８は、コンピューター処理がコンピューティングデバイス４０２から遠隔のサーバーで実行される間に使用され得るアプリケーション及び／又はデータを含み得る。リソース４２８はまた、インターネットを介して及び／又はセルラーもしくはＷｉ−Ｆｉネットワークなどの加入者ネットワークを介して提供されるサービスを含み得る。
【０１０１】
[00102]プラットフォーム４２６は、コンピューティングデバイス４０２を他のコンピューティングデバイスと接続するためのリソース及び機能を抽象化し得る。プラットフォーム４２６はまた、プラットフォーム４２６を介して実装されるリソース４２８の遭遇する需要に対応する規模を提供するためのリソースのスケーリングを抽象化する役割を果たし得る。それに応じて、相互接続されたデバイスの実施形態において、本明細書に記載の機能の実装は、システム４００全体に分散され得る。たとえば、その機能は、コンピューティングデバイス４０２で、並びにクラウド４２４の機能を抽象化するプラットフォーム４２６を介して、部分的に実装され得る。
【０１０２】
[00103]本明細書で論じられる技法のさらなる態様は、以下の実施形態のうちの１つ又は複数に関連する。
[00104]コンピューティングデバイスにおいて実装される方法は、以下を備える：コンピューティングデバイス上のエンティティに信頼されたアプリケーションを識別するステップであり、エンティティに信頼されたアプリケーションはデータにアクセスするように構成される、ステップと、エンティティに信頼されたアプリケーションの実行中のインスタンスである第１のプロセスをデータへのアクセスを制御するデータ保護ポリシーを設定するエンティティの識別子と関連付けるステップと、コンピューティングデバイスのオペレーティングシステムによって、エンティティのデータ保護ポリシーを実施するステップ、その実施は、以下を含む：第１のプロセスによって保存されたデータをデータ保護ポリシーに従ってオペレーティングシステムによって自動的に暗号化するステップ、及び、エンティティに信頼されていないアプリケーションの実行中のインスタンスである第２のプロセスが暗号化されたデータにアクセスすることをデータ保護ポリシーに従ってオペレーティングシステムによって阻止するステップ。
【０１０３】
[00105]別法として又は前述の方法に加えて、以下のうちの１つ又は任意の組合せ：その実施がさらに、第１のプロセスによって読み取られたデータをオペレーティングシステムによって解読するステップ及び第１のプロセスに解読されたデータを提供するステップを含むことと、エンティティに信頼されたアプリケーションが、啓発されたアプリケーションであり、データ保護ポリシーを実施するステップが、啓発されたアプリケーションを啓発されていないアプリケーションとして扱うようにというオペレーティングシステムのための第１のプロセスからの要求に応答してデータ保護ポリシーを実施するステップを含むことと、第１のプロセスが複数のスレッドを含み、データ保護ポリシーを実施するステップが、それらの複数のスレッドのうちの１つ又は複数の第１のセットについてデータ保護ポリシーを実施するが、それらの複数のスレッドのうちの１つ又は複数の第２のセットについては実施しないステップを含むことと、エンティティに信頼されたアプリケーションをエンティティに信頼されていないアプリケーションとして扱うようにというオペレーティングシステムのための第１のプロセスからの要求に応答してデータ保護ポリシーの少なくとも一部についてエンティティに信頼されたアプリケーションを信頼されないアプリケーションとして扱うステップをさらに備えることと、第１のプロセスが複数のスレッドを有し、第１のプロセスが、オペレーティングシステムが、１つ又は複数のスレッドの第２のセットとは異なる１つ又は複数のスレッドの第１のセットのポリシー実施ビヘイビアーを取得するのに信頼されないものとして、それらの複数のスレッドのうちの１つ又は複数の第１のセットを扱うが、それらの複数のスレッドのうちの１つ又は複数の第２のセットは扱わないことを要求することと、その実施がさらに、ネットワークを介して別のデバイスにデータを通信するときにデータを保護するステップを含むことと、その実施がさらに、バッファー読取り動作及びバッファー書込み動作中にデータを保護するステップをさらに含むことと、その実施がさらに、クリップボード読取り動作及びクリップボード書込み動作中にデータを保護するステップをさらに含むことと、その実施がさらに、メタデータ及び暗号化されたデータの両方を含むコンテナーファイルに暗号化されたデータを保存するステップをさらに含み、メタデータがエンティティの識別子を含むことと、その実施が、エンティティに信頼されていないアプリケーションがコンテナーファイルで動作することを可能にするが、エンティティに信頼されていないアプリケーションの暗号化されたデータを解読しないステップをさらに含むことと、自動的に暗号化するステップが、エンティティに信頼されたアプリケーションによって書き込まれる第１のデータを暗号化するが、エンティティに信頼されたアプリケーションによって書き込まれる第２のデータを暗号化しないステップをさらに含むことと、以下の論理的又は視覚的分離がない場合にその実施を実行するステップをさらに備えること：別個のアプリケーションコンテナー内のエンティティに信頼されたアプリケーション及びエンティティに信頼されていないアプリケーション、並び��、異なるユーザーカウントにログインするコンピューティングデバイスのユーザー。
【０１０４】
[00106]コンピューティングデバイスは、以下を備える：１つ又は複数のプロセッサを備える処理システムと、処理システムによって実行されるときに、以下を備えるアクションを処理システムに実行させる複数の命令がそこに記憶された１つ又は複数のコンピューター可読記憶媒体：コンピューティングデバイス上の第１のアプリケーションを識別するステップであり、第１のアプリケーションは暗号化されたデータにアクセスするように構成される、ステップと、そのデータを含むデータファイルをそのデータの所有者の識別子と関連付けるステップであり、データの所有者はデータへのアクセスを制御するデータ保護ポリシーを設定し、データの所有者の識別子はコンピューティングデバイスにログインさせられるユーザーの識別子とは別個である、ステップと、第１のアプリケーションの実行中のインスタンスである第１のプロセスをデータの所有者の識別子と関連付けるステップと、所有者のデータ保護ポリシーをコンピューティングデバイスのオペレーティングシステムによって実施するステップであり、その実施は以下を含む、ステップ：データが第１のプロセスに提供されるプレーンテキストデータに解読されることを可能にするステップと、データがプレーンテキストデータに解読されること及び第２のアプリケーションの実行中のインスタンスである第２のプロセスに提供されることを阻止するステップであり、第２のプロセスはデータの所有者の識別子と関連付けられない、ステップ。
【０１０５】
[00107]別法として又は前述のコンピューティングデバイスに加えて、以下のいずれか１つ又は任意の組合せ：その実施が、さらに以下を含むこと：オペレーティングシステムによって及び所有者の鍵に基づいて、第１のプロセスによって書き込まれたデータを暗号化するステップと、第２のプロセスによって書き込まれたデータが所有者の鍵に基づいて暗号化されることを阻止するステップと、暗号化するステップが、第１のプロセスによって書き込まれたデータの少なくとも第１のタイプをオペレーティングシステムによって暗号化するが、第１のプロセスによって書き込まれたデータの少なくとも第２のタイプを暗号化しないステップをさらに含むことと、第１のアプリケーションが、啓発されたアプリケーションであり、データ保護ポリシーを実施するステップが、第１のアプリケーションを啓発されていないアプリケーションとして扱うというオペレーティングシステムのための第１のプロセスからの要求に応答してデータ保護ポリシーを実施するステップをさらに含むことと、その実施が、コンピューティングデバイスのデータバッファーに記憶された追加のデータが第１のプロセスに提供されるプレーンテキストデータに解読されることを可能にするが、追加のデータがプレーンテキストデータに解読されること及び第２のプロセスに提供されることを阻止するステップをさらに含むことと、その実施がさらに、第１のプロセスによってコンピューティングデバイスのクリップボードにコピーされたデータをオペレーティングシステムによって及び所有者の鍵に基づいて保護するが、第２のプロセスによってクリップボードにコピーされたデータが所有者と関連付けられることを阻止するステップを含むこと。
【０１０６】
[00108]コンピューティングデバイスにおいて実装される方法は、以下を備える：コンピューティングデバイス上でアプリケーションを識別するステップと、データファイルのメタデータ内に第１のデータの所有者の識別子を含めることによって、第１のデータを含むデータファイルを第１のデータの所有者の識別子と関連付けるステップであり、第１のデータの所有者は第１のデータへのアクセスを制御するデータ保護ポリシーを設定し、第１のデータの所有者の識別子はコンピューティングデバイスにログインさせられるユーザーの識別子とは別個である、ステップと、プロセスのプロセストークン内に第２のデータの所有者の識別子を含めることによって、アプリケーションの実行中のインスタンスである第１のプロセスを第２のデータの所有者の識別子と関連付けるステップと、第１のデータの所有者のデータ保護ポリシーをコンピューティングデバイスのオペレーティングシステムによって実施するステップであり、その実施は以下を含む、ステップ：オペレーティングシステムによってデータファイル内の第１のデータを自動的に解読してプレーンテキストを生成するステップと、アプリケーションがエンティティに信頼されたアプリケーションであること、データ保護ポリシーが満たされること、及び、データファイルのメタデータに含まれる第１のデータの所有者の識別子がプロセストークンに含まれる第２のプロセスの所有者と同じ所有者を識別することに応答して、プレーンテキストをアプリケーションに提供するステップ。
【０１０７】
[00109]本主題は、構造的特徴及び／又は方法論的アクションに特有の言語で説明されるが、添付の特許背級の範囲において定義される本主題は、前述の特定の特徴又はアクションに必ずしも限定されないことを理解されたい。そうではなくて、前述の特定の特徴及びアクションは、特許請求の範囲を実装する例示的形として開示される。
【図１】
2017527919.tif 000003
【図２】
2017527919.tif 000004
【図３】
2017527919.tif 000005
【図４】
2017527919.tif 000006
【国際調査報告】
2017527919.tif 000007
2017527919.tif 000008
2017527919.tif 000009
2017527919.tif 000010
2017527919.tif 000011