Я не большой крипто-эксперт, но я думаю, что это зависит от вашей оценки модели угроз.
Если вы можете предположить, что злоумышленник может считывать случайные части памяти, я, честно говоря, не знаю, как можно спроектировать криптографически безопасную систему. В конце концов, злоумышленник может извлечь ваш секретный ключ, как только вы извлечете его из памяти. Если вы предполагаете, что злоумышленники могут это сделать, установка дополнительных средств защиты для максимально быстрой очистки памяти не изменит того факта, что ваша система по-прежнему уязвима. Злоумышленник, заранее знающий временные параметры системы, может проникнуть в нее.
Если вы не предполагаете, что злоумышленник может это сделать, то вопросы безопасности, связанные с сохранением старых строк в памяти, менее важны. Функции безопасности на уровне языка Java должны гарантировать, что злоумышленник, который может скомпрометировать JVM, не сможет увидеть строковые объекты с истекшим сроком действия. Если вы не доверяете реализации Java, чтобы защитить это, то я не думаю, что ошибка больше связана с JVM, чем со строковыми объектами.
В более общем плане, я думаю, что первый вопрос, который нужно задать, это то, что, по вашему предположению, может сделать злоумышленник. Если вы считаете, что ваша система может быть уязвима для сканирования содержимого оперативной памяти, то я думаю, что у вас гораздо более серьезная проблема, чем сборщики мусора, которые работают недостаточно быстро. Если вы думаете, что кто-то может запустить произвольный код Java, то я не думаю, что это проблема. Если вы думаете, что кто-то может заморозить компьютер и отнести его в лабораторию для проверки оперативной памяти, я думаю, у вас есть более серьезные проблемы, о которых нужно беспокоиться.
Надеюсь это поможет!
person
templatetypedef
schedule
07.06.2014
StringObject
? - person Oliver Charlesworth   schedule 07.06.2014StringObject
? Я не думаю, что это стандартный класс Java. Вы говорите об экземплярахjava.lang.String
? - person Fabian   schedule 07.06.2014char[]
, а неString
. - person Oliver Charlesworth   schedule 07.06.2014String
до тех пор, пока они не будут удалены сборщиком мусора, является плохой практикой, поскольку вы можете хранить их как любой объект и быть столь же уязвимыми. - person Makoto   schedule 07.06.2014