🇰🇷 한글 설명
PKCS#7 KTRI 복호화 과정에서 발생하는 Bleichenbacher 패딩 오라클 취약점입니다. RSA PKCS#1 v1.5 키 전송을 사용하여 EnvelopedData를 복호화할 때, 패딩 오류와 데이터 오류를 구분하는 에러 코드를 반환하여 공격자가 암호화된 콘텐츠 암호화 키(CEK)를 점진적으로 복구할 수 있습니다.
💡 쉬운 설명
암호문을 풀 때 발생하는 에러 메시지의 차이를 이용해 암호 키를 알아낼 수 있는 결함입니다. 공격자가 잘못된 암호문을 계속 보내보면서 시스템의 반응을 보고 비밀번호와 같은 키를 유추해낼 수 있습니다.
🇺🇸 원문 (English)
Bleichenbacher padding oracle in PKCS#7 KTRI decryption. When decrypting PKCS#7 EnvelopedData using RSA PKCS#1 v1.5 key transport, wolfSSL returned distinguishable error codes depending on whether RSA padding validation failed versus whether the decrypted content was malformed. An attacker able to submit crafted EnvelopedData messages and observe error responses could use this as a padding oracle to incrementally recover the encrypted Content Encryption Key (CEK). The fix generates a deterministic pseudo-random fake CEK on padding failure (via HMAC-SHA256) and proceeds with decryption identically, using constant-time operations throughout, so that all failure paths produce the same error regardless of padding validity.
📍 영향받는 시스템
wolfSSL (RSA PKCS#1 v1.5 키 전송을 사용하는 버전)
⚔️ 공격 벡터
조작된 EnvelopedData 메시지를 전송하여 에러 응답의 차이를 관찰하는 패딩 오라클 공격
🛡️ 대응 방법
패딩 오류 시 HMAC-SHA256을 사용하여 결정론적 의사 난수 CEK를 생성하고, 모든 실패 경로에서 동일한 에러를 반환하도록 업데이트된 wolfSSL 버전으로 패치
🔧 검증 코드
현재 설치된 wolfSSL 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.
wolfssl_version_check_command_placeholder