CN110557249A - 基于Freenet构建防溯源通信系统的方法 - Google Patents

基于Freenet构建防溯源通信系统的方法 Download PDF

Info

Publication number
CN110557249A
CN110557249A CN201910815382.6A CN201910815382A CN110557249A CN 110557249 A CN110557249 A CN 110557249A CN 201910815382 A CN201910815382 A CN 201910815382A CN 110557249 A CN110557249 A CN 110557249A
Authority
CN
China
Prior art keywords
message
client
identity
request
space
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
Application number
CN201910815382.6A
Other languages
English (en)
Inventor
孙钦东
许岩岳
郭晓伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Technology
Original Assignee
Xian University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian University of Technology filed Critical Xian University of Technology
Priority to CN201910815382.6A priority Critical patent/CN110557249A/zh
Publication of CN110557249A publication Critical patent/CN110557249A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于Freenet构建防溯源通信系统的方法。密谋协商的通信用户使用身份密钥对在Freenet网络中进行身份宣告,且完成双向身份认证,交换身份文件。通信双方使用彼此宣告的身份文件进行具有防溯源能力的消息交互过程。本发明的基于Freenet构建防溯源通信系统的方法,为Freenet提供了点对点的直接通信方法,加强了防溯源通信能力,提高了系统通信效率。

Description

基于Freenet构建防溯源通信系统的方法
技术领域
本发明属于隐蔽通信技术领域,其中涉及一种基于Freenet构建防溯源通信系统的方法。
背景技术
随着网络攻击技术的日益发展,隐蔽匿名的通信需求不断上升,构建具有隐藏通信用户身份的防溯源通信系统变的越来越被重视。目前在隐蔽通信技术领域,主要分为四个研究方向,其中分为匿名通信、隐蔽信道、隐写术和数字水印。而本发明的防溯源通信系统属于匿名通信领域,针对该领域目前的研究方向分为低时延匿名通信系统和高时延匿名通信系统。
目前,针对低时延匿名通信研究方向的主流系统大部分存在着为了权衡通信效率而牺牲部分匿名能力的问题,如Tor、JAP和I2P等。如Tor是基于第二代洋葱路由实现的匿名网络系统。该系统在通信开始时通过确定一条加密的隧道,使消息报文在发送之前层层加密,然后在路由过程中再层层解密,从中使得路由的节点只知道上一跳和下一跳的位置信息,于是使该系统达到了防溯源匿名通信的目标。然而该系统由于其传输时延比较低,所以针对主动流量水印的关联分析是无法避免的。虽然针对高延时的匿名通信研究方向的主流系统对通信用户提供了更高的匿名能力,但是却存在通信效率低下的问题,如Mixmaster、Mixminion和Freegate等。所以本发明希望针对目前研究现状中的不足之处,提出一个具有高安全度且通信效率较高的匿名通信机制。本发明通过基于Freenet实现匿名安全度更高且传输效率较高的防溯源通信系统。在介绍本发明具体发明内容之前,有必要简单介绍一下与Freenet相关的技术背景。
Freenet是一个完全去中心化的分布式匿名P2P网络,在该网络中的节点和文件通过<key,value>键值对的方式存储在全分布式哈希表(DHT)中。在Freenet网络中每个节点每个文件都被赋予一个范围为[0,1)、长度为16位的浮点数,并称其为位置值,且被用来路由选择和存储文件。在Freenet中用来上传文件和检索文件的URI,被称为FreenetURI,和互联网的URL功能类似,该URI可以被用来上传文件也可以被用来检索文件。其中该URI包含四种类型,分别为KSK、SSK、USK、CHK。其中SSK是较为安全的一种类型,因为该类型包含两个部分,分别为URIInsert和URIRequest,其中URIInsert被用来向网络中插入内容,URIRequest被用来从网络中请求内容,只有拥有URIInsert才可以更新相对应Value值。
由于Freenet仅仅提供了匿名分享的功能,而未提供点对点的直接通信机制。所以本发明提出了基于Freenet构建防溯源通信系统的方法。
发明内容
本发明目的是提供一种基于Freenet构建防溯源通信系统的方法,旨在解决目前匿名通信系统存在的防溯源能力低、通信效率差的问题,为密谋协商的通信用户提供一个匿名通信的平台。
本发明采用的技术方案是,一种基于Freenet构建防溯源通信系统的方法,按照以下步骤实施:
步骤1、用户首先启动一个Freenet节点,并保证默认的接口服务端口号与客户端配置的连接端口号一致,并为客户端配置身份密钥对,启动客户端;
步骤2、客户端启动后,首先需要使用密谋协商的生成方式得到身份空间和身份文件。其中身份文件包含消息加密公钥、消息空间的请求URI、消息随机起始版本号和客户端第一块硬盘序列号;
步骤3、客户端分别使用身份空间的插入URI上传身份文件到Freenet网络中,完成身份宣告;
步骤4、在身份宣告之后,客户端通过使用身份空间的请求URI检索身份空间中其他客户端宣告的身份;
步骤5、当A客户端获取到B客户端宣告的身份文件之后,首先验证其身份合法性;
步骤6、当身份验证合法之后,A客户端将会向B客户端发送身份确认信息,同样当B客户端验证A客户端身份合法之后,也会向A客户端发送身份确认信息;
步骤7、当A、B客户端双方分别收到对方的身份确认信息之后,便说明双方已经完成了双向的身份认证过程,便可以开始进行消息交互过程;
步骤8、通信用户进行消息交互时,按照“send+通信组号+组成员号+消息”的格式将消息输入到各自的客户端;
步骤9、A客户端将用户输入的可读消息首先封装成一条消息报文,然后将消息报文封装成一个签名的消息表;
步骤10、A客户端将封装后的消息表使用消息空间的插入URI,将消息上传到指定的消息空间中,并将该消息存储在消息缓存区中,供消息丢失后进行消息重传;
步骤11、B客户端使用A客户端身份宣告的消息请求URI和消息随机起始版本号循环等待并下载A客户端的消息。
步骤2中,具体方式是,
用身份空间Identity Space来存储通信用户的身份文件;本发明中使用SSK类型的FreenetURI来定位该空间,身份空间的FreenetURI使用IURISSK表示,其中包含IURIInsert和IURIRequest,分别用于存储和检索身份文件。针对身份认证的身份密钥为IdentityKey,其中包括IKPublicKey和IKPrivateKey;该URI具体生成公式如下所示,G为生成函数,H为所使用的哈希函数,IKPublicKey为身份公钥,UTCDate为UTC日期:
IURISSK=G(H(IKPublicKey+UTCDate))
用消息空间Message Space来存储本端用户向同组其他成员发送的消息;与身份空间不同的是,用来定位该空间的FreenetURI是由随机源生成,消息空间的FreenetURI使用MURISSK表示,其中包含MURIInsert和MURIRequest;针对消息的安全性,本发明提出使用消息密钥MessageKey对消息进行加密处理,其中包括MKPublicKey和MKPrivateKey
身份文件的计算公式如下所示:
IF=MKPublicKey+MURIRequest+EditionID+DiskID
其中IF(IdentityFile)表示身份文件,MKpublicKey(Message Public Key)表示消息空间的公钥,MURIrequest(Message Request URI)表示消息空间中用于检索消息的FreenetURI,EditionID表示MURIrequest的起始版本号,DiskID表示磁盘的标识号。
步骤7中,具体方式是,
身份文件是消息交互的主要通信凭据,在UTC日期变化之时,客户端宣告的身份空间将发生更换,及IURISSK将发生更换,导致身份文件发生改变,需要在UTCDate发生变换时,A客户端和B客户端需要重新生成消息空间且更换身份文件,并在更换的身份空间中重新宣告身份,且重新进行双向身份认证过程;
更换身份文件之后,针对之前的身份凭据接收消息的机制无需立即进行删除;而是根据消息空间的最新消息版本号,当使用之前的身份所发送的消息全部被接收之后,并等待一段时间,这个时间可以由网络状况进行权衡,具体可以参考来回通信延迟(RTT)的测量值,如果未接收到消息丢失的主动请求,才会进行资源的回收并删除。
步骤8中,具体方式是,
输入到客户端的消息必须是一条客户端可读的输入消息RM(ReadableMessage),计算公式如下:
其中send为客户端命令,表示从所监听的通信组中选择一个通信组,表示从该组中已经认证的m个组成员中选择k个组成号,Message为将要发送的指定消息,如“send1 2,3hello world!”。将消息按照这样的消息格式输入到客户端中,并且输入“over”终止输入命令;
步骤9中,具体方式是,
消息报文的封装方式:
9.1)首先根据以下的计算公式,使用用户消息指定组成员的身份文件IF与随机产生的8B盐值salt进行哈希运算,得到长度为8B的消息索引index;
Index=H(IF.MURIRequest+IF.MKPublicKey+IF.EditionID+IF.DiskID+salt)
9.2)使用用户消息指定组成员的宣告消息公钥MKPublicKey对用户指定发送的消息Message进行加密,生成密文字段EncryptMessage;
9.3)记录该密文字段的有效长度到载荷长度字段PayloadLength,具体长度为4B;
9.4)如果密文字段EncryptMessage的长度不足1000B,那么将使用填充字段PaddingMessage将其填充到1000B;
9.5)最后为每个消息报文添加上4B的分隔符Delimiter。
将转换后的消息报文封装成一个消息表;其中消息表由消息报文和数字签名组成,且一个消息表中存储的消息报文最多为31条,并在封装的消息表中附上使用身份私钥IKPrivateKey生成的数字签名。
步骤11中,具体方式是,
11.1)消息交互流程方式:
11.1.1)A客户端的随机消息起始版本号为EditionID,并在身份宣告阶段向外界公布;
11.1.2)A客户端使用“SSK@AMURIInsert-EditionID”向Freenet网络中指定的消息空间内异步插入EditionID+i(i=1,2,3…)号版本的消息,并将该消息按照<Edition,Message>键值对的格式将消息存储在消息缓存区中;
11.1.3)B客户端使用“USK@AMURIRequest/0”检索A客户端消息空间的消息最新版本号LastEdition;
11.1.4)当返回最新版本号LastEdition后,首先与B客户端当前检索该消息空间的版本号CurEdition,初始值是Alice身份宣告的EditionID进行比对,如果CurEdition<LastEdition,则依次对每个版本的消息进行检索;
11.1.5)如果在A客户端存在多条需要发送的消息时,那么A客户端可以异步发送每个版本的消息。当B客户端通过“USK@AMURIRequest/0”得到最新消息的版本号比当前已接收的消息版本号大于1时,就说明此时存在多条未接收的消息。而B客户端此时可以异步接收发送多条消息的请求,然而这里异步发送的请求条数应该设置一个阈值,该阈值可设置为5-15;
11.1.6)在A客户端正常发送消息后,B客户端并没有设置确认消息的机制;因为确认消息机制的设计,会增加系统最低一倍的交互量,然而频繁的交互会极大地降低系统的防溯源能力。所以消息交互过程中存在着消息丢失现象。
11.2)消息丢失到消息重传的方式:
11.2.1)当B客户端消息请求过程中,“SSK@AMURIRequest-5003”的请求失败,即该请求从Freenet中未检索到相应版本的消息,所以便视为该消息已经丢失;
11.2.2)B客户端用“SSK@BMURIInsert-4001{RequestMessage-5003}”向A客户端发送丢失消息的主动请求;
11.2.3)A客户端使用“SSK@BMURIRequest-4001”获取B客户端的丢失消息请求;
11.2.4)A客户端按照丢失消息的版本号,从消息缓存区中获取到“Message-5003”;
11.2.5)A客户端使用“SSK@AMURIInsert-5003{Message-5003}”重新向消息空间中上传该消息;
11.2.6)B客户端便可以再次通过“SSK@AMURIRequest-5003”请求丢失的消息。如果B客户端的主动请求或者A客户端重传消息再次丢失,即使再次通过“SSK@AMURIRequest-5003”去请求丢失的消息仍然会返回失败;从发送主动请求之后默认等待2倍的来回通信延迟RTT(Round Trip Time)时间,如果在此阶段未返回丢失的消息,将再次发送主动请求,该请求最多发送3次,如果3次之后仍未收到,则视为A客户端已经从缓存区中删除了该丢失的消息。
本发明的有益效果是,Freenet网络通过应用DHT结构化的路由机制不仅提高了传输效率与加强了系统的防溯能力,本发明针对Freenet提供了点对点直接通信的机制,而且本发明通过双向身份认证机制与安全的消息交互机制为密谋协商的通信用户提供了具有防溯源能力的匿名通信平台。
附图说明
图1是本发明一种基于Freenet构建防溯源通信系统的方法防溯源通信系统架构图
图2是本发明一种基于Freenet构建防溯源通信系统的方法消息报文的封装格式图;
图3是本发明一种基于Freenet构建防溯源通信系统的方法消息表的封装格式示意图;
图4是本发明一种基于Freenet构建防溯源通信系统的方法消息交互的时序图;
图5是本发明一种基于Freenet构建防溯源通信系统的方法丢失消息重传时序图;
图6是本发明一种基于Freenet构建防溯源通信系统的方法客户端的帮组提示界面;
图7是本发明一种基于Freenet构建防溯源通信系统的方法通信用户完成双向身份认证过程截图;
图8是本发明一种基于Freenet构建防溯源通信系统的方法通信用户向同组成员发送消息截图;
图9是本发明一种基于Freenet构建防溯源通信系统的方法同组成员接收消息截图。
具体实施方式
参照图1,本发明以下所述的防溯源通信系统,是由Freenet网络、本地Freenet自节点和自制客户端共同组成。
本发明基于Freenet创建防溯源通信系统的方法,按照以下步骤实施:
步骤1、用户首先启动一个Freenet节点,并保证默认的接口服务端口号与客户端配置的连接端口号一致,并为客户端配置身份密钥对,启动客户端;
且默认的端口号是9481。客户端配置的身份密钥对为IdentityKey,其中包括IKPublicKey和IKPrivateKey
步骤2、客户端启动后,首先需要使用密谋协商的生成方式得到身份空间和身份文件。其中身份文件包含消息加密公钥、消息空间的请求URI、消息随机起始版本号和客户端第一块硬盘序列号;
空间是由Freenet网络中位置值相近的节点共同组成的簇。本发明中提出了身份空间和消息空间。
身份空间(Identity Space,简称IS),目的是用来存储通信用户的身份文件。本发明中使用SSK类型的FreenetURI来定位该空间,及IURISSK其中包含IURIInsert和IURIRequest。该URI具体生成公式如下所示,G为生成函数,H为所使用的哈希函数,IKPublicKey为身份公钥,UTCDate为UTC日期:
IURISSK=G(H(IKPublicKey+UTCDate))
消息空间(Message Space,简称MS),目的是用来存储本端用户向同组其他成员发送的消息。与身份空间不同的是,用来定位该空间的FreenetURI是由随机源生成,及MURISSK,其中包含MURIInsert和MURIRequest。针对消息的安全性,本发明提出使用消息密钥对MessageKey对消息进行加密处理,其中包括MKPublicKey和MKPrivateKey
身份文件的计算公式如下所示:
IF=MKPublicKey+MURIRequest+EditionID+DiskID
步骤3、客户端分别使用身份空间的插入URI上传身份文件到Freenet网络中,完成身份宣告;
身份空间的插入URI就是上面提到的IURIInsert
步骤4、在身份宣告之后,客户端通过使用身份空间的请求URI检索身份空间中其他客户端宣告的身份;
身份空间的请求URI就是上面提到的IURIRequest
步骤5、当A客户端获取到B客户端宣告的身份文件之后,首先验证其身份合法性;
收到的身份文件都是使用IKPublicKey进行了加密处理,所以需要使用IKPrivateKey对身份文件进行解密,并验证其正确性。
步骤6、当身份验证合法之后,A客户端将会向B客户端发送身份确认信息,同样当B客户端验证A客户端身份合法之后,也会向A客户端发送身份确认信息;
步骤7、当双方分别收到对方的身份确认信息之后,便说明双方已经完成了双向的身份认证过程,便可以开始进行消息交互过程;
由于本发明中身份文件是消息交互的主要通信凭据,所以为了加强消息交互安全性,且提高系统的防溯源能力,在UTC日期变化之时,客户端宣告的身份空间将发生更换,及IURISSK将发生更换。所以在UTCDate发生变换时,A客户端和B客户端需要重新生成消息空间且更换身份文件,并在更换的身份空间中重新宣告身份,且重新进行双向身份认证过程。
由于A客户端与B客户端的消息都是使用身份宣告的凭据进行加密的,所以在更换身份文件之后,针对之前的身份凭据接收消息的机制并不会立即进行删除。而是根据消息空间的最新消息版本号,当使用之前的身份所发送的消息全部被接收之后,并等待一段时间,如果未接收到消息丢失的主动请求,才会进行资源的回收并删除。
步骤8、通信用户进行消息交互时,需要按照“send+通信组号+组成员号+消息”的格式将消息输入到客户端;
输入到客户端的消息必须是一条客户端可读的输入消息RM(ReadableMessage),计算公式如下:
其中send为客户端命令,表示从所监听的通信组中选择一个通信组,表示从该组中已经认证的m个组成员中选择k个组成号,Message为将要发送的指定消息,如“send1 2,3hello world!”。将消息按照这样的消息格式输入到客户端中,并且输入“over”终止输入命令;
步骤9、客户端将用户输入的可读消息首先封装成一条消息报文,然后将消息报文封装成一个签名的消息表;
具体消息报文的封装格式如图2所示:
9.1)首先根据以下的计算公式,使用用户消息指定组成员的身份文件IF与随机产生的8B盐值salt进行哈希运算,得到长度为8B的消息索引index;
Index=H(IF.MURIRequest+IF.MKPublicKey+IF.EditionID+IF.DiskID+salt)
9.2)使用用户消息指定组成员的宣告消息公钥MKPublicKey对用户指定发送的消息Message进行加密,生成密文字段EncryptMessage;
9.3)记录该密文字段的有效长度到PayloadLength字段,具体长度为4B;
9.4)如果密文字段EncryptMessage的长度不足1000B,那么将使用填充字段PaddingMessage将其填充到1000B;
9.5)最后为每个消息报文添加上4B的分隔符Delimiter。
将转换后的消息报文按照图3的格式封装成一个消息表。其中消息表由消息报文和数字签名组成,且一个消息表中存储的消息报文最多为31条,并在封装的消息表中附上使用身份私钥IKPrivateKey生成的数字签名。
步骤10、A客户端将封装后的消息表使用消息空间的插入URI,将消息上传到指定的消息空间中,并将该消息存储在消息缓存区中,供消息丢失后进行消息重传;
消息空间的插入URI就是上面提到的MURIInsert
步骤11、B客户端使用A客户端身份宣告的消息请求URI和消息随机起始版本号循环等待并下载A客户端的消息;
具体消息交互流程如图4所示:
11.1.1)A客户端的随机消息起始版本号为5001,并在身份宣告阶段向外界公布;
11.1.2)A客户端使用“SSK@AMURIInsert-5001”向Freenet网络中指定的消息空间内异步插入5001号版本的消息,并将该消息按照<Edition,Message>键值对的格式将消息存储在消息缓存区中;
11.1.3)B客户端使用“USK@AMURIRequest/0”检索A客户端消息空间的消息最新版本号LastEdition;
11.1.4)当返回最新版本号LastEdition后,首先与B客户端当前检索该消息空间的版本号CurEdition(初始值是Alice身份宣告的EditionID-1)进行比对,如果CurEdition<LastEdition,则依次对每个版本的消息进行检索。例如使用“SSK@AMURIRequest-5001”对消息空间的第一版本的消息进行检索;
11.1.5)如果在A客户端存在多条需要发送的消息时,那么A客户端可以异步发送每个版本的消息。当B客户端通过“USK@AMURIRequest/0”得到最新消息的版本号比当前已接收的消息版本号大于1时,就说明此时存在多条未接收的消息。而B客户端此时可以异步接收发送多条消息的请求,然而这里异步发送的请求条数应该设置一个阈值,在本发明中设置为5;
11.1.6)在A客户端正常发送消息后,B客户端并没有设置确认消息的机制。因为确认消息机制的设计,会增加系统最低一倍的交互量,然而频繁的交互会极大地降低系统的防溯源能力。所以消息交互过程中存在着消息丢失现象。
具体消息丢失到消息重传的流程如图5所示:
11.2.1)当B客户端消息请求过程中,“SSK@AMURIRequest-5003”的请求失败,即该请求从Freenet中未检索到相应版本的消息,所以便视为该消息已经丢失;
11.2.2)B客户端用“SSK@BMURIInsert-4001{RequestMessage-5003}”向A客户端发送丢失消息的主动请求;
11.2.3)A客户端使用“SSK@BMURIRequest-4001”获取B客户端的丢失消息请求;
11.2.4)A客户端按照丢失消息的版本号,从消息缓存区中获取到“Message-5003”;
11.2.5)A客户端使用“SSK@AMURIInsert-5003{Message-5003}”重新向消息空间中上传该消息;
11.2.6)B客户端便可以再次通过“SSK@AMURIRequest-5003”请求丢失的消息。如果B客户端的主动请求或者A客户端重传消息再次丢失,即使再次通过“SSK@AMURIRequest-5003”去请求丢失的消息仍然会返回失败。所以本发明设置从发送主动请求之后默认等待2倍的RTT(Round Trip Time)时间,如果在此阶段未返回丢失的消息,将再次发送主动请求,而该请求最多发送3次。如果3次之后仍未收到,则视为A客户端已经从缓存区中删除了该丢失的消息。
由上所述,本发明基于Freenet构建防溯源通信系统的方法其中主要包括双向身份认证过程和消息交互过程。
其中双向身份认证过程满足了密谋协商的通信用户能够在Freenet网络中通过特定的方法进行彼此身份的确认,且可以交换消息交互需要使用的通信凭据,如身份文件内容。
消息交互过程满足了密谋协商的通信用户能够在完成双向身份认证之后进行防溯源的匿名通信流程。其中为了加强消息的安全性,本发明中提供了消息加密封装的方法,且还提供了处理消息丢失的方法。
运用本发明所阐述的基于Freenet构建防溯源通信系统的方法,并使用C++编写了cmd格式的通信客户端。如图6所示,为该客户端的使用帮助界面。其中包括:“list”默认将显示客户端此时监听的通信组;“list+通信组组号”将显示客户端此时在该通信组中已经完成身份认证的组成员号;“send”为向客户端输入消息命令;“over”为终止输入消息命令;“get”为获取指定格式身份密钥对的命令。
图7为1号通信组的1号成员与2号成员完成双向身份认证过程。
图8为1号成员向2号成员发送两次通信内容,其中第一次的通信内容为“helloworld!”,第二次的通信内容为“helloworld 1!”和“helloworld 2!”。
图9为2号成员在完成双向身份认证之后,接收到1号通信组的1号成员的3条消息。

Claims (6)

1.一种基于Freenet构建防溯源通信系统的方法,其特征在于,按照以下步骤实施:
步骤1、用户首先启动一个Freenet节点,并保证默认的接口服务端口号与客户端配置的连接端口号一致,并为客户端配置身份密钥对,启动客户端;
步骤2、客户端启动后,首先需要使用密谋协商的生成方式得到身份空间和身份文件。其中身份文件包含消息加密公钥、消息空间的请求URI、消息随机起始版本号和客户端第一块硬盘序列号;
步骤3、客户端分别使用身份空间的插入URI上传身份文件到Freenet网络中,完成身份宣告;
步骤4、在身份宣告之后,客户端通过使用身份空间的请求URI检索身份空间中其他客户端宣告的身份;
步骤5、当A客户端获取到B客户端宣告的身份文件之后,首先验证其身份合法性;
步骤6、当身份验证合法之后,A客户端将会向B客户端发送身份确认信息,同样当B客户端验证A客户端身份合法之后,也会向A客户端发送身份确认信息;
步骤7、当A、B客户端双方分别收到对方的身份确认信息之后,便说明双方已经完成了双向的身份认证过程,便可以开始进行消息交互过程;
步骤8、通信用户进行消息交互时,按照“send+通信组号+组成员号+消息”的格式将消息输入到各自的客户端;
步骤9、A客户端将用户输入的可读消息首先封装成一条消息报文,然后将消息报文封装成一个签名的消息表;
步骤10、A客户端将封装后的消息表使用消息空间的插入URI,将消息上传到指定的消息空间中,并将该消息存储在消息缓存区中,供消息丢失后进行消息重传;
步骤11、B客户端使用A客户端身份宣告的消息请求URI和消息随机起始版本号循环等待并下载A客户端的消息。
2.根据权利要求1所述的基于Freenet构建防溯源通信系统方法,其特征在于,所述的步骤2中,具体方式是,
用身份空间Identity Space来存储通信用户的身份文件;本发明中使用SSK类型的FreenetURI来定位该空间,身份空间的FreenetURI使用IURISSK表示,其中包含IURIInsert和IURIRequest,分别用于存储和检索身份文件。针对身份认证的身份密钥为IdentityKey,其中包括IKPublicKey和IKPrivateKey;该URI具体生成公式如下所示,G为生成函数,H为所使用的哈希函数,IKPublicKey为身份公钥,UTCDate为UTC日期:
IURISSK=G(H(IKPublicKey+UTCDate))
用消息空间Message Space来存储本端用户向同组其他成员发送的消息;与身份空间不同的是,用来定位该空间的FreenetURI是由随机源生成,消息空间的FreenetURI使用MURISSK表示,其中包含MURIInsert和MURIRequest;针对消息的安全性,本发明提出使用消息密钥MessageKey对消息进行加密处理,其中包括MKPublicKey和MKPrivateKey
身份文件的计算公式如下所示:
IF=MKPublicKey+MURIRequest+EditionID+DiskID
其中IF表示身份文件,MKpublicKey表示消息空间的公钥,MURIrequest表示消息空间中用于检索消息的FreenetURI,EditionID表示MURIrequest的起始版本号,DiskID表示磁盘的标识号。
3.根据权利要求1所述的基于Freenet构建防溯源通信系统方法,其特征在于,所述的步骤7中,具体方式是,
身份文件是消息交互的主要通信凭据,在UTC日期变化之时,客户端宣告的身份空间将发生更换,及IURISSK将发生更换,导致身份文件发生改变,需要在UTCDate发生变换时,A客户端和B客户端需要重新生成消息空间且更换身份文件,并在更换的身份空间中重新宣告身份,且重新进行双向身份认证过程;
更换身份文件之后,针对之前的身份凭据接收消息的机制无需立即进行删除;而是根据消息空间的最新消息版本号,当使用之前的身份所发送的消息全部被接收之后,并等待一段时间,这个时间可以由网络状况进行权衡,具体可以参考来回通信延迟RTT的测量值,如果未接收到消息丢失的主动请求,才会进行资源的回收并删除。
4.根据权利要求1所述的基于Freenet构建防溯源通信系统方法,其特征在于,所述的步骤8中,具体方式是,
输入到客户端的消息必须是一条客户端可读的输入消息RM,计算公式如下:
其中send为客户端命令,表示从所监听的通信组中选择一个通信组,表示从该组中已经认证的m个组成员中选择k个组成号,Message为将要发送的指定消息;将消息按照这样的消息格式输入到客户端中,并且输入“over”终止输入命令;
5.根据权利要求1所述的基于Freenet构建防溯源通信系统方法,其特征在于,所述的步骤9中,具体方式是,
9.1)首先根据以下的计算公式,使用用户消息指定组成员的身份文件IF与随机产生的8B盐值salt进行哈希运算,得到长度为8B的消息索引index;
Index=H(IF.MURIRequest+IF.MKPublicKey+IF.EditionID+IF.DiskID+salt)
9.2)使用用户消息指定组成员的宣告消息公钥MKPublicKey对用户指定发送的消息Message进行加密,生成密文字段EncryptMessage;
9.3)记录该密文字段的有效长度到载荷长度字段PayloadLength,具体长度为4B;
9.4)如果密文字段EncryptMessage的长度不足1000B,那么将使用填充字段PaddingMessage将其填充到1000B;
9.5)最后为每个消息报文添加上4B的分隔符Delimiter。
将转换后的消息报文封装成一个消息表;其中消息表由消息报文和数字签名组成,且一个消息表中存储的消息报文最多为31条,并在封装的消息表中附上使用身份私钥IKPrivateKey生成的数字签名。
6.根据权利要求1所述的基于Freenet构建防溯源通信系统方法,其特征在于,所述的步骤11中,具体方式是,
11.1)消息交互流程方式:
11.1.1)A客户端的随机消息起始版本号为EditionID,并在身份宣告阶段向外界公布;
11.1.2)A客户端使用“SSK@AMURIInsert-EditionID”向Freenet网络中指定的消息空间内异步插入EditionID+i,i=1,2,3…号版本的消息,并将该消息按照<Edition,Message>键值对的格式将消息存储在消息缓存区中;
11.1.3)B客户端使用“USK@AMURIRequest/0”检索A客户端消息空间的消息最新版本号LastEdition;
11.1.4)当返回最新版本号LastEdition后,首先与B客户端当前检索该消息空间的版本号CurEdition,初始值是Alice身份宣告的EditionID进行比对,如果CurEdition<LastEdition,则依次对每个版本的消息进行检索;
11.1.5)如果在A客户端存在多条需要发送的消息时,那么A客户端可以异步发送每个版本的消息。当B客户端通过“USK@AMURIRequest/0”得到最新消息的版本号比当前已接收的消息版本号大于1时,就说明此时存在多条未接收的消息。而B客户端此时可以异步接收发送多条消息的请求,然而这里异步发送的请求条数应该设置一个阈值,该阈值可设置为5-15;
11.1.6)在A客户端正常发送消息后,B客户端并没有设置确认消息的机制;因为确认消息机制的设计,会增加系统最低一倍的交互量,然而频繁的交互会极大地降低系统的防溯源能力。所以消息交互过程中存在着消息丢失现象。
11.2)消息丢失到消息重传的方式:
11.2.1)当B客户端消息请求过程中,“SSK@AMURIRequest-5003”的请求失败,即该请求从Freenet中未检索到相应版本的消息,所以便视为该消息已经丢失;
11.2.2)B客户端用“SSK@BMURIInsert-4001{RequestMessage-5003}”向A客户端发送丢失消息的主动请求;
11.2.3)A客户端使用“SSK@BMURIRequest-4001”获取B客户端的丢失消息请求;
11.2.4)A客户端按照丢失消息的版本号,从消息缓存区中获取到“Message-5003”;
11.2.5)A客户端使用“SSK@AMURIInsert-5003{Message-5003}”重新向消息空间中上传该消息;
11.2.6)B客户端便可以再次通过“SSK@AMURIRequest-5003”请求丢失的消息。如果B客户端的主动请求或者A客户端重传消息再次丢失,即使再次通过“SSK@AMURIRequest-5003”去请求丢失的消息仍然会返回失败;从发送主动请求之后默认等待2倍的来回通信延迟RTT(Round Trip Time)时间,如果在此阶段未返回丢失的消息,将再次发送主动请求,该请求最多发送3次,如果3次之后仍未收到,则视为A客户端已经从缓存区中删除了该丢失的消息。
CN201910815382.6A 2019-08-30 2019-08-30 基于Freenet构建防溯源通信系统的方法 Pending CN110557249A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910815382.6A CN110557249A (zh) 2019-08-30 2019-08-30 基于Freenet构建防溯源通信系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910815382.6A CN110557249A (zh) 2019-08-30 2019-08-30 基于Freenet构建防溯源通信系统的方法

Publications (1)

Publication Number Publication Date
CN110557249A true CN110557249A (zh) 2019-12-10

Family

ID=68738584

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910815382.6A Pending CN110557249A (zh) 2019-08-30 2019-08-30 基于Freenet构建防溯源通信系统的方法

Country Status (1)

Country Link
CN (1) CN110557249A (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475649A (zh) * 2013-08-30 2013-12-25 中国科学院信息工程研究所 一种基于对等网络实现的隐蔽匿名通信方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475649A (zh) * 2013-08-30 2013-12-25 中国科学院信息工程研究所 一种基于对等网络实现的隐蔽匿名通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郭晓伟: "《基于Freenet的防溯源通信系统研究与实现》", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 *

Similar Documents

Publication Publication Date Title
WO2019237796A1 (zh) 资源获取、分发、下载方法、装置、设备及存储介质
US7783767B2 (en) System and method for distributed media streaming and sharing
TWI744532B (zh) 用以於區塊鏈網路節點間建立受信賴點對點通訊之方法與系統
JP4955181B2 (ja) 安全なコラボレーティブ・トランザクションを管理する方法及び装置
CN111523133B (zh) 一种区块链与云端数据协同共享方法
CN111526197B (zh) 一种云端数据安全共享方法
TWI703524B (zh) 使用加速節點加速區塊鏈網路中的交易交付
CN111047324A (zh) 用于更新区块链节点处的公钥集合的方法及装置
JP2023504535A (ja) アイデンティティ(id)ベース公開鍵生成プロトコル
JPH1195658A (ja) マルチキャスト・ネットワーク上で暗合鍵を安全に配布するための方法およびシステム
JP2020516108A (ja) グローバル加速ノードを用いたブロックチェーントランザクション速度の改善
CN108604984B (zh) 用于内容中心网络中的兴趣加密的方法和系统
JP2020516109A (ja) トランザクションの再送信を使用してブロックチェーンネットワークにおけるトランザクション配信の加速化
US20150256336A1 (en) End-To-End Encryption Method for Digital Data Sharing Through a Third Party
CN101341691A (zh) 授权与验证
EP3479540A1 (en) Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms
US6052787A (en) Process for group-based cryptographic code management between a first computer unit and group computer units
KR20210145818A (ko) 블록체인 네트워크에서 블록을 전파하는 방법 및 디바이스
CN114142995A (zh) 面向区块链中继通信网络的密钥安全分发方法及装置
US20230164121A1 (en) Autonomic distribution of hyperlinked hypercontent in a secure peer-to-peer data network
CN110557249A (zh) 基于Freenet构建防溯源通信系统的方法
KR102524515B1 (ko) 블록체인 기반 분산 신뢰 서비스 제공 방법 및 장치
Subramanian et al. An Architectural Framework for Secure Cloud data Storage Management by using Orthogonal Handshaking Authentication Mechanism (OHSAM)
CN116962391A (zh) 一种基于纠删码的临近传输方法及装置
CN117220881A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191210

RJ01 Rejection of invention patent application after publication