【发布时间】:2017-04-13 19:43:32
【问题描述】:
加密应用程序在处理私钥时需要格外小心。例如,他们通常会尽可能长时间地将加密的内容留在磁盘上。需要时,他们解密密钥,执行所需操作,然后将其从内存中完全擦除(通过清理缓冲区)。
在 JavaScript 上,缓冲区也可以用于私钥,但字符串通常更方便。将私钥存储在字符串上可能不是一个好主意,因为您不能主动从内存中擦除字符串,您必须等待垃圾回收。此外,只需一次内存泄漏,您的私钥就不会被收集;然后是字符串实习。
我是否过于谨慎,并且足够谨慎,使用字符串存储私钥是安全的,还是我是对的,总体而言这是一个糟糕的主意?
【问题讨论】:
-
这里的上下文是什么?你的 JavaScript 代码在哪里运行?节点?
-
@Pointy 我们正在设计一个用于签署加密货币交易的库(使用 ECDSA)。它可以在 Node.js、网站、Electron 应用程序上使用,它并不是真正的单一上下文。我们正在决定使用字符串而不是缓冲区作为私钥参数是否是个好主意。
标签: javascript node.js garbage-collection cryptography v8