부적절한 RSA 패딩

C# 부적절한 RSA 패딩

설명

RSA 암호화의 PKCS#1 v1.5 패딩은 복호화 오류나 처리 시간으로 패딩의 유효성을 구분할 수 있으면 패딩 오라클 공격에 노출될 수 있습니다. 패딩 없는 RSA는 결정적이며 암호문 변조에 취약하므로 대안으로 사용하면 안 됩니다.

잠재적 영향

  • 암호문 복호화, 메시지 위조, 민감 정보 노출 위험이 커질 수 있습니다.

해결 방법

OAEP 패딩을 사용하고 가능한 경우 RSAEncryptionPadding.OaepSHA256 이상을 선택합니다.

예시

변경 전

csharp
return rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1);

변경 후

csharp
return rsa.Encrypt(data, RSAEncryptionPadding.OaepSHA256);

설명:

  • 변경 전: PKCS#1 v1.5 암호문을 처리하는 복호화 측에서 패딩 오류가 구별되면 패딩 오라클이 생길 수 있습니다.
  • 변경 후: OAEP 패딩을 사용하고, 지원되는 경우 RSAEncryptionPadding.OaepSHA256 이상을 우선 사용하세요.

참조