首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >etherjs应用程序私钥的存储

etherjs应用程序私钥的存储
EN

Ethereum用户
提问于 2022-07-25 21:34:37
回答 1查看 669关注 0票数 4

第一篇文章

我想开发一个应用程序来实现与etherjs的交易自动化。

我的问题是关于代码的这一部分:

代码语言:javascript
复制
let walletWithProvider = new ethers.Wallet(privateKey, provider);

你们通常在哪里或者怎样存储privateKey,特别是当它不是测试钱包的时候

我的第一个想法是加密密钥并将其本地存储在我的电脑上,然后在程序提示中询问密码,但我想先听听你的想法

EN

回答 1

Ethereum用户

发布于 2022-07-25 22:53:26

存储私钥总是很痛苦的,因为您需要用纯文本对事务进行签名。

看看owasp对存储的看法:

存储

  1. 开发人员必须了解应用程序中存储密码密钥的位置。了解这些密钥存储在哪些内存设备上。
  2. 必须在易失性内存和持久内存上保护密钥,最好是在安全加密模块中进行处理。
  3. 键不应以纯文本格式存储。确保所有密钥都存储在密码库中,例如硬件安全模块(HSM)或孤立的加密服务。
  4. 如果计划在脱机设备/数据库中存储密钥,则在导出密钥材料之前使用密钥加密密钥(KEKs)对密钥进行加密。KEK长度(和算法)应相当于或大于所保护的键的强度。确保密钥在存储期间具有应用的完整性保护(考虑支持加密和消息代码身份验证(MAC)的双重用途算法)。
  5. 确保标准应用程序级代码从未以任何方式读取或使用加密密钥,并使用密钥管理库。
  6. 确保密匙和密码操作在密封的金库内完成。
  7. 所有工作都应在金库中完成(如密钥访问、加密、解密、签名等)。

https://cheatsheetseries.owasp.org/cheatsheets/Key_管理_作弊_Sheet.html#key-management-lifecycle-best-practices

严格遵守所有这些准则可能代价很高。因为您只是想使某些事务自动化,所以使用Chainlink服务可能会更有效。例如,链接管理员可以在智能契约中自动生成CRON作业,而无需在从头构建的应用程序中存储和使用私钥。

如果您想在云服务上实现这种自动化,也许使用AWS中的HSM并不理想。我想这是非常昂贵的。您可以使用AWS秘密管理器,但是对于这个特定的用例,它并不理想。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/132386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档