主页 > imtoken限制中国用户该咋办 > 基于区块链的邮件收发系统制作方法

基于区块链的邮件收发系统制作方法

基于区块链的电子邮件收发系统的制作方法

[0001]

本发明涉及电子邮件收发技术,尤其涉及一种基于区块链的电子邮件收发系统。

背景技术:

[0002]

随着移动互联网发展的深入,智能手机、平板电脑等移动设备在日常生活中扮演着重要的角色,传统的办公模式逐渐转变为更加高效的移动办公模式。 作为协同办公行业不可或缺的一部分,移动办公逐渐成为主流办公方式。 建设移动办公平台,即建设统一一体化的移动门户平台,自上而下推进移动办公的应用,势必成为企业的必然选择。 这一目标的实现必须在组织架构、文件管理、消息管理、应用管理等方面建立强有力的支持。 其中,统一文件管理,广义上包括但不限于公告、公文、邮件等电子文件在移动办公应用中的传输和存储,涉及日志、审批、公告、文档、计划和邮箱。 在移动办公系统应用过程中,当其背后的服务支撑系统和企业内网完全暴露在互联网上时,如何实现电子文档的真实性、完整性、可靠性和可用性的长期保障变得尤为重要。 移动办公带来便利的同时,也带来了巨大的安全压力。

技术实现要素:

[0003]

本发明的目的在于提供一种基于区块链的电子邮件收发系统,以解决电子邮件传输中的真实性、完整性、可靠性和可用性问题。

[0004]

根据本发明的一个方面,提供了一种基于区块链的邮件发送系统,包括:

[0005]

邮件客户端,用于向邮件服务器发送包含发件人、收件人和邮件内容的邮件;

[0006]

邮件服务器对收到的邮件内容进行解析,得到邮件的纯文本、邮件的超文本、嵌入的资源和邮件的附件四部分; 将邮件的明文、邮件的超文本、嵌入资源和附件分别通过加密算法Encrypt加密,将加密后的密文分别上传到ipfs网络;

[0007]

ipfs网络用于存储接收到的密文,并将生成的密文哈希返回给邮件服务器;

[0008]

区块链平台用于接收和存储邮件服务器使用密文哈希构建的交易信息。

[0009]

优选地,ipfs网络在接收到上传的密文后,还可以检索是否存储了相同的密文; 如果已经存储过相同的密文,则不再存储接收到的密文,并返回对应的密文。 密文散列; 如果没有存储相同的密文,ipfs网络存储收到的密文并返回相应的密文哈希。

[0010]

优选地,ipfs网络将密文分成若干小部分,然后分散存储在哈希表条目记录的各个节点中。

区块链技术与比特币_比特币系统接收区块链流程_区块链比特币关系

[0011]

优选的,ipfs网络将密文b分解成几个小文件b1,b2,b3,

...

bn,并计算每个小文件b1,b2,b3,

...

bn的哈希值,从而构造文件对应的有向无环图; 有向无环图的根节点的哈希值就是密文b的哈希值,有向无环图的叶节点的哈希值对应各个小文件b1,b2,b3,

...

bn 的哈希值。

[0012]

优选地,ipfs网络生成的密文哈希值包括:邮件明文密文哈希值、邮件超文本密文哈希值、嵌入资源密文哈希值和附件密文哈希值。

[0013]

优选地,邮件服务器利用密文哈希构造的交易信息包括:发件人签名; 发件人的公钥; ipfs网络生成的密文哈希; 以及收件人在区块链中的钱包账户。

[0014]

根据本发明的另一方面,本发明提供了一种基于区块链的邮件接收系统,包括:

[0015]

邮件客户端,用于向邮件服务器发送接收邮件的接收指令;

[0016]

用于存储交易数据的区块链平台,包括电子邮件通知消息的密文哈希;

[0017]

ipfs网络用于保存邮件的密文和邮件密文的密文hash;

[0018]

邮件服务器用于检索与收件人钱包账户在区块链平台中是否有新的交易数据; 如果检索到新的交易数据,则邮件服务器解析交易数据,从区块链平台Xi中获取密文哈希; 使用从区块链中获取的密文哈希,从ipfs网络中获取对应的密文; 解密密文,并将解密后的密文返回给邮件客户端。

比特币系统接收区块链流程_区块链比特币关系_区块链技术与比特币

[0019]

优选地,ipfs网络根据来自邮件服务器的密文哈希值检索对应的密文,得到明文密文、超文本密文、嵌入资源密文和附件密文; 将检索到的明文密文、超文本密文、嵌入资源密文和附件密文发送给邮件服务器。

[0020]

优选地,邮件服务器对ipfs获取的明文密文、超文本密文、嵌入资源密文和附件密文进行解密,得到明文、超文本、嵌入资源和附件。

[0021]

优选地,邮件服务器将获取的纯文本、超文本、嵌入资源和附件组装成电子邮件,并将组装后的电子邮件返回给邮件客户端。

[0022]

与现有技术相比,本发明的有益技术效果是:邮件正文和邮件附件加密存储在ipfs中,其文件去重特性大大降低了物理存储成本,保证了邮件数据的机密性; 交易数据以邮件通知消息的形式存储在区块链网络中,保证了身份验证的有效性; 区块链和ipfs的结合结合了高效存储和可信存储的优势。

图纸说明

[0023]

图1是本发明的电子邮件收发系统的架构图;

[0024]

图2为本发明的电子邮件发送流程图;

[0025]

图3为本发明的电子邮件接收流程图;

[0026]

图4为本发明创建钱包账户(即钱包地址)的流程图。

详细说明

[0027]

图1示出了本发明的基于区块链的电子邮件发送和接收系统。 系统采用前后端分离的软件系统架构,主要由邮件客户端、邮件服务器、ipfs(分布式版本文件系统)和区块链平台(即区块链网络)四部分组成。

[0028]

邮件客户端是指Web应用端或第三方客户端(如foxmail、outlook、网易邮箱大师),负责查看、编辑、检索和统计邮件。

比特币系统接收区块链流程_区块链技术与比特币_区块链比特币关系

[0029]

邮件服务器包括基础接口服务模块、邮件协议服务模块、区块链接口服务模块和ipfs接口服务模块。其中,基础接口服务模块是邮件服务器的主要服务,负责接收,分发和响应来自邮件客户端(尤其是网络应用程序)的请求,特别是根据电子邮件的基本格式(mime 格式)

安装和分析电子邮件内容; 邮件协议服务模块是邮件服务器的核心服务,支持smtp、lmtp、pop3、imap、jmap等多种邮件标准协议,负责收发邮件; 区块链接口服务模块是区块链平台结合应用特点,在区块链平台上进行API优化和服务封装; ipfs接口服务模块是ipfs的接入服务,结合应用特点,对ipfs进行了API优化和服务封装,特别是加密/解密算法的引入,有效保证了ipfs存储数据的机密性; 消息队列服务集成消息中间件,重点解决发送邮件过程中高并发数据在链上存储的问题。

[0030]

图2显示了本发明的基于区块链的电子邮件发送系统发送电子邮件的一种流程,包括:

[0031]

邮件客户端向邮件服务器发送包含发件人、收件人和邮件内容的邮件;

[0032]

邮件服务器解析接收到的邮件内容,得到四部分:邮件纯文本、邮件超文本、嵌入资源和邮件附件;

[0033]

邮件服务器通过加密算法分别对邮件的明文、邮件的超文本、嵌入资源和附件进行加密,并将加密后的密文分别上传到ipfs网络;

[0034]

ipfs网络存储接收到的密文,并将生成的密文哈希返回给邮件服务器;

[0035]

邮件服务器使用密文哈希构造交易信息,并将交易信息发送给区块链,从而将密文哈希存储在新的区块中。

[0036]

本发明的邮件发送系统的ipfs网络接收到上传的密文后,检索是否存储过相同的密文; 如果存储过相同的密文,则不再存储接收到的密文,并返回对应的密文哈希; 如果没有存储相同的密文,ipfs网络存储收到的密文并返回相应的密文哈希。

[0037]

本发明的邮件发送系统的ipfs网络将密文分成若干小部分,然后分散存储在哈希表条目记录的各个节点中。 具体来说,ipfs网络将密文b分解成几个小文件b1,b2,b3,

...

