JP5030654B2 - ロギングとデータ交換同期のセキュアかつ効率的な方法 - Google Patents
ロギングとデータ交換同期のセキュアかつ効率的な方法 Download PDFInfo
- Publication number
- JP5030654B2 JP5030654B2 JP2007112344A JP2007112344A JP5030654B2 JP 5030654 B2 JP5030654 B2 JP 5030654B2 JP 2007112344 A JP2007112344 A JP 2007112344A JP 2007112344 A JP2007112344 A JP 2007112344A JP 5030654 B2 JP5030654 B2 JP 5030654B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- entry
- attribute
- content
- context
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Description
(発明の詳細な説明)
本システムの一実施形態の要素としては、グローバルに一意的な識別子、HTTPベースのデータ交換、ロギングフォーマット、同期方法、監査手続及び認証手続がある。各要素は、以下に詳細に説明し、上記のプロジェクトの実施例を例示する。
コンテクスト
本技術を詳細に説明する前に、ここで使用する「コンテクスト(contexts)」の概念及びそれがいかにトレーサビリティをサポートするかを説明する。この目的のため、一実施形態では、コンテクストは2つの一意的識別子の組み合わせである。第1の識別子は1つのマシン(machine)(例えば、サーバ)を識別する。第2の識別子は1つのデジタルデータ(例えば、文書ファイル)を識別する。この2つの識別子を組み合わせて、さらに別のグローバルに一意的な「コンテクスト識別子」を生成する。
本技術とともに使用されるいくつかの識別子をここに説明する。以下は識別子またはその一部を表すために使用される文字のリストである。
A −Aはデジタルデータを表す。一実施形態では、Aはデジタルファイルであるが、Aは任意のデジタルデータまたはバイトシーケンスであってもよい。
0xA− 0xA=SHA1(A)であり、HASH(例えば、SHA1関数)バイトストリングAに適用したものである。いかなるハッシュ関数を使用してもよい。一実施形態では、これは40桁の16進数である。
#0n −頭に0を付けて一定の長さ(例えば、20桁)にした10進数を表す。
任意のデジタルデータは、nバイトのシーケンスとして表される。一実施形態において、0xA:nは1つのデータの識別子として使用され、ハッシュ値が0xAであるnバイトのシーケンスを表す。この識別子にはいくつかの利点がある。第1に、識別子をデータ自体から計算でき、グローバルに一意的であることを基本的に保証できる。これは、識別子はそれ自体が正当性を証明していることを意味し、これはデジタルデータが与えられれば、識別子を計算し、確認(verify)することができることを意味する。しかし、ここで留意すべきことは、その逆は正しくないことである。識別子に関連するデータは不変なので、この識別子を使用してキャッシング(caching)とマシン間の同期を非常に簡単かつ効率的にできる。識別子がローカル(local)のファイルリスト中にあれば、そのファイルを離れたところにあるサーバに要求する必要はない。
1つのコンテクスト(context)において、1つのデータはそれに関連する属性を有する。例えば、写真にはタイトルがある。これらの属性は名称値ペアのシーケンス、attr1=val1、attr2=val2、...として表される。
コンテクストはコンテンツエントリと属性エントリのシーケンスである。そのシーケンスにはいくつかのチェックポイントが含まれることが多い。一実施形態では、チェックポイントは0xCC#0nと表される。ここで、0xCC=SHA1(0xC#0n−1,ABC)である。すなわち、前のチェックポイント0xC#n−1のハッシュに先行チェックポイントと計算される新しいチェックポイント間のすべてのエントリを連結したもののハッシュである。0nはこのチェックポイントのインデックスである。そのインデックスはシーケンス中のすべてのチェックポイントについて単調増加する。
一実施形態では、デジタル交換の中核となる組み立てブロックは4つの方法である。それらの方法は、コンテンツエントリをアップロードするメカニズム、コンテンツエントリをダウンロードするメカニズム、コンテンツ属性をアップロードするメカニズム、及びコンテンツ属性をダウンロードするメカニズムである。以下、これらのプロセスをウェブクライアントとウェブサーバ間のインターラクション(interaction)として説明する。留意すべきことは、交換の状況に応じてその他の多数の実施形態が可能だということである。特に、共有記録API(Shared Records API)は、これらの方法のJAVA(登録商標)ベースのプログラムインターフェイスを記述する。
クライアントはHTTP POSTメソッドを使用して、RFC1867で規定されたマルチパート/フォームデータエンコーディング(multipart/form-data encoding)サーバにデジタルデータファイルを送信する。「コンテンツトランスファエンコーディング」ヘッダ(“content-transfer-encoding” header)によりデータをデコードしてから、そのデータのSHA1ハッシュを計算する。上記の通り、この識別子はこのコンテンツを指すときに使用する。サーバは、通常、そのデータファイルを読み出すために使用できるURLの一部として、その識別子をクライアントに返す。(以下のコンテンツ取得のセクションを参照せよ。)
一実施形態では、データはローカルの記憶ディレクトリ内のファイルに記憶される。コンテンツのフィンガープリント0xAは、GUIDとも呼ぶが、ファイル名として使用される。また、GUIDはサーバのデータベースに記憶されてもよい。
アプリケーションに応じて動作やフィールド名はカスタマイズしてもよい。例えば、一実施形態では、「アップロード(upload)」を動作として使用し(例えば、http://server.org/upload)、「データ」をファイルのコンテンツのフィールド名として使用する。
一実施形態では、クライアントはHTTP GETメソッドを用いてサーバにGUIDに関連付けられたデータを要求する。この要求のURLは通常:
http://server.org/0xA/0xA
ここで、最初の0xAはコンテンツの(記憶場所を識別するための)GUIDであり、次の0xAは実際のデータを指す。(任意的にこのGUIDには拡張子.extが加えられる。)サーバは対応するデータに応答する。一実施形態では、この応答のヘッダにはそのコンテンツと関連付けられた(MIMEタイプを含む)様々な属性が含まれる。
http://server.org/download/0xA。
しかし、既存のキャッシングメカニズムを利用しやすくするために、一実施形態では、GUIDは、URLのクエリ成分ではなく、パスの一部、好ましくはパスの最後の「ファイル名」部分として規定される。クエリストリングにGUIDを使用して、0xAのコンテクストに関連づけられた属性にアクセスするために、以下ではhttp://server.org/get?uid=0xAなどを使用する。0xAはグローバルで一意的なので、パス成分はデータを位置特定するには必要ない。一実施形態では、クライアントと中間サーバは要求を傍受(intercept)して、キャッシュに対応するデータがあればそれを回答する。また、一実施形態では、HTML文書内のコンテンツファイルの参照は、「href=0xA」の形で行われ、ローカルの参照とグローバルの参照の間の変換の問題を避ける。
一実施形態では、クライアントはHTTP POSTメソッドを使用して属性をサーバに送信し、要求は2つのパラメータUIDとDIVSを含み、application/x-www-form-urlencodedエンコーディングを用いて送信される。
この例は、POSTメソッドではなくHTTP GETメソッドを用いて、HTTP要求のURLを用いて示されている。GETメソッドでは、DIVSパラメータがURLのクエリストリング(query string)として含まれる。POSTメソッドでは、これらのパラメータはサーバに送信される要求メッセージの本文に含まれる。実際、ほとんどのウェブアプリケーションはこれら2つの要求メソッドを同一に扱い、URLの長さの限度を超えない少量データの場合は、クライアントは一般的にクライアントは一般的にいずれのアプローチを使用することもできる。一般に、POSTメソッドを使用する方が安全である。
上記の通り、コンテクスト識別子0xMは一般的に2つの一意的識別子からできる。一実施形態では、カノニカルURL(canonical URL)のハッシュを、コンテクストを読み出すためにそのコンテクストの識別子として使用する。上記の例では、Mは次のURLのハッシュに等しい:
http://server.org/get?UID=0xA
これは、server.org上の0xAと関連する属性シーケンスを求めるURLとして機能する。以下に詳細に説明する。
一実施形態では、1組の属性を読み出すため、クライアントは次の形式のURLを有するHTTP GETを使用する:
http://server.org/get?UID=0xA
これにより、1組の属性を含むHTML文書またはXML文書が返される。ティドリーウィキ(TiddlyWiki.org)の場合、これはJava(登録商標)Scriptヘッダとそれに続くDIV要素のシーケンスを含む「記憶領域」を含むティドリーウィキそのものである。一実施形態では、各DIV要素は0xM.0xDの形のIDを有する。ここでDはDIV要素の本文のハッシュである。別の実施形態では、最初の送信では本文は省略され、AJAXスタイルのJava(登録商標)Script要求を用いるGET CONTENTの上記方法を用いて読み出される。これにより、大きなデータを含むティドラー(tiddlers)の効率が大幅に高くなる。
上記の4つの方法は、クライアントとサーバ間でデータを交換するための基本的な要素である。同期と監査(auditing)に関する方法を以下に説明する。これらの方法は、サーバ間の通信及びトラッキング機能に有用である。
http://server.org/publish?UID=0xA&CHECKPOINT =0xCC
は、UID0xAからチェックポイント0xCCまでに関連する1組のエントリを公開するようにサーバに命じる。
http://server.org/ 0xA/index.html
この命令が無事に実行されると、上記のURLがHTMLページの一部として読み出され、クライアントに送信される。
上記の通信では、要求が失敗した場合、一般的なHTTPエラーはすべてクライアントに返されてもよい。
サーバに記憶された各コンテクストに対して、サーバはコンテクストログを持っている。一実施形態では、これは「付加のみ(append only)」のファイルフォーマットである。
コンテンツエントリ−ストリングエントリは0xA:nストリング(STRING)から構成される。ここでストリングはエントリのコンテンツであり、nはストリング中の文字(バイト)数であり、0xAはストリングのハッシュである。
0xM:25 http://server.org/0xABC/ 0Xcc#0001
これは、サーバ(server.org)と名付けられたマシン上の識別子0xABC(一般的に、これはこのマシン上のコンテンツまたは「名前空間」であるデジタルデータのハッシュである)と関連付けられたログである。0xCCはストリング「0xM:25 http://server.org/0xABC/」のハッシュである。チェックポイントはいつファイルに挿入されてもよい。一実施形態では、チェックポイントは各ポスト(POST)要求の後に挿入される。
一実施形態では、属性エントリは、0xM.0xD:29タイトル=A「コンテンツ」修正=「2005年12月22日」のようなものである。これはこのコンテンツ中の(ハッシュ値0xDを有する)コンテンツのタイトルと修正日を示す。一実施形態では、ティドリーウィキの場合、コンテンツはストリングのコメントであり、おそらく前にファイル中に現れている:
0xD:17 コメントの本文
しかし、コンテンツがログファイル中に現れなければならないという必要性はない。コンテンツがファイルに含まれていなくても、GUIDは属性識別子の一部として現れる。これはコンテンツが別のところに記憶された画像等の大きなファイルである場合に、特に有用である。コンテンツログファイルの一例は以下の通りである。
上記の通り、一実施形態では、ログファイルは、チェックポイントにより区切られたコンテンツと属性エントリのシーケンスにより構成される。一実施形態では、このファイルは「付加のみ(append only)」である。換言すると、すべてのエントリはファイルの終わりに付加され、一旦エントリがされるとそれは変更できない。
慣例により、コンテクストの現在のログファイルは「インデックス.ログ(index.log)」と名付けられ、0xABCと名付けられたディレクトリに格納される。ここで0xABCはコンテクスト識別子のGUIDコンポーネントである。言い換えると、このログファイルがデジタルファイルのイベントまたは処理のログである場合、0xABCはそのファイルのハッシュである。ログファイルはいくらでも大きくなるので、コンテクストログは別のファイルにすると便利である。そうするために、現在のログファイル、例えばインデックス.ログのハッシュを計算し、インデックス.ログファイルをその値(例えば、0xFFFがそのファイルのハッシュ値である場合、0xFFF.log)で名前の付け替えをする。この時点では、ファイル0xFFF.logは、何らかの変化をすればファイル中のデータのハッシュ値とファイル名とが異なるので、「不変である(immutable)」と考えられる。
0xM.0xFFF:22_type=previous_log file_location=0xFFF.log
この場合、プライベート情報に使用される_typeはこのコンテクストにあり、ハッシュ0xFFFを有するコンテンツは、このコンテンツ内の前のログエントリから構成されていると識別する。また、ファイル記憶場所(file_location)はローカルマシン上のファイルを見つけるヒントとして提供される。チェックポイント数やそのログファイル中の最後のチェックポイントの追加情報を属性として提供することもできる。
一実施形態では、マスターコンテクストファイルを使用してサーバ上の重要な変更を記録する。例えば、新しいコンテンツエントリがサーバにアップロードされるたびに、及び/または新しいコンテンツログが生成されるたびに、マスターコンテンツファイルはその事実を記録するために修正される。このように、マスターコンテクストファイルはマスターログとして機能する。
0xMASTER:0xM:22 created= “2005/12/22” data=0xA
ここで、0xMASTERはサーバのマスタコンテクストであり、0xMはサーバ上のコンテクストである。この場合、データ=0xA属性は、このコンテクストがハッシュ値0xAを有するデジタルデータと関連づけられていることを示す。任意的に、生成された属性は、いつコンテクストログファイルが最初に生成されたか示す。
すべてのコンテクストファイル、及び特にマスターコンテクストファイルは、「シークレットデータ(secret data)」と関連づけられた属性エントリを含む。これは、サーバの秘密鍵を用いた「デジタル署名」である正確なエントリを含むか、またはサーバにのみ分かっているデータのハッシュである。コンテクストファイル中のこのシークレットデータと関連エントリを用いて、ログファイルの信ぴょう性を確認する。例えば、ログファイルのエントリの第1のエントリは:
0xM.0xS:12 _type=seed
ここで、0xSはサーバにだけ分かっている秘密の「シード」のハッシュである。かかるシードはログを初期化するためにいくつ使用してもよい。この最初のログは広く伝達される。サーバは、あるログを生成したことを証明するように求められると、その秘密データを提供しシードと関連させる。同様に、ログの後ろの方のエントリは、「サインされたチェックポイント(signed checkpoints)」である属性エントリであり得る。ファイル中の最も新しいのチェックポイントは、秘密シードの1つと連結され、属性エントリは例えば次のログに入れられる:
0xM.0xS22:19 _type=signed_checkpoint seed=0xS
ここで、0xS22は前のチェックポイントと0xSで特定されるシードとの連結のハッシュである。
コンテンツエントリ
一実施形態では、サーバはそのディスクにローカルに記憶されたコンテンツエントリのリストを持っている。これは、各ファイルはその識別子に従って記憶されている簡単なディレクトリリストの形であるか、または実際の記憶場所へのポインタを有する識別子のデータベースの形である。
(例えば、GET CONTENT動作を通して)あるコンテンツを求められると、サーバはこのリストをチェックして、そのリストに要求された識別子が見つかった場合、ファイル中の関連データを応答として返す。
チェックポイントを使用して、別々のマシンに記憶されたログを効率的に同期できる。文書Xと関連づけられたログの場合、マシン#1はXのログ中のマシン#2からの最新のチェックポイント(例えば、5番目のチェックポイントである0xC2#05)を追跡できる。マシン#1は、そのログをマシン#3からの新しいエントリで更新したいとき、0xC2#05以降のすべてのエントリを求める。新しいエントリを受信すると、マシン#1はそれ自体のログにそれらのエントリを加える。マシン#1がマシン#2と厳密に同じエントリのシーケンスを有する場合、そのログとチェックポイントは文書Xのマシン#2と同じである。アプリケーションに応じて、これは最も一般的な場合である。
マシン#1は、マシン#2のログの既存のチェックポイントを持たない場合、「0」を送信して、すべてのエントリの受信を希望することを示す。
一実施形態では、クライアントは、サーバに記憶されている最新のコンテクストログと関連コンテンツのローカルなコピーを欲する場合、要求をしてコンテクストと関連づけられた現在のindex.logファイルを求める。例えば、要求とそれに続いて
http://server.org/0xA/index.log
により、server.org上の0xA(例えば文書のハッシュ)と関連づけられたログが返される。クライアントはダウンロードしたファイル中の各属性エントリをチェックする。クライアントにローカルに記憶されていないデータを参照するエントリの後のエントリに対して、クライアントはGET CONTENT要求をする。
一実施形態では、2つの別々のマシンは、1つのコンテクストについて動作を同期させるために、第3の「カノニカル」サーバからのログエントリのシーケンスを使用することに同意する。その後、各サーバの各々により生成されたエントリはカノニカルサーバに直接または間接にポストされる。カノニカルサーバからのコンテクストログ中にあるエントリの後のエントリのシーケンスは、それらのエントリの同意された順序を決定する。かかる情報を用いて、例えば、2つの別々のサーバ上で同時に変化する文書の「オフィシャルな」履歴を決定することができる。
一実施形態では、単一サーバのログファイルは複数のサーバからのエントリを含む。特に、これは、ログファイルがコンテンツ識別子が混ざったものを含む、すなわち、例えば、
0xM1.0xD: title=” Machine M1 title”
0xM.0xCM1: _type=”M1 Checkpoint entry”
0xM2.0xD: title=” Machine M2 title”
0xM.0xCM2: _type=”M1 Checkpoint entry”
…
ここで、M1とM2は異なるマシンの同じ「名前空間」(例えば、0xA)を指す。この場合、現在のサーバは0xDの正確なエントリを有さず、またはサーバM1及びM2の属性と関連づけられた0xCM1と0xCM2からのエントリの後のいずれかのエントリを使用するよう決定する。これは確認と監査のために使用できる。
1つのサーバからの属性を読み取る(例えば、server.orgからティドリーウィキを取得する)クライアントは、そのコンテクスト(例えば、0xM.0xD)と関連づけられた属性にだけ興味を有するかも知れない。一方、クライアントは、ログは0xMと関連づけられたサーバから読み出していても、異なるコンテクストと関連づけられた属性、例えば0xM2と関連づけられたサーバからの0xM2属性にのみ関心を有しているかも知れない。
2つのマシンからの2つのコンテクストログがある場合、これらのログにオーバーラップしたエントリがあるか否か確認し、これらのエントリが各ログで同じ順序で現れるか確認することは非常に簡単である。
上記の通り、一実施形態では、ログファイルへの変更はすべてすぐに検出可能である。チェックポイントがもはや有効ではないか、前のチェックポイント(例えば、他のログに記憶されたもの)がもはやログに見つからないからである。
コンテクストログと関連特性がその基礎となるコンテンツエントリの知識を必要としないということを強調しておく。例えば、識別子0xAと関連づけられた実際のデータは、単一のマシンしか知らない。しかし、その識別子と関連づけられた属性は、別の多数のマシン上で設定、修正ができる。
クライアント/サーバシステムでは、通常はサーバが、誰がそのサーバまたはその様々なリソースにアクセスできるかを管理する。これは、一般的にはクライアントが入力するログインIDとパスワードを用いて行われ、このログインIDとパスワードをサーバに格納されたデータベースと比較する。もちろん、ここに説明するシステムにおいては、サーバのユーザを認証及び確認するために、同種のメカニズムを使用することもできる。
例えば、現在の実施形態では、コンテクストログはタイプが「\_update\_keys」である例えば以下の属性エントリを含む:
0xM.0xK:22 title=''\_update\_keys''
サーバはこのコンテクストへのポストの認証のために、識別子0xKと関連づけられたコンテンツを使用する。特に、0xKはリストのハッシュであり、各々は電子メールアドレスその他のフレーズ(phrase)に対応している。クライアントは、ポスト要求をすると、プレーンテキストの電子メールアドレスまたはフレーズ、例えばowner=''wolff@ricoh.com''を含むクッキー(cookie)または属性を含める。サーバは、このフレーズのハッシュを計算し、その結果を0xK中のハッシュのリストと比較する。リスト中にあれば、ポスト要求は受け付けられる。
新しいコンテクストログがユーザ要求により開始される時、その要求のオーナーパラメータ(owner parameter)(または同等のクッキー)を使用して「_update_keys」の初期値をシード(seed)することができる。
サーバによって、この種の情報をどう取り扱うかのポリシーが異なることに留意せよ。別の実施形態では、サーバは毎回新しい鍵(例えばハッシュ)が提供されることを要求する。これは、クライアントが最新の鍵のプレーンテキストであるパラメータに加えて、「次の」鍵のハッシュを提供するか、またはサーバが応答の一部としてクライアントに「次の」プレーンテキストの鍵を提供するからである。
秘密情報をサーバ間の認証に使用することもできる。例えば、コンテンツエントリの識別子0xAは、少数の人またはマシンだけが知っている「秘密の」フレーズまたはデータに対応する。例えば、このデータは、イントラネット上のページのURL、電子メールの主題、またはユーザのPCのローカルファイルシステムに格納されたJPEGファイルである。
各ユーザは、最初に、例えばコメント本文を含む通常の属性エントリを送信することにより属性エントリを「サイン(sign)」することできる。次に、次の形式の「署名(signature)」属性エントリを送ることができる:
0xM.0xDS:22 type=signature entry=0xD
この場合、0xDSは、0xDで特定されたコンテンツが連結された秘密データのハッシュである。コンテンツ(すなわちハッシュが0xDとなるデータ)と、秘密データ(ハッシュが0xAとなるデータ)の両方にアクセスできる他のユーザまたはマシンは、0xDSが正しいハッシュであることを確認できる。これにより、中央サーバに対する信頼を必要とせずに、個々のユーザが互いのエントリを認証する方法を提供する。
コンテクストログの典型的な使用方法はバージョンの追跡である。例えば、0xAが次のもののハッシュに対応するとする:
http://server.org/wolff/index.html
0xAと関連づけられたログは、このファイルの後のバージョンを指すエントリのシーケンスを含む。例えば、1つのエントリは:
0xM.0xA1:22 type=contents modified=2005/12/22
であり、その日付に、ファイルindex.htmlのコンテンツが識別子0xA1を有することを示す。後で、そのファイルの新しいバージョンが上記URLで公開される。その場合、他のエントリが次のログに含められる:
0xM.0xA2:22 type=contents modified=2005/12/22
事実上、第2のエントリは前のエントリより優先される。このように、0xAに対応するURLにあるファイルのコンテンツのバージョン履歴が保持される。例えば、公開された記憶場所0xAとともに、前のバージョンと次のバージョンを指す0xA1と0xA2のコンテクストログを相互参照があってもよい。
0xM1A2.0xA3:22 type=NewVersion modified=2005/12/23
ここで、0xM1A2は、0xA2のマシンM1上のコンテクストログであり、0xA3は0xA2に基づく新しいデジタルファイルである。マシンMとM1のログを調整するとき、元の文書0xA1の履歴を、対応するログの属性エントリを用いて0xA2から0xA3まで追跡することができる。
以下は、上記のコンテクストログの例に対応するティドリーウィキhtmlファイルの記憶領域(storeArea)コンポーネントの例である。コンテクストログが同じタイトルを有する複数の属性エントリを含む場合、サーバは、そのティドラー(tiddler)の最新バージョンのみを応答してもよいことに留意せよ。また、ログが他のコンテクストからの属性エントリ(例えば、0xM.0xDではなく0xM1.0xD)を含む場合、サーバまたはクライアントは、それらのエントリを含めないこと、または0xMコンテクストに割り照られた属性がない場合にのみ含めることを決定してもよい。
図10は、ここに記載した1つ以上の動作を実行するコンピュータシステムの例を示すブロック図である。図10を参照して、コンピュータシステム1000は、クライアントまたはサーバのコンピュータシステムを含む。コンピュータシステム1000は、情報をやりとりする通信メカニズムすなわちバス1011と、情報を処理する、バス1011に結合したプロセッサ1012とを有する。プロセッサ1012は、例えばペンティアム(登録商標)プロセッサ、パワーPC(商標)、アルファ(商標)等のマイクロプロセッサを含むが、マイクロプロセッサに限定されない。
1006 静的メモリ
1007 大容量メモリ
1011 バス
1012 プロセッサ
1020 外部ネットワークインターフェイス
1021 ディスプレイ
1022 キーボード
1023 カーソル制御装置
1024 ハードコピー装置
Claims (6)
- コンピュータシステムにおける方法であって、
保持手段が、チェックポイントにより区切られたコンテンツエントリと属性エントリとのシーケンスを含むファイルフォーマットを有する第1のログを記憶手段に保持する段階であって、前記コンテンツエントリはストリングのハッシュと前記ストリングとを有するベクトルを含み、前記属性エントリはログファイルに関連する識別子と、コンテンツエントリの識別子と、前記コンテンツエントリの属性の名称及び前記属性に関連する値のペアとを含む、保持する段階と、
受信手段が、第1のログにデータをポストする要求を要求装置から受ける段階と、
特定手段が、前記第1のログの記憶場所と、前記第1のログに対応する文書に関連するデジタルデータとを示す前記要求中のコンテクスト識別子に基づき前記第1のログを特定する段階と、
生成手段が、前記要求中の前記デジタルデータに基づいて、ポストする前記データのハッシュと、前記データを表すストリングと、前記ストリング中の文字数とを含む第1のエントリを生成する段階と、
加える手段が、前記第1のログに第1のエントリを加える段階と、
計算手段が、ポストした前記データのハッシュを計算する段階と、
送信手段が、前記計算したハッシュを前記要求装置に送信する段階とを有する、方法。 - 前記保持手段が、第1のログを1つ以上のチェックポイントにより区切られた各コンテクストと関連づけられたコンテンツ及び属性エントリのシーケンスを含むフォーマットで保持する段階と、
検索手段が、コンテクストログにアクセスして、その内部に記憶された情報を検索する段階とをさらに含む、
請求項1に記載の方法。 - コンテクストは、第1と第2の識別子の組み合わせであり、第1の識別子は前記第1のログを記憶したマシンを識別し、第2の識別子はデジタルデータのグループを識別する、
請求項2に記載の方法。 - 第1のログ中のエントリに対する、チェックポイントを含む要求を受信する段階と、
前記チェックポイントの後のエントリを送信して前記要求を満たす段階とをさらに有する、
請求項1に記載の方法。 - 計算手段が、前記要求で受信したデータの一部のハッシュを計算する段階と、
比較手段が、前記ハッシュを前記第1のログと関連づけられた識別子中の1つ以上のハッシュのリストと比較する段階と、
受け入れ手段が、前記ハッシュが前記識別子中のハッシュのリストに現れる場合、ポスト要求を受け入れる段階とを有する、
請求項1に記載の方法。 - コンピュータプログラムであって、コンピュータシステムにより実行されたとき、前記コンピュータシステムに、
チェックポイントにより区切られたコンテンツエントリと属性エントリとのシーケンスを含むファイルフォーマットを有する第1のログを記憶手段に保持する段階であって、前記コンテンツエントリはストリングのハッシュと前記ストリングとを有するベクトルを含み、前記属性エントリはログファイルに関連する識別子と、コンテンツエントリの識別子と、前記コンテンツエントリの属性の名称及び前記属性に関連する値のペアとを含む、保持する段階と、
第1のログにデータをポストする要求を要求装置から受ける段階と、
前記第1のログの記憶場所と、前記第1のログに対応する文書に関連するデジタルデータとを示す前記要求中のコンテクスト識別子に基づき前記第1のログを特定する段階と、
前記要求中の前記デジタルデータに基づいて、ポストする前記データのハッシュと、前記データを表すストリングと、前記ストリング中の文字数とを含む第1のエントリを生成する段階と、
前記第1のログに第1のエントリを加える段階と、
ポストした前記データのハッシュを計算する段階と、
前記計算したハッシュを前記要求装置に送信する段階と
を実行させる、コンピュータプログラム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79396706P | 2006-04-21 | 2006-04-21 | |
US60/793,967 | 2006-04-21 | ||
US11/673,496 | 2007-02-09 | ||
US11/673,496 US7809685B2 (en) | 2006-04-21 | 2007-02-09 | Secure and efficient methods for logging and synchronizing data exchanges |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2007293855A JP2007293855A (ja) | 2007-11-08 |
JP2007293855A5 JP2007293855A5 (ja) | 2010-02-18 |
JP5030654B2 true JP5030654B2 (ja) | 2012-09-19 |
Family
ID=38267689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007112344A Expired - Fee Related JP5030654B2 (ja) | 2006-04-21 | 2007-04-20 | ロギングとデータ交換同期のセキュアかつ効率的な方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7809685B2 (ja) |
EP (1) | EP1847935A3 (ja) |
JP (1) | JP5030654B2 (ja) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8001080B2 (en) * | 2006-09-12 | 2011-08-16 | Infosys Technologies Ltd. | Managing real-time execution of transactions in a network |
US20080282175A1 (en) * | 2007-05-07 | 2008-11-13 | Adobe Systems Incorporated | Automatically encoded, gracefully degrading panels |
US8683458B2 (en) * | 2007-11-30 | 2014-03-25 | Red Hat, Inc. | Automatic full install upgrade of a network appliance |
US8589592B2 (en) * | 2007-12-11 | 2013-11-19 | Red Hat, Inc. | Efficient object distribution |
US8418164B2 (en) * | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
US20100004950A1 (en) * | 2008-07-03 | 2010-01-07 | Nokia Corporation | System and method for usage of personal medical records in mobile devices |
US8255373B2 (en) * | 2008-10-24 | 2012-08-28 | Microsoft Corporation | Atomic multiple modification of data in a distributed storage system |
US9208315B2 (en) * | 2009-03-17 | 2015-12-08 | Microsoft Corporation | Identification of telemetry data |
US8671265B2 (en) | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
ES2703767T3 (es) * | 2010-03-11 | 2019-03-12 | Rakuten Inc | Método de procesamiento de información, dispositivo de procesamiento de información, programa y medio de grabación |
JP5799259B2 (ja) * | 2010-07-08 | 2015-10-21 | パナソニックIpマネジメント株式会社 | 電子機器およびコンピュータプログラム |
US20120143824A1 (en) * | 2010-12-02 | 2012-06-07 | Microsoft Corporation | Protecting files that include editable metadata |
US9824091B2 (en) | 2010-12-03 | 2017-11-21 | Microsoft Technology Licensing, Llc | File system backup using change journal |
US8620894B2 (en) | 2010-12-21 | 2013-12-31 | Microsoft Corporation | Searching files |
US8527472B2 (en) * | 2011-03-29 | 2013-09-03 | Kaseya International Limited | Method and apparatus of securely processing data for file backup, de-duplication, and restoration |
US8805901B1 (en) * | 2011-07-19 | 2014-08-12 | Google Inc. | Geographically distributed file system |
US9229818B2 (en) | 2011-07-20 | 2016-01-05 | Microsoft Technology Licensing, Llc | Adaptive retention for backup data |
US8825697B2 (en) * | 2011-09-13 | 2014-09-02 | Stefano Foresti | Method and system to capture, share and find information and relationships |
US9015857B2 (en) * | 2011-11-14 | 2015-04-21 | Wave Systems Corp. | Security systems and methods for encoding and decoding digital content |
US9043866B2 (en) * | 2011-11-14 | 2015-05-26 | Wave Systems Corp. | Security systems and methods for encoding and decoding digital content |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9401904B1 (en) * | 2012-03-15 | 2016-07-26 | Motio, Inc. | Security migration in a business intelligence environment |
WO2014051558A1 (en) * | 2012-09-26 | 2014-04-03 | Empire Technology Development Llc | Shared secret identification for secure communication |
TW201423469A (zh) * | 2012-12-03 | 2014-06-16 | Inst Information Industry | 電子數位資料匿篩裝置、方法及其電腦可讀取紀錄媒體 |
US9935910B2 (en) * | 2012-12-21 | 2018-04-03 | Google Llc | Recipient location aware notifications in response to related posts |
US9268653B2 (en) * | 2014-01-17 | 2016-02-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US10223372B2 (en) | 2016-01-26 | 2019-03-05 | International Business Machines Corporation | Log synchronization among discrete devices in a computer system |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US11048695B2 (en) * | 2017-09-12 | 2021-06-29 | Sap Se | Context-aware data commenting system |
EP3750272A4 (en) | 2018-02-06 | 2021-12-15 | Nb Research Llc | SYSTEM AND PROCEDURE FOR SECURING A RESOURCE |
CN109472150B (zh) * | 2018-10-31 | 2021-06-29 | 佛山科学技术学院 | 一种文件信息的设置读取方法 |
US11093642B2 (en) * | 2019-01-03 | 2021-08-17 | International Business Machines Corporation | Push down policy enforcement |
JPWO2022230153A1 (ja) * | 2021-04-28 | 2022-11-03 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6044205A (en) * | 1996-02-29 | 2000-03-28 | Intermind Corporation | Communications system for transferring information between memories according to processes transferred with the information |
US6345288B1 (en) * | 1989-08-31 | 2002-02-05 | Onename Corporation | Computer-based communication system and method using metadata defining a control-structure |
US5963962A (en) * | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
JP3593366B2 (ja) * | 1994-09-19 | 2004-11-24 | 株式会社日立製作所 | デ−タベ−ス管理方法 |
US5592618A (en) * | 1994-10-03 | 1997-01-07 | International Business Machines Corporation | Remote copy secondary data copy validation-audit function |
EP1526472A3 (en) | 1995-02-13 | 2006-07-26 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5708780A (en) * | 1995-06-07 | 1998-01-13 | Open Market, Inc. | Internet server access control and monitoring systems |
AU6500596A (en) * | 1995-07-20 | 1997-02-18 | Novell, Inc. | Transaction log management in a disconnectable computer and network |
US5809415A (en) * | 1995-12-11 | 1998-09-15 | Unwired Planet, Inc. | Method and architecture for an interactive two-way data communication network |
US6308175B1 (en) | 1996-04-04 | 2001-10-23 | Lycos, Inc. | Integrated collaborative/content-based filter structure employing selectively shared, content-based profile data to evaluate information entities in a massive information network |
US6026379A (en) * | 1996-06-17 | 2000-02-15 | Verifone, Inc. | System, method and article of manufacture for managing transactions in a high availability system |
US20020046072A1 (en) | 1996-06-18 | 2002-04-18 | Toshikatsu Arai | Workflow system |
US5845292A (en) * | 1996-12-16 | 1998-12-01 | Lucent Technologies Inc. | System and method for restoring a distributed checkpointed database |
US6065018A (en) * | 1998-03-04 | 2000-05-16 | International Business Machines Corporation | Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases |
US6360215B1 (en) | 1998-11-03 | 2002-03-19 | Inktomi Corporation | Method and apparatus for retrieving documents based on information other than document content |
US6584477B1 (en) * | 1999-02-04 | 2003-06-24 | Hewlett Packard Development Company, L.P. | High speed system and method for replicating a large database at a remote location |
US6574627B1 (en) * | 1999-02-24 | 2003-06-03 | Francesco Bergadano | Method and apparatus for the verification of server access logs and statistics |
US7278115B1 (en) | 1999-06-18 | 2007-10-02 | Microsoft Corporation | Methods, apparatus and data structures for providing a user interface to objects, the user interface exploiting spatial memory and visually indicating at least one object parameter |
US6546385B1 (en) | 1999-08-13 | 2003-04-08 | International Business Machines Corporation | Method and apparatus for indexing and searching content in hardcopy documents |
JP2001092827A (ja) * | 1999-09-20 | 2001-04-06 | Toshiba Corp | データ管理装置および方法 |
US7134021B2 (en) * | 1999-10-22 | 2006-11-07 | Hitachi, Ltd. | Method and system for recovering the validity of cryptographically signed digital data |
US7287003B2 (en) * | 2000-06-02 | 2007-10-23 | Iprint.Com | Integrated electronic shopping cart system and method |
US6687696B2 (en) | 2000-07-26 | 2004-02-03 | Recommind Inc. | System and method for personalized search, information filtering, and for generating recommendations utilizing statistical latent class models |
US6615208B1 (en) | 2000-09-01 | 2003-09-02 | Telcordia Technologies, Inc. | Automatic recommendation of products using latent semantic indexing of content |
US8032542B2 (en) | 2000-10-26 | 2011-10-04 | Reynolds Mark L | Creating, verifying, managing, and using original digital files |
US7925967B2 (en) | 2000-11-21 | 2011-04-12 | Aol Inc. | Metadata quality improvement |
US20040030681A1 (en) | 2000-11-21 | 2004-02-12 | Shannon Paul Thurmond | System and process for network site fragmented search |
US6775792B2 (en) | 2001-01-29 | 2004-08-10 | Snap Appliance, Inc. | Discrete mapping of parity blocks |
US20020120484A1 (en) | 2001-02-23 | 2002-08-29 | International Business Machines Corporation | Method and system for providing intelligent rules-based engine with heuristics for determining optimal routing and processing of business events |
US7200627B2 (en) | 2001-03-21 | 2007-04-03 | Nokia Corporation | Method and apparatus for generating a directory structure |
US7668718B2 (en) | 2001-07-17 | 2010-02-23 | Custom Speech Usa, Inc. | Synchronized pattern recognition source data processed by manual or automatic means for creation of shared speaker-dependent speech user profile |
GB2395100B (en) * | 2001-08-16 | 2005-11-23 | Goldpocket Interactive | Digital data monitoring and logging in an ITV system |
US20030046586A1 (en) | 2001-09-05 | 2003-03-06 | Satyam Bheemarasetti | Secure remote access to data between peers |
US7007074B2 (en) | 2001-09-10 | 2006-02-28 | Yahoo! Inc. | Targeted advertisements using time-dependent key search terms |
WO2003046689A2 (en) | 2001-11-21 | 2003-06-05 | Amicas, Inc. | System and methods for real-time worklist service |
US20030126276A1 (en) * | 2002-01-02 | 2003-07-03 | Kime Gregory C. | Automated content integrity validation for streaming data |
US6965883B2 (en) | 2002-02-20 | 2005-11-15 | Nokia Corporation | Charging mechanism for multicasting |
US20030217008A1 (en) | 2002-02-20 | 2003-11-20 | Habegger Millard J. | Electronic document tracking |
KR20040032260A (ko) | 2002-10-08 | 2004-04-17 | 전자부품연구원 | 메타데이터를 이용한 광고 디스플레이 장치 및 그 서비스방법 |
US7263521B2 (en) * | 2002-12-10 | 2007-08-28 | Caringo, Inc. | Navigation of the content space of a document set |
US20050004899A1 (en) | 2003-04-29 | 2005-01-06 | Adrian Baldwin | Auditing method and service |
US20040260593A1 (en) | 2003-05-20 | 2004-12-23 | Klaus Abraham-Fuchs | System and user interface supporting workflow operation improvement |
US7406487B1 (en) | 2003-08-29 | 2008-07-29 | Symantec Operating Corporation | Method and system for performing periodic replication using a log |
US8229932B2 (en) | 2003-09-04 | 2012-07-24 | Oracle International Corporation | Storing XML documents efficiently in an RDBMS |
CA2442796A1 (en) | 2003-09-26 | 2005-03-26 | Ibm Canada Limited - Ibm Canada Limitee | Binding a workflow engine to a data model |
US7203796B1 (en) * | 2003-10-24 | 2007-04-10 | Network Appliance, Inc. | Method and apparatus for synchronous data mirroring |
US7451167B2 (en) * | 2003-10-24 | 2008-11-11 | Network Appliance, Inc. | Verification of file system log data using per-entry checksums |
US7392533B2 (en) | 2004-05-19 | 2008-06-24 | Microsoft Corporation | System and method for management of a componentized electronic document retrievable over a network |
US20050289187A1 (en) | 2004-06-29 | 2005-12-29 | Oracle International Corporation | System and method for investigating a data operation performed on a database |
US7949666B2 (en) * | 2004-07-09 | 2011-05-24 | Ricoh, Ltd. | Synchronizing distributed work through document logs |
US8230326B2 (en) | 2004-12-17 | 2012-07-24 | International Business Machines Corporation | Method for associating annotations with document families |
US20060218204A1 (en) * | 2005-03-25 | 2006-09-28 | International Business Machines Corporation | Log stream validation in log shipping data replication systems |
US20070143356A1 (en) | 2005-12-15 | 2007-06-21 | Kleinsmith Richard A | Enforcing workflow for implementing unique identification |
US8095537B2 (en) * | 2005-12-29 | 2012-01-10 | Ricoh Co., Ltd. | Log integrity verification |
US8943332B2 (en) * | 2006-10-31 | 2015-01-27 | Hewlett-Packard Development Company, L.P. | Audit-log integrity using redactable signatures |
-
2007
- 2007-02-09 US US11/673,496 patent/US7809685B2/en not_active Expired - Fee Related
- 2007-04-20 JP JP2007112344A patent/JP5030654B2/ja not_active Expired - Fee Related
- 2007-04-23 EP EP07251693A patent/EP1847935A3/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US7809685B2 (en) | 2010-10-05 |
US20070255530A1 (en) | 2007-11-01 |
EP1847935A2 (en) | 2007-10-24 |
JP2007293855A (ja) | 2007-11-08 |
EP1847935A3 (en) | 2010-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5030654B2 (ja) | ロギングとデータ交換同期のセキュアかつ効率的な方法 | |
CN110495132B (zh) | 用于在分布式网络节点内生成、上传和执行代码区块的系统和方法 | |
US8903788B2 (en) | Synchronizing distributed work through document logs | |
JP5103243B2 (ja) | 書類画像を認証するサーバーシステム及び方法 | |
JP2022509104A (ja) | ブロックチェーンネットワークを介するデータの効率的且つセキュアな処理、アクセス、及び送信のためのシステム及び方法 | |
US8793278B2 (en) | System and method for data preservation and retrieval | |
CN110785760A (zh) | 用于登记数字文档的方法和系统 | |
US8887297B2 (en) | Creating and validating cryptographically secured documents | |
US8572049B2 (en) | Document authentication | |
JP2020526820A (ja) | 分散型台帳を用いて公共のソフトウェアコンポーネント・エコシステムを管理するためのシステムおよび方法 | |
US20090199274A1 (en) | method and system for collaboration during an event | |
KR100697132B1 (ko) | 타임 스탬프 서비스 시스템, 타임 스탬프 정보 검증 서버 장치, 및 기록 매체 | |
US8887298B2 (en) | Updating and validating documents secured cryptographically | |
WO2017156160A1 (en) | Management of workflows | |
JP2012085276A (ja) | 複合リソース文書上のデジタル署名 | |
US10691834B2 (en) | System and method of a privacy-preserving semi-distributed ledger | |
US11003653B2 (en) | Method and system for secure digital documentation of subjects using hash chains | |
US11283595B1 (en) | Systems and methods for securing cached data stored off-chain in a blockchain-based network | |
EP1159683A1 (en) | Content certification | |
JP2024512068A (ja) | ブロックチェーンで実行されるデータ・アプリケーションにおける改善されたシグネチャ検証方法及びシステム | |
Marian et al. | Requirements Analysis for a System for Certifying Online Content | |
JP3818795B2 (ja) | 電子帳票処理方法 | |
WO2002077831A1 (en) | Content certification | |
Schmidmaier | Design and Implementation of a Decentralized Trusted Issuer Registry for Self-Sovereign Identity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091225 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120124 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120511 |
|
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: 20120529 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120626 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5030654 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150706 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |