基於PBOC電子錢包的消費過程詳解

2022-09-16 16:57:13 字數 2499 閱讀 7064

智慧卡金融行業應用電子錢包的消費交易流程,開發人員可參考

首先終端和卡片有乙個共同的金鑰叫做消費金鑰: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...