




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于密碼算法的數據加密傳輸系統的設計案例目錄TOC\o"1-3"\h\u103781.1.系統的整體設計 1146641.1.1.需求描述 171751.1.2.系統安全性 1227401.1.3.系統流程圖 2183111.2.系統概要設計 3203661.2.1.客戶端概要設計 3124831.2.2.服務器端概要設計 4522.數據加密傳輸系統的實現 6235232.1.系統開發環境 6167032.1.1.使用軟件 6257632.1.2.使用框架 625552.2.用戶注冊認證 634822.3.文件加密傳輸 113102.3.1.存儲結構 12242312.3.2.加密解密模塊 12170152.4.系統的實現與測試 15296462.4.1.關鍵代碼 1556002.4.2.系統測試 16系統的整體設計需求描述數據加密傳輸系統,是基于國產密碼算法而設計的系統,主要的功能包括兩個功能模塊:用戶注冊認證功能、文件加密傳輸功能。功能需求:數據加密傳輸系統最基礎、最主要的功能,是用戶自主注冊、登錄個人賬戶,并可以自主選擇文件進行加密操作,安全上傳文件,在此過程中,系統需要實現客戶端和服務器端之間的雙向身份認證,確認數據信息的來源,確保信息不會被惡意修改、替換,確保合法用戶的安全登錄。系統安全性雙向認證。本文設計實現了數據信息傳輸雙方之間的身份信息認證,基于此,攻擊者不能冒充服務器實施攻擊,維護了系統的安全。假冒用戶攻擊。在身份認證模塊中,客戶端與服務器端之間傳輸的注冊信息均經過加密處理,攻擊者不知道算法,因此他不能得到隨機數Ru,同時也不能得到明文M,即使攻擊者在認證過程中不能提供有效的Rui,所以即使他竊取到Huid、pw、uid想要冒充用戶發起認證,認證也不會成功。REF_Ref72313203\r\h[5]竊取信息攻擊。在本文設計中,關鍵的用戶信息都進行了一定的加密處理,如果不能破解算法,攻擊者是無法得到關鍵的信息的,因此攻擊者在明文未知的情況下,無法進行一次有效攻擊。中間人攻擊。客戶端對傳輸數據信息進行了數字簽名,且傳送的數據都是以密文的形式進行傳遞,攻擊者不能假冒服務器獲取用戶密鑰,由此可以確保發送信息的確來自于客戶端,且發送的文件數據是完整的、沒有被篡改的。不可否認性:在傳輸文件信息時,客戶端對文件進行了數字簽名,因此可以保證不可否認性。REF_Ref72691756\r\h[21]系統流程圖REF_Ref72771120\h圖41系統流程圖圖STYLEREF1\s4SEQ圖\*ARABIC\s11系統流程圖系統概要設計客戶端概要設計客戶端主要功能為:REF_Ref72527291\r\h[22]用戶選擇注冊,客戶端要求用戶輸入個人基本信息,并再次輸入密碼以確認,注冊界面簡單;用戶選擇登錄,客戶端提示用戶輸入賬號和密碼;能夠向客戶端發送注冊、登錄請求,并實現雙向驗證;能夠處理服務器端發送來的身份認證請求;產生隨機性較高的隨機數,能夠對認證信息完成對稱與非對稱的加密;能夠利用SM3算法計算數字摘要,加密處理需要安全上傳的文件;REF_Ref72771188\h圖42客戶端結構圖圖STYLEREF1\s4SEQ圖\*ARABIC\s12客戶端結構圖服務器端概要設計服務器端主要功能為:REF_Ref72527291\r\h[22]接受并且能夠及時處理用戶的注冊請求:驗證uid的合法性和可重復性,并且將用戶信息存儲在安全數據庫中;服務器端處于監聽狀態,等待、接受來自客戶端的連接請求;接受并且及時反饋用戶的身份驗證請求:服務器端產生隨機數,加密認證信息來確認用戶的身份信息,客戶端對服務器端的身份驗證信息進行解密處理并反饋一定信息,對用戶賬戶進行驗證。如果雙向身份認證通過,則允許合法用戶登錄;解密接收到的數字摘要,并進行驗證;REF_Ref72771275\h圖43服務器端結構圖圖STYLEREF1\s4SEQ圖\*ARABIC\s13服務器端結構圖數據加密傳輸系統的實現系統開發環境使用軟件在本次設計實驗過程中,開發語言是Java,使用的軟件包括IntelliJIDEA、MySQL、NavicatPremium15。本文使用的開發軟件為IntelliJIDEA(通常簡稱IDEA),是當前進行Java語言開發常用軟件,可以提供各類工具(git、svn等)、重構、CVS整合等多方面的功能,極大程度地降低了本次系統實現的難度。主要使用MySQL軟件實現相關數據的安全存儲。MySQL是可以與Java語言緊密結合的一種數據庫,其優點為體積小、成本低,但是安全且高效等。同時也使用了NavicatPremium15數據庫管理工具,可以更加安全且簡單地進行數據庫的相關管理操作。使用框架在本次設計實現過程中,采用了C/S架構,即客戶端/服務器模式,與之相對應的是B/S架構。C/S架構可以在一定程度上可以減少系統的通信開銷,最大程度地使用客戶端和服務器端的資源,以實現信息資源的共享利用。整體來說C/S架構的安全系數較高,響應速度較快,更加適用于本文系統的開發與實現。本文實現使用了TCP/IP協議,網絡的連接通過Socket來完成的,簡單來看,Socket可以看作是兩個端口的抽象化表達。REF_Ref72688030\r\h[23]Socket之間的連接過程可以描述為:客戶端的連接。首先客戶端的Socket會向服務器端Socket的端口號及地址進行探測,檢測到目標即會發出連接請求,服務器端則根據自身狀態選擇是否允許連接;服務器端的連接。當客戶端的Socket發送請求為服務器端Socket接收,服務器端則會將自己的描述信息發送給客戶端,當客戶端收到這個描述信息時會進行確認,由此服務器端和客戶端將會建立聯系。用戶注冊認證用戶注冊認證,包括注冊過程和認證過程,主要是利用國產密碼算法中的SM2非對稱算法和SM3密碼雜湊算法,實現對注冊過程中用戶userid和口令password的安全存儲,服務器端和客戶端交換信息并確認身份,確保認證全過程可以抵抗一些典型的攻擊。REF_Ref72313203\r\h[6]注冊流程首先,用戶在客戶端申請賬戶注冊,基于注冊所需數據信息,申請并獲取服務器公鑰Ksp,利用公鑰將用戶信息進行加密然后傳輸到服務器端請求注冊;服務器端接收到信息后用戶注冊模塊需要完成對客戶端傳遞的數據的解密以及初次驗證,判斷HREF_Ref72771399\h圖51服務器端注冊流程圖STYLEREF1\s5SEQ圖\*ARABIC\s11服務器端注冊流程客戶端用戶注冊模塊需要將用戶的個人信息,包括uid和pw用非對稱加密算法加密之后發送給服務器待處理,等待服務器端的回應,最終安全完成整個注冊模塊。REF_Ref72771464\h圖52客戶端用戶注冊流程圖STYLEREF1\s5SEQ圖\*ARABIC\s12客戶端用戶注冊流程服務器端和客戶端之間進行通信,互相交換認證信息,并根據自己接收到的信息及時做出相關處理,更新安全數據庫中存儲的隨機數N和經過哈希函數處理的值A=H(uid∧R認證流程服務器端的認證模塊需要接受來自客戶端的登錄請求申請,判斷用戶信息是否已經被存儲在安全數據庫,與客戶端實現交互,服務器端和客戶端之間的相互確認對方身份信息,同時將認證結果反饋給客戶端。REF_Ref72771516\h圖53服務器端用戶認證流程圖STYLEREF1\s5SEQ圖\*ARABIC\s13服務器端用戶認證流程客戶端的用戶認證模塊需要在用戶請求登錄時,對用戶提交的身份信息進行加密處理,并與服務器端實現信息的傳輸,完成客戶端和服務器端的雙向身份認證。在客戶端認證過程中調用了隨機數生成函數、對稱加密函數。REF_Ref72771588\h圖54客戶端用戶認證流程圖STYLEREF1\s5SEQ圖\*ARABIC\s14客戶端用戶認證流程文件加密傳輸文件數據傳輸,主要利用國密算法SM2算法、SM3算法和SM4對稱密碼算法,實現數據文件在本地的加解密、對于數據信息的數字簽名以及文件數據傳輸。根據本文第二章對對稱密鑰加密體制和非對稱密鑰加密體制的學習和分析,可以得到:對稱加密算法更加適用于密鑰的管理,處理效率更快,但是安全性相對較差;非對稱加密算法在實現時處理速度相對較慢、密鑰管理困難,但是安全性相對較高。基于對稱加密算法和非對稱加密算法優缺點的分析,本文在實現系統功能過程中,綜合了兩種密碼體制的優點,避開了其各自的不足之處。存儲結構REF_Ref72771647\h表格51MessgaeModel表格STYLEREF1\s5SEQ表格\*ARABIC\s11MessgaeModel訪問類型數據類型存儲名PrivateStringidPrivateStringcontentPrivateDatetimecreatedREF_Ref72771676\h表格52FileModel表格STYLEREF1\s5SEQ表格\*ARABIC\s12FileModel訪問類型數據類型存儲名PrivateStringnamePrivateStringtypePrivateDatepathPrivateStringfingerprintPrivateBooleandirPrivateList<FileModel>fileList加密解密模塊加密解密是文件數據傳輸功能的核心,對需要處理的數據文件進行加密解密處理或數字簽名等運算。即在傳輸數據之前,利用SM4分組密碼算法生成密鑰,對消息明文進行加密處理,利用SM2算法對密鑰加密并進行數字簽名。假設客戶端為A,其加密密鑰為Kea,解密密鑰為Kda;服務器端為B,加密密鑰為Keb,解密密鑰為Kdb。加解密方案實現步驟如下:客戶端上傳需要加密的文件信息,利用SM4算法生成加密密鑰K(本文實現使用的測試密鑰為JeF8U9wHFOMfs2Y1);客戶端從密鑰服務器處獲取服務器端利用SM2算法生成的公開加密密鑰Keb,并利用密鑰Keb以加密K,得到加密后的密鑰CK;客戶端利用自己的解密密鑰Kda和服務器端加密密鑰Keb共同形成數字簽名MA;客戶端利用密鑰K加密文件明文和數字簽名消息,連同加密的密鑰CK一起形成密文C發送到服務器端,其中C=K文件明文,MA服務器端接收到密文C,利用自己的解密密鑰Kdb獲得密鑰K,利用K解密獲得文件明文和數字簽名MA;服務器端使用客戶端公鑰Kea和自己的解密密鑰Kdb對簽名信息進行驗證,如果驗證成功,則對簽名信息進行處理后形成自己的數字簽名發送給客戶端,以確認已經收到信息;REF_Ref72771751\h圖55客戶端加解密流程圖STYLEREF1\s5SEQ圖\*ARABIC\s15客戶端加解密流程REF_Ref72663313\h圖56服務器端加解密流程圖STYLEREF1\s5SEQ圖\*ARABIC\s16服務器端加解密流程系統的實現與測試關鍵代碼利用SM3算法對上傳文件進行hash處理,形成文件指紋(數字摘要)。具體代碼如下:形成文件指紋(數字摘要)SM3=SM3(FileTransformService.File2Bytes(file));publicstaticbyte[]File2Bytes(FileinputFile){Filefile=inputFile;try{FileInputStreamfis=newFileInputStream(file);ByteArrayOutputStreambos=newByteArrayOutputStream(1024);byte[]b=newbyte[1024];intn;while((n=fis.read(b))!=-1){bos.write(b,0,n);}fis.close();byte[]data=bos.toByteArray();bos.close();returndata;}catch(Exceptione){e.printStackTrace();}returnnull;}SM2算法生成公開密鑰密鑰Keb以加密K。具體代碼如下:密鑰Keb加密KcipherMessage=sm2.encrypt(publicKey,plainMessage);returnUtil.getHexString(cipherMessage);上傳數字摘要、文件等信息。具體代碼如下:上傳文件相關信息uploadFile(StringTransformService.Bytes2File(fileCode,encryptPath,file.getName()+".enc"),URL,SM3,KS.encryptKey(random.getBytes(),Util.hexStringToBytes(publicKey)));系統測試在測試方法方面,本文主要采用白盒測試方法,即已知系統設計過程、數據庫及代碼等相關內容,測試檢驗系統功能是否按照預設目標正常運行。具體測試方案如下:啟動客戶端,檢查整體頁面是否完整,是否存在文字錯誤、文字覆蓋等特殊情況,檢查是否存在超出范圍的組件。功能測試:根據系統設計目標,設置測試用例對不同功能模塊進行測試,檢測每個模塊是否達到了預期目標,并對輸入提出要求。性能測試:測試系統在加解密不同大小及不同類型文件時所需要的時間。頁面顯示用戶注冊頁面如REF_Ref72782511\h圖57所示。進入系統,輸入用戶賬戶uid和密碼pw,申請注冊,將用戶信息存入數據庫,其中會對用戶密碼pw進行初次驗證,判斷兩次密碼是否輸入一致。圖STYLEREF1\s5SEQ圖\*ARABIC\s17用戶注冊頁面用戶登錄頁面如REF_Ref72782528\h圖58所示。注冊成功后進行登錄操作,用戶輸入賬戶信息,客戶端傳輸相關信息到服務器端,并與數據庫存儲信息進行對比確認用戶是否已注冊,如果驗證一致則跳轉到等待文件上傳頁面。圖STYLEREF1\s5SEQ圖\*ARABIC\s18用戶登錄頁面等待上傳文件頁面如REF_Ref72782537\h圖59所示。此時服務器端處于監聽狀態,等待來自客戶端的連接請求。點擊“上傳文件”按鈕,則會進入選擇文件頁面,用戶可以選擇需要上傳的文件信息,如REF_Ref72782545\h圖510和REF_Ref72782552\h圖511所示,此時如果需要上傳文件不存在,則會創建文件夾。圖STYLEREF1\s5SEQ圖\*ARABIC\s19等待文件上傳頁面圖STYLEREF1\s5SEQ圖\*ARABIC\s110進入文件夾圖STYLEREF1\s5SEQ圖\*ARABIC\s111選擇文件上傳文件信息成功頁面如REF_Ref72782566\h圖512所示。在此過程中,客戶端進行了一系列的加解密操作,對文件進行數字簽名。服務器端在接收到信息內容時,會對信息進行驗證,比對數字摘要是否一致,判斷信息來源是否可靠、文件信息是否完整。圖STYLEREF1\s5SEQ圖\*ARABIC\s112上傳文件成功頁面功能測試在功能測試中,將會按照系統設計時的預設模塊進行測試,傳輸不同的文件以測試系統功能,查找系統實現的不足。注冊模塊測試用例測試用例數據輸入預期結果Case1輸入正確賬號和密碼,且“確認密碼”欄與“密碼”欄數據一致成功注冊Case2輸入正確賬號和密碼,但是“確認密碼”欄與“密碼”欄數據不一致注冊失敗,提示信息“密碼不一致”Case3輸入賬號和密碼,但是賬號信息存在數據庫中注冊失敗,提示信息“該賬號已注冊”認證模塊測試用例測試用例數據輸入預期結果Case1輸入正確賬號和密碼認證成功Case2輸入正確賬號,但是密碼輸入錯誤認證失敗,提示信息“密碼不正確”Case3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 秋日校園美景校園秋景寫景作文13篇
- 2025年景觀設計師職業技能鑒定試卷(景觀設計案例分析與實踐操作)
- 2025年防水工(初級)防水施工新技術規范易錯題匯編試卷
- 2025年自動抄表系統項目提案報告
- 產品委托生產及質量保證合同協議書
- 2025年無損檢測員(初級)無損檢測案例分析與應用鑒定試卷
- 2025年統計學專業期末考試題庫:綜合案例分析題解析與答案
- 遠程醫療在2025年助力偏遠地區醫療服務體系完善的策略分析報告
- 2025年電商綠色物流行業綠色物流配送車輛充電設施建設與運營優化報告
- 農村資源評價與土地流轉協議
- 2025屆四川省綿陽高三下學期英語模擬檢測試卷(一模)含答案
- 濟南市天橋區2025年小學六年級第二學期小升初數學試卷含解析
- 2025-2030中國煤制油行業市場深度調研及發展趨勢與投資前景預測研究報告
- 四川阿壩州公開招聘社區工作者考試全真模擬測試帶答案2024年
- 遼寧省沈陽市皇姑區2025屆小升初全真模擬數學檢測卷含解析
- 農村供水保障工程項目可行性研究報告(范文參考)
- 居住權登記合同協議
- Unit 6 I love animals Part B 單元教學設計 接力版(2024)三年級英語下冊
- 線上客服培訓
- 物流大數據分析方法-全面剖析
- 深圳市加一智訊科技開發有限公司財務管理制度
評論
0/150
提交評論