智能卡安全機制比較系列(四) PayFlex
文章出處:http://5052h112.com 作者:佚名 人氣: 發表時間:2012年02月26日
PayFlex是斯倫貝謝公司(經過若干整合現在是金雅拓的一部分)在上世紀90年代推出的一款電子錢包支付COS,從功能上看可以說PayFlex是EMV96以及PBOC電子錢包規范的雛形。
PayFlex同時具備用戶卡和SAM卡功能,支持電子錢包用戶卡的消費、圈存等交易。
從文件結構上看,僅支持定長記錄文件和循環記錄文件兩種格式。PIN和密鑰都是存儲在定長記錄文件中,PIN也就是所謂的持卡人驗證CHV,密鑰分為驗證密鑰和計算密鑰,CHV文件中只有一個記錄來存儲PIN,而密鑰文件中最多可以存儲16條密鑰;交易記錄和錢包文件是用循環記錄文件來存儲的。
從安全機制上看,也是采用訪問控制條件加上當前安全狀態的模式。但是相對比較簡單,總共有5種訪問控制狀態:自由訪問、PIN、密鑰驗證、PIN+密鑰驗證、拒絕訪問。
數值 | AC | 含義 |
0 | ALW | 自由訪問 |
1 | CHV | 驗證PIN |
2 | AUT | 驗證密鑰 |
3 | CHV+AUT | 驗證PIN+驗證密鑰 |
4 | RFU | |
5 | RFU | |
6 | RFU | |
7 | RFU | |
8 | RFU | |
9 | RFU | |
10 | RFU | |
11 | RFU | |
12 | RFU | |
13 | RFU | |
14 | RFU | |
15 | NEV | 拒絕訪問 |
每個文件在創建的時候都有2個字節AC1和AC2用來指示不同APDU命令的訪問控制權限,同時也有另外2個字節KN1和KN2來指出實現需要的訪問控制權限將會使用的密鑰。
訪問權限的獲得可以通過明文的方式驗證PIN或者密鑰,也可以通過密文的方式來驗證。這里所謂的密文方式,實際上就是我們常說的外部認證,也就是先取8字節的隨機數,然后再通過密鑰加密,把加密后的數據按照某種規則截取6個字節,送到卡片中去比對。
因為PayFlex本身也具有SAM卡的功能,所以也可以用PayFlex卡計算分散密鑰。此外PayFlex還支持內部認證,可以讓主機或者終端來驗證卡片的合法性。
電子錢包的交易流程和現在常用PBOC電子錢包交易非常類似,也是通過兩個步驟,經由SAM卡來完成的,交易完成之后也生成類似于MAC和TAC的證書數據,用來驗證交易的完整性。
和目前PBOC電子錢包不同的是PayFlex卡的密鑰長度都是8字節,而不是16字節。
當時這款產品是基于TI的一款TMS373C012,只有4K的程序ROM,128字節的RAM和1K字節的EEPROM。在這樣有限的資源里,開發出如此功能的產品,的確稱得上是地位領先了。其中實現了20來個APDU,包括讀/寫/更新記錄文件、外部認證、內部認證、驗證/更改/解鎖PIN(或密鑰)、選擇文件、創建文件、消費、圈存、分散密鑰、取隨機數、補丁程序的下載和激活等。
后來,在96年PBOC電子錢包規范發布之后,斯倫貝謝迅速推出了一款符合PBOC規范的QianFlex產品。