Skip to content

关于 ESSE

joeydarko edited this page Apr 19, 2021 · 5 revisions

ESSE 是什么

ESSE(Encrypted Symmetrical Session Engine 加密对称会话引擎),一款开源的加密对等通信系统,允许信息安全地从发送端经由网络直接到达接收端而不用经过第三方服务。

为什么需要 ESSE

当前,我们在使用由互联网公司提供的网络服务来管理自有数据时会出现这样的情况,即便是两台本地设备之间的数据备份操作,依然需要将数据完整地上传至互联网公司提供的服务器端转再下载至本地的目标设备。

what-is-esse-image-1

出现这样情况的主要原因在于这些公司提供的服务是中心化的,任意两台设备之间的通信必须要经过中心节点,这样的中心化的服务模式虽然一定程度上满足了很多个人、家庭和中小企业用户当前的需求,但同时也存在着之前提到的局限性以及一些隐患:

  • 数据安全隐患
    数据在互联网中传输,有可能会经历潜在的监听及审查,侵犯隐私或商业机密;并且存储在服务供应商的服务器上的用户数据也存在被攻击并泄露或被商业滥用的风险;
  • 服务可用性隐患
    服务器维护、网络或者服务器受到攻击又或者是无互联网连接等等情况下都会导致用户暂时性的无法使用服务;而更加严重的是作为用户的我们无法预知哪天公司出于战略调整或商业利益等各种原因就将永久关停服务;

当前主流的互联网服务,无论是电子商务、社交网络还是即时通讯等等,都采用了中心化技术模式。实际上,只要我们选择使用技术服务,无论免费还是付费,便已经处于弱势及被动的地位。过去的几十年间,互联网公司作为信息渠道供应方,通过提供各种中心化的网络服务存储并占有了大量的用户的数据,而作为数据的生产方、使用方的用户却无法真正地拥有自己的数据。

世界正变得越来越以“数据”为驱动,越来越多的用户开始意识到“数据中蕴含着巨大价值”,也变得更加关注自己的数据隐私权,数据所有权仅只归属于互联网公司的现状需要得到改变。一方面,作为既得利益方,互联网公司们并不会主动做出让步和改变,另一方面,推动改变的力量正在酝酿并逐渐壮大。

what-is-esse-image-2

新世纪以来,随着现代密码学的飞速发展,一批基于现代密码学的去中心化的技术产品为很多领域带来了新的可能,有的通过点对点(Peer to Peer)方式进行文件共享,有的通过去中心化的公开帐本为货币和资产的数字化提供了新的思路,而Git无疑是这众多产品中最具启发意义的。

what-is-esse-image-3

作为当前广泛使用的代码版本控制系统,Git的主要设计目标之一是灵活性。在多数情况下,技术团队可以选用一台中心服务器来作为共享的中心节点,所有人都围绕着这个中心节点进行工作;相对的松散节点之间可以通过点对点的互操作;而在一些特定的工作流设计中,用户甚至可以完全按照自己的需要来定制整个工作流。

what-is-esse-image-4

Git之所以能够支持各种非线性开发工作流程,很大程度上是得益于Git的分布式系统中的各节点相互平等,互为服务器和客户端的对等设计。或者说,Git通过更高级的抽象带来了更好的灵活性。

随着5G、Wi-Fi6等服务于物联网的网络技术标准的普及,会有更多的智能设备接入互联网,难以估量的数据及交互通信将充斥网络,这一趋势也对近未来的网络服务的架构模式以及通信安全提出新的挑战。

基于以上对于现实与趋势的判读,我们定义了产品的基本特征,高安全性、高可用性、隐私保护以及最重要的——对称式设计,并且选用了ESSE这样的回文单词为其命名。

ESSE 是如何实现的

ESSE,意为Encrypted Symmetrical Session Engine,定位为一个引擎。引擎部分使用Rust语言实现,跨平台的用户界面使用flutter实现以便使用以及后续维护。以下将简单介绍ESSE的各主要部分。

分布式身份

分布式身份允许个人创建可以用作身份验证或验证交换基础的身份,并存储在一个分布式的,安全的,可信的位置。

我们使基于单词本和安全随机算法生成辅助用户记忆的助记词作为用户的恢复密钥。该助记词再经过安全哈希函数——BLAKE3,算出基于Ed25519椭圆曲线上的唯一公私钥对(私钥可以用来签名信息,公钥用来验证身份),并将其中的公钥作为用户的唯一身份标识,该标识再经过 base58 的编码,生成用户可见的用户DID。在本地安全存储环节,采用用户输入的 PIN 加上本地机器随机生成码混合作为对称加密算法—— AES-256-GCM 的加密密钥。

分布式网络

分布式网络主要负责构建稳定的点对点通道,并通过 x25519 以及 AES-GCM 算法进行信息的加密并传输。这部分实现主要基于我们的开源项目 Chamomile,一款点对点的网络协议,采用双重 DHT 设计(类似于 Kademlia 算法 + IP 物理距离算法)在 TCP/IP 协议之上构建了独立的网络标识和路由系统。

多重身份体系

在当今多设备、多系统的数字化生活中,我们都拥有多重身份。ESSE 允许用户同时使用多重身份,并相互隔离以保护隐私。这部分实现主要基于 TDN 的技术架构,将每个身份作为单独一个分片,同一分片内的多个设备之间可以实现分布式的协同,使用共识算法进行事件排序。从单一设备的角度,设备内的多个身份(分片)组织起来与外部设备进行层与层的交互。

结论

我们的世界正在经历一些深层次的变化,有些变化是积极的,但也有消极的存在。如果我们希望一些普世价值的东西存在——比如隐私权——我们将不得不真正地行动起来。否则这些东西就不存在。

我们希望通过真实地拥有数据进而推动数据隐私的保护。

  • Architecture
  • KeyStore
  • P2P Network
  • Distributed Identity (DID)
  • Distributed Devices
  • Distributed Notes & Files
  • Distributed Storage & Synchronization
  • Built-in IM Application
  • Built-in Group Chat Application
  • Built-in Domain Application
  • Built-in Wallet Application
  • Built-in Robot assistant Application
  • Multi-identity System
  • Support platforms
Clone this wiki locally