手机可以模拟NFC卡片吗?项目中如何解决不能模拟NFC Tag UID的问题

Android, BlackBerry都提供了模拟NFC卡片的API,理论上可以用手机模拟出一张饭卡,交通卡,甚至银行卡去进行身份认证,交易了,是不是很开心,心情很激动啊?


且慢

实际情况是

应用场景:

  •  国内大部分,99%的卡片是最便宜的M1卡片,而且整个系统只适用了卡片的UID数据。
  • NFC卡片的UID在卡片出厂下生产线的时候,就不能再修改了!


手机能否设置NFC UID?

  • 手机不能模拟出NFC卡片上固定或者是指定的UID,
  • 换句话说,手机上模拟出的NFC卡片的UID是随机+动态的
  • 手机上没有指定UID的API     (早期Android, BlackBerry手机都提供了设置UID的API,但出于安全考虑,短短半年时间后就都分别禁用了这个API)

解决办法?

  • 改造读卡机具,改造后台认证系统

    读卡机具读NFC卡片的标识和其他数据区域,判断卡片是普通的NFC卡片,还是更加安全的NFC手机;

    如果是NFC手机,读卡机具读出NFC卡片的其他数据区域(手机模拟的NFC卡片上其他区域的数据可以是设置指定的,可以做加密,甚至象RSA Token那样做动态更新),到后台进行身份认证成功。

    如果是普通的NFC卡片,读卡机具读出NFC卡片的UID,到后台进行身份认证成功。




参考:

十问Android NFC手机上的卡模拟

用NFC手机可以开的酒店门锁( 国产)

NFC门锁(国外)

你可能感兴趣的:(手机可以模拟NFC卡片吗?项目中如何解决不能模拟NFC Tag UID的问题)