В какой-то момент, независимо от того, сколько уровней безопасности у вас есть, код должен будет использовать незашифрованный пароль.Это означает, что кто-то, имеющий достаточный доступ к вашей системе для просмотра и / или изменения реестра, вероятно, имеет достаточный доступ к вашему коду для получения пароля независимо от того, что вы делаете.
Я знаю, как разработчики, мы склонны много работать с paranoia = Paranoia.Maximum;
, но иногда вам приходится что-то подкреплять.
Тем не менее, есть некоторые вещи, которые вы можете сделать.Если учетные данные должны быть настолько безопасными, рассмотрите возможность их хранения, если это возможно, в удаленной базе данных.Вы можете хранить их в зашифрованном виде на удаленном сервере, чтобы у любого, кто имеет доступ к вашей машине, не было необходимости иметь доступ к БД-серверу.
Если вы действительно хотите увеличить паранойю и обеспечить безопасность ответственности пользователяв то же время попросите их предоставить «безопасное местоположение» для файла, который содержит данные.Затем вы можете порекомендовать, чтобы местоположение было чем-то вроде флэш-диска, который физически удалялся бы из компьютера, когда ваша программа не используется.
В любом случае, с безопасностью, вы хотите думать с точки зренияслои.Ничто из того, что вы делаете, не будет достаточным для действительно хорошего уровня безопасности, но, применяя несколько мер, вы можете повысить уровень безопасности до уровня, достаточного для ваших нужд.