bn,计算小文件b1,b2,b3,

...

区块链技术与比特币_比特币系统接收区块链流程_区块链比特币关系

bn的哈希值,从而构造文件对应的有向无环图,有向无环图的根节点的哈希值为b文件的哈希值,有向无环图的叶子节点的哈希值的节点对应小文件b1,b2,b3,

...

bn 的哈希值。

[0038]

ipfs网络生成的密文哈希包括:邮件明文密文哈希、邮件超文本密文哈希、嵌入资源密文哈希、附件密文哈希。

[0039]

邮件服务器使用密文哈希构造的交易信息包括:发件人签名; 发件人的公钥; ipfs网络生成的密文哈希; 收款人的钱包地址和发件人的钱包地址。

[0040]

更具体地,本发明的电子邮件发送系统的电子邮件发送过程如图2所示,电子邮件发送的过程为:(1)用户在电子邮件客户端(web应用端或第三方)编辑电子邮件内容。 party client),并将邮件发送给邮件服务器的邮件协议服务; (2)邮件服务器的邮件协议服务中的smtp服务接收邮件,按照mime标准格式解析邮件,解析成邮件明文, (3)邮件服务器的ipfs接口服务加密邮件的明文、超文本、嵌入资源和附件分别通过AES加密算法,分别加密。 正文上传到ipfs网络; (4) ipfs网络收到上传的密文后,首先查找密文是否保存过,如果保存过,ipfs网络将不再保存密文。 如果不存储,密文会通过特殊算法分成几个小部分,然后分发到各个节点(ipfs中的容错机制会保证数据被复制到足够数量,并存储在不同的节点中) .但是无论是否存储密文,都必须返回密文哈希; (5) 返回密文哈希; (6) 邮件服务器的邮件协议服务根据返回的密文哈希构造交易信息(交易信息包括但不限于邮件

内容、发件人和收件人电子邮件地址、发送时间)。 (7) 邮件服务器根据构造的交易信息向区块链平台发起交易请求; (8) 区块链将交易结果返回邮件服务器; (9)邮件服务器向邮件客户端返回邮件发送结果。

[0041]

图3为本发明一种基于区块链的邮件接收系统的邮件接收流程,包括:

[0042]

邮件客户端向邮件服务器发送接收邮件的命令;

[0043]

邮件服务器检索区块链中是否有与收件人钱包账户的新交易数据;

[0044]

如果检索到新的交易数据,邮件服务器解析交易数据比特币系统接收区块链流程,从区块链中获取密文哈希;

[0045]

邮件服务器使用从区块链中获取的密文哈希,从ipfs网络中获取对应的密文;

[0046]

邮件服务器对密文进行解密,并将解密后的密文返回给邮件客户端。

区块链比特币关系_区块链技术与比特币_比特币系统接收区块链流程

[0047]

从ipfs网络获取对应的密文包括:ipfs网络根据来自邮件服务器的密文hash获取对应的密文,得到明文密文、超文本密文、嵌入资源密文和附件密文; ipfs 网络将检索到的明文密文、超文本密文、嵌入资源密文和附件密文发送给邮件服务器。

[0048]

邮件服务器对ipfs检索到的明文密文、超文本密文、嵌入资源密文和附件密文进行解密,得到明文、超文本、嵌入资源和附件。 邮件服务器将获取的纯文本、超文本、嵌入资源和附件组装成电子邮件,并将组装后的电子邮件返回给邮件客户端。

[0049]

更具体的,本发明的邮件接收系统的邮件接收流程如图3所示,邮件的接收流程为: (1)用户手动或定时接收邮件,并发送接收指令到邮件协议服务(邮件服务器); (2) 邮件协议服务(邮件服务器)中的imap/pop3/jmap服务收到指令后,检索是否有新增邮件账户Mail,即调用区块链接口服务(邮件服务器)进行获取邮箱账户对应的钱包账户是否有新的交易数据; (3) 邮件服务器向区块链平台请求交易数据; (4) 区块链平台 平台检索邮箱账户中是否有新的交易数据,并将交易数据返回给邮件服务器; (5) 邮件服务器的邮件协议服务收到查询结果后(假设有新的交易数据,n>0),对这组交易数据进行解析,根据密文哈希,从中获取邮件明文数据邮件服务器的ipfs接口服务; (6)邮件服务器的ipfs接口服务根据密文哈希从ipfs网络获取密文数据; (7) ipfs网络根据取回密文哈希,将对应的密文数据返回给ipfs接口服务; (8)邮件服务器对ipfs接口服务收到的密文数据进行解密,得到邮件的明文数据; (9) 邮件服务器的邮件协议 该服务根据获取的邮件明文数据(包括明文、超文本、嵌入资源和附件明文数据)组装成mime格式的邮件; (10)邮件服务器将组装后的邮件返回给邮件客户端。

