хакер может получить пароль, если у него есть доступ к приложению в отладчике.
Правильно. Хакер также имеет доступ к паролю, когда он наблюдает за типом пользователя, просматривая физическое плечо пользователя с его физическими глазными яблоками.
И у хакера есть доступ после того, как они сохранили кейлоггер на компьютере пользователя.
Является ли это просто фактом жизни, когда нужно временно хранить пароль на клиенте?
Нет.
В качестве альтернативы вы можете лично посетить каждого пользователя и запретить ему использовать отладчик для нарушения безопасности.
Давайте просто подумаем о случае использования, когда пользователь (который знает пароль) запускает приложение в отладчике, чтобы узнать пароль. Который они уже знали.
Подумав об единственном сценарии использования, когда пользователь запускает клиентское приложение, запущенное под отладчиком, я не уверен, что безопасность «нарушена», поскольку он уже знал пароль.
Полагаю, Генри Хакер мог бы запустить приложение в отладчике, скрыть это на другом дисплее, отключив питание, затем запустив его, чтобы получить реального пользователя, и заставить его ввести свой пароль на рабочей станции разработки, которая один из мониторов выключен Вы говорите об «доступе к приложению в отладчике»?
Мне даже нужно беспокоиться об этом случае,
Не совсем
или Java защитит мое приложение доставки от наличия отладчика или другого анализатора памяти, подключенного к нему?
Нет, Java не защищает ваших пользователей. Здравый смысл защищает ваших пользователей.
Если отладчик работает, он не должен использовать компьютер.
И в 99% случаев они не запускают отладчик.
1% времени они случайно запустят отладчик - потому что пользователи нажимают случайные значки. Из них 1% фактически заставит ваше приложение работать под отладчиком. Опять же, нажав на случайные значки. Из них 1% фактически попадут в место, где они могли бы ввести пароль, нажав случайные значки на экране.
* Может случиться так, что пользователь может каким-то образом запустить ваш клиент под отладчиком. Но. Поскольку они уже знают пароль, беспокоиться об этом бессмысленно.
Это полностью отличается от атаки "человек посередине" или атаки с дистанционным управлением.
Если кто-то получает удаленный контроль над компьютером вашего пользователя, запускает отладчик и наблюдает за транзакцией, то это совершенно отдельно. Это остановлено брандмауэрами и операционными системами. Не Java.
поместите его в хранилище ключей и получите позже для повторного подключения
Это все, что ты можешь сделать. Сценарий «подключить отладчик» не может быть предотвращен вашими приложениями Задача ОС - предупредить пользователя о подключении отладчика.
Если вы беспокоитесь об ответственности, не храните пароли. Окончание ответственности.