Пароль передается в открытом виде при подключении к Sql-серверу?
Меня спросили об этом сегодня, и я, честно говоря, не знал ответа. Если вы подключаетесь к серверу, используя строку подключения без sspi, есть ли способ, как третья сторона может перехватить на проводе пароль, используемый для входа в систему?
"Data Source=MyServer;Initial Catalog=MyDatabase;User Id=sa;Password=CanThisBeSniffed;"
Я не спрашиваю о атаках MiTM, просто кто-то перечисляет на том же компьютере или на том же концентраторе в сети с Wireshark или что-то подобное работает.
Я сам запустил wireshark и не увидел его в виде простого текста, но это могло быть простое запутывание или правильное шифрование, я просто хотел знать, какой именно.
3 ответа
SQL Server 2000 и выше (может быть 2005 и выше, я забыл; это где-то в моей новой книге) процесс аутентификации, используемый для входа с аутентификацией SQL (в отличие от аутентификации Windows), зашифрован самозаверяющим сертификатом SSL, который генерируется экземпляр SQL Server при установке ядра базы данных.
Ник поднимает хороший вопрос, потому что это сообщение в блоге было не совсем то, что вы были после. Извини за это.
Библиотека 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).