2013-02-22 4 views
0

Я использую Entity Framework 5 в автономном клиенте WPF. Как настроить структуру сущности, чтобы мой пароль базы данных, который находится в строке соединения, не был в виде обычного текста в памяти?Как защитить строку подключения EF?

+0

нет необходимости в конфигурации на основе эф, см: http://stackoverflow.com/questions/8760048/encrypt-connectionstring-in-entity-framework-first-code – MUG4N

+0

http://msdn.microsoft.com/en-us/library/dtkwfdky(v=vs.100).aspx Эта страница может помочь вам зашифровать ваш файл конфигурации. –

ответ

1

Существует два основных способа борьбы с безопасностью строки с базами данных.

Как правильно указано @ MUG4N и @BNicoll, вы можете зашифровать строки подключения в вашем app.config (или web.config), что позволит избежать легкости чтения настроек. Однако в этом случае фактическое имя пользователя и пароль сохраняются на аппарате, а это означает, что с небольшой работой вы можете получить пароль открытого текста.

На мой взгляд, гораздо лучшим решением является использование учетной записи, запускающей приложение для аутентификации непосредственно с SQL. Это означает, что имя пользователя/пароль никогда не используется в цикле auth, и вместо этого используется проверка подлинности на основе токенов NTLM или кебероскопия, которая намного безопаснее и не требует хранения дешифруемых паролей.

Чтобы использовать этот метод, вам необходимо убедиться, что вы находитесь в домене и предоставить разрешение учетной записи пользователя, запускающей приложение, для доступа к базе данных. Затем вам нужно будет заменить имя пользователя/пароль в строке подключения Integrated Security=SSPI;

К сожалению, этот метод требует, чтобы вы работали в домене Windows, который может быть непригоден в вашем случае.

Заканчивать MS Whitepaper на security in connection strings

+0

Вместо этого в серверной среде требуется хранить дешифруемые аутентификационные токены (если у вас нет HSM/sysadmin, чтобы сделать это для вас при запуске). Не так плохо, как пользовательские пароли, конечно, но примерно эквивалентно случайным образом выбранным паролям. –

+0

@tc. поскольку я понимаю это, если у вас нет обратимого шифрования для домена, нет способа перейти от зашифрованного токена пользователя (который хранится локально) к исходному паролю. Токены также являются специфичными для машин, которые уменьшают атаки, если они скомпрометированы только из взломанной машины. –

+0

@tc. Рекомендации CF MS «Чтобы ограничить доступ к источнику данных, вы должны защитить информацию о соединении, такую ​​как идентификатор пользователя, пароль и имя источника данных. Чтобы избежать раскрытия информации о пользователе, мы рекомендуем использовать проверку подлинности Windows (иногда называемую интегрированной безопасностью), где это возможно. Аутентификация Windows указана в строке соединения с помощью ключевых слов Integrated Security или Trusted_Connection, что исключает необходимость использования идентификатора пользователя и пароля. » –

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