用于传输数据的方法和设备的制作方法

文档序号:7887369阅读:190来源:国知局
专利名称:用于传输数据的方法和设备的制作方法
技术领域
本发明涉及通信领域,更具体地涉及一种用于传输数据的方法和设备。
背景技术
随着通信技术的发展、和电子设备的广泛使用,日益需要对海量数据进行传输和存储。为此,提出了分布式文件系统(Distributed File System, DFS)。分布式文件系统通常包括管理节点、和至少一个存储节点。由该管理节点进行统一管理,例如管理文件在存储节点上的存储、和客户端对文件的访问等。分布式文件系统具有集中访问、简化操作、和提高文件存取效率的优点。Hadoop是一套致力于海量数据处理的大规模互联网应用的软件基础设施,被设计用来在普通机器组成的集群上完成分布式应用的框架。作为分布式文件系统的示例,Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)是 Hadoop 框架下的分布式文件系统。HDFS有着高容错性的特点,被设计成可以部署在低廉的硬件上,并且提供高吞吐量来访问应用程序的数据,适合那些有超大数据集的应用程序。分布式文件系统的客户端通过与管理节点的通信来进行数据的写入和读取。然而,分布式文件系统原生加密传输存储支持不够。当要提供诸如异地因特网数据中心(Internet data center, IDC)、存储级别租赁等对外服务时,分布式文件系统存在数据安全性不足的缺点。此外,分布式文件系统是基于自定义的基于传输控制协议/因特网协议(Transmission Control Protocol/Internet Protocol, TCP/IP)的分布式远程过程呼叫(Remote Procedure Call, RPC)协议通信,无法提供良好的传输层安全/安全套接层(Transport Layer Security/Secure Sockets Layer, SSL/TLS)加解密支持。因此,需要提供理想的数据加解密服务,从而在分布式文件系统中提供安全的数据传输和存储。

