this と this の質問と回答を読んだ後、最後の質問から、zipは安全ではなくデータを共有する方法として安全ではないと考えられたという全体的な印象を残しました。
パスワードで保護された圧縮ファイルを安全にすることができると私はまだ思います。だからこれでこれをまっすぐにしましょう
特定のシナリオ
7z
コマンドのバージョン9以降を使用しています。 Zip
ではありません。 rar
ではありません。.Zip
または.7z
になるかどうかに関係なく、パスワード保護されている場合、7zはデフォルトでAES-256を使用します。自己解凍ファイルarchive.exe
をディレクトリdir1
から作成し、すべてのファイル名の内容と名前、およびすべてのヘッダーを暗号化したいので、
7z a -mhe=on -psecretpassword -sfx archive.exe dir1
SHA1
ハッシュを安全に共有します私はそう言います
dir1
にあるファイルの名前は、パスワードがわからない場合は読み取れませんSHA1
を確認した場合、なんらかのテンパリングが発生します。openssl aes-256-cbc
を適用するのと同じくらい安全です-sfx
を削除するか-t7z
に変更するだけで修正されますが、この場合、解凍するために7-Zipが必要になります。正しいかどうか?
質問:自己解凍型アーカイブは、AESの完全な実装で暗号化されていますか?アーカイブの暗号化ハッシュとキーが送信された場合、盗聴者またはアクティブな中間者に対して十分なエントロピーを持つキーを使用して暗号化されていますか?安全であると想定されている別のチャネル?
はい。
ただし、これらの仮定の一部は現実の世界では適用されない場合があります。
最初の仮定を検討すると、ほぼ1年前からこのフォーラムに関連する質問があります: https://stackoverflow.com/questions/12470378/how-key-derivation-and-key-verification-functions-are-実装済みの7-Zip-arc
そこでの議論によると、7zは強力なパスワードベースのキー導出関数とCBCモードのAESを使用します(これは問題ありません。これは、復号化が試行される前にアーカイブのSHA1ハッシュが検証されると想定しているため、Oracleのパディングが停止するためです。攻撃)。
ただし、前述の説明では、ドキュメントの欠如と7zでの読みにくいコードも強調されています。 7zで実行される実質的な暗号解読については知りません。したがって、それを使用することで、最終的にはすべての暗号化実装が正しくなるように開発者に信頼を置くことになります。
- ファイル名とヘッダーも暗号化されているため、アーカイブはファイル置換で改ざんできません
- 自己解凍は脆弱性を追加しません
これは誤りです。予想されるユースケースが自己解凍型アーカイブの実行によるものである場合、.exeファイルを改ざんできる攻撃者は自己解凍コードを変更して、解凍されたファイルを自分が望む方法で変更する可能性があります。 (もちろん、パスワードの記録やバックドアのインストールなど、彼はさらに多くのことを行うこともできます)
したがって、改ざんがリモートでさえ可能な状況にある場合、自己解凍アーカイブは非常に悪い考えです。