专利名称:基于加密增量传输的异地共享备份恢复方法
技术领域:
本发明属于网络信息安全领域,尤其涉及一种文件异地共享备份恢复的安全高效处理方法。
背景技术:
传统的异地备份可称之为异地独享备份。这种情况下,备份客户与备份中心属于同一个管理域,属于内联网,对备份数据的安全性(特指机密性与完整性,下同)要求不
尚ο近几年,随着IT技术的发展,应用的普及,分工的细化,出现了专门的第三方数据服务中心(IDC)。于是,异地共享备份开始出现,并得到快速的发展,成为异地备份的主要发展趋势。在异地共享备份模式下,备份客户与备份中心分属不同的管理域,属于外联网,由此带来的两个主要问题需要解决。首先是数据安全问题。首先,典型的备份服务中心是数据中心。对特定备份客户而言,数据中心管理机构以及备份服务器、存储网络、存储介质等资源都是多客户共享的, 所以存在数据泄密、非法访问、非法窜改等安全隐患。对备份中心而言,为了清楚界定安全责任,也希望机密性、完整性等数据安全问题由客户自主控制即加密之后交给数据中心。其次,数据在网络上传输的过程中也存在被窃取与破坏的风险。因此,数据的安全问题需要在备份客户端解决,由备份客户自主控制。其次是带宽优化问题。对于地震、台风、海啸等自然灾难和火灾、恐怖袭击等人为灾害,要求异地备份的距离在IOOKm以上,满足这个距离的异地备份网络因为价格的原因, 一般带宽较小、延迟较大。因此,异地共享备份必须优化网络带宽,在网络上尽量少传数据。表面看来,解决这两个问题并不复杂。的确,把两个问题割裂开来,已有比较成熟的解决方法。比如用加密技术AES-CBC解决数据安全问题,用增量同步技术Rsync解决带宽优化问题。不幸的是必须把二者结合起来,才能满足异地共享备份的应用需求,但这是相互矛盾的。加密的雪崩效应会放大增量。按照加密原理,新旧文件明文相差一点点,用AES-CBC 处理之后,密文会几乎不一样。Rsync的原理是在备份中心已有旧文件的前提下,通过和备份客户端的协商交互,只传输新文件与旧文件的差异,达到把新文件同步到备份中心的目的,具有传输高效性的特点。很明显,如果不加密,Rsync的带宽优化效果很好;但是加密之后,Rsync几乎不起作用。如何解决这个矛盾一既能支持备份客户自主控制的高安全性,即信息在备份客户端加密,从而保障信息从备份客户到备份中心的传输机密性与信息在备份中心的存储机密性,又能支持类似Rsync增量同步的高效性,提高传输的效率,优化传输的带宽,已经成为亟待解决的问题
发明内容
本发明的目的在于针对现有技术的不足,提供一种异地共享备份的处理方法,该方法称为加密增量传输方法CDT (Crypto Delta Transfer),该方法采用加密技术,增量传输技术,重复数据删除技术,同时满足异地共享备份安全性与高效性的需求。本发明所采用的技术方案如下
一种基于加密增量传输的异地共享备份恢复方法,加密增量传输主要分为备份和还原两种操作;假定客户端和服务器端分别保留有同一文件的不同版本的数据;所述备份操作,包括如下步骤
(1)客户端对欲备份的文件进行切块、加密等一系列操作,生成明文块、明文块哈希值、密文块、密文块哈希值、blocklist_client明文、密文文件、Summary Signature文件;
(2)客户端用生成的blocklist_client文件对比本地存储的blocklist_server文件, 产生密文块哈希值集合C_Hash_set ;
(3)客户端将密文块哈希值集合C_Hash_Set发送给服务器端;
(4)服务器端收到密文块哈希值集合C_Hash_Set后,和blockcheck表进行对比,产生新的密文块哈希值集合S_Hash_Set ;
(5)服务器端发送密文块哈希值集合S_Hash_Set给客户端;
(6)客户端收到密文块哈希值集合S_Hash_Set后,查找对应的密文块并将密文块增加到密文块集合C_Block_set中;
(7)客户端把密文块集合block、blocklist_client密文文件、SummarySignature文件发送到服务器端;
(8)服务器端收到密文块集合C_Block_set、blocklist_client密文文件、Summary Signature 文件后,更新 blockcheck 表、blocklist_server 密文文件、Summary Signature 表;至此整个备份过程结束;
所述还原操作,包括如下步骤
(A)客户端对欲还原的文件进行切块、加密等一系列操作,生成明文块,明文块哈希值, 密文块,密文块哈希值,blocklist_client文件;
(B)客户端用本地存储的blocklist_server文件对比生成的blocklist_client文件, 产生密文块哈希值集合C_Hash_set ;
(C)客户端发送密文块哈希值集合C_Hash_set,欲还原的文件名filename的SHA-I值给服务器端;
(D)服务器端收到密文块哈希值集合C_Hash_Set后,根据blockcheck表查得密文哈希值对应的密文块,并将密文块增加到密文块集合S_Block_set中,根据欲还原的文件名 filename的SHA-1值查找Summary Signature表中以filename的SHA-1值为主键的对应记录 summary ;
(E)服务器把密文块集合S_Block_set,summary记录发送给客户端;
(F)客户端收到密文块集合S_Block_set后,利用blocklist_server文件和本地文件生成的明文块重组出新文件,利用summary记录验证重组的正确性;至此整个还原过程结
束ο假定客户端或者服务器端只有一方保留有数据,在备份时,只有客户端存有数据, 而在还原时,只有服务器端保留有数据;所述备份操作包括如下步骤
(1)客户端对欲备份的文件进行切块、加密等一系列操作,生成明文块,明文块哈希值, 密文块,密文块哈希值,blocklist_client明文、密文文件,Summary Signature文件;
(2)客户端将密文块,blocklist_client密文文件,SummarySignature文件传输给服务器;
(3)服务器收到密文块,blocklist_client密文文件,SummarySignature文件后,更新blockcheck表,在Summary Signature中增加一条以文件名filename的SHA-1为主键的记录,同时将 blocklist_client 文件名改为 blocklist_server ;
所述还原操作包括如下步骤
(A)客户端利用客户密码对RSA私钥密文进行解密,得到RSA私钥;
(B)服务器将blocklistserver密文文件,密文文件中密文哈希值对应的密文数据块集合S_Block_set,Summary Signature表中的对应记录summary传输给客户端;
(C)客户端收到blocklistserver密文文件,密文数据块,summary信息后,首先对 summary信息中的文件SHA-I密文数据进行RSA解密,得到文件SHA-I明文;
(D)文件SHA-I明文作为AES-CBC解密的对称密钥和初始向量值IV,客户端对 blocklist_server密文文件进行解密,得到明文blocklist_server文件;
(E)根据blocklistserver文件中的数据块明文哈希值,对密文数据块集合S_Block_ set中的密文数据块进行AES-CBC解密;
(F)利用blocklistserver文件,在客户端进行文件的重组;
(G)将重组后的新文件的最后修改时间改为summary信息存有的最有修改时间,同时使用文件的SHA-I明文来验证文件重组的正确性和完整性。本发明的有益效果是
1.对传输的数据在本地客户端进行加密与完整性处理,保证了数据传输以及数据存储的安全性。本发明综合考虑了数据传输中存在的安全隐患以及数据存储在数据中心的安全隐患,提出了数据在传输之前,备份客户端进行数据加密的方案,保证了数据都是以密文形式进行传输和存储。只要RSA加密的私钥不泄露,就算数据被窃取,也只是密文,而得不到明文数据。加强安全性的措施主要有
使用对称加密算法对数据进行加密。使用非对称加密算法对对称加密的对称密钥进行非对称加密。存在数据中心的blocklist文件名都是原文件名的哈希值。对客户端备份或还原操作之前进行合法性验证。利用Summary Signature信息验证重组文件的正确性和完整性。2.使用基于内容的切块技术、压缩技术、增量检测技术,增加了传输的高效性,节约了带宽消耗。本发明综合考虑了数据传输的高效性和存储的高效性,提出了对文件进行基于内容的切块,通过数据块的哈希值对比,鉴别出新旧文件之间的相同数据块和不同数据块。只需要传输这些不同数据块,异地就能重组出新的文件。同时对数据块进行gzip压缩后存储在数据中心,使得数据中心磁盘的占用量减少,同时也节约了带宽的消耗。同时满足了数据异地备份的安全性和高效性需求。传统的数据备份,要么就是只满足数据传输的高效性,对文件进行切块并只传输差异数据,但是数据都是以明文进行传输,如rsync增量备份;要么就是只满足数据的安全性,对传输的文件进行整体加密,然后进行全量传输。3.采用类似于内存的二级cache技术,在数据相同块的查找过程中采用二级查找,大大减轻服务器的负载,提高了数据查找的高效性。本发明采用二级查找技术,在客户端进行第一次局部查找。所谓局部查找,就是客户端值对比前一次备份的文件数据块,并且这种局部查找的命中率非常高。在客户端局部查找一次后,服务器还将进行一次全局查找,确定在其他文件中是否存在相同块。经过二级查找之后,最终才能确定服务器端确实没有存储该数据块,并将从客户端传输到服务端。由于第一次查找是在客户端进行,并且查找的命中率非常高,不仅大大减轻了服务器的负载, 同时也减少了查找次数,节约了查找时间,提高了查找效率。
图1为客户端存有blocklistserver文件的备份过程图; 图2为客户端生成密文数据块以及blocklist密文文件过程图; 图3为客户端加密blocklist文件过程图4为客户端对比两个blocklist文件产生密文哈希值集合过程图5为服务器端收到密文哈希值集合的两种处理方式图6为客户端收到密文哈希值集合取密文数据块过程图7为客户端存有blocklistjever文件的还原过程图8为客户端重组文件的过程图9为客户端第一次备份某文件的过程图10为客户端在原有文件丢失的情况下的还原操作过程具体实施例方式加密增量传输主要分为备份和还原两种操作。假定客户端和服务器端分别保留有同一文件的不同版本的数据。如图1所示,备份操作,包括如下步骤
1.客户端对欲备份的文件进行切块、加密等一系列操作,生成明文块、明文块哈希值、 密文块、密文块哈希值、blocklist_client密文文件、Summary Signature文件;
2.客户端用生成的blocklist_client文件对比本地存储的blocklist_server文件, 产生密文块哈希值集合C_Hash_set ;
3.客户端将密文块哈希值集合C_Hash_Set发送给服务器端;
4.服务器端收到密文块哈希值集合C_Hash_Set后,和blockcheck表进行对比,产生新的密文块哈希值集合S_Hash_Set ;
5.服务器端发送密文块哈希值集合S_Hash_Set给客户端;
6.客户端收到密文块哈希值集合S_Hash_Set后,查找对应的密文块并将密文块增加到密文块集合C_Block_set中;7.客户端把密文块集合block、blocklist_client密文文件、SummarySignature文件发送到服务器端;
8.月艮务器端收到密文块集合block、blocklist_client密文文件、SummarySignature 文件后,更新 blockcheck 表、blocklist_server 密文文件、Summary Signature 表。至此整个备份过程结束。所述的切块、加密一系列操作包括对欲操作的文件进行基于内容的CDC切块、对切出来的明文数据块计算哈希值、将明文块进行压缩形成压缩块,将明文块的哈希值作为对称密钥对压缩块进行加密形成密文块,计算密文块的哈希值,生成blocklistjlient密文文件,Summary Signature信息,其中
基于内容的CDC切块是Rabin算法的特例,为
权利要求
1.一种基于加密增量传输的异地共享备份恢复方法,加密增量传输主要分为备份和还原两种操作;其特征在于,假定客户端和服务器端分别保留有同一文件的不同版本的数据; 所述备份操作,包括如下步骤(1)客户端对欲备份的文件进行切块、加密等一系列操作,生成明文块、明文块哈希值、密文块、密文块哈希值、blocklist_client明文、密文文件、Summary Signature文件;(2)客户端用生成的blocklist_client文件对比本地存储的blocklist_server文件, 产生密文块哈希值集合C_Hash_set ;(3)客户端将密文块哈希值集合C_Hash_Set发送给服务器端;(4)服务器端收到密文块哈希值集合C_Hash_Set后,和blockcheck表进行对比,产生新的密文块哈希值集合S_Hash_Set ;(5)服务器端发送密文块哈希值集合S_Hash_Set给客户端;(6)客户端收到密文块哈希值集合S_Hash_Set后,查找对应的密文块并将密文块增加到密文块集合C_Block_set中;(7)客户端把密文块集合block、blocklist_client密文文件、SummarySignature文件发送到服务器端;(8)服务器端收到密文块集合C_Block_set、blocklist_client密文文件、Summary Signature 文件后,更新 blockcheck 表、blocklist_server 密文文件、Summary Signature 表;至此整个备份过程结束;所述还原操作,包括如下步骤(A)客户端对欲还原的文件进行切块、加密等一系列操作,生成明文块,明文块哈希值, 密文块,密文块哈希值,blocklist_client文件;(B)客户端用本地存储的blocklist_server文件对比生成的blocklist_client文件, 产生密文块哈希值集合C_Hash_set ;(C)客户端发送密文块哈希值集合C_Hash_set,欲还原的文件名filename的SHA-I值给服务器端;(D)服务器端收到密文块哈希值集合C_Hash_Set后,根据blockcheck表查得密文哈希值对应的密文块,并将密文块增加到密文块集合S_Block_set中,根据欲还原的文件名 filename的SHA-1值查找Summary Signature表中以filename的SHA-1值为主键的对应记录 summary ;(E)服务器把密文块集合S_Block_set,summary记录发送给客户端;(F)客户端收到密文块集合S_Block_set后,利用blocklist_server文件和本地文件生成的明文块重组出新文件,利用summary记录验证重组的正确性;至此整个还原过程结束ο
2.根据权利要求1所述基于加密增量传输的异地共享备份恢复方法,其特征在于,所述步骤(1)和步骤(A)中,所述客户端加密生成blocklistjlient文件的过程主要包括如下步骤(1. 1)客户端对欲备份的明文文件进行基于内容的切块;(1. 2)计算明文数据块的哈希值;(1. 3)对明文块进行压缩,同时以明文块的哈希值作为AES-CBC对称加密的对称密钥;(1. 4)计算密文数据块的哈希值;(1. 5)利用明文块哈希值,密文块哈希值,密文块的长度组成blocklist文件; (1. 6)对blocklist文件进行对称密钥加密。
3.根据权利要求2所述基于加密增量传输的异地共享备份恢复方法,其特征在于,所述步骤(1. 6)中,对blocklist文件进行对称密钥加密具体包括如下子步骤(1.6. 1)客户端使用RSA公私钥产生器随机生成一对RSA密钥对,并使用客户端用户密码对RSA私钥进行对称加密;(1. 6. 2)计算欲备份的文件的SHA-I值,并将此哈希值作为对bl0Cklist_Client(l. 6 .3)文件AES-CBC对称加密的对称密钥;使用RSA公私钥产生器生成的公钥对文件的哈希值进行RSA加密,生成文件SHA-I值的密文数据;(1. 6. 4)对blocklist_client文件进行AES-CBC对称加密,对称密钥为备份文件的 SHA-I 值。
4.根据权利要求1所述基于加密增量传输的异地共享备份恢复方法,其特征在于,所述步骤(2)和步骤(B)中,所述客户端用生成的blocklistjlient文件对比本地存储的 blocklist_server文件,产生密文块哈希值集合C_HaSh_Set的过程,主要包括如下子步骤(2. 1)初始化一个空的集合C_Hash_set,用于存放密文哈希值; (2. 2)从blocklist_client表中取出一条记录,然后在blocklist_server表中查找是否有这条记录,跳到步骤(2. 4),如果没有,则进入步骤(2. 3); (2.3)将这个密文哈希值增加到集合C_Hash_set中;(2. 4)判断是否已经处理完所有的密文哈希值,如果是,则进入步骤(2. 5),如果没有处理完,则跳到步骤(2. 2);(2.5)将密文哈希值集合C_Hash_set发送到服务器端。
5.根据权利要求1所述基于加密增量传输的异地共享备份恢复方法,其特征在于,所述步骤(4)中,所述服务器端收到密文块哈希值集合C_Hash_Set后,和blockcheck表进行对比,产生新的密文块哈希值集合S_Hash_Set的过程,主要包括如下子步骤(4. 1)初始化一个空的集合S_Hash_Set,用于存放密文哈希值; (4. 2)从C_Hash_set集合中取出一个密文哈希值元素E_Hash,然后在blockcheck表中查找是否有这个密文哈希值,如果有,跳到步骤(4. 4),如果没有,则进入步骤(4. 3); (4.3)将这个密文哈希值EJfash增加到集合S_Hash_set中; (4. 4)是否已经处理完所有的密文哈希值,如果是,则进入步骤(4. 5),如果未处理完, 则跳到步骤(4. 2);(4. 5)将密文哈希集合S_Hash_set发送到客户端。
6.根据权利要求1所述基于加密增量传输的异地共享备份恢复方法,其特征在于,所述步骤(6)中,所述客户端收到密文块哈希值集合S_Hash_Set后,查找对应的密文块并将密文块增加到密文块集合C_Block_set中的过程,主要包括如下子步骤(6. 1)初始化一个空的集合C_Block_set,用于存放密文块;(6.2)从S_Hash_set集合中取出一个密文哈希值,然后通过blocklistjlient查找对应的密文数据块;(6.3)将密文数据块增加到C_Block_Set集合中;(6. 4)判断是否处理完所有的密文哈希值,如果是,则进入步骤(6. 5),如果没有处理完,则跳到(6. 2);(6.5)将密文数据块集合C_Block_set发送到服务器端。
7.根据权利要求2所述基于加密增量传输的异地共享备份恢复方法,其特征在于, 所述步骤(9)中,所述服务器端收到密文块集合C_Block_set,blocklistjlient文件,Summary Signature 文件后,更新 blockcheck 表,blocklist_server 文件,Summary Signature表,主要包括如下子步骤(9. 1)从密文块集合C_Block_set中取出所有密文数据块,将密文数据块存放到硬盘上,并获得存放的物理地址,然后将密文块的SHA-I值,物理地址增加到blockcheck表中;(9. 2)服务器用blocklist_client密文文件覆盖blocklist_server密文文件;(9. 3)服务器更新Summary Signature表中文件名filename的SHA-1值对应的记录。
8.根据权利要求2所述基于加密增量传输的异地共享备份恢复方法,其特征在于,所述步骤(F)中,所述客户端收到密文块集合S_Block_set后,利用blocklistserver文件和本地文件生成的明文块重组出新文件的过程如图8所示,利用summary记录验证重组的正确性,主要包括如下步骤(F. 1)初始化一个空的文件New_file ;(F. 2)从blocklist_server表中取出一条记录,看能否在blocklist_client表中中找到相同的记录,如果有找到,则跳到步骤(F. 4),如果没有找到,则进入(F. 3);(F. 3)从S_Block_set取出密文块,进行gzip解压,并使用blocklist_server中的明文哈希值进行数据块的解密,并将明文块写入到文件New_file中,跳到(F. 5);(F. 4)在blocklistjlient中通过明文哈希值找到本地客户端相应的明文块,并写入文件New_file中;(F. 5)判断是否处理完blocklistserver表中的所有记录,如果处理完,则进入步骤 (F. 6),如果未处理完,则跳到(F. 2);(F. 6)计算重组成的文件New_file的SHA-I值,并和Summary Signature信息中的文件SHA-I对应的明文值进行对比,如果相同,则进入步骤(F. 7),如果不相同,则表明重组失败,退出程序;(F. 7)删除开始欲还原的文件,并将文件New_file的最后修改时间改为Summary Signature信息中保存的最后修改时间,New_file文件名改为欲还原的文件名filename。
9.一种基于加密增量传输的异地共享备份恢复方法,加密增量传输主要分为备份和还原两种操作;其特征在于,假定客户端或者服务器端只有一方保留有数据,在备份时,只有客户端存有数据,而在还原时,只有服务器端保留有数据;所述备份操作包括如下步骤(1)客户端对欲备份的文件进行切块、加密等一系列操作,生成明文块,明文块哈希值, 密文块,密文块哈希值,blocklist_client明文、密文文件,Summary Signature文件;(2)客户端将密文块,blocklist_client密文文件,SummarySignature文件传输给服务器;(3)服务器收到密文块,blocklist_client密文文件,Summary Signature文件后,更新blockcheck表,在Summary Signature中增加一条以文件名filename的SHA-1为主键的记录,同时将 blocklist_client 文件名改为 blocklist_server ;所述还原操作包括如下步骤(A)客户端利用客户密码对RSA私钥密文进行解密,得到RSA私钥;(B)服务器将blocklistserver密文文件,密文文件中密文哈希值对应的密文数据块集合S_Block_set,Summary Signature表中的对应记录summary传输给客户端;(C)客户端收到blocklistserver密文文件,密文数据块,summary信息后,首先对 summary信息中的文件SHA-I密文数据进行RSA解密,得到文件SHA-I明文;(D)文件SHA-I明文作为AES-CBC解密的对称密钥和初始向量值IV,客户端对 blocklist_server密文文件进行解密,得到明文blocklist_server文件;(E)根据blocklistserver文件中的数据块明文哈希值,对密文数据块集合S_Block_ set中的密文数据块进行AES-CBC解密;(F)利用blocklistserver文件,在客户端进行文件的重组;(G)将重组后的新文件的最后修改时间改为summary信息存有的最有修改时间,同时使用文件的SHA-I明文来验证文件重组的正确性和完整性。
10.根据权利要求9所述基于加密增量传输的异地共享备份恢复方法,其特征在于,所述步骤(A)中对RSA私钥密文进行解密,所述步骤(c)中对文件SHA-I密文进行解密和所述步骤(d)中对blocklist密文文件进行解密的过程,主要包括如下步骤(a)客户端从服务器端收到密文blocklist文件和文件hash值的密文;(b)客户端使用用户密码对RSA私钥密文进行解密,得到RSA私钥明文;(c)利用RSA私钥明文对文件hash值密文进行RSA解密,得到文件hash值明文;(d)利用文件hash值明文,对密文blocklist文件进行AES-CBC解密,得到明文 blocklist 文件。
全文摘要
本发明公开了一种基于加密增量传输的异地共享备份恢复方法。本发明综合考虑了数据传输的带宽消耗和数据在传输中存在的安全隐患以及数据存储在数据中心的安全隐患,提出了数据在传输之前,备份客户端进行数据切块、压缩、加密的方案。既确保了只传输数据增量,从而提高传输效率,优化传输带宽;又保证了数据都是以密文形式进行传输和存储,只要加密密钥不泄露,就算数据被窃取,也只是密文,而得不到明文数据。
文档编号H04L29/06GK102231727SQ20111006504
公开日2011年11月2日 申请日期2011年3月18日 优先权日2011年3月18日
发明者冷阳, 刘燕燕, 李渝川, 王喜萍, 蒋晓宁, 黄军, 黄怡浩, 黄海峰 申请人:杭州奕锐电子有限公司