MGCToken钱包生成助记词的流程分析

MGC钱包APP其实就是一个Web网站,只不过把这个网站封装成了APP。

image.png

复现MGC钱包的注册流程(含手机截图以及注册流程的抓包数据):

#第一步,输入手机号发送验证码

POST /api/sendSms HTTP/1.1
Host: www.lianjiedu.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Origin: http://www.lianjiedu.com
Cookie: __jsluid=c4ff810fd0b81ee6a2a53asf5f442b05
Connection: close
Accept: application/json, text/javascript, */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H143
Content-Length: 122
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate

area_code=%2B86&mobile=131********&style=1&lang_id=1iBH****1DDu1qS2&img_code=6460&tmp=&keyid=

#第二步,验证手机号验证码是否正确

POST /api/verify/sms HTTP/1.1
Host: www.lianjiedu.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Origin: http://www.lianjiedu.com
Cookie: __jsluid=c4ff810fd0b81ee6a2a53asf5f442b05
Connection: close
Accept: application/json, text/javascript, */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H143
Content-Length: 98
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate

area_code=%2B86&mobile=131********&lang_id=1iBH****1DDu1qS2&sms_code=55826*&keyid=

#第三步,提交手机号,密码进行注册

POST /api/reg HTTP/1.1
Host: www.lianjiedu.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Origin: http://www.lianjiedu.com
Cookie: __jsluid=c4ff810fd0b81ee6a2a53asf5f442b05
Connection: close
Accept: application/json, text/javascript, */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H143
Content-Length: 146
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate

person=这里是邀请码&mobile=131********&area_code=%2B86&password=123456&repassword=123456&lang_id=1iBH****1DDu1qS2&sms_code=55826*&keyid=

#第四步,注册成功后,进行登陆

POST /api/login HTTP/1.1
Host: www.lianjiedu.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Origin: http://www.lianjiedu.com
Cookie: __jsluid=c4ff810fd0b81ee6a2a53asf5f442b05
Connection: close
Accept: application/json, text/javascript, */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H143
Content-Length: 129
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate

mobile=131********&lang_id=1iBH****1DDu1qS2&password=123456&area_code=%2B86&captcha=1675&tmp=&keyid=

#第五步,登陆后会让你设置交易密码

POST /api/user/tpassword/set HTTP/1.1
Host: www.lianjiedu.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Origin: http://www.lianjiedu.com
Cookie: __jsluid=c4ff810fd0b81ee6a2a53asf5f442b05
Connection: close
Accept: application/json, text/javascript, */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H143
Content-Length: 127
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate

password=123456&re_password=123456&lang_id=1iBH****1DDu1qS2&keyid=注册的账号ID&token=注册的账号token

#第六步,设置好交易密码,会发送一个请求去服务器,服务器返回一个助记词给你

POST /api/user/create_mnemonic HTTP/1.1
Host: www.lianjiedu.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Origin: http://www.lianjiedu.com
Cookie: __jsluid=c4ff810fd0b81ee6a2a53asf5f442b05
Connection: close
Accept: application/json, text/javascript, */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H143
Content-Length: 92
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate

keyid=注册的账号I&lang_id=1iBH****1DDu1qS2&token=注册的账号token

服务端返回的内容如下:

HTTP/1.1 200 OK
Date: Thu, 06 Jun 2019 07:15:15 GMT
Content-Type: application/json; charset=utf-8
Connection: close
Vary: Accept-Encoding
Vary: Accept-Encoding
Expires: Thu, 06 Jun 2019 19:15:15 GMT
Cache-Control: max-age=43200
X-Via-JSL: 521820e,-
X-Cache: bypass
Content-Length: 404

{"data":{"account":"0x9faD3c6731854AC22922272c53b05E966E4278cf","cid":1,"mnemonic":"Embody Honey Daughter Flush Layer Brick Armor Puzzle Danger Layer Start person","pbKey":"fd4a35e8bffda4cd0edfefa5d0ad911b5a2a2fb8076e10bbd68a02c5c191591afd4a35e8b8c25fb33590f3980562b4b7923669d90206ed907d202c5c191591afd4","prKey":"6e10bbd68a02c5c1991591afd4a35e8bf202de5c610d03c63ce20fda40206ec"},"msg":"","status":1,"url":""}

关于 MGC 服务端返回的JSON部分参数解释:

{
“data”: {
“account”: “0x9faD3c6731854AC22922272c53b05E966E4278cf”, //这就是你的钱包地址
“cid”: 1,
“mnemonic”: “Embody Honey Daughter Flush Layer Brick Armor Puzzle Danger Layer Start person”, //这是你的助记词
“pbKey”: “fd4a35e8bffda4cd0edfefa5d0ad911b5a2a2fb8076e10bbd68a02c5c191591afd4a35e8b8c25fb33590f3980562b4b7923669d90206ed907d202c5c191591afd4”,
“prKey”: “6e10bbd68a02c5c1991591afd4a35e8bf202de5c610d03c63ce20fda40206ec”
},
“msg”: “”,
“status”: 1,
“url”: “”
}

关于这里的助记词有几句话要说:

这里很清楚的能看到助记词是由服务端创建好之后再发给你的,也就是说,给你的助记词不仅仅只有你一个人知道,MGC钱包的服务端也会知道,因为助记词是服务端给你的。

而助记词对用户来说意味着什么?意味着钱包的所有权,所以理论上来说MGC是拥有你的钱包所有权的。

有这样一个故事,用户在MGC钱包生成了助记词,然后拿着助记词导入了去中心化钱包,然后用户正常的使用着这个钱包,并且给这个钱包充值了很多钱,有一天,用户的钱包在去中心化钱包里被盗了,而此时用户信心满满的说他从未泄露过助记词,却不曾想到这个助记词是MGC钱包给他的。

相关流程截图:


相关资讯
  1. 什么是助记词?imToken钱包助记词如果丢了怎么办?

    2019-04-16
  2. imToken导入助记词后,发现生成的钱包地址产生变化是怎么回事?

    2019-04-16
  3. 什么是数字货币钱包助记词?

    2019-05-23
  4. 比特币钱包开发:通过助记词导入钱包与导出钱包助记

    2018-12-03
  5. 技术指南 | 以太坊钱包开发:生成账户地址、私钥、keystore、助记词

    2019-03-26
  6. 火币钱包如何导入助记词?

    2019-05-23
  7. imToken钱包2.0如何导入助记词?

    2019-04-16
  8. 备份imToken钱包助记词的正确方式

    2019-04-16