一種通過(guò)金融ic卡進(jìn)行交易簽名及加密傳輸?shù)姆椒?br>【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)上銀行、手機(jī)銀行、移動(dòng)支付、網(wǎng)絡(luò)身份認(rèn)證、電子簽名等領(lǐng)域,具體是一種通過(guò)金融1C卡進(jìn)行交易簽名及加密傳輸?shù)姆椒ā?br>【背景技術(shù)】
[0002]隨著1C卡的普及,銀行卡發(fā)行已經(jīng)從磁條卡時(shí)代步入到金融1C卡時(shí)代。相較于磁條卡,金融1C卡的優(yōu)勢(shì)非常明顯:防復(fù)制、放篡改、卡片內(nèi)置密鑰可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密等。金融1C卡的出現(xiàn),在保證使用者不增加額外的設(shè)備及不改變?cè)瓉?lái)的使用習(xí)慣的前提下,又很好地解決了線下交易安全性的問(wèn)題。但是對(duì)于線上交易,為保障其安全性,目前主要還是通過(guò)使用網(wǎng)銀的U盾或令牌等硬件設(shè)備;手機(jī)銀行或手機(jī)支付,則要依靠音頻盾或mPOS等硬件設(shè)備來(lái)保障安全,或者就干脆不帶任何其他硬件設(shè)備,而犧牲一定的安全性??傊F(xiàn)在的線上交易,不是安全不方便,就是方便不安全。
[0003]現(xiàn)階段國(guó)內(nèi)發(fā)行的金融1C卡都符合《中國(guó)金融集成電路1C卡規(guī)范》(以下簡(jiǎn)稱PB0C規(guī)范),持卡人的密鑰,安全存儲(chǔ)在卡片內(nèi)部,卡片內(nèi)置CPU可以實(shí)現(xiàn)多種符合國(guó)際和國(guó)內(nèi)標(biāo)準(zhǔn)的對(duì)稱和非對(duì)稱加解密算法,完全可以做到卡片對(duì)數(shù)據(jù)的加密,和后臺(tái)服務(wù)器對(duì)數(shù)據(jù)的解密,從而起到與現(xiàn)有U盾、令牌或其他硬件安全模塊的同等作用。但是目前還沒(méi)有這樣的應(yīng)用技術(shù)。
[0004]PB0C規(guī)范通常的應(yīng)用模式是,用戶使用的金融1C卡配合商家使用的通過(guò)認(rèn)證的專用的讀卡機(jī)具,實(shí)現(xiàn)線下的安全交易;其中,金融1C卡在卡內(nèi)對(duì)交易數(shù)據(jù)進(jìn)行簽名,讀卡機(jī)具對(duì)交易數(shù)據(jù)進(jìn)行加密。而在線上交易時(shí),用戶往往是通過(guò)互聯(lián)網(wǎng)與商家或銀行進(jìn)行交易的,這時(shí)用戶手中很難有專用的讀卡機(jī)具用于交易。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的問(wèn)題是提供一種通過(guò)金融1C卡進(jìn)行交易簽名及加密傳輸?shù)姆椒?,使用金?C卡及通用的讀卡設(shè)備,實(shí)現(xiàn)安全的交易簽名及交易加密。
[0006]本發(fā)明采用的技術(shù)方案是:
一種通過(guò)金融1C卡進(jìn)行交易簽名及加密傳輸?shù)姆椒?,其特征在于,包括以下步驟: 第一步:產(chǎn)生對(duì)交易數(shù)據(jù)的動(dòng)態(tài)加密密鑰,并使用該密鑰對(duì)交易數(shù)據(jù)進(jìn)行加密;
第二步:對(duì)交易數(shù)據(jù)進(jìn)行簽名;
第三步:對(duì)加密后交易數(shù)據(jù)及簽名的傳輸;
第四步:對(duì)傳輸?shù)慕灰讛?shù)據(jù)密文的解密。
[0007]所述的第一步(產(chǎn)生對(duì)交易數(shù)據(jù)的動(dòng)態(tài)加密密鑰,并使用該密鑰對(duì)交易數(shù)據(jù)進(jìn)行加密)包括:
(1)通用讀卡設(shè)備選擇金融1C卡中的PB0C借/貸記應(yīng)用,執(zhí)行PB0C規(guī)范的“應(yīng)用初始化”和“讀應(yīng)用數(shù)據(jù)”流程,在“終端行為分析”步驟中向金融1C卡請(qǐng)求“生成應(yīng)用密文”操作;授權(quán)金額、終端驗(yàn)證結(jié)果和不可預(yù)知數(shù)等字段均設(shè)為默認(rèn)值(如“0”); (2)金融1C卡返回8個(gè)字節(jié)的應(yīng)用密文AQ和金融1C卡驗(yàn)證結(jié)果CVL以及交易計(jì)數(shù)器 ATC ;
(3)通用讀卡設(shè)備使用設(shè)備本身的算法,用第(2)步獲得的AQ作為加密密鑰,在通用讀卡設(shè)備上對(duì)交易數(shù)據(jù)的明文加密,產(chǎn)生交易數(shù)據(jù)密文。
[0008]所述的第二步(對(duì)交易數(shù)據(jù)進(jìn)行簽名)包括:
(1)通用讀卡設(shè)備首先對(duì)交易數(shù)據(jù)進(jìn)行處理,將除了“授權(quán)金額”以外的其他交易數(shù)據(jù),如果其長(zhǎng)度大于4個(gè)字節(jié),則分成η組,每4個(gè)字節(jié)一組;數(shù)據(jù)長(zhǎng)度如果不是4的整數(shù)倍,最后一個(gè)字段用與服務(wù)器約定好的數(shù)據(jù)填充;
(2)通用讀卡設(shè)備選擇金融1C卡中的PB0C借/貸記應(yīng)用,執(zhí)行PB0C規(guī)范的“應(yīng)用初始化”和“讀應(yīng)用數(shù)據(jù)”流程,在所述的“終端行為分析”步驟中向金融1C卡請(qǐng)求“生成應(yīng)用密文”操作;
(3)在執(zhí)行第(2)步的同時(shí),通用讀卡設(shè)備將交易數(shù)據(jù)中的實(shí)際交易金額填入“授權(quán)金額”字段,將其他交易數(shù)據(jù)按第(1)步的分組,依次每4個(gè)字節(jié)一組填入“不可預(yù)知數(shù)”字段,請(qǐng)求“生成應(yīng)用密文”操作;
(4)重復(fù)第(2)、(3)步,直到所有交易數(shù)據(jù)都被送入金融1C卡中,并得到若干個(gè)金融1C卡返回值A(chǔ)C2~ACn+1,即為金融1C卡對(duì)本次交易的簽名。
[0009]所述的第三步(對(duì)加密后交易數(shù)據(jù)及簽名的傳輸):通過(guò)通用讀卡設(shè)備將第一、二步產(chǎn)生的交易數(shù)據(jù)密文(AQ)、交易簽名(AC2~ACn+1)及金融1C卡在第一步(2)當(dāng)中返回的交易計(jì)數(shù)器ATC,以及所有的金融1C卡驗(yàn)證結(jié)果(CVR^CVRm)通過(guò)開放網(wǎng)絡(luò)送到后臺(tái)服務(wù)器。
[0010]所述的第四步(對(duì)傳輸?shù)慕灰讛?shù)據(jù)密文的解密)包括:
(1)后臺(tái)服務(wù)器根據(jù)持卡人信息從數(shù)據(jù)庫(kù)導(dǎo)出對(duì)應(yīng)金融1C卡的密鑰和應(yīng)用交互特征(AIP);
(2)后臺(tái)服務(wù)器根據(jù)上述第三步中收到的ATC、CVR1、上面(1)中導(dǎo)出的金融1C卡密鑰和AIP以及與第一步(1)中相同的交易數(shù)據(jù)默認(rèn)值,計(jì)算出AC1;
(3)用AQ及與通用讀卡設(shè)備上一致的算法解密出本次交易的包括賬號(hào)、金額、類型的交易信息;
(4)將除了“授權(quán)金額”字段以外的,其他其長(zhǎng)度大于4個(gè)字節(jié)的交易數(shù)據(jù),分成η組,每4個(gè)字節(jié)一組,數(shù)據(jù)長(zhǎng)度如果不是4的整數(shù)倍,最后一個(gè)字段用與通用讀卡設(shè)備約定好的數(shù)據(jù)填充;
(5)將ATC加1,依次用每一組交易數(shù)據(jù)和金額,以及ΑΙΡ和CVRJ+算出“應(yīng)用密文”數(shù)據(jù)并與AC#對(duì)是否一致;
(6)重復(fù)步驟(5),直至ACn+1比對(duì)成功,說(shuō)明持卡人的金融1C卡對(duì)交易數(shù)據(jù)的簽名真實(shí)可信。
[0011]本發(fā)明的技術(shù)效果是:在完全遵循PB0C規(guī)范的基礎(chǔ)上,對(duì)PB0C規(guī)定的交易方式和流程進(jìn)行了合理的利用,從而實(shí)現(xiàn)了線上交易中,金融1C卡對(duì)交易數(shù)據(jù)的簽名和金融1C卡與通用讀卡設(shè)備配合對(duì)交易數(shù)據(jù)的加密傳輸。利用持卡人持有的金融1C卡,保障線上交易數(shù)據(jù)傳輸?shù)陌踩裕瑢?shí)現(xiàn)了既方便(與線下交易的使用習(xí)慣一致),又安全(利用金融1C卡這一硬件設(shè)備來(lái)保障安全性)。完全利用了 PB0C規(guī)范,采用的方法簡(jiǎn)單有效,在不增加硬件成本的情況下,完成金融1C卡對(duì)交易數(shù)據(jù)的簽名和交易數(shù)據(jù)的加密傳輸,降低了線上交易的推廣成本和難度。
【附圖說(shuō)明】
[0012]圖1為線上交易的典型組成部分,包括符合PB0C規(guī)范的金融1C卡、帶有NFC功能的手機(jī)和后端服務(wù)器。
[0013]圖2為手機(jī)第一次向金融1C卡發(fā)送“生成應(yīng)用密文”指令時(shí)所用的默認(rèn)數(shù)據(jù)元和金融1C卡響應(yīng)數(shù)據(jù)。
[0014]圖3為手機(jī)第二次向金融1C卡發(fā)送“生成應(yīng)用密文”指令時(shí)所用的第一部分交易數(shù)據(jù)元和金融1C卡響應(yīng)數(shù)據(jù)。
[0015]圖4為手機(jī)第三次向金融1C卡發(fā)送“生成應(yīng)用密文”指令時(shí)所用的第二部分交易數(shù)據(jù)元和金融1C卡響應(yīng)數(shù)據(jù)。
[0016]圖5為手機(jī)對(duì)交易數(shù)據(jù)的明文進(jìn)行加密的過(guò)程。
[0017]圖6為后臺(tái)服務(wù)器對(duì)交易數(shù)據(jù)的密文進(jìn)行解密的過(guò)程。
【具體實(shí)施方式】
[0018]本發(fā)明一種通過(guò)金融1C卡進(jìn)行交易簽名及加密傳輸?shù)姆椒?,總流程包括以下步驟:
第一步:產(chǎn)生對(duì)交易數(shù)據(jù)的動(dòng)態(tài)加密密鑰,并使用該密鑰對(duì)交易數(shù)據(jù)進(jìn)行加密;
第二步:對(duì)交易數(shù)據(jù)進(jìn)行簽名;
第三步:對(duì)加密后交易數(shù)據(jù)及簽名的傳輸;
第四步:對(duì)傳輸?shù)慕灰讛?shù)據(jù)密文的解密。
[0019]本發(fā)明在做交易簽名時(shí),通用的讀卡設(shè)備將交易數(shù)據(jù)(“交易類型”、“授權(quán)金額”和“不可預(yù)知數(shù)”等字段)發(fā)送給金融1C卡,請(qǐng)求PB0C規(guī)范中的“申請(qǐng)交易密文”操作,通過(guò)獲得交易密文AC,從而實(shí)現(xiàn)金融1C卡對(duì)交易數(shù)據(jù)的簽名;“申請(qǐng)交易密文”操作可以有三種類型:批準(zhǔn)交易、請(qǐng)求聯(lián)機(jī)授權(quán)和拒絕交易,理論上來(lái)講使用上述任一種類型都可以,但是金融1C卡在收到密文請(qǐng)求時(shí)會(huì)根據(jù)相關(guān)參數(shù)做風(fēng)險(xiǎn)管理,金融1C卡可能將批準(zhǔn)交易的請(qǐng)求改成請(qǐng)求聯(lián)機(jī)授權(quán)或拒絕交易,也可能將請(qǐng)求聯(lián)機(jī)授權(quán)改成拒絕交易,只有當(dāng)收到拒絕交易請(qǐng)求時(shí)金融1C卡一定返回拒絕交易的密文,所以在實(shí)際應(yīng)用中申請(qǐng)“拒絕交易”密文會(huì)使邏輯更簡(jiǎn)單,同時(shí)不會(huì)影響金融1C卡的正常線下交易。
[0020]現(xiàn)實(shí)的線上交易中,除“授權(quán)金額”外,往往還需要包括“轉(zhuǎn)入賬號(hào)”等比較長(zhǎng)的信息,而請(qǐng)求“交易密文”的指令中不含有“轉(zhuǎn)入賬號(hào)”等字段,但4個(gè)字節(jié)的“不可預(yù)知數(shù)”字段可以隨意設(shè)置,本發(fā)明將申請(qǐng)“交易密文”指令中不包含的“轉(zhuǎn)入帳號(hào)”等交易字段分割為每4個(gè)字節(jié)一組,通過(guò)多次向金融1C卡請(qǐng)求“交易密文”操作,將上述包括“轉(zhuǎn)入賬號(hào)”等交易字段的4個(gè)字節(jié)一組的數(shù)據(jù),依次放入指令的“不可預(yù)知數(shù)”字段,并依次將所有數(shù)據(jù)送入金融1C卡,實(shí)現(xiàn)金融1C卡對(duì)完整交易數(shù)據(jù)的簽名。
[0021]交易數(shù)據(jù)的明文必須加密后在網(wǎng)絡(luò)上傳輸,如何與后臺(tái)服務(wù)器協(xié)商加密密鑰又是一個(gè)比較關(guān)鍵的問(wèn)題。<