
Инструмент для проверки, подвержен ли PGP-клиент уязвимости CVE-2021-33560
Это инструмент для проверки того, затронут ли ваш 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!
Чтобы узнать больше об уязвимости, прочитайте наш технический пост в блоге.