BIP 324:可以保护比特币对等方的消息传输协议

在比特币世界中生活了十多年,这向我们表明,比特币开发人员还有很长的路要走,2019年3月创建的BIP 324可能是这条道路上的下一个重要步骤。

BIP由瑞士的比特币开发商和Shift 加密货币ecurity联合创始人Jonas Schnelli共同撰写,旨在帮助解决人们对比特币同行之间交易所的消息的担忧。

“比特币:一种点对点的电子现金系统”是比特币白皮书的标题,并且正如它所暗示的那样,P2P层是比特币网络的主要组成部分,但它也是效率低下和现有理论攻击媒介严重的地方。这个潜在的研究和升级到比特币的主要领域之一就是这个P2P网络,这个领域最近的一些显着发展引起了很多关注,包括Dandelion(BIP 156)和Erlay等提议。

那么什么是P2P网络架构?在比特币问世之前,P2P网络最成功的实现体现在文件共享服务的应用程序中:最初是Napster(通过中央服务器目录进行部分中心化),后来是BitTorrent。

在理想的配置中,P2P网络不应具有任何层次结构(所有节点都是相同的),并且节点应统一分担网络负载。互连节点的网格的这一基本层是使比特币具有抗审查性的原因。与洪流网络一样,政府已采取措施在搜索引擎级别将其阻止。一个人只能阻止torrent搜索引擎,但是要杀死P2P torrent网络要困难得多(几乎是不可能的)。这些网络的主要问题是:使用它们的私密性如何?

比特币的P2P层存在问题

比特币当前P2P实施的问题之一是在消息传输层上缺乏强制加密货币。它使比特币容易受到中间人(MITM)攻击。 MITM攻击是通过秘密地连接到两个对等方并中继它们之间的通信来执行的,因此,当通信双方确实受到攻击者的控制时,双方都认为他们是在直接进行对话。同时存在“被动”和“主动” MITM攻击,被动MITM攻击者仅观察网络状态,而主动攻击者则操纵其流量。

比特币协议中节点之间发送的消息未加密货币,只是以纯文本格式发送,从而使整个协议向攻击者开放。 Internet服务提供商(ISP),WiFi提供商或其他对手可以执行MITM攻击以读取您的所有入站和出站连接,而不必以对等方身份连接到您。从理论上讲,可以利用它来拦截甚至阻止特定数据的中继,例如与受制裁实体之间的交易。

由于比特币上缺乏消息加密货币,一个国家的ISP可能能够将一个比特币交易数据包作为MITM进行检测,查看其中包含的原始数据,然后将其阻止。他们可能会攻击矿工并延迟对区块的验证。或者像PRISM这样的监视程序可能会选择通过MITM攻击来被动地观察所有比特币流量,并在发现一笔不赞成的交易后,对其进行拦截或阻止。通过P2P网络进行的协同攻击甚至可以在大陆或国家/地区级别分割比特币网络,称为“分区攻击”。

当前实施时,对于比特币的隐私而言,最关键的是:即使确实发生了MITM攻击,受影响的同行也无法确认它。

但是,作为一个比特币社区,为什么我们不能使用VPN或Tor之类的工具来混淆或加密货币流量呢?由于Tor是经过加密的洋葱路由网络,因此它隐藏了交易的端点,因此,从理论上讲,ISP无法以这种方式跟踪活动。但是使用Tor加密的P2P服务存在弊端,主要与对Tor在HTTP(S)以外的层上的集成研究不足,理论攻击的可能性以及可能引入攻击向量的Bitcoin Core软件的某些依赖性问题有关。

比特币P2P层的潜在解决方案

因此,Schnelli制定了一套比特币改进提案(BIP)以解决该问题。 BIP 151涵盖了节点之间流量的加密货币,而BIP 150则说明了该节点可选的身份验证,该身份验证基于椭圆曲线数字签名算法(ECDSA)私钥/公钥密码术。
对于狂热的读者,建议从Aaron van Wirdum撰写的BIP 151文章开始,因为该BIP是第一个提出针对P2P层缺乏隐私的解决方案的人。自发布该提案以来,一些团体已开始将该解决方案实施到各种比特币客户端实现中,Schnelli决定采用编号为324的新的升级版BIP。

