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