Разработка распределенных приложений в Microsoft.NET Framework

       

Электронные сертификаты


В настоящее время наиболее распространенным базовым механизмом обеспечения безопасности являются цифровые сертификаты, используемые для организации инфраструктуры открытых ключей (public key infrastructure, PKI). Наиболее распространенным стандартом сертификата является стандарт X.509. Инфраструктура PKI основана на использовании доверенных систем. Целью организации инфраструктуры открытых ключей является привязка сторон обмена к сертификатам, содержащих их открытые ключи. Это позволяет как идентифицировать пользователя по сертификату, так и использовать асимметричное шифрование с открытым и закрытым ключами при передаче информации (рис. 9.2).


Рис. 9.2.  Шифрование с открытым ключом

Открытые ключи содержаться в сертификатах X.509, которые представляют собой текстовый цифровой документы, связывающий набор реквизитов стороны (адрес, название) с ее открытым ключом. Сертификат подписывается закрытым ключом некоторой доверенной третьей стороной (certificate authority, CA). Цифровая подпись заключается в вычислении образа сертификата, вычисленного криптографической хеш функцией MD5, и последующего шифрования образа закрытым ключом CA. Результат шифрования образа сертификата называется цифровой подписью (рис. 9.3). Таким образом, сертификат содержит:

  • реквизиты предъявляющей его организации или подразделения организации;
  • реквизиты подписавшей его доверенной третьей стороны;
  • сроки действия сертификата;
  • открытый ключ;
  • цифровую подпись.

После получения сертификата другая сторона обмена информацией проверяет его, используя открытый ключ подписавшей его организации. Если результат дешифровки подписи сертификата совпадает с образом остальной части сертификата, то сертификат верен. Сертификат доверенной стороны подписывается им самим.


Рис. 9.3.  Подпись сертификата

В роли доверенной стороны могут выступать коммерческие фирмы, занимающиеся выдачей сертификатов или созданный внутри организации сервер PKI (например, Windows Certificate Services). В простейших случаях доверенная сторона может быть представлена самоподписанным сертификатом, который выдается заранее всем участникам обмена информацией после подписи их сертификатов соответствующим закрытым ключом.
Иногда используется и вариант с предъявлением серверу клиенту самоподписанного сертификата. Такой сертификат не может быть проверен клиентом на подлинность и предполагает доверие серверу, но может быть использован для защиты передаваемой информации.

Сертификаты имеют двоякое применение:

  • идентификация стороны, предъявивший сертификат;
  • защита передаваемой информации парой из закрытого и открытого ключей.
При применении сертификатов основной объем информации может шифроваться и симметрично, с использованием временного сессионного ключа. Более медленное асимметричное шифрование в таком случае применяется для передачи временного ключа между сторонами обмена.

Сертификаты применяются во многих протоколах, из которых можно выделить следующие применяемые с распределенными системами, построенных с .NET Framework:

  • безопасный транспортный протокол SSL;
  • безопасный сетевой протокол IPsec;
  • безопасная передача гипертекста HTTPS;
  • расширение безопасности веб служб WS-Security;
  • MSMQ.
Как видно из данного списка, электронные сертификаты могут обеспечивать безопасность распределенной системы как на транспортном уровне, так и на уровне сообщений промежуточной среды.


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