Java


JAVA.CRYPTO.MRCS : Missing Required Cryptographic Step (Java)

要旨

A function uses a cryptographic operation, but is missing a prerequisite step for that operation.

プロパティ

クラス名 Missing Required Cryptographic Step (Java)
日本語クラス名 Missing Required Cryptographic Step (Java)
クラス分類 セキュリティ (security)
ニーモニック JAVA.CRYPTO.MRCS
カテゴリー
CWE CWE:325 Missing Cryptographic Step
対応言語 Java で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで有効になっています。チェックを無効にするにはプロジェクト設定ファイル (configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += discard class="Missing Required Cryptographic Step (Java)"

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
public class MissingCryptoStep {

    public void CryptoMethod() throws NoSuchAlgorithmException {
        KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
        SecretKey secretKey = keyGenerator.generateKey(); // 'Missing Required Cryptographic Step (Java)' warning issued here:
                                      // - Missing call to init() before call to generateKey().
                                      // - Default initialization will be used. This may result in a less secure key than desired,
                                      //   and may also cause interoperability issues if multiple different cryptographic
                                      //   providers are used.
        // ...
        MessageDigest messageDigest = MessageDigest.getInstance("SHA-512");
        byte[] hash = messageDigest.digest(); // 'Missing Required Cryptographic Step (Java)' warning issued here:
                                      // - Missing call to update() before call to digest().
                                      // - 'hash' will contain no data.
        // ...
    }
}

解決法

Add the missing cryptographic step.

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。