EN JP CN

SV.WEAK.CRYPT

SV.WEAK.CRYPT

破られたまたは危険な暗号化アルゴリズムの使用

チェッカーの目的は、リスクのある/破損した/廃止された暗号機能の検出です。

チェッカーは良く知られている弱い実装が含まれているコードまたは暗号化 API やライブラリの利用を検出します。チェッカーは「MD2」、「MD4」、「MD5」、「SHA」、「SHA1」、「SHA-1」アルゴリズムの使用に欠陥がある場合、報告します。

脆弱性とリスク

機密データが十分に保護されていないと、データの機密性または整合性が失われる可能性があります。DES 暗号化は、ブルートフォース攻撃で破られる可能性があります。MD5 ベースのアルゴリズムの方が少しセキュアなので、DES ベースのアルゴリズムより好まれていますが、さらに新しい SHA-1 ベースのアルゴリズムでも既に破られています。SHA-256 や SHA-512 などのハッシュアルゴリズムは、連邦情報処理規格 (FIPS) から承認されており、よりセキュアであると考えられています。セキュリティ分野の専門家が最善と考える暗号アルゴリズムを使用することが重要です。

脆弱コード例 1

1 public static UUID nameUUIDFromBytes (byte[] name) {
2     try {
3         MessageDigest md = MessageDigest.getInstance("MD5");
4         return make Uuid(md.digest(name), 3);
5     } catch (NoSuchAlgorithmException e) {
6         throw new AssertionError(e);
7     }
8 }

3 行目に SV.WEAK.CRYPT が欠陥を報告。

修正コード例 1

1 public static UUID name UUIDFromBytes (byte[] name) {
2     try {
3         MessageDigest md = MessageDigest.getinstance("SHA-256");
4         return makeUuid(md.digest(name), 3);
5     } catch (NoSuchAlgorithmException e) {
6         throw new AssertionError(e);
7     }
8 }   

メッセージ - ダイジェストアルゴリズムをよりセキュアな SHA-256 に変更すると、指摘はなくなります。

関連チェッカー