在币圈,听到对数字货币的质疑之声从来没少过。为什么有人会质疑呢?他们列出了很多理由(以下四点内容摘自网络):

  1. 数字货币是依附于网络的,而中国并没有独立自主的网络技术,容易被敌对势力利用数字货币损害中国利益;

  2. 网络黑客会利用相关技术从事非法活动,盗取国家和他人财产;

  3. 如果出现网络故障,会因为不能及时交易影响经济活动的正常开展;

  4. 有一部分习惯使用现金的尤其是老年人不适应……等等,很多理由。

枚举的理由虽然不够全,但也能从中看到一些问题,即每个参与者都很关心数字币技术,而技术中的安全问题从来都是币圈的头条新闻,大到门头沟事件,小到最近火的不得了的bitfinex事件。本文今天就浅尝辄止的做个Asch和Liks的安全性对比--首页登陆。

1.技术背景

Asch和Liks都是踩着Crypti的肩膀发展而来,有竞争才能有进步,因此二者在同一功能上技术实现细节也有很大不同。普通用户在登陆钱包时可以使用web页面、手机app等,但无论使用哪种方式登陆,他们都要连接到一个拥有完整区块链数据的Server端,当你输入密码按确定键之后,密码会通过http协议的post请求传输到Server端进行认证。下图是一个简单的实现描述: 

2.Lisk的Web钱包登陆过程解析

 
本次Lisk测试采用的是最新版本v0.3.2(lisk-main,非测试连),输入密码并点击“登陆”按钮,然后通过浏览器查看其post请求,发现lisk在登陆过程中未对密码进行任何处理,直接将其发送到服务器,如下图所示,可以看到用户输入的密码为“absorb gun bread exist just stand file pipe minimum caution margin clap” 

3.Asch的Web钱包登陆过程解析

 
本次Asch测试采用的版本是最新的v0.9.5(test-net),当用户点击“登陆”后,asch web页面会对密码进行加密处理,然后将加密后的数据发送到服务器,而非直接发送密码。 

4.结论

1.Asch比Lisk更安全

Lisk明文密码直接通过Internet传输,无疑等于直接裸奔!而Asch的密码是经过客户端处理过后以公钥形式通过Internet传输,私钥是存储在客户端本地的,安全性远大于Lisk。

2.Lisk钱包被盗风险极大

虽然二者都是采用明文方式进行post提交,但当网络不安全被人截取数据包时(如抓包工具tcpdump、wireshark,连接到不安全的wifi热点等),攻击人可以直接获取到Lisk用户的私钥(可以执行任何操作,如转账);同样的操作却只能获取到Asch用户的公钥(只能查看,不能执行其它操作,因为没有私钥来签名)

3.Lisk的服务端必须是可信任的

因为你将密码直接发送到Lisk服务器,当服务端不可信任时,他可以通过修改Lisk程序代码,然后将接收到的密码打印到终端或者写入文件中。而Asch则不必要求服务端是可信任的,他传输的只是公钥,是安全可靠的。

本系列文章只是进行技术交流,不可用做其它用途,且须经本人同意,方可转载。永久链接:https://www.zybuluo.com/zhenxi/note/467042

Asch PK Lisk系列之一:安全性的更多相关文章

  1. Oracle11g R2学习系列 之七安全性

    其实,对于目前我使用的Oracle的水平来看,还达不到使用安全管理的高度,只是作为一个学习来看一下. 关于Oracle的安全管理,一般使用OEM来操作完成好了,入口是:OEM的“服务器”属性页中,选择 ...

  2. hashlib以及hmac的日常应用

    首先我们要明白日常的Web网页为了保证数据的安全都会对数据的存储进行一些加密,当我需要在此网站验证时就需要对原有的密码以及账号进行加密此时我们就需要用到hashlib这个框架的一些功能,下面我就来更大 ...

  3. 有了lisk,为什么我们还要做一个Asch?

    0 前言 首先要声明一点,我们和我们的一些朋友都是lisk的投资人和支持者,我们也相信lisk会成功. 事实上,lisk已经成功了一半,目前在区块链领域融资金额排行第二,仅次于以太坊. 那为什么我们还 ...

  4. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【八】——Web Api的安全性

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 这一篇文章我们主要来探讨一下Web Api的安全性,到目前为止所有的请求都是走的Http协议 ...

  5. Nginx之旅系列 - Nginx日志功能 PK Linux内核printk

    题记:Nginx之旅系列是用来记录Nginx从使用到源码学习的点点滴滴,分享学习Nginx的快乐 Nginx 首页: http://nginx.org/ Nginx日志功能 PK Linux内核pri ...

  6. SQL Server扫盲系列——安全性专题——SQL Server 2012 Security Cookbook

    由于工作需要,最近研究这本书:<Microsoft SQL Server 2012 Security Cookbook>,为了总结及分享给有需要的人,所以把译文公布.预计每周最少3篇.如有 ...

  7. 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御

    写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...

  8. [转]使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【八】——Web Api的安全性

    本文转自:http://www.cnblogs.com/fzrain/p/3552423.html 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html ...

  9. 常数PK系列汇总

    常数PK系列说明: 在AC的情况下得分=\(\sum_{i=1}^{10}{1000-runtime\_on\_point_i}\) RE会显示UKE UPD:之前的数据太水,导致好多题都在9000分 ...

随机推荐

  1. 不定参数对arguments对象的影响

    如果声明函数时定义了不定参数,则在函数被调用时,arguments对象包含了所有传入的参数: function checkArgs(...args){ console.log(args.length, ...

  2. MySQL学习1 - 基本mysql语句

    一 操作文件夹(数据库) 增 查 改 删 二 操作文件(数据表) 增 查 改 删 三 操作文件内容(数据记录) 增 查 改 删 一 操作文件夹(数据库) 增 create database db1 c ...

  3. 练习:javascript-setInterval动画运动平移,定时器动画练习

    常见问题:定时器加速问题,每次点击会启动一个定时器,解决先清除定时器 <!DOCTYPE html> <html lang="en"> <head&g ...

  4. 【归纳】正则表达式及Python中的正则库

    正则表达式 正则表达式30分钟入门教程 runoob正则式教程 正则表达式练习题集(附答案) 元字符\b代表单词的分界处,在英文中指空格,标点符号或换行 例子:\bhi\b可以用来匹配hi这个单词,且 ...

  5. 爬虫时遇到的' 编码错误gbk ' 的解决方案

    # 每次请求一次,然后写文件,这样可以规避多次请求触发反爬虫 r = requests.get('https://www.pearvideo.com/video_1522192') html = r. ...

  6. Python爬虫从入门到进阶(1)之Python概述及爬虫入门

    一.Python 概述 1.计算机语言概述 (1).语言:交流的工具,沟通的媒介 (2).计算机语言:人跟计算机交流的工具 (3).Python是计算机语言的一种 2.Python编程语言 代码:人类 ...

  7. UML各种图总结-精华

    UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言.下面将对UML的九种图+包图的基本概念进行介绍以及各 ...

  8. 【原创】大数据基础之Kudu(1)简介、安装、使用

    kudu 1.7 官方:https://kudu.apache.org/ 一 简介 kudu有很多概念,有分布式文件系统(HDFS),有一致性算法(Zookeeper),有Table(Hive Tab ...

  9. Cookie 判断页面是否为第一次打开 包括刷新

    $.cookie = function(e, t, n) { if(arguments.length > 1 && (!/Object/.test(Object.prototyp ...

  10. LLDB 中从地址设置为变量

    // set language and import framework settings set target.language swift expr -l Swift -- import UIKi ...