|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
5.6.2. Защита сетевого трафика SQL Server 2005Шифрование данных, передаваемых по сети в SQL Server 2005, самоподписанные (self-signed) сертификаты, сертификаты внешних центров сертификации, настройка защиты трафика при помощи сертификата Одна из больших проблем безопасности при работе с SQL Server любых версий, в том числе и 2005, заключается в том, что данные запросов пользователей и ответов на них сервера возвращаются в абсолютно открытом виде формата пакета TDS (Tabular Data Stream — поток табличных данных). Это означает, что, перехватывая пакеты в локальной сети, можно перехватить информацию, которую получают пользователи с SQL Server (рис. 5.6). Пароли логинов SQL Server передаются изначально в защищенном виде, но если пользователь решит поменять свой пароль командой ALTER USER, то такой пароль будет передан по сети открытым текстом. Отметим также, что в Интернете можно найти множество программ, которые умеют собирать данные и парольные хэши SQL Server и расшифровывать их. Пример одной из таких программ — Cain&Abel.
Рис. 5.6. Просмотр перехваченных по сети пакетов (таким образом можно прочитать текст запросов и возвращаемые результаты) Некоторые слушатели на курсах говорили, что они не беспокоятся о возможности перехвата данных SQL Server по сети, поскольку в сети их предприятий используются свитчи. Теоретически свитчи должны не позволять одним компьютерам просматривать трафик других компьютеров, который их не касается. Однако на практике свитчи не обеспечивают практически никакой реальной защиты из-за особенностей протокола ARP, который входит в стек протоколов TCP/IP. Доступ к трафику любого компьютера в своем сегменте сети можно получить, например, при помощи программы AntiSwitch (ее также можно скачать из Интернета). Если вы не хотите неприятностей, связанных с разглашением информации баз данных SQL Server, сетевой трафик необходимо защищать. Стоит отметить, что многое здесь зависит от разработчиков. Вполне может оказаться так, что используемые ими программные интерфейсы не дают возможности использовать встроенные средства SQL Server 2005 для защиты сетевого трафика. В этом случае можно порекомендовать использовать прозрачные для приложений средства IPSec или просто выделить самых важных пользователей и SQL Server в отдельный сетевой сегмент, отгороженный от остальной сети маршрутизатором. Рекомендуется также использовать средства активной защиты, регулярно выявляя работающие снифферы в вашей сети специальными программами (например, ProDetect и PromiScan). Однако на многих предприятиях за это ответственен администратор сети, власти над которым администратор SQL Server не имеет. В этом разделе мы рассмотрим средства защиты только для стандартных сетевых библиотек SQL Server 2005. Эти средства позволят защитить большинство приложений, в том числе Excel и Access. Не поддерживаются только клиенты, использующие сетевую библиотеку DBLibrary, которая была унаследована от SQL Server 6.5, и клиенты, использующие набор драйверов MDAC версии до 2.53 включительно. Поддерживаются два уровня шифрования — 40 бит и 128 бит, при этом выбирается максимально возможный уровень, поддерживаемый операционной системой клиента и сервера. Отметим также, что сетевая библиотека Multiprotocol, которую можно было использовать для шифрования данных в предыдущих версиях SQL Server, в SQL Server 2005 не поддерживается. Единственная возможность зашифровать данные в SQL Server 2005 — воспользоваться технологией SSL. Эта технология доступна для любых сетевых библиотек. В SSL для защиты передаваемых между клиентом и сервером данных обязательно используются сертификаты. В SQL Server 2005 можно использовать два типа сертификатов: q сертификат, который автоматически генерируется и подписывается самими SQL Server 2005 (в терминологии, которая используется в документации — self-signed (самоподписанный)). Такой сертификат будет автоматически создаваться и использоваться в ситуации, когда шифрование включено, но какой именно сертификат использовать, явно не указано. Кроме того, такой сертификат всегда используется в автоматическом режиме для шифрования пароля при подключении пользователей от имени логинов SQL Server, даже если вы не настраивали никакого шифрования; q сертификат от внешнего центра сертификации (Certificate Authority). Чтобы можно было нормально работать с таким сертификатом, центру сертификации должны доверять и сервер SQL Server 2005, и клиентские компьютеры (хотя для клиентских компьютеров можно установить параметр Доверять любым серверным сертификатам. Настроить применение самоподписанного сертификата для любых клиентских подключений очень просто. Для этого достаточно запустить SQL Server Configuration Manager, раскрыть контейнер SQL Server 2005 Network Configuration и щелкнуть правой кнопкой мыши по узлу Protocols for имя_сервера, например, Protocols for SQL2005. Затем в контекстном меню нужно открыть свойства этого узла и на вкладке Flags (Флаги) для параметра ForceEncryption (Принудительное шифрование) установить значение Yes. Если на соседней вкладке, которая называется Certificate (Сертификат), не будет выбран никакой сертификат, SQL Server автоматически перейдет в режим использования самоподписанного сертификата (при этом придется перезапустить службу SQL Server). Клиенты, использующие подключения по OLE DB и ODBC с последними версиями MDAC (после 2.53) продолжат работу без каких-либо проблем. Шифрование будет производиться автоматически (в этом можно убедиться, перехватив пакеты сниффером). Если вы используете не обычный драйвер ODBC, а драйвер ODBC для SQL Native Client, то он выдаст сообщение, что применено шифрование без проверки серверного сертификата (рис. 5.7).
Рис. 5.7. Подключение по ODBC с применением самоподписанного серверного сертификата Такой режим очень удобен и вполне может применяться в большинстве ситуаций. Однако Microsoft предупреждает, что при использовании самоподписанного сертификата вполне возможны хакерские атаки типа "человек в середине" (man-in-the-middle). При этой атаке хакер представляется сервером SQL Server, принимает клиентские пакеты от имени сервера и перенаправляет их на сервер, возвращая затем полученные с сервера данные пользователям. В результате у хакера останется копия всех данных, которыми обменивались клиенты и сервер. Такая атака становится возможной из-за того, что сертификат, передаваемый сервером (или хакером) клиенту, никем не проверяется. Кроме того, если на клиенте настроено "требовать принудительного шифрования при подключении к SQL Server", то самподписанный сертификат использоваться не может. Поэтому в такой ситуации вам придется использовать для шифрования данных сертификат не самоподписанный, а выданный центром сертификации, которому доверяют и клиент, и сервер. Вряд ли вы захотите платить деньги за сертификаты платным центрам сертификации, которым Windows доверяет автоматически (отметим также, что для проверки выданных ими сертификатов потребуется соединение с Интернетом как для клиента, так и для сервера). Поэтому вам нужно будет создать свой собственный центр сертификации. Все, что для этого нужно, поставляется вместе с дистрибутивами Windows 2000 Server и Windows Server 2003. Опишем последовательность применения сертификата для защиты трафика SQL Server 2005. Первое, с чего нужно начать, — установка центра сертификации. Для этого надо установить дополнительный необязательный компонент Windows, который называется Certificate Services (Службы сертификации). Его установка производится точно так же, как и установка других компонентов Windows — при помощи консоли Установка и удаление программ в Панели управления. После окончания копирования файлов запустится мастер настройки центра сертификации. В нем нужно будет выбрать несколько важных параметров. Первый из них — тип центра сертификации. В вашем распоряжении четыре типа: q корневой центр сертификации предприятия. Такой тип центра сертификации предприятия будет доступен только в том случае, если компьютер, на котором производится установка служб сертификации, входит в домен. Этот центр сертификации предназначен для выдачи сертификатов, используемых в домене Active Directory в Windows 2000/2003. Для работы с SQL Server 2005 он не подходит; q подчиненный центр сертификации предприятия. Точно так же генерируются сертификаты для использования в Active Directory. Обычно такие подчиненные центры используются в филиалах и подразделениях предприятий; q изолированный корневой центр сертификации. Этот центр сертификации может создавать сертификаты для защиты Web-серверов, аутентификации клиентов при подключении к Web-серверам, цифровой подписи для драйверов и т. п. Именно этот тип центра сертификации нужен для защиты трафика SQL Server 2005; q изолированный подчиненный центр сертификации. Такой центр сертификации генерирует те же типы сертификатов, что и предыдущий, но требует обязательного наличия изолированного корневого центра сертификации. Обычно используется в филиалах и подразделениях. В подавляющем большинстве случаев для работы с SQL Server 2005 вам потребуется изолированный корневой центр сертификации. На экране Сведения о центре сертификации вам потребуется ввести имя и суффикс для центра сертификации. К вводу этой информации нужно отнестись очень внимательно: именно по указанному здесь имени другие компьютеры в вашей сети будут разыскивать центр сертификации для проверки сертификатов. Имя должно соответствовать имени DNS (hostname) с указанием основного DNS-суффикса, например, LONDON2.nwtraders.msft. Для всех остальных параметров можно оставить значения, предлагаемые по умолчанию. Следующее, что нужно сделать после окончания установки, — создать сертификат, который будет использоваться SQL Server 2005. Заказ сертификата и его установка производится при помощи Web-интерфейса. Нужно обратиться из Internet Explorer на тот компьютер, на котором работают службы сертификации, например, http://london2.nwtraders.msft/certsrv. Желательно сделать это с компьютера, на котором работает SQL Server 2005, т. к. потом вам потребуется установить полученный сертификат на этот компьютер. Причем это обращение нужно производить, войдя на сервер локально от имени той учетной записи, от которой работает SQL Server 2005. На первой странице Web-интерфейса служб сертификации нужно выбрать пункт Запрос сертификата, на следующей странице щелкнуть по ссылке Расширенный запрос сертификата. А на следующем экране нужно перейти по ссылке Создать и выдать запрос к этому ЦС. Самый важный экран для настройки свойств создаваемого сертификата — Расширенный запрос сертификата (рис. 5.8).
Рис. 5.8. Экран для заполнения свойств создаваемого сертификата Нужно обратить внимание на следующие моменты: q в поле Имя нужно привести имя компьютера в формате FQDN (Fully qualified domain name — полностью квалифицированное доменное имя), например, LONDON2.NWTRADERS.MSFT вместо LONDON2. q в списке Нужный тип сертификата обязательно выберите тип Сертификат проверки подлинности сервера. Если вы нарушите любое из этих требований, то SQL Server 2005 просто "не увидит" этот сертификат и не даст его назначить. После того, как сертификат будет запрошен, ваша следующая задача — утвердить выдачу сертификата. Для этого нужно будет на компьютере, на котором работают службы сертификации, в меню Пуск | Программы | Администрирование запустить консоль Центр сертификации, раскрыть узел Запросы в ожидании, щелкнуть правой кнопкой по созданному вами запросу о выдаче сертификата и в контекстном меню выбрать Все задачи | Выдать (рис. 5.9).
Рис. 5.9. Выдача сертификата Следующее действие — получить утвержденный сертификат и установить его на компьютер, на котором работает SQL Server 2005. Для этого нужно с того компьютера, с которого вы заказывали сертификат, войдя локально от имени той же учетной записи, опять обратиться к Web-интерфейсу служб сертификации (http://london2.nwtraders.msft/certsrv). Затем на первой странице нужно перейти по ссылке Просмотр состояния ожидаемого запроса сертификата, выбрать ваш сертификат и установить его при помощи кнопки Установить сертификат. Просмотреть информацию об установленных на компьютере сертификатах можно при помощи Internet Explorer. Для этого в меню Сервис нужно выбрать пункт Свойства обозревателя, перейти на вкладку Содержание и нажать кнопку Сертификаты. Нужный сертификат будет находиться на вкладке Личные. Следующее, что нужно сделать, — назначить созданный вами сертификат SQL Server 2005. Для этого нужно открыть SQL Server Configuration Manager, раскрыть узел SQL Server 2005 Network Configuration и щелкнуть правой кнопкой мыши по контейнеру Protocols for имя_сервера. Затем нужно открыть свойства этого контейнера, на вкладке General настроить для параметра ForceEncryption значение Yes, а на вкладке Certificate выбрать ваш сертификат (рис. 5.10). Чтобы изменения вступили в силу, потребуется перезапустить службу SQL Server.
Рис. 5.10. Назначение сертификата серверу SQL Server 2005 Последнее, что вам осталось сделать, — это объяснить компьютеру, на котором работает сервер SQL Server, и всем клиентам, что им следует доверять созданному вами центру сертификации, который выдал сертификат. Это можно сделать двумя способами: вручную на каждом компьютере или при помощи групповой политики (если на вашем предприятии используется домен Active Directory). Чтобы произвести эту операцию вручную, нужно экспортировать сертификат центра сертификации в файл. Это можно сделать при помощи консоли Центр сертификации, которая использовалась нами для утверждения выдачи сертификата. Нужно из контекстного меню открыть свойства самого центра сертификации, на вкладке Общие выбрать сертификат центра сертификации, нажать кнопку Просмотр сертификата, перейти на вкладку Состав и нажать кнопку Копировать в файл. После этого на том компьютере, который должен доверять вашему центру сертификации, нужно открыть Internet Explorer, в меню Сервис выбрать Свойства обозревателя, перейти на вкладку Содержание, нажать кнопку Сертификаты, затем перейти на вкладку Доверенные корневые центры сертификации и нажать кнопку Импорт, чтобы импортировать созданный вами файл. При использовании групповых политик необходимый параметр можно найти в контейнере редактора объектов групповых политик Конфигурация пользователя | Конфигурация Windows | Параметры безопасности | Политики открытого ключа | Доверительные отношения в предприятии. Далее нужно щелкнуть правой кнопкой мыши по этому контейнеру и импортировать созданный вами сертификат. Настройки могут показаться достаточно сложными, но стоит учесть, что достаточно произвести их один раз, чтобы надежно защитить трафик клиентов SQL Server 2005 в вашей сети.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||