本申請涉及通信技術(shù)領(lǐng)域,更具體地說,涉及一種雙向認(rèn)證方法及通信系統(tǒng)。
背景技術(shù):
隨著通信技術(shù)的不斷發(fā)展,終端和處理中心之間的通信安全問題愈發(fā)受到普遍關(guān)注,如何在終端和處理中心之間建立一個安全的通信通道,以防止數(shù)據(jù)傳輸過程中數(shù)據(jù)的竊取偵聽和篡改。因此在終端和處理中心之間進(jìn)行通信之前,終端對處理中心或處理中心對終端的合法性驗證是保障通信鏈路安全的重要手段。
現(xiàn)有技術(shù)中存在一種實現(xiàn)終端和處理中心之間的雙向認(rèn)證過程的規(guī)范,參考《中國金融集成電路(IC)卡規(guī)范》中定義的IC卡(終端)和處理中心之間的雙向認(rèn)證過程。
但是由于現(xiàn)有技術(shù)中終端向處理中心發(fā)送的驗證信息分散為較為獨立的模塊,存在被第三方更改終端向處理中心發(fā)送的驗證信息中的某一模塊的內(nèi)容從而達(dá)到偽造終端的風(fēng)險。
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供了一種雙向認(rèn)證方法,以實現(xiàn)將終端向處理中心發(fā)送的驗證信息整合為一個整體,從而降低被第三方偽造終端的風(fēng)險的目的。
為實現(xiàn)上述技術(shù)目的,本發(fā)明實施例提供了如下技術(shù)方案:
一種雙向認(rèn)證方法,應(yīng)用于由終端和處理中心構(gòu)成的通信系統(tǒng),所述雙向認(rèn)證方法包括:
所述終端設(shè)置第一算法標(biāo)識并產(chǎn)生第一隨機(jī)數(shù),將所述第一算法標(biāo)識和第一隨機(jī)數(shù)發(fā)送給所述處理中心;
所述處理中心判斷是否支持第一算法標(biāo)識,如果是,則產(chǎn)生第二隨機(jī)數(shù),并向所述終端發(fā)送渠道證書和所述第二隨機(jī)數(shù);
所述終端對所述渠道證書進(jìn)行驗證,在所述渠道證書驗證通過后,生成共享主密鑰,并利用所述渠道證書加密所述共享主密鑰獲得加密密鑰;
所述終端利用所述終端私鑰對所述第一隨機(jī)數(shù)、第二隨機(jī)數(shù)和所述共享主密鑰進(jìn)行處理,獲得簽名值,并將所述簽名值、加密密鑰及終端證書發(fā)送給所述處理中心;
所述處理中心驗證所述終端證書,在所述終端證書驗證通過后,利用處理中心私鑰解密加密密鑰獲得共享主密鑰,并利用所述終端證書中的公鑰信息驗證所述簽名值,并在所述簽名值通過驗證后,根據(jù)所述第一算法標(biāo)識生成處理中心握手完成消息發(fā)送給所述終端;
所述終端驗證所述處理中心握手完成消息,并在所述處理中心握手完成消息通過驗證后,生成終端握手完成消息發(fā)送給所述處理中心;
所述處理中心驗證所述終端握手完成消息,并在所述終端握手完成消息通過驗證后,完成雙向認(rèn)證過程。
可選的,所述終端利用所述終端私鑰對所述第一隨機(jī)數(shù)、第二隨機(jī)數(shù)和所述共享主密鑰進(jìn)行處理,獲得簽名值包括:
所述終端利用所述第一隨機(jī)數(shù)、第二隨機(jī)數(shù)和所述共享主密鑰連接后得到連接值,并對所述連接值進(jìn)行摘要運算獲得加密連接值;
利用所述終端私鑰對所述加密連接值進(jìn)行簽名獲得簽名值。
可選的,所述根據(jù)所述第一算法標(biāo)識生成處理中心握手完成消息包括:
將所述第一算法標(biāo)識作為加密算法,將所述共享主密鑰作為密鑰,對所述第一隨機(jī)數(shù)和第二隨機(jī)數(shù)的和進(jìn)行加密,獲得處理中心握手完成消息。
可選的,所述共享主密鑰為預(yù)設(shè)大小的隨機(jī)數(shù)。
可選的,所述預(yù)設(shè)大小為48字節(jié)或56字節(jié)。
可選的,所述終端對所述渠道證書進(jìn)行驗證包括:
所述終端利用終端中預(yù)制的CA根證書對所述渠道證書進(jìn)行驗證。
可選的,所述處理中心驗證所述終端證書包括:
所述處理中心利用CA根證書對所述終端證書進(jìn)行驗證。
一種通信系統(tǒng),包括終端和處理中心,所述終端與所述處理中心采用上述任一項所述的雙向認(rèn)證方法進(jìn)行雙向認(rèn)證。
從上述技術(shù)方案可以看出,本發(fā)明實施例提供了一種雙向認(rèn)證方法及通信系統(tǒng),其中,在所述雙向認(rèn)證方法中,所述終端利用所述終端私鑰對所述第一隨機(jī)數(shù)、第二隨機(jī)數(shù)和所述共享主密鑰進(jìn)行處理獲得所述簽名值,以實現(xiàn)對所述終端發(fā)送給所述處理中心的整個驗證信息的簽名,簽名值不再僅僅包含所述第一隨機(jī)數(shù)和第二隨機(jī)數(shù)的信息,從而避免了對所述簽名值中某些信息的替換,以實現(xiàn)偽造終端的可能,在防止驗證信息被篡改的同時,也強(qiáng)化了處理中心對所述終端的驗證,進(jìn)而降低了被第三方偽造終端的風(fēng)險。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請的一個實施例提供的一種雙向認(rèn)證方法的流程示意圖;
圖2為本申請的另一個實施例提供的一種雙向認(rèn)證方法的流程示意圖;
圖3為本申請的又一個實施例提供的一種雙向認(rèn)證方法的流程示意圖;
圖4為本申請的再一個實施例提供的一種雙向認(rèn)證方法的流程示意圖;
圖5為本申請的一個優(yōu)選實施例提供的一種雙向認(rèn)證方法的流程示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本申請實施例提供了一種雙向認(rèn)證方法,如圖1所示,應(yīng)用于由終端和處理中心構(gòu)成的通信系統(tǒng),所述雙向認(rèn)證方法包括:
所述終端設(shè)置第一算法標(biāo)識A1并產(chǎn)生第一隨機(jī)數(shù)r1,將所述第一算法標(biāo)識A1和第一隨機(jī)數(shù)r1發(fā)送給所述處理中心;
所述處理中心判斷是否支持第一算法標(biāo)識A1,如果是,則產(chǎn)生第二隨機(jī)數(shù)r2,并向所述終端發(fā)送渠道證書和所述第二隨機(jī)數(shù)r2;
所述終端對所述渠道證書進(jìn)行驗證,在所述渠道證書驗證通過后,生成共享主密鑰M,并利用所述渠道證書加密所述共享主密鑰M獲得加密密鑰E;
所述終端利用所述終端私鑰對所述第一隨機(jī)數(shù)r1、第二隨機(jī)數(shù)r2和所述共享主密鑰M進(jìn)行處理,獲得簽名值S,并將所述簽名值S、加密密鑰E及終端證書發(fā)送給所述處理中心;
所述處理中心驗證所述終端證書,在所述終端證書驗證通過后,利用處理中心私鑰解密加密密鑰E獲得共享主密鑰M,并利用所述終端證書中的公鑰信息驗證所述簽名值S,并在所述簽名值S通過驗證后,根據(jù)所述第一算法標(biāo)識A1生成處理中心握手完成消息E2發(fā)送給所述終端;
所述終端驗證所述處理中心握手完成消息E2,并在所述處理中心握手完成消息E2通過驗證后,生成終端握手完成消息E1發(fā)送給所述處理中心;
所述處理中心驗證所述終端握手完成消息E1,并在所述終端握手完成消息E1通過驗證后,完成雙向認(rèn)證過程。
需要說明的是,在實際應(yīng)用過程中,當(dāng)任一驗證過程不通過時,都會結(jié)束本次雙向認(rèn)證過程;在本申請的其他實施例中,當(dāng)任一驗證過程不通過時,會發(fā)送出錯消息,并結(jié)束鏈接,以結(jié)束本次雙向認(rèn)證過程。
還需要說明的是,在所述雙向認(rèn)證方法中,所述終端利用所述終端私鑰對所述第一隨機(jī)數(shù)r1、第二隨機(jī)數(shù)r2和所述共享主密鑰M進(jìn)行處理獲得所述簽名值S,以實現(xiàn)對所述終端發(fā)送給所述處理中心的整個驗證信息的簽名,簽名值S不再僅僅包含所述第一隨機(jī)數(shù)r1和第二隨機(jī)數(shù)r2的信息,從而避免了對所述簽名值S中某些信息的替換,以實現(xiàn)偽造終端的可能,在防止驗證信息被篡改的同時,也強(qiáng)化了處理中心對所述終端的驗證,進(jìn)而降低了被第三方偽造終端的風(fēng)險。
在上述實施例的基礎(chǔ)上,在本申請的一個實施例中,如圖2所示,所述終端利用所述終端私鑰對所述第一隨機(jī)數(shù)r1、第二隨機(jī)數(shù)r2和所述共享主密鑰M進(jìn)行處理,獲得簽名值S包括:
所述終端利用所述第一隨機(jī)數(shù)r1、第二隨機(jī)數(shù)r2和所述共享主密鑰M連接后得到連接值R,并對所述連接值R進(jìn)行摘要運算獲得加密連接值H;
利用所述終端私鑰對所述加密連接值H進(jìn)行簽名獲得簽名值S。
在上述實施例的基礎(chǔ)上,在本申請的另一個實施例中,如圖3所示,所述根據(jù)所述第一算法標(biāo)識A1生成處理中心握手完成消息E2包括:
將所述第一算法標(biāo)識A1作為加密算法,將所述共享主密鑰M作為密鑰,對所述第一隨機(jī)數(shù)r1和第二隨機(jī)數(shù)r2的和進(jìn)行加密,獲得處理中心握手完成消息E2。
在上述實施例的基礎(chǔ)上,在本申請的又一個實施例中,所述共享主密鑰M為預(yù)設(shè)大小的隨機(jī)數(shù)。
需要說明的是,所述共享主密鑰M為預(yù)設(shè)大小的隨機(jī)數(shù),所述預(yù)設(shè)大小的具體取值根據(jù)加密鏈路的加密算法確定,在本實施例中,所述預(yù)設(shè)大小為48字節(jié)。當(dāng)加密算法為三重數(shù)據(jù)加密算法(Triple Data Encryption Algorithm,TDEA)塊密碼時,所述預(yù)設(shè)大小為56字節(jié)。本申請對所述預(yù)設(shè)大小的具體取值并不做限定,具體視實際情況而定。
在上述實施例的基礎(chǔ)上,在本申請的一個優(yōu)選實施例中,如圖4所示,所述終端對所述渠道證書進(jìn)行驗證包括:
所述終端利用終端中預(yù)制的CA根證書對所述渠道證書進(jìn)行驗證。
在本申請的另一個優(yōu)選實施例中,如圖5所示,所述處理中心驗證所述終端證書包括:
所述處理中心利用CA根證書對所述終端證書進(jìn)行驗證。
需要說明的是,CA根證書是由CA中心簽發(fā)并管理的,需要從CA中心服務(wù)器中下載,主要用于在交易過程中驗證終端證書和渠道證書的合法性;
所述終端證書應(yīng)用終端所屬機(jī)構(gòu)向CA中心申請,并由CA中心簽發(fā)。該證書是用于標(biāo)識終端合法身份的唯一公鑰證書。
所述終端公鑰和終端私鑰是終端下載終端證書過程中由終端產(chǎn)生的。終端產(chǎn)生的公鑰用于提交CA中心參與制作終端證書,終端私鑰應(yīng)保存在終端的安全模塊中。
所述渠道證書用來驗證處理中心的真?zhèn)?,以防止處理中心被假冒,并在于終端進(jìn)行安全通信時證明處理中心的身份。渠道證書預(yù)置在處理中心的服務(wù)器中,其發(fā)放流程與終端證書相同。
在上述實施例的基礎(chǔ)上,在本申請的一個具體實施例中,所述雙向認(rèn)證方法包括:
終端獲取第一算法標(biāo)識A1,并產(chǎn)生第一隨機(jī)數(shù)r1;
終端將第一隨機(jī)數(shù)r1和第一算法標(biāo)識A1發(fā)送給處理中心,啟動握手協(xié)議;
處理中心選擇第二算法標(biāo)識A2,產(chǎn)生第二隨機(jī)數(shù)r2。根據(jù)從終端發(fā)來的第一算法標(biāo)識A1,檢查處理中心是否支持,如果支持,則設(shè)置處理中心對應(yīng)的加解密算法,如果不支持則返回錯誤信息,斷開連接;
處理中心向終端發(fā)送第二隨機(jī)數(shù)r2和處理中心的渠道證書;
終端使用終端中預(yù)制的CA根證書驗證接收到的處理中心的渠道證書,如果驗證不通過,則發(fā)送出錯消息,結(jié)束鏈接;如果驗證通過,則產(chǎn)生48字節(jié)隨機(jī)數(shù)作為共享主密鑰M,并且使用處理中心的渠道證書中的公鑰加密共享主密鑰M得到加密密鑰E;
r1、r2和M連接后連接值R,終端先對R進(jìn)行摘要運算獲得加密連接值H,然后使用終端私鑰對H進(jìn)行簽名運算獲得簽名值S;
終端向處理中心發(fā)送E、S及終端證書;
處理中心使用CA根證書驗證終端證書合法性,若終端證書驗證不通過,則發(fā)送錯誤消息,結(jié)束連接;如果終端證書驗證通過,則使用終端證書驗證S,若S驗證不通過,則發(fā)送錯誤消息,結(jié)束鏈接,否則,從E中解密得到共享主密鑰M,采用第一算法標(biāo)識A1標(biāo)識的算法,密鑰采用M,加密(r1+r2)得到處理中心握手完成消息E2并向終端發(fā)送;
終端驗證接收到的E2,若驗證不成功,則發(fā)送錯誤消息,結(jié)束鏈接,否則,向處理中心發(fā)送終端握手完成消息E1;
處理中心對終端握手完成消息E1進(jìn)行驗證,驗證失敗,則發(fā)送錯誤消息,結(jié)束鏈接,如果驗證成功,則雙向認(rèn)證過程完成。
相應(yīng)的,本申請實施例還提供了一種通信系統(tǒng),包括終端和處理中心,并且所述終端與所述處理中心采用權(quán)利要求1-7任一項所述的雙向認(rèn)證方法進(jìn)行雙向認(rèn)證。
綜上所述,本申請實施例提供了一種雙向認(rèn)證方法及通信系統(tǒng),其中,在所述雙向認(rèn)證方法中,所述終端利用所述終端私鑰對所述第一隨機(jī)數(shù)r1、第二隨機(jī)數(shù)r2和所述共享主密鑰M進(jìn)行處理獲得所述簽名值S,以實現(xiàn)對所述終端發(fā)送給所述處理中心的整個驗證信息的簽名,簽名值S不再僅僅包含所述第一隨機(jī)數(shù)r1和第二隨機(jī)數(shù)r2的信息,從而避免了對所述簽名值S中某些信息的替換,以實現(xiàn)偽造終端的可能,在防止驗證信息被篡改的同時,也強(qiáng)化了處理中心對所述終端的驗證,進(jìn)而降低了被第三方偽造終端的風(fēng)險。
本說明書中各個實施例采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。