[0050]

本发明利用区块链技术的分布式存储、点对点传输、共识机制和加密算法的特点,解决了目前邮件系统中数据安全存储的问题; 利用ipfs的内容可寻址、版本化、分布式存储和传输等特性,解决当前邮件系统中数据冗余存储的问题。 每个数据块都包含一个块头(header)和一个块体(body)。

[0051]

区块头主要包含前一个区块的哈希值(地址)、时间戳、随机数、当前区块的哈希值(地址)、默克尔树的根值、当前区块的高度等信息.

[0052]

区块体主要包含交易计数和交易明细。 交易明细是区块链系统中的账本,每笔交易都会永久记录在数据块中,任何人都可以查看。 所有的交易都会通过默克尔树的哈希过程生成一个唯一的默克尔根值,记录在区块头中。区块体中的默克尔树会对每笔交易进行校验

数字签名,保证每笔交易不可伪造比特币系统接收区块链流程,不存在重复交易。 每条交易记录包含引用交易的哈希值(merkle节点值)、交易记录索引号、交易记录数字签名、支付钱包地址、支付金额、收款钱包地址、收款金额、交易时间戳和交易大小等详细信息。 每条交易记录都有一个merkle节点值,它是整个merkle树的一部分,决定了每个地址都不能被复制或伪造。 哈希过程如图4所示,任意长度的明文数据经过哈希过程后,输出一个哈希值(也称散列值)保存在区块体中,邮件密文保存在ipfs中,而ipfs在存储密文时首先检查密文是否存储过,从而防止数据重复存储,解决了数据冗余存储的问题。

[0053]

在本发明的邮件接收系统中,在邮件客户端向邮件服务器发送查询是否有新邮件的命令后,邮件服务器通过查询对应的钱包账户是否有新的交易数据来判断是否有新的交易数据。邮件帐户有新的交易数据。 邮件。

[0054]

发送方和接收方钱包地址(即钱包账户)的创建如图4所示,具体步骤为:(1)首先使用随机数生成器生成“私钥”。 (2)“私钥”经过secp256k1算法处理生成“公钥”。 (3)分别对“公钥”进行sha256计算和ripemd160计算,得到“公钥哈希”。 (4)在“public key hash”头部连接一个字节地址版本号(对于比特币网络的pubkey地址,这个字节为“0”),然后对其进行两次sha256操作,即第4个字节结果作为“公钥散列”的校验值,最后连接; (5)将上一步的结果进行base58编码,得到“钱包地址”。

[0055]

为了证明邮件确实是由发件人签名发起的,并确定邮件信息的完整性,本发明提出使用数字签名来避免上述事件的发生。 本发明使用私钥对邮件进行签名的过程,具体过程如下: (1) 交易的原始数据包括“收件人钱包地址”和“哈希密文”,但仅有这些是不够的,由于无法证明交易发起方有权使用“发送方钱包地址”,因此需要用发送方私钥对原始数据进行签名; (2) 在原始交易数据中加入“发送方签名”和“发送方公钥”,生成正式的交易数据,可以广播到区块链网络,发送邮件。

[0056]

另外,本发明使用公钥来验证签名,将交易数据广播到区块链网络,节点将验证交易数据的合法性,包括签名的验证。 如果验证成功,则邮件可以成功地从“发件人钱包地址”转移到“收件人钱包地址”。

[0057]

以上对本发明进行了详细说明,但本发明不限于此,本领域的技术人员可以在本发明的原理的基础上进行各种变型。 因此,凡依据本发明的原理所作的任何修改,均应理解为属于本发明的保护范围。