将比特币私钥添加到Azure Key Vault

时间:2018-11-17 21:11:19

标签: azure-keyvault

我有一个想法将比特币/替代币私钥存储在Azure Key Vault中作为加密密钥。 Azure Key Vault允许执行一些加密方法(用于示例哈希或加密),而无需从Vault中取出密钥。比特币使用ECDSA算法进行签名,Key Vault也可以。如何将btc私钥导入KeyVault?我使用c#。

2 个答案:

答案 0 :(得分:0)

这时似乎只能导入RSA密钥,并且无法导入BTC使用的EC类型密钥(例如secp256k1)。但是

您可以在受HSM保护的密钥库中生成自己的secp256k1密钥。然后,您可以进行计算以确定关联的公钥和BTC地址,然后将所有BTC发送给该公钥和BTC地址。同样的事情!

您甚至可以从HSM下载secp256k1密钥的加密备份,以便以后可以恢复它,但是您永远不会知道私有密钥是什么。

答案 1 :(得分:0)

我能够使用以下代码将 PEM 格式的 secp256k1 私钥导入 KeyVault。

 var client = new KeyClient(new Uri("https://myKeyVault.vault.azure.net"), new ClientSecretCredential("tenantid", "clientid", "clientSecret"));

 var key = ECDsa.Create();
 key.ImportFromPem(@"-----BEGIN EC PARAMETERS-----
     ....
     -----END EC PARAMETERS-----
     -----BEGIN EC PRIVATE KEY-----
     ...
     -----END EC PRIVATE KEY-----
     ");

 JsonWebKey jwk = new JsonWebKey(key, true);
 await client.ImportKeyAsync("MyKey", jwk);

您需要设置应用注册并在 Key Vault 中创建访问策略,以便能够按照此处所述进行导入 https://www.c-sharpcorner.com/blogs/fetching-secrets-from-key-vault-in-net-console-app