在 Bitfinex 创建 API 密钥时,是要给 Hahalend 用。只要开两项权限:读取、放贷。提现和交易,保持关闭。就这么简单。Hahalend 只需要看得到你的余额、能发送或取消出借单。权限开得比这个多,它会直接拒绝存起来。
接下来会按步骤,说明怎么在 Bitfinex 上设置。还有密钥交出去之后,会发生什么事:怎么加密、什么时候才会解密。以及万一 Hahalend 自己出问题,老实说最坏会坏到什么程度。
详细步骤
打开 Bitfinex 的 API 密钥创建页面
登录你的 Bitfinex 账户。找到 API Keys。创建一把专门给 Hahalend 用的新密钥。不要拿你已经开了其他权限的旧密钥来用。
只打开两项:账户读取、Funding 放贷
把读取和放贷打开就好。提现、交易,或任何跟下单、成交有关的权限,全部保持关闭。不确定某个选项在做什么?关掉,才是比较安全的默认值。真的少了 Hahalend 需要的权限,它会立刻告诉你。
(可选)把密钥锁定给 Hahalend 的 IP
Bitfinex 可以把密钥锁定住。只让特定 IP 能用。这一步是可选的,但建议开。就算密钥不小心泄露,也没办法在别处使用。实际要锁哪些 IP,连接密钥时的教程页面上都写清楚。
把密钥贴进 Hahalend
提交的那一刻,Hahalend 就会检查权限。开了提现或交易,连接会直接被拒绝。你得先回 Bitfinex 修好,才能再试一次。通过之后,后台只看得到密钥最后 4 位。完整的值,不会再显示给你看,也不会用可读的形式存起来。
给 Hahalend 账户开启两步验证
这一步,保护的是登录 Hahalend 账户本身,跟 API 密钥能做什么是两回事。是可选的,随时都能关掉。但这是你能做、最简单的额外一步。
密钥交出去之后会发生什么事
你的密钥一存起来,就会先用 AES-256-GCM 加密。数据库里真正放的是密文,不是可以直接读的密钥。Hahalend 服务器需要查余额,或发送出借单的那一刻,才会在内存里把它解开,立刻用掉。不会写回硬盘存成明文,也不会出现在任何日志里。
老实说最坏的情况
就算 Hahalend 的服务器整台被攻破,存起来的密钥依然是密文。Bitfinex 自己也会挡住提现和交易。这层保护,不靠 Hahalend 保持安全。老实说的边缘情况是:如果黑客连解密用的加密密钥都拿到,确实看得到余额和记录,也能发送或取消出借单。但一样没办法把钱从 Bitfinex 转走。这个限制,来自权限本身被允许做的事,不是额外加上去的承诺。
为什么这条权限界线很重要
读取加放贷,跟提现加交易,听起来好像差别不大。但这条界线,就是整套安全设计能成立的原因。如果一把权限比较大的密钥泄露,或存放它的系统被攻破,影响范围就是由这把密钥能做的事决定,不是靠其他保护做得多好来补救。把密钥的权限,限制在刚好够用,才让其他每一层保护,真正有意义。
这也是为什么,偶尔换一把新密钥是合理的习惯,虽然没有规定一定要做。只要怀疑密钥可能泄露,随时可以到 Bitfinex 把旧的关掉、创建新的。Bitfinex 那边一停用,Hahalend 这边,自然就会拒绝旧密钥。
如果怀疑密钥泄露了
如果你怀疑密钥可能泄露了——截图不小心流出、设备被入侵,任何情况都算。最快的处理方式,在 Bitfinex 那边,不是 Hahalend:立刻到 Bitfinex 的 API 设置,把那把密钥停用。一停用,包括 Hahalend 在内,所有地方马上就用不了。
接着照上面同样的步骤,创建一把新密钥,重新连接 Hahalend。因为旧密钥本来就没有提现或交易权限,那段时间实际的风险,顶多是有人看得到你的余额和记录、能发送或取消出借单,没办法把钱转走。