コンテンツにスキップ
日本語

チェックポイントチェーン

監査記録は、手を入れられていないことを自分で示せる必要があります。システムは三つの層でこれを行います。 行ごとに署名し、区間ごとに封印して署名し前の区間へつなぎ、区間の封印のイベントを外へ一部送ります。 「途中が抜かれた」と「まるごと消して何事も無かったように見せた」が、これで検知できるイベントになります。 正規の保持期限による削除とも区別が付きます。

保存する記録は、書き込みのときに主要な項目の HMAC を計算し、署名鍵のバージョンも記録します。 署名鍵はシステムが作るバージョン付きの鍵で、マスター鍵で包んで保存します。 システムの最初の起動で基準を一つ固定し、それより前の古いデータは別の件数として示します。合わない件数に混ぜません。

行単位の検証が答えるのは「これらの行の内容は本物か」です。

システムは周期的に、ある区間の記録を封印します。区間の各行の識別子と署名の結果を取り、ひとつのフィンガープリントにまとめ、 通し番号、区間の開始と終了、行数、前のチェックポイントのハッシュ、封印の時刻、署名鍵のバージョンと、そのときの役割の割り当てスナップショットを合わせて Ed25519 で署名します。 検証ページに「役割の割り当て」列が足されます。合わなければアカウントと役割を指名し、失効イベントへつなぎます。役割の現況の突き合わせは製品内で行い、オフラインの道具が検証するのはペイロードと署名です。 起こす条件は時間と件数の二つの閾値で、先に来た方が動きます。出荷時の値は 1 時間ごと、または 1 万件ごとです。 起きたあと少し待ってから走査するので、進行中のトランザクションが落ち着いてから読みます。

新しいデータの無い区間にも空の封印を打つので、システムが休んでいてもチェーンは切れません。 チェックポイントの表は削除できません。更新できる項目は、固定の状態と削除に関わるいくつかだけです。

チェックポイントの検証が答えるのは「この並びに欠けは無いか」です。

新しい版のチェックポイントは AI agent のツール呼び出し台帳も集計します。検証は作成時の形式版に従い、旧版の封印はその形式で検証されます。

封印に成功すると、固定のイベントを syslog の転送で送ります。内容は通し番号、区間、行数、区間のフィンガープリント、署名、鍵のバージョンです。 固定の状態には三つの値があります。ローカルに渡して送信待ち、送れなかった(バッファがいっぱいで捨てられた)、有効にしていない、です。 有効にしていないときは「チェックポイント検証」のページに閉じられないバナーが出て、オフサイトのバックアップが有効でないことと、 どこで設定するかを示します。設定のしかたはログ転送と通知にあります。

チェックポイント検証のページの見方

Section titled “チェックポイント検証のページの見方”

「チェックポイント検証」のページは読み取り専用で、管理者と監査ロールが入れます。ページを開くと構造の層のチェーン全体の結果が出ます。 入力は要りません。区間ごとの状態は九つあります。

状態 意味
通過 この区間は欠けが無く、署名も有効です
保持ポリシーにより削除 正規の削除で、削除の証明が付きます
削除の有効な証明が無い データが無く、正規の削除の証明もありません
件数が合わない いまの件数が封印のときと違います
検証値が合わない 内容が封印のときのフィンガープリントと合いません
余分な記録がある 区間に記録が増えていて、人の確認が要ります
署名が無効 署名が検証を通りません
連結が切れている 前のチェックポイントとつながりません
通し番号が飛んでいる 途中のチェックポイントが欠けています

一件ずつの内容の検証を行うには、開始と終了の通し番号を入れます。記録を一件ずつ照合し直すので、範囲が広いほど時間がかかります。 監査調査ビューから飛んでくると通し番号は先に入りますが、自動では実行しません。

ページには署名の公開鍵、バージョン、フィンガープリントも出るので、外部の確認者がオフラインで署名を検証できます。

システムは別にスケジュールで二つの層の自動検証を行います。封印が終わったあと直近の数日の区間を確認するものと、周期に沿ってチェーン全体を一巡するものです。 一巡ごとに行数の予算がありますが、チェーンの末尾の最新の区間と、まだ決着していない失敗の区間は必ず検証します。 自動の検証は読み取りだけで、監査の行を書きません。

ページには二つの層それぞれの最後の実行の時刻、結果、確認した期間、周期、どの通し番号まで確認し直したか、 一巡し終えたか、そして回復が確認できていない異常な区間の数が出ます。 これらは運用の状態であって、完全性の証明そのものではありません。そのことはページにも書いてあります。

監査の仕組み自体の不調のアラート

Section titled “監査の仕組み自体の不調のアラート”

監査の仕組み自体が壊れたときは声を上げます。データベースへの書き込みの失敗、転送の切断やバッファの溢れ、録画の失敗、チェーンの検証の異常には それぞれ機械可読なコードとアラートがあり、機能が落ちているときもイベントはファイルへ落とします。 構造の層の異常、内容の層の異常、検証そのものの失敗は別々に知らせ、同じコードにまとめません。 外へ送る内容は機械可読なコードと件数だけです。

  • 区間ごとの検証の状態と、区間ごとの通し番号、記録の番号の範囲、封印のときの件数といまの件数、オフサイトへの固定の状態。
  • ページには保護の範囲と境界の区画があり、どの場面を何が受け持つかを一条ずつ書いてあります。 確認する側が、この仕組みの届く範囲を判断するための材料です。
  • 保持期限による削除の記録とチェックポイントの区間は突き合わせられます。保持期間、削除、観測を参照してください。