网络文件同步方法、装置和设备与流程

文档序号:30226097发布日期:2022-06-01 01:19阅读:171来源:国知局
网络文件同步方法、装置和设备与流程

1.本发明涉及通信及云计算技术领域,尤其涉及一种网络文件同步方法、装置和设备。


背景技术:

2.云桌面又称桌面虚拟化,是指通过虚拟化技术以及虚拟桌面协议或远程桌面协议将虚拟主机资源提供给用户,用户使用云桌面终端设备(例如瘦客户机)访问后端服务器上的虚拟机主机来实现交互式操作。
3.基于云桌面技术,用户可以通过网络在任何地点,任何时间访问属于用户自己的云桌面。用户使用虚拟桌面的过程中,用户数据会在终端与服务端虚拟机之间传输,可能会存在如下一些安全隐患:
4.(1)网络接入容易,通常只要选用通用的信息设备即可连入网络;
5.(2)大多数信息使用明文传输,信息数据在网络传输过程中很容易被拦截;
6.(3)篡改用户往往有权访问共享文件,从而有机会修改、窃取共享文件;
7.(4)计算机外部设备使用不当,容易造成数据泄露。
8.上述一些安全隐患使得通过网络共享文件的安全问题变得越来越重要和突出,也使得在网络中进行共享文件的安全管理成为迫切的需求。


技术实现要素:

