比特信:一种 P2P 消息验证和传输系统

比特信:一种 P2P 消息验证和传输系统

西西 副船长 船龄 8.1年 来源 bitmessage_cn.pdf
 30962  0
比特信:一种 P2P 消息验证和传输系统
Jonathan Warren
bitmessage@jonwarren.org
www.Bitmessage.org
Nov.27, 2012

摘要:我们提出了一个使用低可靠性分布式 P2P 协议的系统,使用户能够安全地发送/接收消息,订阅/广播消息。除了一个相对较短(约 36 字符)的地址,用户无需交换任何其它数据即可确保安全性,不需要任何公钥和私钥的概念即可使用该系统。它还被设计成掩盖非消息内容的数据,如那些通信内容并不包括的消息发送者和接收者的信息。
1、介绍
电子邮件是普及而不安全的。发送加密邮件的能力是有必要的,但目前的解决方案对人们来说难以使用:用户必须通过可信的渠道(如当面或通过电话)交换电子邮件地址和密钥。除非是须特别关注的邮件内容,否则即使那些知道如何使用 PGP/GPG 等工具的用户,也很少努力这样做。新手学习使用这些软件会有一个困难的过程,因为公私钥对之间关系、它们的用途等是陌生的概念。即使用户确实已经使用 PGP/GPG 进行通信,单靠加密并不能隐蔽消息的发送者和接收者。一些国家的政府机构正在收集所有私人的详细呼叫记录,并将它们存储在大型数据库中用于社交网络分析[1] [2] [3]。没有什么能阻止他们收集电话和消息内容,确实有官员告诉纽约时报,美国国家安全局已在从事“过分的收集”[4]。隐藏自己的身份是困难的。即使放弃常用的电子邮件地址,用户也必须连接到一个邮件服务器来发送和接收消息,即暴露自己的 IP 地址。如果人们使用 Tor 连接 Web 服务器,它们的安全依赖于 X.509 系统。该系统已使 HTTPS.X.509 证书当局在最近几年遭受黑客袭击,其中包括在伊朗使用欺诈性的但数字签名有效的证书——该证书由已被黑客攻击的证书颁发机构(DigiNotar)签署——针对其公民使用诸如 Gmail 等谷歌服务进行 man-in-the-middle 攻击[5] [6]。由于 HTTPS 的安全性只与可靠的或合格的证书颁发机构的安全性相同,事实上, Windows或 Firefox 浏览器信任的 CA 证书有超过 1000 个,为数百个不同的组织[7]所拥有,这会对所有用户造成极大困扰。另外,即使如果这些组织中只有一个由政府机构运行,并且如果他们有一定的网络硬件位于用户服务器和目标服务器之间,那么他们将能够随意对看似安全的通信进行有针对性的 man-in-the-middle 攻击。现在所需要的是一种通信协议及其软件:可以对消息进行加密,消息的发送者和接收者对其他人隐蔽,并保证消息的发送者是不能伪造的,没有信任依赖,密钥管理的细节不加重用户的负担。在本文中,我们提出了这样的协议。
2、认证
我们提出了一个系统,用户交换一个公钥的哈希值——也是用户的地址。如果公钥可以通过底层协议,那么它可以很容易地被哈希验证为它预期所属的收件人。由用户交换的数据包括一个版本号(表示转发能力)、一个流数(其目的将在后面讨论)和一个校验和。用 base58 编码 , 并 在 前 面 加 上 识 别 字 符 ( 如 Bitmessage 的 BM ), 例 如 地 址 是 :BM-2nTX1KchxgnmHvy9ntCN9r7sgKTraxczzyE。比电子邮件地址复杂的部分,理所当然的被制作成没有太多的手动输入,也可以制成 QR 码。用户已经证明这一点是可以接受的,比如类似Bitcoin 的地址格式、长度[8]。此地址格式对电子邮件来说是优越的,因为它保证了消息明确来自于一个特定的用户或组织。消息发送者无法被伪造。
3、消息传递
我们提出了一个消息传递机制,类似于比特币的交易和块传输系统[8],但每条消息都有工作证明。用户之间通过运行 Bitmessage 客户端,形成一个 P2P 网络,并尽最大努力转发邮件。为了通过网络发送邮件,必须完成一个哈希碰撞形式的工作证明。工作证明的难度应该和该消息的大小成正比,并应设置成一个典型大小的消息发送须一台普通计算机平均花费四分钟。随着软件进步,工作证明的难度可以调节。每个消息都必须包括时间戳,以防止恶意流量攻击。如果消息的时间戳太旧,网络节点不会转发。如果消息发送者没有收到确认信息,并希望重发消息,他必须更新时间戳并重新计算工作证明。像 Bitcoin 的交易和区块一样,所有用户都将收到所有消息,并尝试用各自的私钥解码每条消息以确认消息接受者是自己。
4、可扩展性
如果所有节点接收所有消息,自然要关注系统的可扩展性。为了解决这个问题,我们建议,在消息发送通过 Bitmessage 网络的数量达到了一定的阈值时,节点开始自我分离到大集群或流。用户开始将只使用流 1,流数被编码到每一个地址,流被布置在一个层次。


一个 Bitmessage 客户端会占用可以忽略不计的的硬盘空间和运算处理能力。一旦开始超过合理阈值,新的地址会在子流里建立,创建这些地址的节点会把自己视为该流中的一个并共同动作。从这时起,如果该节点在父流中没有活动地址,就只需要保持与子流中的节点连接。除了流 1(根流)中的节点,节点应该偶尔连接父流节点以通报它们的存在。每个节点都应该维护一个列表,其中包含它的流和两个子流中的对等节点。要发送一个消息,节点必须首先连接 Bitmessage 地址中的流编码。如果不知道目标流中的任何节点,则连接到最近的父流,然后下载自己所在的两个子流的列表。然后,可以连接到子流,并继续该过程直到到达目标流。在消息发送并收到确认后,可以断开与该流中节点的连接。如果用户回复消息,他们的Bitmessage 的客户端重复同样的过程,连接到原发件人的流。在完成一次该连接过程后,因为发送节点已经保存了流节点列表,第二次连接目标流节点就微不足道了。父流和子流运算公式很简单:


5、广播
因为所有用户会收到所有邮件,该系统自然衍伸支持广播消息。通过口口相传,用户接收他们感兴趣的广播发布的内容。把广播的 Bitmessage 地址加入 Bitmessage 客户端的“订阅”部分,广播的消息会出现在用户的收件箱中,或出现在另一个支持 Bitmessage 协议的其它用途的应用程序中。这将允许任何个人或机构用已经验证的身份,向每个希望收听的人匿名广播。
6、接收器离线时的行为
一个公钥请求的对象,一个公钥,一条个人对个人的消息,或一条广播消息。对象经过整个 Bitmessage 流转播。我们提出节点把所有对象存储两天,然后删除。加入网络的节点向对等节点请求自己没有的对象列表。这样,它将收到两天内所有发向它的转播消息。如果某个节点离线超过两天,发送节点会注意到从来没有收到它的确认,并在另一个两天后重播消息。这将按照指数退避算法永远继续重播消息。在最坏的情况下,如果一个用户处于离线状态 n 天,那么他必须重新在线并保持连接 n 天(或每两天连接一次,保持 n 天),以获得他的所有消息。
7、被动工作模式
有特别偏执的人,希望通过指定一个完全被动模式(标志连接他的公钥)接收邮件而不回复确认。也许,对他明智是,由另一个可能的随机节点代替他的节点回复确认,而其它节点甚至都没有意识到自己已经为他此目的服务。假设 Alice 向 Bradley 发送一条消息,但 Bradley 过于偏执不回复确认,因为他担心攻击者Eve 窃听他的详细 Internet 连接并试图找到他。Eve 可能看到 Bradley 的回复确认从他的机器发出比从其他机器发出的早,这表明他在该位置运行。Bradley 可能反而选择把确认打包进另一条消息,并发送给他的一个朋友或一个随机的 Bitmessage 公钥(假设是 Charlie 的)。如果 Charlie在线,他将立刻在一次广播中同时承认这两个确认。Bradley 也可以选择把他的公钥分发,广播或按他的方式请求公钥。例如,他可以把他的公钥作为确认数据,包含在他发送给朋友的下一条消息中或在一封发给 Charlie 的空白邮件中。这将有助于同时确认收到 Bradley 的消息,并且他公钥的分发无需源于他未加密的互联网连接。即使 Eve 监测 Charlie 的互联网连接,她也不会知道 Bradley 是否真正在该位置(或者可能 Bradley 和 Charlie 可能实际上是同一个人)。事实上,Bradley 可能不在当地,或者 Bradley 和 Charlie 甚至不认识彼此。即使大多数人都不会使用这种操作模式,现实中人们却很可能提供那些似是而非的身份指认或否认。
8、垃圾
现有的工作证明请求可能足以使垃圾邮件制造者不经济。如果不是,有这样几个行为可采用:
◆增加工作证明的难度。
◆为实际使用的公钥,给每个客户端分配x个公钥。确认消息绑定这些公钥,但从来不向用户显示消息。垃圾邮件制造者将需要x倍的计算量来发送垃圾消息。
◆包含冗余位的 Bitmessage 地址,并要求这些位被包含在消息中,从而证明了发送者的
Bitmessage 地址。包含两个字节的冗余位,会使一个 Bitmessage 地址长度延长 9%,但垃圾邮件制造者将需要 65536 倍的计算量。搜索引擎抓取网页寻找 Bitmessage 地址将阻碍该选项。

