問題 12★★☆

ソフトウェアの配布元は、公式サイトでプログラムファイルとともに、そのファイルから 計算したハッシュ値を公開している。利用者がダウンロードしたファイルのハッシュ値を 計算して公開値と照合する目的として、最も適切なものはどれか。

正解:ア

各選択肢の解説

  1. ア完全性の確認。ファイルが配布の途中で書き換わっていないことを確かめる。

    正解。ハッシュ値はファイルの指紋にあたり、中身が1バイトでも変われば まったく違う値になります。公開値と一致すれば、通信途中の破損や 差し替えが起きていないと判断できます。

  2. イ機密性の確認。ファイルの中身を第三者に読まれていないことを確かめる。

    誤り。機密性は権限のない人に中身が渡らないことで、守る手段は暗号化や アクセス権の設定です。ハッシュ値は誰でも計算できる公開情報であり、 ファイルの中身を隠す働きはありません。

  3. ウ可用性の確認。ファイルをいつでも入手できる状態であることを確かめる。

    誤り。可用性は必要なときに使えることで、守る手段はサーバの二重化や バックアップです。ダウンロードできた時点で入手はできており、 照合しているのは入手できるかではなく、入手したものが正しいかです。

  4. エ否認防止の確認。配布元が後からファイルの提供を否定できないようにする。

    誤り。否認防止は行為の事実をあとから否定させないことで、 デジタル署名や操作ログが使われます。ハッシュ値は誰でも計算できるため、 それだけでは「誰が作ったか」を示せません。

理解を深めるために

「中身が変わっていない」ことを確かめる性質

完全性とは、情報が正確で、改ざんや欠落がない状態のことです。 宅配便でたとえるなら、荷物が届いたかどうかではなく、 途中で中身がすり替わっていないかを見るのが完全性の観点です。

配布されるプログラムは、通信の途中で壊れることもあれば、 攻撃者が細工した偽物に差し替えられることもあります。 どちらも中身が変わってしまっているので、完全性の問題です。

なぜハッシュ値の照合が完全性の確認になるのか

ハッシュ値は、ファイルの中身から計算する固定長の値です。

  • 配布元は、正規のファイルから計算した値を公式サイトに載せる
  • 利用者は、手元のファイルから同じ方法で値を計算する
  • 一致すれば、中身は1バイトも変わっていない
  • 一致しなければ、破損しているか、別のファイルにすり替わっている

なお、比べる相手であるハッシュ値そのものが信頼できる経路で手に入ることが前提です。 ファイルと一緒に改ざんされてしまっては意味がないため、 公開の場所や配布経路を分けておく必要があります。

守りたい性質と、その対策

性質 代表的な対策
完全性 ハッシュ値の照合、デジタル署名、変更履歴の記録
機密性 暗号化、アクセス権の設定
可用性 機器の二重化、バックアップ、復旧手順の整備
否認防止(補足) デジタル署名、操作ログの保全

試験では「この対策は何を守るためか」という向きでも問われます。 その対策をやめたら何が起きるかを考え、 情報が漏れるのか、中身が狂うのか、使えなくなるのかで見分けます。

前の問題へ次の問題へ