问题标签 [secure-element]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
34 浏览

android - 如何识别安全元件?

有什么方法可以识别特定的安全元件吗?

用例是我想在 SE 上安装一个小程序,并确保在启动下载的设备上安装了一个小程序。换句话说,TSE 如何禁止中间人攻击。

我已经浏览了全球平台网站上的规范,但由于这是我第一次直接使用规范,我发现很难找到解决大量信息的方法。

0 投票
1 回答
850 浏览

android - 我可以在 Android Pixel 3 安全元件上使用 OMAPI 做什么?

新的 Android Pixel 3 包含一个名为 Titan M 的安全元件。

首先,我想知道是否可以通过使用 Android 9 上现在可用的 Open Mobile API(android.se.omapi 包)与这个安全元素进行交互。

其次,我查看了这个 OMAPI,发现它允许使用智能卡的 ISO 7816 协议向应用程序发送 APDU 消息。所以我想知道我可以与什么样的应用程序交互。

如果可能的话,我的目标是在 Titan M 安全元件中插入一个 JavaCard 小程序,并使用 OMAPI 将 APDU 发送到这个小程序。有没有人尝试过这样做?我很乐意收到有关使用此 API 和 Pixel 3 可以做什么的任何反馈。

谢谢。弗兰克

0 投票
1 回答
268 浏览

javacard - 如何将 Java Card 小程序加载到三星 S8 嵌入式安全元件中

我想使用 Open Mobile API(也称为 OMAPI,在 Android 9 上可用)来访问我从 Android 应用程序开发的 Java Card 小程序。我希望将小程序存储在三星 S8 嵌入式安全元件 (Gemalto eSE) 上。

我已经检查过这个安全元素是否可以通过带有 Android 9 的 S8 上的 Open Mobile API 看到。但我不知道如何加载我在安全元素中制作的小程序。

是否有人已经尝试过这样做,无论是在三星设备上还是在嵌入金雅拓 eSE 的设备上?

0 投票
2 回答
2707 浏览

android - 在 API 28(Android Pie) 上支持 Android StrongBox 的 Android 智能手机列表

我需要在 Android 9 中支持安全元素和 StrongBox 的 Android 手机列表。我在哪里或如何找到它?

我用三星 Galaxy S9 和 AVD Google Pixle XL API 28 尝试了下面的代码

它抛出以下异常:

android.security.keystore.StrongBoxUnavailableException:无法生成密钥对

0 投票
1 回答
686 浏览

android - 在 SSLContext 中使用硬件支持的密钥

我想在我的 Android 上为客户端双向 TLS 使用硬件支持的密钥。应使用生物识别技术解锁钥匙。

我发现了如何在 Android 上生成硬件支持的密钥对:

以及如何使用指纹解锁硬件支持的私钥:

我还可以将我的 HttpClient 配置为使用客户端证书:

但是,我没有找到直接解锁硬件支持的私钥以在 SSLContext 使用的 KeyManager 中使用的方法,因为解锁机制适用于加密对象而不是私钥。

如何使生物识别密钥解锁和 TLS 客户端证书在 Android 上协同工作?

更新

KeyProperties.PURPOSE_SIGN在@pedrofb 点之后,我更新了我的代码以使用and生成密钥对KeyProperties.DIGEST_NONE。我使用导入到服务器信任库的 CA 签署了客户端密钥对。以及基于 AndroidKeyStore 创建客户端的 KeyManager:

然而,这失败了

0 投票
1 回答
150 浏览

android - NFC 触碰付款广播接收器

Tap & Pay我正在研究当有人在设置中的选项中更改默认支付应用程序时,当前是否有办法接收广播事件

我发现与此相关的文章是https://developer.android.com/reference/android/nfc/NfcAdapter#ACTION_PREFERRED_PAYMENT_CHANGED ,它将添加到 Android R 中。

android 应用程序是否可以在启动时检测到它是否是Tap and Pay选项中设置的默认应用程序?

任何帮助表示赞赏,谢谢!

0 投票
0 回答
172 浏览

android - Web 应用程序能否通过移动浏览器使用 Secure Element(或 Enclave)?

本机移动应用程序可以使用安全元素(或Enclave),例如生成和使用私钥来加密和签署数据。这些私钥存储在移动设备的硬件中,即使是手机制造商也无法访问,从而赋予它们极其强大的安全属性。

