数据库
首页 > 数据库> > c#-Azure SQL连接的安全性如何?

c#-Azure SQL连接的安全性如何?

作者:互联网

我正在使用WPF应用程序进行工作,该应用程序使用EF 6和定义的连接字符串连接到Azure SQL(没有Web服务可以在运行SQL和Web服务器的Azure上节省资金).

所以我的问题是这种连接的安全性如何?

我有连接字符串Encrypt = True(所以我正在使用SSL).
我正在使用AD用户凭证连接到数据库本身(AD用户和相应的包含的DB用户的组合,不幸的是,用户名和密码在app的配置文件中).
我已经在Azure AD中注册了应用程序,并授予其使用此包含的数据库用户匹配的AD用户访问数据库的权限. (我正在使用此应用程序客户端ID来识别通信来自我的WPF应用程序).

我在这里看到的唯一威胁是,如果有人获得安装了应用程序的计算机的访问权限,并从配置文件中检索建立连接并进行身份验证所需的所有信息.

但是我在网络方面真的很虚弱,我不知道有人能从窒息的网络流量中获取那些信息. (我自己尝试过使用wireshark,但是对我来说,这一切看起来简直是胡言乱语)

那么,有人知道如何以任何方式破坏这种交流吗?

解决方法:

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权限模型来限制每个用户/角色在数据库中进行操作时可以执行的操作.您应该使用audit来跟踪谁(以及从何处)连接到数据库.您应确保使用的是TDE(默认情况下,SQL Azure中的新数据库处于启用状态). SQL中还有其他安全功能,它们可能也对您有用(行级安全性,数据屏蔽,始终加密等).网络部分实际上只是设计安全解决方案的起点.

标签:azure,security,azure-sql-database,networking,c
来源: https://codeday.me/bug/20191108/2008233.html