9、结论
我们已经提出了一个系统,不仅桥接了电子邮件易用性和 PGP/GPG 安全性之间的差距,也隐藏了对“非内容”数据的窥探。不用被迫相信会犯错(或恶意)的中心,因此而保有隐私的获益应该大于抵消使用一个非人本友好的地址所造成的麻烦。广播和订阅功能,对任何希望经常匿名发布内容的人,是特别有用的。搭配 BitTorrent 协议,个人可以发布任何尺寸的内容。

参考文献:
[1]  “Now We Know What the Battle Was About,”  http://www.newsweek.com/id/174602 , 2008
[2] A. Harris,  “Spy Agency Sought U.S. Call Records Before 9/11, Lawyers Say,”
www.bloomberg.com/apps/news?pid=newsarchive&sid=abIV0cO64zJE , 2006
[3] J. Bamford,  “The NSA Is Building the Country’s Biggest Spy Center (Watch What You Say),”
http://www.wired.com/threatlevel/2012/03/ff_nsadatacenter/all/1 , 2012
[4] E. Lichtblau, J. Risen,  “Officials Say U.S. Wiretaps Exceeded Law,”
http://www.nytimes.com/2009/04/16/us/16nsa.html , 2009
[5] E. Mills,  “Fraudulent Google certificate points to Internet attack,”  http://news.cnet.com/8301‐
27080_3‐20098894‐245/fraudulent‐google‐certificate‐points‐to‐internet‐attack/ , 2011
[6] H. Adkins,  “An update on attempted man‐in‐the‐middle attacks,”
http://googleonlinesecurity.blogspot.com/2011/08/update‐on‐attempted‐man‐in‐middle.html ,2011
[7] P. Eckersley, J. Burns,  “An Observatory for the SSLiverse,”
https://www.eff.org/files/DefconSSLiverse.pdf , 2010
[8] S. Nakamoto,  “Bitcoin: A Peer‐to‐Peer Electronic Cash System,”
http://bitcoin.org/bitcoin.pdf ,2008
  • 全部
  • 最佳
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐教程
换一批