安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)/安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文(設(shè)計)論文(設(shè)計)題目:安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)姓名學(xué)號學(xué)院軟件學(xué)院專業(yè)軟件工程年級2010級指導(dǎo)教師2011年5月22日山東大學(xué)畢業(yè)設(shè)計(論文)成績評定表學(xué)院:軟件學(xué)院專業(yè):軟件工程年級:2010級學(xué)號姓名設(shè)計(論文)成績設(shè)計(論文)題目安全數(shù)據(jù)存儲系統(tǒng)的設(shè)計與實現(xiàn)指導(dǎo)教師評語評定成績:簽名:年月日評閱人評語評定成績:簽名:年月日答辯小組評語答辯成績:組長簽名:年月日注:設(shè)計(論文)成績=指導(dǎo)教師評定成績(30%)+評閱人評定成績(30%)+答辯成績(40%)目錄TOC\o"1-3"\h\u摘要 4第一章緒論 61.1研究背景 61.2數(shù)據(jù)安全保護現(xiàn)狀 61.3數(shù)據(jù)安全和信息安全發(fā)展趨勢 71.4目的和意義 8第二章數(shù)據(jù)安全保護的主要應(yīng)用技術(shù) 102.1加密算法 102.1.1對稱加密 102.1.2非對稱加密 112.2帶關(guān)鍵詞搜索的公鑰加密算法(PEKS) 132.3基于雙線性對的PEKS方案 132.4PBC庫 14第三章數(shù)據(jù)安全存儲系統(tǒng)設(shè)計 153.1系統(tǒng)設(shè)計總體要求 153.2系統(tǒng)設(shè)計總體目標(biāo) 153.2.1數(shù)據(jù)存儲功能 153.2.2數(shù)據(jù)的關(guān)鍵詞 153.2.3系統(tǒng)初始化 163.2.4基于PEKS的加密設(shè)計 163.2.5數(shù)據(jù)的檢索 173.3系統(tǒng)整體設(shè)計模塊 18第四章數(shù)據(jù)安全存儲系統(tǒng)設(shè)計 194.1系統(tǒng)初始化 194.1.1結(jié)構(gòu)體定義 194.1.2PEKS系統(tǒng)初始化 194.1.3RSA加密系統(tǒng)初始化 214.2數(shù)據(jù)存儲的實現(xiàn) 224.2.1數(shù)據(jù)存儲界面 224.2.2數(shù)據(jù)檢索流程實現(xiàn) 224.2.3PEKS系統(tǒng)實現(xiàn) 234.3數(shù)據(jù)檢索的實現(xiàn) 254.3.1數(shù)據(jù)檢索界面 254.3.2數(shù)據(jù)檢索流程實現(xiàn) 254.3.3數(shù)據(jù)檢索中的PEKS實現(xiàn) 26第四章系統(tǒng)測試 28第五章結(jié)束語 29致謝 30參考文獻 31附錄1英文文獻 32附錄2中文譯文 36摘要科學(xué)技術(shù)的發(fā)展和時代進步,從蒸汽機的發(fā)明開始,近代工業(yè)的突飛猛進,新興產(chǎn)業(yè)的遍地開花都展現(xiàn)出蓬勃的生機,尤其是近三十年間,電子信息技術(shù)產(chǎn)業(yè)的發(fā)展更是展現(xiàn)了其實力和前景。縱觀當(dāng)今社會,信息的存儲逐漸取代了傳統(tǒng)的紙質(zhì)形式,轉(zhuǎn)而大多是以電子形式進行的。因為s電子存儲介質(zhì)容量大體積小,快速便捷,不易受損的性質(zhì)成為了存儲界的寵兒,然而衍生出的安全問題也同樣值得關(guān)注。電子存儲介質(zhì)一旦受損,那么信息的安全何以保障,在信息化的當(dāng)今時代,一旦信息泄露引發(fā)的問題可能足以致命。在這種形式下,基于數(shù)據(jù)的安全存儲系統(tǒng)的設(shè)計與研究就顯得極其必要。隨著互聯(lián)網(wǎng)的高速發(fā)展,眾多企業(yè)和個人己經(jīng)把大量數(shù)據(jù)交給第三方服務(wù)器存儲,如何保證私有數(shù)據(jù)的機密性和隱私成為急需解決的問題。加密技術(shù)是保護數(shù)據(jù)機密性和隱私的一種較為有效的手段,然而對加密后的數(shù)據(jù)進行檢索卻是一項非常困難的工作。特別是在非可信環(huán)境的情況下,如何對加密數(shù)據(jù)進行高效地查詢引起了人們普遍的關(guān)注。因此,可搜索加密成為了近幾年的研究熱點之一。可搜索加密分為帶關(guān)鍵詞檢索的對稱加密和帶關(guān)鍵詞檢索的公鑰加密。帶關(guān)鍵詞檢索的對稱加密有著簡單、高效的優(yōu)點,但無法實現(xiàn)對第三方數(shù)據(jù)的秘密檢索?,F(xiàn)有的帶關(guān)鍵詞檢索公鑰加密雖然可以實現(xiàn)對第三方數(shù)據(jù)的秘密檢索,但效率不高。本文主要研究可搜索加密技術(shù),針對現(xiàn)有的帶關(guān)鍵詞檢索公鑰加密方案中大量對運算需要消耗較多時間、效率不高等問題,提出了一種高效的帶關(guān)鍵詞檢索的公鑰加密方案。該方案既具備帶關(guān)鍵詞檢索的對稱加密簡單、高效的優(yōu)點關(guān)鍵詞:可搜索加密;公鑰加密;帶關(guān)鍵詞檢索的公鑰加密ABSTRACTWiththerapiddevelopmentofComputerScience,electronicdataStorageisbecomingmorepopular.MostofdatawasstoredasElectronicdocuments.ItarouseswideconcernofhowtoprovedataSecurity.Intheinformationsystems,ifstorageswereoutofcontrol,allthesensitiveinformationandimportantdatawillbestolen,whichResultinheavylosses.Therefore,toefficientlysecurethedata,it’sNecessarytoresearchdatasecuritysystembasedonencryption.Withtherapiddevelopmentofinternet,anumberofcompaniesandindividualshavestoreddataonathirdPartyserver.HowtoensuretheconfidentialityandPrivacyofPrivatedatahasbecomeanurgentProblem.EncryptionisaneffectivemeansofProtectingtheconfidentialityandPrivacyofdata,butretrievalontheencrypteddataisaverydifficulttask.Particularlyduetonon-trustedenvironment,howtosearchonencrypteddataefficientlycausedwidespreadconcern.Thus,searchableencryptionhasbecomeahottopicinrecentyears.SearchableencryptioncanbedividedintosymmetricencryptionwithkeywordsearchandPublickeyEncryptionwithKeywordSearch(PEKS).Symmetricencryptionwithkeywordsearchissimpleandhashighefficiency,butcannotrealizethePrivatesearchforthird-Partydata.ThePublickeyEncryptionwithKeywordSearchcanrealizethePrivatesearchforthird-Partydata,butisinefficient.ThisPaperMainlystudiessearchableencryption.SincegreatcomputationofpairingsinPEKSschemesarestilltimeconsumingandinefficient,thisPaperproposesamoreefficientPEKSscheme.ThenewPEKSschemenotonlyretainstheadvantagesofsymmetricencryptionwithkeywordsearchsuchassimplexesandhighefficiency,butalsocanrealizetheprivatesearchforthird一Partydata.Keywords:Searchableencryption,Publickeyencryption;PublickeyEncryptionwithKeywordSearch(PEKS)第一章緒論1.1研究背景隨著時代的進步,我們已經(jīng)進入了信息化社會,所以在這個時代信息是一切的基礎(chǔ),掌握信息才能掌握這個時代的脈搏,才能在這個信息時代取得自己的一片天。正是因為信息時代的到來,所以信息安全尤其顯得重要。數(shù)據(jù)安全是信息安全中尤為重要的一環(huán),也是具有決定意義的一環(huán),對于信息安全的研究也是為了我們自身生活環(huán)境,國家發(fā)展的一項貢獻。作為老百姓來說,信息安全也不可小視。舉個例子來說,當(dāng)購買了一套住房后,你的個人信息有可能會被無良商人泄露,從而一些建筑公司會主動打電話來詢問戶主是否需要裝修等。這就是一種信息未得到安全保證的結(jié)果?,F(xiàn)實生活中,計算機信息安全,網(wǎng)絡(luò)信息安全都與我們自身息息相關(guān)。對于公司業(yè)務(wù)來說,如何保障大規(guī)模的數(shù)據(jù)安全更是一件刻不容緩的事。存儲介質(zhì)隨著辦公自動化的發(fā)展變得越來越大,如果不伴以安全輔助,那么一旦發(fā)生泄漏,損失難以估計即使在有防火墻,隔離裝置等網(wǎng)絡(luò)安全設(shè)備在阻止著基于網(wǎng)絡(luò)的安全攻擊,但是數(shù)據(jù)在存儲中存在的漏洞和安全隱患卻有可能在不經(jīng)意間導(dǎo)致大規(guī)模的信息安全危害事故。從網(wǎng)上的調(diào)查數(shù)據(jù)可知,現(xiàn)如今大部分的信息泄露主要是內(nèi)部人員所為,也就是說外來黑客的攻擊只占小部分,大部分的信息泄露都是由于數(shù)據(jù)存儲的管理制度不完善,內(nèi)部人員隨意竊取導(dǎo)致。在問題如此嚴(yán)重的當(dāng)下,對于研發(fā)一個數(shù)據(jù)加密存儲系統(tǒng)顯得十分有必要。必須要保證在各種存儲介質(zhì)上的數(shù)據(jù)安全,以與在介質(zhì)出現(xiàn)失控情況下的數(shù)據(jù)安全問題在大多數(shù)重要業(yè)務(wù)部門的敏感數(shù)據(jù)的應(yīng)用熱點下,數(shù)據(jù)安全系統(tǒng)應(yīng)當(dāng)構(gòu)建在現(xiàn)有的計算機,軟件網(wǎng)絡(luò)設(shè)施之上,并融合在各個應(yīng)用中,形成高效便利的方式和系統(tǒng)。作為必要的基礎(chǔ)環(huán)節(jié),使得信息系統(tǒng)的運作更為安全和完善。1.2數(shù)據(jù)安全保護現(xiàn)狀1.明文存儲即使在強調(diào)信息安全的當(dāng)今社會,也依然有單位或者個人對信息安全意識的缺乏,又或者對信息安全的不重視,他們將重要信息直接以明文的形式存儲在介質(zhì)中,包括移動硬盤或者計算機。然而一旦這些介質(zhì)受到攻擊,,明文形式保存的信息就會遭到泄露,那么所帶來的后果將是十分嚴(yán)重的,輕則需要重新錄入,重則面臨巨大損失。2.適用面狹窄在我完成這篇論文之前,我對加密這一領(lǐng)域也不甚了解,第一可能是我學(xué)藝不精,第二加密系統(tǒng)對個人用戶似乎也沒有很多的優(yōu)化,一些優(yōu)良的加密系統(tǒng)在大型設(shè)備上用的很廣泛,而對個人用戶來說操作不便,成本太高可能也是造成這個方面的主要原因。3.網(wǎng)絡(luò)防護和加密隱藏現(xiàn)有的加密系統(tǒng)的調(diào)查和分析可知,一些加密系統(tǒng)似乎對網(wǎng)絡(luò)這一塊做得工作甚少,而且似乎也不愿意在自動隱藏上下工夫。這導(dǎo)致了一個重要問題,就是在一些網(wǎng)絡(luò)系統(tǒng)中,用戶信息很可能被直接在網(wǎng)絡(luò)中獲取明文信息,導(dǎo)致信息泄露。而自動隱藏功能更是應(yīng)該被廣泛應(yīng)用,當(dāng)計算機失控時,經(jīng)過加密自動隱藏的數(shù)據(jù)不能顯現(xiàn)時,這樣才會為數(shù)據(jù)不被泄露提供有力的保障4.加密等級過低加密技術(shù)的發(fā)展必然導(dǎo)致反加密技術(shù)的進步,一些加密系統(tǒng)的加密強度已經(jīng)不能滿足現(xiàn)如今對加密系統(tǒng)的強度要求,效率和有效性應(yīng)當(dāng)逐步提升以滿足用戶的需求1.3數(shù)據(jù)安全和信息安全發(fā)展趨勢安全這個詞不存在絕對性,任何一個系統(tǒng)都無法保證絕對的安全性。我們反復(fù)制定數(shù)據(jù)安全的需求和標(biāo)準(zhǔn),正是由于這個原因,信息技術(shù)的提升,網(wǎng)絡(luò)的日益完善與發(fā)達,都使得安全這個詞的標(biāo)準(zhǔn)一再拔高,一再需要重新界定,一勞永逸解決這個問題顯得多么的不切實際。所以要實現(xiàn)對數(shù)據(jù)的持續(xù)安全,就必須在這個信息高速發(fā)展的時代持續(xù)的關(guān)注和不斷的解決。從整體來看,數(shù)據(jù)安全的趨勢形成了如下四個方面數(shù)據(jù)安全的重要性日漸增強。數(shù)據(jù)安全作為信息安全的核心組成部分,在信息安全中起著至關(guān)重要的作用。在當(dāng)今這個時代,信息安全所涉與的領(lǐng)域包括國防,國民經(jīng)濟建設(shè),企業(yè)發(fā)展,個人事業(yè),這些大都與我們的生活發(fā)展息息相關(guān),因此,信息安全顯得尤為重要數(shù)據(jù)安全概念的發(fā)展,安全手段的不斷強化。安全這個詞從誕生起就在不斷的發(fā)展和深化。信息安全的特性如下,保密性,完整性,可用性,可控性,不可否認(rèn)性。信息化時代進步的日益加快,信息在這幾個特性下的發(fā)展也在逐步進行,并且在基于這幾個方面上研究和發(fā)展。數(shù)據(jù)安全系統(tǒng)的復(fù)雜性?,F(xiàn)代信息系統(tǒng)發(fā)展帶來了生活的便利,同時也帶來了數(shù)據(jù)安全這一重大課題??梢钥闯觯@個問題的解決必然會基于現(xiàn)代高新技術(shù)的支持,傳統(tǒng)的方法是無法滿足要求的。由此,各種新技術(shù)便應(yīng)運而生。數(shù)據(jù)安全涉與的面增廣。從傳統(tǒng)的實體化安全例如上鎖,到現(xiàn)在的網(wǎng)絡(luò)安全,存儲安全等,同時一些加密技術(shù)如指紋識別,虹膜識別等1.4目的和意義1.為信息安全增添一道防護措施現(xiàn)在數(shù)據(jù)安全的概念已得到了廣泛的普與,征服部門和企業(yè)都開始逐步增加了對信息安全的重視,雖說在很大一部分上是通過行政手段來提供的保障,但是在系統(tǒng)失效的情況下如何保護重要敏感的數(shù)據(jù)可謂重中之重。應(yīng)運而生的數(shù)據(jù)安全系統(tǒng)可以對存儲介質(zhì)提供加密保護,即使系統(tǒng)出現(xiàn)失控或別的一些故障,數(shù)據(jù)安全系統(tǒng)依舊為數(shù)據(jù)安全提供者保障。由此可見,數(shù)據(jù)安全存儲系統(tǒng)和行政管理的相互補充,有效的保護了數(shù)據(jù)安全2.增加普適性,為用戶提供簡單便捷的操作以與全面的數(shù)據(jù)保護在計算機技術(shù)與信息技術(shù)高速發(fā)展的今天,電子文檔已經(jīng)在大規(guī)模上取代了傳統(tǒng)紙質(zhì)介質(zhì),而且存儲介質(zhì)的容量的不斷擴增,導(dǎo)致了現(xiàn)在用戶會將大部分的資料存儲在一個介質(zhì)中,一旦該介質(zhì)出現(xiàn)故障等問題足以致命。3.機密性網(wǎng)絡(luò)中的一些數(shù)據(jù)是存在極高的機密性的,例如賬號密碼等一系列數(shù)據(jù)。這些數(shù)據(jù)讓工作本身就成為了一種秘密性的行為。所以要實時確保該類信息的保密,確保信息即使在不被授權(quán)的情況下不會被第三方獲得4.完整性數(shù)據(jù)安全中的重要一環(huán)就是要保障數(shù)據(jù)傳輸中的完整性,以防止數(shù)據(jù)的錯序,丟失,重復(fù)等行為。保證信息的完整性是保障數(shù)據(jù)安全的基礎(chǔ),也是前提5.對于機密數(shù)據(jù)的訪問必須經(jīng)過身份驗證數(shù)據(jù)的存儲時運行在一個大的并且是實時開放的網(wǎng)絡(luò)中的,所以對于機密數(shù)據(jù)的訪問是必須要經(jīng)過身份驗證,以確保信息是來自真實身份的發(fā)送方。以防止在一方進行越權(quán)操作時,保證機密數(shù)據(jù)的完整6.不可抵賴性信息一旦存儲,其不可抵賴性是毋容置疑的。很多信息安全的項目涉與到責(zé)任權(quán)利等問題,所以信息的不可抵賴性的作用體現(xiàn)的極為明顯。信息既已操作,其操作行為會隨之記錄,這是基于公平公正性進行考慮的,所以必須要滿足這一點第二章數(shù)據(jù)安全保護的主要應(yīng)用技術(shù)2.1加密算法本文主要涉與的是數(shù)據(jù)安全,所以各種加密算法是重中之重。根據(jù)加密算法中秘鑰類型的不同,可以將加密算法分為兩類,對稱加密和非對稱加密。2.1.1對稱加密采用單鑰密碼系統(tǒng)的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密,也稱為單密鑰加密。需要對加密和解密使用相同密鑰的加密算法。由于其速度快,對稱性加密通常在消息發(fā)送方需要加密大量數(shù)據(jù)時使用。對稱性加密也稱為密鑰加密。所謂對稱,就是采用這種加密方法的雙方使用方式用同樣的密鑰進行加密和解密。密鑰是控制加密與解密過程的指令。算法是一組規(guī)則,規(guī)定如何進行加密和解密。因此加密的安全性不僅取決于加密算法本身,密鑰管理的安全性更是重要。因為加密和解密都使用同一個密鑰,如何把密鑰安全地傳遞到解密者手上就成了必須要解決的問題。常用對稱加密算法DES:使用一個56位的密鑰以與附加的8位奇偶校驗位(每組的第8位作為奇偶校驗位),產(chǎn)生最大64位的分組大小。這是一個迭代的分組密碼,使用稱為Feistel的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進行“異或”運算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。DES使用16輪循環(huán),使用異或,置換,代換,移位操作四種基本運算。3DES:3DES(即TripleDES)是DES向AES過渡的加密算法(1999年,NIST將3-DES指定為過渡的加密標(biāo)準(zhǔn)),加密算法,其具體實現(xiàn)如下:設(shè)Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,P代表明文,C代表密文,這樣:3DES加密過程為:C=Ek3(Dk2(Ek1(P))),3DES解密過程為:P=Dk1(EK2(Dk3(C)))AES:密碼學(xué)中的高級加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES),又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。2.1.2非對稱加密非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數(shù)據(jù)進行加密,只有用對應(yīng)的私有密鑰才能解密;如果用私有密鑰對數(shù)據(jù)進行加密,那么只有用對應(yīng)的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。非對稱加密算法實現(xiàn)機密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發(fā)送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。常用非對稱加密算法1.RSA:RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。RSA的算法涉與三個參數(shù),n、e1、e2。其中,n是兩個大質(zhì)數(shù)p、q的積,n的二進制表示時所占用的位數(shù),就是所謂的密鑰長度。e1和e2是一對相關(guān)的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質(zhì);再選擇e2,要求(e2*e1)mod((p-1)*(q-1))=1。(n,e1),(n,e2)就是密鑰對。其中(n,e1)為公鑰,(n,e2)為私鑰。[1]RSA加解密的算法完全相同,設(shè)A為明文,B為密文,則:A=B^e2modn;B=A^e1modn;(公鑰加密體制中,一般用公鑰加密,私鑰解密)e1和e2可以互換使用,即:A=B^e1modn;B=A^e2modn;RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。RSA的一些變種算法已被證明等價于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個十進制位的大素數(shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定。Diffie-Hellman密鑰交換一種確保共享KEY安全穿越不安全網(wǎng)絡(luò)的方法,它是OAKLEY的一個組成部分。Whitefield與MartinHellman在1976年提出了一個奇妙的密鑰交換協(xié)議,稱為Diffie-Hellman密鑰交換協(xié)議/算法(Diffie-HellmanKeyExchange/AgreementAlgorithm).這個機制的巧妙在于需要安全通信的雙方可以用這個方法確定對稱密鑰。然后可以用這個密鑰進行加密和解密。但是注意,這個密鑰交換協(xié)議/算法只能用于密鑰的交換,而不能進行消息的加密和解密。雙方確定要用的密鑰后,要使用其他對稱密鑰操作加密算法實際加密和解密消息?;谠亩x與性質(zhì),可以定義Diffie-Hellman密鑰交換算法.該算法描述如下:1.有兩個全局公開的參數(shù),一個素數(shù)q和一個整數(shù)a,a是q的一個原根.2.假設(shè)用戶A和B希望交換一個密鑰,用戶A選擇一個作為私有密鑰的隨機數(shù)XA(XA<q),并計算公開密鑰YA=a^XAmodq。A對XA的值保密存放而使YA能被B公開獲得。類似地,用戶B選擇一個私有的隨機數(shù)XB<q,并計算公開密鑰YB=a^XBmodq。B對XB的值保密存放而使YB能被A公開獲得.3.用戶A產(chǎn)生共享秘密密鑰的計算方式是K=(YB)^XAmodq.同樣,用戶B產(chǎn)生共享秘密密鑰的計算是K=(YA)^XBmodq.這兩個計算產(chǎn)生相同的結(jié)果:K=(YB)^XAmodq=(a^XBmodq)^XAmodq=(a^XB)^XAmodq(根據(jù)取模運算規(guī)則得到)=a^(XBXA)modq=(a^XA)^XBmodq=(a^XAmodq)^XBmodq=(YA)^XBmodq因此相當(dāng)于雙方已經(jīng)交換了一個相同的秘密密鑰.4.因為XA和XB是保密的,一個敵對方可以利用的參數(shù)只有q,a,YA和YB.因而敵對方被迫取離散對數(shù)來確定密鑰.例如,要獲取用戶B的秘密密鑰,敵對方必須先計算XB=inda,q(YB)然后再使用用戶B采用的同樣方法計算其秘密密鑰K.Diffie-Hellman密鑰交換算法的安全性依賴于這樣一個事實:雖然計算以一個素數(shù)為模的指數(shù)相對容易,但計算離散對數(shù)卻很困難.對于大的素數(shù),計算出離散對數(shù)幾乎是不可能的.下面給出例子.密鑰交換基于素數(shù)q=97和97的一個原根a=5.A和B分別選擇私有密鑰XA=36和XB=58.每人計算其公開密鑰YA=5^36=50mod97YB=5^58=44mod97在他們相互獲取了公開密鑰之后,各自通過計算得到雙方共享的秘密密鑰如下:K=(YB)^XAmod97=44^36=75mod97K=(YA)^XBmod97=50^58=75mod97從|50,44|出發(fā),攻擊者要計算出75很不容易2.2帶關(guān)鍵詞搜索的公鑰加密算法(PEKS)帶關(guān)鍵詞的公鑰加密(Publickeyencryptionwithkeywordsearch)是一種新型的密碼體制,允許我們在經(jīng)過加密的數(shù)據(jù)上進行關(guān)鍵詞搜索,不僅保證數(shù)據(jù)接收方的隱私,同時提供了一種方法,使得我們無須對數(shù)據(jù)進行解密就能快速有效地進行搜索操作。一個非交互的帶關(guān)鍵詞檢索的公鑰加密體制包含如下四個概率多項式時間算法:(l)初始化:輸入安全參數(shù)k,輸出密鑰對(私鑰以與公鑰);(2)PEKS算法:以接收者的公鑰以與關(guān)鍵詞w作為輸入,通過PEKS算法計算出可用于搜索關(guān)鍵詞w的密文s,(3)限門產(chǎn)生算法:以接收者的私鑰和關(guān)鍵詞w作為輸入,生成關(guān)鍵詞w的限門,;(4)關(guān)鍵詞檢索算法:輸入關(guān)鍵詞w的限門以與一個PEKS密文如果w=w’,該算法返回”Yes”,否則返回”No”;2.3基于雙線性對的PEKS方案帶關(guān)鍵詞檢索的公鑰加密(PEKS)有多種構(gòu)造,大部分都是使用橢圓曲線上的雙線性對進行構(gòu)造。總體上,是使用了兩個階為素數(shù)p的群,以與一個在這兩個群上的雙線性對,該雙線性對滿足以下屬性:可計算性:給定g,,有一個多項式時間算法能夠計算;雙線性:對于任何整數(shù),有非退化性:如果g為的生成元,則為的生成元:BONEH等人基于以上的雙線性對性質(zhì)構(gòu)造了如下帶關(guān)鍵詞檢索的公鑰加密方案,同時使用兩個哈希函數(shù)和,方案由如下四個算法構(gòu)成:(1)初始化:輸入安全參數(shù)p決定群,的大小,算法隨機選擇一個整數(shù),以與群G,的一個生成元g。輸出(2):首先計算,隨機數(shù),輸出(3):輸出(4)(:令S=[A,B],如果,輸出“yes”,否則輸出“no,”。2.4PBC庫PBC庫是一種c語言開發(fā)的開源高精度數(shù)值運算庫,在GMP庫之上開發(fā),主要提供了橢圓曲線上的配對運算。本文在PEKS的運算中使用到了PBC庫中的一些數(shù)據(jù)類型和函數(shù)調(diào)用:(1)數(shù)據(jù)類型:Element_t:elementsofanalgebraicstructurePairing_t:pairingswhereelementsbelong;caninitializefromsamplefromsamplepairingparametersbundledwithPBCintheparamsubdirectoryPbc_param_t:usedtogeneratepairingparameters(2)函數(shù):Voidelement_init_G1(element_te,pairing_tpairing)Voidelement_init_G2(element_te,pairing_tpairing)第三章數(shù)據(jù)安全存儲系統(tǒng)設(shè)計隨著計算機網(wǎng)絡(luò)技術(shù)、信息技術(shù)飛速發(fā)展,諸如電子商務(wù)等數(shù)字化產(chǎn)業(yè)正在世界范圍內(nèi)迅速崛起。從政府機關(guān)、企事業(yè)單位、科研院所、高校,甚至是普通人都越來越習(xí)慣于使用計算機存儲信息和數(shù)據(jù),同時利用局域網(wǎng)和互聯(lián)網(wǎng)實現(xiàn)互聯(lián)互通和信息共享。因此確保數(shù)據(jù)信息的安全存儲成為實現(xiàn)信息安全的首要條件。3.1系統(tǒng)設(shè)計總體要求數(shù)據(jù)安全存儲系統(tǒng)提供給用戶加密重要涉密文檔,既要安全可靠,又要方便快捷,因此應(yīng)能滿足以下要求:1.實用性:盡量滿足數(shù)據(jù)安全保護的各種需求,操作方便簡單。2.穩(wěn)定性:研發(fā)過程中,盡量考慮各種可能出現(xiàn)的意外情況,保證系統(tǒng)能穩(wěn)定運行,并建立健全的數(shù)據(jù)恢復(fù)機制,避免給用戶帶來不必要的損失。3.先進性:采用目前先進的技術(shù)與實現(xiàn)方法,保證系統(tǒng)各項功能性能良好。安全性:保證保護的數(shù)據(jù)不被有效竊取。3.2系統(tǒng)設(shè)計總體目標(biāo)本系統(tǒng)設(shè)計以安全存儲數(shù)據(jù)為最終目標(biāo),主要完成以下功能:3.2.1數(shù)據(jù)存儲功能數(shù)據(jù)的存儲是本系統(tǒng)的基礎(chǔ),也是必須滿足的功能之一。該系統(tǒng)是將數(shù)據(jù)以密文的形式存入硬盤,所以數(shù)據(jù)存儲系統(tǒng)需要保證以明文形式輸入的數(shù)據(jù)可以輸送至加密系統(tǒng)。當(dāng)加密完成后,以密文形式傳出的數(shù)據(jù)可以傳送回數(shù)據(jù)存儲系統(tǒng),并將其安全的存儲在硬盤上。所以當(dāng)用戶需要存儲數(shù)據(jù)時,首先應(yīng)選擇數(shù)據(jù)的存儲路徑,然后進入數(shù)據(jù)輸入界面輸入數(shù)據(jù),當(dāng)數(shù)據(jù)輸入完成后,系統(tǒng)將執(zhí)行上述操作3.2.2數(shù)據(jù)的關(guān)鍵詞由于本系統(tǒng)是基于PEKS的數(shù)據(jù)存儲,PEKS即帶有關(guān)鍵詞搜索的公鑰加密。所以在公鑰加密的基礎(chǔ)上,關(guān)鍵詞的提取也是本系統(tǒng)的一個基礎(chǔ)要點。關(guān)鍵詞在提取完成后也會被輸入加密系統(tǒng)。而在數(shù)據(jù)檢索時,關(guān)鍵詞的作用不言而喻。所以在系統(tǒng)的設(shè)計中加入了關(guān)鍵詞輸入的部分,以用來記錄數(shù)據(jù)的關(guān)鍵詞3.2.3系統(tǒng)初始化系統(tǒng)在初始化時,會自動取安全大素數(shù)p,g是p的本原根,p和g作為公開的參數(shù)。存儲模塊選擇一個保密的隨機整數(shù)作為自己的私鑰,而存儲模塊的公鑰為,數(shù)據(jù)檢索系統(tǒng)選擇保密隨機整數(shù)作為自己的私鑰,相應(yīng)的公鑰則為。在用戶模塊中包含公鑰加密算法E,偽隨機序列生成器G,加密關(guān)鍵詞所需的帶密鑰的和秘密參數(shù)UN的安全哈希函數(shù)H,帶密鑰c的偽隨機函數(shù)。3.2.4基于PEKS的加密設(shè)計用戶模塊向存儲模塊發(fā)送包括關(guān)鍵詞(,...)的消息msg,用戶模塊采用如下方式對消息和關(guān)鍵詞進行加密輸入公鑰,然后對整個消息進行加密得到;計算,計算;其中為用帶密鑰的安全哈希函數(shù)H求x的值用偽隨機序列生成器G生成n-m為的,計算,加在Si后面,得到n位的,其中為帶密鑰的偽隨機函數(shù)計算關(guān)鍵詞密文將密文發(fā)送給存儲模塊輸入關(guān)鍵詞w和公鑰PKa輸入關(guān)鍵詞w和公鑰PKa生成帶密鑰的隨機函數(shù)生成帶密鑰的隨機函數(shù)生成安全哈希函數(shù)生成安全哈希函數(shù)偽隨機數(shù)列生成器偽隨機數(shù)列生成器3.2.5數(shù)據(jù)的檢索本文主要論述的是基于PEKS的數(shù)據(jù)存儲,所以數(shù)據(jù)的檢索是本文的重點。當(dāng)用戶提出獲取關(guān)鍵詞w的數(shù)據(jù)時,用戶首先通過用戶模塊生成搜索陷門,然后將搜索陷門傳送給存儲模塊進行檢索。具體步驟如下;首先在用戶模塊上輸入自己的私鑰和關(guān)鍵詞kw用戶模塊根據(jù)輸入的私鑰,自動計算用戶模塊根據(jù)得到的TK計算,為關(guān)鍵詞kw生成陷門,其中:向存儲模塊發(fā)送,請求檢索帶有關(guān)鍵詞kw的消息3.3系統(tǒng)整體設(shè)計模塊加密數(shù)據(jù)存儲數(shù)據(jù)關(guān)鍵詞檢測加密數(shù)據(jù)存儲數(shù)據(jù)關(guān)鍵詞檢測密文存儲關(guān)鍵詞加密密文存儲關(guān)鍵詞加密存儲模塊存儲模塊生成陷門檢索數(shù)據(jù)生成陷門檢索數(shù)據(jù)用戶界面用戶界面PEKS系統(tǒng)PEKS系統(tǒng)用戶模塊用戶模塊數(shù)據(jù)安全系統(tǒng)按照功能和操作劃分,主要分為兩大模塊:用戶模塊和存儲模塊用戶模塊:主要實現(xiàn)用戶界面,包括數(shù)據(jù)存儲界面和數(shù)據(jù)檢索界面。數(shù)據(jù)加密系統(tǒng)以與陷門生成系統(tǒng)(1)數(shù)據(jù)加密系統(tǒng):對即將存儲的數(shù)據(jù)進行加密,采用公鑰加密的方式進行加密,以確保其安全強度(2)關(guān)鍵詞加密系統(tǒng):用于對傳來的關(guān)鍵詞w進行加密,并將密文與(1)中系統(tǒng)加密形成的密文共同傳輸給存儲模塊(3)陷門生成系統(tǒng):在數(shù)據(jù)檢索時用于生成陷門,并實現(xiàn)和存儲模塊的連接,以便數(shù)據(jù)的檢索存儲模塊:主要用來實現(xiàn)對用戶模塊傳來的密文的存儲功能以與在數(shù)據(jù)檢測時對關(guān)鍵詞檢測并選擇消息的功能關(guān)鍵詞檢索系統(tǒng):其中含有關(guān)鍵詞檢索函數(shù)test,對于傳遞來的陷門函數(shù),進行關(guān)鍵詞檢索密文存儲:對于傳遞來的密文,存儲模塊將會將他寫入到硬盤里第四章數(shù)據(jù)安全存儲系統(tǒng)設(shè)計4.1系統(tǒng)初始化4.1.1結(jié)構(gòu)體定義雙線性對結(jié)構(gòu)體typedefstructsysparam{ pairing_tpairing;}sysparams;公鑰對結(jié)構(gòu)體typedefstructpubkey{ element_tg,h;}pubkey;私鑰結(jié)構(gòu)體typedefstructprivatekey{element_talpha;}privatekey;PEKS密文結(jié)構(gòu)體typedefstructPEKSCipher{ element_tc1,c2;}PEKSCipher;陷門結(jié)構(gòu)體typedefstructTrapdoor{ element_tt;}Trapdoor;4.1.2PEKS系統(tǒng)初始化首先調(diào)用PCB庫中的函數(shù),形成雙線性初始化函數(shù),其中pbc_pairing_init_demo為pbc庫中的函數(shù),具體實現(xiàn)代碼如下:intpbc_pairing_init_demo(pairing_tpairing){ char*PairingInitString="typea\n""q87812522437781984754116475637862517942266222142323174592777324925129998224791\n""h1211468935978026776\n""r732455776559617\n""exp2159\n""exp1107\n""sign11\n""sign01\n";chars[1000];intrv;pbc_param_tparam;FILE*fp=stdin; fp=fopen("a.param","r");if(!fp)printf("erroropening%s","a.param");size_tcount=fread(s,1,1000,fp);if(!count)printf("inputerror");fclose(fp);rv=pairing_init_set_buf(pairing,PairingInitString,strlen(PairingInitString));if(rv){ returnrv;}rv=pairing_is_symmetric(pairing);if(!rv){ return-2;}return0;}當(dāng)系統(tǒng)進行存儲操作時,首先系統(tǒng)會生成密鑰,調(diào)用keygen函數(shù)生成密鑰,其中pk為公鑰,sk為私鑰。其中調(diào)用了PCB庫中的函數(shù),代碼實現(xiàn)如下intkeygen(sysparams*param,pubkey*pk,privatekey*sk){ element_init_G1(pk->g,param->pairing); element_init_G1(pk->h,param->pairing); element_init_Zr(sk->alpha,param->pairing); element_random(pk->g); element_random(sk->alpha); element_pow_zn(pk->h,pk->g,sk->alpha); return0;}4.1.3RSA加密系統(tǒng)初始化publicclassRSA{

//創(chuàng)建密鑰對生成器,指定加密和解密算法為RSA

publicString[]Skey_RSA(intkeylen){//輸入密鑰長度

String[]output=newString[5];//用來存儲密鑰的endpq

try{

KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");

kpg.initialize(keylen);//指定密鑰的長度,初始化密鑰對生成器

KeyPairkp=kpg.generateKeyPair();//生成密鑰對

RSAPublicKeypuk=(RSAPublicKey)kp.getPublic();

RSAPrivateCrtKeyprk=(RSAPrivateCrtKey)kp.getPrivate();

BigIntegere=puk.getPublicExponent();

BigIntegern=puk.getModulus();

BigIntegerd=prk.getPrivateExponent();

BigIntegerp=prk.getPrimeP();

BigIntegerq=prk.getPrimeQ();

output[0]=e.toString();

output[1]=n.toString();

output[2]=d.toString();

output[3]=p.toString();

output[4]=q.toString();

}catch(NoSuchAlgorithmExceptionex){

Logger.getLogger(RSA.class.getName()).log(Level.SEVERE,null,ex);

}

returnoutput;

}4.2數(shù)據(jù)存儲的實現(xiàn)4.2.1數(shù)據(jù)存儲界面4.2.2數(shù)據(jù)檢索流程實現(xiàn)在主界面點擊儲存按鈕后,程序會跳轉(zhuǎn)至數(shù)據(jù)存儲界面,在關(guān)鍵字一欄輸入關(guān)鍵字,在數(shù)據(jù)欄輸入數(shù)據(jù)完成后,點擊保存按鈕后,會實現(xiàn)事件響應(yīng),系統(tǒng)會將數(shù)據(jù)content和關(guān)鍵字keyword發(fā)送至PEKS系統(tǒng)中進行后續(xù)的操作,PEKS系統(tǒng)在接受關(guān)鍵詞和數(shù)據(jù)后會在系統(tǒng)內(nèi)進行加密操作,并返回密文cipher,系統(tǒng)會將cipher發(fā)送至存儲系統(tǒng)SaveImpl,調(diào)用.save函數(shù)進行存儲,具體代碼實現(xiàn)如下save1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){Stringkeyword1=keyword.getText(); Stringcontent1=content.getText(); PEKSSystempeksSys=newPEKSSystem(); Stringcipher=peksSys.save(keyword1,content1); SaveImplsi=newSaveImpl(cipher); si.save(); } }4.2.3PEKS系統(tǒng)實現(xiàn)(1)生成密鑰后,對即將進行加密存儲的數(shù)據(jù)的關(guān)鍵進行PEKS加密,其中pk為公鑰,keyword為關(guān)鍵詞,keywordlen為關(guān)鍵詞長度,cipher為密文,具體實現(xiàn)代碼如下:intPEKS(sysparams*param,pubkey*pk,unsignedchar*keyword,intkeywordLen,PEKSCipher*cipher)//PEKS密文生成函數(shù){ element_tr,tmp1,tmp2; element_init_G1(cipher->c1,param->pairing); element_init_GT(cipher->c2,param->pairing); element_init_Zr(r,param->pairing); element_random(r); element_pow_zn(cipher->c1,pk->g,r); element_init_G1(tmp1,param->pairing); element_from_hash(tmp1,keyword,keywordLen); element_init_G1(tmp2,param->pairing); element_pow_zn(tmp2,pk->h,r); element_pairing(cipher->c2,tmp1,tmp2); return0;}使用RSA加密算法對數(shù)據(jù)進行加密,具體代碼實現(xiàn)如下,content為輸入PEKS系統(tǒng)中的明文publicStringEnc_RSA(Stringcontent,StringeStr,StringnStr){Stringcipher=newString();try{BigIntegere=newBigInteger(eStr);BigIntegern=newBigInteger(nStr);byte[]ptext=mingwen.getBytes("UTF8");BigIntegerm=newBigInteger(ptext);BigIntegerc=m.modPow(e,n);cipher=c.toString();}catch(UnsupportedEncodingExceptionex){Logger.getLogger(RSA.class.getName()).log(Level.SEVERE,null,ex);}returncipher;}PEKS系統(tǒng)在加密完數(shù)據(jù)和關(guān)鍵詞后會將兩個密文一起發(fā)送給存儲模塊進行存儲,存儲模塊調(diào)用IO輸出流,將密文寫入文件中實現(xiàn)存儲,具體代碼實現(xiàn)如下fos=new(current); char[]chardata=content.toCharArray(); for(inta=0;a<chardata.length;a++){ fos.write(chardata[a]); }4.3數(shù)據(jù)檢索的實現(xiàn)4.3.1數(shù)據(jù)檢索界面4.3.2數(shù)據(jù)檢索流程實現(xiàn)當(dāng)用戶點擊了檢索按鈕后,系統(tǒng)會跳轉(zhuǎn)至檢索界面,在用戶輸入完成關(guān)鍵字后,系統(tǒng)會將關(guān)鍵字keyword發(fā)送至PEKS系統(tǒng)進行陷門函數(shù)操作,同時將輸出的關(guān)鍵詞密文keyWord_cipher送至存儲系統(tǒng)SaveImpl中的search方法,其中包含TEST(關(guān)鍵詞檢索算法),該算法會將發(fā)送來的keyWord_cipher與系統(tǒng)中的每個密文進行比對,若test返回true,則SaveImpl中的search返回輸出該數(shù)據(jù),具體代碼實現(xiàn)如下save1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ StringkeyWord1=keyword.getText(); PEKSSystempeksSys=newPEKSSystem(); StringkeyWord_cipher=peksSys.trapdoor(keyWord1); SaveImplsi=newSaveImpl(); Stringcontent_result=""; try{ content_result=si.search(keyWord_cipher); }catch(IOExceptione1){ e1.printStackTrace(); } result_show.setText(content_result); } });4.3.3數(shù)據(jù)檢索中的PEKS實現(xiàn)當(dāng)用戶輸入關(guān)鍵詞keyword結(jié)束后,系統(tǒng)會將keyword發(fā)送給PEKS系統(tǒng),調(diào)用其中的陷門函數(shù),生成加密后的關(guān)鍵詞密文,具體實現(xiàn)代碼如下,其中sk為私鑰,keyword為關(guān)鍵詞,keywordLen為關(guān)鍵詞長度inttrapdoor(sysparams*param,privatekey*sk,unsignedchar*keyword,intkeywordLen,Trapdoor*tw){ element_ttmp; element_init_G1(tmp,param->pairing); element_from_hash(tmp,keyword,keywordLen); element_init_G1(tw->t,param->pairing); element_pow_zn(tw->t,tmp,sk->alpha); return0;}在PEKS系統(tǒng)中生成陷門函數(shù)后,系統(tǒng)會將陷門函數(shù)生成的加密后的關(guān)鍵詞密文發(fā)送至存儲系統(tǒng)中的關(guān)鍵詞檢索算法中,當(dāng)該算法返回TRUE時,即找到該數(shù)據(jù),具體的實現(xiàn)代碼如下,其中tw為陷門函數(shù)中生成的加密后的關(guān)鍵詞密文,cipher為存儲在系統(tǒng)中的密文inttest(sysparams*param,Trapdoor*tw,PEKSCipher*cipher){ element_ttmp; element_init_GT(tmp,param->pairing); element_pairing(tmp,cipher->c1,tw->t); if(element_cmp(tmp,cipher->c2)==0) return0; else return-1;}使用RSA解密密文,具體代碼實現(xiàn)如下,其中cipher為存儲系統(tǒng)輸出的密文,content為解密后輸出的明文publicStringDec_RSA(Stringcipher,StringdStr,StringnStr){StringBuffercontent=newStringBuffer();BigIntegerd=newBigInteger(dStr);//獲取私鑰的參數(shù)d,nBigIntegern=newBigInteger(nStr);BigIntegerc=newBigInteger(miwen);BigIntegerm=c.modPow(d,n);//解密明文byte[]mt=m.toByteArray();//計算明文對應(yīng)的字符串并輸出for(inti=0;i<mt.length;i++){content.append((char)mt[i]);}returncontent.toString();}}第四章系統(tǒng)測試測試內(nèi)容測試方法測試結(jié)果備注數(shù)據(jù)存儲啟動系統(tǒng),進行操作測試通過10臺計算機,每臺不少于50次數(shù)據(jù)加密強度對數(shù)據(jù)加密強度進行破解通過對兩組數(shù)據(jù)進行破解,失敗數(shù)據(jù)檢索啟動系統(tǒng),進行操作測試通過穩(wěn)定些兼容性通過第五章結(jié)束語數(shù)據(jù)安全與信息系統(tǒng)的穩(wěn)定可靠息息相關(guān),因此,數(shù)據(jù)安全問題得到了越來越廣泛的關(guān)注。本文設(shè)計和實現(xiàn)了數(shù)據(jù)安全存儲系統(tǒng),使用密碼技術(shù)和手段對信息系統(tǒng)內(nèi)部的數(shù)據(jù)進行透明加密保護,成功達到了信息系統(tǒng)等級保護中有關(guān)數(shù)據(jù)安全保護的基本要求和目標(biāo)。本系統(tǒng)是基于PEKS,即帶關(guān)鍵詞的公鑰加密系統(tǒng)。該系統(tǒng)可在不用對數(shù)據(jù)解密的情況下對數(shù)據(jù)進行關(guān)鍵詞查找,保證了效率的同時也保證了其安全性和穩(wěn)定性。在我查閱資料的時候,學(xué)習(xí)到了對pbc庫的學(xué)習(xí)使用,由于pbc庫是基于C語言的,然而我又不是很掌握c語言的編程,所以本系統(tǒng)的主界面是在JAVA下做成的,而PEKS中的核心代碼是通過在JAVA中對C的調(diào)用來實現(xiàn)的,總的來說是在C語言代碼段的開頭加上JAVA語言文件編譯成頭文件加在C語言代碼段的開頭進行調(diào)用。在數(shù)據(jù)加密的過程中,使用RSA和DES等加密技術(shù),在很大程度上對數(shù)據(jù)安全進行了加強,保證了數(shù)據(jù)加密強度的同時也增加了數(shù)據(jù)安全存儲的效率。數(shù)字簽名也在一定程度上加強了數(shù)據(jù)的安全存儲,信息的不可抵賴性在這里得到了體現(xiàn),在公鑰加密中中間人攻擊是一種常見的形式,采用了數(shù)字簽名后極大的避免了這種攻擊形式。但與此同時,本系統(tǒng)中還有很多缺陷,比如在密文存入硬盤的過程只是簡單的調(diào)用了IO文件的輸入輸出,沒有在存儲進硬盤這一模塊下工夫,我今后的工作中一定會多多研究這一方面。在比如在數(shù)據(jù)傳入PEKS系統(tǒng)時也未做保密處理,可能會存在漏洞,但由于我的知識匱乏,這一方面我也仍在努力??偠灾?,信息安全的形式日益嚴(yán)峻,信息安全形式的多樣性必然會導(dǎo)致破解信息安全的方法日漸增多,時代在改變,技術(shù)也在發(fā)展,我希望能在今后的工作中習(xí)得更加先進的信息安全技術(shù),獲得更加先進的信息安全理念新技術(shù)、新理念融合進系統(tǒng),使系統(tǒng)功能得到不斷完善,使之在信息系統(tǒng)安全中發(fā)揮更大作用。致謝大學(xué)生活一晃而過,回首走過的歲月,心中倍感充實,當(dāng)我寫完這篇畢業(yè)論文的時候,有一種如釋重負(fù)的感覺,感慨良多。首先誠摯的感謝我的論文指導(dǎo)老師胡程瑜老師。他在忙碌的教學(xué)工作中擠出時間來審查、修改我的論文。還有教過我的所有老師們,你們嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。感謝四年中陪伴在我身邊的同學(xué)、朋友,感謝他們?yōu)槲姨岢龅挠幸娴慕ㄗh和意見,有了他們的支持、鼓勵和幫助,我才能充實的度過了四年的學(xué)習(xí)生活。感謝所有的任課老師,是你們讓我能夠靜靜地坐下來,在知識的海洋里吸取更多的營養(yǎng),從而能夠為自己進一步地加油充電。通過論文的撰寫,使我能夠更系統(tǒng)、全面地學(xué)習(xí)計算機相關(guān)的前沿理論知識,并得以借鑒眾多專家學(xué)者的寶貴經(jīng)驗,這對于我今后的工作和我為之服務(wù)的企業(yè),無疑是不可多得的寶貴財富。由于本理論水平比較有限,論文中的有些觀點以與對企業(yè)示例的歸納和闡述難免有疏漏和不足的地方,歡迎老師和專家們指正。參考文獻[1]盧開澄,計算機密碼學(xué)一計算機網(wǎng)絡(luò)中的數(shù)據(jù)保密與安全[M〕,北京:清華大學(xué)出版社,2003.[2]RiehterJeffrey,Windows核心編程[M」,北京:機械工業(yè)出版社,2003.[3]谷大武等,高級加密標(biāo)準(zhǔn)(AES)算法一Rijndael的設(shè)計[M孔北京:清華大學(xué)出版社,2003.[4]程庭,張明慧,一種基于DES和RSA的數(shù)據(jù)加密方案與實現(xiàn)「J」,河南教育學(xué)報,自然科學(xué)出版社,2003,12.[5]徐桂祥.《數(shù)據(jù)庫系統(tǒng)原理和應(yīng)用技術(shù)》.清華大學(xué)業(yè)出版社,2010[6]楊學(xué)全.《SQLServer實例教程》.電子工業(yè)出版社,2007[7]Y.DanielLiang.《IntroductiontoJavaProgramming.PearsonEducation》,2008[8]劉偉,張利國.《JavaWeb開發(fā)與實戰(zhàn):Eclipse+Tomcat+Servlet+JSP整合應(yīng)用》.科學(xué)出版社,2008[9]郝玉龍.《JavaEE編程技術(shù)》.清華大學(xué)出版社,2008[10]耿祥義.《JSP基礎(chǔ)教程》.清華大學(xué)出版社,2004[11]程偉,汪孝宜.《開發(fā)者突擊:JSP網(wǎng)絡(luò)開發(fā)經(jīng)典模塊實現(xiàn)全集》.電子工業(yè)出版社,2008[12]張新曼.《精通JSP:Web開發(fā)技術(shù)與典型應(yīng)用》.人民郵電出版社,2007[13]趙斌.《SQLServer2008應(yīng)用程序開發(fā)案例解析》.科學(xué)出版社,2009[14]郭鄭州,陳軍紅.《SQLServer2008完全學(xué)習(xí)手冊》.清華大學(xué)出版社,2011[15]ItzikBen-Gan.《MicrosoftSQLServer2008技術(shù)內(nèi)幕:T-SQL查詢:T-SQLquerying》.電子工業(yè)出版社,2010[16]崔群法,祝紅濤,趙喜來.《SQLServer2008中文版從入門到精通》.電子工業(yè)出版社,2009附錄1英文文獻SENTINEL:SecuringDatabasefromLogicFlawsinWebApplicationsXiaoweiLiDepartmentofElectricalEngineeringandComputerScienceVanderbiltUniversityNashville,TNUSA37203xiaowei.WeiYanDepartmentofElectricalEngineeringandComputerScienceVanderbiltUniversityNashville,TNUSA37203wei.YuanXueDepartmentofElectricalEngineeringandComputerScienceVanderbiltUniversityNashville,TNUSA37203yuan.ABSTRACTLogicflawswithinwebapplicationsallowtheattackerstodiscloseortampersensitiveinformationstoredinback-enddatabases,sincethewebapplicationusuallyactsasthesingletrusteduserthatinteractswiththedatabase.Inthispaper,wemodelthewebapplicationasanextendedfinitestatemachineandpresentablack-boxapproachforderivingtheapplicationspecificationanddetectingmaliciousSQLqueriesthatviolatethespecification.Severalchallengesarise,suchashowtoextractpersistentstateinformationinthedatabaseandinferdataconstraints.WesystematicallyextractasetofinvariantsfromobservedSQLqueriesandresponses,aswellassessionvariables,astheapplicationspecification.AnysuspiciousSQLqueriesthatviolatecorrespondinginvariantsareidentifiedaspotentialattacks.WeimplementaprototypedetectionsystemSENTINEL(SEcuriNgdaTabasefromlogIcflawsiNwEbappLication)andevaluateitusingasetofreal-worldwebapplications.Theexperimentresultsdemonstratetheeffectivenessofourapproachandacceptableperformanceoverheadisincurredbyourimplementation.CategoriesandSubjectDescriptorsH.2.7[DatabaseManagement]:DatabaseAdministration—Security,integrity,andprotection;K.6.5[ManagementofComputingandInformationSystems]:SecurityandProtection—UnauthorizedaccessGeneralTermsDesign,Experimentation,SecurityKeywordsLogicFlaw,WebApplicationSecurity,ExtendedFiniteStateMachine,SQLSignature,InvariantPermissiontomakedigitalorhardcopiesofallorpartofthisworkforpersonalorclassroomuseisgrantedwithoutfeeprovidedthatcopiesarenotmadeordistributedforprofitorcommercialadvantageandthatcopiesbearthisnoticeandthefullcitationonthefirstpage.Tocopyotherwise,torepublish,topostonserversortoredistributetolists,requirespriorspecificpermissionand/orafee.CODASPY’12,February7–9,2012,SanAntonio,Texas,USA.Copyright2012ACM978-1-4503-1091-8/12/02...$10.00.Database-backedwebapplicationshavebecomeaprevalentvenuefordisseminatinginformationandservices.AnenormousamountofinformationismadeaccessibleonInternetthroughwebapplications,whichinteractwiththebackenddatabaseonbehalfofusers.Whileprovidinggreatconveniencetousers,thosewebapplicationsalsoattractalargenumberofsecurityexploits.Accordingtoarecentsurvey[29],theattacksthatsuccessfullydiscloseortampersensitiveinformationbycompromisingvulnerablewebapplicationsaccountformorethan30%ofallthecyberattacks.Forinstance,onJune2010,itwasreportedthatavulnerabilityofAT&TwebsiteallowedanattackertoharvesttheAppleiPADsubscribers’emailsbyenumeratingICC-IDnumbers,whichaffectedover100,000Applecustomers[1].IntheWebscenario,thefront-endwebapplicationactsasthesingleuserthatinteractswiththedatabase.Thus,thedatabasefullytruststhewebapplication,acceptsandexecutesallthequeriessubmittedbytheapplication.Assuch,thevulnerabilitieswithinwebapplicationsmayintroducesecurityconcernsfortheinformationstoredinthedatabase.Oneclassofattacksexploittheapplication’sinputvalidationmechanismstotampertheintendedstructureofSQLqueriesissuedbytheapplication,whichiswellknownasSQLinjection.Anotherclassofattacksexploitlogicflawswithintheapplication,referredtoasstateviolationattacks[9],totricktheapplicationintosendingSQLqueriesatincorrectapplicationstates.Forexample,anattackermayretrieveotherusers’accountinformationwithoutprovidingtheadministrator’scredentialtotheapplication.Whilealargebodyofliteraturesfocusonfortifyingtheapplication’sinputvalidationmechanisms,onlyafewworkshaveattemptedtoaddresslogicflawswithinthewebapplications.Logicflawsarespecifictothefunctionalitiesofwebapplications,thusmoredifficulttohandle.Thekeytothisproblemistoderivetheapplication’sintendedlogic(i.e.,specification)inageneralandautomatedway.Oneapproachtoinferringtheapplicationspecificationisbyleveragingprogramsourcecode.Swaddler[9]establishesstatisticalmodelsoftheapplicationstateforeachprogramblockusingsessionvariables,whileWaler[13]characterizestheapplicationlogicbyassociatingvalue-basedinvariantsonfunctionparametersandsessionvariableswitheachprogramfunction.Thisapproachislimitedinthattheyrelyonprogramsourcecodetoextractthespecification.Theinferredspecificationishighlydependentonhowtheapplicationisstructuredandimplemented(e.g.,thedefinitionofaprogramfunctionorblock).Thus,implementationflawsmayresultinaninaccuratespecification.Anotherapproachinferstheapplicationspecificationbyobservingandcharacterizingtheapplication’sexternalbehavior.BLOCK[18]observesthewebrequests/responsesbetweenthewebapplicationanditsusersandextractsinvariantsass

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論