基於PBOC的電子錢包消費交易過程

2021-08-20 15:10:59 字數 3257 閱讀 2602

首先終端和卡片有乙個共同的金鑰叫做消費金鑰:purchkey

假設purchkey = 11223344556677888877665544332211  在滿足安全條件的情況下:

第一步:終端向卡片傳送消費初始化命令:

apdu: 80    50    01   02   0b    01      00001000      001122334455

cla   ins     p1   p2    lc  keyindex   交易金額      終端機編號

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(計算過程金鑰)

用loadkey輸入鍵對inputdata輸入資料 做3des加密

2.

計算mac1

inputdata1 = 00001000      06         001122334455      20120229135100

交易金額     交易型別      終端機編號         日期時間

sessionkey = 003238abc57659dd

mac1 = mac(inputdata1sessionkey ) = f15cab75

用sessionkey對inputdata1做mac運算

第二步:終端向卡片傳送消費命令:

apdu: 80   54   01   00    0f     00000001    20111221214822        3a845bf0

cla  ins   p1   p2    lc   終端交易序號    交易日期時間          mac1

卡片用同樣的方法計算

mac1

並驗證終端發來的

mac1

是否正確來確認終端是否合法。如果

mac1

驗證沒通過,卡片會返回

mac錯誤終止交易。如果

mac1

驗證通過,進行第三步。

第三步:卡片修改餘額,離線交易序號加

1並計算

mac2

和tac

,並返回給終端

3.

計算mac2

inputdata2= 00001000  交易金額

sessionkey = 003238abc57659dd

mac2 = mac(inputdata2 sessionkey ) = 56988a13

用sessionkey對inputdata2做mac運算,

4.

計算tac

卡片和終端還有乙個共同的金鑰tac金鑰:tackey

假設tackey = 00112233445566778899aabbccddeeff

tacsessionkey=xor( left(8),right(8)) =8888888888888888

tackey左右8個位元組做異或運算

inputdata3=00001000      01          001122334455             00000001         20111221       214822

交易金額   交易型別    終端機編號        終端交易序號   交易日期  交易時間

tac = mac(inputdata3, tacsessionkey) = 3ff7a28a

mac2

和tac

作為消費命令的返回資料返回給終端,消費交易到此就結束了,

tac作為清算的時候驗證交易資料真偽和完整性的重要依據,連同交易記錄一同儲存在終端。

tac的計算方法:

初始向量:

00 00 00 00 00 00 00 00

待處理資料:

4位元組交易金額

+1位元組交易型別標識

+6位元組終端機編號

+4位元組終端交易序號

+4位元組終端交易日期

+3位元組終端交易時間

金鑰:tac

金鑰左8

位元組與右

8位元組異或得到的

8位元組資料

演算法:des_mac

演算法

說明:以下計算

tac的流程適用於:

1.

如果psam

卡中tac

秘鑰型別是口令重灌金鑰型別,則此

psam

卡中的tac

金鑰對cpu

卡中的分散因子分散之後

=cpu

卡中的tac

金鑰,因為

口令重灌金鑰在被使用時

cos會自動左右

8位元組進行異或。

2.

如果psam

卡中的tac

金鑰型別是加密

mac金鑰,或者是

mac金鑰型別,則此

psam

卡tac

金鑰對cpu

卡中的分散因子分散之後

=cpu

卡中的tac

金鑰左右

8位元組異或的值

基於PBOC的電子錢包消費交易過程

智慧卡金融行業應用電子錢包的消費交易流程,開發人員可參考 首先終端和卡片有乙個共同的金鑰叫做消費金鑰 purchkey 假設purchkey 11223344556677888877665544332211 在滿足安全條件的情況下 第一步 終端向卡片傳送消費初始化命令 apdu 80 50 01 0...

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

智慧卡金融行業應用電子錢包的消費交易流程,開發人員可參考 首先終端和卡片有乙個共同的金鑰叫做消費金鑰 purchkey 針對每種特定的交易,比如,圈存,消費,都有特定的金鑰與之對應 假設purchkey 11223344556677888877665544332211 應用金鑰一般都是16位元組,寫...

基於pboc的電子錢包的圈存過程

基於pboc 的電子錢包的圈存過程,供智慧卡行業的開發人員參考 一 圈存 首先終端和卡片有乙個共同的金鑰叫做圈存金鑰 loadkey 假設loadkey 11223344556677888877665544332211 在滿足安全條件的情況下 第一步 終端向卡片傳送圈存初始化命令 apdu 80 5...