我只是想知道在传输到Azure SQL之前有没有办法加密数据。
实际上我开发了一个Azure Web App。我需要在App Server本身中将数据加密到Azure SQL DB中。
我可以找到一些加密AzureDB中数据的引用,如Always Encryption,Symmetric Keys
但所有引用都会导致在SQL Server中加密数据 (换句话说,数据将作为纯文本从App Server传输到SQL服务器(通过插入查询),然后加密将在SQL Server中进行)
所以,我想在发送到Sql Server之前确保我的数据应该加密。
这将确保没有攻击者/黑客无法通过传输破解我的数据
我已经实现了SSL安全性,可以保护UI和App Server之间的传输。但在这里,我想确保App Server和Azure SQL Server之间的传输
查看此图表以获得清晰的理解:
答案 0 :(得分:2)
SQL Server中的“始终加密”功能是一种客户端加密技术,这意味着它将加密客户端应用程序驱动程序中的数据。这意味着数据将在客户端和SQL服务器之间的网络上加密,它在SQL服务器的内存中加密,并在磁盘上加密。如果正确实施,它还可以保护数据免受入侵者的侵害,该入侵者获得SQL Server的管理员权限(基本上,您必须确保加密密钥不存储在SQL Server上,并且入侵者无法以任何方式访问加密密钥)。我将详细介绍如何执行此操作以及Always Encrypted here提供的安全保障。但是,由于SQL Server无法解密数据,因此对可以对加密数据执行的操作存在一些限制。您可以阅读有关这些限制的更多信息here。您可以详细了解有关始终加密的here。
答案 1 :(得分:1)
加密传输中的数据应由SSL / TLS处理。
请参阅:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-overview
强调我的:
当数据与数据库“传输”时,所有与Azure SQL数据库的连接都需要加密(SSL / TLS)。在应用程序的连接字符串中,必须指定参数加密连接而不是信任服务器证书(如果您将连接字符串从Azure经典门户中复制出来,这将为您完成),否则连接将无法验证服务器的身份并且容易受到“人为”的影响中间的“攻击。例如,对于ADO.NET驱动程序,这些连接字符串参数是Encrypt = True和TrustServerCertificate = False。