BIP 324的设计目的是使比特币对等方可以判断自己是否是MITM攻击的受害者。尽管错误的参与者仍然可以连接到对等方A,并假装为对等B,并且可以连接至对等方B,并且假装为对等方A,但是实际的对等方A和B可以看到他们没有相同的会话ID,并且是MITM攻击者正在拦截他们的通讯。尽管这些对等方也可能希望利用其他身份验证机制,但这超出了BIP 324的范围。

BIP摘要指出:“使用当前的未加密货币消息传输,BGP劫持,阻塞延迟攻击和消息篡改是廉价的,并且可以秘密执行(无法检测到的MITM)。” “增加机会加密货币会给检测到攻击者带来高风险。对等运营商可以比较加密货币会话ID或使用其他形式的身份验证方案来识别攻击。”

最终,一个可能成为MITM的攻击者仍将能够读取比特币区块链上的未加密货币数据,因为它是开放式和去中心化的。因此,在实践中,该解决方案可能最有助于防止特定实体(例如ISP和开放WiFi提供程序)的非对等实体,这些实体可以过滤出特定交易并拦截或阻止它们。当然,PRISM可以通过简单地成为网络上的同伴来观察比特币流量。尽管对于潜在的攻击者而言,侦听未加密的流量更为琐碎:如果可以监视MITM攻击,则这些被动的区块链观察者将不得不权衡监视P2P消息带来的负面影响。

不过,BIP 324实际上只是加强比特币的P2P层抵御恶意MITM攻击的基础。确定MITM攻击是否对比特币构成真正威胁,这可能成为开发工作中的关键步骤。但是,如果没有BIP 324建议的工具,就很难收集这些数据。

BIP 324专注于提供缓解被动MITM攻击的工具,而与BIP 150的共同实施则为主动MITM攻击提供了一些潜在的工具。

握手

BIP 324中描述的第一个动作是“握手”。这是建立协议以在P2P层上的同级之间进行进一步通信的动作。

如果在两方之间没有发送其他消息作为开始联系的方式,则应该通过将公钥(从临时椭圆曲线secp256k1加密货币函数派生)发送到交易对手来开始这种握手,以发起握手。就像这种类型的密钥架构的名称所暗示的那样(临时的),每次成功执行握手后,应从内存(RAM)中清除密钥。因此,攻击者将无法截取这些密钥或对该特定连接的历史邮件传输进行解码。
此攻击媒介需要访问受害者的内存,因此在P2P加密货币和身份验证的范围内,此问题可能可以忽略不计。

共享密钥对于建立端到端的加密货币通信至关重要,只有在攻击者获得了私钥和交易对手的公钥的情况下才能计算共享密钥。后者对于攻击者而言是微不足道的,但是根据设计,私钥不应被传输,因此攻击者无法使用等式的这一部分。

握手的最后一步是派生对称加密货币密钥(用于加密货币消息的实际机密)并计算会话ID。

加密货币

从现在开始,各方可以在彼此之间发送消息,而不必担心任何第三方都会观看其内容。

那么,对邮件进行加密时实际上会发生什么?与BIP 151相似,该提议提取了加密货币原语ChaCha20和Poly1305的最佳部分。加密货币不仅有积极的效果。通常,它使消息变大和计算量大,从而使通信变慢。由于没有选择太多细节,新的建议消息结构甚至可以使加密货币消息更小,更快地进行计算,这全都归功于选择了上述正确的加密货币原语。相比之下,未加密的Bitcoin Core客户端当前使用已发送消息的双SHA-256哈希(加密货币标准)校验和(截断为4个字节),并且仍然是Satoshi最初实现的结果。

这项提议只是使比特币更加私密和可替代的一个基石。它不会对比特币共识规则产生任何影响,甚至会假设您选择加入行为。与比特币核心更新一样,某些节点可能无法返回握手。简而言之,BIP 324向后兼容,这在减轻MITM攻击的现实能力中可能是负面的。

在将此建议(与BIP 150一起)实施到Bitcoin Core中之后,我们可以预期会有更少的MITM攻击,或者至少可以使用一个工具来比较会话ID和识别攻击。另外,值得一提的是,尽管该建议并未涵盖在加密货币初始化期间避免MITM攻击的方案(称为“首次使用信任”),但BIP 150确实在其范围内。

作者感谢Schnelli对本文的有益评测,并感谢以下消息来源:

资讯来源:由0x资讯编译自BITCOINMAGAZINE。版权归作者所有,未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