2016-10-10 5 views
2

Я пытаюсь запустить fortify для моего java-кода, и я наткнулся на следующую ошибку. Можете ли вы кого-нибудь помочь?Усилить ошибку Bad Crypto для метода шифрования getInstance

High Priority: An instance of Cipher.getInstance was found. EncryptionUtils.java:137 (Unconditional: Bad Crypto) [83299E2C-B5DB-45F2-8CFE-01F3E6C0C02D] 55E277C045A4A6E410FCBF9BA5125E3E

Code Line, в котором я получаю эту ошибку

final Cipher aesCBCCipher = Cipher.getInstance("AES/GCM/Nopadding");

+0

Почему вы указываете 'Nopadding'? – Robert

+0

Я пробовал как с «NoPadding», так и с «PKCS5Padding». Но оба они привели к тому же исключению. Я просто использовал одно и то же преобразование шифрования, как упоминалось ссылкой в ​​вопросе. –

ответ

0

Это может произойти из-за как дополнения или преобразования. Если вы не укажете преобразование, по умолчанию ECB будет приниматься как для Java, так и для Android, и это не считается защищенным Fortify.

у меня был тот же вопрос, указав:

final Cipher cipher = Cipher.getInstance("AES"); 

Fortify перестал жаловаться, когда я изменил его на следующее:

final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); 

Here, вы можете найти список преобразований, которые каждый JVM требуется для поддержки. И here, например, те, которые поддерживаются Android.

Я подозреваю, что полученная вами ошибка связана с тем, что использование GCM требует дополнительных шагов (и если они не предоставлены, шифр может принимать другое преобразование по умолчанию - я не проверял это). Пожалуйста, смотрите следующий отрывок из Java docs:

режимы AEAD, такие как GCM/CCM выполнять все расчеты AAD подлинности перед началом расчетов шифротекста подлинности. Чтобы избежать реализаций, связанных с внутренним буфером зашифрованного текста, все данные AAD должны быть предоставлены в реализации GCM/CCM (с помощью методов updateAAD) до обработки зашифрованного текста (с помощью методов update и doFinal).

Если вы откроете Инструмент Fortify Audit Workbench с результатами вашего анализа, это даст вам дополнительную информацию и понимание вашей проблемы.

 Смежные вопросы

  • Нет связанных вопросов^_^