🇰🇷 한글 설명
tlslite-ng 라이브러리의 RSA PKCS#1 v1.5 복호화 과정에서 데이터 의존적인 패딩 검사로 인해 정보가 유출되는 취약점입니다. 복호화된 평문의 시작 부분에 따라 오류가 발생하는 방식이 달라져 사이드 채널 공격에 노출될 수 있습니다. 이 문제는 0.7.6 및 0.8.0-alpha39 버전에서 패치되었습니다.
💡 쉬운 설명
암호문을 풀 때 데이터의 특정 부분에 따라 반응 속도나 오류 메시지가 달라지는 결함이 있습니다. 공격자는 이 차이를 이용해 암호화된 내용을 조금씩 알아낼 수 있습니다.
🇺🇸 원문 (English)
tlslite-ng is an open source python library that implements SSL and TLS cryptographic protocols. In tlslite-ng before versions 0.7.6 and 0.8.0-alpha39, the code that performs decryption and padding check in RSA PKCS#1 v1.5 decryption is data dependant. In particular, the code has multiple ways in which it leaks information about the decrypted ciphertext. It aborts as soon as the plaintext doesn't start with 0x00, 0x02. All TLS servers that enable RSA key exchange as well as applications that use the RSA decryption API directly are vulnerable. This is patched in versions 0.7.6 and 0.8.0-alpha39. Note: the patches depend on Python processing the individual bytes in side-channel free manner, this is known to not the case (see reference). As such, users that require side-channel resistance are recommended to use different TLS implementations, as stated in the security policy of tlslite-ng.
📍 영향받는 시스템
tlslite-ng 0.7.6 미만 버전 및 0.8.0-alpha39 미만 버전
⚔️ 공격 벡터
RSA 키 교환을 사용하는 TLS 서버 또는 RSA 복호화 API를 직접 사용하는 애플리케이션을 대상으로 한 사이드 채널 공격
🛡️ 대응 방법
tlslite-ng를 0.7.6 또는 0.8.0-alpha39 이상의 버전으로 업데이트하거나, 사이드 채널 저항성이 더 높은 다른 TLS 구현체를 사용하십시오.
🔧 검증 코드
출력된 버전이 0.7.6 또는 0.8.0-alpha39보다 낮은지 확인하십시오.
pip show tlslite-ng | grep Version