亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于HTML5、AJAX的文件分割上傳與加密存儲(chǔ)研究

        2018-09-21 09:20:16
        三明學(xué)院學(xué)報(bào) 2018年4期
        關(guān)鍵詞:塊數(shù)私鑰服務(wù)器端

        (閩北職業(yè)技術(shù)學(xué)院 信息與工程系,福建 南平 353000)

        隨著網(wǎng)絡(luò)存儲(chǔ)應(yīng)用越來(lái)越廣泛[1],傳統(tǒng)的文件上傳模式,遇到大文件上傳時(shí),容易造成服務(wù)器負(fù)載過(guò)大,同時(shí),將文件以明文的方式存儲(chǔ)在服務(wù)器,或簡(jiǎn)單的進(jìn)行加密處理,一旦服務(wù)器遭遇黑客攻擊,文件被非法竊取導(dǎo)致文件信息泄漏,其后果嚴(yán)重。因此,對(duì)如何有效減輕文件上傳過(guò)程中服務(wù)器的負(fù)載,提高文件存儲(chǔ)安全性的研究具有一定的先進(jìn)性和實(shí)際應(yīng)用價(jià)值。文獻(xiàn)[2]中提出了一種文件分割上傳的思路,文件分割塊大小固定,針對(duì)服務(wù)器負(fù)載與分割上傳耗時(shí)的沖突解決不夠靈活,沒(méi)有對(duì)文件分割上傳的實(shí)現(xiàn)及文件類(lèi)型驗(yàn)證進(jìn)行說(shuō)明。本文提出了一種基于HTML5、AJAX的文件分割上傳方法,該方法使用HTML5中的File對(duì)象對(duì)文件進(jìn)行分割,文件分割尺寸根據(jù)文件大小在區(qū)間范圍內(nèi)動(dòng)態(tài)設(shè)置,降低服務(wù)器負(fù)載的同時(shí),優(yōu)化了分割上傳的時(shí)間消耗,使用FormData對(duì)象進(jìn)行文件異步上傳,提升上傳過(guò)程用戶(hù)體驗(yàn),在服務(wù)器端讀取文件頭信息對(duì)比驗(yàn)證文件類(lèi)型,防止惡意上傳。文獻(xiàn)[3]中提出了文件加密分割、離散云存儲(chǔ),其核心是將文件加密分割后分散存儲(chǔ)在多個(gè)云服務(wù)端,在客戶(hù)端軟件中實(shí)現(xiàn)文件塊獲取、解密、重組。該方案要求用戶(hù)同時(shí)擁有多個(gè)云服務(wù),且要求云服務(wù)開(kāi)放文件讀取接口,普及難度較大。文獻(xiàn)[4]中提出了二次分割的新型文件分割技術(shù),將分割后的文件塊再次分割成數(shù)量相同的N個(gè)子塊,根據(jù)相同編號(hào)拼接成最終的N個(gè)文件塊,雖然打亂了文件順序,但在加密環(huán)節(jié)不夠深入,二次分割規(guī)則一旦被破解,文件安全難以保障。結(jié)合文獻(xiàn)[3-4]中的優(yōu)點(diǎn),并充分考慮實(shí)際應(yīng)用中的可行性與易用性,在本文的文件分割上傳基礎(chǔ)上,針對(duì)文件存儲(chǔ)安全提出了一種將文件加密、分割、分散存儲(chǔ)的方法。該方法使用AES算法結(jié)合動(dòng)態(tài)密鑰對(duì)文件進(jìn)行加密、分割、分散存儲(chǔ),使用RSA算法加密密鑰,由用戶(hù)保存私鑰,在下載時(shí)解密、合并文件,以二進(jìn)制流分塊輸出的方法,并結(jié)合AES算法CPU加速和內(nèi)存安全防護(hù),進(jìn)行性能提升與安全防護(hù)。

        1 文件分割上傳

        1.1 文件分割

        File對(duì)象,繼承了Blob對(duì)象的屬性和方法,可以將上傳的文件通過(guò)slice方法進(jìn)行本地分割,還擴(kuò)展了一些新的屬性[5]。File對(duì)象的主要屬性及方法,見(jiàn)表1。

        表1 File對(duì)象主要屬性及方法

        文件大小(fileSize)可通過(guò)File對(duì)象的size屬性獲得。分割塊大?。╟utSize)的設(shè)置需要綜合考慮分塊數(shù)量、服務(wù)器網(wǎng)速、服務(wù)器配置、并發(fā)用戶(hù)預(yù)估峰值、客戶(hù)端網(wǎng)速等因素。分割塊越小,則塊數(shù)越多,會(huì)增加上傳處理時(shí)間,分割塊太大,會(huì)影響分割上傳的效果。為了平衡分割塊大小與分割塊數(shù),增強(qiáng)文件分割的時(shí)效性、穩(wěn)定性,提出了分割塊大小的區(qū)間范圍優(yōu)先于預(yù)設(shè)塊數(shù)的原則,對(duì)文件的分割塊大小進(jìn)行區(qū)間范圍內(nèi)的動(dòng)態(tài)設(shè)置。cutSize取值的相關(guān)參數(shù),見(jiàn)表2。

        表2 cutSize取值的相關(guān)參數(shù)

        根據(jù)分割塊大小區(qū)間優(yōu)先于預(yù)設(shè)塊數(shù)的原則,cutSize的取值為:

        分割塊數(shù)(blockCount)與文件大小、分割塊大小之間的關(guān)系為:

        以表2的參考值為例,隨著上傳文件大小的變化,分割塊大小、分割塊數(shù)的變動(dòng)走勢(shì),如圖1所示。

        圖1 分割塊大小、分割塊數(shù)走勢(shì)圖

        分割塊索引(blockIndex)、 分割塊的起始位置(start)、分割塊的終止位置(end),則每一個(gè)分割塊的分割起止位置值為:

        1.2 異步上傳文件

        XMLHttpRequest Level 2新增FormData接口??梢岳肍ormData對(duì)象組裝一組用 XMLHttpRequest發(fā)送請(qǐng)求的鍵/值對(duì),還可以使用FormData對(duì)象異步上傳文件[6]。Jquery中的ajax方法封裝了異步的實(shí)現(xiàn),上傳文件時(shí),需要將processData屬性、contentType屬性的值設(shè)置為false,否則會(huì)造成文件上傳失敗。

        HTTP使用的是無(wú)連接協(xié)議,為了服務(wù)器能夠識(shí)別出上傳的文件、分割塊順序、是否上傳完畢,要求異步提交的數(shù)據(jù)中包含文件唯一標(biāo)識(shí)、分割塊索引、分割塊數(shù)。上傳的文件最終經(jīng)過(guò)加密后分散存儲(chǔ),為了安全,未加密的原文件在加密操作后執(zhí)行刪除,并使用數(shù)據(jù)庫(kù)存儲(chǔ)文件的分散路徑。文件的唯一標(biāo)識(shí)由服務(wù)器端生成,為了提高效率,可在服務(wù)器端處理第一個(gè)分割塊時(shí)生成,并在回調(diào)結(jié)果中返回,供后繼的分割塊使用。文件分割上傳過(guò)程,如圖2所示。

        圖2 文件分割上傳流程圖

        為了避免非法文件類(lèi)型上傳到服務(wù)器,需要對(duì)上傳的文件類(lèi)型進(jìn)行驗(yàn)證。JS中File對(duì)象的type屬性雖然可以獲得文件的MIME類(lèi)型,但基于JS的文件類(lèi)型判斷不可靠。由于使用文件分割、異步上傳,在服務(wù)器端通過(guò)ContentType屬性獲取文件塊的文件類(lèi)型,得到的結(jié)果都是application/octetstream,無(wú)法區(qū)分不同的文件類(lèi)型。經(jīng)研究發(fā)現(xiàn),文件的第一個(gè)分割塊中包含了文件頭信息,因此,可以使用文件頭比對(duì)的方法來(lái)識(shí)別文件的類(lèi)型。

        客戶(hù)端自定義方法PostFile(file,blockIndex)對(duì)文件分割上傳進(jìn)行操作,遍歷上傳每一個(gè)分割塊,需要遞歸調(diào)用PostFile方法,為了進(jìn)一步提高遞歸調(diào)用性能,采用了尾遞歸實(shí)現(xiàn)[7]。在A(yíng)SP.NET中,服務(wù)器端可以使用一般處理程序進(jìn)行實(shí)現(xiàn),服務(wù)器端需要驗(yàn)證用戶(hù)身份,避免非法用戶(hù)惡意上傳。

        1.3 分割上傳實(shí)驗(yàn)分析

        將本文的文件分割上傳方法與普通的文件上傳方法進(jìn)行實(shí)驗(yàn)對(duì)比,通過(guò)服務(wù)器性能分析器對(duì)文件上傳過(guò)程中的主要參數(shù)進(jìn)行監(jiān)測(cè),發(fā)現(xiàn)文件分割上傳能夠有效降低服務(wù)器內(nèi)存負(fù)載,特別是在大文件上傳時(shí),效果更加明顯。在2G的內(nèi)存環(huán)境下,上傳510M的文件,對(duì)內(nèi)存對(duì)象的Pages/sec、Available MBytes進(jìn)行實(shí)驗(yàn)對(duì)比,如圖3所示。

        圖3 分割上傳與普通上傳對(duì)比(Pages/sec)

        對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,分割上傳時(shí),Pages/sec的平均值4.099、峰值203.993,可用內(nèi)存穩(wěn)定,上傳所發(fā)費(fèi)的時(shí)間較多。普通上傳時(shí),Pages/sec的平均值284.135、峰值10607,867,峰值出現(xiàn)在文件上傳結(jié)束時(shí),峰值持續(xù)時(shí)間較長(zhǎng),可用內(nèi)存快速下降,之后快速回升,上傳所發(fā)費(fèi)的時(shí)間較少。文件分割上傳所發(fā)費(fèi)的時(shí)間較多,可通過(guò)調(diào)整表2中的分塊最小值、分塊最大值、預(yù)設(shè)塊數(shù),來(lái)實(shí)現(xiàn)性能和時(shí)間上的一個(gè)平衡。實(shí)驗(yàn)表明,本文所提出的文件分割上傳方案能夠有效降低服務(wù)器負(fù)載、性能穩(wěn)定、設(shè)置靈活。

        2 文件加密存儲(chǔ)方案研究

        在本文的文件分割上傳基礎(chǔ)上,對(duì)文件加密存儲(chǔ)進(jìn)行研究。主要包括加密方案的設(shè)計(jì)、算法的選擇、性能的分析與安全防護(hù)。

        2.1 文件加密存儲(chǔ)改進(jìn)

        在文獻(xiàn)[3-4]的基礎(chǔ)上,提出改進(jìn)的文件加密存儲(chǔ)方案,改進(jìn)后的文件加密存儲(chǔ)及解密下載過(guò)程,如圖4~5所示。

        圖4 文件加密存儲(chǔ)流程圖

        圖5 文件解密下載流程圖

        RSA算法在公開(kāi)密鑰加密和電子商業(yè)中應(yīng)用普及。AES算法適合用于大數(shù)據(jù)加密,加密、解密速度快[8],AES的詳細(xì)說(shuō)明請(qǐng)參見(jiàn)FIPS 197[9],已被全世界廣泛使用。針對(duì)RSA算法不適合大數(shù)據(jù)加密、AES算法密鑰管理不安全的問(wèn)題,可以有機(jī)融合兩種算法進(jìn)行取長(zhǎng)補(bǔ)短[10-11]。因此,文件數(shù)據(jù)量較大,對(duì)加密速度有要求,使用AES算法加密,加密的密鑰使用RSA算法加密,方便密鑰管理。

        文件的加密分割、分散存儲(chǔ)、解密合并,使用自定義類(lèi)Crypto進(jìn)行封裝實(shí)現(xiàn)。類(lèi)Crypto的主要成員,如表3所示。

        表3 類(lèi)Crypto的主要成員

        改進(jìn)后的加密存儲(chǔ)方案,主要優(yōu)點(diǎn)表現(xiàn)如下:

        (1)文件分割上傳:降低上傳過(guò)程服務(wù)器端負(fù)載,對(duì)瀏覽器的支持也更好。

        (2)文件分散存儲(chǔ):隨機(jī)分散存儲(chǔ)文件,提高非法獲取完整文件的難度??梢栽谕慌_(tái)服務(wù)器分散存儲(chǔ),也可以在多個(gè)存儲(chǔ)設(shè)備分散存儲(chǔ),可根據(jù)項(xiàng)目需求靈活設(shè)置。

        (3)隨機(jī)生成文件加密密鑰:每一個(gè)文件的加密密鑰都不一樣,所有文件需要單獨(dú)破解,較使用同一密鑰加密,破解難度大大提升。

        (4)密鑰加密存儲(chǔ):提升了加密密鑰的存儲(chǔ)安全。

        (5)公鑰隔離存儲(chǔ):公鑰單獨(dú)存儲(chǔ),更安全。

        (6)私鑰的一部分由用戶(hù)保存:私鑰是解密文件的最后一環(huán),一部分由用戶(hù)保存,提高了私鑰存儲(chǔ)安全性的同時(shí),也降低了私鑰存儲(chǔ)對(duì)用戶(hù)的依賴(lài)性。

        (7)二進(jìn)制文件流分塊輸出:降低服務(wù)器負(fù)載。

        改進(jìn)后的文件加密存儲(chǔ)方案,增加了少量的時(shí)間開(kāi)銷(xiāo)與成本投入,為了進(jìn)一步增強(qiáng)私鑰存儲(chǔ)的安全性,對(duì)私鑰進(jìn)行分散管理[12],讓系統(tǒng)用戶(hù)只保存私鑰的一部分,較大程度的提高了文件存儲(chǔ)的安全性。

        2.2 性能分析與提升

        方案中RSA算法用于對(duì)密鑰進(jìn)行加密,雖然速度較慢,但密鑰數(shù)據(jù)量不多。AES算法用于對(duì)文件數(shù)據(jù)進(jìn)行加密,其性能是關(guān)鍵。針對(duì)AES算法的三種密鑰長(zhǎng)度,進(jìn)行文件加密速度測(cè)試,如圖6所示。使用256位的密鑰相比128位密鑰,其耗時(shí)增加40%左右,加密100 MB的文件,時(shí)間只相差0.6秒。其耗時(shí)增加可以接受,為了提升安全性,方案中的AES算法密鑰使用256位。

        2010年,Intel發(fā)布了支持AES加速的CPU。對(duì)于非并行模式的 AES操作,如CBC加密,AES_NI可以獲得2到3倍的性能,對(duì)于并行模式的AES操作,如CBC解密、CTR,AES_NI可以獲得10X的性能[13]。方案中的服務(wù)器使用支持AES加速的CPU。

        圖6 文件加密時(shí)間對(duì)比

        2.3 算法攻擊與防護(hù)

        針對(duì)RSA算法的攻擊方法,主要是基于大數(shù)因數(shù)分解,已公開(kāi)破譯的密鑰長(zhǎng)度是768位。采用消除密鑰中模n的分布方法,可以成功避免公鑰和私鑰中出現(xiàn)n,防止攻擊者通過(guò)因子分解法分解出公鑰中n的因子,推導(dǎo)出解密密鑰,采用三因子的加密算法,加大了分解的困難性[14]。將傳統(tǒng)RSA改進(jìn)為四素?cái)?shù)RSA的基礎(chǔ)上,再運(yùn)用數(shù)學(xué)變換進(jìn)行參數(shù)替換,消除了在公鑰中對(duì)傳輸兩個(gè)隨機(jī)素?cái)?shù)的乘積n的需要,引入了一個(gè)新的參數(shù)x代替原參數(shù)n[15]。為了提升密鑰被破譯的難度,方案中的RSA算法使用2048位密鑰。

        針對(duì)AES算法的攻擊手段主要包括:線(xiàn)性及差分分析、相關(guān)性分析、代數(shù)分析、立方體分析和旁路攻擊,旁路攻擊包括:電磁輻射分析、時(shí)序分析、差分故障分析、功耗分析。上海交大郁昱教授、以色列特拉維夫大學(xué)的Daniel Genkin等研究人員使用旁路攻擊成功破解了AES加密。實(shí)際應(yīng)用中,服務(wù)器環(huán)境的配置很重要,如:防止內(nèi)存頁(yè)被交換至硬盤(pán)、限制硬件對(duì)內(nèi)存的訪(fǎng)問(wèn)權(quán)限等,才能更好的保障文件存儲(chǔ)的安全。AES算法只有在極特殊的環(huán)境下才能被破解,AES256在當(dāng)前的計(jì)算機(jī)體系結(jié)構(gòu)下,還沒(méi)有實(shí)質(zhì)性的破解威脅。

        3 結(jié)束語(yǔ)

        異步文件分割上傳,降低了服務(wù)器負(fù)載,通過(guò)對(duì)分割塊大小使用區(qū)間范圍內(nèi)的動(dòng)態(tài)設(shè)置,兼顧了分割上傳的時(shí)效性與穩(wěn)定性。使用AES算法結(jié)合動(dòng)態(tài)密鑰加密文件并分割、分散存儲(chǔ),并配套支持AES加速的CPU,提升了加密、解密過(guò)程的性能。對(duì)加密密鑰再次使用RSA算法加密,私鑰的一部分由系統(tǒng)用戶(hù)保存,保障了密鑰存儲(chǔ)的安全性。本文所提出的基于HTML5、AJAX的文件分割上傳、加密存儲(chǔ)方案,貫穿了文件的上傳、加密、解密、下載全過(guò)程,經(jīng)實(shí)際應(yīng)用與測(cè)試,性能穩(wěn)定并能有效的降低服務(wù)器負(fù)載、提升文件存儲(chǔ)的安全性。

        猜你喜歡
        塊數(shù)私鑰服務(wù)器端
        比薩里的“三角形數(shù)”
        移多補(bǔ)少
        比特幣的安全性到底有多高
        基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
        一種基于虛擬私鑰的OpenSSL與CSP交互方案
        淺析異步通信層的架構(gòu)在A(yíng)SP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        在Windows中安裝OpenVPN
        怎樣切,塊數(shù)最多?
        網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
        LeeB私鑰分發(fā)協(xié)議的改進(jìn)方案
        丰满人妻一区二区三区免费| 日韩在线免费| av无码久久久久久不卡网站 | 色婷婷久久综合中文蜜桃| 91久久国产香蕉熟女线看| 国产视频一区二区在线免费观看| 中文字幕人妻饥渴浪妇| 人妻丰满熟妇aⅴ无码| 国产精品成人免费视频一区 | 一区二区传媒有限公司| 无码人妻一区二区三区免费n鬼沢| 一区二区三区日韩亚洲中文视频| 加勒比精品久久一区二区三区| 高清国产亚洲va精品| 午夜一区二区三区在线视频| 丰满人妻无套内射视频| 国产韩国一区二区三区| 国产实拍日韩精品av在线 | 无码少妇a片一区二区三区| 亚洲精品夜夜夜| 中文字幕无码日韩欧毛| 国产精品一区又黄又粗又猛又爽| 久久亚洲乱码中文字幕熟女| 人妻少妇精品中文字幕专区| 日韩av无码一区二区三区不卡| 一本色道无码道在线观看| 国产成人无码一区二区三区在线| 老熟女多次高潮露脸视频| 成年奭片免费观看视频天天看| 水蜜桃一二二视频在线观看免费 | 秒播无码国产在线观看| 久久久久久中文字幕有精品| 北岛玲精品一区二区三区| 91色区在线免费观看国产| 波多野结衣在线播放| 免费a级作爱片免费观看美国| 亚洲爱婷婷色婷婷五月| 亚洲精品一二区| 国产免费视频一区二区| 久久亚洲精品一区二区三区| 亚欧美日韩香蕉在线播放视频|