Robust Synchronous P2P Primitives Using SGX Enclaves
使用SGX构建健壮的同步P2P基础协议
作者:Yaoqi Jia
如今,大量的P2P系统例如BitTorrent,Storj和BitCoin 进入了大众视野。由于他们的易用性,用户可以轻松地作为节点加入这些P2P系统中。与此同时,这样的开放性也使得恶意(拜占庭)节点可以加入并进行恶意操作。这些恶意节点的出现一直以来都是P2P系统中的安全隐患。例如,最近研究人员展示了恶意节点可以通过控制网络对正常节点的网络连接进行分割,从而实现重复花费和自私挖矿攻击。同时,拜占庭节点也可以在匿名P2P网络(如洋葱网络Tor)中通过瞒报高带宽和高运行时长来控制正常通讯回路的进入和退出节点,进一步有选择性地拒绝服务从而削弱匿名网络的匿名性。另外,拜占庭节点还可以选择性地伪造,转移,延迟或者终止信息,从而破坏协议的执行。因此,设计健壮的P2P协议来抵御这些攻击是一个很重要的研究课题。
在拜占庭的这个模型中,已经有大量的科研工作设计出不同的P2P基础协议,例如可信广播和一致性协议。大量的研究表明在超过三分之一节点是拜占庭节点的环境下,可信广播和一致性是不可能达成的。在寻求更高效率和容忍更多拜占庭节点的协议的过程中,研究者创建出一些新的限制拜占庭节点能力的 模型。作为其中常见的模型, 常规遗漏模型(general-omission model)限定了恶意节点只能选择遗漏发送和接受的信息,不能随意地篡改信息。在这个弱化的恶意模型中,已有的可信广播可以容忍一半的恶意节点,同时通信的数据量大大减少。然而,这些弱化的模型通常需要很强的设定,并且这些设定在现实中很多时候是不切实际同时没有具体的实现。
在我们的这个工作中,我们研究了使用基于硬件信任根源(hardware-root-of-trust)的机制使得之前弱化的模型在现实系统中变得可实现。我们发现新兴的硬件例如Intel SGX,为用户级的应用提供了很强的可信计算能力。其中SGX enclaves为这些应用提供了硬件隔离的执行环境,使得在enclave里面的程序防篡改同时可以被远程证明。如果SGX类似的功能可以被日常的用户终端系统广泛的采用,那我们是否可以利用这些新的功能去设计和实现健壮的P2P协议呢?通过我们的观察和研究,通过使用SGX的功能,我们可以在同步网络的环境中将拜占庭(byzantine)节点的行为限制在常规遗漏模型(general-omission)中。
具体地,我们使用了4个SGX的特性,分别是隔离执行(enclave execution),无偏差随机数(unbiased randomness),远程证明(remote attestation)和可信消逝时间(trusted elapsed time)。在这些特性之上,我们实现了6种安全功能。首先,我们通过实施执行完整性(execution integrity),信息完整性和真实性(message integrity & authenticity),以及盲盒计算(blind-box computation)来限制攻击者不能伪造信息或者违背原有协议的执行,只能延迟,重放和遗漏信息。我们进一步使用锁步执行(lockstep execution)和信息保鲜(message freshness)将攻击者模型降低为general-omission模型,从而使得拜占庭节点除了选择性发送/接受信息外没有其他优势。在这样的模型中,盲盒计算特性不允许攻击者根据信息的内容而选择性遗漏信息。同时,分歧暂停特性(halt-on-divergence)使得在enclave中的程序可以检测自己所在的节点是否根据收发者的身份选择性地遗漏信息,从而自身将表现恶意的节点剔除出所在的网络。利用这些特性,我们进一步将可信广播和随机数生成协议进行了改进,设计出新的Enclaved Reliable Broadcast (ERB) 和 Enclaved Random Number Generator (ERNG)。这两个基础协议可以被广泛地使用在不同的分布式系统和协议中,例如投票系统,随机漫步,共享密钥生成和密码货币协议。
在我们的同步网络系统中,每个节点都运行在提供SGX的CPU之上。与拜占庭模型中的协议相比,我们的两个基础协议都适量减少了通信开销和回合开销。对于包含N个节点的网络,ERB的通信开销是O(N2),同时容忍少于一半的恶意节点。未优化的ERNG的通信开销是O(N3),如果使用随机抽样,优化的ERNG的开销则可以降到O(N log N)。通过实现和测试我们的系统, 我们的实验结果与理论结果是相符合的。如果感兴趣,大家可以查看我们的论文(https://eprint.iacr.org/2017/180.pdf)和开源代码 (https://bitbucket.org/P2PUsingSGX/p2pusingsgx.)。
作者简介
Yaoqi Jia is a Research Fellow at the National University of Singapore (NUS). He got his Ph.D. in Computer Science from NUS, under the advisement of Zhenkai Liang and Prateek Saxena. His research interests span web security and privacy, network security, distributed systems and applied cryptography. Presently, he is exploring solutions to secure the web infrastructure from two perspectives — networking and systems. For example, addressing consensus and privacy issues in P2P systems and identifying new attacks/vulnerabilities in web browsers. His research work has been published in CCS, USENIX Security, PETS, RAID, ESORICS etc. He has received the Best Paper Award in W2SP (2014) and ICECCS (2014). His work got acknowledged by various vendors including Google and Apple (CVE-2014-7948 for Chrome and CVE-2015-5907 for Safari) and has received attention from the media including Dailydot, Gizmodo and Techspot.