一种数据传输方法和系统.pdf

上传人:1*** 文档编号:20128 上传时间:2018-01-12 格式:PDF 页数:18 大小:1.32MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310745583.6

申请日:

2013.12.30

公开号:

CN104753870A

公开日:

2015.07.01

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 29/06申请日:20131230|||公开

IPC分类号:

H04L29/06; H04L29/08; H04L9/00

主分类号:

H04L29/06

申请人:

中国移动通信集团公司

发明人:

王宝晗

地址:

100032北京市西城区金融大街29号

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司11291

代理人:

郭润湘

PDF下载: PDF下载
内容摘要

本发明实施例涉及数据通讯技术领域,特别涉及一种数据传输方法和系统,用以解决数据服务器对客户端文件的保密程度比较低的问题。本发明实施例的数据传输方法包括:接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据写入请求消息确定并返回加密密钥、划分策略、各数据块名称与数据服务器的对应关系;以使客户端将加密密钥、划分的数据块的数据和名称发送给对应的数据服务器进行加密保存;以及,接收客户端发送的包含用户名和文件名的读取请求消息;根据读取请求消息确定并返回解密密钥、文件的各数据块的名称与数据服务器的对应关系,以使客户端将解密密钥和数据块的名称发送给对应的数据服务器获取解密后对应的数据块的数据。

权利要求书

1.  一种数据传输方法,应用于分布式文件系统,所述系统中包含名字服务器和数据服务器,其特征在于,所述方法包括:
所述名字服务器接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;
所述名字服务器根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器进行加密保存;以及
所述名字服务器接收客户端发送的包含用户名和文件名的读取请求消息;
所述名字服务器根据所述读取请求消息确定并返回对应的解密密钥、所述文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系,以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器获取解密后对应的数据块的数据。

2.
  如权利要求1所述的方法,其特征在于,所述名字服务器根据所述写入请求消息确定所述划分策略、以及各数据块名称与数据服务器的对应关系,包括:
所述名字服务器根据所述写入请求消息中包含的文件大小、以及数据服务器当前的剩余存储容量,确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系。

3.
  如权利要求1所述的方法,其特征在于,所述名字服务器根据所述写入请求消息确定所述加密密钥,包括:
所述名字服务器确定是否本地存储有所述写入请求消息中包含的用户名;
在确定本地存储有所述用户名时,向所述客户端发送密钥版本请求消息,接收所述客户端发送的针对所述密钥版本请求消息的密钥版本,确定是否本地 存储有与所述用户名对应的所述客户端发送的密钥版本;以及,
在确定本地存储有与所述用户名对应的所述客户端发送的密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
将所述用户名和密钥版本对应的密钥,作为所述解密密钥。

4.
  如权利要求3所述的方法,其特征在于,所述名字服务器在确定本地未存储所述用户名时,向所述客户端发送未注册提示消息,指示所述客户端向名字服务器发送包含用户名、密钥版本和密钥的注册消息。

5.
  如权利要求3所述的方法,其特征在于,所述名字服务器在确定本地未存储与所述用户名对应的所述客户端发送的密钥版本时,向所述客户端发送密钥版本错误提示消息,指示所述客户端向名字服务器发送新的密钥版本。

6.
  如权利要求1所述的方法,其特征在于,所述写入请求消息还包括密钥版本,所述名字服务器根据所述写入请求消息确定加密密钥,包括:
所述名字服务器在确定本地存储有所述用户名和密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
将所述用户名和密钥版本对应的密钥,作为所述解密密钥。

7.
  如权利要求1~6任一所述的方法,其特征在于,所述名字服务器确定所述加密密钥之前,还包括:
所述名字服务器接收所述客户端发送的包含用户名、密钥版本和密钥的注册消息,并本地存储所述注册消息中指示的所述用户名、密钥版本和密钥的对应关系;
所述方法还包括:
所述名字服务器接收所述客户端发送的至少一条包含用户名、密钥版本和密钥的新增密钥版本请求消息,并本地存储所述新增密钥版本请求消息中指示的所述用户名、密钥版本和密钥的对应关系。

8.
  一种数据传输方法,应用于分布式文件系统,所述系统中包含名字服务器和数据服务器,其特征在于,所述方法包括:
