安全電子郵件的設(shè)計(jì)與實(shí)現(xiàn).doc_第1頁(yè)
安全電子郵件的設(shè)計(jì)與實(shí)現(xiàn).doc_第2頁(yè)
安全電子郵件的設(shè)計(jì)與實(shí)現(xiàn).doc_第3頁(yè)
安全電子郵件的設(shè)計(jì)與實(shí)現(xiàn).doc_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

安全電子郵件的設(shè)計(jì)與實(shí)現(xiàn)* 本文承蒙四川省科技廳重點(diǎn)基金項(xiàng)目的資助。楊雪濤 李濤 劉曉潔 任靜*楊雪濤(1975-),男,四川南充人,碩士研究生,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)與互聯(lián)網(wǎng);李濤(1965-),男,四川人,教授,博士生導(dǎo)師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)安全,人工智能。(四川大學(xué)(西區(qū)) 計(jì)算機(jī)學(xué)院 四川 成都 610065)摘 要:電子郵件作為廣泛使用的網(wǎng)絡(luò)工具,人們對(duì)它的安全性需求日益突出。本文提出了一套完整的安全電子郵件解決方案,包括對(duì)電子郵件的數(shù)字簽名、數(shù)據(jù)加密以及同CA的協(xié)同工作。從而提供了電子郵件的保密性、認(rèn)證身份、完整性和不可否認(rèn)性。有效的解決了傳統(tǒng)電子郵件存在的若干安全性問(wèn)題,與國(guó)外的安全產(chǎn)品相比具有高加密強(qiáng)度并沒(méi)有安全后門(mén)。達(dá)到了商用水平,適合國(guó)內(nèi)普通用戶乃至重要機(jī)密部門(mén)使用。關(guān)鍵字:電子郵件 數(shù)據(jù)加密 數(shù)字簽名 CA PKI中圖分類號(hào):TP393.098文獻(xiàn)標(biāo)識(shí)碼:AThe design and implement of secure emailYang Xue-tao, Li Tao, Liu Xiao-jie,Ren jing(Dept. of Computer, Sichuan Univ., Chengdu 610065,China)Abstract: As Email is a widely used internet tool, its security request has been increasing urgently. The thesis presents a comprehensive solution for security Email, including digital signature and encryption and interface for CA. This solution provides Email confidentiality, authentication, message integrity assurance, and nonrepudiation of origin. It effectively solves several secure problems in traditional Email System and hasnt network secure holes in contrast to products abroad and achieves high cryptographic level. It reaches the level of commerce and is suitable not only for general users but also for confidential departments.Key words: Email; Digital Signature; Encryption; CA; PKI5 / 51 引言電子郵件以其方便、快捷、便宜、容易存儲(chǔ)和管理等特點(diǎn),隨著計(jì)算機(jī)網(wǎng)絡(luò)的日益普及,在人們的工作和生活中得到了越來(lái)越廣泛的應(yīng)用。然而,傳統(tǒng)的電子郵件存在著諸多不安全因素:如郵件可能在不為通信雙方所知的情況下被讀取、篡改或截獲;發(fā)信者的身份可能被偽造等。所有這些,使得重要的信息不宜或不敢使用電子郵件來(lái)傳遞。隨著我國(guó)電子信息化水平的不斷提高,電子商務(wù)和電子政務(wù)的發(fā)展,對(duì)電子郵件的安全性也提出了更高的要求。本文實(shí)現(xiàn)了一個(gè)提供數(shù)據(jù)加密和數(shù)字簽名的安全電子郵件系統(tǒng)雞毛信。該系統(tǒng)提供了電子郵件的保密性、完整性、和不可否認(rèn)性。同時(shí)還實(shí)現(xiàn)了對(duì)CA(Certification Authority)的支持,從而使雞毛信能夠基于PKI(Public Key Infrastructure)實(shí)現(xiàn)更廣泛的應(yīng)用。2 安全電子郵件系統(tǒng)雞毛信的設(shè)計(jì)與實(shí)現(xiàn)在實(shí)現(xiàn)電子郵件安全發(fā)送與接收之前,雞毛信系統(tǒng)首先實(shí)現(xiàn)了基本的電子郵件系統(tǒng)協(xié)議,如SMTP、POP3、MIME等。在實(shí)現(xiàn)了基本的電子郵件協(xié)議基礎(chǔ)上,進(jìn)而實(shí)現(xiàn)安全電子郵件系統(tǒng)。目前比較著名的安全電子郵件協(xié)議有PEM、PGP、S/MIME、MOSS等。本系統(tǒng)采用了MOSS協(xié)議。MOSS提供了三種功能:1) 加密:提供和保障郵件的保密性;2) 數(shù)字簽名:防止郵件偽冒、發(fā)送方抵賴和郵件被篡改;3) 數(shù)字簽名和數(shù)據(jù)加密服務(wù):對(duì)只簽名或者只加密的數(shù)據(jù)可以進(jìn)行嵌套。這樣加密的數(shù)據(jù)可以被簽名,對(duì)數(shù)字簽名的數(shù)據(jù)可以加密。本系統(tǒng)同時(shí)實(shí)現(xiàn)了對(duì)郵件的數(shù)字簽名和加密。系統(tǒng)對(duì)寫(xiě)好的郵件首先進(jìn)行數(shù)字簽名,然后對(duì)簽名的郵件進(jìn)行加密再發(fā)送。接收到加密郵件后系統(tǒng)先解密郵件,再驗(yàn)證它的數(shù)字簽名。從而保證了電子郵件的保密性、完整性和不可否認(rèn)性。2.1 數(shù)據(jù)加密和數(shù)字簽名目前的數(shù)據(jù)加密技術(shù)在算法上主要分為對(duì)稱算法和公開(kāi)密鑰算法。所謂對(duì)稱算法即是采用加密和解密用同一把秘密鑰匙(簡(jiǎn)稱“密鑰”)的方式,應(yīng)用較廣的對(duì)稱算法有:DES、三重DES、RC2、RC4、RC5和IDEA算法。而公開(kāi)密鑰算法是指用于加密的密鑰不同于用于解密的密鑰,并且從其中一個(gè)很難推斷出另一個(gè)。其中一個(gè)密鑰公之于眾,稱為“公開(kāi)密鑰”(public-key),另一個(gè)密鑰由用戶自己保存,稱為“秘密密鑰”(private-key),這兩個(gè)密鑰之間存在著相互依存關(guān)系:用其中任一個(gè)密鑰加密的信息只能用另一個(gè)密鑰進(jìn)行解密。公開(kāi)密鑰算法最為典型的代表是RSA算法。這兩種算法各有其優(yōu)缺點(diǎn)。對(duì)稱算法簡(jiǎn)便高效、密鑰簡(jiǎn)短、破譯極其困難,但密鑰必須秘密分配,大量的密鑰管理困難。公開(kāi)密鑰算法雖然密鑰分配簡(jiǎn)單,密鑰保存量少,但加解密速度較慢,而且對(duì)選擇明文攻擊具有脆弱性。所以在實(shí)際應(yīng)用中可將兩種算法結(jié)合起來(lái)使用,以充分發(fā)揮兩種算法的優(yōu)勢(shì)。數(shù)字簽名是指用戶用密鑰對(duì)報(bào)文的數(shù)字指紋(由單向散列函數(shù)產(chǎn)生)進(jìn)行加密后得到的數(shù)據(jù)。在RSA公鑰體系中加密的密鑰就是用戶自己的私鑰。數(shù)字簽名從技術(shù)上標(biāo)識(shí)了發(fā)信者對(duì)該報(bào)文的數(shù)字指紋的責(zé)任,他一旦完成了簽名便保證了其無(wú)法抵賴曾發(fā)過(guò)該信息(即不可抵賴性);信息接收者通過(guò)驗(yàn)證數(shù)字簽名來(lái)確認(rèn)收到信息的完整性、正確性。2.2雞毛信系統(tǒng)郵件數(shù)字簽名的實(shí)現(xiàn)將數(shù)字簽名技術(shù)用于電子郵件,從而電子郵件內(nèi)容的完整性、正確性和發(fā)送方的不可抵賴性都得到了保障。對(duì)于一封寫(xiě)好的電子郵件,在發(fā)送之前系統(tǒng)先嚴(yán)格按照MIME協(xié)議來(lái)格式化郵件。然后對(duì)格式化后的郵件實(shí)施數(shù)字簽名。具體算法如下:/-類型定義-typedef FILE* MailType; /普通郵件文件typedef string KeyType; /密鑰typedef string DigestType;/數(shù)字摘要typedef string SignType; /數(shù)字簽名/-基本操作函數(shù)原型說(shuō)明-DigestType MD5(MailType mail); /返回用MD5算法計(jì)算出的mail的數(shù)字摘要string RSAEncrypt(string str, KeyType key); /用key對(duì)str進(jìn)行RSA加密,返回加密結(jié)果string RSADecrypt(string str, KeyType key); /用key對(duì)str進(jìn)行RSA解密,返回解密結(jié)果CopyMail(MailType desmail,MailType sourcemail); /復(fù)制郵件文件AppendSign(MailType mail,SignType sig); /將sig 合成到mail 后得到簽名郵件mailDetachSign(MailType signedmail, MailType mail, SignType &sig); /將簽名郵件signedmail分解為執(zhí)行簽名的原郵件mail和mail的數(shù)字簽名sig/-執(zhí)行數(shù)字簽名-void SignMail(MailType mail,KeyType prikey,MailType signedmail) /prikey為發(fā)信人私鑰DigestType dig;SignType sig;dig=MD5(mail); /得到數(shù)字摘要sig=RSAEncrypt(dig,prikey);/得到數(shù)字簽名CopyMail(signedmail,mail);AppendSign(signedmail,sig);/得到簽名郵件由算法可知,本系統(tǒng)是用MD5算法對(duì)已經(jīng)格式化好的郵件mail進(jìn)行計(jì)算從而得到該郵件的數(shù)字摘要dig,然后用發(fā)送者的私鑰prikey對(duì)數(shù)字摘要用RSA算法加密得到該郵件的數(shù)字簽名sig,最后將數(shù)字簽名和格式化的郵件按MOSS協(xié)議合成簽名郵件signedmail。當(dāng)郵件接收者得到簽名郵件signedmail后,也按照MOSS協(xié)議將郵件拆分為數(shù)字簽名sig和執(zhí)行數(shù)字簽名的原郵件mail兩個(gè)部分。然后用發(fā)送人的公鑰pubkey對(duì)數(shù)字簽名進(jìn)行解密得到數(shù)字摘要dig1,再由得到的郵件內(nèi)容用MD5算法重新計(jì)算數(shù)字摘要dig2,將兩個(gè)數(shù)字摘要進(jìn)行比較從而得出結(jié)論。算法如下:/-驗(yàn)證數(shù)字簽名-VerifySign(MailType signedmail, KeyTypepubkey) /pubkey為發(fā)信人的公鑰MailType mail;SignType sig;DigestType dig1,dig2;DetachSign(signedmail,mail,sig);/分解dig1 = RSADecrypt(sig,pubkey);dig2 = MD5(mail);if(strcmp(dig1,dig2)=0) /比較得出結(jié)論 return OK;/數(shù)字簽名驗(yàn)證正確else return ERROR;/數(shù)字簽名驗(yàn)證錯(cuò)誤若兩個(gè)數(shù)字摘要比較結(jié)果完全相同,則系統(tǒng)將得出結(jié)論并提示用戶收到某人發(fā)來(lái)的電子郵件,并且郵件內(nèi)容是值得信任的;否則提示用戶該郵件不值得信任。2.3 雞毛信系統(tǒng)郵件加密的實(shí)現(xiàn)只實(shí)現(xiàn)了數(shù)字簽名的郵件在傳送中仍然是明文傳送,郵件有可能在傳送過(guò)程中被截獲而泄密。因此還必須對(duì)其加密,使其在傳送過(guò)程中傳送的是密文。這樣即使郵件中途被截獲,截獲者得到的也只是密文,從而保證了郵件內(nèi)容的安全性。雞毛信系統(tǒng)總是先對(duì)郵件進(jìn)行簽名,然后再對(duì)簽了名的郵件進(jìn)行加密再發(fā)送。無(wú)論采用哪種加密算法,密鑰都是至關(guān)重要的。密鑰的長(zhǎng)度是密碼系統(tǒng)安全性的一個(gè)重要參數(shù)。也就是說(shuō),采用的密鑰的長(zhǎng)度越長(zhǎng),加密的信息就越難被破解。按照安全要求,對(duì)稱加密算法密鑰的長(zhǎng)度要求至少應(yīng)該是128位,公鑰算法的密鑰長(zhǎng)度要求至少是1024位。目前發(fā)達(dá)國(guó)家出口到我國(guó)的安全產(chǎn)品密鑰的長(zhǎng)度只有60位和512位,遠(yuǎn)低于安全要求。雞毛信系統(tǒng)使用的對(duì)稱密鑰長(zhǎng)度為128位;RSA密鑰對(duì)的長(zhǎng)度從512至2048位,由用戶選擇,足夠長(zhǎng)度的密鑰使郵件的加密強(qiáng)度達(dá)到了軍用絕密級(jí)。雞毛信系統(tǒng)對(duì)郵件的加密采用了IDEA對(duì)稱算法和RSA公開(kāi)密鑰算法的綜合,充分利用了兩種加密算法的優(yōu)點(diǎn)。每當(dāng)系統(tǒng)要對(duì)一封郵件加密時(shí),先用一個(gè)隨機(jī)數(shù)rad臨時(shí)生成一128位的會(huì)話密鑰sessionkey(每次加密不同),用這個(gè)會(huì)話密鑰對(duì)簽名的明文郵件用IDEA算法加密,然后用收件人的公鑰pubkey采用RSA算法對(duì)這個(gè)會(huì)話密鑰加密,再將密文郵件encryptedmail和加密的會(huì)話密鑰encryptedkey按MOSS協(xié)議合成最后要發(fā)送的安全電子郵件securemail。算法如下:/-類型定義-typedef string RadomType;/隨機(jī)數(shù)類型/-基本操作函數(shù)原型說(shuō)明-RadomType GetRadom();/得到一個(gè)隨機(jī)數(shù)KeyType MakeRadomKey(RadomType rad); /由隨機(jī)數(shù)得到會(huì)話密鑰IDEAEncrypt(MailType mail,KeyType key); /用key對(duì)mail進(jìn)行IDEA加密IDEADecrypt(MailType mail,KeyType key); /用key對(duì)mail進(jìn)行IDEA解密AppendKey(MailType mail,KeyType key); /將key合成到mail后邊得到安全電子郵件DetachKey(MailType securemail,MailType mail,KeyType &key);/分解郵件和密鑰/-加密電子郵件(已執(zhí)行簽名)-EncryptMail(MailType signedmail ,MailType securemail,KeyType pubkey) /pubkey為收件人的公鑰RadomType rad;KeyType sessionkey,encryptedkey;rad = GetRadom();/得到隨機(jī)數(shù)sessionkey = MakeRadomKey(rad); /獲得會(huì)話密鑰CopyMail( securemail , signedmail);IDEAEncrypt(securemail,sessionkey);/加密郵件encryptedkey=RSAEncrypt(sessionkey,pubkey);/用收件人公鑰加密會(huì)話密鑰AppendKey( securemail , encryptedkey); /得到安全電子郵件雞毛信將兩種加密算法結(jié)合起來(lái)使用,綜合發(fā)揮了兩種密碼體制的優(yōu)勢(shì),既利用了對(duì)稱算法高速簡(jiǎn)便性,又利用了公開(kāi)密鑰算法的密鑰管理的方便和安全性。雞毛信系統(tǒng)收到安全電子郵件后,便會(huì)對(duì)其解密。先將郵件按照MOSS協(xié)議拆分為兩個(gè)部分,第一部分為經(jīng)RSA算法加密后的會(huì)話密鑰encryptedkey;另一部分是經(jīng)IDEA加密后的簽名郵件encryptedmail。然后用收件人的私鑰prikey來(lái)解密會(huì)話密鑰。最后用會(huì)話密鑰sessionkey來(lái)解密加密的郵件得到明文的簽名郵件signedmail。當(dāng)然還要驗(yàn)證郵件的數(shù)字簽名。算法如下:/-解密安全電子郵件-DecryptMail(MailType securemail,KeyType prikey,MailType signedmail) /prikey為收件人私鑰KeyType encryptedkey,sessionkey;DetachKey(securemail,signedmail, encryptedkey);/分解郵件sessionkey=RSADecrypt(encryptedkey, prikey);/解密得到會(huì)話密鑰IDEADecrypt(signedmail,sessionkey);/解密加密郵件雞毛信還實(shí)現(xiàn)了多人加密,即用多個(gè)收件人的公鑰用同樣的算法對(duì)郵件進(jìn)行嵌套加密。這樣在解密時(shí)就需要多個(gè)對(duì)應(yīng)的私鑰依次解密才行,缺一不可。這對(duì)于一些對(duì)保密要求很高的應(yīng)用場(chǎng)合有著很好的應(yīng)用價(jià)值。如在工程的招投標(biāo)的計(jì)算機(jī)應(yīng)用中,出于公正性等因素的考慮,諸如投標(biāo)書(shū)等重要的文件資料不僅需要加密,還要求相關(guān)的各方人士同時(shí)在場(chǎng)時(shí)才能被解密打開(kāi),這時(shí)就需要用到多人加密技術(shù)。3雞毛信系統(tǒng)對(duì)CA的支持從前面的郵件加解密和數(shù)字簽名以及驗(yàn)證簽名的過(guò)程可以看到這些過(guò)程都需要發(fā)送者或接收者擁有對(duì)方的公鑰。這里就存在著如何獲得其他人的公鑰以及如何信任其他人的公鑰的問(wèn)題。最初的公鑰分配(即一方獲得另一方的公鑰)是基于私人之間的信任關(guān)系,然而隨著公鑰密碼技術(shù)在網(wǎng)絡(luò)安全中的應(yīng)用規(guī)模不斷擴(kuò)大,這種分配方式已不能適應(yīng)了,這時(shí)就需要PKI(Public Key Infrastructure)來(lái)解決大量的密鑰分配和管理。PKI即“公鑰基礎(chǔ)設(shè)施”,是一種完全符合X509標(biāo)準(zhǔn)的密鑰管理平臺(tái),它能夠?yàn)樗芯W(wǎng)絡(luò)應(yīng)用透明地提供采用加密和數(shù)字簽名等密碼服務(wù)所必需的密鑰和證書(shū)管理。PKI體系的核心部分是認(rèn)證中心(CA ),它是受信任的第三方機(jī)構(gòu),負(fù)責(zé)數(shù)字證書(shū)的整個(gè)生命周期的管理,即產(chǎn)生證書(shū)、發(fā)放證書(shū)和撤消證書(shū)(包括發(fā)布撤消信息CRL)。數(shù)字證書(shū)是由認(rèn)證中心發(fā)放并經(jīng)認(rèn)證中心數(shù)字簽名的,包含公開(kāi)密鑰擁有者以及公開(kāi)密鑰相關(guān)信息的一種電子文件,可以用來(lái)證明數(shù)字證書(shū)持有者的真實(shí)身份。其目的是為公鑰分配提供可擴(kuò)展性和可管理性。當(dāng)前公認(rèn)和廣泛采用的數(shù)字證書(shū)是X.509證書(shū)。雞毛信完全實(shí)現(xiàn)了與CA的協(xié)同工作,用戶使用雞毛信發(fā)送和接收安全電子郵件,需要獲得自己的密鑰對(duì)和他人的公鑰,這些都可以是CA通過(guò)數(shù)字證書(shū)頒發(fā)的。雞毛信支持對(duì)標(biāo)準(zhǔn)的個(gè)人證書(shū)(PKCS12證書(shū))以及X.509證書(shū)的導(dǎo)入。在導(dǎo)入證書(shū)之前,需要導(dǎo)入CA自己的證書(shū),其中包含了CA自己的一個(gè)公鑰,用以驗(yàn)證該CA所簽發(fā)的數(shù)字證書(shū)的數(shù)字簽名。導(dǎo)入證書(shū)時(shí),雞毛信先用已導(dǎo)入的CA的公鑰去驗(yàn)證該證書(shū)的數(shù)字簽名,如果通過(guò)驗(yàn)證,則證明該證書(shū)是值得信任的。繼而將證書(shū)所包含的密鑰及持有者的信息導(dǎo)入系統(tǒng)。若導(dǎo)入

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論