
これは、お使いの OpenPGP クライアントが CVE-2021-33560 の影響を受けるかどうかを確認するツールです。
この脆弱性により、特定の ElGamal サブキーに暗号化したメッセージが平文として復元される可能性があります。技術的な詳細は、このブログ記事 および この研究論文 に記載されています。
このツールは、OpenPGP クライアントが 送信者として動作する場合 に影響を受けるかどうかをテストします。ElGamal サブキーが 受信者として動作する場合に影響を受けるかどうかは示しません。残念ながら、これは計算量が多く、専門家のみが実行できるチェックです。ElGamal サブキーを使用しており、そのセキュリティが気になる場合は、FAQ をお読みください。
Python バージョン 3.8 以上が必要です。
このツールは、特別に細工された ElGamal サブキーにメッセージを暗号化し、生成された暗号文を分析して脆弱性を探すことで動作します。
公開鍵のインポートとそれへの暗号化の方法は、お使いの OpenPGP クライアントに依存します。以下の例では GPG を使用しています(libgcrypt はバージョン 1.8.8 および 1.9.3 まで影響を受けます)が、ご自身のクライアントに合わせて手順を調整する必要があります。
このリポジトリをクローンして、そのディレクトリに入る
git clone https://github.com/IBM/PGP-client-checker-CVE-2021-33560.git
cd PGP-client-checker-CVE-2021-33560
公開鍵をインポートする(この手順はクライアントに依存します)
gpg --import key.asc
インポートした鍵にメッセージ(例: "Hi")を暗号化する(この手順はクライアントに依存します)
echo "Hi" | gpg -e --always-trust --armor -r [email protected] --output ciphertext.asc
取得した暗号文に対してツールを実行する
./sec-check.py ciphertext.asc
そして出力を確認します。クライアントが影響を受ける場合、次のようなメッセージが表示されることがあります:
Inspecting ./ciphertext.asc
Ephemeral secret bit length: 342
**Your client is affected by CVE-2021-33560!**
Your client seems to be based on an old version of libgcrypt. If a
security patch for your client is available, install it!
脆弱性の詳細については、技術ブログ記事 をお読みください。