接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;以及
接收客户端发送的数据块的名称和解密密钥,确定所述数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进行解密处理,向客户端发送解密处理后的所述数据;
其中,所述数据块是所述客户端在接收到名字服务器发送的关于客户端文件的划分策略后,对所述文件进行划分得到的数据块;所述加密密钥和解密密钥是所述客户端在与所述名字服务器进行交互后确定的。

9.
  如权利要求8所述的方法,其特征在于,对所述数据块的数据进行加密处理,包括:
基于高级加密标准AES加密方式,对所述数据块的数据进行加密处理;
对所述数据进行解密处理,包括:
基于AES解密方式,对所述数据进行解密处理。

10.
  一种数据传输系统,其特征在于,包括:
名字服务器,用于接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器;以及
接收客户端发送的包含用户名和文件名的读取请求消息;根据所述读取请求消息确定并返回对应的解密密钥、所述文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系;以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器;
数据服务器,用于接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;以及
接收客户端发送的数据块的名称和解密密钥,确定所述数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进行解密处理,向客户端发送解密处理后的所述数据。

说明书

一种数据传输方法和系统
技术领域
本发明涉及数据通讯技术领域,特别涉及一种数据传输方法和系统。
背景技术
HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)具有高容错性、高传输率和可以部署在低廉的硬件上等特点,适用于具有超大数据集的应用程序。HDFS包括名字节点(NameNode)和多个数据节点(DataNode),其中,包含名字节点的服务器为名字服务器,包含数据节点的服务器为数据服务器。目前客户端和名字服务器与数据服务器的交互主要包括客户端写入文件到数据服务器和客户端从数据服务器读取文件,下面将分别进行介绍。
其中,目前客户端写入文件到数据服务器的过程,包括:
步骤A1、客户端向名字服务器发送包含文件的名称和大小的第一写入请求消息;
步骤A2、名字服务器根据所述文件的大小、以及数据服务器当前的剩余存储容量,确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系,并将所述文件的名称、以及确定的划分策略和各数据块名称与数据服务器的对应关系发送给客户端;
步骤A3、客户端根据所述划分策略,将所述文件的名称对应的文件划分成数据块,并将包含所述数据块的数据和所述数据块的名称的第二写入请求消息发送给所述数据块对应的数据服务器;
步骤A4、数据服务器将客户端发送的数据块的数据进行存储,并保存数据块的名称和所述数据块的数据的存储地址的对应关系。
其中,目前客户端从数据服务器读取文件的过程,包括:
步骤B1、客户端向名字服务器发送包含文件的名称的第一读取请求消息;
步骤B2、名字服务器将所述文件的名称对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系发送给所述客户端;
步骤B3、客户端将包含所述数据块的名称的第二读取请求消息发送给所述数据块对应的数据服务器;
步骤B4、数据服务器根据数据块的名称,确定数据块的数据的存储地址,并到所述存储地址获取所述数据块的数据,向客户端发送所述数据块的数据。
目前客户端文件以块数据的形式存储在数据服务器中,而由于数据服务器中的块数据实际是存储在硬盘中,因此,其他客户端可以通过非法手段,使得数据服务器的硬盘丢失,从而获取所述数据服务器中存储的块数据,并根据所述块数据,得到客户端文件内容。
综上所述,目前数据服务器对客户端文件的保密程度比较低。
发明内容
本发明实施例提供的一种数据传输方法和系统,用以解决现有技术中存在的数据服务器对客户端文件的保密程度比较低的问题。
第一方面,本发明实施例提供的一种数据传输方法,包括:
所述名字服务器接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;
所述名字服务器根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器进行加密保存;以及
所述名字服务器接收客户端发送的包含用户名和文件名的读取请求消息;
所述名字服务器根据所述读取请求消息确定并返回对应的解密密钥、所述 文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系,以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器获取解密后对应的数据块的数据。
较佳地,所述名字服务器根据所述写入请求消息确定所述划分策略、以及各数据块名称与数据服务器的对应关系,包括:
所述名字服务器根据所述写入请求消息中包含的文件大小、以及数据服务器当前的剩余存储容量,确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系。
较佳地,所述名字服务器根据所述写入请求消息确定所述加密密钥,包括:
所述名字服务器确定是否本地存储有所述写入请求消息中包含的用户名;
在确定本地存储有所述用户名时,向所述客户端发送密钥版本请求消息,接收所述客户端发送的针对所述密钥版本请求消息的密钥版本,确定是否本地存储有与所述用户名对应的所述客户端发送的密钥版本;以及,
在确定本地存储有与所述用户名对应的所述客户端发送的密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
将所述用户名和密钥版本对应的密钥,作为所述解密密钥。
较佳地,所述名字服务器在确定本地未存储所述用户名时,向所述客户端发送未注册提示消息,指示所述客户端向名字服务器发送包含用户名、密钥版本和密钥的注册消息。
较佳地,所述名字服务器在确定本地未存储与所述用户名对应的所述客户 端发送的密钥版本时,向所述客户端发送密钥版本错误提示消息,指示所述客户端向名字服务器发送新的密钥版本。
较佳地,所述写入请求消息还包括密钥版本,所述名字服务器根据所述写入请求消息确定加密密钥,包括:
所述名字服务器在确定本地存储有所述用户名和密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
将所述用户名和密钥版本对应的密钥,作为所述解密密钥。
较佳地,所述名字服务器确定所述加密密钥之前,还包括:
所述名字服务器接收所述客户端发送的包含用户名、密钥版本和密钥的注册消息,并本地存储所述注册消息中指示的所述用户名、密钥版本和密钥的对应关系;
所述方法还包括:
所述名字服务器接收所述客户端发送的至少一条包含用户名、密钥版本和密钥的新增密钥版本请求消息,并本地存储所述新增密钥版本请求消息中指示的所述用户名、密钥版本和密钥的对应关系。
第二方面,本发明实施例提供的一种数据传输方法,包括:
接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;以及
接收客户端发送的数据块的名称和解密密钥,确定所述数据块的名称对应 的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进行解密处理,向客户端发送解密处理后的所述数据;
其中,所述数据块是所述客户端在接收到名字服务器发送的关于客户端文件的划分策略后,对所述文件进行划分得到的数据块;所述加密密钥和解密密钥是所述客户端在与所述名字服务器进行交互后确定的。
较佳地,对所述数据块的数据进行加密处理,包括:
基于高级加密标准AES加密方式,对所述数据块的数据进行加密处理;
对所述数据进行解密处理,包括:
基于AES解密方式,对所述数据进行解密处理。
第三方面,本发明实施例提供的一种数据传输系统,包括:
名字服务器,用于接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器;以及
接收客户端发送的包含用户名和文件名的读取请求消息;根据所述读取请求消息确定并返回对应的解密密钥、所述文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系;以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器;
数据服务器,用于接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;以及
接收客户端发送的数据块的名称和解密密钥,确定所述数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进 行解密处理,向客户端发送解密处理后的所述数据。
与现有技术相比,在本发明实施例中,名字服务器在向客户端返回指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系的同时,向该客户端返回加密密钥,使得该客户端将所述加密密钥以及数据块的数据和名称同时发送给所述数据块对应的数据服务器进行加密保存,因而,即使其他客户端非法获取存储在数据服务器中的块数据后,由于不知道密钥,也无法确定该客户端文件内容,从而实现了提高了数据服务器对客户端文件的保密程度。
附图说明
图1为本发明实施例的数据传输系统的结构示意图;
图2为本发明实施例的数据服务器的结构示意图;
图3为本发明实施例的数据传输方法流程示意图;
图4为本发明实施例的数据传输方法流程示意图。
具体实施方式
在本发明实施例中,名字服务器接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器进行加密保存;
因而,即使其他客户端非法获取存储在数据服务器中的块数据后,由于不知道密钥,也无法确定该客户端文件内容,从而实现了提高了数据服务器对客户端文件的保密程度。
下面将对加密相关信息进行介绍:
加密是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。
密码学中的AES(Advanced Encryption Standard,高级加密标准)是美国联邦政府采用的一种区块加密标准,AES支持128、192、和256位密钥,并且支持128位分组加密和解密数据,其中Java语言支持AES。
AES加密方式包括多轮的重复和变换。大致步骤如下:1、密钥扩展,2、初始轮,3、重复轮,4、最终轮。
下面结合说明书附图对本发明实施例作进一步详细描述。
在下面的说明过程中,先从名字服务器和数据服务器的配合实施进行说明,最后分别从名字服务器和数据服务器的实施进行说明,但这并不意味着二者必须配合实施,实际上,当名字服务器和数据服务器分开实施时,也解决了分别在名字服务器和数据服务器所存在的问题,只是二者结合使用时,会获得更好的技术效果。
如图1所示,本发明实施例的数据传输系统包括名字服务器10和数据服务器20;
名字服务器10,用于接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器20;以及
接收客户端发送的包含用户名和文件名的读取请求消息;根据所述读取请求消息确定并返回对应的解密密钥、所述文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器20的对应关系;以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器20;
数据服务器20,用于接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;以及
接收客户端发送的数据块的名称和解密密钥,确定所述数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进行解密处理,向客户端发送解密处理后的所述数据。
实施中,名字服务器在向客户端返回指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系的同时,向该客户端返回加密密钥,使得该客户端将所述加密密钥以及数据块的数据和名称同时发送给所述数据块对应的数据服务器进行加密保存,因而,即使其他客户端非法获取存储在数据服务器中的块数据后,由于不知道密钥,也无法确定该客户端文件内容,从而实现了提高了数据服务器对客户端文件的保密程度。
为了清楚地对本发明实施例的数据传输系统的实施进行介绍,下面将分别对数据传输系统实现将客户端文件写入到数据服务器功能、以及从数据服务器读取客户端文件功能的过程进行介绍。
一、数据传输系统实现将客户端文件写入到数据服务器功能的过程。
名字服务器10,用于接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器20;
数据服务器20,用于接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的 所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系。
较佳地,名字服务器10还用于:
在确定所述加密密钥之前,接收所述客户端发送的包含用户名、密钥版本和密钥的注册消息,并本地存储所述注册消息中指示的所述用户名、密钥版本和密钥的对应关系。
实施中,在客户端向名字服务器10发送注册消息后,名字服务器10就会本地存储有属于所述客户端的用户名、密钥版本和密钥的对应关系,以使后续名字服务器10根据所述客户端的用户名和密钥版本,向所述客户端返回所述用户名和密钥版本对应的密钥;从而客户端不需要存储和管理密钥,而由名字服务器10对客户端密钥进行统一存储和管理,降低了客户端的复杂度,以及提高了名字服务器10资源的利用效率。
较佳地,本发明实施例中的客户端只需要本地存储简单的密钥版本即可,无需存储复杂的密钥。
需要说明的是,在客户端只向名字服务器10发送注册消息,而没有向名字服务器10发送新增密钥版本请求消息时,对于客户端来说,加密和解密的过程是透明的。
较佳地,名字服务器10还用于:
接收所述客户端发送的至少一条包含用户名、密钥版本和密钥的新增密钥版本请求消息,并本地存储所述新增密钥版本请求消息中指示的所述用户名、密钥版本和密钥的对应关系。
实施中,本发明实施例支持新增密钥功能,在客户端向名字服务器10发送新增密钥版本请求消息后,名字服务器10就会本地存储有属于所述客户端的多个密钥。
较佳地,在本发明实施例中,密钥版本为密钥的标识,密钥版本与密钥之间存在一一对应关系。
实施中,密钥版本一般为简单的字符,在名字服务器10本地存储用户名、密钥版本和密钥的对应关系时,可以简化名字服务器10管理客户端密钥的复杂度。
较佳地,名字服务器10,具体用于将用户名、密钥版本和密钥的对应关系加密后进行本地存储。
较佳地,名字服务器10,具体用于将用户名、密钥版本和密钥的对应关系存储在数据库中;
比如,在数据库里新建一张表,字段是用户名、密钥和版本。
具体实施中,名字服务器10也可以将用户名、密钥版本和密钥的对应关系存储在其他可以存储数据的设备或装置中。
较佳地,名字服务器10,具体用于根据所述写入请求消息中包含的文件大小、以及数据服务器当前的剩余存储容量,确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系。
具体实施中,名字服务器10确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系的实施方式与现有技术中名字服务器确定划分策略、以及各数据块名称与数据服务器的对应关系的实施方式类似,在此不再赘述。
较佳地,名字服务器10,还用于在本地存储所述写入请求消息中包含的文件名与所述确定的各数据块名称与数据服务器的对应关系;以便在接收到客户端包含该文件名的读取请求消息时,将所述确定的各数据块名称与数据服务器的对应关系返回给客户端。
具体实施中,名字服务器10根据写入请求消息确定加密密钥的方式有多种,下面将对两种较佳的实施方式进行介绍。
方式一、名字服务器10根据写入请求消息确定加密密钥的第一种方法。
较佳地,名字服务器10,具体用于:
确定是否本地存储有所述写入请求消息中包含的用户名;
在确定本地存储有所述用户名时,向所述客户端发送密钥版本请求消息,接收所述客户端发送的针对所述密钥版本请求消息的密钥版本,确定是否本地存储有与所述用户名对应的所述客户端发送的密钥版本;以及,
在确定本地存储有与所述用户名对应的所述客户端发送的密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥。
较佳地,所述名字服务器10,具体用于:
在确定本地未存储所述用户名时,向所述客户端发送未注册提示消息,指示所述客户端向名字服务器发送包含用户名、密钥版本和密钥的注册消息。
较佳地,所述名字服务器10,具体用于:
在确定本地未存储与所述用户名对应的所述客户端发送的密钥版本时,向所述客户端发送密钥版本错误提示消息,指示所述客户端向名字服务器发送新的密钥版本。
实施中,名字服务器10向所述客户端发送密钥版本错误提示消息后,所述客户端会检查已经向名字服务器10发送过的密钥版本,并从中选择一个重新发送给名字服务器10。
较佳地,所述名字服务器10,还用于在确定本地存储有与所述用户名对应的所述客户端发送的密钥版本时,本地存储所述写入请求消息中包含的文件名与所述客户端发送的密钥版本的对应关系;以便在接收到客户端包含该文件名的读取请求消息时,确定该文件名对应的密钥版本。
较佳地,名字服务器10,具体用于将文件名与密钥版本的对应关系加密后进行本地存储。
较佳地,名字服务器10,具体用于将文件名与密钥版本的对应关系作为元数据进行存储。
方式二、名字服务器10根据写入请求消息确定加密密钥的第二种方法。
较佳地,所述写入请求消息还包括密钥版本;
名字服务器10,具体用于:
在确定本地存储有所述用户名和密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥。
具体实施中,方式二中名字服务器10在确定本地未存储所述用户名和/或密钥版本时的实施方式与方式一中名字服务器10在确定本地未存储所述用户名和/或密钥版本时的实施方式类似,在此不再赘述。
较佳地,所述名字服务器10,还用于在确定本地存储有所述写入请求消息中包含的密钥版本时,本地存储所述写入请求消息中包含的文件名与密钥版本的对应关系;以便在接收到客户端包含该文件名的读取请求消息时,确定该文件名对应的密钥版本。
较佳地,名字服务器10,具体用于将文件名与密钥版本的对应关系加密后进行本地存储。
较佳地,名字服务器10,具体用于将文件名与密钥版本的对应关系作为元数据进行存储。
较佳地,数据服务器20,具体用于基于AES加密方式,对所述数据块的数据进行加密处理。
需要说明的是,现有技术中任何JAVA语言支持的加密方式均适用于本发明实施例。
二、数据传输系统实现从数据服务器读取客户端文件功能的过程。
名字服务器10,用于接收客户端发送的包含用户名和文件名的读取请求消息;根据所述读取请求消息确定并返回对应的解密密钥、所述文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器20的对应关系;以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器20;
数据服务器20,用于接收客户端发送的数据块的名称和解密密钥,确定所 述数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进行解密处理,向客户端发送解密处理后的所述数据。
较佳地,名字服务器10,具体用于根据本地存储的文件名、各数据块的名称与数据服务器20的对应关系,确定属于所述读取请求消息中包含的文件名的各数据块的名称与数据服务器20的对应关系。
较佳地,名字服务器10,具体用于:
根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
将所述用户名和密钥版本对应的密钥,作为所述解密密钥。
较佳地,数据服务器20,用于基于AES解密方式,对所述数据进行解密处理。
需要说明的是,现有技术中任何JAVA语言支持的解密方式均适用于本发明实施例。
需要说明的是,目前数据服务器包含能够支持客户端文件的压缩和解压缩的压缩/解压框架;由于无论压缩/解压缩还是加密/解密其实都是一种编码/解码,因此,本发明实施例的数据服务器可以基于该压缩/解压框架来实现加密解密功能,可以降低开发成本;为了使得本发明实施例的数据服务器可以实现加密解密功能,如图2所示,本发明实施例的数据服务器包括加密器21和解密器22。
实施中,通过上述方式,可以使数据服务器支持加密和解密功能,即将数据块的数据加密后存储在数据服务器中,并将数据服务器中存储的数据解密后发送给客户端;因此,即使非法用户获取到了该数据块的数据,但由于不知道密钥,也无法得到数据内容,提高了数据服务器对数据的保密程度,使得该数据服务器适用于对安全性要求较高的场景。
实施例一
在本发明实施例一中,对将客户端文件写入到数据服务器和从数据服务器读取该客户端文件的过程进行介绍。
步骤A1、名字服务器10接收客户端发送的包含用户名A、密钥版本1和密钥1的注册消息,并在数据库中以列表的形式存储用户名A、密钥版本1和密钥1的对应关系;
步骤A2、名字服务器10接收客户端发送的包含用户名A、密钥版本2和密钥2的新增密钥版本请求消息,并在数据库中存储用户名A、密钥版本2和密钥2的对应关系;
步骤A3、名字服务器10接收客户端发送的包含用户名A、密钥版本1、文件M的名称和大小的写入请求消息;
其中,名字服务器10在接收到客户端发送的写入请求消息后,将所述写入请求消息中的文件M的名称和密钥版本1的对应关系作为元数据进行存储。
步骤A4、名字服务器10根据所述文件M的大小和各数据服务器当前的剩余存储容量,确定将文件M划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以及,根据数据库中存储的用户名、密钥版本和密钥的对应关系,确定与用户名A和密钥版本1对应的密钥1;
其中,名字服务器10在确定各数据块名称与数据服务器的对应关系后,将文件M的名称、以及文件M包含的各数据块的名称与数据服务器的对应关系进行存储。
步骤A5、名字服务器10将确定的密钥1、划分策略、以及各数据块名称与数据服务器的对应关系发送给客户端;
步骤A6、客户端按照所述划分策略将文件M划分成数据块,并将密钥1以及所述数据块的数据和名称发送给所述数据块对应的数据服务器20;
步骤A7、数据服务器20接收客户端发送的密钥1、以及数据块的数据和名称;
步骤A8、数据服务器20按照密钥1对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;
步骤A9、名字服务器10接收客户端发送的包含用户名A和文件M的名称的读取请求消息;
步骤A10、名字服务器10根据元数据中的文件名与密钥版本的对应关系,确定读取请求消息中包含的文件M的名称对应的密钥版本1,并根据数据库中存储的用户名、密钥版本和密钥的对应关系,确定所述用户名A和密钥版本1对应的密钥1;以及,根据本地存储的文件名、以及文件M包含的各数据块的名称与数据服务器的对应关系,确定文件M的名称对应的各数据块的名称与数据服务器的对应关系;
步骤A11、名字服务器10将确定的密钥1、以及文件M的名称对应的各数据块的名称与数据服务器的对应关系发送给客户端;
步骤A12、客户端将密钥1和所述数据块的名称发送给对应的数据服务器20;
步骤A13、数据服务器20接收客户端发送的数据块的名称和密钥1;
步骤A14、数据服务器20确定数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照密钥1对所述数据进行解密处理,向客户端发送解密处理后的所述数据;
步骤A15、客户端将各数据服务器20发送的数据进行合并,得到文件M。
基于同一发明构思,本发明实施例中还提供了一种数据传输方法,由于该数据传输方法解决问题的原理与本发明实施例的数据传输系统相似,因此该数据传输方法的实施可以参见数据传输系统的实施,重复之处不再赘述。
如图3所示,本发明实施例的数据传输方法,应用于分布式文件系统,所述系统中包含名字服务器和数据服务器,所述方法包括:
步骤301、所述名字服务器接收客户端发送的包含用户名、文件名和文件 大小的写入请求消息;
步骤302、所述名字服务器根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器进行加密保存;以及
步骤303、所述名字服务器接收客户端发送的包含用户名和文件名的读取请求消息;
步骤304、所述名字服务器根据所述读取请求消息确定并返回对应的解密密钥、所述文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系,以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器获取解密后对应的数据块的数据。
较佳地,所述名字服务器根据所述写入请求消息确定所述划分策略、以及各数据块名称与数据服务器的对应关系,包括:
所述名字服务器根据所述写入请求消息中包含的文件大小、以及数据服务器当前的剩余存储容量,确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系。
较佳地,所述名字服务器根据所述写入请求消息确定所述加密密钥,包括:
所述名字服务器确定是否本地存储有所述写入请求消息中包含的用户名;
在确定本地存储有所述用户名时,向所述客户端发送密钥版本请求消息,接收所述客户端发送的针对所述密钥版本请求消息的密钥版本,确定是否本地存储有与所述用户名对应的所述客户端发送的密钥版本;以及,
在确定本地存储有与所述用户名对应的所述客户端发送的密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
将所述用户名和密钥版本对应的密钥,作为所述解密密钥。
较佳地,所述名字服务器在确定本地未存储所述用户名时,向所述客户端发送未注册提示消息,指示所述客户端向名字服务器发送包含用户名、密钥版本和密钥的注册消息。
较佳地,所述名字服务器在确定本地未存储与所述用户名对应的所述客户端发送的密钥版本时,向所述客户端发送密钥版本错误提示消息,指示所述客户端向名字服务器发送新的密钥版本。
较佳地,所述写入请求消息还包括密钥版本,所述名字服务器根据所述写入请求消息确定加密密钥,包括:
所述名字服务器在确定本地存储有所述用户名和密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
将所述用户名和密钥版本对应的密钥,作为所述解密密钥。
较佳地,所述名字服务器确定所述加密密钥之前,还包括:
所述名字服务器接收所述客户端发送的包含用户名、密钥版本和密钥的注册消息,并本地存储所述注册消息中指示的所述用户名、密钥版本和密钥的对应关系;
所述方法还包括:
所述名字服务器接收所述客户端发送的至少一条包含用户名、密钥版本和密钥的新增密钥版本请求消息,并本地存储所述新增密钥版本请求消息中指示的所述用户名、密钥版本和密钥的对应关系。
如图4所示,本发明实施例的数据传输方法,应用于分布式文件系统,所述系统中包含名字服务器和数据服务器,所述方法包括:
步骤401、接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;以及
步骤402、接收客户端发送的数据块的名称和解密密钥,确定所述数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进行解密处理,向客户端发送解密处理后的所述数据;
其中,所述数据块是所述客户端在接收到名字服务器发送的关于客户端文件的划分策略后,对所述文件进行划分得到的数据块;所述加密密钥和解密密钥是所述客户端在与所述名字服务器进行交互后确定的。
较佳地,对所述数据块的数据进行加密处理,包括:
基于AES加密方式,对所述数据块的数据进行加密处理;
对所述数据进行解密处理,包括:
基于AES解密方式,对所述数据进行解密处理。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产 品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

一种数据传输方法和系统.pdf_第1页
第1页 / 共18页
一种数据传输方法和系统.pdf_第2页
第2页 / 共18页
一种数据传输方法和系统.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种数据传输方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种数据传输方法和系统.pdf(18页珍藏版)》请在专利查询网上搜索。

本发明实施例涉及数据通讯技术领域,特别涉及一种数据传输方法和系统,用以解决数据服务器对客户端文件的保密程度比较低的问题。本发明实施例的数据传输方法包括:接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据写入请求消息确定并返回加密密钥、划分策略、各数据块名称与数据服务器的对应关系;以使客户端将加密密钥、划分的数据块的数据和名称发送给对应的数据服务器进行加密保存;以及,接收客户端发送的包。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1