Хранение конфиденциальных сведений с использованием ASP.NET

Visual Studio 2010

Обновлен: Ноябрь 2007

В приложениях ASP.NET часто используются конфиденциальные сведения. Например, в приложении могут храниться имена пользователей и пароли для подключения к базе данных или работы с приложением. В таких случаях помимо шифрования передаваемых по сети данных с использованием протокола SSL рекомендуется обеспечивать защиту данных, хранящихся на сервере и клиенте. В этом разделе приведены общие рекомендации по хранению конфиденциальных сведений.

kek09k9k.alert_note(ru-ru,VS.100).gifПримечание.

Дополнительные сведения о хранении конфиденциальных сведений см. на странице Improving Web Application Security: Threats and Countermeasures веб-узла MSDN.

Лучшим способом защиты конфиденциальных сведений является отказ от их хранения в приложении. Сохраняйте минимально необходимый объем конфиденциальных сведений. Не храните такие сведения в файлах cookie или элементах управления обозревателя, поскольку в этом случае они становятся доступны клиентам приложения. Не храните конфиденциальные сведения в логике приложения. Вместо этого рекомендуется извлекать такие сведения из защищенного хранилища параметров конфигурации или клиента.

Не рекомендуется хранить конфиденциальные сведения в виде понятного для человека текста или в простом для декодирования формате, например Base64. Конфиденциальные сведения следует хранить в таком формате, который не позволяет раскрыть содержимое даже в случае их получения злоумышленником.

Если такие сведения используются только для проверки и не декодируются в понятный для человека формат, рекомендуется выполнять их шифрование с использованием одностороннего хэширования. В этом случае для сравнения конфиденциальных сведений следует выполнить хэширование полученного значения и сравнить хэшированные значения для проверки. Например, если для проверки подлинности пользователя в приложении используются членство ASP.NET и проверка подлинности на основе форм, задайте формат пароля Hashed. В этом случае обеспечивается одностороннее хэширование паролей при их проверке или сохранении в источнике данных.

При сохранении конфиденциальных сведений, например строк подключения, учетных данных пользователей или ключей шифрования, в файле Web.config приложения, рекомендуется защищать соответствующие разделы файла Web.config с помощью поставщика защищенной конфигурации. Дополнительные сведения о защищенной конфигурации см. в разделе Шифрование сведений о конфигурации с помощью функции защищенной конфигурации.

Дополнительные сведения о защите конфиденциальных сведений с помощью шифрования см. в разделе Модель криптографии .NET Framework.

Чтобы ограничить источники и уровни доступа к конфиденциальным сведениям, хранящимся в файлах, базах данных, реестре или других местах, используйте списки управления доступом NTFS. Дополнительные сведения см. в документации по соответствующим базам данных или в разделе Обязательные списки управления доступом (ACL) ASP.NET.

Показ: