如何在Android中将数据存储到Secure Element中

我想创build一个像Android应用程序的谷歌钱包。 据说“所有的支付凭证都存储在一个叫做手机中的安全元件芯片中”。 我怎样才能访问这个安全的元素,并存储我的卡凭证。 我的目标是在结账柜台使用我的手机(Nexus),而不是使用我的卡。

所以我想要的是存储一些数据到安全元件芯片,并访问数据时,我点击一个NFC阅读器。

提前致谢。

Solutions Collecting From Web of "如何在Android中将数据存储到Secure Element中"

如果您查看Google电子钱包常见问题 ,可以find以下内容:

  • 您的付款凭证存储在手机中包含的名为“安全元件”的芯片中。 安全元件与手机的主要操作系统和硬件是隔离的。 只有像Google电子钱包这样的授权程序才能访问Secure Element来启动交易。

  • 即使Google电子钱包本身对安全元素的访问权限非常有限,也无法从内存中读取或写入数据。 存储在安全元件上的数据具有多级保护,并且在硬件级别受到监听或篡改保护。

所以基本上……你无法访问这个SecureElement 。 也许与电话制造商交谈,让你访问SecureElement访问/方式将使你能够做到这一点……但我认为这将超出你的范围。

编辑:另一种解决scheme可以将您的数据存储在SQLite数据库中,也可以使用该数据库上的encryption ,如AES …或任何你喜欢的。 您仍然需要注意如何保存/分散encryption/decryption keys

如果您担心有人丢失手机,并且“创build者”试图窃取数据,您也可以在您的Application上实施密码保护,并且如果密码input错误连续3次,则将SQLite数据库数据被存储。

您不能在安全encryption芯片中存储任何东西,因为它是通过devise硬件与操作系统分离的。