問題 66★★☆

業務用ソフトウェアのインストーラをベンダーのWebサイトからダウンロードした。 手元で計算したSHA-256のハッシュ値が、ベンダーの公式サイトに掲載された値と一致した。 この結果から言えることとして、最も適切なものはどれか。

正解:エ

各選択肢の解説

  1. アインストーラには、マルウェアや脆弱性が含まれていない。

    誤り。ハッシュ値の一致が示すのは、ベンダーが値を計算したファイルと同じだということだけです。 元のファイルに問題があれば、それも含めて同じです。中身の安全性は、マルウェア対策ソフトでの 検査や脆弱性情報の確認で別に確かめます。

  2. イインストーラをベンダー自身が作成したことを、第三者に証明できる。

    誤り。作成者を第三者に示すのはデジタル署名の役割です。ハッシュ値は鍵を使わず誰でも 計算できるので、それ自体は作成者を表しません。掲載先が公式サイトだと信頼できることと、 第三者に証明できることは別です。

  3. ウダウンロードの通信内容は、途中で第三者に読まれていない。

    誤り。読まれたかどうかは機密性の話で、ハッシュ値の照合では分かりません。 通信が盗み見られても、ファイルが書き換えられていなければ値は一致します。 通信の盗み見を防ぐのはTLSなどの暗号化です。

  4. エ掲載された値が正しい限り、ファイルは配布時から書き換えられていない。

    正解。SHA-256では、異なるファイルから同じハッシュ値を作ることが事実上できません。 値の一致から、ダウンロードの途中や配布サーバ上で書き換えられていない(完全性)と言えます。 前提は、照合に使った値そのものが改ざんされていないことです。

理解を深めるために

「同じものが届いた」以上のことは言えない

ハッシュ値の照合は、届いた荷物の重さと形を、送り主が控えた記録と比べるようなものです。 一致すれば、途中ですり替えられていないと分かります。しかし、送り主が最初から 危険な物を詰めていたかどうかは分かりません。一致が示すのは完全性だけです。

なぜ書き換えが分かるのか

  • ハッシュ関数は、どんな長さのデータからも決まった長さの値を作る。SHA-256なら256ビット
  • 1ビットでも違うデータからは、まったく違う値が出る
  • SHA-256などのSHA-2では、同じ値になる別のデータを作ることが事実上できない (MD5やSHA-1は、この性質が崩れて危殆化した)

ただし、照合の基準になる値が偽物なら意味がありません。ファイルと同じ場所の値が まとめて差し替えられていれば、両方が偽物でも一致します。基準の値は、 公式サイトなど信頼できる経路から取ることが前提です。

混同しやすいものとの違い

確かめたいこと 使う仕組み ハッシュ値の一致で分かるか
途中で書き換えられていない ハッシュ値の照合 分かる
作成者が本人である デジタル署名 分からない
通信を読まれていない TLSなどの暗号化 分からない
中身が安全である マルウェア検査・脆弱性情報 分からない

ハッシュ値の問題では、「完全性以外のこと」を言い過ぎている選択肢を外すと正解が残ります。

前の問題へ次の問題へ