Статус: Новичок
Группы: Участники
Зарегистрирован: 16.11.2022(UTC) Сообщений: 3
|
Коллеги, подскажите как наиболее правильно с точки зрения безопасности организовать хранение пароля от сертификата, чтобы в дальнейшем его можно было передать в SecureString, установить пароль к сертификату и автоматизировано подписывать большое число XML-файлов. Делаю интеграцию с ГИС ЖКХ на C#. Соответственно отправляется в ГИС большое количество XML'ок, которые должны быть подписаны сертификатом. Для подписи под Windows использую КриптоПро .NET и его SDK. Процесс подписи выглядит примерно следующим образом: 1. На компьютере установлен КриптоПро CSP, КриптоПро .NET и SDK, сертификат добавлен в хранилище локального компьютера с паролем. 2. Подготавливаются XML'ки на подпись. 3. Из хранилища локального компьютера получаю сертификат. 4. Затем формирую SecureString примерно следующим методом: Код:
protected static SecureString GetSecureString(string pkPwd)
{
var secureString = new SecureString();
foreach (var ch in pkPwd)
secureString.AppendChar(ch);
return secureString;
}
5. Далее задаю пароль сертификату, скармливая SecureString в provider.SetContainerPassword. 6. Далее для каждой xml вычисляется подпись с помощью SignedXml. Проблема в том, что для получения SecureString нужно пароль сертификата передавать в незашифрованном виде, а соответственно и хранить его где-то в конфиге также в незашифрованном виде. Я пробовал не задавать пароль сертификата при добавлении его в систему, но тогда при каждой попытке вычисления подписи xml вылетает окошко КриптоПро с просьбой ввести пароль, что недопустимо при автоматизированной подписи большого количества xml. Также пробовал установить галочку "запомнить пароль" при добавлении его в систему, но в таком случае подпись вообще перестает работать по какой-то причине и окно криптопро не вылезает. Единственный нормально рабочий вариант - хранить пароль, преобразовывать в SecureString и задавать его через SetContainerPassword. В таком случае с помощью одного инстанса сертификата можно подписать большое количество xml. Подскажите пожалуйста, каким способом можно организовать хранение пароля от сертификата, чтобы он не хранился в открытом виде, но при этом его можно было задать через SetContainerPassword. Или может быть существуют какие-то другие способы задать пароль сертификата?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close