スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.4145
A社では、社内システムで共有するファイルの完全性を検証するため、従来からハッシュ関数のMD5を用いてファイルごとのハッシュ値を算出し、保管・管理していた。しかし、近年のセキュリティ上の脅威の変化に伴い、MD5の利用を見直すことになった。MD5に関する記述として、見直しを行うべき理由を述べたものとして最も適切なものはどれか。

【正解の解説】

異なるメッセージから同じハッシュ値が生成される衝突耐性がすでに破られており、改ざんされたファイルを検知できない危険性があるため。

ハッシュ関数はファイルの「指紋」のようなもので、中身が1文字でも変われば値が変わるはずでした。しかしMD5は、人間で言えば全く異なる顔の人間なのに同じ指紋を作り出す「双子の偽装工作」技術を破られてしまいました。つまり、悪意ある攻撃者が中身を書き換えた悪質なファイルを用意しつつ、元のファイルと全く同じMD5のハッシュ値を計算して見せかけることが理論的にも現実的にも可能になってしまったため、完全性の保証ができず見直しが必要なのです。

スポンサーリンク

【その他の選択肢の解説】

ハッシュ値から元のメッセージを復元することが数学的に容易であり、保存しているファイルの中身が外部に漏洩する危険性があるため。

ハッシュ関数は、元のデータを一方通行で混ぜ合わせて短い文字列(ハッシュ値)を作る仕組みです。料理に例えると、食材をミキサーにかけてジュースにした後から、ジュースを元の形の野菜や肉に戻せないのと同じ「不可逆性」があります。したがって、ハッシュ値から元のファイルの中身が丸見えになることは原理的にあり得ません。情報漏洩の危険性という言葉に惑わされないよう注意しましょう。

計算処理にかかる負荷が現在の共通暗号方式に比べて非常に大きく、社内サーバーのCPU使用率を圧迫するボトルネックになるため。

MD5などのハッシュ値計算は、複雑な共通暗号方式(AESなど)の暗号化・復号処理に比べて非常にシンプルな数学的処理の組み合わせで作られています。そのため、サーバーのCPUに重い負荷をかけるボトルネックになることはありません。むしろ処理が軽快であることが、かつてファイルチェック等で広く使われていた理由の一つでもあります。パフォーマンス低下を理由にするのは試験の引っかけです。

生成されるハッシュ値のビット長が近年の標準規格よりも長大であり、ストレージの保存容量を過剰に消費してしまうため。

MD5のハッシュ値は128ビット(16バイト)固定であり、これは現在の安全基準から見ると短すぎて脆弱性とみなされているサイズです。例えば、より安全とされるSHA-256では256ビットの長さがあります。「長大すぎてストレージを圧迫する」というのは事実とは真逆であり、セキュリティ強度が不足している点が問題の本質です。用語の大小や長短に関する出題者の典型的なミスリードの罠です。