2

我试图更好地了解 Android 手机上的安全元件如何与卡模拟模式下的读卡器交互。对以下问题的任何见解都会很有用。

理论上(基于硬件设计),与读者交流时是否一定要经过SE?如果我对发送私人数据不感兴趣,是否可以直接“收发”给读者?如果是,那将如何运作?

如果你必须通过 SE,从概念上讲,它是如何工作的?例如,假设一个阅读器发送了一个 SELECT AID 命令……大概,android 主机查询 SE 以获取 SELECT AID 命令。如果主机想要响应 SELECT AID 命令(假设是动态响应),主机是否通过 SE 将响应发回?我已经阅读了很多关于查询 SE 以获取信息的内容(例如 ISO 7816-4),但还没有理解这最后一点。你如何向读者发送回复?

4

2 回答 2

3

这是针对当前一代的 NFC 芯片,下一代更加灵活:

从 NFC 芯片来看,该芯片有两个不同的主机,即 Secure Element 和 Android 主机。

NFC 芯片还知道哪个主机在 NFC 芯片上打开了哪种操作模式(例如点对点、读卡器模式、卡仿真模式等)。

属于一种操作模式的请求和事件只会发送到已经打开该操作模式的主机。

对于安全元素,最常见的“移动支付”配置是 SE 在 NFC 芯片中打开卡仿真,而 android 主机打开读卡器模式和点对点。

如果 NFC 芯片检测到外部读取器,则所有通信将仅发送到 SE。Android 主机将看不到 SE 和外部阅读器之间交换的任何数据。然而,android 主机可能会看到在天线处检测到外部射频场,因此 android 知道发生了什么事。

在 SE 上运行的软件通常由一个小型操作系统组成,该操作系统管理多个应用程序,解析 SELECT AID 命令并将请求转发到与 AID 匹配的任何应用程序。

在 SE 上运行的应用程序可能会决定稍后将数据发送到 android 主机。这些事件称为事务事件,是一种单向通信。android 主机无法回复 SE 发送的事务事件。

android 主机也将无法通过 NFC 芯片向 SE 发送数据。如果它想直接与 SE 通信,例如安装一个新应用程序,它必须使用另一个物理连接,通常是 sim-card 引脚或 micro-sd 引脚。

为了完整起见:NFC芯片中还内置了嵌入式安全元件。它们没有任何物理连接,NFC芯片允许android主机和SE主机之间的双向通信。

于 2012-06-22T09:28:17.083 回答
0

从理论上讲,与读者交流时没有必要“通过 SE”。如果 NFC 芯片能够生成卡的射频信号(某些 NFC 芯片可以),手机可以直接向读卡器发送响应。当然,您需要一个 API 才能从您的应用程序访问此功能。Android ICS 没有这样的 API(相比之下,BlackBerry OS 有)。

于 2012-06-22T11:16:56.493 回答