我想在网络应用程序中拥有相同的功能(因为它不需要安装,所以可以更广泛地使用)。这可能吗?

我已经搜索了网络,但没有找到任何关于此的好信息。原则上,移动浏览器(因为它们本身就是本机应用程序)似乎可以像使用任何其他应用程序一样使用安全元素。事实上,作为一个例子,我很确定他们正在使用它来通过WebAuthn启用身份验证,它使用密钥对和存储在设备上的私钥。但是......据我所知,浏览器不会公开对网络应用程序的访问。

任何有关这方面的信息将不胜感激!谢谢

0 投票
1 回答
951 浏览

nfc - 发送数据、使用 HCE 还是使用安全元件?(Android、Kotlin、Mifare 1k)

我正在尝试实现模拟 Mifare One(1K/S50,ISO14443A)芯片的功能,以便能够使用具有 NFC 功能的手机而不是物理 Mifare 卡,或者如果可能仅将数据发送到读卡器。

我有这种类型的阅读器/编写器:https ://www.evelta.com/er302-high-frequency-nfc-writer-usb/

在浏览了论坛,stackoverflow 问题后,我发现这篇文章是最好的例子:

https://medium.com/the-almanac/how-to-build-a-simple-smart-card-emulator-reader-for-android-7975fae4040f

我实现了 HCE 部分,运行程序,读者认为我的手机是 Mifare 芯片,到目前为止一切都很好。

我的问题:

  • 无论我尝试使用什么“标准”身份验证密钥......它都会给我身份验证错误。我读了这个关于 Auth: Authentication failure for Mifare 1K NFC tag using ACR122U NFC reader的问题,它适用于物理 Mifare 卡......但我不知道如何设置或了解模拟的密钥。

  • 我不明白为什么这个例子模拟了确切的 Mifare 芯片类型......即使断点在 APDUService 中也不起作用,但是阅读器以某种方式检测到 Mifare 便宜。

读完之后,我发现我不能 100% 模拟物理卡,所以我必须以某种方式在我的 APDU 响应中发送我想要的所有数据(我相信这是收发部分)。

但是我什至无法进行身份验证。

我试图寻找其他可能的解决方案:

  • AndroidBeam : Android - Android p2p...听起来很简单,相对高级的 API,它已被弃用,而且不保证阅读器甚至会使用 Android...它可能是一个“简单”的 USB 阅读器硬件,就像那个我用。

  • SecureElement:具有讽刺意味的是……它似乎是最推荐的,我读到“是的,mifare 有可能”之类的东西,我找不到一个很好的例子,谷歌官方文档也没有任何好的例子。我读到它适用于“ISO/IEC 7816-4”,但 Mifare 1K 是 ISO14443A,所以我对这个 API 有点怀疑。

  • 简单地”将数据发送给阅读器:如果我可以在阅读手机时简单地将数据“推送”给阅读器,而不会使事情复杂化或模拟任何事情......那就太好了,但我不知道是否这甚至是可能的。整个 NFC 话题似乎越来越复杂。

所以总的来说,我只需要做一件事:获取数据并将其发送给阅读器。

我意识到这是一个童话般的幻想,相信它听起来很简单,但我希望有办法做到这一点。

如果我可以自己发送数据,而无需模拟 Mifare 或其他任何东西……毕竟重要的是卡上的数据,而不是芯片的类型,解决方案越简单越好。

对于可能的英语语法错误,我们深表歉意。

0 投票
1 回答
57 浏览

android - 什么是 CPLC(卡产品生命周期数据)?CPLC 在支持 NFC 的智能手机中有什么用途?

如果我们在任何支持 NFC 的智能手机中选择 NFC SE 选项,则会显示 CPLC 编号。它是一个很长的数字,以 9F7F 开头。这个数字是多少,它的重要性是什么?

0 投票
1 回答
45 浏览

linux - 使用 OpenSSL 的 Mosquitto 桥接器

我通过本地代理有一个带有 MQTT 的嵌入式 Linux 系统。应用程序充当本地代理的 MQTT 客户端,本地代理被设置为与云代理的桥梁。

要在本地和云代理之间启用 TLS,mosquitto.conf 中有一些选项,例如bridge_certfile使用文件系统上的密钥,如本问题Mosquitto 文档中所述。

如何设置 Mosquitto 桥以将OpenSSL用于 TLS,以启用安全元件用于私钥存储?