区块链科普系列第30天:轻钱包、私钥、口令,验证安全有何差异
文/杜豆豆
每到假日临近,便让人不由地开始憧憬起来,盘算着如何利用这闲暇,或和父母家人小聚团圆,或和伙伴朋友旅游出玩。
离开自己的窝,少不了要门窗紧密,锁好大门。万一被人溜门撬锁,这节可就过得晦气了。
大家对锁如此看重,无非是因为它代表着安全。如今,新科技带来了很多新变化,要打开家里的门,各种安全验证方式,也是花样百出,先是门禁卡,后来又有指纹、语音,甚至眼睛的虹膜都用上了。
可是,有了这些验证手段,就一定安全了吗?在区块链世界里,是不是也存在着这样的安全验证隐患呢?
我们今天就来聊聊区块链世界里的几个验证安全问题。
1、简单的代价:轻钱包的易攻击性
这第一要提的,就是轻钱包。我们前面讲过钱包,知道标准的完全钱包是个前端工具,是用来管理密钥和做查账转账等交易操作的,后端直接和完整的区块链账本相连,能够独立校验所有交易事务。
那么,轻钱包又是什么呢?
轻钱包是为了减少需要同步的数据量,采用简易支付验证的方式来完成验证的一种钱包,它只保留了区块头而去除了区块体中的详细事务数据,因此更为快速和方便。
但是,方便的同时,自然也会带来问题。
由于只是简单地通过区块头来验证是否存在交易,只需要从区块链某处找到相符的交易,就可以验证通过,一旦节点上交易被掉包,问题就来了。
这就像咱们在电影上老瞧见的,战争时代想蒙混过关,随便出示个假造的通行证件,警卫就放行了,而完全不检查证件的真实性是一样的。
2、忘了保险箱密码:私钥丢失
这第二要提的,就是私钥。
在区块链的世界里,唯一标识一个用户身份的,就是私钥。
每个用户都拥有一对密钥:公钥和私钥。私钥是首先产生的,根据私钥才产生了公钥,然后再对公钥进行编码处理,就得到了一个钱包地址。
由此看来,私钥有多么重要,掌握了私钥,就等于掌握了你家里的通用钥匙,什么操作都可以做了。
而且,私钥还有一个特点,就是没法恢复。一旦私钥丢失,这钱包地址下的大量数字资产,可就永远尘封了。
另外,如今还有很多钱包软件,为了便捷,发明了钥匙串技术,用一个私钥生成多个子私钥,从而可以管理众多地址。
不过,方便从来都是和安全对立的。
假如这把私钥丢了,那你的所有数字资产可就全都打水漂了。
3、 重放攻击:交易延展性
第三个要说的,就是重放攻击。
什么是重放攻击呢?
顾名思义,就是重复播放的意思。具体来说,就是攻击者发送一个目的主机已接收过的数据包,骗过系统的验证。
举个形象的例子。
你家安装了一个语音识别的保险门,每次,你回家只要对着大门说:“开门开门,我是主人。”门锁就开了。有个小偷,知道你家财物甚多,偷偷跟踪了你,并且躲在角落,用录音笔录下了你的语音,然后趁你不在家时,播放这段语音,成功骗过大门的验证系统,把你家的门打开了,堂而皇之地进去偷走了你家不少财物。
这个就是重放攻击的意思了。攻击者通过截获通信口令,然后原样发给系统,通过了验证。
在这个重放攻击的基础上,发展出一种交易延展性重放攻击。
这又是怎么回事呢?
我们都知道,比特币在转账交易过程中,会产生一条交易数据,这条数据中包含了转账者的签名、接收者地址等重要信息,然后发到网络中,等待其他节点共同见证,验证没问题,矿工就会打包到新的区块中,完成转账。
在这个过程中,如果有人想使坏,篡改这个交易里的数据,基本上是不可能的。因为哪怕是修改一丁点儿,就会产生不同的标识号,其他节点就会验证不通过,自然这笔交易也就完不成。
那如果有一个办法,稍微修改一下某个能修改的信息,但仍保证这笔交易是有效的,能够通过其他节点的验证,会怎么样呢?
那就会导致标识号发生变化,但内容并没有变。
延展性攻击修改的,是签名信息。比如,将1改为1.0,数学意义并没变,但是标识号却会因为改动而变化。
那么攻击者通过这样的更改能干什么呢?
(1)接收方无法通过原始的事务ID查询该转账;
(2)被修改的交易会和原始交易一起进入区块,带来迷惑,攻击者可利用这种迷惑达到欺骗的目的;
(3)阻止原始交易进入区块。
这种类型的攻击,就被称为交易延展性重放攻击。
(本文出自杜豆豆《白话区块链》读书笔记的部分摘录。)
明天分享:《智能合约:要灵活,还是要安全?》
(未完待续)
原创不易,非授权不得转载,转载请注明出处。如果您觉的文章有用,别忘了在文末点赞哦。
读更多好书,请访问我的文集:《一生必读的万卷好书》
欢迎加入“万卷好书读书会”:在这个群里,大家可以分享电子书,交流读书心得,以文会友,自由点赞支持。目前该群已超过100人,需要群主发邀请才能进,有兴趣的简友请加微信dudoudou189联系我。读书会座右铭:在浮躁的时代,安心读书写作,养育心灵。
我已晋升五十万钻高级合伙人,欢迎使用我的专属会员推广链接:https://www.jianshu.com/mobile/club?ref=3debb0de。订阅会员,享受最优惠福利。