一种基于html5技术的跨互联网文件安全分享方法与系统

文档序号:7973 发布日期:2021-09-17 浏览:32次 英文

一种基于HTML5技术的跨互联网文件安全分享方法与系统

技术领域

本发明属于数据加密

技术领域

,尤其涉及一种基于HTML5技术的跨互联网文件安全分享方法与系统。

背景技术

随着互联网通信技术的发展,互联网通讯的网络安全问题也逐渐凸显出来,在互联网传输文件的大小逐渐增加,但文件传输安全性却没有很好的控制,缺乏对文件加密情况的良好控制。

互联网环境下的电子文件,是在数字设备构建的网络中形成的,以数字形式存储于硬盘、光盘等介质,并依赖计算机等电子设备阅读、处理,可在互联网上传送利用的文件,电子文件依附于计算机系统实现,也不可避免的被网络安全侵入风险所波及,黑客入侵可通过通信服务层、操作系统层等层面,破坏电子文件信息与机密,而计算机病毒可以通过多种非法程序破坏信息,还可经过互联网蔓延,是互联网电子文件的“隐形杀手”。

在日常工作中,当用户通过互联网向其它用户分享文件的时候,为了防止文件在网络传输过程中被非授权人员获取原始数据,用户通过即时通信软件向接收者发送的一般都是经过加密的文件,常见的文件加密方法由包括RAR在内的压缩工具或自定义的加密软件提供,文件加密的口令由用户输入;当接收方接收到加密文件后,需使用相同的压缩或加密软件进行解密,在互联网办公的众多用户之间要求具备相同的压缩软件或加密软件,显然有些困难,因而影响到跨互联网文件的安全处理能力,不能很好的满足处理分享需要。

发明内容

本发明的目的在于:为了解决常见的文件加密方法由包括RAR在内的压缩工具或自定义的加密软件提供,文件加密的口令由用户输入;当接收方接收到加密文件后,需使用相同的压缩或加密软件进行解密,在互联网办公的众多用户之间要求具备相同的压缩软件或加密软件,显然有些困难的问题,而提出的一种基于HTML5技术的跨互联网文件安全分享方法与系统。

为了实现上述目的,本发明采用了如下技术方案:

一种基于HTML5技术的跨互联网文件安全分享方法,具体包括以下步骤:

S1、对文件进行加密处理;

S2、对文件元进行加密处理;

S3、启用文件下载验证流程。

作为上述技术方案的进一步描述:

所述S1对文件进行加密处理具体方法包括以下步骤:

S101、将分享文件列表中的每个文件转换为二进制数据流(Java Script中的ReadableStream对象);

S102、采用首尾相连流的方式将多个二进制数据流连接为一个二进制数据流;

S103、将合并后的二进制数据流按照固定大小进行分块切割,每个分块的大小为65519,即65519=1024×64-17;

S104、为每个数据分块尾部填充数据,完整分块的尾部填充(1,0,…,0)共计17个字节,最后一个分块的尾部填充(2),仅有1个字节;

S105、产生随机Salt值并将该Salt值附加在加密文件下载URL中;

S106、由下载口令和随机Salt派生原始加密密钥rawSecretKey,依次从rawSecretKey中截取16字节作为文件池元数据加密密钥metaKey、16字节作为下载认证密钥authKey以及16字节作为数据块的加密密钥blockKey;

S107、产生16字节随机数Nonce;

S108、由blockKey、Nonce通过HKDF函数生成长度为12字节的baseIV,取baseIV的后4个字节与每个分块的序列号n进行异或运算得到xorN;

S109、由blockKey、Nonce通过HKDF函数生成数据加密密钥dataKey,所述S109中加密密钥dataKey的计算过程为:dataKey=HKDF(blockKey,Nonce,“prime-data-key”);

S110、分别使用每个分块的xorN追加到baseⅣ后得到16字节长度的Ⅳ,使用该Ⅳ、dataKey、GCM工作模式对数据分块进行对称加密运算,分别得到每个分块的密文,然后将密文前后依次链接形成二进制密文流;

S111、将Nonce作为大数与65536相加,将相加结果放至密文流首部,加密流程结束。

作为上述技术方案的进一步描述:

所述S108中异或运算得到xorN的具体计算过程为:baseIV=HKDF(blockKey,Nonce,“prime-nonce”),其中,HKDF函数为标准派生函数,本方法支持常见的国际密码算法以及国密算法。

作为上述技术方案的进一步描述:

所述106中派生方法为通用的PBKDF2函数,计算过程为:rawSecretKey=PBKDF2(Pwd,Salt,n,48),其中Pwd为下载口令,n为认以自然数,本方案取数值3,且PBKDF2支持常见的国际密码算法以及国密算法。

作为上述技术方案的进一步描述:

所述S2中对文件元进行加密处理的步骤具体包括:

S201、随机生成整数并以该整数的16进制字符作为文件id;

S202、将明文文件的名称(name)、大小(size)和类型(type)形成加密文件链表,文件链表称为manifest;

S203、将加密文件名称(id)、加密后文件大小(size)、文件类型(type)以及manifest形成加密文件元数据,加密文件元数据称为metaFile;

S204、使用metaKey对metaFile进行ECB模式加密;

S205、将下载次数限制、下载时间限制、下载认证码以及metaFile形成密文文件描述信息;

S205、将密文文件描述信息以及密文文件上传至Web服务器预定存储位置,并生成安全分享下载链接。

作为上述技术方案的进一步描述:

所述S202中加密文件链表具体格式包括:{(name:fileName,size:fileSize,type:fileType),………………………,(name:fileName,size:fileSize,type:fileType)}。

作为上述技术方案的进一步描述:

所述S203中加密文件源数据格式具体包括:(name:id,size:length,type:default,data:manifest)。

作为上述技术方案的进一步描述:

所述S205中密文文件描述信息格式具体包括:(downTimes:m,limitedTime:n,auth:authCode,file:metaFile)。

作为上述技术方案的进一步描述:

所述启用文件下载验证流程具体包括以下步骤:

S301、服务器端程序首先对文件的下载时间和下载次数进行检查,若已超时或允许下载次数为0,则禁止下载,删除该加密文件并在浏览器端提示文件已删除;

S302、若加密文件在下载有效期内,则浏览器提示下载者输入下载口令,系统根据下载口令按照预定格式计算autheKey,并根据相关信息计算newAuthCode,使用newAuthCode与服务器端存储的authCode进行比对,若一致,则证明下载口令正确,服务器端将加密文件推送到下载浏览器,下载浏览器按照对称加密的逆流程进行解密,首先解密文件元数据,获取原始文件列表信息,然后将解密后数据依次放入不同的原始文件中;

S303、下载成功后,将下载次数减一,若下载次数已降低为0,则把服务器端相关文件删除。

一种基于HTML5技术的跨互联网文件安全分享系统,具体包括多个文件安全分享浏览器端和文件安全分享服务器端,且多个文件安全分享浏览器端通过HTTP通讯连接到文件安全分享服务器端。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、本发明中,通过云端存储设备与网页端密码验证的配合,利用任意一款支持HTML5网页浏览器即可实现文件加密和安全分享功能、增加文件限时和限次下载的文件处理方法,能够实现增加对跨互联网文件安全分享的即时使用能力,并且能够适配多重应用系统属性,降低与加密控制软件的适应性要求。

2、本发明中,处理方法能够在对应密钥进行记忆后,通过简化用户操作顺序,能够显著降低对用户操作的要求,进而能够实现对加密文件传输的普适性调节控制需要,通过降低加密文件的交互控制难度,实现对文件加密安全分析的实际控制。

3、本发明中,通过与处理方法配合的系统实现脱离对第三方软件的依赖,实现对文件安全的分享处理能力,有利于实现互联网文件通过网页的交互处理能力,避免第三方软件对网络安全带来的负面影响,并同时提高硬件端相应时效和文件交互分析效率。

4、本发明中,通过对数据独立加密链接的处理,通过对安全分析文件的二进制处理和文件链路层面的编码加密处理,有效实现双重密钥的对应控制,显著提高对文件的安全加密强度,通过文件元的加密设置,实现对文件池信息的保密存储,在有利于实现追溯处理能力的同时,最大限度地保持相应的文件内容保护能力,在链路文件存储后,加密元数据能够存贮在预定服务器位置,进而能够去除文件大小的限制能力,降低对加密系统硬件的需求能力,有效满足对不同情况下的控制需要。

附图说明

图1为本发明提出的一种基于HTML5技术的跨互联网文件安全分享系统的架构;

图2为本发明提出的一种基于HTML5技术的跨互联网文件安全分享方法文件上传流程图;

图3为本发明提出的一种基于HTML5技术的跨互联网文件安全分享方法的文件下载处理流程图;

图4为本发明提出的一种基于HTML5技术的跨互联网文件安全分享方法的文件加密处理流程图;

图5为本发明提出的一种基于HTML5技术的跨互联网文件安全分享方法的文件加密流程图;

图6为本发明提出的一种基于HTML5技术的跨互联网文件安全分享方法的文件元数据加密处理流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1-6,本发明提供一种技术方案:一种基于HTML5技术的跨互联网文件安全分享方法,具体包括以下步骤:

S1、对文件进行加密处理;

其中,所述S1中对文件进行加密处理具体方法包括以下步骤:S101、将分享文件列表中的每个文件转换为二进制数据流(Java Script中的ReadableStream对象);

S102、采用首尾相连流的方式将多个二进制数据流连接为一个二进制数据流;

S103、将合并后的二进制数据流按照固定大小进行分块切割,每个分块的大小为65519,即65519=1024×64-17;

S104、为每个数据分块尾部填充数据,完整分块的尾部填充(1,0,…,0)共计17个字节,最后一个分块的尾部填充(2),仅有1个字节;

S105、产生随机Salt值并将该Salt值附加在加密文件下载URL中;

S106、由下载口令和随机Salt派生原始加密密钥rawSecretKey,依次从rawSecretKey中截取16字节作为文件池元数据加密密钥metaKey、16字节作为下载认证密钥authKey以及16字节作为数据块的加密密钥blockKey,所述106中派生方法为通用的PBKDF2函数,计算过程为:rawSecretKey=PBKDF2(Pwd,Salt,n,48),其中Pwd为下载口令,n为认以自然数,本方案取数值3,且PBKDF2支持常见的国际密码算法以及国密算法;

具体的,是一个用来导出密钥的函数,常用于生成加密的密码,基本原理是通过一个伪随机函数HMAC函数,把明文和一个盐值作为输入参数,然后重复进行运算,并最终产生密钥,如果重复的次数足够大,破解的成本就会变得很高。而盐值的添加也会增加表虚数攻击的难度。

S107、产生16字节随机数Nonce;

S108、由blockKey、Nonce通过HKDF函数生成长度为12字节的baseIV,取baseIV的后4个字节与每个分块的序列号n进行异或运算得到xorN,所述S108中异或运算得到xorN的具体计算过程为:baseIV=HKDF(blockKey,Nonce,“prime-nonce”),其中,HKDF函数为标准派生函数,本方法支持常见的国际密码算法以及国密算法;

具体的,HKDF算法是关于密钥生成的重要的基础算法,跟密钥推导密切相关,基于一个共同密钥,在两个对端之间提供消息完整性确认的机制,将消息进行hash,得到的hash值附加到消息之后,随消息一起发送,对端接收后,同样进行hash,来验证消息是否被篡改——关键点在不同数据得到的hash值一定不同——其中得到的hash值就是MAC(在别的语境里边也叫消息摘要)。另外,为了避免使用同样的hash函数对相同数据进行操作总是得出同样的摘要,额外加入一个密钥,这样使用不同密钥就可以得出不同的MAC,当然,这个密钥是两个对端都知道的,进而通过对HKDF的派生函数计算,实现对序列号的生产处理。

S109、由blockKey、Nonce通过HKDF函数生成数据加密密钥dataKey,所述S109中加密密钥dataKey的计算过程为:dataKey=HKDF(blockKey,Nonce,“prime-data-key”);

S110、分别使用每个分块的xorN追加到baseⅣ后得到16字节长度的Ⅳ,使用该Ⅳ、dataKey、GCM工作模式对数据分块进行对称加密运算,分别得到每个分块的密文,然后将密文前后依次链接形成二进制密文流;

S111、将Nonce作为大数与65536相加,将相加结果放至密文流首部,加密流程结束

S2、对文件元进行加密处理;

其中,所述S2中对文件元进行加密处理的步骤具体包括:

S201、随机生成整数并以该整数的16进制字符作为文件id;

