PBOC/EMV之電子錢包與電子現金的區別
轉載自小馬哥的blog
http://blog.csdn.net/pony_maggie/article/details/5437454
在2016年5月某一天面試的時候被問及EP和EC的區別,但是自己對這方面不是特別的清除,某人給我說了他關於該問題總結的三點:1.流程;2.APDU命令;3.安全。通過看小馬哥的這篇部落格,兩者是一致的,轉載以求加強宣傳,如果您被問到相關的問題時,可以非常清楚的告訴他。
對於普通的使用者來說,電子錢包和電子現金(下面分別簡稱EP和EC)是幾乎沒有區別的, 為什麼這麼說呢. 因為EP和EC都是為了做小額支付而生的. 我們拿著一張IC卡去超市的POS機上消費,或是坐公交消費,只需輕輕一刷,你不必關心這張卡是基於EP的應用還是基於EC的應用.
但是, 如果你是金融電子這個行業裡的人,尤其是對於開發人員, 不知道EP和EC的區別真的要補習一下功課了.
首先,我們從應用的角度來看兩者的區別.
EP本身是獨立於借貸記的一種應用,無論是應用層的通訊協議,還是相關的交易流程,與借貸記應用都有很大的差別. 它的出現是為了滿足小額支付的需要, 可以說是PBOC專門為小額支付的推廣制定的一個應用.
電子現金的概念出現在PBOC 08年修訂版新加上去的規範 <<基於借記貸記應用的小額支付規範>>裡,它實現的功能跟電子錢包相差無幾,就是最基本的三個功能,圈存,消費,查詢餘額. 那為什麼人民銀行後來會增加這樣的一個基於借貸記的"山寨"應用呢? 這個我們不得而知. 個人的看法是,國內目前PBOC還處於起步階段, 這種電子現金的應用,可以作為PBOC的小範圍推廣應用(主要是因為它支援小額度離線消費),對使用者來講,在一些服務行業實現小額支付的功能,而且因為它本身是基於借貸記的, 未來時機成熟了,可以不用換卡, 直接過渡到全國範圍內的借貸記應用.
站在開發者的角度,我們需要剖析EP與EC的區別. 分以下幾點:
1 交易流程上的差別. EC因為是基於供借貸記,從讀取支付系統目錄,到終端風險管理,一直到交易結束,嚴格來說每一步都必不可少,完全遵守借貸記規範. 而EP本身是獨立於借貸記的,或者說它不同於EMV的規範。它在安全管理,風險控制方面並沒有EMV那樣嚴格, 因為畢竟是做小額消費的, 本身風險就不大. 也正是出於安全管理方面的差異,EP的交易流程與EC存在一些差異, 具體的差異可以參見<中國金融積體電路(IC)卡規範>
2 APDU的差異. EP雖然有一些基本的APDU跟借貸記是複用的,但因為它本身應用上的特殊性,它自己也定義了一套專門的APDU. 比如針對圈存, 有initialize for load(初始化圈存), credit for load(圈存)等APDU指令. 而EC是基於借貸記的, 相容其APDU自不必說,另外還加了很少幾個電子現金專用的APDU,比如get data(查詢餘額)等.
3 在安全管理方面, EP,EC也是有很大差別的. EC由於是基於借貸記,在安全規範方面也肯定要符合借貸記的標準,自然安全方面的要求要高過EP. 比如一個基於EC的交易肯定要具備終端風險管理,終端行為分析,卡片行為分析等操作, 而EP就沒有這些要求. 下面拿聯機圈存安全認證流程舉個例子來說明EP和EC在安全管理上的差異:
我要對一張基於EP的IC卡做圈存,首先我向卡片發初始化圈存指令, 卡片會生成一個MAC1, 這個MAC1是卡片用本身的金鑰,把一些必要的輸入資料(比如圈存金額),用3des演算法生成的一個報文鑑別碼, 這個MAC1隨後被送往後臺,後臺解密這個MAC1,從而驗證卡片的合法性. 如果驗證成功,後臺生成一個MAC2返回給終端機,當終端對IC卡髮圈存指令時,要把這個MAC2一起發給IC卡,卡片以同樣的原理驗證後臺的合法性,如果驗證成功,才更新卡上的金額, 圈存成功.
再來看看EC是怎麼來做圈存的. 終端向卡片發產生應用密文指令,卡片收到該命令,內部基於3des演算法產生應用密文ARQC, 這個有點類似於上面的MAC1. 終端聯機上送這個ARQC,後臺用這個ARQC驗證卡片的合法性,如果驗證成功,會產一個授權響應密文ARPC, 終端用ARPC給卡片發外部認證命令,這樣卡片就可以驗證後臺的合法性,只有驗證成功,終端才會向後臺申請圈存指令碼, 後臺驗證通過,髮圈存指令碼到終端.
從上面可以看出, 在圈存的方式上,雙方合法性驗證上的原理本質上是基本相同的, 不過EP的圈存指令是由終端機發起的,而EC的圈存指令則是後臺驗證合法性通過發來的指令碼, 終端僅做解析,然後轉發到IC卡.
就目前的情況來看,無論是金融機構(比如銀行), 還是一些非金融的行業機構, 在推廣金融IC卡小額支付的應用時,都是優先選擇EP, 因為無論是卡片,還是終端(POS,圈存機等),開發基於EC的應用,複雜度都是要大過EP的. 舉個例子, 基於EC的POS終端要求具有離線資料認證能力,必須同時具備SDA和DDA, 而這種認證的原理是基於非對稱的RSA加密技術, 而EP的POS終端就沒有這個限制, 可以用傳統的複雜度小一些的des加密技術.