嘉信理财注册大坑及更优雅的两步验证

bloade 发布于 18 天前 114 次阅读


如果你是打算注册嘉信理财账户,并且在搜索时发现这篇文章,那十分建议先浏览本文,并在注册时将该文章放到后台,以备注册之后立即使用。

无法登录!?

首先,这篇文章并非嘉信账户的注册指南,而是对账户使用中的一个问题的解决方案。并且这个问题如果不特别注意的话,是一定会遇到的。这个问题就是:手机号无法接收到登录验证码,从而导致无法登录账户!

根据搜索引擎来看,这一问题并非只在中国大陆手机号中出现,而是在大中华区都很容易出现的问题。当然,最根本的解决办法是使用可以收到验证码的手机号。不过看起来有些号码即使曾经可以接收,在一段时间之后也会无法接收。因此除了修改手机号码之外,还推荐直接设置使用TOTP来作为两步验证的方式,以此来替换通过短信或者电话作为验证码的方式。

假如你正在或尚未注册账户,那在注册时可以选择一个非+86和+886的号码,这是无法接收验证码的重灾区。港澳等地的号码是否也会出现该情况并不可知,不过保险起见,避开整个大中华区比较妥当。

如果你已经注册好了账户,并发现自己现在因为无法接收到验证码而无法登录,可以选择通过联络客服取得登录验证码的方式来进行登录。嘉信提供了中文客服,你可以在美国的工作日时间(大约从东八区晚上9-10点开始)拨打400 120 6217来联络。在联络客服时,电话机器人可能会要求你输入8位账户号码,如果不记得、没有查看的话,可以随便输入8位数字,然后转人工服务即可。人工客服会询问一些有关你和你的账户的信息。在回答正确后会给你一个一次性登录码,让你可以登录账号。

添加两步验证

在刚刚注册成功,或是通过客服登录后,都会进入到嘉信的主页,这时候你应该首先进入账号安全设置并添加两步验证。不过图文流程并非本文重点,这里只会简单描述如何操作。如有需要,可以查看文章末尾的参考链接。此外,如果你打算和我一样使用第三方验证程序的话,那建议你先不要直接进入绑定流程,而是在准备好验证程序之后再进行绑定。

首先,点击右上角的账户档案,然后选择安全设定。在新的页面中选择双重验证,然后选中总是在登入时验证,最后选择安全令牌。现在会弹出绑定安全令牌的页面。之后按照说明安装验证器,并填写验证器提供的凭据ID和安全代码即可。

嘉信理财使用的两步验证解决方案是赛门铁克的VIP Access。这个程序虽然支持多个平台,但他并不允许备份,而且用起来也很不优雅。不过VIP Access的验证码是通过标准的TOTP算法得来,唯一的区别是生成验证码的种子是需要访问服务器来生成的。因此只要提取出种子,就可以任意选择自己喜欢的TOTP程序了。

这里最初的想法是通过类似Steam验证器的方式,从VPI Access中提取种子。不过在Github上找到了一个更方便的方法,即使用伪装的客户端直接与赛门铁克的服务器通信获取凭据ID和种子。

这里参考使用Github上的教程和开源程序。首先,需要你的电脑上具有Python3.3及以上环境和pip。对于Windows来说,最方便的莫过于直接使用WSL了。

sudo apt install python3-pip qrencode

当然,不需要扫码的话,qrencode可以不装。然后使用:

pip3 install https://github.com/dlenski/python-vipaccess/archive/HEAD.zip

命令来安装VIP Access的Python客户端。安装之后执行:

vipaccess provision -p

等待一段时间,就可以看到程序返回类似以下内容信息:

Generating request...
Fetching provisioning response from Symantec server...
Getting token from response...
Decrypting token...
Checking token against Symantec server...
Credential created successfully:
        otpauth://totp/VIP%20Access:SYMC96782773?secret=KMWZSX5YZAUEFDPRVGP24UTFNNRQWXE5&image=https://raw.githubusercontent.com/dlenski/python-vipaccess/master/vipaccess.png
This credential expires on this date: 2028-09-17T10:22:58.777Z

You will need the ID to register this credential: SYMC96782773

You can use oathtool to generate the same OTP codes
as would be produced by the official VIP Access apps:

    oathtool    -b --totp KMWZSX5YZAUEFDPRVGP24UTFNNRQWXE5  # output one code
    oathtool -v -b --totp KMWZSX5YZAUEFDPRVGP24UTFNNRQWXE5  # ... with extra information

其中,以SYMC开头的一串字符就是凭据ID,而secret=--totp后面的自然就是TOTP种子。现在,你可以使用任何具备标准TOTP功能的程序,将种子或整个链接输入其中,即可用其代替VIP Access程序了。

最后,回到嘉信的VIP Access绑定页面,输入程序返回的凭据ID,以及TOTP验证器所生成的6位数验证码即可成功绑定。

参考

美国嘉信账户申请开通留的坑补一下,太多人碰到了

Reversing the Symantec VIP Access Provisioning Protocol

Generate Symantec VIP Access Token as OTP

dlenski/python-vipaccess: A free software implementation of Symantec's VIP Access application and protocol