1. 首页
  2. 技术分享

用IPFS和以太坊进行端到端加密

Keyspace是一种不受信任的端到端加密协议,作为AirSwap空间的一部分发行。

Keyspace是一种不受信任端到加密协议,作为AirSwap空间的一部分发行。用IPFS和以太坊进行端到端加密

我们需要什么

AirSwap是一个混合的链上/链下协议,它需要链下对等消息和链上身份(以太坊地址和私钥)的协调。如果我在网上与声称控制以太坊地址的人聊天,我需要能够通过密码验证他们说的是真的。

我们称之为第一个需要链外/链上身份绑定。

其次,由于在线通信在默认情况下是公开的,参与者在对等网络中相互通信需要能够对其他人隐藏他们的消息,而无需信任中央机构来协调加密(公钥注册)。

我们称之为无信任端到端加密。

无信任的端到端加密启用了另一个需要的功能。如果Alice正在向Bob发送消息,而Bob处于脱机状态,那么Bob在回到联机状态时应该能够接收到消息,即使Alice不再是联机状态。这意味着第三方需要能够在过渡期间保存等待传递的消息。如果这些信息是加密的,那么除了鲍勃和爱丽丝之外,没有人能够阅读它们,即使它们是由第三方存储的。

我们称之为需要加密的离线交付。

证明您控制以太坊地址的行业标准是签署某人发送给您的挑战。你的签名可以用来证明所有权。但是,如果您同时与许多同行通信(与AirSwap协议的设计一样),需要持续的签名,在使用类似钱包的MetaMask, Ledger, 或 Trust Wallet时是一种乏味的用户体验。在使用纯文本私钥时,可以通过编程方式对消息进行签名,但这会增加被黑客攻击的风险。如果我们能够将以太坊私钥安全地保存在钱包内,并且仅将其验证身份的能力委托给可存储在内存中的另一个私钥,那么我们可以自动对消息进行签名和解密,而无需用户交互,也不会使资金面临更大的风险。

我们将称之为所需的功能委派的程序权限

随着最近AirSwap Spaces的推出,我们已经将一个不仅能满足所有这些需求的系统投入生产,而且在安全性和便利性方面为任何端到端加密的消息服务设定了一个新的行业标准。

我们创造了什么

AirSwap密钥空间:无信任端到端加密服务
为了说明这个系统中涉及的组件,我将展示它们如何一起工作;在密钥创建/恢复期间和加密通信期间。用IPFS和以太坊进行端到端加密

密钥创建工作如下:

  1. 用户为其地址唯一的字符串签名,以生成164个字符的十六进制字符串,这叫做签名种子。签名的种子充当私钥来加密PGP密钥对中的PGP私钥。
  2. 该应用程序使用openpgp.js库生成一个新的用签名种子加密的pgp密钥对。
  3. 用户使用加密的PGP私钥和PGP公钥将JSON BLOB存储为IPFS上的固定文件。
  4. 然后,用户将IPFS散列存储在Airswap pgp契约中,该契约将用户地址映射到IPFS散列,在该散列中可以访问其公钥(并且可以恢复加密的私钥)
  5. 一旦IPFS哈希注册事务成功,用户就可以发送和接收加密消息了。
  6. 如果用户想要在新的上下文中访问他们的加密消息(即在不同的计算机上使用他们的分类帐钱包),他们可以使用钱包签名重新生成他们的签名种子,并使用他们的签名种子解密存储在IPFS上的PGP私钥。

这是Alice和Bob之间在活动使用期间系统的工作方式:

  1. airswap.io上,所有直接消息都需要加密,所以当Alice与Bob开始新的聊天时,应用程序会在合同中查找Bob的pgp公钥的IPFS散列。
  2. 在向Bob的以太坊地址发送消息之前,该应用程序使用Bob的公钥对消息进行加密。它还附加了一个用Alice的公钥加密的消息副本,这样她可以在以后解密发送的消息。
  3. 当Bob收到一条加密消息时,应用程序用他的pgp私钥解密(用签名的种子解密后)

这将启用安全消息传递,即使在分散的公共上下文中,消息仍然是加密的。

使用这种方法获得的主要用户体验之一是,为了访问他们的加密消息,所有用户需要的都是控制以太坊私钥。用户可以拥有一个账本硬件钱包,并将其与多台计算机一起使用,而且,用户仍然可以在新设备上访问加密信息。在功能上,我们使用以太坊私钥签名的entropy(平均信息量)为PGP“大脑钱包”生成足够随机的秘密。

对于更技术性的,可以在开发人员repo中查看keyspace系统的工作实现。

原创文章,作者:三色団子,如若转载,请注明出处:https://ipfsdrop.com/tech/yongipfsheyitaifangjinxingduandaoduanjiami/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

(+86)18301922335

在线咨询:点击这里给我发消息

邮件:haskell@freechains.cn

工作时间:7×24小时

QR code