Назад | Перейти на главную страницу

Отправляется ли пароль в открытом виде при подключении к Sql-серверу?

Меня спросили об этом сегодня, и я, честно говоря, не знал ответа. Если вы подключаетесь к серверу с помощью строки подключения без sspi, есть ли способ перехвата третьей стороной на проводе пароль, используемый для входа?

"Data Source=MyServer;Initial Catalog=MyDatabase;User Id=sa;Password=CanThisBeSniffed;"

Я не спрашиваю об атаках MiTM, просто о том, что кто-то находится на том же компьютере или в одном концентраторе в сети, где работает wirehark или что-то подобное.

Я сам запустил wirehark и не увидел его в виде обычного текста, но это может быть простая обфускация или правильное шифрование, я просто хотел знать, какое.

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

В библиотеке MSDN есть особенности настройки SSL-соединений. http://msdn.microsoft.com/en-us/library/ms189067.aspx

Однако следующее немного двусмысленно

Credentials (in the login packet) that are transmitted when a client application 
connects to SQL Server are always encrypted.

Не совсем понятно (по крайней мере, для меня), означает ли это, что они всегда зашифрованы независимо от настроек SSL или нет.

Если вас это беспокоит, я бы включил SSL.

Я тоже немного копался в этом, и есть возможная атака MITM для принудительного перехода на более раннюю версию - см. Вот

Некоторые старые версии SQL не поддерживают SSL-шифрование имени входа и отправляют пароль в открытом виде, поэтому и клиент, и сервер поддерживают откат к незашифрованной аутентификации в случае сбоя зашифрованной аутентификации. Но вы не можете специально настроить современные версии SQL Server на ENCRYPT_NOT_SUP (обратите внимание, что атака заключается в MITM сеансе PRELOGIN и изменении флага на ENCRYPT_NOT_SUP вместо ENCRYPT_OFF - это режим по умолчанию для SQL).

SQL Server 2000 и новее (может быть 2005 и новее, я забыл; это где-то в моей новой книге) процесс аутентификации, используемый для входа в систему с аутентификацией SQL (в отличие от аутентификации Windows), зашифрован самоподписанным сертификатом SSL, который генерируется экземпляр SQL Server при установке ядра базы данных.