发明内容
本发明实施例提供了在分布式文件系统中用于传输数据的方法和设备,能够提高数据在传输过程中的安全性,同时保持良好的数据传输性能。—方面,提供了 一种用于传输数据的方法,该方法适用于分布式文件系统,该分布式文件系统包括管理节点、和至少一个存储节点,该管理节点用于管理文件在存储节点上的存储、和客户端对文件的访问,所述用于传输数据的方法包括:客户端通过与管理节点交互来确定用于存储该数据的存储节点;客户端生成对所述数据进行加密的密钥,利用该密钥对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点;通过密钥传送步骤将密钥传送到存储节点,该密钥传送步骤包括:客户端对所述密钥进行加密而得到已加密密钥,并将该已加密密钥传送到管理节点;管理节点对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储该数据的存储节点。另一方面,提供了一种用于传输数据的设备,该设备适用于分布式文件系统,该分布式文件系统包括管理节点、和至少一个存储节点,该管理节点用于管理文件在存储节点上的存储、和客户端对文件的访问,所述用于传输数据的设备包括:确定单元,客户端利用其与管理节点交互来确定用于存储该数据的存储节点;生成单元,客户端利用该生成单元生成对所述数据进行加密的密钥;传输单元,用于利用该密钥对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点;密钥传送单元,用于将密钥传送到存储节点,该密钥传送单元包括:第一部件,客户端利用该第一部件对所述密钥进行加密而得到已加密密钥,并将该已加密密钥传送到管理节点;第二部件,管理节点利用该第二部件对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储该数据的存储节点。在本发明实施例的上述技术方案中,通过以加密方式传输文件,并通过对密钥加密来在另外的路径中传输密钥,能够提高数据在传输过程中的安全性,同时保持良好的数据传输性能。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1示意性地图示了分布式文件系统的架构的框图;图2图示了根据本发明实施例的用于传输数据的方法的流程图;图3图示了根据本发明实施例的在数据被加密存储时的数据读取方法的流程图;图4图示了根据本发明实施例的在存储已解密数据时的数据读取方法的流程图;图5图示了根据本发明实施例的在HDFS中进行数据传输的流程图;图6图示了根据本发明实施例的用于传输数据的设备的框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。图1示意性地图示了分布式文件系统的架构的框图。该分布式文件系统通常包括
管理节点、和至少一个存储节点(存储节点1、2.......η)。该管理节点用于管理文件在存
储节点上的存储、和客户端对文件的访问。所述存储节点用于存储文件。当客户端需要存储文件时,向管理节点发出写入请求,管理节点分配特定的存储节点来存储所述文件,并通过响应将所分配的存储节点的地址通知客户端,然后客户端将文件传输到所分配的存储节点进行存储。如果在存储期间管理节点将所述文件转移到其他存储节点,则管理节点将转移后的存储节点的地址通知给客户端。当客户端需要读取文件时,向用于存储所述文件的存储节点发出读取请求,所述存储节点根据读取请求向存储节点传输文件。此外,在Hadoop分布式文件系统中,所述管理节点被称作名称节点(Namenode),所述存储节点被称作数据节点(Datanode)。管理节点和存储节点可以是普通的机器,例如Iinux操作系统的机器。管理节点和存储节点可以位于不同的机器、也可以位于相同的机器上。典型的部署是,一个专门的机器来运行管理节点,机群中的每个其他机器各自运行一个存储节点。管理节点和存储节点的部署不构成对本发明的限制。图2图示了根据本发明实施例的用于传输数据的方法200的流程图。该用于传输数据的方法适用于分布式文件系统,该分布式文件系统包括管理节点、和至少一个存储节点。该管理节点用于管理文件在存储节点上的存储、和客户端对文件的访问。所述存储节点用于存储文件。下面结合图1详细描述所述用于传输数据的方法200。步骤S210,客户端通过与管理节点交互来确定用于存储该数据的存储节点。如前所述,管理节点用于管理文件在存储节点上的存储,其例如建立各个客户端的数据与存储节点之间的映射关系,从而根据客户端的请求管理存储节点。作为示例,客户端向管理节点发送数据写入请求,管理节点将分布式文件系统的存储节点I确定为用于存储该数据的存储节点,并通过响应将存储节点I的地址发送到客户端。需要说明的是,客户端可以采用任何方式与管理节点交互来确定用于存储该数据的存储节点。步骤S220,客户端生成对所述数据进行加密的密钥,利用该密钥对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点。例如,客户端可以根据配置或用户的指定来生成用于所述数据进行加密的密钥K1,利用该密钥Kl对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点(例如,存储节点I)。由于在分布式文件系统中进行传输的数据量通常很大,可以采取用对称密钥进行加密的方式,提高加密和解密的速度,从而降低对数据传输性能的影响。此外,客户端可以根据数据机密级别而生成不同长度(例如,32位、64位或128位)的密钥。对于高机密级别的数据采用较长的加密密钥(例如,128位),对于低机密级别的数据采用较短的加密密钥(例如,32位).
步骤S230,通过密钥传送步骤将密钥传送到存储节点,如图2中的虚线方框所示。该密钥传送步骤包括:步骤S231,客户端对所述密钥进行加密而得到已加密密钥,并将该已加密密钥传送到管理节点;和步骤S232,管理节点对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储该数据的存储节点(例如存储节点I)。在所述密钥传送步骤中,客户端经由管理节点将密钥传送到存储节点,而数据的传送是从客户端直接到存储节点,所以传送密钥的路径不同于传送数据的路径。此外,对密钥进行加密以从客户端传送到存储节点。因此,保证了密钥的安全性,从而保证了数据传输的安全性。此外,需要注意的是,密钥传送和数据传送的先后顺序并不构成对本发明的限制。存储节点只要在要使用所述密钥之前从管理节点收到该密钥即可。所述密钥传送过程是小数据量的传送过程,可以采用安全性能高的加密算法。作为示例,客户端可使用非对称加密算法对该密钥进行加密(在步骤S231中)以及管理节点对该已加密密钥进行解密(在步骤S232中)。当然,还可以采用安全性能高的其它加密算法。下面以非对称加密算法为例来说明所述密钥传送步骤。管理节点生成非对称密钥对,包括公钥Pl和私钥SI,并将公钥Pl发送给客户端。客户端使用该公钥Pi加密用于对数据进行加密的所述密钥(Ki)而得到已加密密钥,并将该已加密密钥传送到管理节点。管理节点利用非对称密钥对中的所述私钥Si对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储该数据的存储节点。在Hadoop分布式文件系统中,所述管理节点可以利用心跳信号将所述密钥传送到所述用于存储该数据的存储节点。具体地,所述管理节点在对来自存储节点的心跳信号进行响应时将所述密钥传送到所述用于存储该数据的存储节点。所述心跳信号是每个存储节点周期性地向管理节点发送、并且管理节点作出响应的信号,该心跳信号用于报告文件存储状态以便管理节点掌握各个存储节点的状态。因此,管理节点利用心跳信号向存储节点传送密钥,这可以节约系统的传输资源。在本发明实施例的用于传输数据的方法的上述技术方案中,通过以加密方式传输文件,并通过对密钥加密来在另外的路径中传输密钥,能够提高数据在传输过程中的安全性,同时保持良好的数据传输性能。在将已加密数据传输到存储节点之后,在存储节点中进行存储,并且在收到客户端的读取请求时向客户端传输所述数据。此外,为了加强数据的传输安全性和数据的存储安全性,所述客户端还可以动态地更新所述用于对数据进行加密的密钥。也就是说,所述客户端可以生成用于更新所述密钥的新密钥(K2),并通过所述密钥传送步骤(步骤S230)将该新密钥K2传送到所述用于存储该数据的存储节点。要注意,所述客户端还可以多次更新密钥,以例如生成新密钥K3、K4........
下面对数据的存储和读取进行描述。在将已加密数据传输到存储节点之后,存储节点可以使用接收到的密钥(Kl)对数据进行解密,并然后存储解密后的数据。此外,还可以将已加密数据存储在存储节点,这样用于提供数据存储服务的服务提供方就无权查看用户数据,从而保证了数据的存储安全。图3图示了根据本发明实施例的在数据被加密存储时的数据读取方法300的流程图。在所述用于存储该数据的存储节点存储已加密数据的情况下,当所述用于存储该数据的存储节点从客户端收到读取请求时(步骤S310),存储节点查看从管理节点接收到的密钥是否包括更新后的新密钥K2(步骤S320)。如果没有从管理节点收到所述新密钥Κ2(步骤S320中的否),则将所述已加密数据传送到客户端(步骤S360)。客户端在收到已加密数据之后,利用密钥Kl进行解密,以得到数据。如果从管理节点收到了所述新密钥Κ2 (步骤S320中的是),则利用所述密钥Kl对所述已加密数据进行解密(步骤S330),利用新密钥Κ2对所述解密的数据进行加密(步骤S340),并然后将利用新密钥Κ2加密的所述数据传送到所述客户端(步骤S350)。如果存储节点按照时间顺序从管理节点收到了多个在不同时间更新的新密钥(例如,Κ2、Κ3、Κ4),则存储节点可以利用最近接收的新密钥(例如,Κ4)对所述解密的数据进行加密,并然后将利用新密钥Κ4加密的所述数据传送到所述客户端。客户端在收到已加密数据之后,利用新密钥Κ4进行解密,以得到数据。对于步骤S330和步骤S340的实现,进行如下示例性说明。在数据文件被分割成块以进行存储的情况下,存储节点遍历存储空间内的所有块,对于加密存储的块,使用更新前的密钥Kl进行解密而得到明文。使用新密钥Κ2重新加密存储,并保存名字为Blk_XXXXX.bako获取该Blk_xxxxx文件锁,暂时禁止文件读取。将原Blk_xxxxx重命名为Blk_xxxx.pre,将Blk_xxxxx.bak重命名为Blk_xxxx,释放文件锁,文件Blk_xxxx即为要向客户端传输的已加密数据。
此外,在向客户端传输已加密数据时,所传输的加密数据流中可以包含密钥版本信息,客户端根据该密钥版本信息而确定是使用相应的密钥进行解密。图4图示了根据本发明实施例的在存储已解密数据时的数据读取方法400的流程图。在所述用于存储该数据的存储节点存储已解密数据的情况下,当所述用于存储该数据的存储节点从客户端收到读取请求时(步骤S410),存储节点查看从管理节点接收到的密钥是否包括更新后的新密钥K2(步骤S420)。如果没有从管理节点收到所述新密钥Κ2 (步骤S420中的否),则利用所述密钥Kl对所述已解密数据进行加密(步骤S450),并然后将利用密钥Kl加密的所述数据传送到所述客户端(步骤S460)。客户端在收到已加密数据之后,利用所述密钥Kl进行解密,以得到数据。如果从管理节点收到了所述新密钥Κ2 (步骤S420中的是),则利用新密钥Κ2对所述解密的数据进行加密(步骤S430),并然后将利用新密钥Κ2加密的所述数据传送到所述客户端(步骤S440)。在存储节从管理节点收到了多个在不同时间更新的新密钥时,存储节点可以利用最近接收的新密钥对所述解密的数据进行加密,并然后将利用新密钥加密的所述数据传送到所述客户端。客户端在收到已加密数据之后,利用新密钥进行解密,以得到数据。为了更充分地公开根据本发明实施例的用于进行数据传输的方法,下面给出描述在HDFS体系中进行数据传输的操作流程以供参考。图5图示了根据本发明实施例的在HDFS体系中进行数据传输的流程图。(I)管理节点生成非对称密钥对(S1/P1) ; (2)管理节点将公钥Pl发送给客户端;
(3)客户端生成用于对要传输的数据进行加密的传输密钥Kl ; (4)客户端用公钥Pl对传输密钥Kl加密得到已加密密钥Kl/,并将该已加密密钥Kl/传送到管理节点;(5)管理节点使用私钥SI对已加密密钥Kl,进行解密,以得到密钥Kl ; (6)管理节点利用心跳信号将密钥Kl传送到存储节点;(7)客户端使用密钥Kl对要传输的数据进行加密而得到已加密的数据;(8)客户端向存储节点传送所述已加密的数据;(9)存储节点存储数据。要注意,在实践中,各个操作并不必须按照上面的顺序进行,可以根据需要调整各个操作的先后顺序。如前所述,存储节点在存储数据时,可以使用从管理节点接收的密钥Kl对从客户端接收的已加密数据进行解密后,存储解密后得到的数据,也可以直接存储已加密数据。在客户端要读取数据时,如果存储节点存储了已加密数据,则存储节点进行结合图3描述的操作来向客户端传输加密数据,从而实现数据的读取;以及如果存储节点存储了已解密的数据,则存储节点进行结合图4描述的操作来向客户端传输加密数据,从而实现数据的读取。通过以上结合图2-5进行的描述可知,在上述的用于传输数据的方法的技术方案中,通过以加密方式传输文件,并通过对密钥加密来在另外的路径中传输密钥,能够提高数据在传输过程中的安全性,同时保持良好的数据传输性能;通过在存储节点中存储加密的数据,保证了数据的存储安全性;通过动态地更新用于对传输数据进行加密的密钥,加强了数据的传输安全性和数据的存储安全性。图6图示了根据本发明实施例的用于传输数据的设备600的框图。该用于传输数据的设备600适用于分布式文件系统,该分布式文件系统包括管理节点、和至少一个存储节点,该管理节点用于管理文件在存储节点上的存储、和客户端对文件的访问。所述用于传输数据的设备600包括:确定单元610,客户端利用其与管理节点交互来确定用于存储该数据的存储节点;生成单元610,客户端利用该生成单元生成对所述数据进行加密的密钥;传输单元630,用于利用该密钥对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点;密钥传送单元640,用于将密钥传送到存储节点。该密钥传送单元640包括:第一部件641,客户端利用该第一部件对所述密钥进行加密而得到已加密密钥,并将该已加密密钥传送到管理节点;第二部件642,管理节点利用该第二部件对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储数据的存储节点。所述确定单元610用于使得客户端能够与管理节点交互来确定用于存储该数据的存储节点。如前所述,利用该确定单元610,客户端可向管理节点发送数据写入请求,管理节点可以进行响应以将所确定的用于存储该数据的存储节点的地址发送到客户端。需要说明的是,所述确定单元610可以采用任何的方式来在客户端与管理节点之间进行交互。所述生成单元610用于为客户端生成用于对要传输的数据进行加密的密钥K1。客户端可根据数据机密级别,而利用所述生成单元610生成不同长度的密钥。对于高机密级别的数据生成较长的加密密钥(例如,128位),而对于低机密级别的数据生成较短的加密密钥(例如,32位)。此外,客户端还可以利用该生成单元610生成用于更新所述密钥的新密钥(K2、K3、K4),并通过所述密钥传送单元640将该新密钥传送到所述用于存储该数据的存储节点,从而加强数据传输和存储的安全性。所述传输单元630可利用该密钥Kl对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点。存储节点在收到所述已加密数据之后进行存储。所述密钥传送单元640可将生成单元610所生成的密钥(Kl、Κ2)传送到存储节点。所述密钥传送单元640将密钥从客户端经由管理节点而传送到存储节点,采用可与传送数据的路径不同的路径,并且对密钥进行加密以从客户端传送到存储节点,从而保证了密钥的安全性,进而保证了数据传输的安全性。所述密钥传送过程是小数据量的传送过程,可以采用安全性能高的加密算法。作为示例,在密钥传送单元640中,客户端对该密钥(Κ1、Κ2)进行加密以及管理节点对该已加密密钥进行解密所使用的是非对称加密算法。具体的实现操作可以参照前面的描述。第二部件642在将该密钥从管理节点传送到存储节点时,可以利用心跳信号将所述密钥传送到所述用于存储该数据的存储节点,从而节约系统的传输资源。在本发明实施例的用于传输数据的设备的上述技术方案中,通过以加密方式传输文件,并通过对密钥加密来在另外的路径中传输密钥,能够提高数据在传输过程中的安全性,同时保持良好的数据传输性能。存储节点在收到所述已加密数据和加密密钥之后进行存储,并且在接收到客户端的读取请求时向客户端传输数据。在将已加密数据传输到存储节点之后,存储节点可以使用接收到的密钥(Kl)对数据进行解密,并然后存储解密后的数据。此外,还可以将已加密数据存储在存储节点,这样用于提供数据存储服务的服务提供方就无权查看用户数据,从而保证了数据的存储安全。每个存储节点可包括:接收单元,用于从客户端接收读取请求、和从管理节点接收密钥;和发送单元,用于向客户端发送数据。在存储节点存储已加密数据的情况下,当存储节点的接收单元从客户端收到读取请求时,如果没有从管理节点收到新密钥K2,则将所述已加密数据传送到客户端,客户端在收到已加密数据之后,利用密钥Kl进行解密以得到数据;以及如果从管理节点收到了所述新密钥K2,则利用密钥Kl对所述已加密数据进行解密,利用新密钥K2对所述解密的数据进行加密,并然后将利用新密钥K2加密的所述数据传送到所述客户端。客户端在收到已加密数据之后,利用新密钥K2进行解密以得到数据。关于存储节点在存储已加密数据的情况下的数据读取操作,可以参照前面结合图3进行的描述。在存储节点存储已解密数据的情况下,所述用于存储该数据的存储节点利用所述密钥Kl对所接收的已加密数据进行解密,并存储已解密数据。当存储节点的接收单元从客户端收到读取请求时,如果没有从管理节点收到所述新密钥K2,则利用所述密钥Kl对所述已解密数据进行加密,并然后传送到所述客户端;以及如果从管理节点收到了所述新密钥K2,则利用新密钥K2对所述已解密数据进行加密,并然后传送到所述客户端。关于存储节点在存储已解密数据的情况下的数据读取操作,可以参照前面结合图4进行的描述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种用于传输数据的方法,该方法适用于分布式文件系统,该分布式文件系统包括管理节点、和至少一个存储节点,该管理节点用于管理文件在存储节点上的存储、和客户端对文件的访问,所述用于传输数据的方法包括: 客户端通过与管理节点交互来确定用于存储该数据的存储节点; 客户端生成对所述数据进行加密的密钥,利用该密钥对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点; 通过密钥传送步骤将密钥传送到存储节点,该密钥传送步骤包括: 客户端对所述密钥进行加密而得到已加密密钥,并将该已加密密钥传送到管理节点;管理节点对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储该数据的存储节点。
2.根据权利要求1的用于传输数据的方法,其中,所述用于存储该数据的存储节点存储所述已加密数据。
3.根据权利要求2的用于传输数据的方法,其中,所述客户端生成用于更新所述密钥的新密钥,并通过所述密钥传送步骤将该新密钥传送到所述用于存储该数据的存储节点。
4.根据权利要求2的用于传输数据的方法,其中,当所述用于存储该数据的存储节点从客户端收到读取请求时, 如果没有从管理节点收到用于更新所述密钥的新密钥,则将所述已加密数据传送到客户端;以及 如果从管理节点收到 了所述新密钥,则利用密钥对所述已加密数据进行解密,利用新密钥对所述解密的数据进行加密,并然后将利用新密钥加密的所述数据传送到所述客户端。
5.根据权利要求1的用于传输数据的方法,其中,所述用于存储该数据的存储节点利用所述密钥对所接收的已加密数据进行解密,并存储已解密数据。
6.根据权利要求5的用于传输数据的方法,其中,所述客户端生成用于更新所述密钥的新密钥,并通过所述密钥传送步骤将该新密钥传送到所述用于存储该数据的存储节点。
7.根据权利要求5的用于传输数据的方法,其中,当存储节点从客户端收到读取请求时, 如果没有从管理节点收到用于更新所述密钥的新密钥,则利用所述密钥对所述已解密数据进行加密,并然后传送到所述客户端;以及 如果从管理节点收到了所述新密钥,则利用新密钥对所述已解密数据进行加密,并然后传送到所述客户端。
8.根据权利要求1的用于传输数据的方法,其中,所述管理节点利用心跳信号将所述密钥传送到所述用于存储该数据的存储节点。
9.根据权利要求1的用于传输数据的方法,其中,客户端对该密钥进行加密以及管理节点对该已加密密钥进行解密所使用的是非对称加密算法。
10.根据权利要求1的用于传输数据的方法,其中,客户端生成对所述数据进行加密的密钥的步骤包括:客户端根据数据机密级别而生成不同长度的密钥。
11.一种用于传输数据的设备,该设备适用于分布式文件系统,该分布式文件系统包括管理节点、和至少一个存储节点,该管理节点用于管理文件在存储节点上的存储、和客户端对文件的访问,所述用于传输数据的设备包括: 确定单元,客户端利用其与管理节点交互来确定用于存储该数据的存储节点; 生成单元,客户端利用该生成单元生成对所述数据进行加密的密钥; 传输单元,用于利用该密钥对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点; 密钥传送单元,用于将密钥传送到存储节点,该密钥传送单元包括: 第一部件,客户端利用该第一部件对所述密钥进行加密而得到已加密密钥,并将该已加密密钥传送到管理节点; 第二部件,管理节点利用该第二部件对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储该数据的存储节点。
12.根据权利要求11的用于传输数据的设备,其中,所述用于存储该数据的存储节点用于存储所述已加密数据。
13.根据权利要求12的用于传输数据的设备,其中,所述客户端利用该生成单元生成用于更新所述密钥的新密钥,并通过所述密钥传送单元将该新密钥传送到所述用于存储该数据的存储节点。
14.根据权利要求12的用于传输数据的设备,其中,每个存储节点包括:接收单元,用于从客户端接收读取请求、和从管理节点接收密钥;和发送单元,用于向客户端发送数据, 当所述用于存储该数据的存储节点的接收单元从客户端收到读取请求时, 如果没有从管理节点收到 用于更新所述密钥的新密钥,则将所述已加密数据传送到客户端;以及 如果从管理节点收到了所述新密钥,则利用所述密钥对所述已加密数据进行解密,利用新密钥对所述解密的数据进行加密,并然后将利用新密钥加密的所述数据传送到所述客户端。
15.根据权利要求11的用于传输数据的设备,其中,所述用于存储该数据的存储节点利用所述密钥对所接收的已加密数据进行解密,并存储已解密数据。
16.根据权利要求15的用于传输数据的设备,其中,所述客户端生成用于更新所述密钥的新密钥,并通过所述密钥传送单元将该新密钥传送到所述用于存储该数据的存储节点。
17.根据权利要求15的用于传输数据的设备,其中,每个存储节点包括:接收单元,用于从客户端接收读取请求、和从管理节点接收密钥;和发送单元,用于向客户端发送数据, 当所述用于存储该数据的存储节点的接收单元从客户端收到读取请求时, 如果没有从管理节点收到用于更新所述密钥的新密钥,则利用所述密钥对所述已解密数据进行加密,并然后传送到所述客户端;以及 如果从管理节点收到了所述新密钥,则利用新密钥对所述已解密数据进行加密,并然后传送到所述客户端。
18.根据权利要求11的用于传输数据的设备,其中,所述管理节点利用第二部件、通过心跳信号将所述密钥传送到所述用于存储该数据的存储节点。
19.根据权利要求11的用于传输数据的设备,其中,在密钥传送单元中,客户端对该密钥进行加密以及管理节点对该已加密密钥进行解密所使用的是非对称加密算法。
20.根据权利要求11的用于传输数据的设备,其中,所述客户端根据数据机密级别,而利用所述生成单元生成不同长度的 密钥。
全文摘要
提供了一种适用于分布式文件系统的用于传输数据的方法和设备。所述用于传输数据的方法包括客户端通过与管理节点交互来确定用于存储该数据的存储节点;客户端生成对所述数据进行加密的密钥,利用该密钥对数据进行加密,并将已加密数据传输到所述用于存储该数据的存储节点;通过密钥传送步骤将密钥传送到存储节点,该密钥传送步骤包括客户端对所述密钥进行加密而得到已加密密钥,并将该已加密密钥传送到管理节点;管理节点对该已加密密钥进行解密而得到所述密钥,并将该密钥传送到所述用于存储该数据的存储节点。利用本发明实施例的上述技术方案中,能够提高数据在传输过程中的安全性,同时保持良好的数据传输性能。
文档编号H04L29/08GK103209202SQ20121001296
公开日2013年7月17日 申请日期2012年1月16日 优先权日2012年1月16日
发明者张云龙 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1