JP2010534033A - 暗号で保護した文書の作成と検証 - Google Patents

暗号で保護した文書の作成と検証 Download PDF

Info

Publication number
JP2010534033A
JP2010534033A JP2010517086A JP2010517086A JP2010534033A JP 2010534033 A JP2010534033 A JP 2010534033A JP 2010517086 A JP2010517086 A JP 2010517086A JP 2010517086 A JP2010517086 A JP 2010517086A JP 2010534033 A JP2010534033 A JP 2010534033A
Authority
JP
Japan
Prior art keywords
document
data
key
child
entity
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
JP2010517086A
Other languages
English (en)
Other versions
JP5480135B2 (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 JP2010534033A publication Critical patent/JP2010534033A/ja
Application granted granted Critical
Publication of JP5480135B2 publication Critical patent/JP5480135B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L9/3247Cryptographic 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 involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本明細書で説明する主題の態様は、暗号で保護された文書の作成と検証に関する。諸態様では、文書は、不正アクセスから保護するために暗号化される。名前空間の所有権を有するエンティティは、文書を許可された名前空間で作成し、文書を秘密キーで署名することができる。他のエンティティは、文書が許可された名前空間の所有者によって作成されたことを、当該文書の親文書に関連付けられたセキュリティ・データにおいて利用可能な公開キーを用いて検証することができる。ルート文書の場合、公開キーはディレクトリ・サービスから利用することができる。名前空間の所有者は、文書の子文書を作成できる名前空間の所有者(複数可)を変更することができる。

Description

ユーザ・データへのアクセス権付与は、通常、プログラム的に行われる。即ち、ユーザのアクセス権に基づいて、オペレーティング・システムまたはウェブ・サービスがデータへのアクセス権を付与する。このモデルはあまり安全ではなく、ユーザが他の多数のエンティティにアクセス権を付与する場合は特にそうである。データへのアクセス権を有する任意のエンティティの安全性が損なわれれば、ユーザが許可しないまま、またはユーザが知らないうちに、ユーザのデータにアクセスされ、データが悪意をもって変更または破壊される恐れがある。ユーザのデータを扱うエンティティが増えれば、データの安全性は低下する。
簡潔に述べると、本明細書で説明する主題の態様は、暗号で保護された文書の作成と検証に関する。諸態様では、文書は、不正アクセスから保護するために暗号化される。名前空間の所有権を有するエンティティは、文書を許可された名前空間で作成し、文書を秘密キーで署名することができる。他のエンティティは、文書が許可された名前空間の所有者によって作成されたことを、当該文書の親文書に関連付けられたセキュリティ・データにおいて利用可能な公開キーを用いて検証することができる。ルート文書の場合、公開キーはディレクトリ・サービスから利用することができる。名前空間の所有者は、文書の子文書を作成できる名前空間の所有者(複数可)を変更することができる。
本概要は、発明を実施するための形態でさらに説明する主題の幾つかの態様を簡潔に特定するために提示する。本概要はクレーム主題の主要特徴または本質的な特徴を特定しようとするものではなく、クレーム主題の範囲を限定するために使用しようとするものでもない。
「本明細書で説明する主題」という表現は、文脈で別途明確に示さない限り、発明を実施するための形態で説明する主題を指す。「諸態様」という語は「少なくとも1つの態様」と読むべきである。発明を実施するための形態で説明する主題の態様を特定するのは、クレーム主題の主要な特徴または本質的な特徴を特定しようとするものではない。
上述の態様と本明細書で説明する主題の他の態様とは、添付の図面で例として図示されており、限定ではない。図面では、同じ参照番号は同じ要素を示す。
本明細書で説明する主題の態様を組み込むことができる例示的な汎用目的のコンピューティング環境を表すブロック図である。 本明細書で説明する主題の態様が動作可能な例示的な環境を一般的に表すブロック図である。 本明細書で説明する主題の態様に従って文書の作成または検証に参加できる1組の例示的なエンティティを一般的に表すブロック図である。 本明細書で説明する主題の態様と関連して使用できる幾つかの例示的なデータ構造を示す図である。 本明細書で説明する主題の態様に従って、子文書の作成において変更しうるデータと、実施できる動作とを一般的に表すブロック図である。 本明細書で説明する主題の態様に従って、子文書の作成、および子文書の名前空間で文書を作成できる名前空間の所有者(複数可)の変更において、変更しうるデータと実施できる動作とを一般的に表すブロック図である。 本明細書で説明する主題の態様に従って、文書の作成において実施できる例示的な動作を一般的に表す流れ図である。 本明細書で説明する主題の態様に従って、文書が許可された名前空間の所有者によって作成されたことを検証する際に実施できる例示的な動作を一般的に表す流れ図である。 本明細書で説明する主題の態様に従って動作するように構成した例示的な装置を表すブロック図である。
例示的な動作環境
図1は、本明細書で説明する主題の態様を実装できる適切なコンピューティング・システム環境100の例を示す。コンピューティング・システム環境100は適切なコンピューティング環境の1例に過ぎず、本明細書で説明する態様の使用範囲または機能範囲の限定を示唆しようとするものではない。また、コンピューティング環境100が、例示的な動作環境100で示した構成要素の任意の1つまたは組合せに関していかなる依存性または要件も有するとは解釈すべきでない。
本明細書で説明する主題の態様は、他の多数の汎用目的または特殊目的のコンピューティング・システム環境または構成で動作する。本明細書で説明する主題の態様の使用に適しうる周知のコンピューティング・システム、環境、および/または構成の例には、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド装置またはラップトップ装置、マルチプロセッサ・システム、マイクロコントローラ・ベースのシステム、セット・トップ・ボックス、プログラム可能消費家電、ネットワークPC、ミニコンピュータ、メインフレーム・コンピュータ、上記のシステムまたは装置の何れかを含む分散コンピューティング環境、等が含まれるがこれらに限らない。
本明細書で説明する主題の態様を、プログラム・モジュールのような、コンピュータによって実行されているコンピュータ実行可能命令の一般的な状況で説明することができる。一般に、プログラム・モジュールはルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含み、これらは特定のタスクを実施するか特定の抽象データ型を実装する。本明細書で説明する主題の態様を、通信ネットワークを通してリンクしたリモート処理装置によってタスクを実施する分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラム・モジュールを、メモリ記憶装置を含むローカル・コンピュータ記憶媒体とリモート・コンピュータ記憶媒体の両方に配置することができる。
図1を参照すると、本明細書で説明する主題の態様を実装する例示的なシステムは、コンピュータ110の形で汎用目的のコンピューティング装置を備える。コンピュータ110の構成要素には、演算装置120、システム・メモリ130、およびシステム・メモリを含む様々なシステム・コンポーネントを演算装置120に結合するシステム・バス121が含まれる。システム・バス121は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および様々なバス・アーキテクチャの何れかを用いたローカル・バスを含む、数種のバス構造のうちの何れかであってもよい。限定ではなく例として、かかるアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびメザニン・バスとしても知られるPCI(Peripheral Component Interconnect)バス、等が含まれる。
コンピュータ110は、通常、様々なコンピュータ読取可能媒体を備える。コンピュータ読取可能媒体は、コンピュータ110がアクセス可能な任意の利用可能媒体であることができ、揮発性媒体および不揮発性媒体と取外し可能媒体および取外し不能媒体の両方を含む。限定ではなく例として、コンピュータ読取可能媒体はコンピュータ記憶媒体と通信媒体を備えることができる。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラム・モジュール、または他のデータのような情報を記憶するための任意の方法または技術で実装した揮発性媒体および不揮発性媒体、取外し可能媒体および取外し不能媒体の両方が含まれる。コンピュータ記憶媒体にはRAM、ROM、EEPROM、フラッシュ・メモリもしくは他のメモリ技術、CD−ROM、DVD(digital versatile disk)もしくは他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置、または所望の情報の記憶に使用できコンピュータ110によりアクセス可能な他の任意の媒体が含まれるがこれらに限らない。通信媒体は、通常、搬送波または他の伝送機構のような変調データ信号で、コンピュータ読取可能命令、データ構造、プログラム・モジュール、または他のデータを具現化し、任意の情報送達媒体を含む。「変調データ信号」という用語は、1つまたは複数のその特性群を有するか、信号内の情報をエンコードするように変化した信号を意味する。限定ではなく例として、通信媒体には有線ネットワークまたは直接配線接続のような有線媒体、ならびに音響、RF、赤外線、および他の無線媒体のような無線媒体が含まれる。以上の何れかの組合せもコンピュータ読取可能媒体の範囲に含まれるべきである。
システム・メモリ130は、ROM(read only memory)131およびRAM(random access memory)132のような揮発性メモリおよび/または不揮発性メモリの形のコンピュータ記憶媒体を備える。BIOS(basic input/output system)133は、例えば起動中に、コンピュータ110内部の要素間での情報の伝送を支援する基本ルーチンを含み、通常、ROM131に記憶される。RAM132は、通常、演算装置120が即座にアクセス可能なデータおよび/または演算装置120上で現在稼動しているプログラム・モジュールを含む。限定ではなく例として、図1はオペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136およびプログラム・データ137を示す。
コンピュータ110は他の取外し可能媒体または取外し不能、揮発性または不揮発性のコンピュータ記憶媒体を備えることもできる。例としてのみ、図1は取外し可能で不揮発性の磁気媒体を読み書きするハード・ディスク・ドライブ141、取外し可能で不揮発性の磁気ディスク152を読み書きする磁気ディスク・ドライブ151、およびCD ROMまたは他の光媒体のような取外し可能で不揮発性の光ディスク156を読み書きする光ディスク・ドライブ155を示す。例示的な動作環境で使用できる他の取外し可能または取外し不能、揮発性または不揮発性のコンピュータ記憶媒体には、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、固体RAM、固体ROM、等が含まれるがこれらに限らない。ハード・ディスク・ドライブ141は、通常、インタフェース140のような取外し不能メモリ・インタフェースを介してシステム・バス121に接続し、磁気ディスク・ドライブ151および光ディスク・ドライブ155は、通常、インタフェース150のような取外し可能メモリ・インタフェースでシステム・バス121に接続する。
上で論じ、図1で示したドライブおよびその関連するコンピュータ記憶媒体は、コンピュータ110向けのコンピュータ読取可能命令、データ構造、プログラム・モジュールおよび他のデータを記憶する。例えば、図1では、ハード・ディスク・ドライブ141がオペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データ147を記憶するステップとして示してある。これらの構成要素はオペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、およびプログラム・データ137と同一であるか異なるかの何れかであることができることに留意されたい。オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データ147には本明細書では異なる番号を与え、最低限それらが異なるコピーであることを示す。ユーザは、キーボード162、一般にマウスと呼ばれるポインティング・デバイス161、トラックボールまたはタッチ・パッドのような入力装置を通してコマンドおよび情報をコンピュータ110に入力することができる。他の入力装置(図示せず)はマイクロフォン、ジョイスティック、ゲーム・パッド、パラボラ・アンテナ、スキャナ、ハンドヘルドPCまたは他のライティング・タブレットのタッチ・センシティブ・スクリーン、等を含むことができる。これらおよび他の入力装置は、システム・バスに結合した入力インタフェース160を通して演算装置120に接続されることがよくあるが、パラレル・ポート、ゲーム・ポートまたはUSB(universal serial bus)のような他のインタフェースおよびバス構造で接続してもよい。モニタ191または他種の表示装置も、ビデオ・インタフェース190のようなインタフェースを介してシステム・バス121に接続される。モニタに加えて、コンピュータは、スピーカ197およびプリンタ196のような他の周辺出力装置を含むこともでき、これらは出力周辺インタフェース190を通して接続することができる。
コンピュータ110は、リモート・コンピュータ180のような1つまたは複数のリモート・コンピュータへの論理接続を用いてネットワーク環境で動作することができる。リモート・コンピュータ180はパーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア・デバイスまたは他の共通ネットワーク・ノードであることができ、通常、コンピュータ110に関して上述した要素の多くまたは全てを含むが、図1ではメモリ記憶装置181のみを示した。図1に図示した論理接続にはLAN(local area netowork)171およびWAN(wide area network)173が含まれるが、他のネットワークを含んでもよい。係るネットワーク環境は職場、企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットで一般的である。
LANネットワーク環境で使用するとき、コンピュータ110はネットワーク・インタフェースまたはアダプタ170を通してLAN171に接続される。WANネットワーク環境で使用するとき、コンピュータ110は、通常、インターネットのようなWAN173上で通信を確立するためのモデム172または他の手段を備える。モデム172は、内部または外部にあることができ、ユーザ入力インタフェース160または他の適切なメカニズムを介してシステム・バス121に接続することができる。ネットワーク環境では、コンピュータ110に関して図示したプログラム・モジュールまたはその一部を、リモート・メモリ記憶装置に記憶することができる。限定ではなく例として、図1ではリモート・アプリケーション・プログラム185がメモリ装置181に常駐するとして示してある。表示のネットワーク接続は例であって、コンピュータ間の通信リンクを確立する他の手段を使用してもよいことは理解されよう。
文書の作成と検証
図2は、本明細書で説明する主題の態様が動作可能な例示的な環境を一般的に表すブロック図である。本環境は、ユーザ装置205〜207、記憶装置210〜212、ホストされたアプリケーション215、サービス220〜223、およびネットワーク225を含む。
ユーザは、ユーザ装置205を使用して記憶装置210にデータを記憶することができる。そうすると、ユーザ装置205〜207、サービス220〜223、およびホストされたアプリケーション215からユーザのデータにアクセスすることができる。ユーザのデータを複製装置211〜212に複製することもできる。
ユーザ装置206および207を、データを記憶したユーザによって操作することができ、当該ユーザが当該データへのアクセス権を与えた他のユーザによって操作することができる。例えば、ユーザは職場でコンピュータ(例えば、ユーザ装置205)を有することができ、当該コンピュータを用いてデータを記憶装置210に記憶することができる。自宅では、ユーザは別のコンピュータ(例えば、ユーザ装置206)を有することができ、当該コンピュータを用いてデータにアクセスすることができる。ユーザは携帯電話または他の電子装置(例えば、ユーザ装置207)を有することもでき、これらを用いてデータにアクセスすることができる。ユーザが旅行している場合、ユーザは携帯しているコンピュータを介して、またはユーザが使用できる別のコンピュータもしくは電子装置を介して、データにアクセスすることができる。
前述のように、ユーザは、他のユーザにデータへのアクセス権を持たせたいかもしれず、当該他のユーザに係るアクセス権を付与することができる。これらのユーザはコンピュータまたは他の電子装置(例えば、ユーザ装置206および207)を使用して、自身のアクセス権に従ってデータにアクセスすることができる。
ユーザは、ホストされたアプリケーション215を介してデータにアクセスしたいかもしれない。ユーザは、例えば、ホストされたアプリケーション215にウェブ・ブラウザを介してアクセスすることができ、次いでホストされたアプリケーション215を介してデータにアクセスすることができる。
ユーザは、或る種のサービスに自分のデータへのアクセス権を持たせたいかもしれない。例えば、ユーザは、広告サーバ221に自分のデータへのアクセス権を持たせる自分または他人に関連する広告を提供したいかもしれない。ユーザは検索エンジン220に自分のデータへのアクセス権を持たせて、他人が自分のデータを発見できるようにしたいかもしれない。ユーザはアーカイブ・サービス222にデータへのアクセス権を持たせてデータのアーカイブ式バックアップを作成したいかもしれない。ユーザはまた、他のサービス223に様々な目的でデータへのアクセス権を持たせたいかもしれない。
エンティティには、物理装置、プロセス、サービス、マシン、ユーザ、キー、コンポーネント、1つまたは複数の以上のもののうち複数、等が含まれる。ユーザは、ユーザ・データへのアクセス権を有する各エンティティに、エンティティ間で異なりうる1組の特定のアクセス権を与えたいかもしれない。例えば、ユーザは、アーカイブ・サービスがデータをコピーすることはできるが有意味にデータを読むことも修正することもできないようにしたいかもしれない。データを有意味に読むことも修正することもなくデータをコピーできるようにすることは、しばしば「コピー専用」アクセスと呼ばれる。別の例として、ユーザは広告サーバ221と検索エンジン220に、データを読み出すことはできるがデータへ書き込むことはできないようにしたいかもしれない。ユーザは、何人かの同僚にはデータの読書きアクセスを持たせたいが、他の仕事仲間にはデータへの読取アクセス権またはコピー専用アクセス権だけを持たせたいかもしれない。
ネットワーク225は、データを或るエンティティから別のエンティティへ運ぶための1つまたは複数の装置の任意の機構および/またはセットを表し、イントラ・ネットワークおよびインター・ネットワーク、インターネット、電話線、セルラ・ネットワーク、ネットワーク装置、装置間の直接接続、無線接続、等を含むことができる。ユーザは、ネットワーク225の装置がデータをコピーして他のエンティティへ送信はできるがデータを変更することもデータを有意味に読むこともできないようにしたいかもしれない。
装置の例(例えば、装置205〜207および210〜212)には、携帯電話、テキスト・メッセージング装置、スマート・フォン、ネットワーク装置、図1に関して説明した特殊目的および汎用目的の電子装置、上記の組合せ、一部、または変形、等が含まれる。
データを扱うかデータへのアクセス権を有するエンティティが多くなると、データを安全に保つことがより難しくなり、データが悪意をもって破壊または更新されないことを保証するのがより難しくなることは当業者には理解されよう。
図3は、本明細書で説明する主題の態様に従って文書の作成または検証に参加できる1組の例示的なエンティティを一般的に表すブロック図である。エンティティには、作成/検証エンティティ305、0個またはそれ以上の中間エンティティ310、330、および340、記憶アクセス・エンティティ315、記憶装置320、セキュリティ・データ・リポジトリ335、およびディレクトリ・サービス345が含まれる。
1実施形態では、作成/検証エンティティ305はコンピュータのような電子装置であり、中間エンティティ310、330、ならびに340は0個またはそれ以上のネットワーク装置、サーバ、または作成/検証エンティティ305および記憶アクセス・エンティティ315および/もしくはセキュリティ・データ・リポジトリ335および/もしくはディレクトリ・サービス340の間にある他の装置である。記憶アクセス・エンティティ315は、要求されたドキュメントが記憶されている記憶装置(例えば、記憶装置320)にアクセス可能な装置である。
本明細書で使用する文書は、記憶装置に記憶できる任意の長さをもつ任意の1組のビットを含む。図4に関連してさらに詳細に論ずるように、或るバージョンの文書は、文書識別子、セキュリティ・データ識別子、および他のデータの中でもとりわけ暗号化データを含むことができる。文書識別子は文書を特定の名前空間で一意に特定する。セキュリティ・データ識別子は、文書に関連するセキュリティ・データを取り出すために使用することができる。暗号化データは、例えば、ワード・プロセッサ・ファイル、スプレッド・シート、他のデータ、他のデータを復号化するために使用できる暗号キー、またはユーザにとって重要である他の任意のデータのような、ユーザが保護したいコンテンツを含むことができる。
データが暗号化されるので、データを復号化するためのキーを有する人のみが当該データを有意味に読むことができる。後でさらに詳細に論ずるように、キーはセキュリティ・データ・リポジトリ内のセキュリティ・データに保持される。適切なキーにより、ユーザは、当該ユーザが所与の名前空間内に文書とセキュリティ・データを作成する権限を有することを他のエンティティが検証できるように、当該文書と当該セキュリティ・データを当該名前空間内で作成することができる。
記憶装置320は、例えば、データを記憶できる任意のコンピュータ読取可能媒体であり、分散ファイル・システムを備えることができる。記憶装置320に適した幾つかの例示的なコンピュータ読取可能媒体を、図1と関連させて上述した。
セキュリティ・データ・リポジトリ335は記憶装置320に記憶した文書に関するセキュリティ・データを記憶する。セキュリティ・データ・リポジトリ335は互いと協調して動作する1つまたは複数の装置を備えることができる。セキュリティ・データ・リポジトリ335は、文書の各バージョンに対するセキュリティ・データの記録を含むことができる。作成/検証エンティティ305は、文書に含まれるセキュリティ・データ識別子をセキュリティ・データ・リポジトリ335に送信し当該識別子で特定されるセキュリティ・データを要求することによって、取り出した文書に対応するセキュリティ・データ記録を要求することができる。
1実施形態では、セキュリティ・データを文書自体に記憶することができる。本実施形態では、作成/検証エンティティ305はセキュリティ・データを文書から直接取得することができる。
ディレクトリ・サービス345は、ルート文書が許可されたエンティティによって作成されたことを検証する際に使用されるキーを記憶および提供するように動作する。ルート文書は、名前空間で利用できる最下層レベルの文書である。他の文書はルート文書に依存することができるが、ルート文書は他の文書に依存しない。例えば、ディレクトリ、サブディレクトリ、等を有する階層型の名前空間では、ルート文書は、当該名前空間内で作成された他の文書のルートである。例えば、名前空間が//domain/path/file.txtのようなパスを含む場合、「domain」がルート文書となる。名前空間がlive://alice/users/file1.txtのようなhttp風の構文を含む場合、「alice」がルート文書となる。
ルート文書の作成の際、作成エンティティが文書を作成し、公開キーと秘密キーの対を作成し、文書を秘密キーで署名し、公開キーでディレクトリ・サービスに公開する。公開キーで公開する際、エンティティは識別子をルート文書と公開キー(またはその一部)に提供する。ディレクトリ・サービスは、公開キーの公開を要求するエンティティがそれを行う権限をもつことを保証する。エンティティが適切な権限を有する場合、ディレクトリ・サービスは公開キー(またはその一部)を当該ディレクトリ・サービスの記録で公開する。
ルート文書を後で取得するエンティティは、ディレクトリ・サービスに公開キーを要求し当該公開キーを用いて文書の署名を検証することによって、当該ルート文書が許可されたエンティティによって作成されたことを検証することができる。当該エンティティは、ルート文書の識別子をディレクトリ・サービスに提供することによって、公開キーを得ることができる。ディレクトリ・サービスが公開キーの一部のみを記憶する実施形態では、検証エンティティはこの部分を別のエンティティに提供することができ、当該別のエンティティは、公開キー全体を検索して返すためにこの部分を使用する。あるいは、完全な公開キーを文書のセキュリティ・データに含めてもよい。
ディレクトリ・サービス345として使用できるサービスの1種は、DNS(domain name service)サーバまたはそれに類似するものである。公開キーを、(ルート文書に対応しうる)ドメイン名に対応するDNSサービスの記録に置いてもよい。DNSサーバは良く確立されておりドメインの所有者を宣言するための機構を有するので、情報基盤をそれ以上必要とせずにDNSサーバを使用してルート文書を検証することができる。公開キー全体をDNSサービス記録に記憶できない場合は、上述の機構を使用して、公開キー全体が別のサービスで利用可能な状態のまま、公開キーの一部をDNSサービス記録に記憶してもよい。
本明細書で説明する主題の態様の趣旨と範囲から逸脱しない他の専用サービスを、ディレクトリ・サービス345として使用することもできる。特に、ユーザがルート文書に対する権限を有することを検証でき、かつ識別子とキー(またはその一部)の対を記憶できる、本明細書で説明する主題の趣旨と範囲を逸脱しない任意のエンティティを使用することができる。
1実施形態では、エンティティ305、310、315、330および345のうち1つまたは複数は、1つまたは複数の装置上で実行する1つまたは複数のプロセスまたはコンポーネントであってもよい。1実施形態では、記憶装置320および/またはセキュリティ・データ・リポジトリ335は、作成/検証エンティティ305を実行する装置内に含まれるか当該装置に取り付けた装置であってもよい。記憶装置320に記憶した文書を、例えば、作成/検証エンティティ305を実行している装置のユーザによって、またはファイル複製基盤によって、別の装置から記憶装置320に置いてもよい。
図より分かるように、図3に関連して上述した例示的な動作環境では、当該文書を作成または検証しようとするエンティティを往復する中で、文書は多数のエンティティを経由することがある。文書のデータを暗号化することにより、任意の記憶装置に、および任意の装置構成で、データを安全に記憶することができる。
図4は、本明細書で説明する主題の態様と関連して使用できる幾つかの例示的なデータ構造を示す。文書データ構造(例えば、文書データ構造400)を文書ごとに記憶することができる。各文書データ構造400は、文書識別子405、セキュリティ・データ識別子410、タイムスタンプ415、暗号化データ420、および名前空間署名425を含む様々なフィールドを含むことができる。
文書識別子405を使用して、文書を所与の名前空間内で一意に特定することができる。例えば、http風の構文を有するURI(uniform resource identifier)(例えば、live://alice/users/file1.txt)を使用して文書を所与の名前空間内で特定することができる。別の例として、GUID(globally unique identifier)を使用して文書を所与の名前空間内で特定することができる。
セキュリティ・データ識別子410を使用して文書に関連付けられたセキュリティ・データを特定することができる。1実施形態では、セキュリティ・データ識別子410は、セキュリティ・データ構造427内の1つまたは複数のフィールドをハッシュしたものである。ハッシュでは、入力データをとって、当該入力データの長さに基づいて長さが固定で変化しない出力データを計算する。十分な長さの出力データと適切なハッシュが与えられれば、ハッシュは入力データに対する一意の識別子を効果的に提供する。
タイムスタンプ・フィールド410は、文書の作成時点を示すタイムスタンプを含むことができる。前述のように、暗号化データ・フィールド420は、ユーザが保護したい任意のコンテンツを含むことができる。
名前空間署名フィールド425は、文書データ構造400が許可されたユーザによって作成され、作成されてから変更されていないことを保証するために使用できる任意の1つまたは複数の機構を備える。1つの例示的な機構は、後で詳細に説明する署名である。
文書データ構造400に含まれるフィールドの数は、文書に関連するセキュリティ・データを特定するか含むための機構と、文書が許可されたユーザによって作成され、作成されてから変更されていないことを保証するための機構を文書データ構造400が含む限り、多くても少なくてもよい。
セキュリティ・データ構造427はセキュリティ・データ識別子フィールド430、1つまたは複数の認証フィールド440、1つまたは複数のキー450、および署名455を含むことができる。1実施形態では、セキュリティ・データ識別子フィールド430内のセキュリティ・データ識別子を前述のように(即ち、セキュリティ・データ構造427の他のフィールドのハッシュとして)計算することができる。
セキュリティ・データ構造は、文書の親である文書(もしあれば)に関連付けられたセキュリティ・データ構造を特定する親のセキュリティ識別子フィールドを含むこともできる。図5に関連して後でより詳細に説明するように、親セキュリティ・データ識別子を使用して、子文書を作成する権限をもつセキュリティ・プリンシパルによって子文書が生成されたかどうかを検証することができる。
認証フィールド440は、文書データ構造400へのアクセス権を有するか文書データ構造400に関する他の何らかの役割をもつセキュリティ・プリンシパル(「エンティティ」と称することもある)ごとの認証を含む。幾つかの実施形態では、セキュリティ・プリンシパルは、認証として知られる技法を介して確実に特定され検証されうるエンティティである。他の実施形態では、セキュリティ・プリンシパルは別の文書に関連付けられたセキュリティ・データから復号化したキーを有することができる。セキュリティ・プリンシパルには、ユーザ、マシン、サービス、プロセス、他のエンティティ、暗号化されたキー、または1つもしくは複数の上記のもののうちの複数(例えば、グループ)が含まれる。各認証は、セキュリティ・プリンシパルが保持しているかセキュリティ・プリンシパルが作成したキーによって復号化が可能なキーで暗号化することができる。公開キーまたは秘密キーによる暗号方式は、認証を暗号化または復号化するために使用できる1つの機構である。
特定のセキュリティ・プリンシパルは多数のキーをもつことができ、セキュリティ文書には多数の認証がありうるので、1実施形態では、最適化により、認証の復号化に使用できるキーの最初の数ビットを(平文で)提供するキーヒントを提供する。エンティティはキーの最初の数ビットを単純に当該キーと比較できるので、キーヒントにより、エンティティはどの認証の復号化を試みるべきかを迅速に決定することができる。何百あるいは何千という認証がある場合は、この機構によって時間を大幅に節約することができる。キーヒントで提供されるビット数を数ビット(例えば、2ビットから16ビットの間)とすることができるので、認証の暗号化または復号化に使用される機構の強度が大幅に弱まることはない。必要ならば、より長いキーを用いて当該機構の強度を増大させることができる。
1実施形態では、認証は、セキュリティ・プリンシパルが文書に関する1つまたは複数のアクセス権または役割(ロール)を遂行できるようにする、暗号化されたキーを含む。例えば、ユーザのセキュリティ・プリンシパルに、文書を読み取り、新しいバージョンの文書を作成し、所与の名前空間内で新しい文書を作成し、どのセキュリティ・プリンシパルが文書にアクセスできるかを変更し、文書に関する他の任意のセキュリティ関連の動作を実施するための権限を与えることができる。別のユーザのセキュリティ・プリンシパルに読取専用アクセス権または書込み専用アクセス権を与えることができる。文書に関してどのような権限も与えられていないエンティティは依然としてコピー専用のアクセス権(即ち、暗号化データをコピーはできるが有意味に読むことはできない)のみを有することができる。係るエンティティを、例えば、文書をアーカイブするために使用することができる。
別の実施形態では、認証は、セキュリティ・プリンシパルが追加のキーをセキュリティ・データ構造427の別の場所(例えば、キー(複数可)450内)で復号化できるようにする暗号化されたキーを含むことができる。これらの追加のキーにより、文書に関連付けられたアクセス権または他の役割をセキュリティ・プリンシパルに付与することができる。これを、例えば、セキュリティ・データ構造427に必要な空間を減らすために実施できる。なぜならば、認証内の単一のキーを使用して、セキュリティ・データ構造427内の別の場所にある複数のキーを復号化できるからである。セキュリティ・データ構造427が何百、何千という認証を含む場合、多数の認証が1組の共通アクセス権を共有できる。これらのアクセス権に対応するキーを認証自体に含めることができるが、セキュリティ・プリンシパルがセキュリティ・データ構造427内の別の場所にアクセスキーを復号化できるようにする単一キーを各認証に与えると空間効率が良いであろう。
利用オプション445は、どのように文書を保護するかに関連する1つまたは複数のポリシを含むことができる。例えば、ポリシにより、署名がセキュリティ・データ構造そのものに置かれること、文書データ構造そのものに置かれること、両方に置かれること、または一部の署名が両方のデータ構造に複製されその他の署名が当該データ構造のうち1つだけに置かれることを示すことができる。ポリシにより、各バージョンをオブザーバによって署名すべきかどうかを示すことができる。係るポリシの下では、例えば、オブザーバによって署名されていないバージョンは無効と判定することができる。ポリシにより、名前空間の所有者を作成後に変更できるかどうかを示すことができる。
キー450は、前述のように、文書内で付与されたアクセス権または役割に対応しうる暗号化された秘密キーを含むことができる。前述のように、これらのキーを、認証(複数可)フィールド440内で得られるキーによって復号化することができる。さらに、これらのキーには、文書またはセキュリティ・データ構造が許可されたセキュリティ・プリンシパルによって作成されたかどうかを検証するために使用できる公開された(即ち、暗号化されていない)公開キーが含まれる。
署名フィールド455を、データ構造400の署名フィールド455と同じ方法で使用することができる。
セキュリティ・データ構造427に含まれるフィールドの数は、セキュリティ・データ構造427が、その関連文書(複数可)に関連づけられた役割にアクセスするかまたは実行するためのキーを、許可されたユーザに提供する機構を含む限り、多くても少なくてもよい。
1実施形態では、文書データ構造400は、別の文書データ構造を特定する識別子を含むことができる。他の文書データ構造は、文書へのアクセスまたは文書に関連付けられた役割を可能とするキーを含むことができる。この機構を使用して、文書へのグループ・アクセスまたは文書に関連付けられたグループ役割を提供することができる。例えば、第1の文書データ構造に関連付けられたセキュリティ・データ構造内の認証は、グループのメンバが保持するキーに対応することができる。適切なキーを有するグループの任意のメンバは、メンバのキーをセキュリティ・データから取得することができる。メンバのキーにより、メンバは、第2の文書に関連付けられたセキュリティ・データ内でグループに付与された権限に従って第2の文書にアクセスするか、第2の文書に関連付けられた役割を遂行することができる。このように、文書へのアクセスまたは文書に関連付けられた役割の提供では、中間的な文書へアクセスしてもよい。
別の実施形態では、文書データ構造400は文書識別子または別の文書をまとめて省略することができる。本実施形態では、別の機構により、第1の文書のセキュリティ・データ内のキーが第2の文書へのアクセスを提供できることを示唆することができる。例えば、第1の文書がグループ・アクセスを別の文書に提供することが既知である場合、第1の文書のセキュリティ・データから得たメンバのキーを、ユーザがアクセスを試みたその他の全ての文書のセキュリティ・データにおける全ての認証に対して試すことができる。前述のキーヒントにより本プロセスを加速することができる。
図5Aは、本明細書で説明する主題の態様に従って、変化しうるデータと、子文書の作成において実施できる動作とを一般的に表すブロック図である。子文書510は親文書505の子である。子文書510は、名前空間の所有権を有するセキュリティ・プリンシパルによって作成される。名前空間の所有権を有するセキュリティ・プリンシパルを、本明細書では単純に名前空間所有者と称することもある。子文書510の作成において、名前空間所有者は、文書505によって特定されるセキュリティ・データ515内で暗号化した名前空間所有者の秘密キーno1を用いて、文書510を署名することができる。名前空間所有者は、名前空間所有者が保有しているか作成可能なキーを用いて認証内で当該秘密キーno1を復号化することによって、秘密キーno1を得る。
1実施形態では、名前空間所有者は、文書510のハッシュを計算し次いで当該ハッシュを秘密キーno1を用いて暗号化することによって、秘密キーno1を用いて文書510に署名する。文書510が名前空間所有者によって署名されたことを検証したいエンティティは、名前空間所有者の公開キーNO1をセキュリティ・データ515から取得し、子文書510の署名を名前空間所有者の公開キーNO1で復号化し、文書510のハッシュを計算し、復号化した文書510の署名を文書510のハッシュと比較することができる。復号化された署名と文書510のハッシュが同じ場合は、セキュリティ・プリンシパルは文書510が、名前空間所有者の秘密キーno1へのアクセス権を有するエンティティによって作成されたことを確信する。
名前空間所有者が、子文書の名前空間内に新しい文書を作成できる名前空間所有者(複数可)を変更しない場合、当該名前空間所有者は親文書505が関連付けられる同じセキュリティ・データ515に子文書510を関連付けることができる。セキュリティ・プリンシパルが子文書の名前空間内に新しい文書を作成できる名前空間所有者(複数可)を変更した場合、図5Bに関してより詳細に説明するように、当該名前空間所有者は新しいセキュリティ・データ520を作成でき、子文書530を新しいセキュリティ・データ520と関連付けることができる。
図5Bは、本明細書で説明する主題の態様に従って、変化しうるデータと、子文書の作成、および子文書の名前空間で文書を作成できる名前空間の所有者(複数可)の変更において実施できる動作とを一般的に表すブロック図である。親文書の名前空間所有者は新しいセキュリティ・データ520を作成することができる。名前空間所有者は名前空間所有者の新しい秘密キーno2を作成することもでき、秘密キーno2を新しいセキュリティ・データ520に置いて子文書530の名前空間内で子文書を作成する権限をもつ名前空間所有者(複数可)を変更することができる。
これを行って、例えば、子文書に関連付けられたユーザが子文書の子文書を作成できるようにすることができる。例えば、システム管理者等はユーザに対してディレクトリを作成することができる。ユーザが新しい文書をディレクトリ内で作成きるようにするために、システム管理者は当該ディレクトリに対するセキュリティ・データ内で、当該ユーザが名前空間所有者であることを示すことができる。
名前空間所有者の新しい秘密キーno2を作成しそれを新しいセキュリティ・データ520に置いた後、名前空間所有者は新しいセキュリティ・データ520を名前空間所有者の秘密キーno1で署名することができる。これを行って、名前空間所有者が、セキュリティ・データ520に反映される名前空間所有者変更をセキュリティ・データ515に行う権限があったことを示すことができる。例えば書込み秘密キーno1を使用することによって、セキュリティ・データ520内に記憶したデータのハッシュを暗号化するための署名を作成することができる。名前空間所有者は子文書530を作成し、子文書530を新しいセキュリティ・データ520と関連付けることもできる。名前空間所有者が子文書540を親文書525の名前空間内で作成する権限を有していたことを示すために、セキュリティ・プリンシパルは新しい文書530を名前空間所有者の秘密キーno1で署名することができる。
1実施形態では、文書(例えば、親文書525)の子(例えば、子文書530)が許可された名前空間所有者によって作成されたことを検証するために、プロセスは親バージョンの文書(例えば、文書525)を得ることができる。親バージョンの文書を用いて、プロセスは当該文書に関連付けられたセキュリティ・データ(例えば、セキュリティ・データ515)を発見することができる。
別の実施形態では、子文書530に関連付けられた新しいセキュリティ・データ520は、親文書525に関連付けられたセキュリティ・データ515を特定する識別子を含むことができる。本実施形態では、親文書525を取得する必要はなく、子文書530に対する新しいセキュリティ・データ520を使用して親文書525に対するセキュリティ・データ515を発見することができる。
親文書525に対するセキュリティ・データ515は、名前空間所有者の公開キーNO1を含む。新しいセキュリティ・データ520内のNO1と署名を使用すると、プロセスは、新しいセキュリティ・データ520が名前空間所有者の権限を有するセキュリティ・プリンシパルによって作成されたことを検証することができる。子文書530内のNO1と署名を使用すると、プロセスは、子文書530が名前空間所有者の権限を有するセキュリティ・プリンシパルによって作成されたことを検証することができる。
幾つかの実施形態では、名前空間所有者の署名をセキュリティ・データのみ、文書のみ、またはセキュリティ・データと文書の両方に、含めることができる。これを、前述の利用オプションによって制御することができる。
文書の階層が許可された名前空間所有者によって作成されたことを検証したいエンティティは、ルート文書への階層を再帰的に辿ることができる。例えば、エンティティはルート文書から(階層上)最も遠い子文書から開始して、子文書が図5Aおよび図5Bに関連して上述したように許可された名前空間所有者によって作成されたことを検証することができる。次いで、エンティティはその親文書をとって、当該親文書が許可された名前空間所有者によって作成されたことを検証することができる。これを、エンティティがルート文書に到達するまで繰り返すことができる。ルート文書では、エンティティは公開キーをディレクトリ・サービスから取得して、ルート文書が許可された名前空間所有者によって作成されたかどうかを判定することができる。
将来の検証を加速するため、文書の階層が許可された名前空間所有者によって作成されたと決定した後、エンティティは、文書が許可された名前空間所有者によって作成されたことを示すデータ構造を更新することができる。他の文書を検証するために、エンティティは、当該他の文書が階層の少なくとも一部を共有する限り、当該データ構造に問い合わせることができる。
本明細書で説明する態様の趣旨または範囲から逸脱しない他のデジタル署名/検証機構も使用することができる。
図6は、本明細書で説明する主題の態様に従って、文書の作成において実施できる例示的な動作を一般的に表す流れ図である。ブロック605で、動作が開始する。
ブロック610で、エンティティは、当該エンティティが子文書の作成を予定している親文書を取得する。例えば、図3を参照すると、作成/検証エンティティ305は、記憶装置320に記憶された親文書を取得する。作成されている文書がルート文書である場合、親文書を取得する必要はない。そのかわり、秘密キーと公開キーの対を名前空間所有者に対して作成することができる。秘密キーはルート文書を署名するために使用され、公開キーはディレクトリ・サービス内で公開される。
ブロック615で、子文書が親文書の名前空間所有者(複数可)とは異なる新しい名前空間所有者(複数可)を含むかどうかを判定する。含む場合、動作はブロック635で継続し、含まない場合には動作はブロック620で継続する。新しい名前空間所有者(複数可)が望まれる場合は、新しい名前空間所有者のキーをセキュリティ・データに書き込み、これらのキーへのアクセスを、名前空間所有者の役割を与えられたセキュリティ・プリンシパルに制限することができる。同じ名前空間所有者(複数可)が子文書の名前空間を所有する場合は、子文書は単純に親文書に対するセキュリティ・データを参照することができる。ルート文書を作成する場合、動作はブロック635で継続する。
ブロック620で、文書の子を作成する。例えば、図3を参照すると、作成/検証エンティティ305は文書の子を作成する。
ブロック625で、子文書にその親文書のセキュリティ・データを関連付ける。例えば、図4および図5Aを参照すると、新しい文書内のセキュリティ・データ識別子410を、セキュリティ・データ515を特定する識別子で埋める。
ブロック630で、子文書を署名する。例えば、図3を参照すると、作成/検証エンティティ305はその名前空間所有者の秘密キーを、親文書に関連付けられたセキュリティ・データから取得し、新しい文書を当該秘密キーで署名する。
ブロック635で、名前空間所有者(複数可)が作成された場合(またはルート文書が作成されている場合)、新しいセキュリティ・データを作成する。例えば、図3および図5Bを参照すると、作成/検証エンティティ305は新しいセキュリティ・データ520を作成する。
ブロック640で、子文書を作成する。例えば、図3および図5Bを参照すると、作成/検証エンティティ305は子文書530を作成する。
ブロック645で、子文書に新しいセキュリティ・データを関連付ける。例えば、図3、4、および5Bを参照すると、作成/検証エンティティ305はセキュリティ・データ520を特定するために子文書530のセキュリティ・データ識別子410を埋める。
ブロック650で、ブロック630に関して説明したのと同様に子文書を署名する。さらに、新しいセキュリティ・データも署名することができる。
図6では示していないが、前述のように、オブザーバの書名といった他の署名も取得し文書および/またはセキュリティ・データに置くことができることに留意されたい。
ブロック655で、動作が終了する。
図7は、本明細書で説明する主題の態様に従って、文書が許可された名前空間所有者によって作成されたことを検証する際に実施できる例示的な動作を一般的に表す流れ図である。ブロック705で、動作が開始する。
ブロック710で、文書を取得する。例えば、図3を参照すると、作成/検証エンティティ305は、記憶装置320から取り出される文書を要求し取得することができる。
ブロック715で、セキュリティ・データを取得する。セキュリティ・データが文書に含まれる場合、当該セキュリティ・データを当該文書から取り出す。セキュリティ・データが(図3に示すセキュリティ・データ・リポジトリのような)別の場所に置かれている場合、当該セキュリティ・データをそこから取得する。
ブロック720で、文書作成時に新しい名前空間所有者が設定されていたかどうかを判定する。設定されていれば、動作はブロック735で継続する。設定されていなければ、動作はブロック725で継続する。前述のように、名前空間所有者の新しいキーを使用して、文書の子の名前空間内で文書を作成する権限をもつセキュリティ・プリンシパルを変更することができる。
ブロック725で、公開キーを文書に関連付けられたセキュリティ・データのフィールドから取得する。例えば、図4を参照すると、名前空間所有者の公開キーをキー(複数可)フィールド450から取得することができる。
ブロック730で、公開キーを使用して、文書が許可された名前空間所有者によって作成されたかどうかを検証する。これを、例えば、前述のように実施することができる。
ブロック735で、文書を作成するために新しい名前空間所有者のキーを使用したとき、親文書の識別子を取得する。例えば、図3および図4を参照すると、作成/検証エンティティ305は、文書識別子を(この識別子が階層的である場合に)使用して文書の親を取得することができる。作成/検証エンティティ305は次いで、親文書に関連付けられたセキュリティ・データの記録に対するセキュリティ識別子を、この文書から取得することができる。
ブロック740で、公開キーを、親文書に関連付けられたセキュリティ・データの記録のフィールドから取得する。ブロック750で、前述のようにこの公開キーを使用して文書が許可されたセキュリティ・プリンシパルによって作成されたかどうかを検証する。
ブロック755で、動作が終了する。
図8は、本明細書で説明する主題の態様に従って動作するように構成した例示的な装置を表すブロック図である。装置805は、作成コンポーネント810、暗号化コンポーネント815、文書ロケータ820、検証コンポーネント825、データ記憶830、および通信機構835を備えることができる。
作成コンポーネント810は、前述のような名前空間所有権を有する作成エンティティを表す。暗号化コンポーネント815は、データを暗号化および復号化するために使用し、例えば、暗号化ルーチンのライブラリを備えることができる。
文書ロケータ820は、文書が配置される場所を決定し、その場所は、ローカル・データ記憶830上か装置805外部にある何らかのデータ記憶上である。
検証コンポーネント825は、前述の検証エンティティを表し、文書が許可された名前空間所有者によって作成されたかどうかの判定に関与する。
通信機構835により、例えば、装置805は他の装置と通信して文書とセキュリティ・データを取得することができる。通信機構640はネットワーク・インタフェースまたはアダプタ170、モデム172、または図1に関連して説明したような通信を確立するための他の任意の手段であることができる。
本明細書で説明した主題の態様の趣旨または範囲から逸脱しない、図8に示す装置805の他の変形を実装してもよいことは理解されよう。本明細書で説明した主題の態様の趣旨または範囲から逸脱しない、より多くの、より少ない、または他のコンポーネントが装置805上に存在してもよいことは理解されよう。
以上の詳細な説明から分かるように、暗号で保護した文書の作成と検証に関連する態様を説明した。本明細書で説明した主題の態様は様々な修正および代替構成を受け入れる余地があるが、その或る特定の例示的な実施形態が図面で示されており、上で詳細に説明されている。しかし、クレーム主題の態様を開示した特定の形態に限定する意図はなく、逆に、本明細書で説明した主題の様々な態様の趣旨と範囲内にある全ての修正、代替構成、および均等物を含む意図があることは理解されよう。

Claims (20)

  1. 実行時に、
    文書を第1の名前空間内で作成することに関連するキーを取得するステップ(625、635)と、
    前記第1の名前空間で文書を作成するステップであって、前記文書は、前記文書に関連付けられた第2の名前空間内で文書を作成する権限をもつエンティティに関連する暗号化されたフィールドを特定するステップ(620、640)と、
    前記キーを使用して、前記文書が前記キーへのアクセス権を有するエンティティによって作成されたことを示す証を作成するステップ(630、650)と、
    を含む動作を実施する、コンピュータ実行可能命令を有する、コンピュータ読取可能媒体(130、141、152、156、181)。
  2. 文書を第1の名前空間内で作成することに関連するキーを取得するステップは秘密キーを作成するステップを含む、請求項1に記載のコンピュータ読取可能媒体。
  3. 前記キーを使用して、前記文書が前記キーへのアクセス権を有するエンティティによって作成されたことを示す証を作成するステップは、前記秘密キーを使用して、前記暗号化されたフィールドを含むセキュリティ・データの少なくとも一部のハッシュの署名を作成するステップを含む、請求項2に記載のコンピュータ読取可能媒体。
  4. 前記秘密キーに対応する公開キーを作成するステップと、前記署名が前記秘密キーを介して作成されたことを検証しようとするエンティティに前記公開キーへのアクセス権を提供するサービスに前記公開キーを格納するステップとをさらに含む、請求項3に記載のコンピュータ読取可能媒体。
  5. 文書を第1の名前空間内で作成することに関連するキーを取得するステップは、秘密キーを別の文書に関連するデータから取得するステップを含み、前記データは1組の1つまたは複数のエンティティが文書を前記第1の名前空間内で作成することを許可し、前記データは暗号化されている、請求項1に記載のコンピュータ読取可能媒体。
  6. その他の文書に関連する前記データは前記文書にも関連し、その結果、前記データは、1組の1つまたは複数のエンティティが文書を前記第1および第2の名前空間内で作成することを許可する、請求項5に記載のコンピュータ読取可能媒体。
  7. 別の1組の1つまたは複数のエンティティは文書を前記第2の名前空間内で作成する権限をもつ、請求項5に記載のコンピュータ読取可能媒体。
  8. 前記他の文書は前記文書の親である、請求項5に記載のコンピュータ読取可能媒体。
  9. 前記キーは暗号化され、前記エンティティによって復号化可能である認証フィールドと関連付けられている、請求項1に記載のコンピュータ読取可能媒体。
  10. 文書を前記第1の名前空間内で作成する権限をもつ全てのエンティティが文書を前記第2の名前空間内でも作成できるよう許可されている場合に、文書を親文書のセキュリティ・データと関連付けるステップをさらに含む、請求項1に記載のコンピュータ読取可能媒体。
  11. 子文書を作成したエンティティの署名を含む前記子文書を取得するステップであって、前記署名は秘密キーを用いて作成されているステップ(710)と、
    親文書を取得するステップであって、前記親文書は前記子文書の親であり、前記親文書はエンティティが前記親文書の子を作成することを許可するフィールドを含むデータに関連付けられ、前記フィールドは暗号化されており、前記親文書はまた前記秘密キーに対応する公開キーを含むステップ(735)と、
    前記公開キーを取得するステップ(725、740)と、
    前記文書を作成した前記エンティティの前記署名が前記秘密キーを用いて作成されたことを、前記公開キーを介して決定するステップ(730、750)と、
    を含む、コンピュータによって少なくとも部分的に実装した方法。
  12. 前記親文書は、前記データを特定し前記データの少なくとも一部のハッシュである識別子を含む、請求項11に記載の方法。
  13. 前記子文書は、エンティティが前記子文書の子を作成することを許可する他のデータを特定する識別子も含み、前記他のデータは暗号化されており、前記他のデータは前記子文書の子を作成する権限をもつエンティティによって復号化可能である、請求項11に記載の方法。
  14. 前記子文書と前記親文書はそれぞれ前記文書に関連付けられた階層を示すものを含む、請求項11に記載の方法。
  15. 前記階層は前記親文書が前記子文書の親であることを示す、請求項14に記載の方法。
  16. 前記文書を作成した前記エンティティの前記署名が前記秘密キーを用いて作成されたことを前記公開キーを介して決定するステップは、前記子文書のハッシュを計算するステップと、前記公開キーを前記署名に適用して諸ビットを取得するステップと、前記子文書の前記ハッシュを前記諸ビットと比較するステップとを含む、請求項11に記載の方法。
  17. エンティティが前記親文書の子を作成することを許可するフィールドはキーを含み、前記キーによって前記秘密キーが得られる、請求項11に記載の方法。
  18. コンピューティング環境において、
    暗号化データを含む親文書の場所を決定するように動作可能な文書ロケータであって、前記親文書は前記親文書に関連付けられたセキュリティ・データを特定し、前記セキュリティ・データは、前記親文書の子文書を作成する権限をもつエンティティに関連する暗号化されたフィールドを含む文書ロケータ(820)と、
    暗号化動作を実施するように動作可能な暗号化コンポーネント(815)と、
    前記暗号化コンポーネントおよび前記暗号化されたフィールドを使用して子文書を作成するように動作する作成コンポーネント(810)と、
    を備える装置。
  19. 前記子文書が許可されたエンティティによって作成されたかどうかを判定するように動作可能な検証コンポーネントをさらに備える、請求項18に記載の装置。
  20. 前記暗号化されたフィールドは秘密キーを含み、前記作成コンポーネントはさらに、前記暗号化コンポーネントを使用して前記子文書を前記秘密キーで署名するように動作可能である、請求項18に記載の装置。
JP2010517086A 2007-07-13 2008-07-11 暗号で保護した文書の作成と検証 Active JP5480135B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/777,297 2007-07-13
US11/777,297 US8887297B2 (en) 2007-07-13 2007-07-13 Creating and validating cryptographically secured documents
PCT/US2008/069842 WO2009012165A2 (en) 2007-07-13 2008-07-11 Creating and validating cryptographically secured documents

Publications (2)

Publication Number Publication Date
JP2010534033A true JP2010534033A (ja) 2010-10-28
JP5480135B2 JP5480135B2 (ja) 2014-04-23

Family

ID=40254239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010517086A Active JP5480135B2 (ja) 2007-07-13 2008-07-11 暗号で保護した文書の作成と検証

Country Status (6)

Country Link
US (1) US8887297B2 (ja)
EP (1) EP2176984B1 (ja)
JP (1) JP5480135B2 (ja)
CN (1) CN101689989B (ja)
RU (1) RU2500075C2 (ja)
WO (1) WO2009012165A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266706B2 (en) 2007-01-26 2012-09-11 Microsoft Corporation Cryptographically controlling access to documents
KR20170107126A (ko) * 2016-03-14 2017-09-25 주식회사 랜드스퀘어 개인간 거래를 위한 부동산 증권화 방법

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
CN102215109A (zh) * 2011-08-15 2011-10-12 天津大学 基于计算机取证的数字证据动态保存及验证方法
EP2634991B1 (en) * 2012-02-28 2017-08-02 Alcatel Lucent Content-centric networking
JP5447722B1 (ja) * 2013-07-17 2014-03-19 富士ゼロックス株式会社 情報処理システム及びプログラム
US9356962B2 (en) * 2013-09-10 2016-05-31 Vmware, Inc. Extensible multi-tenant cloud-management system and methods for extending functionalities and services provided by a multi-tenant cloud-managment system
CN105022963A (zh) * 2014-04-23 2015-11-04 宇龙计算机通信科技(深圳)有限公司 文档保存方法、系统及终端
US9792315B2 (en) 2014-08-21 2017-10-17 Dropbox, Inc. Multi-user search system with methodology for bypassing instant indexing
US9183303B1 (en) 2015-01-30 2015-11-10 Dropbox, Inc. Personal content item searching system and method
US9384226B1 (en) 2015-01-30 2016-07-05 Dropbox, Inc. Personal content item searching system and method
FR3037700A1 (fr) * 2015-06-22 2016-12-23 Oberthur Technologies Procede de delegation et de verification de droits sur un tutore entre un tuteur et un tiers.
FR3037699A1 (fr) * 2015-06-22 2016-12-23 Oberthur Technologies Procedes d'affiliation, d'emancipation, et de verification entre un tuteur et un tutore.
JP2017059173A (ja) * 2015-09-18 2017-03-23 富士ゼロックス株式会社 情報供給装置、操作端末、情報処理システムおよびプログラム
US10805080B2 (en) * 2017-01-06 2020-10-13 Microsoft Technology Licensing, Llc Strong resource identity in a cloud hosted system
TWI612363B (zh) * 2017-03-27 2018-01-21 友達光電股份有限公司 顯示器
SE541713C2 (en) * 2017-05-03 2019-12-03 Enigio Time Ab Method and system for registering digital documents
WO2018222202A1 (en) * 2017-06-02 2018-12-06 Hewlett-Packard Development Company, L.P. Digital composition hashing
US11824840B1 (en) * 2019-02-04 2023-11-21 Meixler Technologies, Inc. System and method for web-browser based end-to-end encrypted messaging and for securely implementing cryptography using client-side scripting in a web browser

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002183141A (ja) * 2000-12-14 2002-06-28 Fuji Xerox Co Ltd ドキュメント管理システム
JP2003248736A (ja) * 2002-02-22 2003-09-05 Fujitsu Ltd 情報機器の時刻証明に関する装置及びプログラム
JP2004502379A (ja) * 2000-06-29 2004-01-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多重レベルアクセス特権を付与する単一文書の多重暗号化
JP2004151868A (ja) * 2002-10-29 2004-05-27 Canon Inc 電子バインダ装置
JP2004151163A (ja) * 2002-10-28 2004-05-27 Fuji Xerox Co Ltd 文書管理システムおよび方法、機密化装置および方法並びにプログラム、閲覧装置および方法並びにプログラム
JP2006092525A (ja) * 2004-08-26 2006-04-06 Mitsubishi Electric Corp 鍵管理装置、文書保護・編集システム及び鍵管理方法
JP2008181290A (ja) * 2007-01-24 2008-08-07 Fuji Xerox Co Ltd 文書管理システム、文書管理装置、制限情報管理装置、文書管理プログラムおよび制限情報管理プログラム
JP2008299395A (ja) * 2007-05-29 2008-12-11 Fuji Xerox Co Ltd 文書操作権限情報管理システム、文書操作権限情報管理装置、及び文書操作権限情報管理プログラム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974238A (en) * 1996-08-07 1999-10-26 Compaq Computer Corporation Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements
US6732277B1 (en) * 1998-10-08 2004-05-04 Entrust Technologies Ltd. Method and apparatus for dynamically accessing security credentials and related information
US6757896B1 (en) * 1999-01-29 2004-06-29 International Business Machines Corporation Method and apparatus for enabling partial replication of object stores
JP3254434B2 (ja) * 1999-04-13 2002-02-04 三菱電機株式会社 データ通信装置
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US7117371B1 (en) * 2000-06-28 2006-10-03 Microsoft Corporation Shared names
US6505200B1 (en) * 2000-07-06 2003-01-07 International Business Machines Corporation Application-independent data synchronization technique
US20030021417A1 (en) * 2000-10-20 2003-01-30 Ognjen Vasic Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7062490B2 (en) 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
WO2002082281A2 (en) 2001-04-04 2002-10-17 M-Systems Flask Disk Pioneers Ltd. Remote data synchronization
US20030005306A1 (en) * 2001-06-29 2003-01-02 Hunt Preston J. Message digest based data synchronization
JP4149150B2 (ja) * 2001-08-15 2008-09-10 富士通株式会社 ライセンスのオフライン環境下における送信流通システム及び送信流通方法
RU2207618C2 (ru) * 2001-08-27 2003-06-27 Щеглов Андрей Юрьевич Система контроля доступа к информационным ресурсам
CA2411294C (en) * 2001-11-06 2011-01-04 Everyware Solutions Inc. A method and system for access to automatically synchronized remote files
US7134020B2 (en) * 2002-01-31 2006-11-07 Peraogulne Corp. System and method for securely duplicating digital documents
US20030217264A1 (en) * 2002-05-14 2003-11-20 Signitas Corporation System and method for providing a secure environment during the use of electronic documents and data
US20040255137A1 (en) * 2003-01-09 2004-12-16 Shuqian Ying Defending the name space
KR20040070382A (ko) 2003-02-03 2004-08-09 (주)디지탈센스 문서 유출 방지 시스템 및 방법
US7743022B2 (en) * 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US7353397B1 (en) * 2003-04-30 2008-04-01 Adobe Systems Incorporated Repurposing digitally signed information
JP2005079912A (ja) * 2003-08-29 2005-03-24 Matsushita Electric Ind Co Ltd セキュアデータ管理装置
US20050055698A1 (en) * 2003-09-10 2005-03-10 Sap Aktiengesellschaft Server-driven data synchronization method and system
US20050127895A1 (en) * 2003-12-10 2005-06-16 Functional Devices, Inc. Current sensor wire clamp
US7487189B2 (en) 2003-12-19 2009-02-03 Microsoft Corporation Extensible remote data synchronization
US20050138211A1 (en) * 2003-12-19 2005-06-23 Mobile Action Technology Inc. Data synchronization system with data security and proxy capabilities
JP2005332010A (ja) 2004-05-18 2005-12-02 Ricoh Co Ltd 文書管理システム、プログラムおよび記録媒体
US7827416B2 (en) * 2004-08-26 2010-11-02 Mitsubishi Denki Kabushiki Kaisha Key management apparatus, document security and editing system, and key management method
US7613703B2 (en) 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US20060265508A1 (en) 2005-05-02 2006-11-23 Angel Franklin J System for administering a multiplicity of namespaces containing state information and services
US7490300B2 (en) * 2005-08-12 2009-02-10 Microsoft Corporation Copying and updating files
KR100736091B1 (ko) 2005-12-09 2007-07-06 삼성전자주식회사 복수의 인증서를 관리하는 장치 및 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004502379A (ja) * 2000-06-29 2004-01-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多重レベルアクセス特権を付与する単一文書の多重暗号化
JP2002183141A (ja) * 2000-12-14 2002-06-28 Fuji Xerox Co Ltd ドキュメント管理システム
JP2003248736A (ja) * 2002-02-22 2003-09-05 Fujitsu Ltd 情報機器の時刻証明に関する装置及びプログラム
JP2004151163A (ja) * 2002-10-28 2004-05-27 Fuji Xerox Co Ltd 文書管理システムおよび方法、機密化装置および方法並びにプログラム、閲覧装置および方法並びにプログラム
JP2004151868A (ja) * 2002-10-29 2004-05-27 Canon Inc 電子バインダ装置
JP2006092525A (ja) * 2004-08-26 2006-04-06 Mitsubishi Electric Corp 鍵管理装置、文書保護・編集システム及び鍵管理方法
JP2008181290A (ja) * 2007-01-24 2008-08-07 Fuji Xerox Co Ltd 文書管理システム、文書管理装置、制限情報管理装置、文書管理プログラムおよび制限情報管理プログラム
JP2008299395A (ja) * 2007-05-29 2008-12-11 Fuji Xerox Co Ltd 文書操作権限情報管理システム、文書操作権限情報管理装置、及び文書操作権限情報管理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266706B2 (en) 2007-01-26 2012-09-11 Microsoft Corporation Cryptographically controlling access to documents
KR20170107126A (ko) * 2016-03-14 2017-09-25 주식회사 랜드스퀘어 개인간 거래를 위한 부동산 증권화 방법
KR102585177B1 (ko) * 2016-03-14 2023-10-06 주식회사 제주스퀘어 개인간 거래를 위한 부동산 증권화 방법

Also Published As

Publication number Publication date
US8887297B2 (en) 2014-11-11
CN101689989B (zh) 2012-07-04
CN101689989A (zh) 2010-03-31
EP2176984B1 (en) 2020-05-06
WO2009012165A2 (en) 2009-01-22
US20090019548A1 (en) 2009-01-15
RU2500075C2 (ru) 2013-11-27
JP5480135B2 (ja) 2014-04-23
EP2176984A4 (en) 2016-10-05
EP2176984A2 (en) 2010-04-21
RU2010100880A (ru) 2011-07-20
WO2009012165A3 (en) 2009-04-09

Similar Documents

Publication Publication Date Title
JP5480135B2 (ja) 暗号で保護した文書の作成と検証
US11475137B2 (en) Distributed data storage by means of authorisation token
US8887298B2 (en) Updating and validating documents secured cryptographically
US7320076B2 (en) Method and apparatus for a transaction-based secure storage file system
JP4662706B2 (ja) サーバーレス分散ファイルシステムにおけるセキュアリカバリ
CN111800268A (zh) 用于区块链背书的零知识证明
CN107005568B (zh) 数据安全操作与预期
US8832047B2 (en) Distributed document version control
US8042163B1 (en) Secure storage access using third party capability tokens
US8364984B2 (en) Portable secure data files
US8424102B1 (en) Document access auditing
US8578157B2 (en) System and method for digital rights management with authorized device groups
JP3943090B2 (ja) コンテンツのディジタル権利管理(drm)ライセンスの発行に関するキャッシングされたユーザ−グループ情報の再検討
JP2023520372A (ja) 企業環境におけるブロックチェーンの統合、グループ権限とアクセスの管理
JP2004038974A (ja) デジタルコンテンツとサービスの使用ライセンスを発行するためのシステムおよびその方法
JP2018504806A5 (ja)
US20130124856A1 (en) System And Method For A Single Request And Single Response Authentication Protocol
KR20060096887A (ko) 액세스 권한에 기초하여 아이템 사용 권한을 생성하는컴퓨터 판독가능 매체 및 그 생성 방법
US8266706B2 (en) Cryptographically controlling access to documents
Sánchez‐Artigas et al. StackSync: Attribute‐based data sharing in file synchronization services
US20240111884A1 (en) Authenticating a File System Within Untrusted Storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130607

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130905

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140213

R150 Certificate of patent or registration of utility model

Ref document number: 5480135

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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