説明
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以上の方式を優先してください。