S202、将明文文件的名称(name)、大小(size)和类型(type)形成加密文件链表,文件链表称为manifest,所述S202中加密文件链表具体格式包括:{(name:fileName,size:fileSize,type:fileType),………………………,(name:fileName,size:fileSize,type:fileType)};

S203、将加密文件名称(id)、加密后文件大小(size)、文件类型(type)以及manifest形成加密文件元数据,加密文件元数据称为metaFile,所述S203中加密文件源数据格式具体包括:(name:id,size:length,type:default,data:manifest);

S204、使用metaKey对metaFile进行ECB模式加密;

S205、将下载次数限制、下载时间限制、下载认证码以及metaFile形成密文文件描述信息,所述S205中密文文件描述信息格式具体包括:(downTimes:m,limitedTime:n,auth:authCode,file:metaFile);

S205、将密文文件描述信息以及密文文件上传至Web服务器预定存储位置,并生成安全分享下载链接;

S3、启用文件下载验证流程。

其中,所述启用文件下载验证流程具体包括以下步骤:

S301、服务器端程序首先对文件的下载时间和下载次数进行检查,若已超时或允许下载次数为0,则禁止下载,删除该加密文件并在浏览器端提示文件已删除;

S302、若加密文件在下载有效期内,则浏览器提示下载者输入下载口令,系统根据下载口令按照预定格式计算autheKey,并根据相关信息计算newAuthCode,使用newAuthCode与服务器端存储的authCode进行比对,若一致,则证明下载口令正确,服务器端将加密文件推送到下载浏览器,下载浏览器按照对称加密的逆流程进行解密,首先解密文件元数据,获取原始文件列表信息,然后将解密后数据依次放入不同的原始文件中;

S303、下载成功后,将下载次数减一,若下载次数已降低为0,则把服务器端相关文件删除。

一种基于HTML5技术的跨互联网文件安全分享系统,具体包括多个文件安全分享浏览器端和文件安全分享服务器端,且多个文件安全分享浏览器端通过HTTP通讯连接到文件安全分享服务器端。

工作原理,在进行网络加密之前,对待加密文件进行预上传,文件发送方通过在终端服务器和个人电脑浏览器窗口通过输入Web服务器网址后,网页浏览向Web服务器请求首页资源文件,显示文件安全分析页面后,文件发送方选择终端内待分享文件后,获取对应文件属性后,分类追加到文件池内,用户通过网页浏览器选择过期时间后,选择对应文件相应能够下载的次数,并且输入文件加密口令后,网页浏览器对文件进行循环判断,当文件流长度大于设置值后,即能够读取到加密文件流后,网页浏览器提交密文数据以及文件池信息发送至Web服务器中,服务器进行存储赋能加密后,通过返回文件URL链接至文件上传网页端,网页端此时弹出安全文件URL链接拷贝提示框,此时通过用户选择相应操作后,结束对待加密文件的上传。

文件数据的加密处理,将所选文件读取为二进制数据流后,将多个二进制数据流合并为一个二进制数据流后,将二进制数据流进行固定大小的分块后,对分块数据进行尾部填充,根据下载口令与随机SALT派生文件加密密钥,并生成对应位置的分块后,持续GCM模式加密后,将密文分块连为二进制数据流,写入文件完成对单个文件的加密处理,并同时通过对安全文件的名称、大小和类型形成加密文件链表后,通过将加密文件主体,以及加密后文件大小、文件类型以及文件链表行程加密文件的元数据,实现对元数据的加密行程对应的认证码,完成对加密信息的在加密处理。

文件下载处理流程,服务器端程序首先对文件的下载时间和下载次数进行检查,若已超时或允许下载次数为0,则禁止下载,删除该加密文件并在浏览器端提示文件已删除,若加密文件在下载有效期内,则浏览器提示下载者输入下载口令,系统根据下载口令按照预定格式计算autheKey,并根据相关信息计算newAuthCode,使用newAuthCode与服务器端存储的authCode进行比对,若一致,则证明下载口令正确,服务器端将加密文件推送到下载浏览器,下载浏览器按照对称加密的逆流程进行解密,首先解密文件元数据,获取原始文件列表信息,然后将解密后数据依次放入不同的原始文件中。下载成功后,将下载次数减一,若下载次数已降低为0,则把服务器端相关文件删除。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种用于区块链存储的数据加密方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类