Как к SQL Server трафик шифруется? - PullRequest
12 голосов
/ 25 мая 2009

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

Какой самый простой способ проверить, что трафик с нашего веб-сайта на SQL Server фактически зашифрован?

Ответы [ 5 ]

26 голосов
/ 25 мая 2009

Вы можете использовать что-то вроде Wireshark для просмотра пакетов при их передаче по сети

12 голосов
/ 25 мая 2009

Вы проверяете столбец encrypt_option в sys.dm_exec_connections DMV. Таким образом, вы можете не только доказать, что оно зашифровано, но и проверить его в приложении во время запуска. Чтобы обеспечить шифрование, следуйте методам, описанным в этом MSDN. Практическое руководство. Включение зашифрованных подключений к компоненту базы данных . Если клиент или сервер принудительно используют шифрование, и предоставляется сертификат, а клиент принимает сертификат сервера, соединение будет зашифровано. Чтобы проверить, что трафик зашифрован, вы можете использовать встроенный инструмент netmon.exe (должен быть установлен из / удалить компоненты системы), загрузить улучшенный Microsoft Network Monitor 3.2 или другие сторонние инструменты.

В качестве альтернативы сайт развертывания может применять шифрование IPSec.

7 голосов
/ 25 мая 2009

Я бы установил для Force Protocol Encryption значение true, а для сертификата доверенного сервера - значение true в строке подключения к базе данных. Сервер не сможет установить соединение, если он не может предоставить вам зашифрованное соединение в соответствии с запросом. Есть статья , которая описывает шифрование с помощью сервера SQL 2005 и более поздних версий.

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

1 голос
/ 16 июня 2014

Существует еще один сильно недооцененный инструмент от самой Microsoft: «Microsoft Network Monitor». По сути, это очень похоже на wireshark за исключением того, что некоторые конкретные протоколы MS имеют лучшую поддержку синтаксического анализатора и визуализации, чем сам wireshark, и, очевидно, он будет работать только под окнами ;-).

Инструмент довольно старый и выглядит заброшенным (пока еще не видел более новую версию), но все еще хорошо выполняет свою работу, и грамматика для определения новых протоколов довольно аккуратна / интересна - так что она все еще обладает большой силой для будущее. mnm 3.4 about dialog

Пример анализа - запись фильтруется для TDS - поэтому остальные пакеты отбрасываются в основном:

Example Session for TDS (MSSQL)

Это также верно для соединений с сервером sql. MNM может даже визуализировать наборы результатов, идущие по проводам - ​​довольно аккуратно. Тем не менее, Wireshark, как упомянуто выше, будет достаточно для проверки шифрования и применения сертификатов на самом проводе. Значит, он может полностью понимать TDS-Protocoll.

Обработка TLS

Также с расширением (так называемыми экспертами) 'NmDecrypt' и соответствующими сертификатами (включая закрытые ключи) - можно расшифровывать протоколлы - довольно хорошо для TDS, который использует TLS ВНУТРИ TDS - неудивительно - никто не имеет на самом деле реализовал это как полностью поддерживаемый протокол для wireshark;)

Ссылки на инструменты:

0 голосов
/ 28 мая 2009

Чтобы гарантировать, что используется шифрование, вам необходимо включить на сервере параметр принудительного шифрования .

Шифрование на стороне клиента не является обязательным. Серверная часть обязательна.

Когда служба SQL Server запускается, она останавливается, если не может прочитать сертификат или имеются другие препятствия. Незашифрованные соединения не будут приниматься.

Чтобы ответить, я сначала использовал анализатор пакетов, чтобы проверить шифрование, затем я просто полагался на то, что шифрование на стороне сервера является обязательным и SQL не запускается.

Для SQL 2000, KB 276553

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

Поиск в КБ для SQL 2005

Позднее редактирование:

Используйте старую версию клиента MS JDBC: он не может обрабатывать шифрование на стороне сервера ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...