(57)【特許請求の範囲】
【請求項１】
方法を実行するためのコンピューター実行可能命令を格納したコンピューター可読記録媒体であって、前記方法は、
第１の装置が、暗号化データを含むドキュメントを、前記ドキュメントを格納したデータストアを有する第２の装置から受信するステップであって、前記ドキュメントは、前記ドキュメントと関連するデータであって前記ドキュメントとは分離された異なるデータであるセキュリティデータを識別するための識別子を含み、前記セキュリティデータの少なくとも一部は暗号化される、ステップと、
前記第１の装置が、前記セキュリティデータの少なくとも一部を解読して、前記ドキュメントに関して承認された動作であって前記ドキュメントを読み込むことなく前記ドキュメントを複写する動作の表示を得るステップと、
前記第１の装置が、前記セキュリティデータから前記動作と関連するキーを得るステップと、
前記第１の装置が、前記キーを使用して前記動作を実行するステップと
を備えることを特徴とするコンピューター可読記録媒体。
【請求項２】
前記暗号化データを含む前記ドキュメントを受信するステップは、少なくとも中間装置を経由して前記ドキュメントを受信するステップをさらに備えることを特徴とする請求項１に記載のコンピューター可読記録媒体。
【請求項３】
前記方法は、
前記第１の装置が、前記セキュリティデータに対する要求を送信するステップと、
前記第１の装置が、前記要求を前記識別子に提供するステップと
をさらに備えることを特徴とする請求項１に記載のコンピューター可読記録媒体。
【請求項４】
前記動作は、前記ドキュメントへのアクセスを許可されているエンティティを変更することを含むことを特徴とする請求項１に記載のコンピューター可読記録媒体。
【請求項５】
コンピューターによって少なくとも一部が実装される方法であって、前記方法は、
第１の装置が、暗号化データを含むドキュメントに対する要求を第２の装置から受信するステップであって、前記ドキュメントは、前記ドキュメントと関連するデータであって前記ドキュメントとは分離された異なるデータであるセキュリティデータを識別するための識別子を含み、前記セキュリティデータの少なくとも一部は暗号化され、暗号化されている前記セキュリティデータの少なくとも一部は前記ドキュメントへのアクセスに関して承認された動作であって前記ドキュメントを読み込むことなく前記ドキュメントを複写する動作を表示し、前記セキュリティデータは前記動作に関連するキーを含む、ステップと、
前記第１の装置が、前記要求に応答して、前記承認された動作を実行し、前記第２の装置に前記ドキュメントを送信するステップと
を備えることを特徴とする方法。
【請求項６】
前記ドキュメントを送信するステップは、中間装置を経由して前記ドキュメントを前記第２の装置に送信するステップを備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記第１の装置が、前記ドキュメントを格納した記憶装置に前記要求を転送するステップと、
前記第１の装置が、前記ドキュメントを送信する前に、前記記憶装置から前記ドキュメントを受信するステップと
をさらに備えることを特徴とする請求項６に記載の方法。
【請求項８】
前記第１の装置が、前記ドキュメントが格納されている記憶装置にアクセスするステップと、
前記第１の装置が、前記記憶装置から前記ドキュメントを受信するステップと
をさらに備えることを特徴とする請求項５に記載の方法。
【請求項９】
コンピューター環境において、
ドキュメントへのアクセスを要求することができる要求コンポーネントであって、前記ドキュメントは前記ドキュメントに関連するデータであって前記ドキュメントとは分離された異なるデータであるセキュリティデータを識別する識別子を含み、前記セキュリティデータの少なくとも一部は暗号化され、暗号化されている前記セキュリティデータの少なくとも一部は前記ドキュメントへのアクセスに関して承認された動作であって前記ドキュメントを読み込むことなく前記ドキュメントを複写する動作を表示し、前記セキュリティデータは前記動作に関連するキーを含む、要求コンポーネントと、
前記ドキュメントの位置を判定することができるドキュメントロケーターと、
前記ドキュメント上の前記動作を行うことができる暗号化コンポーネントと
を備えることを特徴とする装置。
【請求項１０】
前記セキュリティデータを得ることができるセキュリティデータコンポーネントをさらに備えることを特徴とする請求項９に記載の装置。
【請求項１１】
前記ドキュメントの前記位置は、前記要求コンポーネントが動作する装置の外部にあるデータストアを備えることを特徴とする請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化された制御によるドキュメントへのアクセスに関する。
【背景技術】
【０００２】
ユーザーデータへのアクセスの許可は、典型的には、プログラムで行われている。すなわち、オペレーティングシステム又はウェブサービスは、ユーザーのアクセス権に基づいてデータへのアクセスを許可している。この形式は、特に、多くの他のユーザー又はプロセスがアクセスできるサーバー上にユーザーのデータが格納されているウェブホスト型環境において、あまり安全でない。サーバーのセキュリティが侵害されると、ユーザーの許可又は知識がなくても、ユーザーのデータにアクセスすることができる。ユーザーのデータの処理にかかわるエンティティが増えるにつれて、データの安全性は弱まる。
【発明の概要】
【課題を解決するための手段】
【０００３】
簡潔に言えば、本明細書に説明される主題の態様は、ドキュメントへのアクセスを暗号化された制御で行うことに関する。態様において、ドキュメントは、暗号化されて不正アクセスから保護されている。ドキュメントにアクセスしようとするセキュリティプリンシパル(security principal)が最初にドキュメントを得る。ドキュメントは、ドキュメントと関連するセキュリティデータを識別する識別子を含む。セキュリティデータは、ドキュメントにアクセスできるセキュリティプリンシパルの承認を含む暗号化部分を含む。適したキーを有するセキュリティプリンシパルは、セキュリティデータ内のキーの承認を解読して、ドキュメントにアクセスすることができる１又は複数の他のキーを得ることができる。これらの他のキーは、ドキュメントに関してセキュリティプリンシパルが有するアクセス権に対応する。
【０００４】
本発明の概要は、以下の発明の詳細な説明においてさらに説明されるいくつかの主題の態様を簡潔に特定するために与えられる。本発明の概要は、特許請求の範囲の主題の重要な特徴又は不可欠な特徴を特定することを意図せず、特許請求の範囲の主題の範囲を限定するために用いられることを意図しない。
【０００５】
「本明細書に説明される主題」の語句は、文脈が明確に他のものを示さない限り発明の詳細な説明において説明される主題を表す。「態様」の語句は、「少なくとも１つの態様」として理解されたい。発明の詳細な説明において説明される主題の態様を特定することは、特許請求の範囲の主題の重要な特徴又は不可欠な特徴を特定することを意図しない。
【０００６】
上記の態様及び本明細書に説明される主題の他の態様は、一例として示され、同種の参照数字が添付図面の同種の部分を指定する添付図に限定されない。
【図面の簡単な説明】
【０００７】
【図１】本明細書に説明される主題の態様を組み込むことができる例示的な汎用コンピューター環境を表すブロック図である。
【図２】本明細書に説明される主題の態様を動作することができる例示的な環境を一般的に表すブロック図である。
【図３】本明細書に説明される主題の態様に従って、ドキュメントへのアクセスの提供に関与することができる例示的なエンティティのセットを一般的に表すブロック図である。
【図４】本明細書に説明される主題の態様とともに使用することができるいくつかの例示的なデータ構造を示す図である。
【図５】本明細書に説明される主題の態様に従って、ドキュメントにアクセスする際に起こる例示的な動作を一般的に表すフロー図である。
【図６】本明細書に説明される主題の態様に従って動作するように組み込まれた例示的な装置を表すブロック図である。
【発明を実施するための形態】
【０００８】
（例示的な動作環境）
図１に、本明細書に説明される主題の態様を実装することができる適当なコンピューターシステム環境１００の一例を示す。コンピューターシステム環境１００は、適したコンピューター環境のほんの一例であり、本明細書に説明される主題の態様の使用又は機能性の範囲に関して制限を提案することを意図しない。コンピューター環境１００は、例示的な動作環境１００に示されたコンポーネントの任意の１つ又は組み合わせに関して依存性又は要求を有するものとして解釈されるべきではない。
【０００９】
本明細書に説明される主題の態様は、多くの他の汎用又は専用のコンピューターシステムの環境もしくは構成とともに使用することができる。本明細書に説明される主題の態様を用いて使用するのに適した公知のコンピューターシステム、環境、及び／又は構成の例は、パーソナルコンピューター、サーバーコンピューター、ハンドヘルド又はラップトップ型デバイス、マルチプロセッサーシステム、マイクロコンピューターベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピューター、メインフレームコンピューター、上記の任意のシステム又は装置を含む分散コンピューター環境などを含むが、これらに限定されない。
【００１０】
本明細書に説明される主題の態様は、コンピューターによって実行されるプログラムモジュールなどのコンピューター実行可能命令の一般的なコンテキストにおいて説明することができる。一般的に、プログラムモジュールは、特定のタスクを行う又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本明細書に説明される主題の態様は、通信ネットワーク経由でつながれているリモート処理装置がタスクを行う分散コンピューター環境においても実行することができる。分散コンピューター環境において、プログラムモジュールは、メモリ記憶装置を含むローカルコンピューター記憶媒体とリモートコンピューター記憶媒体との両方に配置することができる。
【００１１】
図１を参照して、本明細書に説明される主題の態様を実装する例示的なシステムは、コンピューター１１０の形式での汎用コンピューター装置を含む。コンピューター１１０のコンポーネントは、処理装置１２０、システムメモリ１３０、及びシステムメモリを含む様々なシステムコンポーネントを処理装置１２０に接続するシステムバス１２１を含むことができるが、これらに限定されない。システムバス１２１は、メモリバス又はメモリコントローラ、周辺バス、及び任意の様々なバスアーキテクチャを使用するローカルバスを含むいくつかの種類のバス構造とすることができる。一例として、このようなアーキテクチャは、ＩＳＡ(Industry Standard Architecture)バス、ＭＣＡ(Micro Channel Architecture)バス、ＥＩＳＡ(Enhanced ISA)バス、ＶＥＳＡ(Video Electronics Standards Association)ローカルバス、及びメザニン(Mezzanine)バスとしても知られるＰＣＩ(Peripheral Component Interconnect)バスを含むが、これらに限定されない。
【００１２】
コンピューター１１０は、典型的には、様々なコンピューター可読媒体を含む。コンピューター可読媒体は、コンピューター１１０がアクセスできる任意の利用可能な媒体とすることができ、揮発性及び不揮発性媒体と、取り外し可能及び取り外し不能媒体との両方を含む。一例として、コンピューター可読媒体は、コンピューター記憶媒体と通信媒体を含むことができるが、これらに限定されない。コンピューター記憶媒体は、コンピューター可読命令、データ構造、プログラムモジュール、又は他のデータなどの情報を記憶するための任意の方法もしくは技術によって実装される揮発性及び不揮発性媒体と、取り外し可能及び取り外し不能媒体との両方を含む。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ(digital versatile disk)又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、もしくは求められる情報を格納するために使用でき、コンピューター１１０がアクセスできる任意の他の媒体を含むが、これらに限定されない。コンピューター媒体は、典型的には、コンピューター可読命令、データ構造、プログラムモジュール、もしくは搬送波などの変調データ信号又は他の転送機構による他のデータを実施して、任意の情報配信媒体を含む。「変調データ信号」の語句は、１又は複数の信号の特性集合を有する信号、又は信号内の情報を符号化するなどの方法によって変更される信号を意味する。一例として、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体と、音響、ＲＦ、赤外線などの無線媒体と、他の無線媒体とを含むが、これらに限定されない。上記の任意の組み合わせもコンピューター可読媒体の範囲内に含むべきである。
【００１３】
システムメモリ１３０は、ＲＯＭ(read only memory)１３１及びＲＡＭ(random access memory)１３２などの揮発性及び／又は不揮発性メモリ形式でのコンピューター記憶媒体を含む。起動時など、コンピューター１１０内の要素間の情報を転送するのに役立つ基本ルーチンを含むＢＩＯＳ(basic input/output system)１３３は、典型的には、ＲＯＭ１３１に格納される。ＲＡＭ１３２は、典型的には、処理装置１２０がすぐにアクセスできる及び／又は現時点で動作を行うデータ及び／又はプログラムモジュールを含む。一例として、図１にオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７を示すが、これらに限定されない。
【００１４】
コンピューター１１０は、他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピューター記憶媒体も含むことができる。一例として、図１に、取り外し不能で不揮発性の磁気媒体に対して読み込み又は書き込みを行うハードディスクドライブ１４１、取り外し可能で不揮発性の磁気ディスク１５２に対して読み込み又は書き込みを行う磁気ティスクドライブ１５１、及びＣＤ ＲＯＭ又は他の光媒体などの取り外し可能で不揮発性の光ディスク１５６に対して読み込み又は書き込みを行う光ディスクドライブ１５５を示す。例示的な動作環境において使用できる他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピューター記憶媒体は、磁気テープカセット、フラッシュメモリカード、ＤＶＤ、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどを含むが、これらに限定されない。ハードディスクドライブ１４１は、典型的には、インターフェース１４０などの取り外し不能なメモリインターフェース経由でシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光ディスクドライブ１５５は、典型的には、インターフェース１５０などの取り外し可能なメモリインターフェース経由でシステムバス１２１に接続される。
【００１５】
上記及び図１に説明されるドライブとそれらに関連するコンピューター記憶媒体は、コンピューター１１０に対するコンピューター可読命令、データ構造、プログラムモジュール、及び他のデータの格納を行う。図１において、例えば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を格納するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じものか、又は異なるものかのいずれかにできることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７は、本明細書に異なる番号を与えて説明しているが、それらは区別された最小限のコンポーネントである。ユーザーは、一般的にマウス、トラックボール又はタッチパッドと呼ばれているキーボード１６２及びポインティングデバイス１６１などの入力装置を通じてコマンドと情報をコンピューター２０に入力することができる。他の入力装置（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、ハンドヘルドＰＣ又は他のライティングタブレットのタッチセンサー式スクリーンなどを含むことができる。これらと他の入力装置は、システムバスに接続されているユーザー入力インターフェース１６０経由で処理装置１２０に接続されることが多いが、パラレルポート、ゲームポート又はＵＳＢ(universal serial bus)などの他のインターフェース及びバス構造によって接続することもできる。モニター１９１又は他の種類のディスプレイ装置も、ビデオインターフェース１９０などのインターフェース経由でシステムバス１２１に接続されている。モニターに加えてコンピューターも、周辺出力インターフェース１９０経由で接続することができるスピーカ１９７及びプリンター１９６などの他の周辺出力装置を含むことができる。
【００１６】
コンピューター１１０は、リモートコンピューター１８０などの１又は複数のリモートコンピューターへの論理接続を使用してネットワーク環境において動作することができる。リモートコンピューター１８０は、パーソナルコンピューター、サーバー、ルーター、ネットワークＰＣ、ピア装置又は他の共通ネットワークノードとすることができ、図１にはメモリ記憶装置１８１のみを示しているが、典型的には、コンピューター１１０に対して上記の要素の多数又はすべてを含む。図１に表した論理接続は、ＬＡＮ(local area network)１７１及びＷＡＮ(wide area network)１７３を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、職場、企業規模のコンピューターネットワーク、イントラネット、及びインターネットにおいて一般的である。
【００１７】
ＬＡＮネットワーク環境において使用される場合、コンピューター１１０は、ネットワークインターフェース又はアダプター１７０経由でＬＡＮ１７１に接続される。ＷＡＮネットワーク環境において使用される場合、コンピューター１１０は、典型的には、モデム１７２又はインターネットなどのＷＡＮ１７３経由で通信を確立する他の手段を含む。内部接続又は外部接続することができるモデム１７２は、ユーザー入力インターフェース１６０又は他の適した機構を通じてシステムバス１２１に接続することができる。ネットワーク環境において、コンピューター１１０に対して又はコンピューター１１０の一部に対して表されたプログラムモジュールは、遠隔記憶装置に格納することができる。一例として、図１に、リモートアプリケーションプログラム１８５をメモリ装置１８１上に常駐するものとして示すが、これらに限定されない。図示されたネットワーク接続は、例示的であり、コンピューター間の通信回線を確立する他の方法も使用することができることを認識されたい。
【００１８】
（ドキュメントへのアクセス制御）
図２は、本明細書に説明される主題の態様が動作することができる例示的な環境を一般的に表すブロック図である。環境は、ユーザー装置２０５−２０７、記憶装置２１０−２１２、ホスト型アプリケーション２１５、サービス２２０−２２３、及びネットワーク２２５を含む。
【００１９】
ユーザーは、ユーザー装置２０５を使用して、記憶装置２１０上のデータを格納することができる。ユーザーデータは、次に、ユーザー装置２０５−２０７、サービス２２０−２２３、及びホスト型アプリケーション２１５によってアクセスすることができる。複製装置２１１−２１２上にユーザーデータを複製することもできる。
【００２０】
ユーザー装置２０６及び２０７は、データを格納したユーザーによって動作することができる、又はユーザーがデータのアクセス権を与えた他のユーザーによって動作することができる。例えば、ユーザーは、ユーザーが記憶装置２１０上にデータを格納するコンピューター（例えば、ユーザー装置２０５）を職場で有することができる。家で、ユーザーは、データにアクセスする別のコンピューター（例えば、ユーザー装置２０６）を有することができる。ユーザーは、データにアクセスする携帯電話機又は他の電子デバイス（例えば、ユーザー装置２０７）も有することができる。ユーザーが旅行中の時、ユーザーは、持参のコンピューター、ユーザーが使用できる別のコンピューター又は電子デバイスを通じてデータにアクセスすることができる。
【００２１】
これまで述べたように、ユーザーは、他のユーザーにデータにアクセスさせることを望み、他のユーザーにそのようにアクセスする許可を与えることができる。このような他のユーザーは、コンピューター又は他の電子デバイス（例えば、ユーザー装置２０６及び２０７）を使用してユーザーのアクセス権に従ってデータにアクセスすることができる。
【００２２】
ユーザーは、ホスト型アプリケーション２１５を経由してデータへのアクセスを望むことができる。ユーザーは、例えば、ウェブブラウザ経由でホスト型アプリケーション２１５にアクセスすることができ、その後、ホスト型アプリケーション２１５経由でデータにアクセスすることができる。
【００２３】
ユーザーは、あるサービスにユーザーのデータにアクセスさせることを望むことができる。例えば、ユーザーは、アドサーバー２２１にユーザーのデータにアクセスさせて、関連するアドをユーザー又は他人に与えることを望むことができる。ユーザーは、検索エンジン２２０にユーザーのデータにアクセスさせて、他人にユーザーのデータを見つけさせることを望むことができる。ユーザーは、保管サービス２２２にデータにアクセスさせて、データ保管のバックアップを生成することを望むことができる。ユーザーは、様々な目的のために他のサービス２２３にデータにアクセスさせることを望むこともできる。
【００２４】
ユーザーは、ユーザーデータへのアクセスを用いて各エンティティに、エンティティによって異なるあるアクセス権のセットを与えることを望むことができる。例えば、ユーザーは、保管サービスに、データの複写はできるが、意味のある方法によってデータを読み込む又はデータを変更することができないようにすることを望むことができる。意味のある方法又は変更によってデータを読み込むことなくデータを複写できることは、「コピーオンリー」アクセスと呼ばれることがある。別の例として、ユーザーは、アドサーバー２２１及び検索エンジン２２０に、データの読み込みはできるが、データの書き込みをできないようにすることを望むことができる。ユーザーは、他の仕事関係者がデータへの読み込みアクセス又はコピーオンリーアクセスを有するのに対して、一部の同僚にデータへの読み込み／書き込みアクセスを有することを望むことができる。
【００２５】
ネットワーク２２５は、任意の機構及び／又は１つのエンティティから別のエンティティにデータを伝達する１又は複数の装置のセットを表し、イントラ及びインターネットワーク、インターネット、電話回線、セルラーネットワーク、ネットワーク設備などを含むことができる。ユーザーは、ネットワーク２２５の装置に、データを複写して他のエンティティにデータを送信できるが、データの変更又は意味のある方法によってデータの読み込みをできないようにすることを望むことができる。
【００２６】
装置の例（例えば、装置２０５−２０７及び装置２１０−２１２）は、図１とともに説明されるように、携帯電話、テキストメッセージデバイス、スマートフォン、ネットワークデバイス、専用又は汎用電子デバイス（又はそれらの一部）、上記の組み合わせ又は変形などを含む。
【００２７】
当業者によって認識されるように、処理する又はデータにアクセスできる多くのエンティティを有することは、データを安全に保ち、アクセスを望み通りに制御することを確実にすることを一層難しくする。本明細書に説明される主題の態様は、下記にようにアクセスの制御に取り組む。
【００２８】
図３は、本明細書に説明される主題の態様に従って、ドキュメントへのアクセスの提供に関与する例示的なエンティティのセットを一般的に表すブロック図である。エンティティは、要求エンティティ３０５、０又は１以上の中間エンティティ３１０及び３３０、記憶アクセスエンティティ３１５、記憶装置３２０、及びセキュリティデータリポジトリー３３５を含む。
【００２９】
一実施形態において、要求エンティティは、コンピューターなどの電子デバイスであり、中間エンティティ３１０及び３３０は、要求エンティティと記憶アクセスエンティティ３１５との間及び／又は要求エンティティとセキュリティデータリポジトリー３３５との間にある０又は１以上のネットワークデバイス、サーバー、又は他の装置である。記憶アクセスエンティティ３１５は、要求されたドキュメントが格納されている記憶装置（例えば、記憶装置３２０）にアクセスすることができる装置である。
【００３０】
本明細書に用いられるドキュメントは、記憶装置上に格納することができる任意のビット長の任意のセットを含む。図４とともにより詳細に説明されるように、ドキュメントの種類は、ドキュメント識別子、セキュリティデータ識別子、及び他のデータ間で暗号化されたデータを含むことができる。ドキュメント識別子は、特定の名前空間内のドキュメントを一意的に識別する。セキュリティデータ識別子を使用して、ドキュメントに関するセキュリティデータを検索することができる。暗号化されたデータは、例えば、ユーザーが保護を望む文書処理ファイル、スプレッドシート、他のデータなどの内容、他のデータを解読するために使用することができる暗号化キー、又はユーザーにとって重要な他のデータを含む場合がある。
【００３１】
データは暗号化されているため、データを解読するキーを有する者が唯一意味を理解して読むことができる。以下により詳細に説明されるように、これらのキーは、セキュリティデータリポジトリーのセキュリティデータ内に保持されている。適するキーを用いて、ユーザーは、暗号化データを解読して、データの中身にアクセスできる。
【００３２】
記憶装置３２０は、データを格納することができる任意のコンピューター可読媒体であり、例えば、分散ファイルシステムを含むことができる。記憶装置３２０に適しているいくつかの例示的なコンピューター可読媒体は、図１とともに上記に説明されている。
【００３３】
セキュリティデータリポジトリー３３５は、記憶装置３２０上に格納されているドキュメントに関するセキュリティデータを格納する。セキュリティデータリポジトリー３３５は、１つの装置又は互いに関連して動作するいくつかの装置を含むことができる。セキュリティデータリポジトリー３３５は、ドキュメントの種類ごとにセキュリティデータレコードを含むことができる。要求エンティティ３０５は、ドキュメント内に含まれているセキュリティデータ識別子をセキュリティデータリポジトリーに送信して、それによって識別されたセキュリティデータを要求することによって読み出されたドキュメントに対応するセキュリティデータレコードを要求することができる。
【００３４】
一実施形態において、セキュリティデータは、ドキュメント自体に格納することができる。この実施形態において、要求エンティティは、セキュリティデータをドキュメントから直接得ることができる。
【００３５】
一実施形態において、エンティティ３０５、３１０、３１５、及び３３０の中の１又は複数は、１又は複数の装置上で実行する１又は複数のプロセス又はコンポーネントとすることができる。一実施形態において、記憶装置３２０及び／又はセキュリティデータリポジトリー３３５は、要求エンティティ３０５が実行する装置内に含まれる又は接続される装置とすることができる。記憶装置３２０に格納されているドキュメントは、別の装置から要求エンティティ３０５が実行する装置のユーザーによって記憶装置に配置することができるか、又は、例えば、インフラストラクチャを複製するファイルによって記憶装置に配置することができる。
【００３６】
以上のように、図３とともに上記に説明された例示的な動作環境において、ドキュメントは、ドキュメントにアクセスしようとするエンティティを行き来する多くのエンティティを通過する。ドキュメントのデータを暗号化して、データを解読するのに必要なセキュリティデータを表示することは、任意の記憶装置上及び装置の任意の構成にデータを安全に格納させることを可能にする。
【００３７】
図４に、本明細書に説明される主題の態様とともに用いることができるいくつかの例示的なデータ構造を示す。ドキュメントバージョンデータ構造（例えば、ドキュメントバージョンデータ構造４００）は、ドキュメントの種類ごとに格納することができる。各ドキュメントバージョンデータ構造４００は、ドキュメント識別子４０５、セキュリティデータ識別子４１０、タイムスタンプ４１５、暗号化データ４２０、及び署名４２５を含む様々なフィールドを含むことができる。
【００３８】
ドキュメント識別子４０５を使用して、所定の名前空間内のドキュメントを一意的に識別することができる。例えば、ｈｔｔｐのようなシンタックス（例えば、live://alice/users/file1.txt など）を有するＵＲＩ(uniform resource identifier)を使用して、所定の名前空間内のドキュメントを識別することができる。
【００３９】
セキュリティデータ識別子４１０を使用して、ドキュメントと関連するセキュリティデータを識別することができる。一実施形態において、セキュリティデータ識別子４１０は、セキュリティデータ構造（例えば、セキュリティデータ構造４２７）内のフィールド（セキュリティデータ識別子以外）のハッシュである。ハッシュは、入力データを取り入れて、出力データの固定長を算出する。十分に大きい固定長の出力データ及び適するハッシュが与えられると、ハッシュは入力ストリームに対して個別の識別子を効率的に与える。
【００４０】
タイムスタンプフィールド４１０は、バージョンが生成された時を表示するタイムスタンプを含むことができる。これまで論じたように、暗号化データフィールド４２０は、ユーザーが安全性を望む任意の内容を含むことができる。
【００４１】
署名フィールド４２５は、ドキュメントバージョンデータ構造４００が承認されたユーザーによって生成されること、及び生成以来変更されていないことを確実にするために使用することができる任意の１又は複数の機構を含む。
【００４２】
ドキュメントバージョンデータ構造４００は、ドキュメントに関するセキュリティデータを識別する又は含む機構、及び求められるデータを暗号化するための機構を含む限りは、ほぼ同じフィールドを含むことができる。
【００４３】
セキュリティデータ構造４２７は、セキュリティデータ識別子フィールド４３０、１又は複数の承認フィールド４３５、１又は複数のキー４４０、及び署名４２５を含むことができる。一実施形態において、セキュリティデータ識別子フィールド４３０内のセキュリティデータ識別子は、これまで説明したように（すなわち、セキュリティデータ構造４２７の他のフィールドのハッシュとして）計算することができる。
【００４４】
承認フィールド４３５は、ドキュメントバージョンデータ構造４００にアクセスできる各セキュリティプリンシパルの承認を含む。ある実施形態において、セキュリティプリンシパルは、認証として知られる技術を介して肯定的に識別し、実証できるエンティティである。他の実施形態において、セキュリティプリンシパルは、別のドキュメントと関連するセキュリティデータから解読されたキーを含むことができる。セキュリティプリンシパルは、ユーザー、マシン、サービス、プロセス、他のエンティティ、暗号化キー、又は上記の１又は複数の集合（例えば、グループ）を含むことができる。各承認は、セキュリティプリンシパルが保持又は生成するキーによって解読することができるキーによって暗号化することができる。公開キー／又は秘密キーの暗号化は、承認を暗号化／解読するために使用することができる１つの機構である。
【００４５】
特定のセキュリティプリンシパルが多くのキーを有して、セキュリティドキュメント内に多くの承認がある場合として、一実施形態において、承認を解読するために使用することができるキーの最初の数個のビット（プレーンテキスト内にある）を与えるキーの手がかり(key hint)を用いて最適化する。エンティティが最初の数個のビットをエンティティのキーと簡単に比較できるように、キーの手がかりは、どの認証を解読するのに当らせるべきかを即時にエンティティに判定させることができる。かなり多くの認証がある場合、この機構が与える時間の節約は、重要である。たった数個のビット（例えば、２から１６の間）を与えればよいので、承認を暗号化／解読するのに使用する機構の強度は、あまり弱まらない。必要に応じて、長いキーを用いることによって機構の強度を増すことができる。
【００４６】
一実施形態において、承認は、セキュリティプリンシパルにドキュメントの種類に関する１又は複数のアクセス権を実行させることができる暗号化キーを含む。例えば、ユーザープリンシパルは、ドキュメントを読み取り、ドキュメントの新しい種類を生成し、セキュリティプリンシパルがドキュメントにアクセスして変更する、権利を与えて、ドキュメントに関する任意の他のセキュリティに関連する動作を実行することができる。別のユーザープリンシパルは、読み取り専用又は書き込み専用のアクセスを与えることができる。ドキュメントに関して権利を与えられないエンティティは、複写専用のアクセス（例えば、複写するが、意味を理解して読み取れない機能）を有することができる。これらのエンティティは、例えば、ドキュメントを保管するために使用することができる。
【００４７】
別の実施形態において、承認は、セキュリティプリンシパルにセキュリティデータ構造４２７のどこか（例えば、キー４４０内）にある追加的なキーを解読させることができる暗号化キーを含むことができる。これらの追加的なキーは、ドキュメントに対するアクセ権をセキュリティプリンシパルに与えることができる。これは、例えば、承認内の単一のキーを使用して、セキュリティデータ構造４２７内のどこかにある複数のキーを解読するために使用することができるなど、セキュリティデータ構造４２７に必要な空間を減らすために行われる。セキュリティデータ構造４２７がかなり多くの承認を含む場合、多くの承認は、アクセス権の共通のセットを共有することができる。これらのアクセス権に対応するキーを承認自体に含むこともできるが、セキュリティプリンシパルにセキュリティデータ構造４２７内のどこかにあるアクセスキーを解読させることができる各承認内に単一のキーを与えるほうが、空間をより効率的にすることができる。
【００４８】
キー４４０は、これまで論じたように、ドキュメントに与えられたアクセス権に対応することができる暗号化された秘密キーを含むことができる。これまで論じたように、承認フィールド４３５内で得られたキーによってこれらのキーを解読することができる。
【００４９】
署名フィールド４４５は、データ構造４００の署名フィールド４２５と同じ形式で使用することができる。
【００５０】
セキュリティデータ構造４２７は、関連するドキュメントにアクセスするキーを承認されたユーザーに与える機構を含む限り、ほぼ同じフィールドを含むことができる。
【００５１】
ドキュメントバージョンデータ構造４００は、別のドキュメントバージョンデータ構造を識別する識別子を含むことができる。他のドキュメントバージョンデータ構造は、ドキュメントにアクセスさせることができるキーを含むことができる。この機構を使用して、ドキュメントにグループアクセスを与えることができる。例えば、第１のドキュメントバージョンデータ構造と関連するセキュリティデータ構造内の承認は、グループの参加者が保持するキーに対応することができる。適したキーを有するグループの任意の参加者は、第２のドキュメントと関連するセキュリティデータ内のグループに与えられた権利にしたがって、参加者に第２のドキュメントにアクセスさせることができるセキュリティデータから参加者のキーを得る可能性がある。従って、ドキュメントへのアクセスは、中間ドキュメントへのアクセスを伴う。
【００５２】
別の実施形態において、ドキュメントバージョンデータ構造４００は、識別子を省くことができる。この実施形態において、別の機構は、第１のドキュメントのセキュリティデータ内のキーが、第２のドキュメントへのアクセスを与えることができることを提案することができる。例えば、第１のドキュメントがグループアクセスを別のドキュメントに与えることを知っていた場合、第１のドキュメントのセキュリティデータからの参加者のキーは、ユーザーがアクセスしようとするすべての他のドキュメントに対してセキュリティデータ内のすべての承認を得ようとする可能性がある。これまで説明したように、キーの手がかりがこのプロセスを高速化することができる。
【００５３】
図５は、本明細書に説明される主題の態様に従って、ドキュメントにアクセスする際に起こる例示的な動作を一般的に表すフロー図である。ブロック５０５において動作を開始する。
【００５４】
ブロック５１０において、エンティティは、暗号化データを含むドキュメントを要求する。例えば、図３に関して、要求エンティティ３０５は、記憶装置３２０上に格納されているドキュメントに対する要求を送信する。
【００５５】
ブロック５１５において、エンティティは、要求を受信する。例えば、図３に関して、中間エンティティ３１０又は記憶アクセスエンティティ３１５の１つが、要求を受信する。
【００５６】
ブロック５２０において、ドキュメントは、リクエスターに送信される。例えば、図３に関して、ドキュメントは、記憶装置３２０から読み出されて、要求エンティティ３０５に送信される。
【００５７】
ブロック５２５において、リクエスターは、ドキュメントを得る。例えば、図３に関して、要求エンティティ３０５は、ドキュメントを受信する。
【００５８】
ブロック５３０において、エンティティは、要求を行い、ドキュメントと関連するセキュリティデータを得る。例えば、図３に関して、要求エンティティ３０５は、セキュリティ識別子をドキュメントから得て、リクエストとともにセキュリティ識別子をセキュリティデータリポジトリー３３５に送信する。ドキュメント内にセキュリティデータが含まれている実施形態において、要求エンティティ３０５は、セキュリティデータをドキュメント自体から得ることができる。
【００５９】
ブロック５３５において、少なくともセキュリティデータ（例えば、承認）の一部は、ドキュメントに関する承認されたアクセス動作の表示を得るために解読される。例えば、図３及び図４に関して、要求エンティティ３０５は、承認フィールド４３５内の承認を解読して、要求エンティティ３０５がドキュメントへのアクセスを読み込んだことを判定する。
【００６０】
ブロック５４０において、動作に対応するキーは、セキュリティデータから得られる。一実施形態において、キーは、ブロック５３５の解読動作から得られ、別の実施形態において、キーは、セキュリティドキュメントの別の部分から得られる。例えば、図３及び図４に関して、要求エンティティ３０５は、ドキュメントを読み込むキーを承認フィールド４３５から得る。
【００６１】
ブロック５４５において、キーを使用して動作を実行する。例えば、図３及び図４に関して、要求エンティティ３０５は、キーを使用して、暗号化データフィールド４２０内の暗号化データを解読する。
【００６２】
ブロック５５０において、動作は終了する。一実施形態において、動作は、図５とともに説明される順序で起こる。他の実施形態において、図５に関する上記の動作は、本明細書に説明される主題の精神又は範囲から逸脱することなく、別の順序及び／又は並行して行うことができる。さらに、互いに近接して動作してもよいし、動作しなくてもよいことを認識されたい。例えば、ファイル同期化システムは、ドキュメントを定期的に要求して、局所的にドキュメントを格納することができる。その後、ユーザーがドキュメントを閲覧したい時に、ユーザーは、ドキュメントを開き、そしてセキュリティデータを得るための他の動作が起こり、ドキュメントを解読することができる。
【００６３】
図６は、本明細書に説明される主題の態様に従って、動作するように組み込まれた例示的な装置を表すブロック図である。装置６０５は、要求コンポーネント６１０、暗号化コンポーネント６１５、ドキュメントロケーター６２０、セキュリティデータコンポーネント６２５、データストア６３０、及び通信機構６３５を含むことができる。
【００６４】
要求コンポーネント６１０は、これまで説明した要求エンティティを表す。暗号化コンポーネント６１５は、データを暗号化して解読するために使用され、例えば、暗号化ルーチンのライブラリーを含むことができる。
【００６５】
ドキュメントロケーター６２０は、ローカルデータストア６３０上か、又は装置６０５に外部接続されたあるデータストア上のいずれかにあるドキュメントの配置場所を判定する。
【００６６】
セキュリティデータコンポーネント６２５は、セキュリティデータと相互作用して、ドキュメントに関するアクセス権を得る。
【００６７】
通信機構６３５は、装置６０５に他の装置との通信を行わせるようにして、例えば、ドキュメント及びセキュリティデータを得る。通信機構６４０は、ネットワークインターフェース又はアダプター１７０、モデム１７２、又は図１とともに説明されるように、通信を確立する任意の他の手段であってよい。
【００６８】
図６に示した装置６０５の他の変形も、本明細書に説明される主題の態様の精神又は範囲から逸脱することなく、実装することができることを認識されたい。本明細書に説明される主題の態様の精神又は範囲から逸脱することなく、装置６０５上に存在するコンポーネントを増やし、減らし、又は他のコンポーネントを加えてもよいことを認識されたい。
【００６９】
前述の発明の詳細な説明から分かるように、ドキュメントへのアクセスを暗号化された制御で行うことに関連して態様を説明してきた。本明細書に説明される主題の態様が様々な変更及び代替可能な構成を受け入れやすいので、それらの特定の説明された実施形態は、図示され、上記に詳細に説明されている。しかしながら、開示された具体的な形式に対して特許請求の範囲の対象事項の態様を限定する意図はなく、むしろ、本明細書に説明される主題の様々な態様の精神又は範囲内において、変更、代替可能な構成、及び同等のものすべてを網羅することを意図する。
【図１】
0005399268.tif 000002
【図２】
0005399268.tif 000003
【図３】
0005399268.tif 000004
【図４】
0005399268.tif 000005
【図５】
0005399268.tif 000006
【図６】
0005399268.tif 000007