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