2013-04-23 2 views
0

Я пишу службу, которая позволяет пользователям в моем корпоративном домене выполнять операции с ограниченным активным каталогом. Эти пользователи не имеют прав для самих AD, но сайт аутентифицируется как общий пользователь, который может делать такие вещи, как разблокировать учетную запись (например).Как защитить конфиденциальные пароли в моих веб-приложениях/службах C#?

пароль в моем коде в настоящее время в незашифрованном

Есть рекомендуемый метод там для меня, чтобы защитить этот пароль? Очевидно, кто-то должен будет декомпилировать двоичные файлы веб-сайта, чтобы получить к нему доступ, но я не чувствую, что это достаточная защита.

Для фона я использую более новые методы System.DirectoryServices.AccountManagement в C# для этого, так что я:

PrincipalContext pc = new PrincipalContext(ContextType.Domain, "MYDOMAIN", "theuser", "thepassword"); 

Любые советы оценили! В противном случае я мог бы просто прибегнуть к обфускации, зашифровать его и использовать несколько классов, похожих на барсук-warren, для дешифрования значений

+0

Поскольку это код ASP.NET, вы можете предположить, что у вас не будет доступа к .DLL для вашего приложения. Будет только несколько администраторов серверов. Вы предполагаете, что один из них вреден и не заслуживает доверия? Если да, то шансы, что вы ввернуты, и нет ничего, что вы могли бы сделать, чтобы защитить себя от них. – Servy

ответ

3

Я думаю, что лучшим способом было бы иметь идентификатор пула приложений, имеющий достаточные разрешения для выполнения необходимой работы в Active Справочник. Это позволит веб-приложению работать без необходимости жесткого кодированного имени пользователя и пароля. Вам может понадобиться помощь из sysadmin, чтобы получить эту настройку.

Помните, что обфускация работает так хорошо. Obfuscated код должен быть de-obfuscated перед исполнением, чтобы процессор мог это понять. Если кто-то определен, это может быть побеждено. Но если это произойдет, у вас, вероятно, будет больше, чем проблема безопасности.

И, наконец, пользователь, подключающийся к активному каталогу, должен иметь наименьший объем доступа, чтобы уменьшить любой возможный ущерб в случае обнаружения имени пользователя и пароля.

+0

Точно. Лучший способ защитить конфиденциальную информацию - не использовать ее. Пусть встроенная инфраструктура безопасности справится с этим. –

Смежные вопросы