寓話
役所には二人の会計係がいて、一人は戸棚を施錠し、一人はラベルを貼る
県衙の倉庫には二人の経理係が雇われていた。老趙は鉄の櫃を管理していた。すべての銀両の出入り記録は厚い帳簿に書かれ、書き終えると鉄の櫃にしまわれた。櫃には三つの錠があり、鍵はそれぞれ三人が持ち、開櫃時は登記し、閉櫃時は封印に署名した。老銭が管理していたのは、各帳目に貼られた付箋だった。どの日、誰が扱い、いくら承認し、どの支出に使ったか。付箋は日付順に並べられ、巡按が来たときに時間を追ってめくることができた。
ある年、庫房で銀800両が不足し、巡按が人を派遣して調査した。帳簿を調べる者はまず老趙に櫃を開けさせ、封条が動いていないことを確認し、櫃の中の記録は入庫票と一致した——しかし記録には収支の額だけが書かれ、誰が署名し誰が承認したかは書かれていなかった。誰が経手したかは分からない。次に老銭の付箋を調べると、3枚の付箋が破られて書き直されていた——日付が合わず、経手人と承認者も一致しなかった。
両方の帳簿は役に立たなかった。老趙の櫃は封印が完全だったが、記録が粗すぎて、誰がこの金を扱ったかが欠けていた。老銭の付箋は詳細だったが、改ざんされていた。県令は二人を呼び寄せ、一つの問いを投げかけた:庫房の帳簿は、誰かが改めるのを防ぐべきか、それとも巡按が調べるのを助けるべきか?老趙は自分の櫃は改ざんを防ぐと言い、老銭は自分の付箋は調査を助けると言った。二人は同じ問いに答えていなかった。
県令は後に一つの決定を下した。老趙は引き続き櫃を施錠するが、各記録に経手人と批准人のフィールドを加える。老銭は引き続き付箋を貼るが、貼った後に老趙の記録と一度クロス採番する——付箋上の番号は鉄櫃記録の行番号と一致しなければならない。こうすれば、付箋を改ざんするにはまず櫃を開けて番号を変えねばならず、櫃を改ざんするには同時に付箋を剥がして再採番せねばならない。
新たな問題は二年後に現れた。庫房は銀庫管理システムをアップグレードし、銀両の出入りごとに自動で記録を生成した。システム設計者は老趙の部分だけを作った——記録は書き込まれるとロックされ、削除・改変できない。しかし老銭の部分は作らなかった——誰がいつ何をしたかの詳細フィールドがない。巡按が再び調査に来たとき、記録は改ざん防止されているが、どの操作が過失でどの操作が故意かは調べられないことがわかった。
システム設計者は後に監査モジュールを追加し、改ざん防止記録から行動の次元——操作時間、操作者、操作種別、操作対象——を抽出し、時間軸に沿って並ぶ監査ビューを生成した。彼は設計文書に書いた。改ざん防止は証拠の信頼性を解決し、監査は行動の追跡可能性を解決する。一つのシステムは同時に両方を行うべきだが、二つの事柄はフィールド設計の出発点が異なる。
庫房の扉には後に一枚の紙が貼られた:庫に入る前に、あなたが探しているのは改竄防止の証憑か、それとも照会できる行為記録かをまず区別せよ。証憑が要るなら鉄皮櫃を、記録が要るなら付箋を探せ。帳簿を間違えて取ったら、帳簿を調べたことにはならない。