【问题标题】:Is Always Encrypted method Encrypts data's the before moving(inserting into) Azure Database始终加密方法在移动(插入)Azure 数据库之前加密数据
【发布时间】:2017-12-15 20:32:18
【问题描述】:

我只是想知道有没有办法在传输到 Azure SQL 之前加密数据。

实际上我已经开发了一个 Azure Web App。我需要将数据加密到应用服务器本身的 Azure SQL DB 中。

我可以找到一些参考来加密 AzureDB 中的数据,例如 Always EncryptionSymmetric Keys

但是所有引用都导致在 SQL Server 中加密数据 (换句话说,数据将以纯文本形式从 App Server 传输到 SQL Server(通过插入查询),然后在 SQL Server 中进行加密)

所以,我想确保我的数据在发送到 Sql Server 之前应该被加密。

这将确保没有攻击者/黑客无法通过传输来破解我的数据

更新

我已经实现了 SSL 安全性,它可以保护 UI 和应用服务器之间的传输。但在这里我想保护 App Server 和 Azure SQL Server 之间的传输

查看此图以获得清晰的理解:

【问题讨论】:

    标签: c# azure-sql-database azure-app-service-envrmnt always-encrypted


    【解决方案1】:

    SQL Server 中的始终加密功能是一种客户端加密技术,这意味着它将加密客户端应用程序驱动程序中的数据。这意味着数据将在客户端和 SQL Server 之间的网络上加密,在 SQL Server 的内存中加密,在磁盘上加密。如果实施正确,它还可以保护数据免受在 SQL Server 上获得管理员权限的入侵者的侵害(基本上,您必须确保加密密钥未存储在 SQL Server 上,并且入侵者无法以任何方式访问加密密钥)。我详细解释了如何执行此操作以及 Always Encrypted here 提供的安全保证。但是,由于 SQL Server 无法解密数据,因此您可以对加密数据执行的操作存在一些限制。您可以阅读更多关于这些限制的信息here。您可以了解更多关于始终加密的here

    【讨论】:

      【解决方案2】:

      加密传输中的数据应由 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。

      【讨论】:

      • -@Amy 请看我更新的图表。我只想保护应用服务器和 Azure SQL 服务器之间的传输。 SSL/TLS 将负责 UI 和应用服务器之间的安全性。
      • 是的,SSL/TLS 在 UI 和应用服务器之间工作,但它负责数据库的安全性。与 Azure SQL 数据库的所有连接都需要始终进行加密 (SSL/TLS)当数据“传输”进出数据库时。答案是明确的“是”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 2015-09-02
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多