PBOC/EMV之脫機明文PIN和脫機密文PIN

PBOC/EMV之脫機明文PIN和脫機密文PIN

 

1.      EMV與PBOC在脫機PIN的區別:

EMV和PBOC都支持脫機明文PIN和聯機密文PIN。區別在於EMV還支持脫機密文PIN,而在PBOC中,EMV標識支持脫機密文PIN的位置都成了保留位。


圖1PBOC中CVM的字節9位6-1


圖2EMV中CVM的字節9位6-1

 

2.      脫機明文PIN的驗證

當終端獲取到卡片的CVM表明卡片可以通過脫機明文驗證,而且終端也支持此方式。則終端輸入個人密碼,然後通過verify指令驗證個人密碼。

因爲PBOC和EMV都支持脫機明文的驗證,所以這塊是一樣的,可以對比下圖:


圖3. PBOC的驗證指令描述


圖4. EMV的驗證指令描述

數據塊,圖5,圖6 兩者是一致的:

    圖5. EMV的脫機明文PIN組包方式

圖6. PBOC的脫機明文PIN組包方式

 

卡片在收到verify指令後,會檢查data域,判斷裏面的控制域是否爲0010(二進制),便於確定後面的數據格式。

 

3.      脫機密文PIN的驗證

這點,PBOC是不支持的。從卡片返回的CVM可以得知卡片是否支持,如果終端根據CVM結合自身能力可以進行脫機密文PIN的驗證,則執行以下步驟:

a).獲取卡片隨機數8個字節;

b).終端產生隨機數,隨機數的長度爲:卡片公鑰模長度減17(發給卡片的verify命令中data域需要與IC卡模長度一樣,減17的原因是要其餘數據已經用了17位);

c). 然後根據下面的表組包:(PINBlock的組包方式與明文PIN一致)


圖7. 脫機密文PIN的組包用於加密

d). 經過組包後,得到的數據與IC卡公鑰模長度一致,這個時候使用IC卡公鑰對得到的數據包進行加密,加密後,填入verify指令發送給卡片。

 

卡片收到脫機密文的驗證指令後,會恢復data域數據,檢查data header是否爲0X7F.

 

至此,脫機密文的驗證已經結束,裏面比較複雜的一塊,應該是IC卡公鑰的獲取以及使用公鑰進行加密的過程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章