Android NFC手機(jī)如何實現(xiàn)卡模擬
問題:Android NFC手機(jī)如何實現(xiàn)卡模擬?
描述:Android NFC手機(jī)如何實現(xiàn)卡模擬?最近HCE技術(shù)被廣泛宣傳,其中關(guān)于Android NFC手機(jī)卡模擬收到開發(fā)者和應(yīng)用系統(tǒng)集成商的青睞,如何用Android NFC手機(jī)實現(xiàn)卡模擬呢?
答案:在技術(shù)上可行,但是,對一般開發(fā)人員來講有兩種方式:一種是基于硬件的,被稱為虛擬卡模式(Virual Card Mode);一種是基于軟件的,被稱為主機(jī)卡模式(Host Card Mode)。
在虛擬卡模式下,需要提供安全模塊SE,NFC芯片作為非接觸通訊前端,將從外部讀寫器接收到命令,轉(zhuǎn)發(fā)到SE,然后由SE進(jìn)行回復(fù)。
外部讀寫器 <---> NFC芯片 <---> SE。
而在主機(jī)卡模式下,不需要提供SE,而是由在手機(jī)中運行的一個應(yīng)用完成SE的功能。
NFC讀寫器 <---> NFC芯片 <---> 主機(jī)上的應(yīng)用。
什么是“SE”呢?
SE可以理解成一個CPU卡,一般是帶有JAVA虛擬機(jī)的CPU卡,即JAVA卡。帶有NFC芯片的手機(jī)一般都帶有SE(也可能有例外),例如 GOOGLE NEXUS手機(jī)的PN65N,就是PN544芯片加SmartMX安全模塊。此外,SE也可以是特殊的SIM卡或SD卡。
根據(jù)SE硬件的不同,SE與主機(jī)的硬件接口也有所不同。對內(nèi)置的SE,一般是NFCWI接口,而SIM和SD卡可能是SWP接口。應(yīng)用接口協(xié)議是
ISO7816-4,即CPU卡APDU命令。熟悉CPU卡的都知道,沒有密鑰,根本無法完成對卡的寫操作。因此需要SE的操作密鑰。但不幸的是,這些密
鑰都掌握在手機(jī)廠商(內(nèi)置SE的情況),例如三星,HTC,或移動運營商(SIM的情況),或者銀行等安全模塊提供商(SD卡的情況)手中,一般開發(fā)人員
是得不到這些權(quán)限的。