【问题标题】:Access Secure element in Android访问 Android 中的安全元素
【发布时间】:2012-03-19 04:51:38
【问题描述】:

我们如何访问 Android 手机中的安全元素。 基本上我需要存储一些安全数据并检索它,我只希望我的应用程序访问这些数据。请让我知道执行此操作的步骤。

【问题讨论】:

  • “安全元素”是什么意思?那可以是 SIM 卡,或者您在通信范围内使用 NFC 令牌标记了问题(或者您的意思是不同的)?
  • 嗨罗伯特,我想知道是否有任何 api 可以找到安全元件的类型(SIM 或集成芯片等),如果有,如何读取/写入数据到安全元件?听说我们需要从 MNO 获得证书,但我不知道如何实施。根据 AerandiR,Google 不提供任何开箱即用的 API。

标签: android nfc secure-element


【解决方案1】:

虽然 Android 确实支持安全元素并且内部有一些与之相关的代码,但目前没有相应的 Java API (see available NFC APIs)。然而,有一项名为 SEEK 的工作是创建一个用于与 SE 通信的开源堆栈 (see the GitHub project),但这不是 Google 的官方实现。上次我听说 Google 似乎倾向于不提供这样的 API。

【讨论】:

  • 谢谢!看来还是等 Google 发布 API 比较好!
  • 6 年后,您的问题仍然相关。介意恢复它吗?
【解决方案2】:

将数据存储在android的sqlite数据库中。

这将存储在应用程序沙箱中,以便其他应用程序无法访问它们,除非您通过 Content Provider 提供公共 URI 来访问它们。

【讨论】:

  • 如果手机被root或以某种方式受到损害,该信息也将可用。 Secure Element 没有这个缺点。
【解决方案3】:

如果您要存储的元素很少..那么您可以尝试使用共享首选项...它们很容易从您的应用程序中创建、检索和修改值..并使它们对您的应用程序私有..使用

getSharedPreferences(yourfile, MODE_PRIVATE);
this make the file" your file" private for the application which created it..

现在如果你有大量的值.. 那么 sqlite 数据库更好..

【讨论】:

    【解决方案4】:

    默认情况下,安装期间的每个应用程序都分配有唯一的 Linux 用户 ID (UID)。此外,在安装过程中,会为每个应用程序创建一个所谓的主文件夹(您可以将其想象为普通 Linux 的用户主文件夹)。在 Linux 中,默认情况下只有文件夹的所有者(我们不考虑 root 用户)可以访问主文件夹,就像在 Android 中只有具有特定 UID 的应用程序才能访问主文件夹一样。因此,您的应用程序可以将数据存储在它们的主文件夹中,并且 Linux 内核将确保没有其他应用程序可以访问该应用程序的主文件夹。

    因此建议您可以将数据存储在 sqlite 数据库或 sharedpreferences 文件中,默认情况下存储在应用程序的主文件夹中。

    【讨论】:

      猜你喜欢
      • 2010-10-16
      • 2012-05-16
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2015-10-18
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多