Android 手机模拟 Mifare 卡的设计与实现

含有内嵌式安全元件的 NFC 芯片的 Android 手机可以替代校园一卡通的 Mifare 卡,可直接被已有的射频终端读取。

Android 手机替代 Mifare 卡用的是 NFC 工作模式之一卡模拟模式,非接触通讯前端由安全模块 SE和 NFC 芯片组成,NFC 芯片作为安全模块和外部读卡器的连接站,负责中转命令,即接收来自外部读写器命令,接收成功后并转发命令至安全模块 SE,然后由安全模块 SE 回复命令至读卡器,期间要经过NFC 芯片转发。其中安全模块 SE 为 JavaCard 智能芯片。而在卡模拟模式下,NFC 全终端方案为三种
通信方案之一,是指将安全模块 SE 集成到手机中,即 SE 在手机的设备主板上,或与 NFC 芯片联合组成专用芯片,或直接集成到 NFC 芯片,不能从手机上移除。

JavaCard 技术将安全单元 SE 分割成若干个小的智能卡单元,使智能卡单元具有一个中央处理和一个存储器。智能卡单元的处理器为 8 或 16 位,工作频率为 3. 7 MHz,其存储器可为 1 K RAM( 随机存取存储器) ,16K EEPROM(可编程只读存储器)和24K ROM(只读存储器)等多种。Java Card 技术使每个智能卡单元具有开发环境与工具———JCDK(Java Card Development Kit),JCDK 包含 JCRE( Java Card Runtime Environment )———Java Card 运行环境,JCVM( Java Card Virtual Machine) ———Java C and 虚拟机,API( Java Card Application Programming Interface)———开发应用程序的接口工具。我们可以根据 API 开发相应的智能卡单元实现不同的功能。API 如下: Javacard. framework 包是框架包,Javacard. security 包是基于 Java. security 包上设计,为Java 卡平台构架相关密码功能,javacardx. crypto 包是个扩展功能包,它规定了受美国输出标准约束的密码类和相关接口,同时也定义了可被继承的抽象的 Cipher 类用来支持加密功能。
通过 JavaCard 技术对带 NFC 功能的 Android 手机安全单元分割成多个区块智能卡,多个智能卡应用(Java Card Applet)可在 Java Card 平台上安全运行,每个应用程序都会被 Java Card 平台分配一个独有的运行上下文环境,各个环境互相隔离,不干扰对方,所以 Java Card 使用技术可开发多个 Applet 应用。读卡器需要识别各自的 Applet 应用,要防止未授权的服务器对智能卡中的应用进行非法读写。由于 NFC 技术完全兼容 Mifare 技术,只要 NFC 芯片中含有 JavaCard 则完全可替代 Mifare 卡。

你可能感兴趣的:(android,java,apache)