Руководство по работе с БД Firebird с использованием библиотеки ADO .Net 2.0

       

Шифрование строки подключения. Data Protection API


Один из вариантов защитить строку подключения в своем конфигурационном файле - это воспользоваться Data Protection API (DAPI). Начиная с Windows 2000, DAPI является частью операционной системы.

Допустим, нам необходимо зашифровать данные, хранящиеся в секции connectionStrings. Для этого мы воспользуемся классом DataProtectionConfigurationProvider:

Подключим к нашему проекту сборку System.Configuration.dll и используем следующий код:

public void DataProtectionAPITest() { try

{ //открываем секцию connectionStrings из App.config Configuration config = ConfigurationManager.OpenExeConfiguration( System.Reflection.Assembly.GetExecutingAssembly().Location);

ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection;

if (!section.SectionInformation.IsProtected) { // выполняем шифрование секции

section.SectionInformation.ProtectSection( "DataProtectionConfigurationProvider"); // Сохраняем конфигурацию

config.Save(); }

} catch (Exception ex) { Console.WriteLine(ex.Message); }

// получаем строку подключения из зашифрованной секции

Console.WriteLine(Properties.Settings.Default.ConnectionString); }

ПРЕДУПРЕЖДЕНИЕ.Данные, хранящиеся в секции, могут быть расшифрованы только на том компьютере, на котором были зашифрованы. Таким образом, процедуру шифрования данных необходимо вызывать на компьютере конечного пользователя.

Данный пример как раз подходит для этих целей. При установке приложения мы помещаем в папку с программой ещё не зашифрованный App.Config. При первом запуске приложения данная процедура его зашифрует и, в последствии, программа будет работать уже с защищенной секцией. Можно так же вызывать процедуру шифрования во время установки приложения.

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



Содержание раздела