CN102231727B - 基于加密增量传输的异地共享备份恢复方法 - Google Patents

基于加密增量传输的异地共享备份恢复方法 Download PDF

Info

Publication number
CN102231727B
CN102231727B CN201110065043.4A CN201110065043A CN102231727B CN 102231727 B CN102231727 B CN 102231727B CN 201110065043 A CN201110065043 A CN 201110065043A CN 102231727 B CN102231727 B CN 102231727B
Authority
CN
China
Prior art keywords
file
client
blocklist
ciphertext
block
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.)
Active
Application number
CN201110065043.4A
Other languages
English (en)
Other versions
CN102231727A (zh
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.)
HANGZHOU ETARAY ELECTRONICS CO Ltd
Original Assignee
HANGZHOU ETARAY ELECTRONICS CO Ltd
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 HANGZHOU ETARAY ELECTRONICS CO Ltd filed Critical HANGZHOU ETARAY ELECTRONICS CO Ltd
Priority to CN201110065043.4A priority Critical patent/CN102231727B/zh
Publication of CN102231727A publication Critical patent/CN102231727A/zh
Application granted granted Critical
Publication of CN102231727B publication Critical patent/CN102231727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于加密增量传输的异地共享备份恢复方法。本发明综合考虑了数据传输的带宽消耗和数据在传输中存在的安全隐患以及数据存储在数据中心的安全隐患,提出了数据在传输之前,备份客户端进行数据切块、压缩、加密的方案。既确保了只传输数据增量,从而提高传输效率,优化传输带宽;又保证了数据都是以密文形式进行传输和存储,只要加密密钥不泄露,就算数据被窃取,也只是密文,而得不到明文数据。

Description

