- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
通过引入 HCE,无需安全元件 (SE) 即可模拟卡。因此,没有存储空间来保存模拟卡的应用程序的敏感信息,例如余额、CVV2、PIN 等。
我只想知道android是怎么解决这个问题的?应用的敏感信息应该存储在哪里? Google 电子钱包是否使用此技术?如果是,如何保证敏感信息的安全?
更新 1:Web 上的一些链接在使用 HCE 时提到了基于云的 SE (Cloud SE),但我不明白这个 Cloud SE 到底做了什么。关于此主题的任何链接、文档或更多 Material ?
最佳答案
HCE 带来的主要特性是,当 NFC 设备处于卡仿真模式 (CEM) 时,所有来自 NFC Controller 的数据默认路由到设备的 CPU(读取 Android 操作系统)。这不是以前的情况 - 当 CEM 中的默认路由指向安全元素 (SE) 时。在操作系统内存中存储敏感数据会引发严重的安全问题——你问过的问题——在设备“root”的情况下。有两种方法可以减轻这些安全风险:
A) 为敏感数据提供更安全的位置
这个“更安全的位置”可以是可信执行环境 (TEE) - CPU 的特殊部分,它运行自己的独立操作系统,因此在主操作系统被 root 时不会受到损害。在安全规模上,TEE 提供的安全性高于 OS 和“云端 SE”,但低于 SE。如果 TEE 不够用(例如开环支付、身份验证服务 - 身份证、护照等服务),没有人会禁止您在提供 HCE 服务的手机上使用 SE。在这种情况下,可以通过使用路由表来阻止到 CPU(Android 操作系统 HCE 服务)的默认路由(用于具有特定 AID 的应用程序的数据被路由到 SE)。
B) 实现安全机制,使现有位置更加安全
如果您没有 TEE 并且不能使用 SE,您可以使用以下技术使事情变得更加安全:用户验证(“用户知道”的东西,例如 PIN,如果可能的话甚至更好“用户知道的东西”是”- 生物识别技术)、交易约束(低值(value)交易、一个时间范围内的交易数量有限等)、标记化、在交易前进行 Android 操作系统检查(即用户是否拥有根权限)等。
最好是结合A和B。
您需要了解的是,HCE 不适用于高安全性服务。将 HCE 视为更简单但安全性较低的解决方案,旨在加速 NFC 服务的采用。对于可以接受降低的安全级别以换取上市时间、开发成本和与其他方合作的需要等其他因素的改进的 SP,它具有很大的附加值。
您可以在 Thom Janssen 和 Mark Zandstra(来自 UL-TS(前 Collis)的人)编写的名为“HCE 安全影响”的文档中阅读更多相关信息。您可以从这里下载:http://www.ul-ts.com/downloads/whitepapers/finish/6-whitepapers/289-hce-security-implications .
关于android - 基于软件的卡仿真 (HCE) 如何保证 NFC 安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23321217/
Kitkat HCE(NFC) 设备可以与另一台 Kitkat HCE(NFC) 设备通信吗? 我想编写应用程序将数据从一台 Kitkat HCE(NFC) 设备传输到另一台 Kitkat HCE(N
我创建了一个 Android 应用程序,它使用 Host Card Emulation 来模拟非接触式智能卡。现在,在真正的智能卡和应用程序都靠近读卡器的情况下,我想用我的 HCE 应用程序完全隐藏智
我一直在开发需要实现触碰付款的应用程序。我能够将 HCE 服务与 NFC 终端连接。 现在我的问题是接下来的步骤是什么,用它进行实际付款? 我到处搜索,但找不到合适的文件。请帮我。 下面是我编写的将
随着越来越多的设备拥有 KitKat,我正在尝试编制支持 HCE 的设备列表。 有人有名单吗?随意添加评论以对此列表做出贡献。 以下是我到目前为止所拥有的: 笔记: 并非所有 KitKat 设备都支持
我正在 Android 上制作 Host Card Emulation 应用程序,在我的 PC/SC 读卡器上一切正常。我能够发送 APDU 命令并获得响应。现在我想知道是否可以使用 Android
我正在开发一个手机钱包应用程序,但我遇到了一个问题,即屏幕锁定时我无法付款。尽管我将手机放在 POS 终端上,但 HostApduService 不起作用。你知道谷歌钱包在没有密码或密码/图案的情况下
我正在尝试使用 ACR122 NFC 阅读器来选择在一个使用 Android 主机卡仿真的 Nexus 5。但是,小型 AID 不是认可。 我的目标是使用三字节长的 AID,就像我在 DESfire
我正在尝试开发一个在 Android (4.4) 上通过 HCE 模拟信用卡的应用程序。我有一个可以从 NFC 标签读取的目标应用程序,我现在希望通过在我的设备上模拟 NFC 来实现相同的结果。该应用
我目前正在为我的 Galaxy s4 开发 HCE 实现。我有一个支持 7816-4 的 Omnikey 5321-cl 阅读器。我的 android 类看起来像这样: public class Nf
我正在对基于 HCE 的支付进行 POC。 我有一部支持 NFC 的手机来运行应用程序,但没有支持 NFC 的读卡器。有什么方法可以模拟读卡器(在 POS 上)? 谢谢,uq 最佳答案 如果您正在开发
每次用户使用基于主机的卡仿真 (HCE) 开始 NFC 交易时,我都需要启动我的应用。 我不需要管理交互。我不需要来自阅读器或 NFC 模拟器的任何类型的数据。我无法控制使用该服务的应用程序。我只需要
我的应用程序的 AID 是 F239856324897348,我已经为它构造了一个 SelectAID APDU。现在我如何将它实际发送到使用主机卡仿真的接收 Android 设备。 我已经创建了我的
我想实现一个可以支持某些类型卡片的应用程序。我想了解以下内容: 我能否使用 HCE 模拟不同类型的卡,例如非接触式支付卡? 我需要什么来实现它? 最佳答案 我可以使用 HCE 模拟不同类型的卡吗? 这
首先,我对编写 Android 应用程序还很陌生。我的编程语言是Java。我在网上搜索了解决方案,问了其他程序员没有解决方案。 情况:我开发了一个使用 HCE 服务的应用程序。此应用程序由另一台设备触
有没有一种方法可以在我的 ADT IDE 中使用模拟器在 Android 4.4 上使用 HCE(主机卡模拟)模拟 NFC 交易?...是否有支持 HCE 的模拟器可用?基本上我想做的是开发一个应用程
我想编写一个可以存储唯一 ID 的程序,然后将其作为 NFC 标签发送到另一个 NFC 读取器设备。如何将我的代码 (nfcTag) 发送到 NFC 阅读器?我可以在没有 AID 的情况下执行此操作吗
我想使用我的 Android 手机作为阅读器与我的 Android HCE(主机卡仿真)应用程序通信。在互联网上,我找到了 ACS Reader(PC Reader) 的示例客户端应用程序代码。相反,
我想用 Android 的 HCE 功能模拟主机卡。为此,我扩展了服务类 HostApduService 并覆盖了以下方法: public byte[] processCommandApdu(byt
Mifare Classic 是最常用的卡,我不明白为什么 HCE(基于主机的卡仿真)只支持 ISO 14443-4,而不支持 Mifare Classic 类型。 因为 NXP 阻止他们使用他们的专
通过引入 HCE,无需安全元件 (SE) 即可模拟卡。因此,没有存储空间来保存模拟卡的应用程序的敏感信息,例如余额、CVV2、PIN 等。 我只想知道android是怎么解决这个问题的?应用的敏感信息
我是一名优秀的程序员,十分优秀!