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

       

Введение в обеспечение безопасности


Распределенная система представляет набор программных компонент, использующих те или иные промежуточные среды для своего взаимодействия (рис. 9.1). Каждая промежуточная среда использует так называемый транспортный протокол, в роли которого может выступать:

  • промежуточная среда (например, Remoting или COM+ поверх MSMQ);
  • протокол верхнего уровня модели OSI (например, HTTP или HTTPS);
  • протокол транспортного уровня модели OSI (например, TCP).

Транспортный протокол промежуточной среды, в свою очередь, использует протоколы нижних уровней.


Рис. 9.1.  Обеспечение безопасности взаимодействия компонент

Напомним, что обеспечение безопасного взаимодействия программных компонент включает в себя:

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

Указанные функции могут выполняться промежуточной средой, ее транспортным протоколом или протоколами нижних уровней. Сами программные компонента не должна участвовать в выполнении функций безопасности каким-либо образом. В качестве примера рассмотрим веб службы ASP.NET. Безопасность в них может обеспечиваться:

  • самой промежуточной средой (при использовании WSE);
  • транспортным протоколом HTTPS;
  • или даже безопасным IP соединением (IPSec), как при использовании веб служб поверх TCP, так и при использовании HTTP.

Другим примером является среда .NET Remoting. Ее безопасность может обеспечиваться только на транспортом уровне, например при использовании HTTP или HTTPS с IIS, MSMQ в качестве транспорта, а так протокола IPSec. При этом функция авторизации в среде Remoting отсутствует, невозможно разграничить доступ пользователей для методов удаленного класса.

Обеспечение функций безопасности на уровне промежуточной среды имеет определенные преимущества.

  1. Большая гибкость. Например, возможно шифровать только отдельные части сообщения, а цифровая подпись применять к целому сообщению.
  2. Переносимость.
    Промежуточная среда с собственной поддержкой безопасности может работать с различными транспортами и не выдвигает каких либо требований к безопасности транспортного уровня.
  3. Возможность аудита. При использовании систем с маршрутизацией сообщений (например, веб служб) промежуточные маршрутизаторы сообщений могут добавлять в него дополнительную служебную информацию.
  4. Большое время защиты сообщения. Сообщение остается зашифрованным максимально возможное время, в то время как при обеспечении безопасности транспортом оно поступает в промежуточную среду уже в расшифрованном виде.
Однако реализация безопасности транспортом также имеет ряд достоинств.
  1. Меньшие затраты времени. При идентификации на уровня транспортного протокола решение об идентичности пользователя принимается без участия промежуточной среды. Шифрование на уровне транспорта обычно также работает быстрее.
  2. Универсальность. Безопасность транспортного протокола позволяет защитить любые промежуточные среды, его использующие. Не возникает проблем с реализацией функций безопасности промежуточных сред разных производителей.
  3. Можно сделать вывод, что обычно безопасность на уровне сообщений более предпочтительна. Если промежуточная среда не поддерживает необходимую функцию безопасности, и ее реализация на транспортом уровне невозможна, то не следует реализовывать данную функцию на уровне компоненты. Вместо этого следует сменить промежуточную среду или используемый ею транспорт на другие, удовлетворяющие требованиям к безопасности распределенной системы.


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