「監査証跡はあります」という言葉は、チェックリストの定型句になってしまいました。ほとんどのドキュメントツールは、どこかにイベントの一覧を表示しています。しかし本当に問うべきことは別にあります。ログそのものに異議が唱えられたとき、それが改変されていないことを示せるでしょうか。

普通のアクティビティログは、データベースの行にすぎない

一般的なアクティビティログは、アプリケーションが書き込むテーブルです — そして原理的には、書き換えることもできるテーブルです。管理者やバグ、あるいはデータベースにアクセスできる攻撃者が行を編集・削除しても、残った行からそれを知る手がかりは何も得られません。つまりそのログが証拠として通用するのは、誰もログを疑わない間だけです。

GingerDocsは何が違うのか

ドキュメントのライフサイクルで起きるすべてのイベント — 作成、送信、閲覧、署名、辞退、無効化 — は、改ざん検知が可能な台帳のように機能するログに追記されていきます。

  • 追記専用 — イベントは追加されるだけで、編集や削除は一切行われません。
  • ハッシュチェーン — 各エントリには直前のエントリのSHA-256ハッシュが含まれ、すべてのレコードがそれ以前のすべての記録と暗号学的に結び付けられます。
  • 帰属の記録 — 各イベントには、タイムスタンプと発生元のIPアドレスが付与されます。

チェーン化が状況を一変させる理由

誰かが過去のエントリを1件だけ改変したとします。そのハッシュは次のエントリに埋め込まれた値と一致しなくなり、その次のエントリとも一致しなくなります — チェーンは改ざんが行われた地点で目に見えて壊れるのです。履歴を気付かれずに偽装するには、そこから先のチェーン全体を再計算する必要がありますが、それこそが追記専用の設計が決して許さないことです。

こうして得られるのは、「信じてください」と頼むのではなく、実際に検証できるログです。

検証で証明が完結する

改ざん検知が可能なログが最も力を発揮するのは、相手側もそれを参照できるときです。完了したGingerDocsのPDFを持っている人なら誰でも、公開の検証ページで、そのファイルが監査ログに署名済みとして記録されている内容と一致することを確認できます — アカウントは不要で、誰かの言葉をうのみにする必要もありません。

署名ツールを評価するときは、監査証跡があるかどうかを尋ねるのではなく、監査証跡の改変を何が防いでいるのかを尋ねてください。答えが「アクセス権限です」であれば、探し続けるべきです。