質問: gpg対称暗号化を使用しているときに「警告:メッセージは整合性が保護されていませんでした」を修正するにはどうすればよいですか? 次のような対称暗号化を使用してファイルを暗号化しました。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を知っており、それらが安全であることを知っています。 なぜそれは整合性のために保護されていないのですか? さらに、これをどのように修正しますか?
回答: バックグラウンド cast-5 は、gnupgが最初に作成された時点では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 これにより、ファイルの整合性が検証されるだけでなく、ファイルの受信者が送信元を確認できるようになります。ファイルを変更すると、署名チェックが失敗します。