基于加密增量传输的异地共享备份恢复方法
技术领域
本发明属于网络信息安全领域,尤其涉及一种文件异地共享备份恢复的安全高效处理方法。
背景技术
传统的异地备份可称之为异地独享备份。这种情况下,备份客户与备份中心属于同一个管理域,属于内联网,对备份数据的安全性(特指机密性与完整性,下同)要求不高。
近几年,随着IT技术的发展,应用的普及,分工的细化,出现了专门的第三方数据服务中心(IDC)。于是,异地共享备份开始出现,并得到快速的发展,成为异地备份的主要发展趋势。在异地共享备份模式下,备份客户与备份中心分属不同的管理域,属于外联网,由此带来的两个主要问题需要解决。
首先是数据安全问题。首先,典型的备份服务中心是数据中心。对特定备份客户而言,数据中心管理机构以及备份服务器、存储网络、存储介质等资源都是多客户共享的,所以存在数据泄密、非法访问、非法窜改等安全隐患。对备份中心而言,为了清楚界定安全责任,也希望机密性、完整性等数据安全问题由客户自主控制即加密之后交给数据中心。其次,数据在网络上传输的过程中也存在被窃取与破坏的风险。因此,数据的安全问题需要在备份客户端解决,由备份客户自主控制。
其次是带宽优化问题。对于地震、台风、海啸等自然灾难和火灾、恐怖袭击等人为灾害,要求异地备份的距离在100Km以上,满足这个距离的异地备份网络因为价格的原因,一般带宽较小、延迟较大。因此,异地共享备份必须优化网络带宽,在网络上尽量少传数据。
表面看来,解决这两个问题并不复杂。的确,把两个问题割裂开来,已有比较成熟的解决方法。比如用加密技术AES-CBC解决数据安全问题,用增量同步技术Rsync解决带宽优化问题。
不幸的是必须把二者结合起来,才能满足异地共享备份的应用需求,但这是相互矛盾的。加密的雪崩效应会放大增量。按照加密原理,新旧文件明文相差一点点,用AES-CBC处理之后,密文会几乎不一样。Rsync的原理是在备份中心已有旧文件的前提下,通过和备份客户端的协商交互,只传输新文件与旧文件的差异,达到把新文件同步到备份中心的目的,具有传输高效性的特点。很明显,如果不加密,Rsync的带宽优化效果很好;但是加密之后,Rsync几乎不起作用!
如何解决这个矛盾-既能支持备份客户自主控制的高安全性,即信息在备份客户端加密,从而保障信息从备份客户到备份中心的传输机密性与信息在备份中心的存储机密性,又能支持类似Rsync增量同步的高效性,提高传输的效率,优化传输的带宽,已经成为亟待解决的问题。
发明内容
本发明的目的在于针对现有技术的不足,提供一种异地共享备份的处理方法,该方法称为加密增量传输方法CDT(Crypto Delta Transfer),该方法采用加密技术,增量传输技术,重复数据删除技术,同时满足异地共享备份安全性与高效性的需求。
本发明所采用的技术方案如下:
一种基于加密增量传输的异地共享备份恢复方法,加密增量传输主要分为备份和还原两种操作;假定客户端和服务器端分别保留有同一文件的不同版本的数据;所述备份操作,包括如下步骤:
(1)客户端对欲备份的文件进行切块、加密等一系列操作,生成:明文块、明文块哈希值、密文块、密文块哈希值、blocklist_client明文、密文文件、SummarySignature文件;
(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-1值给服务器端;
(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明文、密文文件,SummarySignature文件;
(2)客户端将密文块,blocklist_client密文文件,Summary Signature文件传输给服务器;
(3)服务器收到密文块,blocklist_client密文文件,Summary Signature文件后,更新blockcheck表,在Summary Signature中增加一条以文件名filename的SHA-1为主键的记录,同时将blocklist_client文件名改为blocklist_server;
所述还原操作包括如下步骤:
(A)客户端利用客户密码对RSA私钥密文进行解密,得到RSA私钥;
(B)服务器将blocklist_server密文文件,密文文件中密文哈希值对应的密文数据块集合S_Block_set,Summary Signature表中的对应记录summary传输给客户端;
(C)客户端收到blocklist_server密文文件,密文数据块,summary信息后,首先对summary信息中的文件SHA-1密文数据进行RSA解密,得到文件SHA-1明文;
(D)文件SHA-1明文作为AES-CBC解密的对称密钥和初始向量值IV,客户端对blocklist_server密文文件进行解密,得到明文blocklist_server文件;
(E)根据blocklist_server文件中的数据块明文哈希值,对密文数据块集合S_Block_set中的密文数据块进行AES-CBC解密;
(F)利用blocklist_server文件,在客户端进行文件的重组;
(G)将重组后的新文件的最后修改时间改为summary信息存有的最有修改时间,同时使用文件的SHA-1明文来验证文件重组的正确性和完整性。
本发明的有益效果是:
1.对传输的数据在本地客户端进行加密与完整性处理,保证了数据传输以及数据存储的安全性。
本发明综合考虑了数据传输中存在的安全隐患以及数据存储在数据中心的安全隐患,提出了数据在传输之前,备份客户端进行数据加密的方案,保证了数据都是以密文形式进行传输和存储。只要RSA加密的私钥不泄露,就算数据被窃取,也只是密文,而得不到明文数据。加强安全性的措施主要有:
使用对称加密算法对数据进行加密。
使用非对称加密算法对对称加密的对称密钥进行非对称加密。
存在数据中心的blocklist文件名都是原文件名的哈希值。
对客户端备份或还原操作之前进行合法性验证。
利用Summary Signature信息验证重组文件的正确性和完整性。
2.使用基于内容的切块技术、压缩技术、增量检测技术,增加了传输的高效性,节约了带宽消耗。
本发明综合考虑了数据传输的高效性和存储的高效性,提出了对文件进行基于内容的切块,通过数据块的哈希值对比,鉴别出新旧文件之间的相同数据块和不同数据块。只需要传输这些不同数据块,异地就能重组出新的文件。同时对数据块进行gzip压缩后存储在数据中心,使得数据中心磁盘的占用量减少,同时也节约了带宽的消耗。同时满足了数据异地备份的安全性和高效性需求。
传统的数据备份,要么就是只满足数据传输的高效性,对文件进行切块并只传输差异数据,但是数据都是以明文进行传输,如rsync增量备份;要么就是只满足数据的安全性,对传输的文件进行整体加密,然后进行全量传输。
3.采用类似于内存的二级cache技术,在数据相同块的查找过程中采用二级查找,大大减轻服务器的负载,提高了数据查找的高效性。
本发明采用二级查找技术,在客户端进行第一次局部查找。所谓局部查找,就是客户端值对比前一次备份的文件数据块,并且这种局部查找的命中率非常高。在客户端局部查找一次后,服务器还将进行一次全局查找,确定在其他文件中是否存在相同块。经过二级查找之后,最终才能确定服务器端确实没有存储该数据块,并将从客户端传输到服务端。由于第一次查找是在客户端进行,并且查找的命中率非常高,不仅大大减轻了服务器的负载,同时也减少了查找次数,节约了查找时间,提高了查找效率。
附图说明
图1为客户端存有blocklist_server文件的备份过程图;
图2为客户端生成密文数据块以及blocklist密文文件过程图;
图3为客户端加密blocklist文件过程图;
图4为客户端对比两个blocklist文件产生密文哈希值集合过程图;
图5为服务器端收到密文哈希值集合的两种处理方式图;
图6为客户端收到密文哈希值集合取密文数据块过程图;
图7为客户端存有blocklist_sever文件的还原过程图;
图8为客户端重组文件的过程图;
图9为客户端第一次备份某文件的过程图;
图10为客户端在原有文件丢失的情况下的还原操作过程图。
具体实施方式
加密增量传输主要分为备份和还原两种操作。假定客户端和服务器端分别保留有同一文件的不同版本的数据。
如图1所示,备份操作,包括如下步骤:
1.客户端对欲备份的文件进行切块、加密等一系列操作,生成明文块、明文块哈希值、密文块、密文块哈希值、blocklist_client密文文件、SummarySignature文件;
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密文文件、SummarySignature表。至此整个备份过程结束。
所述的切块、加密一系列操作包括对欲操作的文件进行基于内容的CDC切块、对切出来的明文数据块计算哈希值、将明文块进行压缩形成压缩块,将明文块的哈希值作为对称密钥对压缩块进行加密形成密文块,计算密文块的哈希值,生成blocklist_client密文文件,Summary Signature信息,其中:
基于内容的CDC切块是Rabin算法的特例,为:
Σ i = n - 8192 n P i = 0 ( mod 4096 )
对切出来的明文块计算哈希值,主要采用SHA-1算法计算哈希值;将明文块进行压缩形成压缩块,主要是采用gzip压缩算法进行压缩;将明文块的哈希值作为对称密钥对压缩块进行加密形成密文块,主要采取AES-CBC加密算法进行加密,初始向量值IV也选用明文块的哈希值
客户端加密生成blocklist_client文件过程如图2所示,主要包括如下步骤:
1.客户端对欲备份的明文文件进行基于内容的切块;
2.计算明文数据块的哈希值;
3.对明文块进行压缩,同时以明文块的哈希值作为AES-CBC对称加密的对称密钥;
4.计算密文数据块的哈希值;
5.利用明文块哈希值,密文块哈希值,密文块的长度组成blocklist文件;
6.对blocklist文件进行对称密钥加密。
所述对blocklist文件进行对称密钥加密过程如图3所示,主要包括如下步骤:
1.客户端使用RSA公私钥产生器随机生成一对RSA密钥对,并使用客户端用户密码对RSA私钥进行对称加密;
2.计算欲备份的文件的SHA-1值,并将此哈希值作为对blocklist_client文件AES-CBC对称加密的对称密钥;
3.使用RSA公私钥产生器生成的公钥对文件的哈希值进行RSA加密,生成文件SHA-1值的密文数据;
4.对文件blocklist_client文件进行AES-CBC对称加密,对称密钥为备份文件的SHA-1值。
所述客户端用生成的blocklist_client文件对比本地存储的blocklist_server文件,产生密文块哈希值集合C_Hash_set的过程如图4所示,主要包括如下步骤:
1.步骤401,初始化一个空的集合C_Hash_set,用于存放密文哈希值;
2.步骤402,从blocklist_client表中取出一条记录,然后执行步骤403,在blocklist_server表中查找是否有这条记录,如果有,跳到4,如果没有,则进入3;
3.步骤404,将这个密文哈希值增加到集合C_Hash_set中;
4.步骤405,是否已经处理完所有的密文哈希值,如果是,则进入5,如果未处理完,则跳到2;
5.步骤406,将密文哈希值集合C_Hash_set发送到服务器端。
所述服务器端收到密文块哈希值集合C_Hash_set后,和blockcheck表进行对比,产生新的密文块哈希值集合S_Hash_set的过程如图5所示,主要包括如下步骤:
1.步骤502,初始化一个空的集合S_Hash_set,用于存放密文哈希值;
2.步骤503,从S_Hash_set集合中取出一个密文哈希值元素E_Hash,然后执行步骤504,在blockcheck表中查找是否有这个密文哈希值,如果有,跳到4,如果没有,则进入3;
3.步骤505,将这个密文哈希值E_Hash增加到集合S_Hash_set中;
4.步骤506,是否已经处理完所有的密文哈希值,如果是,则进入5,如果未处理完,则跳到2;
5.步骤507,将密文哈希集合S_Hash_set发送到客户端。
所述客户端收到密文块哈希值集合S_Hash_set后,查找对应的密文块并将密文块增加到密文块集合C_Block_set中的过程如图6所示,主要包括如下步骤:
1.步骤601,初始化一个空的集合C_Block_set,用于存放密文块;
2.步骤602,从S_Hash_set集合中取出一个密文哈希值,然后执行步骤603,通过blocklist_client查找对应的密文数据块;
3.步骤604,将密文数据块增加到C_Block_set集合中;
4.步骤605,判断是否处理完所有的密文哈希值,如果是,则进入5,如果没有处理完,则跳到2;
5.步骤606,将密文数据块集合C_Block_set发送到服务器端。
所述服务器端收到密文块集合C_Block_set,blocklist_client密文文件,Summary Signature文件后,更新blockcheck表,blocklist_server文件,Summary Signature表,主要包括如下步骤:
1.从密文块集合C_Block_set中取出所有密文数据块,将密文数据块存放到硬盘上,并获得存放的物理地址,然后将密文块的SHA-1值,物理地址增加到blockcheck表中;
2.服务器用blocklist_client密文文件覆盖blocklist_server密文文件;
3.服务器更新Summary Signature表中文件名filename的SHA-1值对应的记录。
还原操作如图7所示,包括如下步骤:
1.客户端对欲还原的文件进行切块、加密等一系列操作,生成明文块,明文块哈希值,密文块,密文块哈希值,blocklist_client文件;
2.客户端用本地存储的blocklist_server文件对比生成的blocklist_client文件,产生密文块哈希值集合C_Hash_set;
3.客户端发送密文块哈希值集合C_Hash_set,欲还原的文件名filename的SHA-1值给服务器端;
4.服务器端收到密文块哈希值集合C_Hash_set后,根据blockcheck表查得密文哈希值对应的密文块,并将密文块增加到密文块集合S_Block_set中,根据欲还原的文件名filename的SHA-1值查找Summary Signature表中以filename的SHA-1值为主键的对应记录summary;
5.服务器把密文块集合S_Block_set,summary记录发送给客户端;
6.客户端收到密文块集合S_Block_set后,利用blocklist_server文件和本地文件生成的明文块重组出新文件,利用summary记录验证重组的正确性。至此整个还原过程结束。
所述的blocklist_client包括每个明文块的哈希值,密文块的哈希值,密文块的长度。
所述服务器端收到密文块哈希值集合C_Hash_set后,根据blockcheck表查得密文哈希值对应的密文块,并将密文块增加到密文块集合S_Block_set中的过程如图5所示,根据欲还原的文件名filename查找Summary Signature表中的对应记录summary,主要包括如下步骤:
1.步骤508,初始化一个空的集合S_Block_set,用于存放密文块;
2.步骤509,从C_Hash_set集合中取出一个密文哈希值E_Hash,然后进入步骤510,通过blockcheck查找对应的密文数据块;
3.步骤511,将密文数据块增加到S_Block_set集合中;
4.步骤512,判断是否处理完C_Hash_set集合中的所有的密文哈希值元素,如果是,则进入5,如果未处理完,则跳到2;
5.步骤513,将密文数据块集合S_Block_set发送到客户端。
所述客户端收到密文块集合S_Block_set后,利用blocklist_server文件和本地文件生成的明文块重组出新文件的过程如图8所示,利用summary记录验证重组的正确性,主要包括如下步骤:
1.步骤801,初始化一个空的文件New_file;
2.步骤802,从blocklist_server表中中取出一条记录,执行步骤803,看能否在blocklist_client表中找到相同的记录,如果有找到,则跳到4,如果没有找到,则进入3;
3.步骤805,从S_Block_set取出密文块,执行步骤806,进行gzip解压,并使用blocklist_server中的明文哈希值进行数据块的解密,然后执行步骤807,将明文块写入到文件New_file中,跳到5;
4.步骤804,在blocklist_client中通过明文哈希值找到本地客户端相应的明文块,执行807,将明文数据块写入文件New_file中;
5.步骤808,判断是否处理完blocklist_server表中的所有记录,如果处理完,则进入6,如果未处理完,则跳到2;
6.步骤809,计算重组成的文件New_file的SHA-1值,并和SummarySignature信息中的文件SHA-1对应的明文值进行对比,如果相同,则进入7,如果不相同,则表明重组失败,退出程序;
7.步骤810,删除开始欲还原的文件,并将文件New_flie的最后修改时间改为Summary Signature信息中保存的最后修改时间,New_flie文件名改为欲还原的文件名filename。
假定客户端或者服务器端只有一方保留有数据,在备份时,只有客户端存有数据,而在还原时,只有服务器端保留有数据。
备份操作如图9所示,包括如下步骤:
1.客户端对欲备份的文件进行切块、加密等一系列操作,生成明文块,明文块哈希值,密文块,密文块哈希值,blocklist_client密文文件,SummarySignature文件;
2.客户端将密文块,blocklist_client密文文件,Summary Signature文件传输给服务器;
3.服务器收到密文块,blocklist_client密文文件,Summary Signature文件后,更新blockcheck表,在Summary Signature中增加一条以文件名filename的SHA-1为主键的记录,同时将blocklist_client文件名改为blocklist_server。
所述的blocklist_client文件,blocklist_client包括每个明文块的哈希值,密文块的哈希值,密文块的长度。Summary Signature信息包括欲备份的文件名,文件的大小,文件的SHA-1值的RSA密文值,blocklist_client文件的SHA-1值,文件的最后修改时间。
还原操作如图10所示,包括如下步骤:
1.客户端利用客户密码对RSA私钥密文进行解密,得到RSA私钥;
2.服务器将blocklist_server密文文件,密文文件中密文哈希值对应的密文数据块集合S_Block_set,Summary Signature表中的对应条目summary传输给客户端;
3.客户端收到blocklist_server密文文件,密文数据块,summary信息后,首先对summary信息中的文件SHA-1密文数据进行RSA解密,得到文件SHA-1明文;
4.文件SHA-1明文作为AES-CBC解密的对称密钥和初始向量值IV,客户端对blocklist_server密文文件进行解密,得到明文blocklist_server文件。
5.根据blocklist_server文件中的数据块明文哈希值,对密文数据块集合S_Block_set中的密文数据块进行AES-CBC解密;
6.利用blocklist_server文件,在客户端进行文件的重组;
7.将重组后的新文件的最后修改时间改为summary信息存有的最有修改时间,同时使用文件的SHA-1明文来验证文件重组的正确性和完整性。
所述的对RSA私钥密文进行解密,对文件SHA-1密文进行解密和对blocklist密文文件进行解密的过程,主要包括如下步骤:
1.客户端从服务器端收到密文blocklist_server文件和文件hash值的密文(实际上存储在summary信息中);
2.客户端使用用户密码对RSA私钥密文进行解密,得到RSA私钥明文;
3.利用RSA私钥明文对文件hash值密文进行RSA解密,得到文件hash值明文;
4.利用文件hash值明文,对密文blocklist文件进行AES-CBC解密,得到明文blocklist文件。

Claims (2)

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)客户端把密文块集合C_Block_set、blocklist_client密文文件、Summary Signature文件发送到服务器端;
(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-1值给服务器端;
(D)服务器端收到密文块哈希值集合C_Hash_set后,根据blockcheck表查得密文哈希值对应的密文块,并将密文块增加到密文块集合C_Block_set中,根据欲还原的文件名filename的SHA-1值查找Summary Signature文件中以filename的SHA-1值为主键的对应记录summary信息;
(E)服务器把密文块集合S_Block_set,summary信息发送给客户端;
(F)客户端收到密文块集合S_Block_set后,利用明文blocklist_server文件和本地文件生成的明文块重组出新文件,利用summary信息验证重组的正确性;至此整个还原过程结束;
所述步骤(1)和步骤(A)中,所述客户端加密生成blocklist_client密文文件的过程主要包括如下步骤:
(1.1)客户端对欲备份的明文文件进行基于内容的切块;
(1.2)计算明文数据块的哈希值;
(1.3)对明文块进行压缩,同时以明文块的哈希值作为AES-CBC对称加密的对称密钥;
(1.4)计算密文数据块的哈希值;
(1.5)利用明文块哈希值,密文块哈希值,密文块的长度组成blocklist_client文件;
(1.6)对blocklist_client文件进行对称密钥加密,生成blocklist_client密文文件;
    所述步骤(1.6)中,对blocklist_client文件进行对称密钥加密,生成blocklist_client密文文件具体包括如下子步骤:
(1.6.1)客户端使用RSA公私钥产生器随机生成一对RSA密钥对,并使用客户端用户密码对RSA私钥进行对称加密;
(1.6.2)计算欲备份的文件的SHA-1值,并将此哈希值作为对blocklist_client文件AES-CBC对称加密的对称密钥;
(1.6.3)使用RSA公私钥产生器生成的公钥对文件的哈希值进行RSA加密,生成文件SHA-1值的密文数据;
(1.6.4)对blocklist_client文件进行AES-CBC对称加密,生成blocklist_client密文文件,对称密钥为备份文件的SHA-1值;
    所述步骤(2)和步骤(B)中,所述客户端用生成的blocklist_client文件对比本地存储的明文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发送到服务器端;
    所述步骤(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)将这个密文哈希值E_Hash增加到集合S_Hash_set中;
(4.4)是否已经处理完所有的密文哈希值,如果是,则进入步骤(4.5),如果未处理完,则跳到步骤(4.2);
(4.5)将密文哈希集合S_Hash_set发送到客户端;
    所述步骤(6)中,所述客户端收到密文块哈希值集合S_Hash_set后,查找对应的密文块并将密文块增加到密文块集合C_Block_set中的过程,主要包括如下子步骤:
(6.1)初始化一个空的集合C_Block_set,用于存放密文块;
(6.2)从S_Hash_set集合中取出一个密文哈希值,然后通过blocklist_client密文文件查找对应的密文数据块;
(6.3)将密文数据块增加到C_Block_set集合中;
(6.4)判断是否处理完所有的密文哈希值,如果是,则进入步骤(6.5),如果没有处理完,则跳到(6.2);
(6.5)将密文数据块集合C_Block_set发送到服务器端;
    所述步骤(8)中,所述服务器端收到密文块集合C_Block_set,blocklist_client密文文件,Summary Signature文件后,更新blockcheck表,blocklist_server密文文件,Summary Signature文件,主要包括如下子步骤:
(8.1)从密文块集合C_Block_set中取出所有密文数据块,将密文数据块存放到硬盘上,并获得存放的物理地址,然后将密文块的SHA-1值,物理地址增加到blockcheck表中;
(8.2)服务器用blocklist_client密文文件覆盖blocklist_server密文文件;
(8.3)服务器更新Summary Signature文件中文件名filename的SHA-1值对应的记录;
    所述步骤(F)中,所述客户端收到密文块集合S_Block_set后,利用明文blocklist_server文件和本地文件生成的明文块重组出新文件,利用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)在blocklist_client文件中通过明文哈希值找到本地客户端相应的明文块,并写入文件New_file中;
(F.5)判断是否处理完明文blocklist_server文件中的所有记录,如果处理完,则进入步骤(F.6),如果未处理完,则跳到(F.2);
(F.6)计算重组成的文件New_file的SHA-1值,并和Summary信息中的文件SHA-1对应的明文值进行对比,如果相同,则进入步骤(F.7),如果不相同,则表明重组失败,退出程序;
(F.7)删除开始欲还原的文件,并将文件New_file的最后修改时间改为Summary信息中保存的最后修改时间,New_file文件名改为欲还原的文件名filename。
2.一种基于加密增量传输的异地共享备份恢复方法,加密增量传输主要分为备份和还原两种操作;其特征在于,假定客户端或者服务器端只有一方保留有数据,在备份时,只有客户端存有数据,而在还原时,只有服务器端保留有数据;
所述备份操作包括如下步骤:
(1)客户端对欲备份的文件进行切块、加密操作,生成明文块,明文块哈希值,密文块,密文块哈希值,blocklist_client密文文件,Summary Signature文件;
(2)客户端将密文块,blocklist_client密文文件,Summary Signature文件传输给服务器;
(3)服务器收到密文块,blocklist_client密文文件,Summary Signature文件后,更新blockcheck表,在Summary Signature文件中增加一条以文件名filename的SHA-1为主键的记录,同时将blocklist_client密文文件的文件名改为blocklist_server密文文件;
所述还原操作包括如下步骤:
(A)客户端利用客户密码对RSA私钥密文进行解密,得到RSA私钥;
(B)服务器将blocklist_server密文文件,blocklist_server密文文件中密文哈希值对应的密文数据块集合S_Block_set,Summary Signature文件中的对应记录summary信息传输给客户端;
(C)客户端收到blocklist_server密文文件,密文数据块集合S_Block_set,summary信息后,首先对summary信息中的文件SHA-1密文数据进行RSA解密,得到文件SHA-1明文;
(D)文件SHA-1明文作为AES-CBC解密的对称密钥和初始向量值IV,客户端对blocklist_server密文文件进行解密,得到明文blocklist_server文件;
(E)根据明文blocklist_server文件中的数据块明文哈希值,对密文数据块集合S_Block_set中的密文数据块进行AES-CBC解密;
(F)利用明文blocklist_server文件,在客户端进行文件的重组;
(G)将重组后的新文件的最后修改时间改为summary信息存有的最后修改时间,同时使用文件的SHA-1明文来验证文件重组的正确性和完整性;
    所述步骤(A)中对RSA私钥密文进行解密,所述步骤(C)中对文件SHA-1密文数据进行RSA解密和所述步骤(D)中对blocklist_server密文文件进行解密的过程,主要包括如下步骤:
(a)客户端从服务器端收到密文blocklist_server文件和文件SHA-1密文数据;
(b)客户端使用用户密码对RSA私钥密文进行解密,得到RSA私钥明文;
(c)利用RSA私钥明文对文件SHA-1密文数据进行RSA解密,得到文件SHA-1明文;
(d)利用文件SHA-1明文,对blocklist_server密文文件进行AES-CBC解密,得到明文blocklist_server文件。
CN201110065043.4A 2011-03-18 2011-03-18 基于加密增量传输的异地共享备份恢复方法 Active CN102231727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110065043.4A CN102231727B (zh) 2011-03-18 2011-03-18 基于加密增量传输的异地共享备份恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110065043.4A CN102231727B (zh) 2011-03-18 2011-03-18 基于加密增量传输的异地共享备份恢复方法

Publications (2)

Publication Number Publication Date
CN102231727A CN102231727A (zh) 2011-11-02
CN102231727B true CN102231727B (zh) 2014-02-19

Family

ID=44844260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110065043.4A Active CN102231727B (zh) 2011-03-18 2011-03-18 基于加密增量传输的异地共享备份恢复方法

Country Status (1)

Country Link
CN (1) CN102231727B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130034229A1 (en) * 2011-08-05 2013-02-07 Apple Inc. System and method for wireless data protection
CN104348884B (zh) * 2013-08-08 2018-05-01 中国科学院计算机网络信息中心 一种云存储自动同步方法
CN103617215B (zh) * 2013-11-20 2017-02-08 上海爱数信息技术股份有限公司 一种利用数据差异算法生成多版本文件的方法
CN103699854B (zh) * 2013-12-31 2017-02-22 华为技术有限公司 数据存储方法、数据访问方法及存储设备
CN104023085A (zh) * 2014-06-25 2014-09-03 武汉大学 一种基于增量同步的安全云存储系统
CN105306505A (zh) * 2014-07-11 2016-02-03 腾讯科技(深圳)有限公司 数据更新方法、终端及服务器
CN105376276A (zh) * 2014-08-25 2016-03-02 中兴通讯股份有限公司 一种系统数据备份方法及装置
CN108153612A (zh) * 2016-12-02 2018-06-12 航天星图科技(北京)有限公司 一种数据库文件的备份方法
CN107688511A (zh) * 2017-08-25 2018-02-13 郑州云海信息技术有限公司 一种基于任务的异步远程复制方法和系统
CN108874585B (zh) * 2018-05-25 2021-01-22 南京云信达科技有限公司 文件备份方法、装置及系统
CN109862002B (zh) * 2019-01-24 2021-06-11 上海泰宇信息技术股份有限公司 一种可追溯数据安全保真方法
CN112887297B (zh) * 2021-01-22 2022-09-02 支付宝(杭州)信息技术有限公司 保护隐私的差异数据确定方法、装置、设备及系统
CN113486389B (zh) * 2021-09-08 2021-12-28 北京紫光青藤微系统有限公司 数据存储方法、装置、计算机设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446966A (zh) * 2008-12-31 2009-06-03 中国建设银行股份有限公司 数据存储方法及系统
CN201707668U (zh) * 2010-07-01 2011-01-12 广州美络信息科技有限公司 数据管理装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104145A1 (en) * 2006-06-23 2008-05-01 Derrell Lipman Method and appartus for backup of networked computers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446966A (zh) * 2008-12-31 2009-06-03 中国建设银行股份有限公司 数据存储方法及系统
CN201707668U (zh) * 2010-07-01 2011-01-12 广州美络信息科技有限公司 数据管理装置

Also Published As

Publication number Publication date
CN102231727A (zh) 2011-11-02

Similar Documents

Publication Publication Date Title
CN102231727B (zh) 基于加密增量传输的异地共享备份恢复方法
CN111066046B (zh) 抗重放攻击认证协议
Li et al. Secure distributed deduplication systems with improved reliability
CN104917609A (zh) 一种基于用户感知的高效安全数据去重方法及系统
CN105681273B (zh) 客户端重复数据删除方法
CN110213042A (zh) 一种基于无证书代理重加密的云数据去重方法
Wang et al. A novel encryption scheme for data deduplication system
CN105939191A (zh) 一种云存储中密文数据的客户端安全去重方法
CN103763362A (zh) 一种安全的分布式重复数据删除方法
Jayapandian et al. Secure deduplication for cloud storage using interactive message-locked encryption with convergent encryption, to reduce storage space
CN103414682A (zh) 一种数据的云端存储方法及系统
CN112732695B (zh) 一种基于区块链的云存储数据安全去重方法
CN108400970A (zh) 云环境中相似数据消息锁定加密去重方法、云存储系统
CN103248476A (zh) 数据加密密钥的管理方法、系统及终端
CN104967693A (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
Nayak et al. SEDS: secure and efficient server-aided data deduplication scheme for cloud storage
CN104993931A (zh) 一种云存储中多用户的加密搜索方法
Virvilis et al. A cloud provider-agnostic secure storage protocol
CN103731423A (zh) 一种安全的重复数据删除方法
CN103607278A (zh) 一种安全的数据云存储方法
CN109976948A (zh) 一种私密信息备份方法及恢复方法和系统
CN102402488A (zh) 一种适用于基于磁盘的消冗存储系统的加密方案(esds)
CN113918528A (zh) 一种基于可信硬件的安全云数据去重方法及系统
WO2008065351A1 (en) Self encryption
Li et al. A data assured deletion scheme in cloud storage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Room 1501, building 1, North District, United Center, 501 Minhe Road, ningwei street, Xiaoshan District, Hangzhou City, Zhejiang Province

Patentee after: HANGZHOU ETARAY TECHNOLOGIES CO.,LTD.

Address before: 310053 room 311, building 9, Hangzhou hi tech software park, No. 1 Weiye Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU ETARAY TECHNOLOGIES CO.,LTD.