CS.RCA

危険な暗号化アルゴリズムが使用されています

プログラムが機密データにより操作される場合、または通信チャネルを保護する場合、攻撃者がこれらを読み取ることができないよう暗号化を使うことができます。攻撃に対する脆弱性をもたらすことが証明されているいくつかの廃止された暗号化アルゴリズムがあります。

CS.RCA チェッカーは、プログラムで既知の破られた、または危険な暗号化アルゴリズムが使用されていないかを検出する専用のチェッカーです。

脆弱性とリスク

プログラムがデータ処理に破られた、または危険なアルゴリズムを使用している場合、プログラムがセキュリティ上脆弱となる可能性があります。CWE-327 は MD4、MD5、SHA1、DES などを、破られた、または使用するのは危険なアルゴリズムとしてリストしています。.Net Framework の名前空間System.Security.Cryptography にはいくつかのアルゴリズムがありますが、使用しないようにしてください。

廃止されたアルゴリズム リプレイスメントアルゴリズム
DES AES
TripleDES AES
MD5 SHA256、SHA512
RC2 AES
DSA RSA、ECDSA、ECDiffeHellman
RIPEMD160 SHA256、SHA512
Rijndael AES
SHA1 SHA256、SHA512

例 1

危険なアルゴリズムを表すクラスのインスタンスは、新しい演算子により作成されます。

1  using System.Security.Cryptography;
2  
3  namespace Program
4  {
5      class Program
6      {
7          public static void Main()
8          {
9              var desEncryptor = new DESCryptoServiceProvider(); // CS.RCA reported
10         }
11     }
12 }

例 2

危険なアルゴリズムが呼び出されるクラスのメソッドを作成します。

1  using System.Security.Cryptography;
2  
3  namespace Program
4  {
5      class Program
6      {
7          public static void Main()
8          {
9              var desEncryptor = DES.Create(); // CS.RCA reported
10         }
11     }
12 }                            

例 3

カスタムクラスが、危険なアルゴリズムを表すクラスから継承されています。

1  using System.Security.Cryptography;
2 
3  namespace Program
4  {
5      class MyDESEcryptWrapper : DES // CS.RCA reported
6      {
7          ...
8      }
9  }    

セキュリティトレーニング

Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。