Управление безопасностью (компонент Service Broker)

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

Планирование мер по обеспечению безопасности

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

Все приложения используют инфраструктуру обеспечения безопасности, встроенную в SQL Server. Каждая операция SQL Server выполняется в некотором контексте безопасности. В большинстве случаев участники баз данных SQL Server создаются специально для приложения. Это помогает добиваться того, чтобы каждый этап работы приложения выполнялся в контексте безопасности, обладающем только правами доступа, необходимыми для этого этапа. Например, участнику, который указан для выполнения внутренней активации, нужны разрешения на выполнение хранимой процедуры, активируемой компонентом Service Broker. Сама хранимая процедура может выполнить олицетворение пользователя, имеющего разрешения на получение (RECEIVE) сообщений из очереди и обновление (UPDATE) конкретной таблицы. Проектировать приложения следует так, чтобы на любом этапе контекст безопасности приложения не имел разрешения на выполнение непредвиденных операций.

Приложения, передающие сообщения между экземплярами SQL Server, могут использовать механизм обеспечения безопасности транспорта, механизм обеспечения безопасности диалогов, а также оба этих механизма. Механизмы обеспечения безопасности транспорта и диалогов предоставляют защиту разного рода.

Реализованный в компоненте Service Broker механизм обеспечения безопасности диалогов применяет сквозное шифрование и авторизацию для диалогов между отдельными службами. Таким образом, он помогает предотвращать просмотр или изменение данных во время их передачи. Механизм обеспечения безопасности диалогов следует использовать, если приложение передает конфиденциальные данные или пересылает сообщения по ненадежным сетям. Механизм обеспечения безопасности диалогов может помочь одному участнику диалога идентифицировать другого.

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

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

Реализованный в компоненте Service Broker механизм обеспечения безопасности транспорта предотвращает неавторизованное подключение по сети к конечным точкам компонента Service Broker, выявляет изменения передаваемых сообщений и дополнительно поддерживает шифрование связи «точка-точка». Это помогает защищать базу данных от получения нежелательных сообщений. Механизм обеспечения безопасности транспорта применяется к сетевым соединениям, поэтому его действие автоматически распространяется на все диалоги между экземплярами SQL Server. Однако учтите, что этот механизм не обеспечивает сквозное шифрование и проверку подлинности для отдельных диалогов.

Обеспечение уровня безопасности

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

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

Механизм обеспечения безопасности диалогов выполняет проверку подлинности и шифрование, опираясь на сертификаты. Механизм обеспечения безопасности транспорта также может использовать сертификаты. Сертификату соответствует определенное время, в течение которого он остается действительным. До начала этого срока и после его истечения сертификат недействителен. Компонент Service Broker не использует недействительные сертификаты. SQL Server поддерживает параметр ACTIVE FOR BEGIN_DIALOG, позволяющий сделать сертификат доступным компоненту Service Broker. Чтобы обновить сертификаты, создайте или загрузите новые сертификаты, установив для этого параметра значение OFF. Как только все сертификаты загрузятся, измените во всех базах данных текущие сертификаты, сделав их недоступными для компонента Service Broker. После этого измените новые сертификаты, установив параметр ACTIVE FOR BEGIN_DIALOG так, чтобы сделать их доступными для компонента Service Broker.

Дополнительные сведения о сертификатах см. в разделах Сертификаты и компонент Service Broker и Инструкция CREATE CERTIFICATE (Transact-SQL).