Я унаследовал проект Java (Spring) на этапе обслуживания, который только что прошел через Veracode в первый раз, и единственный оставшийся недостаток High
— это сообщение о «слабом или сломанном» алгоритме шифрования. Я бы предпочел потратить время на изучение криптографии, но этот проект находится в разработке, поэтому мне нужно начать с более быстрого решения, чтобы обеспечить безопасность этого приложения.
Вот строка, о которой Veracode сообщает конкретно:
Cipher cipher = Cipher.getInstance("PBEWITHSHA1ANDDESEDE");
Veracode не предоставляет информацию о:
- Почему этот алгоритм неисправен/слаб
- Какие алгоритмы могут обеспечить достаточное количество заменителей
- Любые другие проблемы, о которых следует помнить при выборе соответствующего алгоритма.
Чем можно заменить "PBEWITHSHA1ANDDESEDE"
? Потребует ли это других рефакторингов, или это так же просто, как замена строкового литерала? Я хотел бы дать больше спецификаций, чтобы помочь нам определить, какой алгоритм шифрования будет лучшим, но, поскольку Veracode не предоставляет их, единственной спецификацией является «алгоритм шифрования, который удовлетворяет Veracode».