9.有鉴于此,本发明提供一种网络文件同步方法、装置和设备,用于解决的网络文件传输的安全性问题。
10.基于本发明实施例的一方面,本发明提供一种网络文件同步方法,该方法包括:
11.获取待同步文件的文件信息,并将文件信息传送给对端;
12.使用与对端相同的秘钥对待同步文件进行加密生成加密文件;
13.使用与对端相同的分组扰乱表对加密文件进行分组和分组扰乱,生成乱序分组文件;
14.将生成的乱序分组文件发送给对端。
15.进一步地,在将生成的乱序分组文件发送给对端之前,所述方法还包括:使用与对端相同的校验算法为乱序分组文件生成校验码;
16.所述将生成的乱序分组文件发送给对端还包括将生成的校验码一同发送给对端,以使对端使用校验码判断文件在网络传输过程中是否被篡改过。
17.进一步地,所述将文件信息传送给对端之前,所述方法还包括:为所述待同步文件生成散列值;
18.所述文件信息至少包括文件名、文件大小和文件修改时间:
19.所述将文件信息传送给对端还包括将待同步文件的散列值发送给对端,以使对端使用散列值判断其接收到的文件与本端的待同步文件一致。
20.进一步地,所述分组扰乱表包括了分组数信息以及分组扰乱前与分组扰乱后分组数据块的位置对应关系;
21.所述分组数信息用于两端按分组数对加密文件进行切分;
22.所述分组数据块的位置对应关系用于对端按照该对应关系恢复出分组扰乱前的分组顺序从而得到加密文件。
23.进一步地,所述方法应用于云桌面终端和提供云桌面的虚拟机。
24.基于本发明实施例的另一方面,本发明还提供一种网络文件同步装置,该装置包括:
25.文件信息同步模块,用于获取待同步文件的文件信息,并将文件信息传送给对端;
26.文件加密模块,用于使用与对端相同的秘钥对待同步文件进行加密生成加密文件;
27.分组扰乱模块,用于使用与对端相同的分组扰乱表对加密文件进行分组和分组扰乱,生成乱序分组文件;
28.分组文件发送模块,用于将生成的乱序分组文件发送给对端。
29.进一步地,所述装置还包括:
30.文件校验模块,用于在将生成的乱序分组文件发送给对端之前,使用与对端相同的校验算法为乱序分组文件生成校验码;
31.所述分组文件发送模块还用于在将生成的乱序分组文件发送给对端时一同将生成的校验码发送给对端,以使对端使用校验码判断文件在网络传输过程中是否被篡改过。
32.进一步地,所述文件信息同步模块还用于为所述待同步文件生成散列值,以及将散列值随同文件信息一起发送给对端;
33.所述文件信息至少包括文件名、文件大小和文件修改时间:
34.所述散列值用于使对端判断其接收到的文件与本端的待同步文件是否一致。
35.进一步地,所述分组扰乱表包括了分组数信息以及分组扰乱前与分组扰乱后分组数据块的位置对应关系;
36.所述分组数信息用于两端按分组数对加密文件进行切分;
37.所述分组数据块的位置对应关系用于对端按照该对应关系恢复出分组扰乱前的分组顺序从而得到加密文件。
38.本发明在通过网络同步共享文件时,将加密技术和分组扰乱技术相结合,在对文件内容进行加密后,再对文件数据进行分组和分组顺序扰乱,对端接收到加密的乱序分组文件后,使用与本端相同秘钥和分组扰乱表即可恢复出原始的同步文件。本发明在文件加密的基础上又提供了一层文件分组扰乱的保护,能够提高网络文件共享的安全性。
附图说明
39.为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。
40.图1为本发明一实施例提供的网络文件同步方法的步骤流程图;
41.图2为本发明一实施例提供的用于实现本发明提供的网络文件同步方法的电子设备结构示意图。
具体实施方式
42.在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本发明中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
43.应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
44.本发明的发明目的是提供一种网络文件同步方法,用于提升通过网络进行文件同步的安全性。本发明的基本思想是:在通过网络同步共享文件时,对文件内容进行加密后,再对文件数据进行分组和分组顺序扰乱,服务端和接收端需要预先同步加密秘钥和分组扰乱表,接收端接收到文件后进行反向操作,根据分组扰乱表恢复分组顺序并使用秘钥解密得到原始文件内容。本发明将加密和分组扰乱等技术相结合应用于网络文件同步,能够提高网络文件共享的安全性。
45.基于本发明的基本思想,以下结合附图和具体实施例来描述本发明的具体实现过程。
46.高级加密标准(advanced encryption standard,aes)加密算法简称aes加密算法,是一种常用的对称加密算法。若仅采用对称加密算法来保障网络文件传输的安全性,虽然简单且效率较高,但如果加密秘钥被破解,则文件很容易被监听和破解。本发明实施例中,将加密技术和分组扰乱技术相结合,提高了文件破解的难度,提升同步文件的安全性。本发明另一实施例还更进一步地使用校验技术,例如循环冗余检测(cyclic redundancy check,crc)来检测文件在传输过程中是否被篡改,从而进一步提升文件同步过程的安全性。
47.图1为本发明一实施例提供的网络文件同步方法的步骤流程图。该实施例以云桌面终端与提供云桌面的虚拟机之间的文件同步为例来描述本发明的具体实现过程。在该实施例中,通过网络进行的文件同步是在云桌面用户通过云桌面客户端软件登录到云桌面后进行的,在文件同步前,首先需要同步云桌面和云桌面终端两侧的加密方式、加密秘钥、分组扰乱表等信息,两端需要保持一致。上述信息可通过云桌面管理节点通过网络分发,也可由管理员手动在进行配置,本发明不做限定。在启动同步程序开始同步前,需要为同步程序提供云桌面终端同步文件夹路径和远程虚拟主机同步文件夹路径,同步路径可由云桌面管理节点设定,也可由用户自己选择。文件同步的过程如下:
48.步骤101.云桌面终端连接云桌面管理节点mon,获取虚拟主机信息后连接虚拟主机;
49.在文件同步前,云桌面终端需首先向云桌面管理节点发送用户信息,管理节点对
用户进行用户验证,在验证通过后,管理节点在数据库中查询该用户对应的远程虚拟主机信息,将虚拟主机信息返回给云桌面终端。云桌面终端获取到虚拟主机信息后,尝试连接该远程虚拟主机,若连接成功,则进行后续步骤,否则返回连接失败信息。
50.步骤102.虚拟机获取同步文件夹路径下的目录信息和待同步文件的文件信息,其中,文件信息至少包括文件名和文件修改时间等。
51.文件同步可以是单向的也可以是双向的,该实施例虚拟机向云桌面终端同步文件为例进行说明,反向的同步遵循相同的原理,本发明不再赘述。
52.步骤103.对同步文件夹路径下的每一原始文件进行加密生成加密文件;
53.对原始文件进行加密可使用各种加密算法,本发明不做具体限定,例如可使用aes对称加密算法对原始文件进行加密生成加密后的密文文件。
54.步骤104.使用分组扰乱表对加密文件进行分组并进行分组扰乱生成乱序分组文件;
55.分组扰乱表的示例如表1所示,分组扰乱表用于对加密文件进行分组和分组顺序扰乱,分组扰乱表的列数规定了对加密文件分组的组数,分组扰乱表每一列的上下两个元素值规定了扰乱前后文件分组位置的对应关系。分组的组数可使用随机函数在规定阈值范围内生成,例如用随机函数random()在5到15之间随机生成一个自然数假设为8做为分组数,即使用分组数8将原始文件切分为分为8个分组。
56.表1
[0057][0058]
一个对文件分组的示例可以是使用string.split()函数对加密文件进行切割分组,用indexof()函数方法进行定位,然后用substring()函数进行截取。根据分组扰乱表规定的分组对应关系调整分组顺序,例如以表1为例:将加密文件切分为8个分组,按顺序依次将加密文件的第3个分组写入乱序分组文件的第1个分组的位置上,将加密文件的第5个分组写入乱序分组文件的第2个分组位置上,将加密文件的第7个分组写入乱序分组文件的第3个分组位置上,以此类推。通过这种方式扰乱原加密文件中分组的顺序。在对加密文件进行恢复的时候,根据分组扰乱表中第二行的序号进行恢复,例如将乱序分组文件的第1个分组位置上的数据还原写入到加密文件的第3个分组位置对应的数据块中,将乱序分组文件的第2个分组位置上的数据还原写入到加密文件的第5个分组位置对应的数据块中,依次类推。
[0059]
步骤105.使用校验算法为乱序分组文件生成第一校验码;
[0060]
例如,对乱序分组文件进行crc校验,生成16位/32位的crc校验码。
[0061]
步骤106.将乱序分组文件和第一校验码一同发送给云桌面终端;
[0062]
步骤107.云桌面终端接收到虚拟机发送的同步文件夹路径下的目录信息和所有文件的文件信息后,继续接收虚拟机发送的乱序分组文件和第一校验码;
[0063]
步骤108.在云桌面终端接收到完整的乱序分组文件后,使用与虚拟机相同的校验算法对乱序分组文件进行校验生成第二校验码;
[0064]
步骤109.云桌面终端比对第一校验码和第二校验码,若相同则校验成功执行步骤
110;否则校验失败,执行步骤112;
[0065]
若校验码比对一致,则确认文件在传输过程中没有丢失信息和被解密过,确保完整性。
[0066]
步骤110.云桌面终端使用分组扰乱表对乱序分组文件进行还原,还原出原始加密文件;
[0067]
步骤111.云桌面终端使用与虚拟机相同加密算法对原始加密文件进行解密从而获得原始文件。
[0068]
步骤112.向对端反馈同步失败信息。
[0069]
优选地,在本发明另一实施例中,在对原始文件进行加密之前,还包括为原始文件生成散列值以及将生成的散列值发送给对端进行文件验证的步骤。例如虚拟机在对原始文件进行加密之前,对同步目录下的所有文件生成第一散列值,第一散列值随同目录信息和待同步文件的文件信息一同发送给云桌面终端,云桌面终端在还原出原始文件后,用散列函数(例如md5算法)对原始文件计算散列值生成第二散列值,并比对第一散列值和第二散列值是否一致,若一致则说明文件未被篡改过,文件传输过程是安全的。
[0070]
本发明可应用到企业团队中的文件协作中,文件的管理和共享,是企业局域网应用中的一个不可缺的功能。安全的文件共享方式,能够减少风险,对于数据保密的内容起到保护作用。该发明能够帮助企业、团队找到更加合适的办公场景,做好这件工作,必定可以提高企业网络的利用价值,减少网络安全事故。
[0071]
图2为本发明一实施例提供的用于实现本发明提供的网络文件同步方法的电子设备结构示意图,该设备200包括:诸如中央处理单元(cpu)的处理器210、通信总线220、通信接口240以及存储介质230。其中,处理器210与存储介质230可以通过通信总线220相互通信。存储介质230内存储有计算机程序,当该计算机程序被处理器210执行时即可实现本发明提供的网络文件同步方法的各步骤的功能。
[0072]
其中,存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。另外,存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0073]
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本发明描述的过程的操作,除非本发明另外指示或以其他方式明显地与上下文矛盾。本发明描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理
器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0074]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本发明所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
[0075]
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1