在 Azure 服务器上使用 public 密钥,并在本地使用私钥

Using a public key on Azure server, and the private key on-premise

这个问题是关于如何使用 public key/private 密钥对来加密敏感的客户数据。

数据将由客户在 Azure 的门户网站中输入,然后存储到 Azure 的数据库中。

然后数据将同步到本地数据库。私钥将在需要时用于解密数据。例如,Portal 会输入银行账户信息,然后加密、同步,然后在本地用于发送付款。

据我了解,SQL 服务器可以为此目的生成一个 Assemetric 密钥对。

我找到了 this 创建密钥对:

CREATE ASYMMETRIC KEY asymDemoKey — Creating Asymmetric Key Names
WITH ALGORITHM = RSA_512 — Encryption Security Type
ENCRYPTION BY PASSWORD =’TestASYM123!’– Password

但是,我不明白如何从本地服务器导出 public 密钥,然后将其导入 Azure 数据库。

那么有没有办法导出 public 密钥以便在 Azure 上使用?

或者有更好的方法吗?

非对称密钥用于保护对称密钥。非对称密钥由私钥和对应的 public 密钥组成。非对称密钥可以从强名称密钥文件中导入,但它们无法导出。

Always Encrypted 是一项旨在保护敏感数据 的功能,例如存储在数据库中的银行详细信息。客户端可以在客户端应用程序中加密敏感数据,并且永远不会将加密密钥提供给具有 Always Encrypted 的数据库引擎。因此,Always Encrypted 在拥有数据并应该访问数据的人与管理数据但不应该访问数据的人之间设置了障碍。 Always Encrypted 通过确保 on-premises 数据库管理员、云数据库操作员或其他 high-privileged 未经授权的个人无法访问加密数据,使客户能够可靠地将关键数据置于其直接控制之外。

参考:https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine?view=sql-server-ver15