ファイル検証は、コンピュータ ファイルの整合性を検証するためのアルゴリズム(通常はチェックサム)を使用するプロセスです。これは、2 つのファイルをビットごとに比較することで実行できますが、同じファイルの 2 つのコピーが必要であり、両方のファイルに発生する可能性のある体系的な破損を見逃す可能性があります。より一般的な方法は、コピーされたファイルのハッシュを生成し、それを元のファイルのハッシュと比較することです。
整合性検証
ファイルの整合性が損なわれることがあります。これは通常、ファイルが破損することを意味します。ファイルは、ストレージ メディアの障害、転送エラー、コピーまたは移動中の書き込みエラー、ソフトウェアのバグなど、さまざまな原因で破損する可能性があります。
ハッシュベースの検証では、ファイルのハッシュ値を以前に計算した値と比較することで、ファイルが破損していないことを確認します。これらの値が一致する場合、ファイルは変更されていないとみなされます。ハッシュ関数の性質上、ハッシュの衝突により誤検知が発生する可能性がありますが、ランダムな破損の場合、衝突の可能性は無視できるほど小さいことがよくあります。
真正性の検証
多くの場合、ファイルが信頼できない第三者によって転送中または保管中に変更されていないこと、たとえばウイルスやバックドアなどの悪意のあるコードが組み込まれていないことを確認することが望ましいです。信頼性を確認するには、従来のハッシュ関数は衝突耐性を持つように設計されていないため十分ではありません。攻撃者が意図的にハッシュ衝突を引き起こすことは計算上容易であり、ファイル内の悪意のある変更はハッシュ比較では検出されません。暗号学では、この攻撃はプリイメージ攻撃と呼ばれます。
この目的のために、暗号ハッシュ関数がよく使用されます。ハッシュの合計が改ざんされない限り (たとえば、ハッシュの合計が安全なチャネルを介して通信される場合)、ファイルは無傷であると推定できます。または、デジタル署名を使用して改ざん耐性を確保することもできます。
ファイル形式
チェックサム ファイルは、他のファイルのチェックサムが含まれる小さなファイルです。
よく知られているチェックサムファイル形式はいくつかあります。[1]
md5deepなどのいくつかのユーティリティは、このようなチェックサム ファイルを使用して、1 回の操作でファイルのディレクトリ全体を自動的に検証できます。
使用される特定のハッシュ アルゴリズムは、多くの場合、チェックサム ファイルのファイル拡張子によって示されます。
「.sha1」ファイル拡張子は、 sha1sum形式の 160 ビットSHA-1ハッシュを含むチェックサム ファイルを示します。
「.md5」ファイル拡張子、または「MD5SUMS」という名前のファイルは、md5sum形式の128 ビットMD5ハッシュを含むチェックサム ファイルを示します。
「.sfv」ファイル拡張子は、単純なファイル検証形式で 32 ビット CRC32 チェックサムを含むチェックサム ファイルを示します。
「crc.list」ファイルは、brik 形式の 32 ビット CRC チェックサムを含むチェックサム ファイルを示します。
2012年現在、ベストプラクティスの推奨事項は、新しいファイル整合性ダイジェストを生成するためにSHA-2またはSHA-3を使用すること、およびより強力なダイジェストが利用できない場合は、下位互換性のためにMD5およびSHA-1ダイジェストを受け入れることです。理論的に弱いSHA-1、より弱いMD5、またははるかに弱いCRCは、以前はファイル整合性チェックに一般的に使用されていました。[2] [3] [4] [5 ] [6] [7] [8] [9] [10]
CRC チェックサムは、CRC32 が衝突耐性ハッシュ関数ではないため、ファイルの信頼性を検証するために使用することはできません。ハッシュ サム ファイルが改ざんされていない場合でも、攻撃者が元のファイルと同じ CRC ダイジェストを持つファイルを置き換えることは計算上簡単です。つまり、ファイル内の悪意のある変更は CRC 比較では検出されません。[引用が必要]
参照
参考文献
- ^ 「チェックサム」。
- ^ NIST. 「ハッシュ関数に関するNISTのポリシー」Wayback Machineに2011年6月9日にアーカイブ。2012年。
- ^ ファイル転送コンサルティング。「整合性」。
- ^ 「侵入検知に関する FAQ: 侵入検知における Tripwire のようなファイル整合性チェッカーの役割は何ですか?」Wayback Machineに 2014 年 10 月 12 日にアーカイブされました。
- ^ Hacker Factor. 「チュートリアル: ファイルダイジェスト」。
- ^ Steve Mead. 「国立ソフトウェア参照ライブラリにおける一意のファイル識別」p. 4。
- ^ Del Armstrong. 「Unix システムにおけるファイル整合性チェックの概要」. 2003 年.
- ^ 「Cisco IOS イメージの検証」
- ^ Elizabeth D. Zwicky、Simon Cooper、D. Brent Chapman。「インターネットファイアウォールの構築」p. 296。
- ^ Simson Garfinkel、Gene Spafford、Alan Schwartz。「実践的な UNIX とインターネット セキュリティ」630 ページ。
