IMtoken钱包里的keystore文件, 这个东西其实就是一个把私钥给加密放好的容器, 它是遵守的Web3 SECret Storage V3这个标准的。你要把这个文件的格式结构弄明白, 也知道怎么去把它导出来, 这是每一位用钱包的人都要做的、能保护自己的资产安全的基础功课。
keystore怎么安全导出
在imtoken这个App里面, 你先去到那个叫做备份助记词的那个页面, 然后你就要去选择那个叫做导出keystore的这个选项, 接着系统就会要求你去输入那个交易密码, 之后会生成一个文件,这个文件是那种叫JSON的格式, 它里面含有了经过加密处理之后的私钥, 还有那些算法的参数这个东西的大小体积通常都是不会超过2KB的这个限值的。
文件一旦被导出, 就应该赶快把它转移到硬件钱包或者一台离线的电脑上进行保存, 这一点要抓紧做, 千万不要让文件还停留在手机的相册文件夹里, 也不要把它发在微信的文件传输助手那里, 更不可能把它留在那些会自动同步的云存储目录里面去对待这个事儿, 因为所有的明文形式的传输操作都会导致暴露你的私钥这样的风险被直接揭示出来。
keystore文件结构解析
把这个JSON文件弄开, 里面的核心地方带着几个东西, 一个叫做crypto, 意思是加密容器;还有一个叫id, 那是用UUID做的标识数字;再有一个叫version, 它写死成了3。在这个crypto里头, 用的是AES-128-CTR这个办法, 把私钥给对称地加密了起来。
负责解这个锁的钥匙呢, 是从PBKDF2那里出来的, 通过拿你的交易密码作为底子, 经过了好多轮反复迭代才生成了这把密钥。而在kdf参数中的c值这个东西, 它决定了要是有人想耍蛮力去破解, 需要付出多少算力的成本。

mac字段这个值, 它是通过对私钥进行哈希运算得来的一个校验数值。每当有人要把钱包导入系统的时候, 系统都会把这个值重新计算一遍, 拿来跟原来的数值进行比对。
一旦这个文件的内容发生了任何篡改行为, 验证的过程就会直接失败。这时候用户在界面上看到的提示是密码错误, 但实际上真正的原因并不是密码不对, 而是这个文件本身已经损坏了。
只要把keystore里的加密流程给看明白, 一旦遇到文件出现异常或者因为操作不当导致问题的情况, 就可以很快地找到到底是谁导致了这些问题, 从而去防止那个单独的私钥备份变成一种没法再恢复回来的损失。
转载请注明出处:imToken官方网站,如有疑问,请联系(imtoken)。
本文地址:https://www.njztb.cn/imqbzwxz/9654.html
