マナビング基本情報技術者

SHA-256のハッシュ値で改ざんを確かめるには

基本情報技術者試験 令和元年度秋期 午前 問40 / セキュリティ › 情報セキュリティ

過去問にチャレンジ

令和元年度秋期 午前 問40

ファイルの提供者は,ファイルの作成者が作成したファイルAを受け取り,ファイルAと,ファイルAにSHA-256を適用して算出した値Bとを利用者に送信する。そのとき,利用者が情報セキュリティ上実現できることはどれか。ここで,利用者が受信した値Bはファイルの提供者から事前に電話で直接伝えられた値と同じであり,改ざんされていないことが確認できているものとする。

  1. ア

    値BにSHA-256を適用して値Bからディジタル署名を算出し,そのディジタル署名を検証することによって,ファイルAの作成者を確認できる。

  2. イ

    値Bに SHA-256 を適用して値Bからディジタル署名を算出し,そのディジタル署名を検証することによって,ファイルAの提供者がファイルAの作成者であるかどうかを確認できる。

  3. ウ

    ファイルAにSHA-256を適用して値を算出し,その値と値Bを比較することによって,ファイルAの内容が改ざんされていないかどうかを検証できる。

  4. エ

    ファイルAの内容が改ざんされていても,ファイルAにSHA-256を適用して値を算出し,その値と値Bの差分を確認することによって,ファイルAの内容のうち改ざんされている部分を修復できる。

会話形式の解説

講師講師
注目するのは、事前に確認した値Bを何の基準にできるかです。受信したファイルから計算した値と比べて考えましょう。
受験者受験者
電話で伝えられた値Bと受信した値Bが同じなので、照合の基準にできるのですね。
講師講師
はい。ファイルAにSHA-256を適用し、計算した値を値Bと比べれば、値Bを算出した時から内容が改ざんされていないかを検証できます。
受験者受験者
では、値Bをもう一度SHA-256にかければ、作成者まで確認できますか。
講師講師
いいえ。値Bをハッシュ化して得られるのは別のハッシュ値で、ディジタル署名ではありません。作成者の身元も示せません。
受験者受験者
提供者から値Bを直接聞いていても、提供者が作成者かどうかは別の話ですね。
講師講師
そのとおりです。値Bをハッシュ化しても、提供者と作成者が同じかを示す情報は得られません。
受験者受験者
値が一致しなかった場合、その差から改ざんされた部分を探して修復できますか。
講師講師
できません。ハッシュ値には、ファイルのどの部分が変わったかを示す情報がないためです。
受験者受験者
この問題でできるのは、信頼できる値Bとの照合による改ざんの検証ですね。作成者の確認や変更箇所の修復はできません。
講師講師
はい。ハッシュ値を使う問題では、比較する値が信頼できるかを確かめ、照合で分かる範囲を見極めましょう。

まとめ

事前に改ざんされていないと確認した値Bを、照合の基準にします。受信したファイルAからSHA-256の値を計算し、値Bと比較すれば、値Bの算出時から内容が改ざんされていないかを検証できます。値Bを再びハッシュ化してもディジタル署名にはならず、作成者の確認はできません。ハッシュ値の差から変更箇所を特定したり、修復したりすることもできません。

解答・解説

正解はウです

この問題のテーマ

SHA-256のハッシュ値でファイルの改ざんを検証できるか、またハッシュ値から何を確認できないかを問う問題です。

解き方の考え方

まず、事前に確認した値Bを照合の基準にします。受信したファイルAにSHA-256を適用した結果を値Bと比べ、各選択肢がその比較で実現できる範囲に収まるかを判断します。

選択肢ごとの解説

  1. ×ア  値BにSHA-256を適用して値Bからディジタル署名を算出し,そのディジタル署名を検証することによって,ファイルAの作成者を確認できる。
    値Bをもう一度ハッシュ化しても、得られるのは別のハッシュ値であり、ディジタル署名ではありません。ハッシュ値に作成者の身元を示す情報はないため、ファイルAの作成者は確認できません。
  2. ×イ  値Bに SHA-256 を適用して値Bからディジタル署名を算出し,そのディジタル署名を検証することによって,ファイルAの提供者がファイルAの作成者であるかどうかを確認できる。
    値Bをハッシュ化する操作では、提供者がファイルAを作成したかどうかを示す情報は得られません。したがって、その結果を調べても、提供者と作成者が同一かは確認できません。
  3. ○ウ  ファイルAにSHA-256を適用して値を算出し,その値と値Bを比較することによって,ファイルAの内容が改ざんされていないかどうかを検証できる。
    受信したファイルAからSHA-256の値を計算し、事前に改ざんされていないと確認した値Bと照合します。両者が一致するかを調べれば、ファイルAの内容が値Bの算出時から改ざんされていないかを検証できます。
  4. ×エ  ファイルAの内容が改ざんされていても,ファイルAにSHA-256を適用して値を算出し,その値と値Bの差分を確認することによって,ファイルAの内容のうち改ざんされている部分を修復できる。
    ハッシュ値には、ファイルのどの部分が変わったかを示す情報は含まれません。値Bとの差を調べても改ざん箇所は特定できず、その部分を修復することもできません。

POINT

  • ハッシュ値の照合には、信頼できる比較対象の値が必要です。
  • ハッシュ化するだけでは、ファイルの作成者を証明できません。
  • ハッシュ値はファイルの変更を調べる手掛かりになりますが、変更箇所の復元には使えません。

※出典:令和元年度秋期 基本情報技術者試験 午前 問40