@zhenxi
2016-08-13T13:23:58.000000Z
字数 1279
阅读 1878
区块链
Asch
Lisk
- 声明:本系列文章只是进行技术交流,不可用做其它用途,且须经本人同意,方可转载。
在币圈,听到对数字货币的质疑之声从来没少过。为什么有人会质疑呢?他们列出了很多理由(以下四点内容摘自网络):
- 数字货币是依附于网络的,而中国并没有独立自主的网络技术,容易被敌对势力利用数字货币损害中国利益;
- 网络黑客会利用相关技术从事非法活动,盗取国家和他人财产;
- 如果出现网络故障,会因为不能及时交易影响经济活动的正常开展;
- 有一部分习惯使用现金的尤其是老年人不适应……等等,很多理由。
枚举的理由虽然不够全,但也能从中看到一些问题,即每个参与者都很关心数字币技术,而技术中的安全问题从来都是币圈的头条新闻,大到门头沟事件,小到最近火的不得了的bitfinex事件。本文今天就浅尝辄止的做个Asch和Liks的安全性对比--首页登陆。
Asch和Liks都是踩着Crypti的肩膀发展而来,有竞争才能有进步,因此二者在同一功能上技术实现细节也有很大不同。普通用户在登陆钱包时可以使用web页面、手机app等,但无论使用哪种方式登陆,他们都要连接到一个拥有完整区块链数据的Server端,当你输入密码按确定键之后,密码会通过http协议的post请求传输到Server端进行认证。下图是一个简单的实现描述:
本次Lisk测试采用的是最新版本v0.3.2(lisk-main,非测试连),输入密码并点击“登陆”按钮,然后通过浏览器查看其post请求,发现lisk在登陆过程中未对密码进行任何处理,直接将其发送到服务器,如下图所示,可以看到用户输入的密码为“absorb gun bread exist just stand file pipe minimum caution margin clap”
本次Asch测试采用的版本是最新的v0.9.5(test-net),当用户点击“登陆”后,asch web页面会对密码进行加密处理,然后将加密后的数据发送到服务器,而非直接发送密码。
Lisk明文密码直接通过Internet传输,无疑等于直接裸奔!而Asch的密码是经过客户端处理过后以公钥形式通过Internet传输,私钥是存储在客户端本地的,安全性远大于Lisk。
虽然二者都是采用明文方式进行post提交,但当网络不安全被人截取数据包时(如抓包工具tcpdump、wireshark,连接到不安全的wifi热点等),攻击人可以直接获取到Lisk用户的私钥(可以执行任何操作,如转账);同样的操作却只能获取到Asch用户的公钥(只能查看,不能执行其它操作,因为没有私钥来签名)
因为你将密码直接发送到Lisk服务器,当服务端不可信任时,他可以通过修改Lisk程序代码,然后将接收到的密码打印到终端或者写入文件中。而Asch则不必要求服务端是可信任的,他传输的只是公钥,是安全可靠的。