完全性の解説(基本情報技術者シラバス用語)

目次

完全性とは

完全性(Integrity)とは、情報セキュリティの基本である「3要素(CIA)」の一つで、データや情報が改ざんされたり、破壊されたりすることなく、常に正しく最新の状態が保たれていることです。システムエラーや悪意のあるハッカーによる書き換え、あるいは人為的なミスによってデータの内容が勝手に変わってしまうと、情報の信頼性が失われてしまいます。完全性を確保するためには、データが変更された際にその履歴を記録したり、データにデジタル署名を付与したりして、書き換えられていないことを後から確認できる仕組み(改ざん検知など)を導入します。

具体例

銀行のインターネットバンキングで送金手続きを行う際、送信した「10,000円」という金額データが、途中のネットワークでハッカーによって「10,000,000円」に書き換えられていないことを、ハッシュ値と呼ばれる計算結果を照合することで検証し保証します。

[送信データ: 10,000円 + ハッシュ値A] -> (通信) -> [受信データ: 10,000円 + ハッシュ値A] (改ざん無し)

もう少し詳しく

情報セキュリティにおける完全性(Integrity)は、データが正確であり、かつ一貫性を持っている状態を維持することを意味します。完全性が脅かされる要因は、外部からの悪意あるハッカーによるデータの書き換え(改ざん)だけではありません。通信中の予期せぬノイズによるデータの一部破損、システムの不具合によるデータ書き込みエラー、ストレージの劣化によるビット崩壊、さらには担当者による入力間違いや削除といったヒューマンエラーなども含まれます。これらすべての要因からデータを守り、常に正しいオリジナルの状態であることを保証し続ける必要があります。

完全性を技術的に保証するための主な対策としては、「ハッシュ関数」や「デジタル署名」の利用が挙げられます。データからハッシュ関数を用いて算出されるハッシュ値は、元のデータが1文字でも異なれば全く違う値になります。これを利用して、データの送受信前後でハッシュ値を比較することで、途中で改ざんや欠落が起きていないかを瞬時に検知できます。また、誰がそのデータをいつ作成・編集したのかという「アクセスログ(履歴)の記録」や、データベース管理システムにおける「トランザクション処理(データの整合性を保つ一連の処理単位)」の適用も、完全性を守るために不可欠な仕組みです。

さらに、うっかりミスを防止するための入力制限やフォーマットチェック、誤って上書き保存してしまった場合に過去の状態へ復元できるバージョン管理システム(Gitなど)の導入も完全性の維持に有効です。

試験でのポイント

試験において「完全性」に関する問題は、「データが変更(改ざん)されていないこと」「信頼性が保たれていること」を検証するシーンと結びつけて出題されます。特に以下のようなキーワードや対策技術が登場した場合は、完全性の確保に深く関係していると判断してください。

・ハッシュ関数(SHA-256など)を用いて、受信したデータのハッシュ値を比較し、改ざんを検知する。
・デジタル署名や電子署名を施し、データの作成者が本人であることと、送信後に改ざんがされていないことを証明する。
・タイムスタンプ(電子タイムスタンプ)を付与し、その日時にデータが存在し、それ以降改ざんされていないことを証明する。
・WORM(Write Once Read Many)メディア(一度だけ書き込みが可能で、消去や再書き込みができない記憶媒体)にログを保存し、データの改ざん自体を物理的に防ぐ。

試験でのよくある引っかけとして、「暗号化」は情報の漏洩を防ぐ「機密性」の対策であり、データが正しいことを示す「完全性」の対策とは直接的には異なります(ただし、完全性の検証技術であるデジタル署名の内部では暗号化アルゴリズムが応用されます)。「機密性」「完全性」「可用性」の3要素の境界線を正確に理解しておくことが重要です。

関連する用語

情報セキュリティの3要素である「機密性」や「可用性」、データの一貫性を確認し改ざん検知を行うための計算技術である「ハッシュ関数」、送信元の正当性と改ざん検知を保証する「デジタル署名」などがあります。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