CN116170401A - 基于区块链的分布式邮箱系统 - Google Patents
基于区块链的分布式邮箱系统 Download PDFInfo
- Publication number
- CN116170401A CN116170401A CN202310169176.9A CN202310169176A CN116170401A CN 116170401 A CN116170401 A CN 116170401A CN 202310169176 A CN202310169176 A CN 202310169176A CN 116170401 A CN116170401 A CN 116170401A
- Authority
- CN
- China
- Prior art keywords
- mailbox
- service
- name
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000008676 import Effects 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 57
- 238000000034 method Methods 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 32
- 238000012795 verification Methods 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 3
- 238000007429 general method Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 13
- 238000012423 maintenance Methods 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 150000003839 salts Chemical class 0.000 description 2
- 101001094649 Homo sapiens Popeye domain-containing protein 3 Proteins 0.000 description 1
- 101000608234 Homo sapiens Pyrin domain-containing protein 5 Proteins 0.000 description 1
- 101000578693 Homo sapiens Target of rapamycin complex subunit LST8 Proteins 0.000 description 1
- 102100027802 Target of rapamycin complex subunit LST8 Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于区块链的分布式邮箱系统,该系统包括邮箱服务单元、邮箱服务网络信息配置单元、客户端初始化单元和客户端帐号导出导入单元,所述的邮箱服务单元用于通过区块链注册、续费和/或抢注邮箱服务;所述的邮箱服务网络信息配置单元用于将区块链上的邮箱服务唯一名称所有者的邮件服务软件的相关配置写入协议合约中;所述的客户端初始化单元用于对客户端进行初始化;所述的客户端帐号导出导入单元用于在邮箱的客户端的区块链账本创建成功之后,将私钥信息以加密的形式存储在本地,当用户需要对该私钥信息进行备份时,所述的客户端帐号导出导入单元用于将该私钥信息导出。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种基于区块链的分布式邮箱系统。
背景技术
现有技术中的邮件系统通过POP3、SMTP等协议进行邮件的收发,通过明文存储的方式存储邮件的文本内容和附件内容。
现有技术中这种邮件系统存在的问题包括:
1、当前电子邮件的内容对网络设备不安全,存在伪造发件人、收件人和服务器的安全隐患,以及数据内容被篡改和窃听的风险。
2、当前邮件数据对于邮件服务器是透明可见的,服务器和非法入侵服务器的设备均可以获取邮件数据内容。
3、当前邮件系统的账号与对应的密码都由服务器存储和管理,存在泄露和被伪装攻击的问题。
4、当前邮件系统存在垃圾邮件攻击问题。
发明内容
本发明旨在提供一种基于区块链的分布式邮箱系统,所要解决的技术问题至少包括如何杜绝网络设备对邮件内容的监控和服务器身份伪装,如何杜绝密码泄露和服务器数据泄露,以及如何防止数据内容泄露和服务器窥探邮件内容,杜绝垃圾邮件攻击。
为了实现上述目的,本发明提供一种基于区块链的分布式邮箱系统,包括邮箱服务单元、邮箱服务网络信息配置单元、客户端初始化单元和客户端帐号导出导入单元,所述的邮箱服务单元用于通过区块链注册、续费和/或抢注邮箱服务;所述的邮箱服务网络信息配置单元用于将区块链上的邮箱服务唯一名称所有者的邮件服务软件的相关配置写入协议合约中;所述的客户端初始化单元用于对客户端进行初始化;所述的客户端帐号导出导入单元用于在邮箱的客户端的区块链账本创建成功之后,将私钥信息以加密的形式存储在本地,当用户需要对该私钥信息进行备份时,所述的客户端帐号导出导入单元用于将该私钥信息导出。
优选地,所述的私钥信息包括账本信息及附加信息。
优选地,所述的客户端帐号导出导入单元还用于在用户更换手机或者手机丢失或者邮箱客户端数据被清空的情况下,根据备份的数据信息,以及相应的口令,客户端按照区块链钱包的通用办法导入用户账本的私钥,并以加密的形式存储在客户端本地。
所述的邮箱服务单元通过区块链注册、续费和/或抢注邮箱服务的具体流程包括:
S1.1:邮件服务提供者创建区块链账本,通过口令和制定的区块链算法,生成账本的私钥与区块链账本地址;
S1.2:通过互联网渠道或者区块链渠道,获取可信值,使得可信值合约中的可信映射表,生成关于本服务对应的区块链账本地址的可信值;
S1.3:邮件服务提供者通过区块链账本,向协议合约发起请求,该请求包含:一个邮箱服务唯一名称,一个该邮箱服务唯一名称所有者的区块链账本地址,以及希望拥有该邮箱服务唯一名称的时间长度;该请求中邮箱服务唯一名称是以英文小写字母组成的字符串,不包含任何除26个小写英文字母之外的任何字符;对邮箱服务提供者发起请求的区块链账本地址简称为请求者地址,把邮箱服务唯一名称所有者的地址简称为所有者地址;
S1.4:当智能合约接收到该请求之后,首先检查字符组合的有效性,如果存在非英文小写字符,则该请求返回失败;如果请求中名称字符合法,则检查该名称是否已经存在于名称映射表中,如果不存在,则按照新注册服务处理,如果存在该名称的映射数据,首先检查映射表中的账本地址与所有者是否一致,如果一致则按照续订服务处理;如果不一致,则检查到期日期是否小于当前区块链时间,如果是则按照抢注服务处理;如果否,则返回该名称已经被占用的错误提示,流程结束;
S1.5:如果上述检查均合法,则根据可信鉴权合约地址查询请求者地址在可信值合约中的可信值的数值,比较该可信值的数值是否大于所需费用值;所需费用值等于名称服务价格乘以希望拥有该名称的时间长度,如果所述的可信值的数值不满足大于所需费用值,则提示可信值不足,流程结束;
S1.6:如果所述的可信值的数值满足大于所需费用值,协议合约请求可信值合约将可信值映射表中请求者地址对应的可信值减去所需费用值,将可信值映射表中可信值合约地址对应的可信值增加所需费用值;可信值合约将检查协议合约的地址是否在协议管理职能合约地址列表中,如果在所述的协议管理职能合约地址列表中,则该请求操作成功;否则提示无权操作,流程失败;
S1.7:可信值完成从请求者地址到协议合约地址的转移后,修改协议合约中的名称映射表的数据:《1》如果是注册服务,则新增一条数据,其中账本地址为所有者地址,到期日期为当前区块链时间加希望拥有该名称的时长;同时邮箱服务配置映射表中,增加该名称对应的数据,其中累积可信值等于所需费用值,管理员地址列表中增加所有者地址;《2》如果是续订服务,则只修改到期日期,如果到期日日期大于当前区块链时间,则新的到期日期等于当前到期日期加希望拥有该名称的时长,否则新的到期日期等于当前区块链时间加希望拥有该名称的时长;《3》如果是抢注服务,则首先清空邮箱服务配置映射表中的配置管理员地址列表和配置条目列表的数据,然后再执行《1》中的操作。
所述的客户端初始化单元对客户端进行初始化的具体流程包括:
S2.1:创建区块链钱包,通过口令创建区块链账本,并拥有账本地址,账本私钥通过口令加密并存储在客户端本地,用户能够通过口令将加密后的私钥导出客户端系统自行备份;
S2.2:注册邮箱用户:用户在拥有账本地址之后,选择邮箱服务提供者的系统,通过该系统注册成为该提供者名称下的用户,该系统为用户提供本系统内的用户名以及其他邮件通讯配置信息,该用户名称在该邮箱服务提供者的系统内是唯一的,邮箱用户名称的字符范围由服务提供者限定;当选定的用户经过服务提供者的合法检测后,用户需要提供在S2.1中创建的区块链账本地址,邮箱服务提供者需要将用户名与该区块链账本地址进行绑定并对外提供查询服务;最终用户对外提供的邮箱用户的格式为:用户名@邮箱服务唯一名称,该格式的用户名称以下简称邮箱名全称;除用户名与账本地址两项以外的其它信息称为用户附加信息,附加信息由邮箱服务系统自定义,用户附加信息仅对用户本人可见;
S2.3:当用户拥有邮箱名全称之后,需要在邮箱客户端同步该邮箱用户的信息,首先用户输入邮箱名全称,客户端首先解析邮箱服务唯一全称,通过该邮箱服务唯一全称查询区块链的协议合约中的邮箱服务配置映射表的信息,如果该信息为空,则提示该邮箱名全称不合法,过程结束;
S2.4:查询到该名称对应的服务配置信息后,客户端根据网络类型和所属区域加密算法进行判定,选择符合当前网络和地区的最佳的服务节点;选择逻辑由本协议的客户端开发者进行判定;如果选择节点失败,提示无有效的服务节点,过程结束;
S2.5:选择合适的邮箱服务节点后,根据邮箱服务配置映射表的相关配置,客户端向服务节点发起用户信息的请求,该请求包含:邮箱名全称、账本地址、UNIX时间和附加信息;账本私钥对以上信息按照配置条目中的签名算法进行数字签名;
S2.6:服务节点接收到用户信息查询请求后,首先检查UNIX时间,对于超过当前时间一定阈值的请求丢弃,该阈值由服务节点自行配置;然后根据签名算法进行签名验证,签名验证通过后,服务节点查询该邮箱名全称对应的用户附加信息,并根据邮箱服务配置映射表中的加密算法对以上信息进行加密,然后发送给邮箱客户端;
S2.7:邮箱客户端收到加密后的用户附加信息之后,根据S2.4中查询到的配置条目下的加密算法和网络通讯公钥对数据进行解密;解密成功之后,邮箱客户端存储该信息,并定时更新该信息,更新周期由开发者自定义;同一个账本能够管理多个邮箱名全称。
优选地,所述的客户端帐号导出导入单元在导入用户账本的私钥成功之后,用户通过手动输入该用户账本管理的邮箱名全称,手动输入的过程从客户端初始化中的S2.4开始。
优选地,所述的分布式邮箱系统发邮件的具体流程包括:
S3.1:通过邮箱客户端发送邮件时,需要输入收件人的邮箱名全称,客户端首先分析邮箱服务唯一名称,根据收件人的服务提供者相关的配置信息选择合适的邮箱服务节点,并发出查询请求,查询的内容包括:客户端区块链账本地址、UNIX时间、待查询邮箱名全称的列表以及账本私钥对以上信息的签名;
S3.2:邮箱服务节点接收到收件人的信息请求之后,校验Unix时间,对于超过当前Unix时间一定阈值的请求直接丢弃,阈值由服务节点自行设定;查询每个邮箱名全称对应的邮箱用户名以及对应的区块链账本地址,查询成功之后组装响应包发送给客户端;
S3.3:邮箱客户端接收到服务器响应数据之后,首先检验Unix时间,对于超过一定阈值的响应包,客户端直接丢弃,然后根据服务配置信息中的相关公钥和签名算法进行签名验证,签名验证通过后,客户端将该响应数据存储在本地,下次发送邮件时,检查缓存以及TTL值,只要缓存中存在且TTL值未过期,则直接使用该账本地址,不再进行网络查询;
S3.4:客户端获取收件人信息之后,书写内容并添加相关附件;邮件准备完成之后,客户端首先发送邮件头数据内容到发件人所在的邮箱服务节点;在客户端准备好邮件之后,发起邮件头内容发送请求,请求的内容包括:本地账号地址,Unix时间以及加密后的邮件头数据;其中邮件头加密数据是通过客户端账号私钥与邮箱服务节点的相关配置信息生成的加密密钥进行加密的;
S3.5:本地邮箱服务器节点接收到邮件头发送请求后,首先检查发件信息的Unix时间,对于超出一定阈值的邮件,服务器可以选择放弃响应,也可以提示客户端重新发送,阈值由服务节点自行定义;然后查询邮件发送人账本地址是否为本系统地址,如果不是本系统管理的账本地址,则提示错误,流程结束;如果满足条件,则根据发件人账本地址与本服务节点的账本私钥,解密邮件头数据内容;解密成功后,服务器检查发件信息的用户名是否为本系统用户且账本地址与本地存储一致,如果不一致,提示客户端邮件更新相关信息,流程结束;如果检查通过则进行签名验证,如果验证失败则提示客户端验签失败,流程结束;
S3.6:本地邮箱服务器节点解析收件人邮箱名全称中的邮箱服务唯一名称,如果该邮箱服务唯一名称与本节点服务对应的邮箱服务唯一名称一致,则说明该收件人为本系统内用户,校验功过,转到S3.7,如果不一致,则邮箱服务节点查询协议合约中该邮箱服务唯一名称对应的名称映射表,判断该邮箱服务唯一名称是否过期,如果该邮箱服务唯一名称已经过期,提示收件人不可达,流程结束;查询该邮箱服务唯一名称对应的配置信息列表,如果没有有效的配置信息条目,提示收件人不可达,流程结束,有效配置信息检查包括:配置有效截止日是否过期,所属区域是否在本邮件服务器节点可达地区,网络地址类型是否与当前网络一致;以上信息服务器能够存储在本地并根据自身设定进行定期更新;
S3.7:如果邮箱服务器节点校验邮件头失败,则客户端根据展示提示信息,重新发送邮件,跳转到S3.4,如果邮件校验成功,则通知客户端提交邮件体,通知内容包含邮件头的发件信息的哈希值字段;客户端根据哈希值提交对应的邮件体到服务节点,服务节点接收到邮件体之后,计算邮件体的哈希值,并与邮件头的哈希值进行比较,如果对比失败,提示邮件体传输失败,客户端需要根据邮件头哈希值重新传输,传输失败次数超过一定阈值后,客户端重新创建邮件的并跳转到S3.4;传输成功之后,邮件服务器节点负责存储本邮件,并返回客户端邮件发送成功的提示;
S3.8:如果收件人列表中的邮箱用户名不包含非本系统的邮箱用户,则流程结束;否则需要解析收件人的邮箱服务唯一名称,根据S3.6中查询到的信息,向所有的收件人邮箱服务节点发送该邮件的邮件头信息,并分别记录不同收件邮箱服务节点的发送次数;
S3.9:收件邮箱服务节点接收到该邮箱头信息后,根据请求中的发件服务器节点账本地址,分别查询协议合约和可信值合约,获取该节点对应信息进行校验;首先根据唯一名称找到网络配置信息和到期日期,并将该信息缓存在本地并定期更新该信息;如果该唯一名称已经过期,则发送错误信息给发件服务器节点;流程结束;否则检查该唯一名称对应的累积信任值,收件节点服务器能够根据该累积信任值判断发件服务的信用等级,根据不同的信用等级来评判发送垃圾邮件的风险;同时以该累积信任值为基础,识别发邮件服务者是垃圾邮件发送者的风险;如果判定发送服务器节点为垃圾邮件发送者,则返回相应错误提示,流程结束;如果发件服务器节点在多次判定为垃圾邮件发送者之后依然发送邮件,则收件服务器能够将发件服务器节点的相关IP和配置列入黑名单,直接拒绝网络协议握手,而不再解析邮件发送请求的内容;
S3.10:如果邮件发送请求的邮箱服务器唯一名称对应的信息校验成功,则本收件节点根据发件节点服务器的账本地址、IV值和相关的加密算法配置信息,将加密邮件头内容解密,根据收件人信息别表,检查本系统内各个收件人账户的相关信息,如果存在无效的收件人账户,则返回相关错误给发件服务器,并为校验成功的用户创建未读邮件相关信息;同时通知发件服务节点发送邮件体数据内容;
S3.11:收件服务器如果返回邮件发送失败,则发件服务器为发件人邮箱用户创建相应的邮件退信邮件,流程结束;如果发件服务器接收到发送邮件体响应,则发件服务器将邮件体分别发送到收件人所在的收件服务器节点,并对相关的收件状态进行标记;
S3.12:收件服务器接收到邮件体之后,对邮件内容按照邮件头中指定的算法进行哈希计算,然后对比计算所得哈希值与邮件头中的哈希值,如果不一致,则响应发件服务节点邮件体接受失败;否则将邮件体与邮件头一起存储在收件服务器,供收件人读取,并响应发件服务节点,该邮件体成功接受;
S3.13:发件服务节点接收到收件服务节点的响应之后,检查是否存在错误,如果需要重发则发件服务器尝试重新发送邮件体,超过一定阈值的失败次数之后,发件服务器生成相关发送失败邮件到发件人账号;如果全部收件服务节点均响应接受成功,则发件服务节点标记为发送成功,然后根据本地设置的存储时长,持续存储该邮件。
优选地,S3.2中所述的响应包中的响应内容包括:Unix时间、地址映射列表、TTL以及邮箱服务节点对以上信息进行的数字签名。
优选地,所述的地址映射列表是指收件人邮箱名全称与收件人区块链账本地址的映射集合。
优选地,所述的TTL是指当前响应能够缓存本地的最大时长,超过该最大时长之后,邮件客户端需要重新查询收件人邮箱全名对应的区块链地址,防止地址变更和私钥泄漏风险。
优选地,所述的基于区块链的分布式邮箱系统还包括邮件维护单元,该邮件维护单元进行邮件维护的具体过程为:收件人打开邮箱客户端之后,通过口令解锁邮箱客户端区块链账本,根据账本下管理的邮箱账号,向邮箱服务节点发起操作请求;当邮箱客户端发起以上操作请求时,需要通过客户端的账本私钥对请求进行签名;当选定邮件服务节点接收到邮件维护请求之后,首先对邮件账号进行有效性检验以及签名验证。
优选地,所述的邮件维护单元进行邮件维护时,通过区块链账本技术的签名与验签进行鉴权;通过区块链查询服务器的网络公钥的方式,实现无需密钥交换的点对点数据加密。
优选地,所述的基于区块链的分布式邮箱系统通过邮件客户端管理收件箱的方式为:当邮件客户端成功加载邮件后,邮件头在邮件客户端以明文的形式存储,但邮件体的内容始终以加密的方式存储;当用户需要解密时,邮件客户端通过区块链账本的私钥与邮件头中的发件信息的发件人账本地址进行运算,对邮件密钥密文进行解密,得到邮件密钥之后仅仅存储在系统的内存中,当操作系统断电或者客户端软件退出内存之后,邮件密钥自动销毁;同时通过邮件密钥解密的邮件体数据也默认仅仅存储在系统内存中,需要在用户确认的前提下才能够将明文信息导出邮件客户端,保证邮件内容的绝对安全。
优选地,当邮件客户端的区块链账本地址与邮箱用户的用户名之间的对应关系发生变化时,用户名与区块链地址的对应关系由邮箱服务节点管理并允许用户自行变更映射关系,因此存在映射关系被篡改或者用户误操作的情况,在这种情况下旧账本下的邮件仍然是安全的,当用户名与账本地址的映射关系恢复后,旧账本下的邮件仍然能够正常解密。
本申请通过区块链技术,为邮件服务行业提供开放且安全的邮件交互技术方案,任何第三方服务提供者可以按照本申请的协议标准,开发属于自己的邮件服务器和客户端,并通过区块链技术,实现不同的服务器与不同的客户端之间的安全邮件交互。
与现有技术相比,本发明所述的基于区块链的分布式邮箱系统的有益效果是:
1、本申请通过区块链技术实现不同邮箱服务器之间的鉴权信息同步,能够防止未知的服务器进行攻击。
2、本申请通过区块链技术存储服务器节点网络配置和加密配置信息,避免中心化的CA证书私钥泄漏的风险和CA证书网络传播过程中的篡改问题,从而实现邮箱客户端与邮箱服务器之间以及邮箱服务器之间的数据通信安全。
3、本申请通过区块链账本技术,保护邮件客户端本地的数据的安全性,同时实现不同的客户端之间安全的账号导入导出等管理。
4、本申请通过区块链账本技术,避免邮箱账号和密码存储在服务器端造成的密码泄漏问题和个人隐私泄漏问题。
5、本申请通过对邮箱加密密钥的加密逻辑,进而实现群发邮件时的点对点加密逻辑,最终邮箱服务器在无需存储明文信息的情况下,实现数据的安全存储。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的具体实施方式一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明所述的基于区块链的分布式邮箱系统的结构示意图。
具体实施方式
在下文中更详细地描述了本发明以有助于对本发明的理解。
本发明的目的包括:
1.通过区块链技术存储服务器的相关配置,杜绝网络设备对邮件内容的监控和服务器身份伪装。
2.通过区块链钱包技术管理邮箱账号,杜绝密码泄露和服务器数据泄露。
3.通过点对点的加密技术,防止数据内容泄露和服务器窥探邮件内容;通过区块链邮票技术,杜绝垃圾邮件攻击。
本发明中服务可信值鉴权智能合约数据结构为:
可信值映射表:【账本地址】=可信值;
可信值总量;
管理员账本地址列表;
协议管理职能合约地址列表;
可信值冻结列表。
协议管理智能合约数据结构为:
名称服务价格:可信值/年;
算法名称英文缩写表;
名称映射表:【邮箱服务唯一名称】={账本地址,到期日期};
地址与名称索引:[账本地址]=【邮箱服务唯一名称列表】;
可信鉴权合约地址;
管理员账本地址:
邮箱服务配置映射表:[邮箱服务唯一名称]={
累积可信值,
[管理员地址列表],
配置条目映射表:网络通讯公钥={
网络地址类型
网络地址
网络通讯公钥
加密算法列表
签名算法列表
哈希算法列表
配置有效截止日
所属区域
附加信息
}
}
协议管理智能合约简称协议合约。
服务可信值鉴权智能合约简称可信值合约。
如图1所示,本发明所述的基于区块链的分布式邮箱系统包括邮箱服务单元、邮箱服务网络信息配置单元、客户端初始化单元和客户端帐号导出导入单元,所述的邮箱服务单元用于通过区块链注册、续费和/或抢注邮箱服务;所述的邮箱服务网络信息配置单元用于将区块链上的邮箱服务唯一名称所有者的邮件服务软件的相关配置写入协议合约中;所述的客户端初始化单元用于对客户端进行初始化;所述的客户端帐号导出导入单元用于在邮箱的客户端的区块链账本创建成功之后,将私钥信息以加密的形式存储在本地,当用户需要对该私钥信息进行备份时,所述的客户端帐号导出导入单元用于将该私钥信息导出。
优选地,所述的私钥信息包括账本信息及附加信息。
优选地,所述的客户端帐号导出导入单元还用于在用户更换手机或者手机丢失或者邮箱客户端数据被清空的情况下,根据备份的数据信息,以及相应的口令,客户端按照区块链钱包的通用办法导入用户账本的私钥,并以加密的形式存储在客户端本地。
所述的邮箱服务单元通过区块链注册、续费和/或抢注邮箱服务的具体流程包括:
S1.1:邮件服务提供者创建区块链账本,通过口令和制定的区块链算法,生成账本的私钥与区块链账本地址;
S1.2:通过互联网渠道或者区块链渠道,获取可信值,使得可信值合约中的可信映射表,生成关于本服务对应的区块链账本地址的可信值;
S1.3:邮件服务提供者通过区块链账本,向协议合约发起请求,该请求包含:一个邮箱服务唯一名称,一个该名称所有者的区块链账本地址,以及希望拥有该名称的时间长度(以区块链的时间长度年为单位);该请求中唯一名称是以英文小写字母组成的字符串,不包含任何除26个小写英文字母之外的任何字符;该名称所有者的区块链账本地址,可以是邮箱提供者的区块链账本,也可以是其它区块链账本地址;为方便表述,以下对邮箱服务提供者发起请求的区块链账本地址简称为请求者地址,把邮箱服务唯一名称所有者的地址简称为所有者地址;
S1.4:当智能合约接收到该请求之后,首先检查字符组合的有效性,如果存在非英文小写字符,则该请求返回失败;如果请求中名称字符合法,则检查该名称是否已经存在于名称映射表中,如果不存在,则按照新注册服务处理,如果存在该名称的映射数据,首先检查映射表中的账本地址与所有者是否一致,如果一致则按照续订服务处理;如果不一致,则检查到期日期是否小于当前区块链时间,如果是则按照抢注服务处理;如果否,则返回该名称已经被占用的错误提示,流程结束;
S1.5:如果上述检查均合法,则根据可信鉴权合约地址查询请求者地址在可信值合约中的可信值的数值,比较该可信值的数值是否大于所需费用值;所需费用值等于名称服务价格乘以希望拥有该名称的时间长度,如果所述的可信值的数值不满足大于所需费用值,则提示可信值不足,流程结束;
S1.6:如果所述的可信值的数值满足大于所需费用值,协议合约请求可信值合约将可信值映射表中请求者地址对应的可信值减去所需费用值,将可信值映射表中可信值合约地址对应的可信值增加所需费用值;可信值合约将检查协议合约的地址是否在协议管理职能合约地址列表中,如果在所述的协议管理职能合约地址列表中,则该请求操作成功;否则提示无权操作,流程失败;
S1.7:可信值完成从请求者地址到协议合约地址的转移后,修改协议合约中的名称映射表的数据:《1》如果是注册服务,则新增一条数据,其中账本地址为所有者地址,到期日期为当前区块链时间加希望拥有该名称的时长;同时邮箱服务配置映射表中,增加该名称对应的数据,其中累积可信值等于所需费用值,管理员地址列表中增加所有者地址;《2》如果是续订服务,则只修改到期日期,如果到期日日期大于当前区块链时间,则新的到期日期等于当前到期日期加希望拥有该名称的时长,否则新的到期日期等于当前区块链时间加希望拥有该名称的时长;《3》如果是抢注服务,则首先清空邮箱服务配置映射表中的配置管理员地址列表和配置条目列表的数据,然后再执行《1》中的操作。
配置邮箱服务网络信息:
当所有者在区块链上拥有了邮箱服务唯一名称之后,可以启动自己的邮件服务软件,同时需要将服务软件的相关配置写入协议合约中,其中:
管理员地址列表表示可以修改该配置的区块链账本的账本地址,列入该列表的账本所有者均可以向协议合约发起修改配置的请求。
配置条目列表表示同一个邮箱服务唯一名称可以启动不同的软件服务实体,每个实体拥有不同的配置条目,其中网络地址类型:提供邮箱服务的实体使用的物理网络类型,可以是IPV4,IPV6,互联网域名,IPFS地址,自定义1,自定义2,自定义3;网络地址:通过编程可以建立网络连接的网络标识。网络通讯公钥:在建立网络链接的过程中,需要通过该网络通讯公钥对网络数据进行进行加密。加密算法:该邮箱服务器数据通讯使用的加密算法。签名算法列表:非敏感信息查询时,数据不需要加密,只需要明文签名即可,该算法说明邮箱服务节点支持的对外签名和验证接受到的请求数据的签名的算法。哈希算法列表:在传送邮件时,需要校验邮件在传输过程中数据的完整性,该算法计算邮件内容的哈希值用于数据完整性校验。配置有效截止日:该网络配置有对应的邮箱服务器对应的私钥有可能出现泄漏的情况,需要定期更换服务器对应的网络私钥,因此该配置必须设定失效时间,配置过期之后,客户端可以认为该邮箱服务不再有效。所属区域:国家英文缩写编码,表示该邮箱服务器所在的国家或者地区,方便客户端识别最近的邮箱服务器。附加信息:预留其它信息字段,由服务器提供者自定义使用。网络配置信息中使用到的算法,均用英文缩写表示,其缩写规范均在算法名称英文缩写表中定义。
使用区块链智能合约的技术进步点包括:
通过区块链技术,为不同的邮箱服务提供者配置不同的名称和服务器配置信息,这样通过区块链技术的公开可查无法篡改的特性,所有邮件服务提供者之间可以进行安全可信的网络通讯。当前网络中之所以存在邮箱数据泄漏以及垃圾邮件,大部分情况下是邮箱服务提供者的信息被伪造或者篡改,导致邮件信息被篡改或者拦截。同时因为邮件服务提供者的可信度无法公开获取,导致要么其它服务提供者需要复杂的算法辨别其它邮件服务提供者的可信度,要么默认对方可能发送垃圾邮件,导致不同服务提供者之间的邮件转发识别算法很复杂,并且也无法完全杜绝垃圾邮件发送。通过本技术专利,任何邮箱服务提供者的累积信用值可以被所有服务者查询到,同时服务者的通讯加密公钥可以安全的获取,并用于后续的通讯。因为攻击者无法篡改存储在区块链上的该配置和累积可信值,因此即使通讯过程中的加密数据被拦截,攻击者也无法窥探数据内容。
使用区块链智能合约的技术关键点包括:邮箱服务器之间通信可信,垃圾邮件算法简化,邮箱服务器之间无密钥交换的情况下进行加密通讯。
所述的客户端初始化单元对客户端进行初始化的具体流程包括:
S2.1:创建区块链钱包,通过口令创建区块链账本,并拥有账本地址,账本私钥通过口令加密并存储在客户端本地,用户能够通过口令将加密后的私钥导出客户端系统自行备份;
S2.2:注册邮箱用户:用户在拥有账本地址之后,选择邮箱服务提供者的系统,通过该系统注册该提供者名称下的用户名称,该用户名称在该邮箱服务提供者的系统内是唯一的,邮箱用户名称的字符范围由服务提供者限定;当选定的用户经过服务提供者的合法检测后,用户需要提供在S2.1中创建的区块链账本地址,邮箱服务提供者需要将用户名与该区块链账本地址进行绑定并对外提供查询服务;最终用户对外提供的邮箱用户的格式为:用户名@邮箱服务唯一名称,该格式的用户名称以下简称邮箱名全称;除用户名与账本地址两项以外的其它信息称为用户附加信息,用户附加信息仅对用户本人可见;
S2.3:当用户拥有邮箱名全称之后,需要在邮箱客户端同步该邮箱用户的信息,首先用户输入邮箱名全称,客户端首先解析邮箱服务唯一全称,通过该邮箱服务唯一全称查询区块链的协议合约中的邮箱服务配置映射表的信息,如果该信息为空,则提示该邮箱名全称不合法,过程结束;
S2.4:查询到该名称对应的服务配置信息后,客户端根据网络类型、所属区域加密算法等信息进行判定,选择符合当前网络和地区的最佳的服务节点;选择逻辑由本协议的客户端开发者进行判定,本专利不做限定;如果选择节点失败,提示无有效的服务节点,过程结束;
S2.5:选择合适的邮箱服务节点后,根据邮箱服务配置映射表的相关配置,客户端向服务节点发起用户信息的请求,该请求包含:邮箱名全称,账本地址,UNIX时间,附加信息;账本私钥对以上信息按照配置条目中的签名算法进行数字签名;
S2.6:服务节点接收到用户信息查询请求后,首先检查UNIX时间,对于超过当前时间一定阈值的请求丢弃,该阈值由服务节点自行配置;然后根据签名算法进行签名验证,签名验证通过后,服务节点查询该邮箱名全称对应的用户附加信息,并根据邮箱服务配置映射表中的加密算法对以上信息进行加密,然后发送给邮箱客户端;
S2.7:邮箱客户端收到加密后的用户附加信息之后,根据S2.4中查询到的配置条目下的加密算法和网络通讯公钥对数据进行解密;解密成功之后,邮箱客户端存储该信息,并定时更新该信息,更新周期由开发者自定义;同一个账本能够管理多个邮箱名全称。
优选地,所述的客户端帐号导出导入单元在导入用户账本的私钥成功之后,用户通过手动输入该用户账本管理的邮箱名全称,手动输入的过程从客户端初始化中的S2.4开始。
优选地,所述的分布式邮箱系统发邮件的具体流程包括:
S3.1:通过邮箱客户端发送邮件时,需要输入收件人的邮箱名全称,客户端首先分析邮箱服务唯一名称,根据收件人的服务提供者相关的配置信息选择合适的邮箱服务节点,并发出查询请求,查询的内容包括:客户端区块链账本地址、UNIX时间、待查询邮箱名全称的列表,以及账本私钥对以上信息的签名;
S3.2:邮箱服务节点接收到收件人的信息请求之后,校验Unix时间,对于超过当前Unix时间一定阈值的请求直接丢弃,阈值由服务节点自行设定;查询每个邮箱名全称对应的邮箱用户名以及对应的区块链账本地址,查询成功之后组装响应包发送给客户端,响应内容包括:Unix时间,地址映射列表:收件人邮箱名全称与收件人区块链账本地址的映射集合,TTL:当前响应可以缓存本地的最大时长,超过该最大时长之后,邮件客户端需要重新查询收件人邮箱全名对应的区块链地址,防止地址变更和私钥泄漏风险,签名:邮箱服务节点对以上信息进行的数字签名;
S3.3:邮箱客户端接收到服务器响应数据之后,首先检验Unix时间,对于超过一定阈值的响应包,客户端直接丢弃,然后根据服务配置信息中的相关公钥和签名算法进行签名验证,签名验证通过后,客户端将该响应数据存储在本地,下次发送邮件时,检查缓存以及TTL值,只要缓存中存在且TTL值未过期,则直接使用该账本地址,不再进行网络查询;
请求内容包括:
本账本地址;
Unix时间;
待查询邮箱用户名列表:
alice@AA
allen@AA;
账本私钥对以上信息的签名。
响应内容包括:
Unix时间;
地址映射列表:
alice@AA=>0xfffba01a…
allen@AA=>0xef1a23…
TTL;
账本私钥对以上信息的签名。
S3.4:客户端获取收件人信息之后,书写内容并添加相关附件;邮件准备完成之后,客户端首先发送邮件头数据内容到发件人所在的邮箱服务节点;
邮件头的数据结构为:
发件信息:
发件人用户名;
发件人账本地址;
加密算法;
IV值;
哈希算法;
邮件体哈希值;
邮件密钥密文。
收件人信息列表:
收件人信息:
收件人用户名;
收件人账本地址;
邮件密钥密文;
邮件体数据结构:
加密后的文本内容;
附件列表:
加密后的附件二进制数据。
发件人用户名:本次邮件发送者使用的邮箱名全称,发件人账本地址:本客户端区块链账本地址,Unix时间:邮件发送时刻的Unix时间,IV值:初始化向量,用于部分加密算法的哈希盐,该字段可以为空,取决于本邮件采用的加密算法,加密算法:指定本邮件使用的加密算法,签名:本客户端账本私钥对以上发件信息进行的签名,该签名主要用于服务器排除DDOS攻击使用,邮件体哈希值:邮件体所有加密数据的哈希运算结果;哈希算法:算法英文缩写,该值需要是协议合约中的算法名称英文缩写表中的一种。
收件人信息以列表的方式管理,每个收件人信息包含:收件人用户名:收件人的邮箱名全称,收件人账本地址:S3.3中获取的收件人客户端账本地址,邮件密钥密文:由于本系统采用的是端到端的加密模式,因此对不同的收件人有不同的加密私钥,该密钥密文的创建过程为:首先为邮件体数据创建一个密钥,该密钥称作邮件密钥,通过本地账本的私钥与收件人账本地址产生一个点对点对称密钥,该密钥称作对端密钥,通过对端密钥对邮件密钥进行加密,加密算法采用发件信息中的加密算法执行,加密之后的密文即邮件密钥密文,由于收件人的账本地址不同,因此对端私钥各不相同,最终会使得邮件密钥密文不同。对于发件信息中的邮件密钥密文,是通过发件人账本私钥对邮件密钥,按照加密算法进行加密生产的,该密文的作用是方便同一个区块链账本在不同的客户端之间同步邮件内容后解密,通过该密文,凡是拥有该账号私钥的客户端都可以加载并解析该邮件内容。
加密后的文本内容:该内容通过邮件密钥进行加密,加密方式按照发件信息中的加密算法进行。
附件列表:附件的二进制数据根据邮件密钥进行加密,加密后的二进制数据以列表的形式附加在邮件中。
在客户端准备好邮件之后,发起邮件头内容发送请求,请求的内容包括:本地账号地址,Unix时间,加密后的邮件头数据。其中邮件头加密数据是通过客户端账号私钥与邮箱服务节点的相关配置信息生成的加密密钥进行加密的。
S3.5:本地邮箱服务器节点接收到邮件头发送请求后,首先检查发件信息的Unix时间,对于超出一定阈值的邮件,服务器可以选择放弃响应,也可以提示客户端重新发送,阈值由服务节点自行定义;然后查询邮件发送人账本地址是否为本系统地址,如果不是本系统管理的账本地址,则提示错误,流程结束;如果满足条件,则根据发件人账本地址与本服务节点的账本私钥,解密邮件头数据内容;解密成功后,服务器检查发件信息的用户名是否为本系统用户且账本地址与本地存储一致,如果不一致,提示客户端邮件更新相关信息,流程结束;如果检查通过则进行签名验证,如果验证失败则提示客户端验签失败,流程结束;
S3.6:本地邮箱服务器节点解析收件人邮箱名全称中的邮箱服务唯一名称,如果该邮箱服务唯一名称与本节点服务对应的邮箱服务唯一名称一致,则说明该收件人为本系统内用户,校验功过,转到S3.7,如果不一致,则邮箱服务节点查询协议合约中该邮箱服务唯一名称对应的名称映射表,判断该邮箱服务唯一名称是否过期,如果该邮箱服务唯一名称已经过期,提示收件人不可达,流程结束;查询该邮箱服务唯一名称对应的配置信息列表,如果没有有效的配置信息条目,提示收件人不可达,流程结束,有效配置信息检查包括:配置有效截止日是否过期,所属区域是否在本邮件服务器节点可达地区,网络地址类型是否与当前网络一致;以上信息服务器可以存储在本地并根据自身设定进行定期更新。
S3.7:如果邮箱服务器节点校验邮件头失败,则客户端根据展示提示信息,重新发送邮件,跳转到S3.4,如果邮件校验成功,则通知客户端提交邮件体,通知内容包含邮件头的发件信息的哈希值字段;客户端根据哈希值提交对应的邮件体到服务节点,服务节点接收到邮件体之后,计算邮件体的哈希值,并与邮件头的哈希值进行比较,如果对比失败,提示邮件体传输失败,客户端需要根据邮件头哈希值重新传输,传输失败次数超过一定阈值后,客户端重新创建邮件的并跳转到S3.4;传输成功之后,邮件服务器节点负责存储本邮件,并返回客户端邮件发送成功的提示;
S3.8:如果收件人列表中的邮箱用户名不包含非本系统的邮箱用户,则流程结束;否则需要解析收件人的邮箱服务唯一名称,根据S3.6中查询到的信息,向所有的收件人邮箱服务节点发送该邮件的邮件头信息,并分别记录不同收件邮箱服务节点的发送次数;
服务节点之间发送的邮件请求包括:
邮箱服务唯一名称,
本节点账本地址,
Unix时间,
IV值,
加密邮件头内容。
其中加密邮件头内容需要根据不同的收件邮箱的账本地址和加密算法分别生成;IV值为附加的加密哈希盐,根据不同的加密算法,该字段可以为空;哈希算法:Unix时间表示发起该请求时的服务器Unix时间戳;本节点账本地址表示发起该请求的邮箱服务器使用的区块链账本地址,由于同一个邮箱服务唯一名称下可以有多个邮箱服务器实体,因此不同的邮箱服务器实体配置不同的区块链账本;邮箱服务器唯一名称表示本服务器所属的邮箱服务名称。
S3.9:收件邮箱服务节点接收到该邮箱头信息后,根据请求中的发件服务器节点账本地址,分别查询协议合约和可信值合约,获取该节点对应信息进行校验;首先根据唯一名称找到网络配置信息和到期日期,并将该信息缓存在本地并定期更新该信息;如果该唯一名称已经过期,则发送错误信息给发件服务器节点;流程结束;否则检查该唯一名称对应的累积信任值,收件节点服务器能够根据该累积信任值判断发件服务的信用等级,根据不同的信用等级来评判发送垃圾邮件的风险;同时以该累积信任值为基础,可以结合其他算法,识别发邮件服务者是垃圾邮件发送者的风险。如果判定发送服务器节点为垃圾邮件发送者,则返回相应错误提示,流程结束;如果发件服务器节点在多次判定为垃圾邮件发送者之后依然发送邮件,则收件服务器能够将发件服务器节点的相关IP和配置列入黑名单,直接拒绝网络协议握手,而不再解析邮件发送请求的内容。
S3.10:如果邮件发送请求的邮箱服务器唯一名称对应的信息校验成功,则本收件节点根据发件节点服务器的账本地址、IV值(初始化向量,部分加密算法中增加密文破解难度的参数)和相关的加密算法配置信息,将加密邮件头内容解密,根据收件人信息别表,检查本系统内各个收件人账户的相关信息,如果存在无效的收件人账户,则返回相关错误给发件服务器,并为校验成功的用户创建未读邮件相关信息;同时通知发件服务节点发送邮件体数据内容;
S3.11:收件服务器如果返回邮件发送失败,则发件服务器为发件人邮箱用户创建相应的邮件退信邮件,流程结束;如果发件服务器接收到发送邮件体响应,则发件服务器将邮件体分别发送到收件人所在的收件服务器节点,并对相关的收件状态进行标记;
S3.12:收件服务器接收到邮件体之后,对邮件内容按照邮件头中指定的算法进行哈希计算,然后对比计算所得哈希值与邮件头中的哈希值,如果不一致,则响应发件服务节点邮件体接受失败;否则将邮件体与邮件头一起存储在收件服务器,供收件人读取,并响应发件服务节点,该邮件体成功接受,响应内容包括:
发送请求中的Unix时间,
邮件体哈希值,
错误码,
收件服务节点账本对以上信息的签名。
S3.13:发件服务节点接收到收件服务节点的响应之后,检查是否存在错误,如果需要重发则发件服务器尝试重新发送邮件体,超过一定阈值的失败次数之后,发件服务器生成相关发送失败邮件到发件人账号;如果全部收件服务节点均响应接受成功,则发件服务节点标记为发送成功,然后根据本地设置的存储时长,持续存储该邮件。
邮件维护:
邮件操作鉴权数据结构包括:
邮件用户名,
邮件钱包地址,
UNIX时间戳,
操作类型,
操作数据,
对以上数据的签名。
收件人打开邮箱客户端之后,通过口令解锁邮箱客户端区块链账本,根据账本下管理的邮箱账号,向邮箱服务节点发起操作请求:查询,删除,标记已读等。当邮箱客户端发起以上请求时,需要通过客户端的账本私钥对请求进行签名。邮箱服务节点对选择与配置信息的查询与邮件发送逻辑一致。
当选定邮件服务节点接收到邮件维护请求之后,首先对邮件账号进行有效性检验以及签名验证,该过程与发送邮件过程一致。
在邮件客户端与服务器节点进行通讯时,对于需要加密的数据,采用与发送邮件过程中,邮箱客户端与服务器之间的加密方式。
邮件维护逻辑与传统电子邮件服务服务的维护逻辑一致,在本申请中不再赘述,区别在于鉴权与通信加密逻辑:
1、传统邮件服务鉴权通过用户名与秘密、短信等方式进行鉴权,本系统通过区块链账本技术的签名与验签进行鉴权。
2、传统邮件服务器与客户端数据传输通过CA证书等方式进行网络节点鉴权和数据加密。本系统通过区块链查询服务器的网络公钥的方式,实现无需密钥交换的点对点数据加密。
除去获取和用户鉴权与传统的电子邮件服务不同之外,邮件客户端管理收件箱的方式也与传统的电子邮件不同。当客户端成功加载邮件后,邮件头在客户端以明文的形式存储,但邮件体的内容始终以加密的方式存储。当用户需要解密时,客户端通过区块链账本的私钥与邮件头中的发件信息的发件人账本地址进行运算,对邮件密钥密文进行解密,得到邮件密钥之后仅仅存储在系统的内存中,当操作系统断电或者客户端软件推出内存之后,邮件密钥自动销毁;同时通过邮件密钥解密的邮件体数据也默认仅仅存储在系统内存中,需要在用户确认的前提下才可以将明文信息导出邮箱客户端,这样可以保证邮件内容的绝对安全。
当邮件客户端的区块链账本地址与邮箱用户的用户名之间的对应关系发生变化时,例如aa@AA这个用户名对应的区块链账本地址由0xaabb变更为0xbaba时,原有0xaabb对应的邮件无法通过0xbaba这个账本打开,由于用户名与区块链地址的对应关系由邮箱服务节点管理并允许用户自行变更映射关系,因此存在映射关系被篡改或者用户误操作的情况,在这种情况下旧账本下的邮件仍然是安全的,当用户名与账本地址的映射关系恢复后,旧账本下的邮件仍然可以正常解密。
本申请的技术进步点还包括:
客户端无需采集任何隐私数据;
所有数据都是端到端加密;
导入导出帐号不涉及隐私信息认证和传递;
能够防止服务端遭受DDOS攻击。
以上描述了本发明优选实施方式,然其并非用以限定本发明。本领域技术人员对在此公开的实施方案可进行并不偏离本发明范畴和精神的改进和变化。
Claims (10)
1.一种基于区块链的分布式邮箱系统,其特征在于,所述的基于区块链的分布式邮箱系统包括邮箱服务单元、邮箱服务网络信息配置单元、客户端初始化单元和客户端帐号导出导入单元,所述的邮箱服务单元用于通过区块链注册、续费和/或抢注邮箱服务;所述的邮箱服务网络信息配置单元用于将区块链上的邮箱服务唯一名称所有者的邮件服务软件的相关配置写入协议合约中;所述的客户端初始化单元用于对客户端进行初始化;所述的客户端帐号导出导入单元用于在邮箱的客户端的区块链账本创建成功之后,将私钥信息以加密的形式存储在本地,当用户需要对该私钥信息进行备份时,所述的客户端帐号导出导入单元用于将该私钥信息导出。
2.根据权利要求1所述的基于区块链的分布式邮箱系统,其特征在于,所述的私钥信息包括账本信息及附加信息。
3.根据权利要求1所述的基于区块链的分布式邮箱系统,其特征在于,所述的客户端帐号导出导入单元还用于在用户更换手机或者手机丢失或者邮箱客户端数据被清空的情况下,根据备份的数据信息,以及相应的口令,客户端按照区块链钱包的通用办法导入用户账本的私钥,并以加密的形式存储在客户端本地。
4.根据权利要求1所述的基于区块链的分布式邮箱系统,其特征在于,所述的邮箱服务单元通过区块链注册、续费和/或抢注邮箱服务的具体流程包括:
S1.1:邮件服务提供者创建区块链账本,通过口令和指定的区块链算法,生成账本的私钥与区块链账本地址;
S1.2:通过互联网渠道或者区块链渠道,获取可信值,使得可信值合约中的可信映射表,生成关于本服务对应的区块链账本地址的可信值;
S1.3:邮件服务提供者通过区块链账本,向协议合约发起请求,该请求包含:一个邮箱服务唯一名称,一个该邮箱服务唯一名称所有者的区块链账本地址,以及希望拥有该邮箱服务唯一名称的时间长度;该请求中邮箱服务唯一名称是以英文小写字母组成的字符串,不包含任何除26个小写英文字母之外的任何字符;对邮箱服务提供者发起请求的区块链账本地址简称为请求者地址,把邮箱服务唯一名称所有者的地址简称为所有者地址;
S1.4:当智能合约接收到该请求之后,首先检查字符组合的有效性,如果存在非英文小写字符,则该请求返回失败;如果请求中名称字符合法,则检查该名称是否已经存在于名称映射表中,如果不存在,则按照新注册服务处理,如果存在该名称的映射数据,首先检查映射表中的账本地址与所有者是否一致,如果一致则按照续订服务处理;如果不一致,则检查到期日期是否小于当前区块链时间,如果是则按照抢注服务处理;如果否,则返回该名称已经被占用的错误提示,流程结束;
S1.5:如果上述检查均合法,则根据可信鉴权合约地址查询请求者地址在可信值合约中的可信值的数值,比较该可信值的数值是否大于所需费用值;所需费用值等于名称服务价格乘以希望拥有该名称的时间长度,如果所述的可信值的数值不满足大于所需费用值,则提示可信值不足,流程结束;
S1.6:如果所述的可信值的数值满足大于所需费用值,协议合约请求可信值合约将可信值映射表中请求者地址对应的可信值减去所需费用值,将可信值映射表中可信值合约地址对应的可信值增加所需费用值;可信值合约将检查协议合约的地址是否在协议管理职能合约地址列表中,如果在所述的协议管理职能合约地址列表中,则该请求操作成功;否则提示无权操作,流程失败;
S1.7:可信值完成从请求者地址到协议合约地址的转移后,修改协议合约中的名称映射表的数据:《1》如果是注册服务,则新增一条数据,其中账本地址为所有者地址,到期日期为当前区块链时间加希望拥有该名称的时长;同时邮箱服务配置映射表中,增加该名称对应的数据,其中累积可信值等于所需费用值,管理员地址列表中增加所有者地址;《2》如果是续订服务,则只修改到期日期,如果到期日日期大于当前区块链时间,则新的到期日期等于当前到期日期加希望拥有该名称的时长,否则新的到期日期等于当前区块链时间加希望拥有该名称的时长;《3》如果是抢注服务,则首先清空邮箱服务配置映射表中的配置管理员地址列表和配置条目列表的数据,然后再执行《1》中的操作。
5.根据权利要求1所述的基于区块链的分布式邮箱系统,其特征在于,所述的客户端初始化单元对客户端进行初始化的具体流程包括:
S2.1:创建区块链钱包,通过口令创建区块链账本,并拥有账本地址,账本私钥通过口令加密并存储在客户端本地,用户能够通过口令将加密后的私钥导出客户端系统自行备份;
S2.2:注册邮箱用户:用户在拥有账本地址之后,选择邮箱服务提供者的系统,通过该系统注册成为该提供者名称下的用户,该系统为用户提供本系统内的用户名称以及邮件通讯配置信息,该用户名称在该邮箱服务提供者的系统内是唯一的,邮箱用户名称的字符范围由服务提供者限定;当选定的用户经过服务提供者的合法检测后,用户需要提供在S2.1中创建的区块链账本地址,邮箱服务提供者需要将用户名与该区块链账本地址进行绑定并对外提供查询服务;最终用户对外提供的邮箱用户的格式为:用户名@邮箱服务唯一名称,该格式的用户名称以下简称邮箱名全称;除用户名与账本地址两项以外的其它信息称为用户附加信息,用户附加信息仅对用户本人可见;
S2.3:当用户拥有邮箱名全称之后,需要在邮箱客户端同步该邮箱用户的信息,首先用户输入邮箱名全称,客户端首先解析邮箱服务唯一全称,通过该邮箱服务唯一全称查询区块链的协议合约中的邮箱服务配置映射表的信息,如果该信息为空,则提示该邮箱名全称不合法,过程结束;
S2.4:查询到该名称对应的服务配置信息后,客户端根据网络类型和所属区域加密算法进行判定,选择符合当前网络和地区的最佳的服务节点;选择逻辑由本协议的客户端开发者进行判定;如果选择节点失败,提示无有效的服务节点,过程结束;
S2.5:选择合适的邮箱服务节点后,根据邮箱服务配置映射表的相关配置,客户端向服务节点发起用户信息的请求,该请求包含:邮箱名全称、账本地址、UNIX时间和附加信息;账本私钥对以上信息按照配置条目中的签名算法进行数字签名;
S2.6:服务节点接收到用户信息查询请求后,首先检查UNIX时间,对于超过当前时间一定阈值的请求丢弃,该阈值由服务节点自行配置;然后根据签名算法进行签名验证,签名验证通过后,服务节点查询该邮箱名全称对应的用户附加信息,并根据邮箱服务配置映射表中的加密算法对以上信息进行加密,然后发送给邮箱客户端;
S2.7:邮箱客户端收到加密后的用户附加信息之后,根据S2.4中查询到的配置条目下的加密算法和网络通讯公钥对数据进行解密;解密成功之后,邮箱客户端存储该信息,并定时更新该信息,更新周期由开发者自定义;同一个账本能够管理多个邮箱名全称。
6.根据权利要求1所述的基于区块链的分布式邮箱系统,其特征在于,所述的客户端帐号导出导入单元在导入用户账本的私钥成功之后,用户通过手动输入该用户账本管理的邮箱名全称,手动输入的过程从客户端初始化中的S2.4开始。
7.根据权利要求1所述的基于区块链的分布式邮箱系统,其特征在于,所述的分布式邮箱系统发邮件的具体流程包括:
S3.1:通过邮箱客户端发送邮件时,需要输入收件人的邮箱名全称,客户端首先分析邮箱服务唯一名称,根据收件人的服务提供者相关的配置信息选择合适的邮箱服务节点,并发出查询请求,查询的内容包括:客户端区块链账本地址、UNIX时间、待查询邮箱名全称的列表以及账本私钥对以上信息的签名;
S3.2:邮箱服务节点接收到收件人的信息请求之后,校验Unix时间,对于超过当前Unix时间一定阈值的请求直接丢弃,阈值由服务节点自行设定;查询每个邮箱名全称对应的邮箱用户名以及对应的区块链账本地址,查询成功之后组装响应包发送给客户端;
S3.3:邮箱客户端接收到服务器响应数据之后,首先检验Unix时间,对于超过一定阈值的响应包,客户端直接丢弃,然后根据服务配置信息中的相关公钥和签名算法进行签名验证,签名验证通过后,客户端将该响应数据存储在本地,下次发送邮件时,检查缓存以及TTL值,只要缓存中存在且TTL值未过期,则直接使用该账本地址,不再进行网络查询;
S3.4:客户端获取收件人信息之后,书写内容并添加相关附件;邮件准备完成之后,客户端首先发送邮件头数据内容到发件人所在的邮箱服务节点;在客户端准备好邮件之后,发起邮件头内容发送请求,请求的内容包括:本地账号地址,Unix时间以及加密后的邮件头数据;其中邮件头加密数据是通过客户端账号私钥与邮箱服务节点的相关配置信息生成的加密密钥进行加密的;
S3.5:本地邮箱服务器节点接收到邮件头发送请求后,首先检查发件信息的Unix时间,对于超出一定阈值的邮件,服务器选择放弃响应或者提示客户端重新发送,阈值由服务节点自行定义;然后查询邮件发送人账本地址是否为本系统地址,如果不是本系统管理的账本地址,则提示错误,流程结束;如果满足条件,则根据发件人账本地址与本服务节点的账本私钥,解密邮件头数据内容;解密成功后,服务器检查发件信息的用户名是否为本系统用户且账本地址与本地存储一致,如果不一致,提示客户端邮件更新相关信息,流程结束;如果检查通过则进行签名验证,如果验证失败则提示客户端验签失败,流程结束;
S3.6:本地邮箱服务器节点解析收件人邮箱名全称中的邮箱服务唯一名称,如果该邮箱服务唯一名称与本节点服务对应的邮箱服务唯一名称一致,则说明该收件人为本系统内用户,校验功过,转到S3.7,如果不一致,则邮箱服务节点查询协议合约中该邮箱服务唯一名称对应的名称映射表,判断该邮箱服务唯一名称是否过期,如果该邮箱服务唯一名称已经过期,提示收件人不可达,流程结束;查询该邮箱服务唯一名称对应的配置信息列表,如果没有有效的配置信息条目,提示收件人不可达,流程结束,有效配置信息检查包括:配置有效截止日是否过期,所属区域是否在本邮件服务器节点可达地区,网络地址类型是否与当前网络一致;以上信息服务器能够存储在本地并根据自身设定进行定期更新;
S3.7:如果邮箱服务器节点校验邮件头失败,则客户端根据展示提示信息,重新发送邮件,跳转到S3.4,如果邮件校验成功,则通知客户端提交邮件体,通知内容包含邮件头的发件信息的哈希值字段;客户端根据哈希值提交对应的邮件体到服务节点,服务节点接收到邮件体之后,计算邮件体的哈希值,并与邮件头的哈希值进行比较,如果对比失败,提示邮件体传输失败,客户端需要根据邮件头哈希值重新传输,传输失败次数超过一定阈值后,客户端重新创建邮件的并跳转到S3.4;传输成功之后,邮件服务器节点负责存储本邮件,并返回客户端邮件发送成功的提示;
S3.8:如果收件人列表中的邮箱用户名不包含非本系统的邮箱用户,则流程结束;否则需要解析收件人的邮箱服务唯一名称,根据S3.6中查询到的信息,向所有的收件人邮箱服务节点发送该邮件的邮件头信息,并分别记录不同收件邮箱服务节点的发送次数;
S3.9:收件邮箱服务节点接收到该邮箱头信息后,根据请求中的发件服务器节点账本地址,分别查询协议合约和可信值合约,获取该节点对应信息进行校验;首先根据唯一名称找到网络配置信息和到期日期,并将该信息缓存在本地并定期更新该信息;如果该唯一名称已经过期,则发送错误信息给发件服务器节点;流程结束;否则检查该唯一名称对应的累积信任值,收件节点服务器能够根据该累积信任值判断发件服务的信用等级,根据不同的信用等级来评判发送垃圾邮件的风险;同时以该累积信任值为基础,识别发邮件服务者是垃圾邮件发送者的风险;如果判定发送服务器节点为垃圾邮件发送者,则返回相应错误提示,流程结束;如果发件服务器节点在多次判定为垃圾邮件发送者之后依然发送邮件,则收件服务器能够将发件服务器节点的相关IP和配置列入黑名单,直接拒绝网络协议握手,而不再解析邮件发送请求的内容;
S3.10:如果邮件发送请求的邮箱服务器唯一名称对应的信息校验成功,则本收件节点根据发件节点服务器的账本地址、IV值和相关的加密算法配置信息,将加密邮件头内容解密,根据收件人信息别表,检查本系统内各个收件人账户的相关信息,如果存在无效的收件人账户,则返回相关错误给发件服务器,并为校验成功的用户创建未读邮件相关信息;同时通知发件服务节点发送邮件体数据内容;
S3.11:收件服务器如果返回邮件发送失败,则发件服务器为发件人邮箱用户创建相应的邮件退信邮件,流程结束;如果发件服务器接收到发送邮件体响应,则发件服务器将邮件体分别发送到收件人所在的收件服务器节点,并对相关的收件状态进行标记;
S3.12:收件服务器接收到邮件体之后,对邮件内容按照邮件头中指定的算法进行哈希计算,然后对比计算所得哈希值与邮件头中的哈希值,如果不一致,则响应发件服务节点邮件体接受失败;否则将邮件体与邮件头一起存储在收件服务器,供收件人读取,并响应发件服务节点,该邮件体成功接受;
S3.13:发件服务节点接收到收件服务节点的响应之后,检查是否存在错误,如果需要重发则发件服务器尝试重新发送邮件体,超过一定阈值的失败次数之后,发件服务器生成相关发送失败邮件到发件人账号;如果全部收件服务节点均响应接受成功,则发件服务节点标记为发送成功,然后根据本地设置的存储时长,持续存储该邮件。
8.根据权利要求7所述的基于区块链的分布式邮箱系统,其特征在于,S3.2中所述的响应包中的响应内容包括:Unix时间、地址映射列表、TTL以及邮箱服务节点对以上信息进行的数字签名。
9.根据权利要求8所述的基于区块链的分布式邮箱系统,其特征在于,所述的地址映射列表是指收件人邮箱名全称与收件人区块链账本地址的映射集合。
10.根据权利要求8所述的基于区块链的分布式邮箱系统,其特征在于,所述的TTL是指当前响应能够缓存本地的最大时长,超过该最大时长之后,邮件客户端需要重新查询收件人邮箱全名对应的区块链地址,防止地址变更和私钥泄漏风险。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310169176.9A CN116170401A (zh) | 2023-02-27 | 2023-02-27 | 基于区块链的分布式邮箱系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310169176.9A CN116170401A (zh) | 2023-02-27 | 2023-02-27 | 基于区块链的分布式邮箱系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116170401A true CN116170401A (zh) | 2023-05-26 |
Family
ID=86416165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310169176.9A Pending CN116170401A (zh) | 2023-02-27 | 2023-02-27 | 基于区块链的分布式邮箱系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116170401A (zh) |
-
2023
- 2023-02-27 CN CN202310169176.9A patent/CN116170401A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7774411B2 (en) | Secure electronic message transport protocol | |
US7376835B2 (en) | Implementing nonrepudiation and audit using authentication assertions and key servers | |
US7277549B2 (en) | System for implementing business processes using key server events | |
US7650383B2 (en) | Electronic message system with federation of trusted senders | |
US8156554B2 (en) | Method and system for verifying identification of an electronic mail message | |
US7146009B2 (en) | Secure electronic messaging system requiring key retrieval for deriving decryption keys | |
CN113508563A (zh) | 基于区块链的安全电子邮件系统 | |
US20060053280A1 (en) | Secure e-mail messaging system | |
US8856525B2 (en) | Authentication of email servers and personal computers | |
US20130036302A1 (en) | Secure instant messaging system | |
EP1701494B1 (en) | Determining a correspondent server having compatible secure e-mail technology | |
US20070288746A1 (en) | Method of providing key containers | |
US20070255815A1 (en) | Software, Systems, and Methods for Secure, Authenticated Data Exchange | |
US6968458B1 (en) | Apparatus and method for providing secure communication on a network | |
US20050193130A1 (en) | Methods and systems for confirmation of availability of messaging account to user | |
JP3563649B2 (ja) | 通信制御装置及び記録媒体 | |
CN116170401A (zh) | 基于区块链的分布式邮箱系统 | |
Hoernecke | Security Integrated Messaging: A protocol for secure electronic mail | |
WO2007118256A2 (en) | Software, systems, and methods for secure, authenticated data exchange | |
AU2005220240B1 (en) | Method of providing key containers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |