使用 Azure Key Vault CryptographyClient 进行加密 - encrypt/decrypt 发生在哪里?我的后端或 Azure 服务器端
Encryption with Azure Key Vault CryptographyClient - where is encrypt/decrypt happenning? my backend or Azure server side
我目前正在使用 Azure Key vault .net SDK encrypt/decrypt 一些数据。适用于 .net 的 Azure SDK 有一个名为“CryptographyClient”的内置 Class,它有内置的方法来执行此操作:
CryptographyClient.decrypt and CryptographyClient.encrypt
我使用的密钥是 RSA 密钥,我使用的算法是 RsaOaep,所以我假设它是 非对称加密。我按照这个 article 编写了我的 C# 代码。基本上,我首先从密钥库中获取非对称密钥的 public 部分,然后使用它来创建 CryptographyClient。
通常,对于非对称加密,我们会使用public密钥进行加密,而私钥仅用于解密。所以基本上,私钥将永远不会离开 Azure Key Vault(总是在 Azure 服务器上,是吗?)。
现在我的问题是:
当我调用 CryptographyClient.encrypt 时,客户端(我的本地服务器)是否只有 运行?或者它将我的明文发送到 Azure 服务器并发回加密文本?
当我调用 CryptographyClient.decrypt 时,由于私钥永远不会离开 Azure,并且您只能使用私钥解密,是否仅 运行 Azure 服务器端?意味着我的本地服务器需要将加密文本发送到 Azure 并等待解密?
我感觉这两种方法都只发生在客户端,这就是我想要的。但是后来解密就没有意义了。
感谢您的澄清,因为我找不到这方面的任何 MS 文档。
所有 encryption/decryption 都发生在服务器端,因为那是私钥所在的地方。
CryptographyClient API 基于 REST :
https://docs.microsoft.com/en-us/rest/api/keyvault/keys/encrypt
https://docs.microsoft.com/en-us/rest/api/keyvault/keys/decrypt/decrypt
您可以在执行代码时 运行 Fiddler 跟踪以查看服务器通信。
使用 public 密钥的操作 - 如果他们可以下载 public 获取,即调用者具有“获取”权限 - 将在客户端上发生。他们 public 关键是下载和执行操作。如果调用者没有对该密钥的“获取”权限,则将在服务上执行该操作。
这些操作包括:
- 加密
- 验证
- 环绕
需要私钥的操作将始终在服务上执行,除非您从自己的 JSON Web 密钥 (JWK) 创建了 CryptographyClient,该密钥同时具有 public 和私钥。
这些操作包括:
*解密
*符号
*展开
我目前正在使用 Azure Key vault .net SDK encrypt/decrypt 一些数据。适用于 .net 的 Azure SDK 有一个名为“CryptographyClient”的内置 Class,它有内置的方法来执行此操作: CryptographyClient.decrypt and CryptographyClient.encrypt
我使用的密钥是 RSA 密钥,我使用的算法是 RsaOaep,所以我假设它是 非对称加密。我按照这个 article 编写了我的 C# 代码。基本上,我首先从密钥库中获取非对称密钥的 public 部分,然后使用它来创建 CryptographyClient。
通常,对于非对称加密,我们会使用public密钥进行加密,而私钥仅用于解密。所以基本上,私钥将永远不会离开 Azure Key Vault(总是在 Azure 服务器上,是吗?)。
现在我的问题是:
当我调用 CryptographyClient.encrypt 时,客户端(我的本地服务器)是否只有 运行?或者它将我的明文发送到 Azure 服务器并发回加密文本?
当我调用 CryptographyClient.decrypt 时,由于私钥永远不会离开 Azure,并且您只能使用私钥解密,是否仅 运行 Azure 服务器端?意味着我的本地服务器需要将加密文本发送到 Azure 并等待解密?
我感觉这两种方法都只发生在客户端,这就是我想要的。但是后来解密就没有意义了。
感谢您的澄清,因为我找不到这方面的任何 MS 文档。
所有 encryption/decryption 都发生在服务器端,因为那是私钥所在的地方。
CryptographyClient API 基于 REST :
https://docs.microsoft.com/en-us/rest/api/keyvault/keys/encrypt
https://docs.microsoft.com/en-us/rest/api/keyvault/keys/decrypt/decrypt
您可以在执行代码时 运行 Fiddler 跟踪以查看服务器通信。
使用 public 密钥的操作 - 如果他们可以下载 public 获取,即调用者具有“获取”权限 - 将在客户端上发生。他们 public 关键是下载和执行操作。如果调用者没有对该密钥的“获取”权限,则将在服务上执行该操作。
这些操作包括:
- 加密
- 验证
- 环绕
需要私钥的操作将始终在服务上执行,除非您从自己的 JSON Web 密钥 (JWK) 创建了 CryptographyClient,该密钥同时具有 public 和私钥。
这些操作包括:
*解密 *符号 *展开