客戶和服務(wù)器端的安全通信(共14頁(yè))_第1頁(yè)
客戶和服務(wù)器端的安全通信(共14頁(yè))_第2頁(yè)
客戶和服務(wù)器端的安全通信(共14頁(yè))_第3頁(yè)
客戶和服務(wù)器端的安全通信(共14頁(yè))_第4頁(yè)
客戶和服務(wù)器端的安全通信(共14頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上第三章 密碼技術(shù)基礎(chǔ)分組作業(yè)- 客戶和服務(wù)器端的安全通信功能第七組趙鵬 p-zhao07田敏求tianminqiu卓雪君 zhuoxj07張秋艷 zhang-qy07宋曉明 songxm07 1目錄1. 作業(yè)要求 . 32. 作業(yè)分工 . 33. 程序設(shè)計(jì)原理 . 33.1 通信協(xié)議設(shè)計(jì) . 33.2 技術(shù)原理 . 44.技術(shù)細(xì)節(jié) . 64.1 申請(qǐng)證書 . 6

2、4.2 雙向身份認(rèn)證 . 84.3協(xié)商會(huì)話密鑰 . 94.4 生成摘要 . 94.5 加解密文件 . 94.6完整性驗(yàn)證 . 105實(shí)驗(yàn)演示 . 10 參考文獻(xiàn) . 16  21. 作業(yè)要求實(shí)現(xiàn)客戶和服務(wù)器端的安全通信功能,其中包括:(1) 基于公鑰證書,實(shí)現(xiàn)雙向的身份認(rèn)證(2) 會(huì)話密鑰協(xié)商(算法自選)(3) 數(shù)據(jù)傳輸:加密、完整性保護(hù)(算法自選)(4) 簡(jiǎn)明的設(shè)計(jì)文檔圖 1.1 協(xié)議流程圖2. 作業(yè)分工趙鵬: 認(rèn)

3、證, 會(huì)話密鑰協(xié)商, 代碼整合田敏求: 數(shù)據(jù)加解密卓雪君 張秋艷: 通信部分, 摘要生成, 完整性驗(yàn)證, 界面,代碼整合 宋曉明: 文檔3. 程序設(shè)計(jì)原理3.1 通信協(xié)議設(shè)計(jì)整個(gè)通信過程包括了:證書申請(qǐng)、雙向身份驗(yàn)證、會(huì)話密鑰協(xié)商、傳送/接收加密文件、文件完整性校驗(yàn)五大部分。具體協(xié)議設(shè)計(jì)如圖3.1所示。  3圖3.1 C/S通信協(xié)議圖圖中一些符號(hào)注釋如下:KS_PUBLIC:服務(wù)器公鑰KS_PRIVATE:服務(wù)器私鑰KC_PUBLIC:客戶端公鑰KC_PRIVATE:客戶端私鑰n1, n2:隨機(jī)數(shù),用來防止重放攻擊K:會(huì)話密鑰Seed:生成會(huì)話密鑰的種子M:發(fā)送的明文文件m:明文文件

4、對(duì)應(yīng)的摘要其中證書采用離線拷貝的方式,保證通信雙方在建立連接前已經(jīng)擁有對(duì)方的證書。在雙向身份驗(yàn)證的過程中采用生成隨機(jī)數(shù)的方式防止了重放攻擊。協(xié)商會(huì)話密鑰的過程中傳送的是經(jīng)過加密的生成會(huì)話密鑰的種子。傳送文件時(shí),在文件末尾附上了用MD5生成的文件摘要,方便接收方進(jìn)行文件的完整性驗(yàn)證。3.2 技術(shù)原理(1) Openssl簡(jiǎn)介SSL是Secure Socket Layer(安全套接層協(xié)議)的縮寫,目標(biāo)是保證兩個(gè)應(yīng)用間通信的保密性和可靠性,可在服務(wù)器端和用戶端同時(shí)實(shí)現(xiàn)支持。改協(xié)議能使用 戶/服務(wù)器應(yīng)用之間的通信不被攻擊者竊聽,并且始終對(duì)服務(wù)器進(jìn)行認(rèn)證,還可選擇對(duì)用戶進(jìn)行認(rèn)證。Openssl

5、是一個(gè)功能豐富且自包含的開源安全工具箱。它提供的主要功能有:SSL協(xié)議實(shí)現(xiàn)(包括SSLv2、SSLv3和TLSv1)、大量軟算法(對(duì)稱/非對(duì)稱/摘要)、大數(shù)運(yùn)算、非對(duì)稱算法密鑰生成、ASN.1編解碼庫(kù)、證書請(qǐng)求(PKCS10)編解碼、數(shù)字證書編解碼、CRL編解碼、OCSP協(xié)議、數(shù)字證書驗(yàn)證、PKCS7標(biāo)準(zhǔn)實(shí)現(xiàn)和PKCS12個(gè)人數(shù)字證書格式實(shí)現(xiàn)等功能。Openssl采用C語(yǔ)言作為開發(fā)語(yǔ)言,這使得它具有優(yōu)秀的跨平臺(tái)性能。Openssl支持Linux、UNIX、windows、Mac等平臺(tái)。openssl目前最新的版本是0.9.8e. OpenSSL整個(gè)軟件包大概可以分成三個(gè)主要的功能部分:密碼算法

6、庫(kù)、SSL協(xié)議庫(kù)以及應(yīng)用程序。OpenSSL的目錄結(jié)構(gòu)自然也是圍繞這三個(gè)功能部分進(jìn)行規(guī)劃的。(2) CryptoAPI簡(jiǎn)介微軟的CryptoAPI是PKI推薦使用的加密 API。其功能是為應(yīng)用程序開發(fā)者提供在Win32環(huán)境下使用加密、驗(yàn)證等安全服務(wù)時(shí)的標(biāo)準(zhǔn)加密接口。CryptoAPI處于應(yīng)用程序和CSP(cryptographic service provider)之間,如圖3.2所示。圖3.2 Microsoft CryptoAPICryptoAPI的編程模型同Windows系統(tǒng)的圖形設(shè)備接口 GDI比較類似,其中加密服務(wù)提供者CSP等同于圖形設(shè)備驅(qū)動(dòng)程序 ,加密硬件(可選)等同于圖形硬件,

7、其上層的應(yīng)用程序也類似,都不需要同設(shè)備驅(qū)動(dòng)程序和硬件直接打交道。 CryptoAPI共有五部分組成:簡(jiǎn)單消息函數(shù)(Simplified Message Functions)、低層消息函數(shù)(Low-level Message Functions)、基本加密函數(shù)(Base Cryptographic Functions)、證書編解碼函數(shù)(Certificate Encode/Decode Functions)和證書庫(kù)管理函數(shù)(Certificate Store Functions)。其中前三者可用于對(duì)敏感信息進(jìn)行加密或簽名處理,可保證網(wǎng)絡(luò)傳輸信心的私有性;后兩者通過對(duì)證書的使用,可保證網(wǎng)絡(luò)信息交流

8、中的認(rèn)證性。 5CryptoAPI可以從保密和確證這兩方面來保證安全通信。CryptoAPI系統(tǒng)有四類函數(shù):基本Cryptographic函數(shù)、簡(jiǎn)化Cryptographic函數(shù)、存儲(chǔ)函數(shù)和驗(yàn)證加密/解密函數(shù),前兩類函數(shù)提供保密性,后兩類函數(shù)提供確證。CryptoAPI允許調(diào)用這些函數(shù)來加密數(shù)據(jù)、交換公鑰、散列一個(gè)消息來建立摘要以及生成數(shù)字簽名。CryptoAPI使用兩種密鑰:會(huì)話密鑰與公鑰/私鑰對(duì)。會(huì)話密鑰采用單鑰密碼體制,效率高,但必須保證密鑰的安全傳遞。公鑰/私鑰算法較慢,主要用于身份的認(rèn)證以及用于加密少量數(shù)據(jù),例如用于加密會(huì)話密鑰。Microsoft CryptoAPI體系結(jié)

9、構(gòu)如圖3.3所示:圖 3.3 Microsoft CryptoAPI體系結(jié)構(gòu)4.技術(shù)細(xì)節(jié)4.1 申請(qǐng)證書主要通過openssl的命令來手工生成證書,主要過程為:(1) 生成RSA密鑰對(duì):Openssl genrsa -out prikey.pem 1024 6(2) 利用密鑰對(duì)生成證書請(qǐng)求:Openssl req new key prikey.pem out req.pem(3) 利用openssl自帶的ca來給證書請(qǐng)求簽名Openssl ca in req.pem out cert.pem notext參數(shù)notext的作用是生成的證書中不帶明文的生成過程。  利用同樣的

10、步驟生成client.pem,server.pem和各自相應(yīng)的私鑰文件prikeyclient.pem, prikeyserver.pem4.2 雙向身份認(rèn)證假設(shè)通信雙方為A,B,在通信之前都拿到了對(duì)方的證書。那么驗(yàn)證過程為:(1) 生成一個(gè)隨機(jī)的字符串m(2) sha1(m), 利用hash算法對(duì)m做sha1計(jì)算(3) 利用A自己的私鑰對(duì)sha1(m)加密,完成簽名Asha1(m)(4) 利用B的公鑰來對(duì)m進(jìn)行加密,B<<m>>,然后和第3步完成的內(nèi)容一起發(fā)送給B(5) B利用自己的私鑰對(duì)B<<m>>進(jìn)行解密,同時(shí)利用A的公鑰對(duì)Asha1(m)

11、解密,然后比較內(nèi)容是否相同。(6) 在B端重復(fù)(1)-(5)的步驟。 4.3協(xié)商會(huì)話密鑰由A端生成一個(gè)隨機(jī)的字符串,用這個(gè)字符串作為對(duì)稱密鑰生成的種子。然后將這個(gè)字符串用B的公鑰進(jìn)行加密然后傳輸給B。B接收到后利用自己的私鑰進(jìn)行解密,得到種子字符串。雙方都利用這個(gè)種子字符串來生成對(duì)稱加密密鑰。4.4 生成摘要首先獲得指定CSP密鑰容器句柄,然后創(chuàng)建一個(gè)空哈希對(duì)象,并將指定的文件加到指定的哈希對(duì)象,進(jìn)行哈希。這樣就實(shí)現(xiàn)了對(duì)一個(gè)不定長(zhǎng)度的文件生成摘要的過程,摘要長(zhǎng)度為128Bit。4.5 加解密文件(1) 文件加密步驟 打開源文件"File.txt" 取得密鑰容器(C

12、SP)句柄 根據(jù)用戶輸入的密碼創(chuàng)建一個(gè)會(huì)話密鑰,即應(yīng)用對(duì)稱密鑰對(duì)原文件加密。i.ii.iii.iv. 創(chuàng)建一個(gè)Hash對(duì)象 用用戶輸入的密碼產(chǎn)生一個(gè)散列 通過散列生成一個(gè)會(huì)話密鑰 銷毀Hash對(duì)象 非對(duì)稱密鑰由于效率非常低,所以一般不用于對(duì)數(shù)據(jù)直接加密,而是對(duì)會(huì)話密鑰進(jìn)行加密,然后把它傳送給對(duì)方。對(duì)方通過非對(duì)稱密鑰解密獲得會(huì)話密鑰(即對(duì)稱密鑰),然后再對(duì)數(shù)據(jù)文件進(jìn)行解密。 加密數(shù)據(jù)文件i. pbBuffer循環(huán)讀入待加密文件的固定長(zhǎng)度的內(nèi)存塊;如果一次讀入整個(gè)文件,那樣會(huì)很浪費(fèi)內(nèi)存空間,而且影響擴(kuò)展性,即存在緩沖區(qū)溢出的可能。 清理回收工作i. 釋放內(nèi)存緩沖區(qū)空間、密鑰句柄、CSP句柄等。(2

13、) 文件解密步驟打開加密文件"EnctyptedFile.txt"取得密鑰容器(CSP)句柄根據(jù)用戶輸入的密碼創(chuàng)建一個(gè)會(huì)話密鑰,即應(yīng)用對(duì)稱密鑰對(duì)原文件解密。 實(shí)際應(yīng)用中,這個(gè)用戶輸入的“密碼”是一個(gè)產(chǎn)生密鑰的種子,一旦產(chǎn)生完會(huì)話密鑰,接收方可以使用傳過來的密鑰直接對(duì)加密文件進(jìn)行解密,而不用再重復(fù)生成密鑰的過程。 9 解密數(shù)據(jù)文件 清理回收工作 釋放內(nèi)存緩沖區(qū)空間、密鑰句柄、CSP句柄等。4.6完整性驗(yàn)證服務(wù)器端接收到加密文件后,用協(xié)商出來的會(huì)話密鑰解密,得到明文文件和相應(yīng)的摘要字段,對(duì)明文使用MD5生成摘要,對(duì)比摘要信息檢查文件的完整性。5實(shí)驗(yàn)

14、演示(1) 客戶端界面如圖5.1所示:圖5.1 客戶端運(yùn)行界面 10(2) 服務(wù)器端界面如圖5.2所示:圖5.2 服務(wù)器端運(yùn)行界面(3) 首先雙方生成各自的證書,并以離線的方式互相拷貝。服務(wù)器端開啟服務(wù),監(jiān)聽7070號(hào)端口(可以重新配置),客戶端連接服務(wù)器端,通信雙方進(jìn)行相互的身份認(rèn)證,如圖5.3所示:  11圖5.3 雙向身份認(rèn)證示意圖(4) 客戶端發(fā)起協(xié)商會(huì)話密鑰的請(qǐng)求,雙方共享一個(gè)會(huì)話密鑰的種子,如圖5.4所示:圖5.4協(xié)商會(huì)話密鑰示意圖(5) 客戶端選擇需要傳送的文件,并使用MD5算法對(duì)文件生成摘要附在文件末尾,然后使用步驟5中協(xié)商的會(huì)話密鑰加密文件,傳送至服務(wù)器端,如圖5.5所示: 圖5.5客戶端生成并發(fā)送加密文件示意圖(6) 服務(wù)器端接收到加密文件,使用協(xié)商出來的會(huì)話密鑰對(duì)文件進(jìn)行解密,得到明文文件和摘要信息,如圖5.6所示: 圖5.6服務(wù)器端接受并解密文件示意圖(7) 服務(wù)器端對(duì)解密得到的明文文件使用MD5算法生成摘要,并與

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論