智慧卡金融行業應用電子錢包的消費交易流程,開發人員可參考
首先終端和卡片有乙個共同的金鑰叫做消費金鑰:purchkey (針對每種特定的交易,比如,圈存,消費,都有特定的金鑰與之對應)
假設purchkey = 11223344556677888877665544332211 (應用金鑰一般都是16位元組,寫在adf下的key檔案中)
在滿足安全條件的情況下:
第一步:終端向卡片傳送消費初始化命令:
apdu: 80 50 01 02 0b 01 00001000 001122334455
cla ins p1 p2 lc keyindex 交易金額 終端機編號
卡片返回15個位元組的資料如下(不包括9000):
00000000 0000 000000 01 00 11223344
卡片餘額 交易序號 透支限額 金鑰版本號 演算法標識 隨機數
mac1的計算過程如下(終端):
1.計算過程金鑰:sessionkey (通訊過程都是在建立的會話中進行的,因此為了保證通道的安全性,首先要確定會話金鑰,而會話金鑰又叫過程金鑰是與當次通訊的通行環境,物件有關的)
inputdata =11223344 0000 0001 (8bytes)
隨機數 卡片離線交易序號 終端交易序號後四位
purchkey = 11223344556677888877665544332211 (消費金鑰)
sessionkey = 3desenypt(inputdata, purchkey) = 003238abc57659dd
用purchkey對inputdata 做3des加密
過程金鑰的產生是由消費金鑰和當次消費交易的資料(隨機數+卡片離線交易序號+終端交易序號的後4位)通過3des加密計算得來的
2.計算mac1 (4位元組的校驗資料)
inputdata1 = 00001000 06 001122334455 20120229135100
交易金額 交易型別 終端機編號 日期時間
sessionkey = 003238abc57659dd (本次會話中過程金鑰不變)
mac1 = mac(inputdata1 sessionkey ) = f15cab75
用sessionkey對inputdata1做mac運算得到校驗資料mac1
第二步:終端向卡片傳送消費命令:
apdu: 80 54 01 00 0f 00000001 20111221214822 3a845bf0
cla ins p1 p2 lc 終端交易序號 交易日期時間 mac1
卡片用同樣的方法計算mac1並驗證終端發來的mac1是否正確,從而確認終端是否合法。如果mac1驗證沒有通過,卡片會返回mac錯誤終止交易。如果mac1驗證通過,進行第三步。
第三步:卡片修改餘額,離線交易序號加1並計算mac2 和tac,並返回給終端
計算mac2
inputdata2= 00001000
交易金額
sessionkey = 003238abc57659dd
mac2 = mac(inputdata2 sessionkey ) = 56988a13
用sessionkey對inputdata2做mac運算得到校驗資料mac2
計算tac
卡片和終端還有乙個共同的金鑰tac金鑰:tackey
假設tackey = 00112233445566778899aabbccddeeff
tacsessionkey=xor( tackey.left(8),tackey.right(8)) =8888888888888888
tackey的左右8個位元組做異或運算得到tac的過程金鑰。
inputdata3=00001000 01 001122334455 00000001 20111221 214822
交易金額 交易型別 終端機編號 終端交易序號 交易日期 交易時間
tac = mac(inputdata3, tacsessionkey) = 3ff7a28a
mac2和tac作為消費命令的返回資料返回給終端,消費交易到此就結束了,
tac作為清算的時候驗證交易資料真偽和完整性的重要依據,連同交易記錄一同儲存在終端。
基於PBOC的電子錢包消費交易過程
智慧卡金融行業應用電子錢包的消費交易流程,開發人員可參考 首先終端和卡片有乙個共同的金鑰叫做消費金鑰 purchkey 假設purchkey 11223344556677888877665544332211 在滿足安全條件的情況下 第一步 終端向卡片傳送消費初始化命令 apdu 80 50 01 0...
基於PBOC的電子錢包消費交易過程
首先終端和卡片有乙個共同的金鑰叫做消費金鑰 purchkey 假設purchkey 11223344556677888877665544332211 在滿足安全條件的情況下 第一步 終端向卡片傳送消費初始化命令 apdu 80 50 01 02 0b 01 00001000 001122334455...
基於pboc的電子錢包的圈存過程
基於pboc 的電子錢包的圈存過程,供智慧卡行業的開發人員參考 一 圈存 首先終端和卡片有乙個共同的金鑰叫做圈存金鑰 loadkey 假設loadkey 11223344556677888877665544332211 在滿足安全條件的情況下 第一步 終端向卡片傳送圈存初始化命令 apdu 80 5...