Реклама:

// Проверка подписи и сертификата на значение false signedMessage.CheckSignature(false);

foreach (Signerlnfo signerlnfo in signedMessage.Signerlntos) {

// Получение доступа к сертификату

X509Certificate2 cert = signerlnfo.Certificate;

}

}

При передаче значения false функции CheckSignature проверяются подпись и действительность используемого сертификата (например, является ли издатель доверенным лицом, не закончился ли срок действия сертификата). Если же передается значение true, проверяется только подпись. В случае недействительности подписи или сертификата функция CheckSignature. запускает исключительную ситуацию. Если вы хотите в большей степени управлять процессом проверки сертификатов, создайте объект X5()9Chain и получите детальную информацию о причине сбоя подтверждения.

Проектирование приложения с использованием асимметричной криптографии и сертификатов

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

Установка сертификата

Для проектирования этою приложения вам понадобятся пара ключей и сертификаты. Приложение клиентской стороны имеет собственную пару ключей для подписывания данных и сертификат (содержащий открытый ключ) приложения обработки зашифрованных данных. Для расшифровки данных приложению обработки нужна лишь собственная пара ключей. (Сертификат подписывании вложен в подпись и используется дли подтверждения.)

Запросите два сертификата: один для пользовательского Wch-ишерфейса, другой для приложения обработки. Экспортируйте в файл ,pfx оба сертификата, в том числе и закрытый ключ, а в файл ,сег сертификат приложения обработки, без закрытого ключа. Используйте правильный пароль для файлов ,pfx, поскольку эти данные уязвимы.

\~mJ] ПРИМЕЧАНИЕ Все указанные функции обеспечиваются интегрируемым приложением Certificates ММС.

На Weh-сервере импортируйте клиентский файл ,pfx в машинное хранилище Personal, а файл обработки .cor — в машинное хранилище Other People.

Импортируйте на машину обработки файл .pfx. Если приложение обработки является интерактивным и запускается определенным пользователем, импортируйте файл в хранилище этого пользователя. Если приложение является демоном, используйте машинное хранилище.

При импорте сертификатов в машинное хранилище доступ к ним может получить каждый процесс машины. В случае использования сертификатов с соответствующим закрытым ключом вам нужно указать в списке ACL, что приложение запущено с полномочием Read для файла ключа, как показано на рис. 4-16.

К сожалению, не существует четких правил перехода сертификата к физическому файлу закрытого ключа, чтобы задать этот список ACL. В Microsoft Web Service Enhancements (WSE) включен предназначенный для данной цели специальный инструмент, однако вы можете решить эту задачу и программным методом.

Приведенная далее программа позволяет выбрать сертификат из хранилища, извлекает физический путь и отображает диалоговое окно со свойствами файла. Укажите соответствующую учетную запись приложения (для ASP.NET по умолчанию NETWORK SERVICE), а на вкладке Security просмотрите параметры доступа.


⇐ Предыдущая страница| |Следующая страница ⇒