【发布时间】:2015-03-24 11:37:46
【问题描述】:
假设一名员工使用 NFC 安卓设备通过读取固定在墙上的非接触式 javacard 来报告他的位置,每个人都可以访问。
- 员工用智能手机扫描 javacard,只发送时间戳
- 非接触式 javacard 接收时间戳,添加其 UID 并使用存储的公钥加密并发送回
- Android 接收到加密消息并将其中继到保存私钥的服务器(可能由于缺乏连接而留在队列中)
- 服务器解密消息并检查信息是否有效并返回报告。
具有双接口的 JCOP31 Java 卡是否足够匹配?
整个想法是不惜一切代价避免卡/标签克隆。
我从未做过任何类型的 javacard 实现,我很想听听您对这一系列事件和架构的反馈。
【问题讨论】:
-
问题是您的 javacard 小程序无法访问其硬件物理 UID...
-
它必须在其生命周期的某个预个性化阶段将 UID 存储在 EEPROM 中。
-
您能否扩展预个性化阶段?
-
好吧,在将非接触式卡放到野外并将 UID 上传到 Javacard 小程序的持久内存 (EEPROM) 之前,您必须通过一些受信任的设备读取 UID,因为您无法访问来自您的小程序的 UID(这是一个硬件属性)(因为它无法退出其软件沙箱)。
-
警告:似乎在您的协议中,任何人都可以要求签名,并且可以接受任何时间戳。只是一个小小的旁注:)