完全性を理解する
在庫システムの画面が開き、アクセス権も適切なのに、残数が実物と違っていたらどうなるでしょう。今回は架空の文具倉庫を使い、数量の誤入力、行の欠落、古いデータの復元を追います。「変更しない」ではなく「正しく変え、正しい状態を確かめる」という完全性の考え方を学びます。
この単元で学ぶこと
- 不正変更と誤操作の両方から完全性を説明できる
- 入力・更新・伝送・復元で正確さを点検できる
- 変更検出と変更防止、正当な訂正を区別できる
本文解説
正確さと完全さ 完全性では、情報が正しく、必要な情報が欠けていないかを見ます。在庫表のノートが30冊なのに300冊と記録されるのは正確さの問題です。入庫した鉛筆の記録行が欠落しているのは完全さの問題です。悪意ある改ざんだけでなく、転記ミス、操作の誤り、処理の不具合でも損なわれます。
正当な更新を禁止しない ノートが5冊出庫したなら、在庫を30冊から25冊へ正しく変更する必要があります。変更が一切できない仕組みでは実物との差が広がります。更新権限を適切に分け、根拠となる入出庫記録と照合し、訂正した内容を追跡できるようにします。「変更された」という事実だけで不正かどうかは決まりません。
入力チェックの役割と限界 数量欄に文字を入れられないようにしたり、0以上の整数だけを受け付けたりすると、形式上の誤りを減らせます。しかし3冊を30冊と入力しても、どちらも非負整数なので通る場合があります。範囲チェックを通過したことだけで、現物や伝票に照らした内容の正しさを保証してはいけません。業務上の根拠との照合も必要です。
二人の更新が重なる例 残数30を二人が同時に読み、一方が5を引いて25、他方が2を引いて28を書き込むと、最後の28だけが残ることがあります。本来の残数は23です。これは計算式自体が正しくても、古い値を基にした更新が他方の結果を消す問題です。同時更新を安全に扱う仕組みや競合検出が必要で、全員を同じアカウントにすることでは解決しません。
変更記録で確かめる 誰が、いつ、どの値をどう変更したかの記録は、誤りを発見した後の確認に役立ちます。ただし、ログが残るだけでは誤った更新を防いだことにはなりません。また、更新者自身が記録を自由に消せると、調査に使える証拠が失われます。業務データと記録の両方について、適切なアクセス制限を考えます。
ハッシュ値は何を比べるか ファイルから一定長の値を計算するハッシュ関数は、転送前後の内容の相違を調べる用途に使われます。信頼できる経路で得た元のハッシュ値と、受信ファイルから計算した値を同じハッシュ関数を使って比較します。ファイルと比較用の値を両方とも攻撃者に差し替えられるなら、その比較だけで正しい配布元の内容だとはいえません。元の基準を信頼できることが大切です。
古いバックアップへ戻すとき 午前9時の在庫表を午後3時に復元した場合、午前9時以降の正当な入出庫は、そのバックアップだけでは戻りません。復元成功の表示だけを見ず、対象時点と復元後の記録を確認します。必要に応じて信頼できる取引記録から変更を反映し、二重計上や欠落がないか確かめます。復旧の速さと内容の正しさは別の観点です。
ミニ演習――何を追加するか 倉庫では数量を整数に限定し、ログも保存しています。それでも伝票3冊を30冊と入力する誤りが見つかりました。次に必要なのは、同じ整数チェックを増やすだけではなく、伝票との照合や承認など、今回の誤りを捕まえる手段です。対策を評価するときは「入力の形式」「業務内容」「更新の順序」「過去の記録」を分けて考えると、足りない部分が見えます。
図解
重要ポイント
- 完全性は情報の正確さと完全さ。故意でない誤りも対象。
- 正当な更新や訂正は必要で、変更ゼロを目標にしない。
- 入力形式の検査だけで業務上正しい値とは保証できない。
- ログは追跡・発見に役立つが防止そのものとは限らない。
- ハッシュ比較では比較元の信頼性、復元ではデータの時点を確認する。
間違えやすい点
- 同時更新で他の処理結果を上書きしない。
- ハッシュ値が一致しただけで配布元の真正性まで無条件に保証しない。
- 古いバックアップの復元成功を最新データの完全回復と同一視しない。
用語解説
- 改ざん
- 権限や正当な手続きに反して情報を書き換えること。
- 入力検証
- 受け付ける値が形式・範囲・業務条件などを満たすか確かめること。
- 更新競合
- 複数の更新が重なり、互いの結果などに影響する状態。
- ログ
- 処理や操作などの出来事を記録したもの。
- ハッシュ値
- 入力データにハッシュ関数を適用して得られる値。内容の相違の検出などに利用する。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。