Я использую:
1. RSA / ECB / PKCS1Padding
2. AES / GCM / NoPadding
Чтобы зашифровать мои данные в моем приложении Android (Java). В документации SonarQube говорится, что:
Алгоритм шифрования Advanced Encryption Standard (AES) может использоваться в различных режимах. Режим Галуа / счетчика (GCM) без заполнения следует предпочесть следующим незащищенным комбинациям:
- Режим электронной кодовой книги (ECB): при заданном ключе любой заданный блок открытого текста всегда шифруется в один и тот же блок зашифрованного текста. Таким образом, он плохо скрывает шаблоны данных. В некотором смысле он не обеспечивает серьезной конфиденциальности сообщений и вообще не рекомендуется для использования в криптографических протоколах.
- Цепочка блоков шифрования (CBC) с заполнением PKCS # 5 (или PKCS # 7) подвержена атакам оракула с заполнением.
Итак, как рекомендуется, я использую AES/GCM/NoPadding
как:
Cipher c = Cipher.getInstance("AES/GCM/NoPadding");
Но он по-прежнему выдает предупреждение: Убедитесь, что здесь безопасно шифрование данных.
То же самое для:
Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
Почему SonarQube выдает это предупреждение? Разве такое использование больше не безопасно?
Make sure that encrypting data is safe here.
- person Dionis Beqiraj   schedule 13.09.2019