技术 | Eth2中的时间服务器攻击及其缓解措施_ATT:LATTE

摘要:Eth2中的时间服务器攻击之前也有人讨论过。但迄今为止,主流意见都认为这种攻击只能导致验证者暂时离线,等节点运营者重建正确的时间同步措施,节点就能重新回到线上。但是,如果节点可以被诱去签署一条有关遥远未来某个epoch的见证消息,危险性就远不止暂时离线这么简单:因为共识算法的环绕投票罚没规则,这些节点在整个网络实际到达该错发的见证消息的目标epoch之前,将不能再签名任何见证消息。在共识规则的运作下,这种时间服务器攻击会导致受攻击的验证者几乎永远离线,而相关的权益人也会因为懒惰惩罚而付出惨痛代价。

攻击界面

支付宝爱心捐赠平台引入区块链技术 目前已支撑20亿次交易:金色财经报道,4月16日下午14:00,蚂蚁区块链“开放联盟链”面向中小企业和开发者发布,助推全民入链。蚂蚁区块链平台产品部总经理金戈在会上指出,支付宝一直在内部推动区块链的应用,促进解决行业问题。其中之一就是支付宝爱心捐赠,支付宝公益其实已经做到了很大规模。在过去从捐款人到募捐方到分发受捐的个体信息是不透明的,为了解决捐款传递流转中的问题,支付宝爱心捐赠引入区块链技术,将参与其中的多家信息写到链上,做到不可篡改,从而使得公益更加透明,截至目前该平台已经支撑了20+亿次的交易。[2020/4/16]

Eth2中的见证消息就是验证者签过名的、包含所认可的来源检查点和目标检查点的信息;来源检查点和目标检查点都以时段号和区块根来表示。CasperFFG的算法的安全性保证之一便是“无环绕投票”规则:验证者签名过的任意两条消息中,不能出现有?attestation1.source<attestation2.source?且?attestation2.target<attestation1.source?的情况。

动态 | 圣约翰机场将采用区块链技术 防止外人冒充员工:据民航资源网消息,加拿大圣约翰机场将结合使用区块链及生物识别验证技术,防止外来者冒充机场员工,以提升机场安全性。[2019/2/15]

我们可以按如下手法炮制一次时间服务器攻击:第一步是通过操纵时间服务器的时间,使之跳转到未来的某个时间,使得被攻击验证者的时间也跳转到未来,这个时间必须短于懒惰惩罚致使验证者余额降低至零的时间,否则验证者就不会再签名见证消息了。

然后我们需要诱相关的节点,使之认为它其实是跟链保持同步的,然后它才会签署见证消息。如果攻击者控制了多个对等节点,这一点总是有可能做到的,只需在点对点的网络频道中发送一些来自未来时间的见证消息和区块即可。控制多个节点也是容易实现的,所以这并不是一个不现实的攻击者假设。

动态 | 三星:积极发展区块链相关技术 但无发币计划:据韩国中央日报消息,三星官方表示,没有计划通过ICO发行“三星币”。因为没有资金问题,所以没有理由进行ICO;但是将会积极发展区块链相关技术。此前,关于三星发行“三星币”的谣言一直在流传,部分进行过ICO的公司也曾表示与三星有关。[2018/7/23]

一旦目标验证者签名了一条以未来epoch为目标epoch的见证消息,攻击者就可以把这条消息保存下来,然后确定这名验证者在整个网络实际到达那个未来epoch之前,都不能再签名任何见证消息了。当前所有Eth2实现的验证者客户端都有措施防止该验证者签署相互冲突的见证消息,因此该验证者实质上就是离线了。

Chanticleer部署区块链技术 盘前上涨109%: 2018年1月2日,Mobient控股公司(MFON)是智能和个性化营销屡获殊荣的平台制造商,以及Chanticleer控股公司(BURG)几家快速休闲餐厅品牌的运营商今天宣布,计划使用MobivityMind这一区块链架构的跨品牌商业和客户沟通平台,为客户忠诚度和奖励计划提供动力,此举让Chanticleer的股票盘前上涨109%。[2018/1/3]

结果

一名攻击者可以通过一个时间服务器来驱逐所有TA能影响到的验证者。这种攻击会比此前使用同样界面所设想的攻击更为恶劣,因为影响不是暂时的,而是持久得多。虽然我们有可能在几分钟之内就能发现这样的攻击,而且所有专业的节点都能在几个小时内恢复正常时间,但这于事无补,因为损害已经发生了——而且可以导致验证者的惨重损失,例如,可能有很多验证者会因为指数升高的懒惰惩罚而被提出网络。

缓解措施

加入验证者客户端不罚没规则

我们可以在验证者客户端中加入一条不罚没规则:要求他们在签署所有消息前都评估当前的时间,而且不要提前签署未来的消息。这个办法其实只有在验证者客户端与信标链节点没有部署在同一台机器上且没有被攻击波及时才有用。不过,对于密钥分割型验证者来说是一个明确的改进,因为这个规则将不允许领导哦啊这节点提议一条未来的见证消息,可以阻挡验证者的行动。

为时间同步措施加入更多的保护

本文所提出的问题表明,时间服务器的同步措施所包含的攻击界面比我们从前设想的严重得多,必须引起我们的注意。

小幅度的时间偏移虽然恼人,但不会导致严重的问题,所以,仅在时间服务器推送的更新与本地的RTC时间相差幅度在一定范围内才使用更新、否则就拒绝更新,似乎是更好的模式。

但这个模式仍会遗留一个攻击界面在启动进程中。因此时有发生的大规模电源中断可能会演变成严重的问题、一次性影响众多验证者。我认为,可以让验证者客户端在启动前先检查罚没保护数据库、如果在几个小时乃至几天内都没有签名过任何消息,就拒绝启动。长时间不签名消息意味着可能发生了时间服务器攻击。可以添加一个强制启动的标签来应对例外情况。

?https://arxiv.org/abs/1710.09437?Timeattacksandsecuritymodels

原文链接:?https://ethresear.ch/t/eth2-attack-via-time-servers/8049作者:?dankrad翻译:?阿剑

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:46ms0-6:93ms