Будет ли зашифрованы учетные данные для входа в систему, зависит от возможностей / конфигурации шифрования клиента и сервера.
На уровне протокола разрешены полностью незашифрованные логины SQL , хотя мое предположение состоит в том, что они редки, поскольку я подозреваю , что большинство современных драйверов баз данных не поддержать их.
Подробнее
Клиенты взаимодействуют с Microsoft SQL Server, используя протокол Tabular Data Stream (TDS) .
Вскоре после того, как клиент открывает соединение TDS с сервером, он информирует сервер о своих возможностях шифрования. Сервер сравнивает это объявление со своей собственной конфигурацией / возможностью определения состояния шифрования для соединения.
В двух словах, состояние шифрования определяется следующим образом:
- Если клиент или сервер объявляют, что они не поддерживают шифрование, а другая сторона не требует шифрования, все соединение, включая логин, будет незашифровано .
- Если и клиент, и сервер сообщают, что они поддерживают шифрование, но не требуют его, будет зашифрован только первый пакет TDS запроса на вход в систему . Остальная часть соединения, включая любые дополнительные пакеты запроса входа, будет незашифрована. Правильно спроектированный драйвер базы данных гарантирует, что пароль аутентификации SQL будет помещен в первый пакет входа в систему, но это не требуется на уровне протокола.
- Если клиент или сервер объявляют, что им требуется шифрование, будет шифроваться все соединение (за исключением небольшого количества предварительных данных), если только другая сторона не поддерживает шифрование. В этом случае соединение будет разорвано.
Единственный способ гарантировать, что запросы на вход в систему всегда зашифрованы, - это установить параметр «требуется шифрование» на клиенте или сервере. Невозможно запретить полностью незашифрованные соединения без полного шифрования.
Независимо от того, зашифрованы ли логин или соединение, пароль аутентификации SQL всегда запутывается, но шифрование легко обратимо.
Дополнительная литература: