一種讀卡器的證書加載方法、證書更新方法及讀卡器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及智能卡技術(shù),尤其涉及一種讀卡器的證書加載方法、一種讀卡器的證書更新方法及讀卡器。
【背景技術(shù)】
[0002]隨著時(shí)代的發(fā)展,城市交通一卡通行業(yè)日漸成熟。據(jù)不完全統(tǒng)計(jì),全國有440多個(gè)城市建立了不同規(guī)模的城市一卡通IC卡系統(tǒng)。近年來,用卡環(huán)境的安全性成為全社會(huì)廣泛關(guān)注的事情。城市一卡通領(lǐng)域?qū)儆诿裆こ?,用卡環(huán)境是否安全關(guān)系到廣大持卡者的利益。一旦卡的安全受到侵害,不僅會(huì)對(duì)持卡者造成損失,而且也會(huì)對(duì)社會(huì)穩(wěn)定構(gòu)成威脅。
[0003]城市交通一卡通系統(tǒng)及應(yīng)用的安全問題的核心是系統(tǒng)中的密鑰管理問題。如何安全可靠的生成、分發(fā)、使用和維護(hù)系統(tǒng)的密鑰是城市一卡通設(shè)計(jì)需要解決的重點(diǎn)。一般采用對(duì)稱密鑰體系和非對(duì)稱密鑰體系相結(jié)合的方式來設(shè)計(jì)相應(yīng)的密鑰管理體系。其中,采用非對(duì)稱密鑰體系來保護(hù)對(duì)稱密鑰的分發(fā)、使用和維護(hù),以保證系統(tǒng)中的對(duì)稱密鑰的安全,防止密鑰泄露或受到攻擊。
[0004]然而,城市一卡通的交易過程屬于離線交易過程,包括了發(fā)卡、充值和消費(fèi)三類交易類型。其中,發(fā)卡和充值交易需要在上位機(jī)平臺(tái)和CPU卡上進(jìn)行,這就涉及到將交易指令等敏感信息在二者之間的交換。傳統(tǒng)的交流流程對(duì)敏感信息和指令未采取保護(hù)措施,因此增加了信息和系統(tǒng)被攻擊的風(fēng)險(xiǎn),造成身份冒用、信息竊取和數(shù)據(jù)篡改等問題。
[0005]為此,如何提供一種能夠生成安全證書,且加載安全證書的讀卡器,實(shí)現(xiàn)與CPU卡交易過程中保證信息的機(jī)密性和完整性成為當(dāng)前亟需解決的問題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供一種讀卡器的證書加載方法、證書更新方法及讀卡器,用于保證在與CPU卡交易過程中信息的機(jī)密性和完整性。
[0007]第一方面,本發(fā)明提供一種讀卡器的證書加載方法,包括:
[0008]根據(jù)讀卡器中應(yīng)用根證書的公鑰,驗(yàn)證待加載的第一證書的簽名是否合法;
[0009]若待加載的第一證書的簽名合法,則解析所述第一證書,獲取該第一證書中的公鑰;
[0010]采用所述公鑰對(duì)預(yù)設(shè)數(shù)據(jù)進(jìn)行加密,獲得加密后的加密數(shù)據(jù);
[0011]根據(jù)預(yù)先生成公私密鑰對(duì)的私鑰,對(duì)所述加密數(shù)據(jù)進(jìn)行解密,獲得解密后的數(shù)據(jù);所述私鑰為所述讀卡器預(yù)先生成的用于獲取第一證書的公私密鑰對(duì)中與該第一證書中的公鑰對(duì)應(yīng)的私鑰;
[0012]判斷解密后的數(shù)據(jù)與所述預(yù)設(shè)數(shù)據(jù)是否一致,若一致,則將所述第一證書寫入讀卡器的指定位置,完成第一證書加載。
[0013]可選地,根據(jù)讀卡器中應(yīng)用根證書的公鑰,驗(yàn)證待加載的第一證書的簽名是否合法的步驟之前,所述方法還包括:
[0014]在讀卡器預(yù)加載第一證書時(shí),生成用于驗(yàn)證第一證書的公私密鑰對(duì),所述公私密鑰對(duì)包括公鑰和私鑰;
[0015]將所述公鑰發(fā)送注冊(cè)中心設(shè)備,以使注冊(cè)中心設(shè)備將所述公鑰和所述讀卡器的安全認(rèn)證識(shí)別碼發(fā)送驗(yàn)證中心設(shè)備;
[0016]接收所述驗(yàn)證中心設(shè)備發(fā)送的待加載的第一證書,所述第一證書為所述驗(yàn)證中心設(shè)備根據(jù)所述公鑰和所述安全認(rèn)證識(shí)別碼生成的,且具有驗(yàn)證中心設(shè)備簽名信息的證書。
[0017]可選地,所述根據(jù)讀卡器中應(yīng)用根證書的公鑰,驗(yàn)證待加載的第一證書的簽名是否合法的步驟,包括:
[0018]查看所述應(yīng)用根證書的公鑰是否可以對(duì)待加載的第一證書的簽名信息進(jìn)行解密,如果能解密,則確定所述待加載的第一證書的簽名合法;
[0019]其中,所述應(yīng)用根證書的公鑰為驗(yàn)證中心設(shè)備預(yù)先生成的用于驗(yàn)證第一證書簽名是否合法的公私密鑰對(duì)中的公鑰,且所述驗(yàn)證中心設(shè)備發(fā)送的待加載的第一證書的簽名信息為采用該公私密鑰對(duì)中的私鑰加密的簽名信息。
[0020]可選地,生成用于驗(yàn)證第一證書的公私密鑰對(duì)的步驟,包括:
[0021]采用國密算法SM2生成的用于驗(yàn)證第一證書的公私密鑰對(duì)。
[0022]可選地,所述第一證書為業(yè)務(wù)證書,或者設(shè)備證書;
[0023]所述預(yù)設(shè)數(shù)據(jù)為所述讀卡器的安全認(rèn)證識(shí)別碼。
[0024]第二方面,本發(fā)明提供一種讀卡器的證書更新方法,包括:
[0025]根據(jù)讀卡器應(yīng)用根證書的公鑰,判斷待加載的第二證書是否合法;
[0026]若待加載的第二證書合法且處于有效期,則解析所述第二證書,獲取該第二證書中的臨時(shí)公鑰;
[0027]采用所述臨時(shí)公鑰對(duì)預(yù)設(shè)數(shù)據(jù)進(jìn)行加密,獲得加密后的加密數(shù)據(jù);
[0028]根據(jù)預(yù)先生成公私密鑰對(duì)的臨時(shí)私鑰,對(duì)所述加密數(shù)據(jù)進(jìn)行解密,獲得解密后的數(shù)據(jù);所述臨時(shí)私鑰為所述讀卡器預(yù)先生成的用于獲取第二證書的公私密鑰對(duì)中與該第二證書中的臨時(shí)公鑰對(duì)應(yīng)的臨時(shí)私鑰;
[0029]判斷解密后的數(shù)據(jù)與所述預(yù)設(shè)數(shù)據(jù)是否一致,若一致,則將所述待加載的第二證書替換第一證書;所述第一證書為所述讀卡器中需要更新的證書。
[0030]可選地,根據(jù)讀卡器應(yīng)用根證書的信息,判斷待加載的第二證書是否合法步驟之前,所述方法還包括:
[0031]在讀卡器預(yù)更新第一證書時(shí),生成用于驗(yàn)證第二證書的臨時(shí)公私密鑰對(duì),所述公私密鑰對(duì)包括臨時(shí)公鑰和臨時(shí)私鑰;
[0032]將所述臨時(shí)公鑰發(fā)送注冊(cè)中心設(shè)備,以使注冊(cè)中心設(shè)備將所述臨時(shí)公鑰和所述讀卡器的安全認(rèn)證識(shí)別碼發(fā)送驗(yàn)證中心設(shè)備;
[0033]接收所述驗(yàn)證中心設(shè)備發(fā)送的待加載的第二證書,所述第二證書為所述驗(yàn)證中心設(shè)備根據(jù)所述臨時(shí)公鑰和所述安全認(rèn)證識(shí)別碼生成的,且具有驗(yàn)證中心設(shè)備簽名信息的證書。
[0034]可選地,所述第一證書為業(yè)務(wù)證書,所述第二證書為所述業(yè)務(wù)證書的過渡證書;
[0035]所述第一證書為設(shè)備證書,所述第二證書為所述設(shè)備證書的過渡證書;
[0036]所述預(yù)設(shè)數(shù)據(jù)為所述讀卡器的安全認(rèn)證識(shí)別碼。
[0037]可選地,根據(jù)讀卡器應(yīng)用根證書的公鑰,判斷待加載的第二證書是否合法的步驟,包括:
[0038]查看所述應(yīng)用根證書的公鑰是否可以對(duì)待加載的第二證書的簽名信息進(jìn)行解密,如果能解密,則確定所述待加載的第二證書的簽名合法;以及
[0039]查看簽名信息中的有效期是否過期,若未過期,則確定待加載的第二證書處于有效期;
[0040]其中,所述應(yīng)用根證書的公鑰為驗(yàn)證中心設(shè)備預(yù)先生成的用于驗(yàn)證第二證書簽名是否合法的公私密鑰對(duì)中的公鑰,且所述驗(yàn)證中心設(shè)備發(fā)送的待加載的第二證書的簽名信息為采用該公私密鑰對(duì)中的私鑰加密的簽名信息,所述簽名信息包括簽名和第二證書的有效期。
[0041]第三方面,本發(fā)明還提供一種讀卡器的信息處理方法,包括:
[0042]讀卡器接收到上位機(jī)發(fā)送的第一指令,所述第一指令包括向CPU卡轉(zhuǎn)發(fā)的數(shù)據(jù)信息,以及該數(shù)據(jù)信息是否加解密的參數(shù)信息;
[0043]所述讀卡器根據(jù)所述第一指令的參數(shù)信息,判斷所述數(shù)據(jù)信息是明文數(shù)據(jù)信息,還是采用所述讀卡器中第一證書的公鑰加密的密文數(shù)據(jù)信息;
[0044]若確定所述數(shù)據(jù)信息為密文數(shù)據(jù)信息,則采用所述第一證書的私鑰解密所述密文數(shù)據(jù)信息,并將解密后的數(shù)據(jù)信息發(fā)送CPU卡。
[0045]可選地,判斷所述數(shù)據(jù)信息是明文數(shù)據(jù)信息,還是采用所述讀卡器中第一證書的公鑰加密的密文數(shù)據(jù)信息的步驟之后,所述方法還包括:
[0046]若確定所述數(shù)據(jù)信息為明文數(shù)據(jù)信息,則將所述數(shù)據(jù)信息發(fā)送CPU卡。
[0047]可選地,所述方法還包括:
[0048]接收所述CPU卡根據(jù)所述數(shù)據(jù)信息發(fā)送的響應(yīng)信息;
[0049]采用第一證書以及響應(yīng)信息中的數(shù)據(jù)生成一簽名信息,將該簽名信息和所述響應(yīng)信息組成數(shù)據(jù)包發(fā)送上位機(jī)。
[0050]可選地,所述第一證書為業(yè)務(wù)證書或設(shè)備證書。
[0051]第四方面,本發(fā)明還提供一種讀卡器的證書加載裝置,包括:
[0052]簽名驗(yàn)證模塊,用于根據(jù)讀卡器中應(yīng)用根證書的公鑰,驗(yàn)證待加載的第一證書的簽名是否合法;
[0053]解析模塊,用于在簽名驗(yàn)證模塊驗(yàn)