本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種密鑰離線傳輸方法和裝置。
背景技術(shù):
隨著移動(dòng)支付技術(shù)快速發(fā)展,銷(xiāo)售終端(POS終端Point of sales銷(xiāo)售點(diǎn)終端)作為金融支付系統(tǒng)的前端硬件設(shè)備,也發(fā)生了快速發(fā)展,采用各種新型技術(shù)的POS終端快速涌現(xiàn),如藍(lán)牙POS終端、智能POS終端和云POS終端等。POS終端因?yàn)樯婕皞€(gè)人賬戶和財(cái)產(chǎn)安全,需要對(duì)交易敏感信息進(jìn)行加密。然而,用于下載密鑰的銷(xiāo)售終端受網(wǎng)絡(luò)環(huán)境的限制,在只能接入交易網(wǎng)絡(luò)而無(wú)法接入其他網(wǎng)絡(luò)時(shí),無(wú)法與用于提供密鑰的銷(xiāo)售終端進(jìn)行密鑰傳輸。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對(duì)用于下載密鑰的銷(xiāo)售終端受網(wǎng)絡(luò)環(huán)境的限制,在只能接入交易網(wǎng)絡(luò)而無(wú)法接入其他網(wǎng)絡(luò)時(shí)無(wú)法與用于提供密鑰的銷(xiāo)售終端進(jìn)行密鑰傳輸?shù)膯?wèn)題,提供一種密鑰離線傳輸方法和裝置。
一種密鑰離線傳輸方法,所述方法包括:
通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接;
通過(guò)所述串口通信連接接收所述用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰;
通過(guò)所述傳輸密鑰加密待下載密鑰;
將加密后的所述待下載密鑰發(fā)送至所述用于下載密鑰的銷(xiāo)售終端;
接收所述用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;
根據(jù)所述確認(rèn)消息斷開(kāi)與所述用于下載密鑰的銷(xiāo)售終端間的串口通信連接。
在一個(gè)實(shí)施例中,所述待下載密鑰包括相互獨(dú)立的第一密鑰和第二密鑰;
所述通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接之前,所述方法還包括:
獲取通過(guò)管理員賬號(hào)輸入的用于生成第一密鑰的第一密鑰分量、用于生成第二密鑰的第二密鑰分量以及密鑰序列號(hào);
將獲取的第一密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到第一密鑰;
將獲取的第二密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到基礎(chǔ)密鑰;
根據(jù)所述基礎(chǔ)密鑰和所述密鑰序列號(hào)獲得第二密鑰。
在一個(gè)實(shí)施例中,所述根據(jù)所述基礎(chǔ)密鑰和所述密鑰序列號(hào)獲得第二密鑰的步驟包括:
按照內(nèi)置的密鑰加密方式對(duì)所述基礎(chǔ)密鑰和所述密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第一部分;
根據(jù)預(yù)設(shè)的邏輯運(yùn)算方式轉(zhuǎn)化所述基礎(chǔ)密鑰;
按照內(nèi)置的密鑰加密方式對(duì)轉(zhuǎn)化后的所述基礎(chǔ)密鑰和所述密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第二部分;
將所述第二密鑰第一部分和所述第二密鑰第二部分組合得到第二密鑰。
在一個(gè)實(shí)施例中,所述通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接的步驟包括:
向所述用于下載密鑰的銷(xiāo)售終端發(fā)送基于串口通信的身份驗(yàn)證指令;
接收所述用于下載密鑰的銷(xiāo)售終端根據(jù)所述身份驗(yàn)證指令反饋的身份驗(yàn)證消息;
在對(duì)所述身份驗(yàn)證消息驗(yàn)證通過(guò)后,通過(guò)數(shù)據(jù)傳輸端口與所述用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
在一個(gè)實(shí)施例中,所述接收所述用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰的步驟包括:
接收所述用于下載密鑰的銷(xiāo)售終端發(fā)送的公鑰;所述公鑰由所述用于下載密鑰的銷(xiāo)售終端根據(jù)內(nèi)置的密鑰生成算法生成;
所述接收所述用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息的步驟包括:
接收所述用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;所述確認(rèn)消息由所述用于下載密鑰的銷(xiāo)售終端按照根據(jù)所述內(nèi)置的密鑰生成算法生成的,且與所述公鑰對(duì)應(yīng)的私鑰解密所述帶下載密鑰后生成。
一種密鑰離線傳輸裝置,所述裝置包括:
串口通信建立模塊,用于通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接;
接收模塊,用于通過(guò)所述串口通信連接接收所述用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰;
加密模塊,用于通過(guò)所述傳輸密鑰加密待下載密鑰;
發(fā)送模塊,用于將加密后的所述待下載密鑰發(fā)送至所述用于下載密鑰的銷(xiāo)售終端;
確認(rèn)模塊,用于接收所述用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;根據(jù)所述確認(rèn)消息斷開(kāi)與所述用于下載密鑰的銷(xiāo)售終端間的串口通信連接。
在一個(gè)實(shí)施例中,所述待下載密鑰包括相互獨(dú)立的第一密鑰和第二密鑰;
所述裝置還包括:
密鑰生成模塊,用于獲取通過(guò)管理員賬號(hào)輸入的用于生成第一密鑰的第一密鑰分量、用于生成第二密鑰的第二密鑰分量以及密鑰序列號(hào);將獲取的第一密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到第一密鑰;將獲取的第二密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到基礎(chǔ)密鑰;根據(jù)所述基礎(chǔ)密鑰和所述密鑰序列號(hào)獲得第二密鑰。
在一個(gè)實(shí)施例中,所述密鑰生成模塊還用于按照內(nèi)置的密鑰加密方式對(duì)所述基礎(chǔ)密鑰和所述密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第一部分;根據(jù)預(yù)設(shè)的邏輯運(yùn)算方式轉(zhuǎn)化所述基礎(chǔ)密鑰;按照內(nèi)置的密鑰加密方式對(duì)轉(zhuǎn)化后的所述基礎(chǔ)密鑰和所述密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第二部分;將所述第二密鑰第一部分和所述第二密鑰第二部分組合得到第二密鑰。
在一個(gè)實(shí)施例中,所述串口通信建立模塊還用于向所述用于下載密鑰的銷(xiāo)售終端發(fā)送基于串口通信的身份驗(yàn)證指令;接收所述用于下載密鑰的銷(xiāo)售終端根據(jù)所述身份驗(yàn)證指令反饋的身份驗(yàn)證消息;在對(duì)所述身份驗(yàn)證消息驗(yàn)證通過(guò)后,通過(guò)數(shù)據(jù)傳輸端口與所述用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
在一個(gè)實(shí)施例中,所述接收模塊還用于接收所述用于下載密鑰的銷(xiāo)售終端發(fā)送的公鑰;所述公鑰由所述用于下載密鑰的銷(xiāo)售終端根據(jù)內(nèi)置的密鑰生成算法生成;
所述確認(rèn)模塊還用于接收所述用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;所述確認(rèn)消息由所述用于下載密鑰的銷(xiāo)售終端按照根據(jù)所述內(nèi)置的密鑰生成算法生成的,且與所述公鑰對(duì)應(yīng)的私鑰解密所述帶下載密鑰后生成。
上述密鑰離線傳輸方法和裝置,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接,提供了離線條件下進(jìn)行密鑰傳輸?shù)膫鬏斖ǖ?。再通過(guò)用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰對(duì)需要下載的密鑰進(jìn)行加密,保證了待下載密鑰在傳輸過(guò)程中的安全性。
附圖說(shuō)明
圖1為一個(gè)實(shí)施例中密鑰離線傳輸方法的應(yīng)用環(huán)境圖;
圖2為一個(gè)實(shí)施例中用于實(shí)現(xiàn)密鑰離線傳輸方法的用于提供密鑰的銷(xiāo)售終端的結(jié)構(gòu)示意圖;
圖3為一個(gè)實(shí)施例中密鑰離線傳輸方法的流程示意圖;
圖4為一個(gè)實(shí)施例中生成待下載密鑰的步驟的流程示意圖;
圖5為一個(gè)實(shí)施例中根據(jù)基礎(chǔ)密鑰和密鑰序列號(hào)獲得第二密鑰的步驟的流程示意圖;
圖6為一個(gè)實(shí)施例中密鑰離線傳輸方法的時(shí)序圖;
圖7為一個(gè)實(shí)施例中密鑰離線傳輸裝置的結(jié)構(gòu)框圖;
圖8為另一個(gè)實(shí)施例中密鑰離線傳輸裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1為一個(gè)實(shí)施例中密鑰離線傳輸方法的應(yīng)用環(huán)境圖。參照?qǐng)D1,該密鑰離線傳輸方法應(yīng)用于密鑰離線下載系統(tǒng)。密鑰離線下載系統(tǒng)包括用于提供密鑰的銷(xiāo)售終端110和用于下載密鑰的銷(xiāo)售終端120,用于提供密鑰的銷(xiāo)售終端110通過(guò)數(shù)據(jù)傳輸接口與用于下載密鑰的銷(xiāo)售終端120建立串口通信連接。用于提供密鑰的銷(xiāo)售終端110用于生成并管理密鑰,可以是用于提供密鑰的POS終端等。用于下載密鑰的銷(xiāo)售終端120用于獲取用于提供密鑰的銷(xiāo)售終端110生成的密鑰,可以是用于接收密鑰的POS終端等。
圖2為一個(gè)實(shí)施例中用于提供密鑰的銷(xiāo)售終端的內(nèi)部結(jié)構(gòu)示意圖。如圖2所示,該用于提供密鑰的銷(xiāo)售終端包括通過(guò)系統(tǒng)總線連接的處理器、非易失性存儲(chǔ)介質(zhì)、內(nèi)存儲(chǔ)器、串行接口、顯示屏和輸入裝置。其中,用于提供密鑰的銷(xiāo)售終端的非易失性存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng)和數(shù)據(jù)庫(kù)。該處理器用于提供計(jì)算和控制能力,支撐整個(gè)用于提供密鑰的銷(xiāo)售終端的運(yùn)行。用于提供密鑰的銷(xiāo)售終端中的內(nèi)存儲(chǔ)器中可儲(chǔ)存有計(jì)算機(jī)可讀指令,該計(jì)算機(jī)可讀指令被所述處理器執(zhí)行時(shí),可使得所述處理器執(zhí)行一種密鑰離線傳輸方法。串行接口用于與用于下載密鑰的銷(xiāo)售終端進(jìn)行串口通信,如發(fā)送待下載密鑰至用于下載密鑰的銷(xiāo)售終端,接收用于下載密鑰的銷(xiāo)售終端返回的確認(rèn)消息等。用于提供密鑰的銷(xiāo)售終端的顯示屏可以是液晶顯示屏或者電子墨水顯示屏等,輸入裝置可以是顯示屏上覆蓋的觸摸層,也可以是終端外殼上設(shè)置的按鍵、軌跡球或觸控板,也可以是外接的鍵盤(pán)、觸控板或鼠標(biāo)等。本領(lǐng)域技術(shù)人員可以理解,圖2中示出的結(jié)構(gòu),僅僅是與本申請(qǐng)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對(duì)本申請(qǐng)方案所應(yīng)用于其上的終端的限定,具體的終端可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。
如圖3所示,在一個(gè)實(shí)施例中,提供了一種密鑰離線傳輸方法,本實(shí)施例以該方法應(yīng)用于上述圖1中的用于提供密鑰的銷(xiāo)售終端110來(lái)舉例說(shuō)明。該方法具體包括如下步驟:
S302,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
其中,數(shù)據(jù)傳輸端口是指用于傳輸數(shù)據(jù)的物理接口。串口即串行接口,也稱串行通信接口或串行通訊接口(通常指COM接口(Cluster Communication Port串行通訊端口)),是采用串行通信方式的擴(kuò)展接口。串口通信連接是指兩個(gè)硬件設(shè)備之間通過(guò)物理專線連接物理接口建立的通信連接。
具體地,用于提供密鑰的銷(xiāo)售終端的數(shù)據(jù)傳輸端口可通過(guò)物理專線與用于下載密鑰的銷(xiāo)售終端的數(shù)據(jù)傳輸端口連接,在用于提供密鑰的銷(xiāo)售終端和用于下載密鑰的銷(xiāo)售終端之間建立基于串口的通信連接,以使得用于提供密鑰的銷(xiāo)售終端和用于下載密鑰的銷(xiāo)售終端之間通過(guò)該串口通信連接進(jìn)行數(shù)據(jù)交互。
S304,通過(guò)串口通信連接接收用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰。
其中,傳輸密鑰是指用于加密傳輸數(shù)據(jù)的密鑰。傳輸密鑰可以是對(duì)稱密鑰,也可以是非對(duì)稱密鑰。對(duì)稱密鑰是數(shù)據(jù)傳輸雙方使用相同的密鑰。非對(duì)稱密鑰包括兩個(gè)密鑰:公開(kāi)密鑰(Public Key,簡(jiǎn)稱公鑰)和私有密鑰(Private Key,簡(jiǎn)稱私鑰),數(shù)據(jù)傳輸中需要兩個(gè)密鑰來(lái)分別進(jìn)行加密和解密。
在一個(gè)實(shí)施例中,步驟S304包括:接收用于下載密鑰的銷(xiāo)售終端發(fā)送的公鑰;公鑰由用于下載密鑰的銷(xiāo)售終端根據(jù)內(nèi)置的密鑰生成算法生成。具體地,用于下載密鑰的銷(xiāo)售終端可根據(jù)RSA加密算法(RSA algorithm)生成公鑰與私鑰的密鑰對(duì)。在生成密鑰對(duì)后,對(duì)生成的密鑰對(duì)進(jìn)行驗(yàn)證。用于下載密鑰的銷(xiāo)售終端可通過(guò)對(duì)一段隨機(jī)數(shù)進(jìn)行加密解密來(lái)驗(yàn)證密鑰對(duì)的正確性。其中,隨機(jī)數(shù)的生成是通過(guò)C語(yǔ)言標(biāo)準(zhǔn)庫(kù)中的隨機(jī)函數(shù)(random)隨機(jī)生成的,使用公鑰加密這串隨機(jī)數(shù),再用私鑰解密這串隨機(jī)數(shù),如果解密后的結(jié)果與生成的隨機(jī)數(shù)是相同,則判定生成的密鑰對(duì)是正確的。
用于下載密鑰的銷(xiāo)售終端在判定生成的密鑰對(duì)正確后,將公鑰作為傳輸密鑰封裝入密鑰請(qǐng)求數(shù)據(jù)包,再為密鑰請(qǐng)求數(shù)據(jù)包添加包頭、包尾和校驗(yàn)碼,將添加完成的密鑰請(qǐng)求數(shù)據(jù)包通過(guò)建立的基于串口的通信連接發(fā)送至用于提供密鑰的銷(xiāo)售終端。其中,校驗(yàn)碼是事先設(shè)定的用于進(jìn)行數(shù)據(jù)包校驗(yàn)的校驗(yàn)碼。用于下載密鑰的銷(xiāo)售終端和/或用于提供密鑰的銷(xiāo)售終端通過(guò)該校驗(yàn)碼標(biāo)識(shí)發(fā)送的數(shù)據(jù)包的類型。
在一個(gè)實(shí)施例中,用于下載密鑰的銷(xiāo)售終端可根據(jù)DES算法(Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))生成傳輸密鑰,將傳輸密鑰封裝入密鑰請(qǐng)求數(shù)據(jù)包,再為密鑰請(qǐng)求數(shù)據(jù)包添加包頭、包尾和校驗(yàn)碼,將添加完成的密鑰請(qǐng)求數(shù)據(jù)包通過(guò)建立的基于串口的通信連接發(fā)送至用于提供密鑰的銷(xiāo)售終端。
S306,通過(guò)傳輸密鑰加密待下載密鑰。
具體地,用于提供密鑰的銷(xiāo)售終端在接收到用于下載密鑰的銷(xiāo)售終端發(fā)送的密鑰請(qǐng)求數(shù)據(jù)包后,對(duì)接收到的密鑰請(qǐng)求數(shù)據(jù)包進(jìn)行解析,提取密鑰請(qǐng)求數(shù)據(jù)包中包括的校驗(yàn)碼。若該校驗(yàn)碼表示該數(shù)據(jù)包為封裝了傳輸密鑰的密鑰請(qǐng)求數(shù)據(jù)包,則從該密鑰請(qǐng)求數(shù)據(jù)包中提取封裝的傳輸密鑰;若該校驗(yàn)碼表示該密鑰請(qǐng)求數(shù)據(jù)包不為封裝了傳輸密鑰的密鑰請(qǐng)求數(shù)據(jù)包,則將該密鑰請(qǐng)求數(shù)據(jù)包丟棄。
S308,將加密后的待下載密鑰發(fā)送至用于下載密鑰的銷(xiāo)售終端。
具體地,用于提供密鑰的銷(xiāo)售終端在提取到傳輸密鑰后,將使用獲取的傳輸密鑰加密待下載密鑰,將加密后的待下載密鑰裝入密鑰應(yīng)答數(shù)據(jù)包,再為密鑰應(yīng)答數(shù)據(jù)包添加包頭、包尾和校驗(yàn)碼,將添加完成的密鑰應(yīng)答數(shù)據(jù)包通過(guò)建立的基于串口的通信連接發(fā)送至用于下載密鑰的銷(xiāo)售終端。
S310,接收用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息。
具體地,用于下載密鑰的銷(xiāo)售終端在接收到用于下載密鑰的銷(xiāo)售終端發(fā)送的密鑰應(yīng)答數(shù)據(jù)包后,對(duì)接收到的密鑰應(yīng)答數(shù)據(jù)包進(jìn)行解析,提取密鑰應(yīng)答數(shù)據(jù)包中包括的校驗(yàn)碼。若該校驗(yàn)碼表示該數(shù)據(jù)包為封裝了待下載密鑰的密鑰應(yīng)答數(shù)據(jù)包,則使用傳輸密鑰對(duì)該密鑰應(yīng)答數(shù)據(jù)包進(jìn)行解密,提取封裝的待下載密鑰;若該校驗(yàn)碼表示該密鑰請(qǐng)求數(shù)據(jù)包不為封裝了傳輸密鑰的密鑰應(yīng)答數(shù)據(jù)包,則將該密鑰應(yīng)答數(shù)據(jù)包丟棄。
其中,當(dāng)傳輸密鑰為對(duì)稱密鑰時(shí),用于解密的傳輸密鑰與用于下載密鑰的銷(xiāo)售終端發(fā)送至用于提供密鑰的銷(xiāo)售終端的密鑰一致。當(dāng)傳輸密鑰為非對(duì)稱密鑰時(shí),用于解密的傳輸密鑰是與發(fā)送的公鑰對(duì)應(yīng)的私鑰。
在一個(gè)實(shí)施例中,步驟S310包括:接收用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;確認(rèn)消息由用于下載密鑰的銷(xiāo)售終端按照根據(jù)內(nèi)置的密鑰生成算法生成的,且與公鑰對(duì)應(yīng)的私鑰解密帶下載密鑰后生成。在本實(shí)施例中,只有使用與加密待下載密鑰的公鑰對(duì)應(yīng)的私鑰才能對(duì)加密后的待下載密鑰進(jìn)行解密,進(jìn)一步保證了密鑰傳輸?shù)陌踩浴?/p>
用于下載密鑰的銷(xiāo)售終端在通過(guò)傳輸密鑰對(duì)密鑰應(yīng)答數(shù)據(jù)包進(jìn)行解密,提取封裝的待下載密鑰后,將提取的密鑰存儲(chǔ)至用于下載密鑰的銷(xiāo)售終端的安全存儲(chǔ)區(qū)域。其中,安全存儲(chǔ)區(qū)域是指通過(guò)PCIDSS(Payment Card Industry Data Security Standard支付卡行業(yè)數(shù)據(jù)安全標(biāo)準(zhǔn))認(rèn)證的PINPAD(Personal Identification Number Personal Digital Assistant個(gè)人標(biāo)識(shí)的個(gè)人數(shù)字助手)密鑰保存區(qū)域。通過(guò)PCI認(rèn)證密鑰保存區(qū)域可保證密鑰存儲(chǔ)的安全性。
用于下載密鑰的銷(xiāo)售終端在存儲(chǔ)提取的密鑰后,通過(guò)建立的串口通信連接向用于提供密鑰的銷(xiāo)售終端發(fā)送確認(rèn)信息,以通知用于提供密鑰的銷(xiāo)售終端密鑰下載完成。其中,確認(rèn)消息是用于提供密鑰的銷(xiāo)售終端與用于下載密鑰的銷(xiāo)售終端預(yù)先基于串口通信協(xié)議配置的數(shù)據(jù)串。該數(shù)據(jù)串在配置時(shí)被設(shè)定為表征用于下載密鑰的銷(xiāo)售終端下載密鑰完成。比如,用于提供密鑰的銷(xiāo)售終端與用于下載密鑰的銷(xiāo)售終端可事先約定數(shù)據(jù)串“\x02\x30\x30\x34\x32\x31\x30\x30\x03”作為確認(rèn)信息。
S312,根據(jù)確認(rèn)消息斷開(kāi)與用于下載密鑰的銷(xiāo)售終端間的串口通信連接。
具體地,用于提供密鑰的銷(xiāo)售終端在接收到用于下載密鑰的銷(xiāo)售終端發(fā)送的確認(rèn)消息后判定用于下載密鑰的銷(xiāo)售終端下載密鑰完成,斷開(kāi)與用于下載密鑰的銷(xiāo)售終端間的串口通信連接。
上述密鑰離線傳輸方法,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接,提供了離線條件下進(jìn)行密鑰傳輸?shù)膫鬏斖ǖ?。再通過(guò)用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰對(duì)需要下載的密鑰進(jìn)行加密,保證了待下載密鑰在傳輸過(guò)程中的安全性。
在一個(gè)實(shí)施例中,密鑰離線傳輸方法中待下載密鑰包括相互獨(dú)立的第一密鑰和第二密鑰。如圖4所示,步驟S302之前,密鑰離線傳輸方法還包括生成待下載密鑰的步驟,具體包括如下步驟:
S402,獲取通過(guò)管理員賬號(hào)輸入的用于生成第一密鑰的第一密鑰分量、用于生成第二密鑰的第二密鑰分量以及密鑰序列號(hào)。
其中,管理員是指進(jìn)行密鑰管理的人員。管理員可通過(guò)管理員賬號(hào)登錄用于提供密鑰的銷(xiāo)售終端,通過(guò)管理員賬號(hào)輸入用于生成第一密鑰的第一密鑰分量、用于生成第二密鑰的第二密鑰分量以及密鑰序列號(hào)。密鑰序列號(hào)(Key Serial Number KSN)由密鑰標(biāo)識(shí)號(hào)(Key Set Identifier KSI)、設(shè)備標(biāo)識(shí)號(hào)(Device Identifier DID)和交易計(jì)數(shù)標(biāo)識(shí)(Transaction Counter TC)組合而成。
密鑰標(biāo)識(shí)號(hào)用于唯一標(biāo)識(shí)一個(gè)密鑰,設(shè)備標(biāo)識(shí)號(hào)用于唯一標(biāo)識(shí)一臺(tái)用于下載密鑰的銷(xiāo)售終端,交易計(jì)數(shù)標(biāo)識(shí)用于唯一標(biāo)識(shí)一次交易。密鑰標(biāo)識(shí)號(hào)、設(shè)備標(biāo)識(shí)號(hào)和交易計(jì)數(shù)標(biāo)識(shí)均可以是包括數(shù)字、字母和符號(hào)中的至少一種字符的字符串。比如:DID事先約定為五個(gè)字節(jié)具體為00002,KSI具體為事先約定為八個(gè)字節(jié)FFFFF03001,由于在密鑰生成階段,未進(jìn)行交易,故交易計(jì)數(shù)標(biāo)識(shí)為0,那么KSN為FFFFF03001000020。
具體地,用于提供密鑰的銷(xiāo)售終端可提供僅可通過(guò)管理員賬號(hào)用于進(jìn)行字符輸入的界面,在檢測(cè)到作用于字符輸入界面的操作后,獲取輸入的用于生成第一密鑰的第一密鑰分量、用于生成第二密鑰的第二密鑰分量以及密鑰序列號(hào)。
S404,將獲取的第一密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到第一密鑰。
具體地,第一密鑰是用于加密數(shù)據(jù)的密鑰。預(yù)設(shè)的邏輯運(yùn)算方式是指預(yù)先設(shè)置的用于對(duì)第一密鑰分量進(jìn)行計(jì)算得到第一密鑰的計(jì)算方式,比如異或運(yùn)算等。在本實(shí)施例中,第一密鑰為T(mén)MK(Terminal Master Key終端主密鑰)。
在一個(gè)實(shí)施例中,第一密鑰分量為兩個(gè)16字節(jié)的字符串,管理員可在通過(guò)管理員賬號(hào)登錄用于提供密鑰的銷(xiāo)售終端輸入第一密鑰分量后輸入用于校驗(yàn)第一密鑰分量的KCV(Key Check Value)校驗(yàn)碼。在通過(guò)KCV(Key Check Value)校驗(yàn)碼校驗(yàn)第一密鑰分量通過(guò)后,將獲取的第一密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到第一密鑰。
KCV校驗(yàn)碼是指使用密鑰分量對(duì)指定數(shù)據(jù)加密后的部分密文數(shù)據(jù)。比如:管理員使用密鑰分量8個(gè)0x00加密后的前4個(gè)字節(jié)數(shù)據(jù)當(dāng)做KCV,當(dāng)用于下載密鑰的銷(xiāo)售終端接收到密鑰分量后,使用密鑰分量對(duì)8個(gè)0x00加密得到加密結(jié)果,將加密結(jié)果前4個(gè)字節(jié)與KCV做比較,如果一致,則表示密鑰分量是正確的,如果不一致,則表示密鑰分量是錯(cuò)誤的。
舉例說(shuō)明,若用于下載密鑰的銷(xiāo)售終端獲取的通過(guò)管理員賬號(hào)輸入的兩個(gè)16字節(jié)密鑰分量和兩個(gè)4字節(jié)KCV校驗(yàn)碼分別為:第一密鑰分量M1:AB AB AB AB CD CD CD CD EF EF EF EF 12 34 56 78,第一密鑰分量M1的KCV校驗(yàn)碼:M1_KCV:88 6D 67 5A,第一密鑰分量M2:12 34 56 78 90AB AB CD CD EF EF AC AC BD BD EF,第一密鑰分量M2的KCV校驗(yàn)碼:M2_KCV:19 85BB 83,經(jīng)KCV驗(yàn)證各密鑰分量成功后開(kāi)始生成第一密鑰,第一密鑰為對(duì)兩個(gè)第一密鑰分量做異或運(yùn)算M1Xor M2,得到第一密鑰為B9 9F FD D3 5D 66 66 00 22 00 00 43 BE 89EB 97。
S406,將獲取的第二密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到基礎(chǔ)密鑰。
其中,第二密鑰分量包括用于生成LMK(Local Master Key本地主密鑰)的LMK密鑰分量、用于生成ZMK(Zone Master Key區(qū)域主密鑰)的ZMK密鑰分量和用于生成BDK(Base Derivation Key根密鑰)的BDK密鑰分量。LMK密鑰分量、ZMK密鑰分量與BDK密鑰分量是相互獨(dú)立且不同的密鑰分量。
具體地,用于提供密鑰的銷(xiāo)售終端可先生成LMK。在安全屋環(huán)境中,用于提供密鑰的銷(xiāo)售終端在獲取三個(gè)管理員通過(guò)管理員賬號(hào)分別輸入LMK密鑰分量和KCV校驗(yàn)碼后,可先采用KCV校驗(yàn)碼對(duì)密鑰分量進(jìn)行校驗(yàn),在校驗(yàn)成功后,對(duì)其中任意兩個(gè)密鑰分量進(jìn)行異或運(yùn)算,得到的結(jié)果再和第三個(gè)密鑰分量進(jìn)行異或運(yùn)算,得到LMK并存入用于提供密鑰的銷(xiāo)售終端的安全存儲(chǔ)區(qū)域。
其中,安全屋環(huán)境是指通過(guò)PCI認(rèn)證的安全區(qū)域,或者處于實(shí)時(shí)監(jiān)控狀態(tài)下的安全區(qū)域等。由于通過(guò)管理員賬號(hào)分別輸入LMK密鑰分量為明文顯示的密鑰分量,因此需要在安全屋環(huán)境下進(jìn)行輸入以保證明文顯示的密鑰分量不被泄露。LMK可用來(lái)對(duì)用于生成后續(xù)密鑰的密鑰分量進(jìn)行加密和解密。
用于提供密鑰的銷(xiāo)售終端可采用相同的密鑰生成方式繼續(xù)生成ZMK并存入用于提供密鑰的銷(xiāo)售終端的安全存儲(chǔ)區(qū)域。具體地,用于提供密鑰的銷(xiāo)售終端在先后獲取三個(gè)管理員通過(guò)管理員賬號(hào)分別輸入經(jīng)過(guò)LMK加密的ZMK密鑰分量時(shí),將在先獲取的ZMK密鑰分量存儲(chǔ)至安全存儲(chǔ)區(qū)域,然后在用于提供密鑰的銷(xiāo)售終端完成獲取三個(gè)ZMK密鑰分量后,用LMK對(duì)三個(gè)加密后的ZMK密鑰分量進(jìn)行3DES解密,以生成ZMK。其中,ZMK密鑰分量事先已用LMK進(jìn)行3DES(Triple Data Encryption Standard三重?cái)?shù)據(jù)加密算法)。ZMK可用來(lái)對(duì)用于生成后續(xù)密鑰的密鑰分量進(jìn)行加密和解密。
用于提供密鑰的銷(xiāo)售終端可采用相同的密鑰生成方式繼續(xù)生成BDK并存入用于提供密鑰的銷(xiāo)售終端的安全存儲(chǔ)區(qū)域。具體地,用于提供密鑰的銷(xiāo)售終端在先后獲取三個(gè)管理員通過(guò)管理員賬號(hào)分別輸入經(jīng)過(guò)LMK或者ZMK加密的BDK密鑰分量時(shí),將在先獲取的BDK密鑰分量存儲(chǔ)至安全存儲(chǔ)區(qū)域,然后在用于提供密鑰的銷(xiāo)售終端完成獲取三個(gè)BDK密鑰分量后,用LMK或者ZMK對(duì)三個(gè)加密后的BDK密鑰分量進(jìn)行3DES解密,以生成BDK。其中,BDK密鑰分量事先已用LMK或者ZMK進(jìn)行3DES(Triple Data Encryption Standard三重?cái)?shù)據(jù)加密算法)。用于提供密鑰的銷(xiāo)售終端生成的BDK即為基礎(chǔ)密鑰。
S408,根據(jù)基礎(chǔ)密鑰和密鑰序列號(hào)獲得第二密鑰。
具體地,第二密鑰也是用于加密數(shù)據(jù)的密鑰,是與第一密鑰不同且相互獨(dú)立的密鑰。第一密鑰與第二密鑰對(duì)數(shù)據(jù)進(jìn)行加密的方式不同。在本實(shí)施例中,第二密鑰為IPEK(Initial PIN Encrypting Key初始密碼加密密鑰)
在本實(shí)施例中,待下載密鑰包括相互獨(dú)立的第一密鑰和第二密鑰,第一密鑰由第一密鑰分量生成,第二密鑰由第二密鑰分量以及密鑰序列號(hào)相同,通過(guò)多個(gè)密鑰以保證數(shù)據(jù)傳輸?shù)陌踩?。而且,生成的第二密鑰與密鑰序列號(hào)有關(guān),不同的密鑰序列號(hào)生成不同的第二密鑰,避免了密鑰完全相同而導(dǎo)致密鑰泄露風(fēng)險(xiǎn)高的問(wèn)題。
在一個(gè)實(shí)施例中,步驟S408具體包括如下步驟:
S502,按照內(nèi)置的密鑰加密方式對(duì)基礎(chǔ)密鑰和密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第一部分。
具體地,用于提供密鑰的銷(xiāo)售終端可采用3DES加密算法對(duì)基礎(chǔ)密鑰BDK與密鑰序列號(hào)KSN進(jìn)行加密,得到第二密鑰第一部分。第二密鑰第一部分可以是IPEK的左半部分。
S504,根據(jù)預(yù)設(shè)的邏輯運(yùn)算方式轉(zhuǎn)化基礎(chǔ)密鑰。
具體地,用于提供密鑰的銷(xiāo)售終端可事先配置用于轉(zhuǎn)化基礎(chǔ)密鑰的字符串。在第二密鑰生成階段,用于提供密鑰的銷(xiāo)售終端可將預(yù)先配置的用于轉(zhuǎn)化基礎(chǔ)密鑰的字符串與基礎(chǔ)密鑰進(jìn)行異或運(yùn)算得到轉(zhuǎn)化后的基礎(chǔ)密鑰。
S506,按照內(nèi)置的密鑰加密方式對(duì)轉(zhuǎn)化后的基礎(chǔ)密鑰和密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第二部分。
具體地,用于提供密鑰的銷(xiāo)售終端可采用3DES加密算法對(duì)轉(zhuǎn)化后的基礎(chǔ)密鑰BDK與密鑰序列號(hào)KSN進(jìn)行加密,得到第二密鑰第二部分。第二密鑰第二部分可以是IPEK的右半部分。
S508,將第二密鑰第一部分和第二密鑰第二部分組合得到第二密鑰。
在本實(shí)施例中,通過(guò)多步密鑰生成步驟生成用于進(jìn)行第一密鑰加密的第二密鑰,進(jìn)一步保證了密鑰的安全性。
舉例說(shuō)明,用于提供密鑰的銷(xiāo)售終端生成IPEK過(guò)程具體如下:
用于提供密鑰的銷(xiāo)售終端獲取的LMK密鑰分量L1為11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11,LMK密鑰分量L1的KCV校驗(yàn)碼L1_KCV為82 E1 36 65,LMK密鑰分量L2為22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22,LMK密鑰分量L2的KCV校驗(yàn)碼L2_KCV為00 96 2B 60,LMK密鑰分量L3為21 07 65 4B A3 98FE DC CD EF 89 3A B4 56 70 12,LMK密鑰分量L3的KCV校驗(yàn)碼L3_KCV為3F 5F 93 61。用于提供密鑰的銷(xiāo)售終端使用KCV碼驗(yàn)證各密鑰分量輸入正確后,將三個(gè)LMK密鑰分量進(jìn)行異或運(yùn)算生成LMK=L1Xor L2 Xor L3=12 34 56 78 90 AB CD EF FE DC BA 09 87 65 43 21。
用于提供密鑰的銷(xiāo)售終端獲取的中ZMK密鑰分量Z1為44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44,ZMK密鑰分量Z1的KCV校驗(yàn)碼Z1_KCV為E2 F2 43 40,ZMK密鑰分量Z2為55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55,ZMK密鑰分量Z2的KCV校驗(yàn)碼Z2_KCV為0C D7 DC 49,ZMK密鑰分量Z3為66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66,ZMK密鑰分量Z3的KCV校驗(yàn)碼Z3_KCV為B0B5 63C2。用于提供密鑰的銷(xiāo)售終端使用KCV碼驗(yàn)證各密鑰分量輸入正確后,將三個(gè)ZMK密鑰分量進(jìn)行異或運(yùn)算生成ZMK=Z1Xor Z2 Xor Z3=77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77。
用于提供密鑰的銷(xiāo)售終端獲取的中BDK密鑰分量B1為77 77 77 77 77 77 77 77 77 77 77 77 77 77 77 77,BDK密鑰分量B1的KCV校驗(yàn)碼B1_KCV為4C BE 91 BE,BDK密鑰分量B2為88 88 88 88 88 88 88 88 88 88 88 88 88 88 88 88,BDK密鑰分量B2的KCV校驗(yàn)碼B2_KCV為F9F4FB D3,BDK密鑰分量B3為99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99,BDK密鑰分量B3的KCV校驗(yàn)碼B3_KCV為0F 2F CF 4A。用于提供密鑰的銷(xiāo)售終端使用KCV碼驗(yàn)證各密鑰分量輸入正確后,將三個(gè)BDK密鑰分量進(jìn)行異或運(yùn)算生成BDK=B1Xor B2 Xor B3=66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66。
用于提供密鑰的銷(xiāo)售終端還可根據(jù)獲取的密文生成BDK。具體地,BDK密文為12 34 56 78 90 AB CD EF AB CD EF AB CD EF AB CD,用ZMK對(duì)BDK密文進(jìn)行3SES解密得到BDK_明文=3DES(ZMK,B_密文)=EA A2AD CB 97 37 13 37 EA A2 AD CB 97 37 13 37,即為BDK。
用于提供密鑰的銷(xiāo)售終端獲取的KSN為FFFFF03001000020,生成的BDK為66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66,將KSN和BDK進(jìn)行3DS加密作為IPEK的左半部分IPEK(left)=3DES(BDK,KSN)=5E6A7318D60EF47D。用于提供密鑰的銷(xiāo)售終端再將BDK與用于轉(zhuǎn)化BDK的“C0C0C0C0 0000 0000 C0C0 C0C0 0000 0000”進(jìn)行異或運(yùn)算,得到轉(zhuǎn)化后的BDK為A6A6A6A6 66 66 66 66 A6 A6 A6 A6 66 66 66 66,再將轉(zhuǎn)化后的BDK和KSN進(jìn)行3DES加密作為IPEK的右半部分IPEK(right)=3DES(異或結(jié)果,KSN)=B2B56CC92CC92EB6。那么IPEK=IPEK(left)+IPEK(right)=F781F00BFF6F83A4B2B56CC92CC92EB6。
在一個(gè)實(shí)施例中,密鑰傳輸方法中步驟S302具體包括向用于下載密鑰的銷(xiāo)售終端發(fā)送基于串口通信的身份驗(yàn)證指令;接收用于下載密鑰的銷(xiāo)售終端根據(jù)身份驗(yàn)證指令反饋的身份驗(yàn)證消息;在對(duì)身份驗(yàn)證消息驗(yàn)證通過(guò)后,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
具體地,用于提供密鑰的銷(xiāo)售終端和用于下載密鑰的銷(xiāo)售終端可事先配置基于串口通信協(xié)議的身份驗(yàn)證指令和身份驗(yàn)證消息。將可基于串口傳輸?shù)囊淮址鳛樯矸蒡?yàn)證指令,并配置另一串字符作為與該身份驗(yàn)證指令對(duì)應(yīng)的身份驗(yàn)證消息。用于提供密鑰的銷(xiāo)售終端可向用于下載密鑰的銷(xiāo)售終端發(fā)送基于串口通信的身份驗(yàn)證指令,接收用于下載密鑰的銷(xiāo)售終端對(duì)身份驗(yàn)證指令進(jìn)行解析,在解析完成后,將與身份驗(yàn)證指令對(duì)應(yīng)的身份驗(yàn)證消息進(jìn)行反饋,用于提供密鑰的銷(xiāo)售終端在接收到用于下載密鑰的銷(xiāo)售終端反饋的身份驗(yàn)證消息后,進(jìn)行解析驗(yàn)證,在驗(yàn)證通過(guò)后,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
舉例說(shuō)明,用于提供密鑰的銷(xiāo)售終端發(fā)送8個(gè)字節(jié)"\x02\x30\x30\x32\x31\x30\x03\x30"給用于下載密鑰的銷(xiāo)售終端,用于下載密鑰的銷(xiāo)售終端收到用于提供密鑰的銷(xiāo)售終端發(fā)來(lái)的數(shù)據(jù)并驗(yàn)證成功后,發(fā)送10個(gè)字節(jié)的數(shù)據(jù)"\x02\x30\x30\x34\x31\x30\x30\x30\x03\x36"應(yīng)答回用于提供密鑰的銷(xiāo)售終端,用于提供密鑰的銷(xiāo)售終端收到應(yīng)答后驗(yàn)證成功后,則用于提供密鑰的銷(xiāo)售終端與用于下載密鑰的銷(xiāo)售終端基于串口的通信連接成功開(kāi)始通訊。
本實(shí)施例中,在與用于下載密鑰的銷(xiāo)售終端間基于串口通信協(xié)議的身份認(rèn)證成功后才建立基于串口的通信連接,進(jìn)一步保障了密鑰下載的安全性。
如圖6所示為一個(gè)實(shí)施例中密鑰離線傳輸時(shí)序圖。管理員通過(guò)管理員賬戶登錄用于提供密鑰的銷(xiāo)售終端,輸入LMK密鑰分量,用于提供密鑰的銷(xiāo)售終端根據(jù)LMK密鑰分量成LMK;用于提供密鑰的銷(xiāo)售終端再根據(jù)輸入的ZMK密鑰分量成ZMK;然后根據(jù)輸入的BDK密鑰分量成BDK或者根據(jù)輸入的BDK密文生成BDK;再根據(jù)輸入的KSN和BDK生成IPEK,并根據(jù)TMK密鑰分量生成TMK。
用于提供密鑰的銷(xiāo)售終端在生成IPEK和TMK后,向用于下載密鑰的銷(xiāo)售終端發(fā)送基于串口通信的身份驗(yàn)證指令;接收用于下載密鑰的銷(xiāo)售終端根據(jù)身份驗(yàn)證指令反饋的身份驗(yàn)證消息;在對(duì)身份驗(yàn)證消息驗(yàn)證通過(guò)后,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
用于下載密鑰的銷(xiāo)售終端將生成的公私密鑰對(duì)中的公鑰發(fā)送至用于提供密鑰的銷(xiāo)售終端,用于提供密鑰的銷(xiāo)售終端根據(jù)接收到的公鑰加密生成的IPEK和/或TMK,將加密后的IPEK和/或TMK發(fā)送至用于下載密鑰的銷(xiāo)售終端,用于下載密鑰的銷(xiāo)售終端再根據(jù)與公鑰對(duì)應(yīng)的私鑰解密加密后的IPEK和/或TMK,并將解密后的IPEK和/或TMK存儲(chǔ)至安全存儲(chǔ)區(qū)域,并向用于提供密鑰的銷(xiāo)售終端反饋確認(rèn)消息,通知用于提供密鑰的銷(xiāo)售終端密鑰下載完成。
如圖7所示,在一個(gè)實(shí)施例中,提供了一種密鑰離線傳輸裝置,包括:串口通信建立模塊701、接收模塊702、加密模塊703、發(fā)送模塊704和確認(rèn)模塊705。
串口通信建立模塊701,用于通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
接收模塊702,用于通過(guò)串口通信連接接收用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰。
加密模塊703,用于通過(guò)傳輸密鑰加密待下載密鑰。
發(fā)送模塊704,用于將加密后的待下載密鑰發(fā)送至用于下載密鑰的銷(xiāo)售終端。
確認(rèn)模塊705,用于接收用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;根據(jù)確認(rèn)消息斷開(kāi)與用于下載密鑰的銷(xiāo)售終端間的串口通信連接。
上述密鑰離線傳輸裝置,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接,提供了離線條件下進(jìn)行密鑰傳輸?shù)膫鬏斖ǖ馈T偻ㄟ^(guò)用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰對(duì)需要下載的密鑰進(jìn)行加密,保證了待下載密鑰在傳輸過(guò)程中的安全性。
在一個(gè)實(shí)施例中,串口通信建立模塊701還用于向用于下載密鑰的銷(xiāo)售終端發(fā)送基于串口通信的身份驗(yàn)證指令;接收用于下載密鑰的銷(xiāo)售終端根據(jù)身份驗(yàn)證指令反饋的身份驗(yàn)證消息;在對(duì)身份驗(yàn)證消息驗(yàn)證通過(guò)后,通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
本實(shí)施例中,在與用于下載密鑰的銷(xiāo)售終端間基于串口通信協(xié)議的身份認(rèn)證成功后才建立基于串口的通信連接,進(jìn)一步保障了密鑰下載的安全性。
在一個(gè)實(shí)施例中,接收模塊702還用于接收用于下載密鑰的銷(xiāo)售終端發(fā)送的公鑰;公鑰由用于下載密鑰的銷(xiāo)售終端根據(jù)內(nèi)置的密鑰生成算法生成。
確認(rèn)模塊705還用于接收用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;確認(rèn)消息由用于下載密鑰的銷(xiāo)售終端按照根據(jù)內(nèi)置的密鑰生成算法生成的,且與公鑰對(duì)應(yīng)的私鑰解密帶下載密鑰后生成。
在本實(shí)施例中,只有使用與加密待下載密鑰的公鑰對(duì)應(yīng)的私鑰才能對(duì)加密后的待下載密鑰進(jìn)行解密,進(jìn)一步保證了密鑰傳輸?shù)陌踩浴?/p>
如圖8所示,在一個(gè)實(shí)施例中,提供了一種密鑰離線傳輸裝置,包括:密鑰生成模塊801、串口通信建立模塊802、接收模塊803、加密模塊804、發(fā)送模塊805和確認(rèn)模塊806。
密鑰生成模塊801,用于獲取通過(guò)管理員賬號(hào)輸入的用于生成第一密鑰的第一密鑰分量、用于生成第二密鑰的第二密鑰分量以及密鑰序列號(hào);將獲取的第一密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到第一密鑰;將獲取的第二密鑰分量按照預(yù)設(shè)的邏輯運(yùn)算方式計(jì)算得到基礎(chǔ)密鑰;根據(jù)基礎(chǔ)密鑰和密鑰序列號(hào)獲得第二密鑰。
串口通信建立模塊801,用于通過(guò)數(shù)據(jù)傳輸端口與用于下載密鑰的銷(xiāo)售終端建立串口通信連接。
接收模塊802,用于通過(guò)串口通信連接接收用于下載密鑰的銷(xiāo)售終端發(fā)送的傳輸密鑰。
加密模塊803,用于通過(guò)傳輸密鑰加密待下載密鑰。
發(fā)送模塊804,用于將加密后的待下載密鑰發(fā)送至用于下載密鑰的銷(xiāo)售終端。
確認(rèn)模塊805,用于接收用于下載密鑰的銷(xiāo)售終端反饋的確認(rèn)消息;根據(jù)確認(rèn)消息斷開(kāi)與用于下載密鑰的銷(xiāo)售終端間的串口通信連接。
本實(shí)施例中,待下載密鑰包括相互獨(dú)立的第一密鑰和第二密鑰,第一密鑰由第一密鑰分量生成,第二密鑰由第二密鑰分量以及密鑰序列號(hào)相同,通過(guò)多個(gè)密鑰以保證數(shù)據(jù)傳輸?shù)陌踩浴6?,生成的第二密鑰與密鑰序列號(hào)有關(guān),不同的密鑰序列號(hào)生成不同的第二密鑰,避免了密鑰完全相同而導(dǎo)致密鑰泄露風(fēng)險(xiǎn)高的問(wèn)題。
在一個(gè)實(shí)施例中,密鑰生成模塊801還用于按照內(nèi)置的密鑰加密方式對(duì)基礎(chǔ)密鑰和密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第一部分;根據(jù)預(yù)設(shè)的邏輯運(yùn)算方式轉(zhuǎn)化基礎(chǔ)密鑰;按照內(nèi)置的密鑰加密方式對(duì)轉(zhuǎn)化后的基礎(chǔ)密鑰和密鑰序列號(hào)進(jìn)行加密,得到第二密鑰第二部分;將第二密鑰第一部分和第二密鑰第二部分組合得到第二密鑰。
本實(shí)施例中,通過(guò)多步密鑰生成步驟生成用于進(jìn)行第一密鑰加密的第二密鑰,進(jìn)一步保證了密鑰的安全性。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一非易失性計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)等。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說(shuō)明書(shū)記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。