專利名稱:具有收發(fā)雙向不可否認(rèn)機(jī)制的安全電子郵件系統(tǒng)實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種具有收發(fā)雙向不可否認(rèn)機(jī)制的安全電子郵件系統(tǒng)實(shí)現(xiàn)方法,屬于計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)領(lǐng)域。
背景技術(shù):
目前互聯(lián)網(wǎng)上普遍使用的電子郵件應(yīng)用基礎(chǔ)方法是簡(jiǎn)單郵件傳輸協(xié)議(Simple Mail Transfer Protocol,以下簡(jiǎn)稱SMTP)和郵局協(xié)議第三版(Post Office Protocol Version 3,以下簡(jiǎn)稱POP3)(如圖1所示)。SMTP的最大特點(diǎn)就是簡(jiǎn)單,它只定義郵件如何在郵件傳輸系統(tǒng)中通過(guò)發(fā)方和收方之間的TCP連接傳輸,而不規(guī)定其他任何操作。SMTP只解釋郵件的格式和說(shuō)明怎樣處理投遞的郵件。與大多數(shù)TCP/IP協(xié)議一樣,SMTP也是一種純粹基于客戶/服務(wù)器模型的應(yīng)用層協(xié)議。SMTP協(xié)議并不提供絕對(duì)的端到端的可靠性保障。
POP3是用來(lái)支持普通聯(lián)網(wǎng)機(jī)器從郵件服務(wù)器接收郵件的服務(wù)的協(xié)議。典型的POP3協(xié)議會(huì)話過(guò)程可分為三個(gè)階段鑒別階段、處理階段和更新階段。POP3在客戶和服務(wù)器建立連接后,就進(jìn)入鑒別階段。在鑒別階段中,客戶向服務(wù)器標(biāo)識(shí)它自己。如果鑒別成功,服務(wù)器就打開客戶的郵箱,會(huì)話就進(jìn)入處理階段。收信處理結(jié)束后就會(huì)進(jìn)入更新階段,在這一階段連接就終止了。POP3協(xié)議只是使用用戶名和密碼進(jìn)行簡(jiǎn)單身份鑒別。
在傳統(tǒng)的基于SMTP和POP3協(xié)議的電子郵件應(yīng)用中,只是解決了如何順利發(fā)送和接收郵件的問題,在郵件的安全性方面并沒有做足夠的設(shè)計(jì)。比如,一封郵件的郵件頭信息都是可以被修改的,這樣發(fā)信人可以否認(rèn)他發(fā)過(guò)這封郵件,因?yàn)槠渌艘部梢悦坝盟拿x發(fā)郵件。收信人也可以否認(rèn)他受到了某一封郵件,因?yàn)闊o(wú)論他真的接收郵件與否,POP3協(xié)議本身無(wú)法判斷。由于傳統(tǒng)的電子郵件系統(tǒng)都是把郵件以明文的形式直接在網(wǎng)絡(luò)上傳輸,郵件的保密性也存在很大的隱患。另外,電子郵件的內(nèi)容也可能在傳輸?shù)倪^(guò)程中被篡改。
針對(duì)電子郵件安全上的隱患,目前國(guó)內(nèi)外網(wǎng)絡(luò)安全業(yè)界主要有以下幾種技術(shù)PGP(Pretty Good Privacy)和S/MIME(Secure/MultipurposeInternet Mail Extensions)。
PGP是針對(duì)電子郵件在Internet上通信的安全問題而設(shè)計(jì)的一種對(duì)郵件明文進(jìn)行混合加密的系統(tǒng)。其特點(diǎn)是通過(guò)單向散列算法對(duì)郵件內(nèi)容進(jìn)行簽名,保證信件內(nèi)容無(wú)法修改,使用公鑰和私鑰技術(shù)保證郵件內(nèi)容保密且不可否認(rèn)。發(fā)信人與收信人的公鑰發(fā)布在公開的地方。公鑰本身的權(quán)威性由第三方,特別是收信人所熟悉或信任的第三方進(jìn)行簽名認(rèn)證,但它沒有統(tǒng)一的集中的機(jī)構(gòu)進(jìn)行公鑰/私鑰的簽發(fā)。即在PGP系統(tǒng)中,更多的信任是來(lái)自于通信的雙方。
S/MIME是建立在公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)基礎(chǔ)上的一套安全郵件標(biāo)準(zhǔn)。S/MIME是從PEM(Privacy Enhanced Mail)和MIME(Internet郵件的附件標(biāo)準(zhǔn))發(fā)展而來(lái)的。同PGP一樣,S/MIME也利用單向散列算法和公鑰與私鑰的加密體系。但它與PGP主要有兩點(diǎn)不同它的認(rèn)證機(jī)制依賴于層次結(jié)構(gòu)的證書認(rèn)證機(jī)構(gòu),所有下一級(jí)的組織和個(gè)人的證書由上一級(jí)的組織負(fù)責(zé)認(rèn)證,而最上一級(jí)的組織(根證書)之間相互認(rèn)證,整個(gè)信任關(guān)系基本是樹狀的,這就是所謂的Tree of Trust。還有,S/MIME將信件內(nèi)容加密簽名后作為特殊的附件傳送,它的證書格式采用X.509,但與一般瀏覽器網(wǎng)上使用的SSL證書有一定差異。
發(fā)明內(nèi)容
本發(fā)明的目的是克服和避免電子郵件系統(tǒng)和方法的安全性隱患。本發(fā)明在分析了目前業(yè)界廣泛使用的安全電子郵件方案(PGP和S/MIME)的實(shí)現(xiàn)方法和技術(shù)特點(diǎn)的基礎(chǔ)上,提出了一種新的具有收發(fā)雙向不可否認(rèn)機(jī)制的安全電子郵件系統(tǒng)實(shí)現(xiàn)方法。
本發(fā)明的技術(shù)方案具有收發(fā)雙向不可否認(rèn)機(jī)制的安全電子郵件系統(tǒng)實(shí)現(xiàn)方法,包括(1)在電子郵件服務(wù)器和收發(fā)郵件的客戶外設(shè)置第三方認(rèn)證中心,簡(jiǎn)稱CA;(2)密鑰分配方案;(3)收發(fā)郵件的客戶端與CA之間進(jìn)行雙向簽名認(rèn)證的安全通信方法;其特征在于設(shè)置的第三方是可以對(duì)收發(fā)郵件雙方進(jìn)行雙向不可否認(rèn)性仲裁的認(rèn)證中心CA,認(rèn)證中心在后端數(shù)據(jù)庫(kù)設(shè)置的數(shù)據(jù)存儲(chǔ)信息表包括用戶公鑰信息表、郵件摘要信息表、郵件發(fā)送紀(jì)錄信息表、郵件接收解密紀(jì)錄信息表;安全通信方法包括以下內(nèi)容(1)發(fā)信人在發(fā)送郵件之前,必須與CA進(jìn)行雙向簽名認(rèn)證的通信,通信的過(guò)程包括發(fā)信人會(huì)首先請(qǐng)求登錄CA,CA根據(jù)發(fā)信人的公鑰確定發(fā)信人身份、發(fā)信人申請(qǐng)并獲得收信人的公鑰、發(fā)信人將待發(fā)郵件的摘要值傳給CA、CA留下此摘要值以及發(fā)信人發(fā)送郵件的紀(jì)錄,并允許發(fā)信人發(fā)送安全郵件、發(fā)信人用收信人的公鑰加密郵件并發(fā)送至郵件服務(wù)器;(2)收信人在閱讀郵件之前,必須與CA進(jìn)行雙向簽名認(rèn)證的通信,通信的過(guò)程包括收信人會(huì)首先請(qǐng)求登錄CA,CA根據(jù)收信人的公鑰確定收信人身份、收信人預(yù)解密郵件,求出摘要值并發(fā)往CA、CA將這個(gè)摘要與原始摘要進(jìn)行比較,驗(yàn)證郵件完整性、CA留下收信人成功接收解密郵件的紀(jì)錄,并允許收信人閱讀郵件明文。
所述的方法,其后端數(shù)據(jù)庫(kù)設(shè)置的用戶公鑰信息表用于存儲(chǔ)用戶的公鑰和用戶名、注冊(cè)郵箱名、公鑰有效期相關(guān)信息;郵件摘要信息表用于存儲(chǔ)每封郵件的原始報(bào)文摘要值;郵件發(fā)送紀(jì)錄信息表,用于保存發(fā)信方發(fā)送了一封安全郵件的紀(jì)錄;郵件接收解密紀(jì)錄信息表,用于保存收信方成功接收并解密閱讀一封安全郵件的紀(jì)錄。
所述的方法,數(shù)據(jù)存儲(chǔ)信息表還包括用戶歷史公鑰信息表,用于存儲(chǔ)歷史公鑰,這里的歷史公鑰是指用戶自行生成新的公/私密鑰對(duì)并上傳新公鑰后被替換掉的原公鑰。
4所述的方法,密鑰分配方案包括以下內(nèi)容(1)郵件用戶隨時(shí)在客戶端程序中自行生成公/私密鑰對(duì),其中公鑰上傳到認(rèn)證中心,并替換原來(lái)的公鑰,私鑰則始終由用戶以文件的方式自行保管;(2)郵件用戶在每次發(fā)送安全郵件的時(shí)候,通過(guò)與認(rèn)證中心進(jìn)行在線通信的方式來(lái)獲得收信方的公鑰,即每次發(fā)信都要在線與CA進(jìn)行一次通信。
所述的方法,安全通信方法分別用于加密并發(fā)送郵件和接收并解密郵件,客戶端程序與CA端認(rèn)證中心之間進(jìn)行雙向簽名認(rèn)證通信,具體包括(1)加密并發(fā)送郵件①發(fā)信方請(qǐng)求登錄認(rèn)證中心后,發(fā)信方發(fā)送自己的用戶標(biāo)識(shí)ID和用自己私鑰對(duì)ID簽名到認(rèn)證中心,發(fā)送數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+發(fā)信方對(duì)其ID的簽名;②認(rèn)證中心收到用戶的請(qǐng)求登錄信息后,先通過(guò)發(fā)信方ID在數(shù)據(jù)庫(kù)中查找發(fā)信方的公鑰信息,并用發(fā)信方的公鑰來(lái)驗(yàn)證發(fā)信方對(duì)其ID的簽名,如果驗(yàn)證通過(guò),返回發(fā)信方成功登錄的信息,發(fā)送數(shù)據(jù)格式標(biāo)志+成功登錄標(biāo)識(shí);③發(fā)信方收到認(rèn)證中心返回的成功標(biāo)志后,再把收信方的郵箱名及用發(fā)信方的私鑰對(duì)收信方郵箱名的簽名發(fā)送到CA,發(fā)送的數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+收信方的郵箱名+發(fā)信方對(duì)收信方郵箱名的簽名;④認(rèn)證中心收到后進(jìn)行簽名驗(yàn)證,成功后,通過(guò)收信方的郵箱名在后端數(shù)據(jù)庫(kù)中查找到收信方的ID和公鑰,并把收信方的ID和公鑰以及認(rèn)證中心對(duì)此ID和公鑰的簽名返回給發(fā)信方,發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+收信方的公鑰+認(rèn)證中心對(duì)此ID和公鑰的簽名;⑤發(fā)信方驗(yàn)證認(rèn)證中心對(duì)收信方公鑰的簽名,證明的確是收信方的公鑰,然后把郵件明文的報(bào)文摘要值及其對(duì)摘要值的簽名送到CA,發(fā)送數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+收信方的ID+報(bào)文摘要值+發(fā)信方對(duì)報(bào)文摘要值的簽名。
⑥CA在解密獲得郵件摘要并驗(yàn)證成功后,將郵件報(bào)文摘要值和發(fā)信方發(fā)送郵件的信息記錄到數(shù)據(jù)庫(kù)中,并允許發(fā)信方發(fā)送加密郵件;⑦發(fā)信方通過(guò)收信方的公鑰對(duì)郵件明文加密后,發(fā)往郵件服務(wù)器。
(2)接收并解密郵件①收信方首先登錄自己的郵件服務(wù)器,并收取加密郵件;②收信方請(qǐng)求登錄認(rèn)證中心,收信方發(fā)送自己的ID和用自己私鑰對(duì)ID的簽名到認(rèn)證中心,發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+收信方對(duì)其ID的簽名;③認(rèn)證中心收到用戶的請(qǐng)求登錄信息后,先通過(guò)收信方ID在數(shù)據(jù)庫(kù)中查找收信方的公鑰信息,并用收信方的公鑰來(lái)驗(yàn)證收信方對(duì)ID的簽名,如果驗(yàn)證通過(guò),返回收信方成功登錄的信息,發(fā)送數(shù)據(jù)格式標(biāo)志+成功登錄標(biāo)識(shí);④收信方用自己的私鑰預(yù)解密郵件,并求得郵件報(bào)文摘要值,收信方將這個(gè)摘要值以及收信方對(duì)這個(gè)摘要值的簽名發(fā)往認(rèn)證中心,發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+摘要值+收信方對(duì)摘要值的簽名;⑤認(rèn)證中心驗(yàn)證簽名成功后,把這個(gè)摘要值和數(shù)據(jù)庫(kù)中的原始郵件摘要值進(jìn)行比較,如果匹配,則說(shuō)明收信方解密成功,認(rèn)證中心將在數(shù)據(jù)庫(kù)中留下收信方成功接收解密的紀(jì)錄,如果不匹配,則說(shuō)明郵件內(nèi)容有可能被篡改了,認(rèn)證中心也將在數(shù)據(jù)庫(kù)中留下相應(yīng)的紀(jì)錄;⑥如果摘要匹配成功,認(rèn)證中心將允許收信方閱讀解密郵件,否則,認(rèn)證中心將不允許收信方閱讀郵件。
本發(fā)明的優(yōu)點(diǎn)在PGP方案中沒有設(shè)置認(rèn)證中心來(lái)對(duì)郵件收發(fā)雙方的收發(fā)行為進(jìn)行不可否認(rèn)性仲裁;而S/MIME方案中雖然設(shè)置了認(rèn)證中心,但是主要是負(fù)責(zé)公鑰證書的產(chǎn)生、頒布和撤銷。本發(fā)明方法中,用戶在獲取收信方公鑰的時(shí)候,沒有采用證書的方式,而是采用在線獲取公鑰的方式,即用戶每次發(fā)送安全郵件的時(shí)候,都要與認(rèn)證中心CA進(jìn)行在線通信來(lái)獲得收信方的公鑰,這樣就避免了證書失效的情況發(fā)生,因?yàn)楸4嬖谡J(rèn)證中心CA的公鑰總是最新和最安全的。郵件客戶端并不保存收信方的公鑰信息。
私鑰則始終由用戶以文件的方式自行保管,用戶在使用收發(fā)安全郵件的客戶端程序時(shí)自行導(dǎo)入私鑰,即使是認(rèn)證中心也沒有用戶的私鑰,從而也就不可能偷看用戶的加密郵件。
圖1是傳統(tǒng)的電子郵件收發(fā)原理示意圖;圖2是本發(fā)明方法的整體框架圖;圖3是密鑰分配方案流程圖;圖4是雙向簽名認(rèn)證的安全通信方法在加密并發(fā)送郵件時(shí)的流程圖;圖5是雙向簽名認(rèn)證的安全通信方法在接收并解密郵件時(shí)的流程圖;圖6是認(rèn)證中心后端數(shù)據(jù)庫(kù)的設(shè)計(jì)圖;圖7是認(rèn)證中心前端監(jiān)聽程序的流程圖;圖8是收發(fā)郵件客戶端程序的流程圖。
具體實(shí)施例方式
1、如圖2本發(fā)明的方法在電子郵件服務(wù)器和收發(fā)郵件的客戶端程序之外的第三方設(shè)置了可以對(duì)收發(fā)郵件雙方進(jìn)行雙向不可否認(rèn)性仲裁的認(rèn)證中心(CA)和后端數(shù)據(jù)庫(kù)。第三方是對(duì)收發(fā)郵件雙方進(jìn)行雙向不可否認(rèn)性仲裁的認(rèn)證中心(1)本發(fā)明方法中設(shè)置的CA認(rèn)證中心要求發(fā)信方在發(fā)送郵件之前,必須將郵件的報(bào)文摘要發(fā)送到CA認(rèn)證中心,認(rèn)證中心在留下報(bào)文摘要和發(fā)信方發(fā)送郵件的紀(jì)錄信息后,發(fā)信方才能將加密郵件發(fā)出;(2)本發(fā)明方法中設(shè)置的CA認(rèn)證中心要求收信方在將加密郵件收到本地以后,必須預(yù)先解密,并將預(yù)解密的郵件報(bào)文摘要值發(fā)往CA認(rèn)證中心進(jìn)行比較。當(dāng)摘要值是匹配的情況下,認(rèn)證中心就會(huì)留下收信方已經(jīng)成功接受并解密郵件的紀(jì)錄信息,并允許收信方閱讀郵件。
認(rèn)證中心除了用于保存郵件用戶的公鑰信息以外,還特別通過(guò)要求郵件收發(fā)雙方在收發(fā)郵件之前都必須在認(rèn)證中心留下相應(yīng)的認(rèn)證信息,從而實(shí)現(xiàn)了對(duì)發(fā)送郵件方和接收郵件方的雙向不可否認(rèn)性的仲裁。
具體來(lái)說(shuō),在本發(fā)明的方法中,發(fā)信方在發(fā)送郵件之前,必須將郵件的報(bào)文摘要發(fā)送到認(rèn)證中心,認(rèn)證中心在留下報(bào)文摘要和發(fā)信方發(fā)送郵件的紀(jì)錄信息后,發(fā)信方才能將加密郵件發(fā)出。
另一方面,收信方在將加密郵件收到本地以后,必須預(yù)先解密,并將預(yù)解密的郵件報(bào)文摘要值發(fā)往認(rèn)證中心進(jìn)行比較。當(dāng)摘要值與原始摘要值匹配的情況下,認(rèn)證中心就會(huì)留下收信方已經(jīng)成功接收并解密郵件的紀(jì)錄信息。
這樣,由于用戶在發(fā)送和接收的時(shí)候都在認(rèn)證中心留下了紀(jì)錄信息,發(fā)送方不能否認(rèn)他已經(jīng)發(fā)送過(guò)的郵件,接收方也不能否認(rèn)他已經(jīng)接收并察看了的郵件。
2、設(shè)計(jì)了一套靈活安全的密鑰分配方案。
在PGP方案中沒有統(tǒng)一和集中的機(jī)構(gòu)進(jìn)行公鑰/私鑰的簽發(fā),而是利用鏈?zhǔn)叫湃尉W(wǎng)通過(guò)私人方式轉(zhuǎn)介公鑰;而S/MIME中公鑰/私鑰都是由認(rèn)證中心產(chǎn)生,公鑰通過(guò)頒布證書來(lái)傳遞,認(rèn)證中心過(guò)高的權(quán)限可能使它通過(guò)用戶的私鑰來(lái)偷看用戶的加密郵件。
如圖3所示本發(fā)明方法中在客戶端設(shè)置密鑰發(fā)生器,用戶可以隨時(shí)在客戶端程序中自行生成公/私密鑰對(duì)。用戶可以將自行生成的密鑰對(duì)中的公鑰上傳到認(rèn)證中心保存,以替換原來(lái)的公鑰,即使原來(lái)的公鑰已經(jīng)不再安全,用戶也可以輕松方便地自行更新保存在認(rèn)證中心的公鑰;私鑰則始終由用戶以文件的方式自行保管,用戶在使用收發(fā)安全郵件的客戶端程序時(shí)自行導(dǎo)入私鑰,即使是認(rèn)證中心也沒有用戶的私鑰,從而也就不可能偷看用戶的加密郵件。
本發(fā)明方法中,用戶在獲取收信方公鑰的時(shí)候,沒有采用證書的方式,而是采用在線獲取公鑰的方式,即用戶每次發(fā)送安全郵件的時(shí)候,都要與認(rèn)證中心CA進(jìn)行在線通信來(lái)獲得收信方的公鑰,這樣就避免了證書失效的情況發(fā)生,因?yàn)楸4嬖谡J(rèn)證中心CA的公鑰總是最新和最安全的。郵件客戶端并不保存收信方的公鑰信息。
3、設(shè)計(jì)了一套使收發(fā)郵件的客戶端程序與CA之間進(jìn)行雙向簽名認(rèn)證的安全通信方法(如圖4、圖5所示)。
在PGP方案和S/MIME方案中,只要獲得了收信方的公鑰證書,在加密發(fā)送和接收解密安全郵件的時(shí)候就不再和認(rèn)證中心發(fā)生聯(lián)系了。
本發(fā)明中設(shè)計(jì)了一套收發(fā)郵件的客戶端與認(rèn)證中心之間進(jìn)行雙向簽名認(rèn)證的安全通信方法,在加密發(fā)送和接收解密安全郵件的時(shí)候通過(guò)客戶端程序與認(rèn)證中心CA之間多次的雙向簽名認(rèn)證,來(lái)確認(rèn)對(duì)方的真實(shí)身份。
安全通信機(jī)制分為兩套,分別適用于加密并發(fā)送郵件和接收并解密郵件的不同情況下,客戶端程序與CA端認(rèn)證中心之間進(jìn)行雙向簽名認(rèn)證通信。
(1)加密并發(fā)送郵件,流程如圖4所示。
①發(fā)信方請(qǐng)求登錄認(rèn)證中心。發(fā)信方發(fā)送自己的ID和用自己私鑰對(duì)ID的簽名到認(rèn)證中心。發(fā)送數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+發(fā)信方對(duì)其ID的簽名。
②認(rèn)證中心收到用戶的請(qǐng)求登錄信息后,先通過(guò)發(fā)信方ID在數(shù)據(jù)庫(kù)中查找發(fā)信方的公鑰信息,并用發(fā)信方的公鑰來(lái)驗(yàn)證發(fā)信方對(duì)其ID的簽名。如果驗(yàn)證通過(guò),返回發(fā)信方成功登錄的信息。發(fā)送數(shù)據(jù)格式標(biāo)志+成功登錄標(biāo)識(shí)。
③發(fā)信方收到認(rèn)證中心返回的成功標(biāo)志后,再把收信方的郵箱名及用發(fā)信方的私鑰對(duì)收信方郵箱名的簽名發(fā)送到CA。發(fā)送的數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+收信方的郵箱名+發(fā)信方對(duì)收信方郵箱名的簽名。
④認(rèn)證中心收到后進(jìn)行簽名驗(yàn)證。成功后,通過(guò)收信方的郵箱名在后端數(shù)據(jù)庫(kù)中查找到收信方的ID和公鑰,并把收信方的ID和公鑰以及認(rèn)證中心對(duì)此ID和公鑰的簽名返回給發(fā)信方。發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+收信方的公鑰+認(rèn)證中心對(duì)此ID和公鑰的簽名。
⑤發(fā)信方驗(yàn)證認(rèn)證中心對(duì)收信方公鑰的簽名,證明的確是收信方的公鑰,然后把郵件明文的報(bào)文摘要值及其對(duì)摘要值的簽名送到CA。發(fā)送數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+收信方的ID+報(bào)文摘要值+發(fā)信方對(duì)報(bào)文摘要值的簽名。
⑥CA在解密獲得郵件摘要并驗(yàn)證成功后,將郵件報(bào)文摘要值和發(fā)信方發(fā)送郵件的信息記錄到數(shù)據(jù)庫(kù)中,并允許發(fā)信方發(fā)送加密郵件。
⑦發(fā)信方通過(guò)收信方的公鑰對(duì)郵件明文加密后,發(fā)往郵件服務(wù)器。
(2)接收并解密郵件,流程如圖5所示。
①收信方首先登錄自己的郵件服務(wù)器,并收取加密郵件。
②收信方請(qǐng)求登錄認(rèn)證中心。收信方發(fā)送自己的ID和用自己私鑰對(duì)ID的簽名到認(rèn)證中心。發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+收信方對(duì)其ID的簽名。
③認(rèn)證中心收到用戶的請(qǐng)求登錄信息后,先通過(guò)收信方ID在數(shù)據(jù)庫(kù)中查找收信方的公鑰信息,并用收信方的公鑰來(lái)驗(yàn)證收信方對(duì)ID的簽名。如果驗(yàn)證通過(guò),返回收信方成功登錄的信息。發(fā)送數(shù)據(jù)格式標(biāo)志+成功登錄標(biāo)識(shí)。
④收信方用自己的私鑰預(yù)解密郵件,并求得郵件報(bào)文摘要值,收信方將這個(gè)摘要值以及收信方對(duì)這個(gè)摘要值的簽名發(fā)往認(rèn)證中心。發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+摘要值+收信方對(duì)摘要值的簽名。
⑤認(rèn)證中心驗(yàn)證簽名成功后,把這個(gè)摘要值和數(shù)據(jù)庫(kù)中的原始郵件摘要值進(jìn)行比較。如果匹配,則說(shuō)明收信方解密成功,認(rèn)證中心將在數(shù)據(jù)庫(kù)中留下收信方成功接收解密的紀(jì)錄;如果不匹配,則說(shuō)明郵件內(nèi)容有可能被篡改了,認(rèn)證中心也將在數(shù)據(jù)庫(kù)中留下相應(yīng)的紀(jì)錄。
⑥如果摘要匹配成功,認(rèn)證中心將允許收信方閱讀解密郵件;否則,認(rèn)證中心將不允許收信方閱讀郵件。
在具體實(shí)施方面,分為兩個(gè)方面的內(nèi)容1、認(rèn)證中心CA端的實(shí)施
認(rèn)證中心可以分為兩個(gè)部分,前端的監(jiān)聽程序和后端的數(shù)據(jù)庫(kù)。
如圖6所示在后端數(shù)據(jù)庫(kù)可以設(shè)置五個(gè)存儲(chǔ)數(shù)據(jù)信息表,分別存儲(chǔ)用戶公鑰信息、用戶歷史公鑰信息、郵件摘要信息、郵件發(fā)送紀(jì)錄、郵件接收解密紀(jì)錄。其中用戶公鑰信息表用于存儲(chǔ)用戶的公鑰和其他相關(guān)信息,比如用戶名、注冊(cè)郵箱名、公鑰有效期等;用戶歷史公鑰信息表用于存儲(chǔ)用戶自行生成新的公/私密鑰對(duì)并上傳新公鑰后,被替換的歷史公鑰;郵件摘要信息表用于存儲(chǔ)每封郵件的原始報(bào)文摘要值,收信方通過(guò)把收到的郵件摘要值和這個(gè)原始摘要值進(jìn)行比較來(lái)確定郵件的完整和未被篡改;郵件發(fā)送紀(jì)錄信息表,用于保存發(fā)信方發(fā)送了一封安全郵件的紀(jì)錄,這是確保發(fā)送方不可否認(rèn)性的關(guān)鍵;郵件接收解密紀(jì)錄信息表,用于保存收信方成功接收并解密閱讀一封安全郵件的紀(jì)錄,這也是確保收信方不可否認(rèn)性的關(guān)鍵。
圖7是認(rèn)證中心前端監(jiān)聽程序的流程圖前端的監(jiān)聽程序則負(fù)責(zé)監(jiān)聽特定的端口,等待與收發(fā)郵件的客戶端程序進(jìn)行安全認(rèn)證通信,并對(duì)后端數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的處理前端的監(jiān)聽程序啟動(dòng)后,首先會(huì)監(jiān)聽某個(gè)特定的端口,等待客戶端程序發(fā)出的通信請(qǐng)求;當(dāng)程序收到通信請(qǐng)求后,程序主進(jìn)程就會(huì)創(chuàng)建新的線程與用戶進(jìn)行安全通信,并相應(yīng)地對(duì)后端數(shù)據(jù)庫(kù)進(jìn)行操作;如果需要返回信息,則再次與客戶端程序進(jìn)行通信并把信息返回給用戶;通信完畢后,進(jìn)程結(jié)束。
整個(gè)通信過(guò)程將按照本發(fā)明中設(shè)計(jì)的雙向簽名認(rèn)證的安全通信方法(如圖4、圖5所示)來(lái)進(jìn)行。
2、收發(fā)郵件客戶端程序的實(shí)施收發(fā)郵件客戶端程序也可分為兩個(gè)部分。一部分是根據(jù)SMTP協(xié)議和POP3協(xié)議,完成郵件發(fā)送和接收等操作的基本功能模塊。另一部分則是本發(fā)明的負(fù)責(zé)安全功能的模塊,如圖8的虛線框內(nèi)。安全功能模塊將會(huì)負(fù)責(zé)所有的安全功能,包括與CA端進(jìn)行通信從而完成確認(rèn)發(fā)信人身份、獲得收信人的公鑰、保存郵件原始摘要、登記發(fā)送郵件的紀(jì)錄、確認(rèn)收信人的身份、比較原始摘要和收到后的郵件摘要、登記接收并解密郵件的紀(jì)錄等任務(wù)。
以上兩個(gè)模塊配合工作,就可以完成收發(fā)安全郵件的功能。整個(gè)收發(fā)郵件客戶端程序收發(fā)安全郵件的流程如圖8所示客戶端程序啟動(dòng)后,將首先進(jìn)行郵件服務(wù)器和CA認(rèn)證中心的設(shè)置工作。如果是發(fā)送安全郵件,則首先會(huì)由用戶導(dǎo)入自己的私鑰文件,然后由用戶撰寫郵件。在郵件撰寫完畢后,用戶會(huì)按照安全通信方法與認(rèn)證中心進(jìn)行通信(具體過(guò)程如圖4所示),通信的過(guò)程包括以下步驟發(fā)信方請(qǐng)求登錄認(rèn)證中心,發(fā)信方請(qǐng)求收信方的公鑰,發(fā)信方將郵件的報(bào)文摘要值和發(fā)送郵件的信息發(fā)往認(rèn)證中心。通信結(jié)束后,發(fā)信方將用收信方的公鑰對(duì)郵件進(jìn)行加密,并發(fā)往郵件服務(wù)器。
如果是接收安全郵件,也應(yīng)首先由用戶導(dǎo)入自己的私鑰文件,然后由用戶從郵件服務(wù)器收回郵件。收回郵件后,用戶會(huì)按照安全通信方法與認(rèn)證中心進(jìn)行通信(具體過(guò)程如圖5所示),通信的過(guò)程包括以下步驟收信方請(qǐng)求登錄認(rèn)證中心,收信方預(yù)解密郵件、求得報(bào)文摘要值并發(fā)往認(rèn)證中心。如果認(rèn)證中心驗(yàn)證摘要值匹配,則允許收信用戶查看解密郵件;如果摘要值不匹配,則不允許用戶查看郵件。
權(quán)利要求
1.具有收發(fā)雙向不可否認(rèn)機(jī)制的安全電子郵件系統(tǒng)實(shí)現(xiàn)方法,包括(1)在電子郵件服務(wù)器和收發(fā)郵件的客戶外設(shè)置第三方認(rèn)證中心,簡(jiǎn)稱CA;(2)密鑰分配方案;(3)收發(fā)郵件的客戶端與CA之間進(jìn)行雙向簽名認(rèn)證的安全通信方法;其特征在于設(shè)置的第三方是可以對(duì)收發(fā)郵件雙方進(jìn)行雙向不可否認(rèn)性仲裁的認(rèn)證中心CA,認(rèn)證中心在后端數(shù)據(jù)庫(kù)設(shè)置的數(shù)據(jù)存儲(chǔ)信息表包括用戶公鑰信息表、郵件摘要信息表、郵件發(fā)送紀(jì)錄信息表、郵件接收解密紀(jì)錄信息表;安全通信方法包括以下內(nèi)容(1)發(fā)信人在發(fā)送郵件之前,必須與CA進(jìn)行雙向簽名認(rèn)證的通信,通信的過(guò)程包括發(fā)信人會(huì)首先請(qǐng)求登錄CA,CA根據(jù)發(fā)信人的公鑰確定發(fā)信人身份、發(fā)信人申請(qǐng)并獲得收信人的公鑰、發(fā)信人將待發(fā)郵件的摘要值傳給CA、CA留下此摘要值以及發(fā)信人發(fā)送郵件的紀(jì)錄,并允許發(fā)信人發(fā)送安全郵件、發(fā)信人用收信人的公鑰加密郵件并發(fā)送至郵件服務(wù)器;(2)收信人在閱讀郵件之前,必須與CA進(jìn)行雙向簽名認(rèn)證的通信,通信的過(guò)程包括收信人會(huì)首先請(qǐng)求登錄CA,CA根據(jù)收信人的公鑰確定收信人身份、收信人預(yù)解密郵件,求出摘要值并發(fā)往CA、CA將這個(gè)摘要與原始摘要進(jìn)行比較,驗(yàn)證郵件完整性、CA留下收信人成功接收解密郵件的紀(jì)錄,并允許收信人閱讀郵件明文。
2.如權(quán)利要求1所述的方法,其特征在于后端數(shù)據(jù)庫(kù)設(shè)置的用戶公鑰信息表用于存儲(chǔ)用戶的公鑰和用戶名、注冊(cè)郵箱名、公鑰有效期相關(guān)信息;郵件摘要信息表用于存儲(chǔ)每封郵件的原始報(bào)文摘要值;郵件發(fā)送紀(jì)錄信息表,用于保存發(fā)信方發(fā)送了一封安全郵件的紀(jì)錄;郵件接收解密紀(jì)錄信息表,用于保存收信方成功接收并解密閱讀一封安全郵件的紀(jì)錄。
3.如權(quán)利要求1或2所述的方法,其特征在于數(shù)據(jù)存儲(chǔ)信息表還包括用戶歷史公鑰信息表,用于存儲(chǔ)歷史公鑰,這里的歷史公鑰是指用戶自行生成新的公/私密鑰對(duì)并上傳新公鑰后被替換掉的原公鑰。
4.如權(quán)利要求1或2所述的方法,其特征在于密鑰分配方案包括以下內(nèi)容(1)郵件用戶隨時(shí)在客戶端程序中自行生成公/私密鑰對(duì),其中公鑰上傳到認(rèn)證中心,并替換原來(lái)的公鑰,私鑰則始終由用戶以文件的方式自行保管;(2)郵件用戶在每次發(fā)送安全郵件的時(shí)候,通過(guò)與認(rèn)證中心進(jìn)行在線通信的方式來(lái)獲得收信方的公鑰,即每次發(fā)信都要在線與CA進(jìn)行一次通信。
5.如權(quán)利要求1或2所述的方法,其特征在于安全通信方法分別用于加密并發(fā)送郵件和接收并解密郵件,客戶端程序與CA端認(rèn)證中心之間進(jìn)行雙向簽名認(rèn)證通信,具體包括(1)加密并發(fā)送郵件①發(fā)信方請(qǐng)求登錄認(rèn)證中心后,發(fā)信方發(fā)送自己的用戶標(biāo)識(shí)ID和用自己私鑰對(duì)ID簽名到認(rèn)證中心,發(fā)送數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+發(fā)信方對(duì)其ID的簽名;②認(rèn)證中心收到用戶的請(qǐng)求登錄信息后,先通過(guò)發(fā)信方ID在數(shù)據(jù)庫(kù)中查找發(fā)信方的公鑰信息,并用發(fā)信方的公鑰來(lái)驗(yàn)證發(fā)信方對(duì)其ID的簽名,如果驗(yàn)證通過(guò),返回發(fā)信方成功登錄的信息,發(fā)送數(shù)據(jù)格式標(biāo)志+成功登錄標(biāo)識(shí);③發(fā)信方收到認(rèn)證中心返回的成功標(biāo)志后,再把收信方的郵箱名及用發(fā)信方的私鑰對(duì)收信方郵箱名的簽名發(fā)送到CA,發(fā)送的數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+收信方的郵箱名+發(fā)信方對(duì)收信方郵箱名的簽名;④認(rèn)證中心收到后進(jìn)行簽名驗(yàn)證,成功后,通過(guò)收信方的郵箱名在后端數(shù)據(jù)庫(kù)中查找到收信方的ID和公鑰,并把收信方的ID和公鑰以及認(rèn)證中心對(duì)此ID和公鑰的簽名返回給發(fā)信方,發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+收信方的公鑰+認(rèn)證中心對(duì)此ID和公鑰的簽名;⑤發(fā)信方驗(yàn)證認(rèn)證中心對(duì)收信方公鑰的簽名,證明的確是收信方的公鑰,然后把郵件明文的報(bào)文摘要值及其對(duì)摘要值的簽名送到CA,發(fā)送數(shù)據(jù)格式標(biāo)志+發(fā)信方的ID+收信方的ID+報(bào)文摘要值+發(fā)信方對(duì)報(bào)文摘要值的簽名。⑥CA在解密獲得郵件摘要并驗(yàn)證成功后,將郵件報(bào)文摘要值和發(fā)信方發(fā)送郵件的信息記錄到數(shù)據(jù)庫(kù)中,并允許發(fā)信方發(fā)送加密郵件;⑦發(fā)信方通過(guò)收信方的公鑰對(duì)郵件明文加密后,發(fā)往郵件服務(wù)器。(2)接收并解密郵件①收信方首先登錄自己的郵件服務(wù)器,并收取加密郵件;②收信方請(qǐng)求登錄認(rèn)證中心,收信方發(fā)送自己的ID和用自己私鑰對(duì)ID的簽名到認(rèn)證中心,發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+收信方對(duì)其ID的簽名;③認(rèn)證中心收到用戶的請(qǐng)求登錄信息后,先通過(guò)收信方ID在數(shù)據(jù)庫(kù)中查找收信方的公鑰信息,并用收信方的公鑰來(lái)驗(yàn)證收信方對(duì)ID的簽名,如果驗(yàn)證通過(guò),返回收信方成功登錄的信息,發(fā)送數(shù)據(jù)格式標(biāo)志+成功登錄標(biāo)識(shí);④收信方用自己的私鑰預(yù)解密郵件,并求得郵件報(bào)文摘要值,收信方將這個(gè)摘要值以及收信方對(duì)這個(gè)摘要值的簽名發(fā)往認(rèn)證中心,發(fā)送數(shù)據(jù)格式標(biāo)志+收信方的ID+摘要值+收信方對(duì)摘要值的簽名;⑤認(rèn)證中心驗(yàn)證簽名成功后,把這個(gè)摘要值和數(shù)據(jù)庫(kù)中的原始郵件摘要值進(jìn)行比較,如果匹配,則說(shuō)明收信方解密成功,認(rèn)證中心將在數(shù)據(jù)庫(kù)中留下收信方成功接收解密的紀(jì)錄,如果不匹配,則說(shuō)明郵件內(nèi)容有可能被篡改了,認(rèn)證中心也將在數(shù)據(jù)庫(kù)中留下相應(yīng)的紀(jì)錄;⑥如果摘要匹配成功,認(rèn)證中心將允許收信方閱讀解密郵件,否則,認(rèn)證中心將不允許收信方閱讀郵件。
全文摘要
本發(fā)明提供一種具有收發(fā)雙向不可否認(rèn)機(jī)制的安全電子郵件系統(tǒng)實(shí)現(xiàn)方法,包括(1)在電子郵件服務(wù)器和收發(fā)郵件的客戶外設(shè)置第三方認(rèn)證中心,簡(jiǎn)稱CA;(2)密鑰分配方案;(3)收發(fā)郵件的客戶端與CA之間進(jìn)行雙向簽名認(rèn)證的安全通信方法;其特征在于設(shè)置的第三方是可以對(duì)收發(fā)郵件雙方進(jìn)行雙向不可否認(rèn)性仲裁的認(rèn)證中心CA,認(rèn)證中心在后端數(shù)據(jù)庫(kù)設(shè)置的數(shù)據(jù)存儲(chǔ)信息表包括用戶公鑰信息表、郵件摘要信息表、郵件發(fā)送紀(jì)錄信息表、郵件接收解密紀(jì)錄信息表;本發(fā)明的目的是克服和避免電子郵件系統(tǒng)和方法的安全性隱患,提出了一種新的具有收發(fā)雙向不可否認(rèn)機(jī)制的安全電子郵件系統(tǒng)實(shí)現(xiàn)方法。
文檔編號(hào)H04L9/00GK1665188SQ20051001832
公開日2005年9月7日 申請(qǐng)日期2005年3月3日 優(yōu)先權(quán)日2005年3月3日
發(fā)明者周建國(guó), 晏蒲柳, 郭成城, 李凱, 魏洪波 申請(qǐng)人:武漢大學(xué)