Насколько безопасно SQL-соединение Azure? - PullRequest
0 голосов
/ 22 октября 2018

Я работаю над приложением WPF, которое подключается к Azure SQL, используя EF 6 и определенную строку подключения (без веб-службы для экономии средств на Azure, работающем с SQL и веб-сервером).

Поэтому мой вопрос заключается в том, насколько безопасным являетсятакое соединение?

У меня в строке подключения Encrypt = True (поэтому я использую SSL).Я использую учетные данные пользователя AD для подключения к самой БД (комбинация пользователя AD и соответствующего пользователя БД, к сожалению, имя пользователя и пароль находятся в конфигурационных файлах приложения).Я зарегистрировал приложение в Azure AD и дал ему разрешение на доступ к БД с помощью этого пользователя БД, соответствующего пользователю AD.(Я использую этот идентификатор клиента приложения, чтобы определить, что связь поступает из моего приложения WPF).

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

Но я очень слабо разбираюсь в сетях и не представляю, может ли кто-нибудь получить эту информацию, используя сетевой трафик.(сам пытался использовать wireshark, но для меня все это выглядело довольно бессмысленно)

Так кто-нибудь знает, как такое общение может быть каким-либо образом повреждено?

1 Ответ

0 голосов
/ 22 октября 2018

SQL Server и SQL Azure поддерживают шифрование для соединений с базой данных (шифрование в движении).Пожалуйста, имейте в виду, что SSL является более старым термином для этого - в настоящее время наилучшая поддерживаемая возможность общения с механизмом SQL (в любом контексте) - TLS 1.2.Обратите внимание, что вам необходимо иметь правильные (актуальные) версии клиентских драйверов, чтобы иметь возможность получить эту защиту при общении с SQL Azure.SQL Azure обеспечивает шифрование по умолчанию при использовании этих драйверов.Вы можете прочитать текущее состояние этого в этом посте: https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server

Что касается вашего более широкого вопроса, есть много вещей, которые вы должны учитывать при написании приложения (2 уровня или 3 уровня).Вы должны смотреть на брандмауэр в Azure SQL DB, чтобы заблокировать любой доступный путь.Вы должны использовать модель разрешений SQL, чтобы ограничить возможности каждого пользователя / роли при работе в базе данных.Вы должны использовать аудит, чтобы отслеживать, кто подключается к БД (и откуда).Вы должны убедиться, что используете TDE (по умолчанию в SQL Azure для новых БД).В SQL есть дополнительные функции безопасности, которые также могут быть вам полезны (безопасность на уровне строк, маскирование данных, всегда зашифрованные и т. Д.).Сетевая часть действительно является лишь отправной точкой для разработки безопасного решения.

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