
次のように対称暗号化を使用してファイルを暗号化しました。
gpg --symmetric myfile
結果としてファイル が生成されますmyfile.gpg
。
さて、もう一度ファイルを復号化してみましょう。
gpg -o myfile --decrypt myfile.gpg
設定したパスフレーズを聞かれ、そして
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected
最初と最後の行についてはよく分かりません。
- CAST5 暗号とは何ですか? 安全ですか? 3DES と AES は安全であることは知っています。
- なぜ完全性が保護されないのでしょうか?
- さらに、これをどうやって修正すればいいのでしょうか?
答え1
背景
キャスト-5GnuPGが最初に作成された当時はAESはまだ存在していなかったため、GnuPGで使用される古い暗号化アルゴリズムです。ソース広くは使用されていません (互換性の理由から GnuPG を除く)。
これWARNING: message was not integrity protected
は、この機能が暗号化時にデフォルトでオンになっていないためです。この機能がオンになっていると、GnuPG はファイルが転送中に変更されたかどうかを判断できます。
更新: Ubuntu/Debian に同梱されている GnuPG の最新バージョンには MDC が搭載されていますデフォルトで有効新しいバージョンで署名されたものに対しては、このメッセージが再度表示されることはなくなります。
ソリューション
より強力な AES-256 を使用するには、コマンド ラインまたは構成ファイルで指定する必要があります。
コマンドライン:
--cipher-algo AES256
暗号化する行全体は次のようになるようにオプションを追加します。gpg -o myfile.gpg --cipher-algo AES256 --symmetric myfile
構成ファイル (推奨): 構成ファイルに次の行を追加します
~/.gnupg/gpg.conf
。cipher-algo AES256
このアプローチは、このユーザー アカウントでの今後のすべての GPG 操作に使用されるため、お勧めします。
ユーザーがファイルを復号化するために変更する必要はありません。GnuPG がこれを自動的に検出します。
AES-256 暗号を使用すると、メッセージの整合性は自動的に保護されることに注意してください。これが有効になっていない他の暗号 (CAST-5 など) で整合性保護を手動で有効にするには、--force-mdc
暗号化時にオプションを追加します。
さらに良いのは、サインすることです!
さらに良い方法は、キーペア(お持ちの場合)を使用してファイルに署名することです。--sign
次のように、暗号化コマンドにオプションを追加するだけです。
gpg -o myfile.gpg --cipher-algo AES256 --sign --symmetric myfile
これにより、ファイルの整合性が検証されるだけでなく、ファイルの受信者が送信元を確認できるようになります。ファイルに変更が加えられると、署名チェックは失敗します。