
PGP 클라이언트가 CVE-2021-33560에 영향을 받는지 확인하는 도구
이 도구는 사용자의 OpenPGP 클라이언트가 CVE-2021-33560의 영향을 받는지 확인하기 위한 것입니다.
이 취약점은 일부 ElGamal 하위 키(subkey)로 암호화한 메시지가 평문 복구에 노출되게 합니다. 취약점의 기술적 세부 사항은 이 블로그 게시물과 이 연구 논문에 설명되어 있습니다.
이 도구는 사용자의 OpenPGP 클라이언트가 송신자(sender)로서 영향을 받는지 테스트합니다. ElGamal 하위 키가 수신자(recipient)로서 영향을 받는지는 알려주지 않습니다. 안타깝게도 이는 전문가만이 수행할 수 있는 계산량이 많은 확인입니다. ElGamal 하위 키를 사용하고 있으며 그 보안에 대해 우려된다면, FAQ를 읽어보세요.
Python 버전 3.8 이상이 필요합니다.
이 도구는 특별히 제작된 ElGamal 하위 키에 메시지를 암호화한 후, 생성된 암호문(ciphertext)을 분석하여 취약점 여부를 확인하는 방식으로 작동합니다.
공개 키를 가져오고 암호화하는 방법은 사용자의 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
**사용자의 클라이언트가 CVE-2021-33560의 영향을 받습니다!**
사용자의 클라이언트가 오래된 버전의 libgcrypt를 기반으로 한 것으로 보입니다.
클라이언트에 대한 보안 패치가 제공된다면 설치하세요!
취약점에 대해 더 알아보려면 기술 블로그 게시물을 읽어보세요.