无法克隆的NFC智能卡

问题描述 投票:-1回答:1

首先,我要向大家道歉。我在这方面完全是个菜鸟,我的很多想法可能会误导大家。

我需要验证我的应用程序的用户是否在一个特定的地方,以便被授权执行一个动作。我想使用NFC来实现这个目的。用户必须将他的智能手机放在一个NFC标签上,才能被授权执行该操作。很容易,但我需要它是合理的防黑客攻击。这意味着NFC标签必须是不可能被克隆,而不会对NFC芯片周围的塑料造成物理损坏。这也意味着NFC芯片不能只包含静态数据。NFC芯片必须包含一个应用程序,它可以接收一些数据(加密挑战),并使用安全的内置私钥(必须是无法通过NFC接口读取的)对它们进行签名。当用户想要执行操作时,他会向服务器索取挑战,然后让芯片进行签名,然后他将签名后的挑战发送回服务器,服务器将使用已知的公钥验证签名。这应该是可以用NFC JavaCard实现的。但是这些NFC JavaCards真的存在吗?我无法找到一家能够为我生产这种NFC标签的公司。当我试图向一个NFC标签生产商解释我的要求时,他就像从来没有听说过NFC JavaCards一样。我尝试了10家生产商,但都没有成功。

一个普通的芯片能满足我的要求吗?我指的是Mifare家族的芯片。我怀疑Mifare DESfire可能能满足我的要求,但我不确定。

欢迎用广告来回复,因为相关的广告正是我所寻找的:)

nfc smartcard rfid javacard mifare
1个回答
1
投票

我试图收集一些有用的事实。

  • NFC是一个非常广泛的术语,只是发现双方并不能确保互操作性。
  • 任何符合ISO 14443(NFC风味之一)的具有加密功能的智能卡都应该可以使用。需要注意的是,具有本地操作系统的卡片可能是JavaCard的一个可行的替代方案,因为随机数字签名的功能是非常标准的。
  • 任何带有NFC芯片的智能手机原则上都可以使用这种卡。不幸的是,这很大程度上取决于智能手机的操作系统,对于安卓系统来说,要使用的相关类是 同位素(IsoDep)触发 "卡进入现场 "事件后,应用程序会收到一个句柄,通过这个句柄可以进行进一步的通信。触发 "卡进入领域 "事件后,应用程序会收到一个句柄,通过这个句柄可以进行进一步的通信。
  • 真正的智能卡是不能被克隆的,因为你不能丢弃它们,尤其是钥匙不能被读取。

现在有些事情需要考虑。

  • 你的方法看起来很不寻常,这可能会成为一个问题。(以某种方式将便携式卡片固定在墙上,只是为了获取位置;这样你就知道有人在哪里,但不知道是谁?虽然我不认为克隆是一个问题,但你必须以某种方式确保在盗窃企图的情况下销毁,这可能会与下面的距离主题相冲突)。)

  • 我不明白,服务器的作用在哪里。如果不参与授权行动,提供一个随机数并不是充分的理由。

  • 非对称密钥操作的功耗比较大,而这个功耗必须通过电场来提供。这严重限制了卡和手机之间的距离,甚至可能需要直接触摸。虽然本身的电源原则上可以解决这个问题,但这不是ISO-14443的设计目的。


1
投票

是的JavaCards确实存在。

https:/github.comOpenJavaCardopenjavacard-ndef。 是一个项目,使这些JavaCards输出标准的NDEF消息(思想注意问题4中,有一个例子使用了错误的APDU,但这是很容易改变)。

这个项目也给了一些卡,它是完全可以工作和测试的。

ACS ACOSJ - fully working
NXP JCOP J3D040/J3D081/J2E145 etc - fully working

ACS和Cardlogic都是做卡的(只需谷歌一下型号),如

https:/www.acs.com.hkenproducts405acosj-java-card-combi

https:/www.smartcardfocus.comshopilpid~707j3a081-80kpindex.shtml

© www.soinside.com 2019 - 2024. All rights reserved.