Android和Symbian NFC移动开发问答(FAQ)

STe*_*TeN 8 android symbian rfid nfc sim-card

让我们分享关于NFC开发,技术的常见想法......我热烈欢迎您提出任何意见 - 无论是关于Android还是Symbian SDK,还是关于NFC的一般意见.

从我的角度来看,一般的问题是我们可以开发什么,即我们可以通过NFC技术为市场带来哪些应用?我们如何才能让开发人员从NFC赚钱并从中获益?

我认为NFC有望为开发人员提供众多服务和可能性 - 但这是真的吗?NFC和其他无线技术(BT,WiFi)之间的区别在于它已经带有主要用例 - 支付,交通票和钥匙(建筑物访问).但对于所有这些用例,您需要一个安全元素,即

  • 要么由手机制造商控制,例如谷歌 - 请参阅谷歌钱包,它在Nexus S上专门使用内置的恩智浦SecureMX(如果我们不想破坏安全性,这是很难改变的),
  • 或通过SIM卡上的UICC访问(在Android和Symbian /和MeeGO /手机上); 这里必须与运营商达成协议.

但是在一个国家拥有3到4个运营商,对于一家中型公司而言,他们允许在SIM卡上运行applet的可能性有多大?那么更多的全球解决方案呢?所有上述服务/用例需要所有参与者和完善的生态系统(银行,MNO,NFC芯片生产商,电话制造商,TSM ......)进行大量协调.

它们仍然是p2p应用程序的选项,标签读取 - 但手机中已经内置了许多功能,所以这看起来并不像金矿......

我认为如果手机将包括NFC-WI(S2C)- 具有此接口(由ECMA指定)和具有NFC-WI支持(已由SD卡协会指定)的micro SD卡可能允许购买具有安全性的SD卡,则机会可能更大.任意公司的元素......但它不在市场上,看起来不会很快出现.

您对NFC和手机开发的愿景和体验是什么?

Fer*_*lez 14

为了更加实用,而且不仅仅是理论上的,我已经在xda开发者上发布了一些补丁,以便在当前独特的支持NFC(Nexus S)的Android手机上启用卡仿真模式.您和其他人可能有兴趣自己玩卡模拟模式.考虑到这仅用于实验目的.

它们适用于AOSP来源的姜饼版本2.3.4_r1.他们允许:

  • 在Nexus S上启用NFC卡仿真模式.此模式始终处于启用状态.
  • 禁用阅读器模式,让卡模拟成为唯一正常工作的模式.
  • 选择外部安全元件(在UICC中)而不是嵌入式安全元件(在SmartMX芯片中).
  • 虽然没有关联,但删除了蓝牙可发现性选项的时间限制.

到目前为止,我在Android上发现了有关NFC卡仿真的内容:

  • 默认情况下,库存图像上禁用卡仿真,需要修改固件.Nfc系统应用程序和libnfc-nxp系统库的更改是需要考虑的地方.
  • Nexus S内置的嵌入式SmartMX芯片呈现为双智能卡.一个可编程的(允许在其上安装小卡片)和一个4K Mifare.
  • 4K Mifare卡具有默认密钥,因此可以从外部读卡器写入/读取.
  • 可编程卡应该是GP兼容的,但除了谷歌之外没有人可以摆弄它,因为访问密钥不公开.
  • Nexus S支持SWP并允许使用位于UICC内部的安全元件进行操作.
  • 应用程序无法直接访问安全元素的任何内容.一方面,嵌入式SE无法访问,因为我们不知道密钥.另一方面,外部元件可通过SWP(连接到NFC控制器)从外部访问,但不能在内部访问,因为AFAIK SIM卡插槽未通过其他方式连接到NFC控制器.这使我们只有一条路径,即基带处理器.然而,BB固件是专有的并且由制造商控制.三星尚未实施3GPP TS 27.007技​​术规范,以便在其BB固件中与其进行交互.
  • OTA访问外部SE应该是可能的,这取决于MNO.有些可能会提供TSM服务,允许第三方访问UICC内的SE.

顺便提一下,您提到的技术(NFC-WI)已经在Nexus S中用于将NFC控制器与嵌入式安全元件互连.

Upate

总结一下,我回答Sten的问题:

由于Mifare 4K区域具有默认按键,任何使用外部NFC阅读器的人都可以更改按键并在那里安全地存储值 - 这是正确的吗?你试过吗?这有什么困难吗?

简短回答是的,我确实从外部读卡器访问了Mifare 4K.我也能修改默认密钥.困难来自修改系统源和自己构建自定义固件.

使用外置NFC读卡器是如何进入Mifare空间的唯一途径?

理论上没有.另一种方法是将APDU发送到SIM,包含要在Mifare卡上执行的Mifare命令.

安装在Android手机上的应用程序是否可以使用某些API(通过NFC控制器和NFC-WI路径)向Mifare 4K读取/写入一些数据?可以在那里寻求帮助吗?

暂时没有.虽然您使用seek-for-android修补程序修改了AOSP源代码(我自己做了),但您的应用程序只会因库存手机而崩溃.原因是他们没有实现3GPP TS 27.007技​​术规范,该规范允许应用处理器将APDU直接发送到SIM(UICC).

然而,在隧道之前可能会有一些亮点,因为法国的公司项目已经采用安全元素模式的NFC技术与Android手机,采用UICC安全元素方法.事实上,有一个改进的三星Galaxy SII型号正在使用中,新的Acer Liquid Express也将很快融入到customersy中.这些电话必须在其基带处理器固件中实现所需的TS 27.007规范.当谈到应用程序处理器时,我不知道他们是从G&D路径获取SEEK-for-android还是从Insecure获取OpenNFC.作为法国人,我会打赌全押最后一个.