2012-10-24 70 views
5

在我的方法中,第一次用户想用信用卡支付时,他必须重新输入他的登录密码和完整的信用卡信息。在android上存储creadit卡信息是否安全?

支付成功后,我生成一个随机密钥,将它打包为密钥库,最后将密钥库文件存储在内部存储中,此密钥库文件被用户的登录密码锁定。另一方面,信用卡信息将被该密钥加密并变成Base64编码的字符串,最后写入内部存储器中的文件。

在下次使用信用卡支付时,用户还必须重新输入他的登录密码,所以我可以用它来解锁密钥库文件并提取密钥。在这一点上,我有能力解密用户的信用卡信息。

上面是我的方法来保护存储在设备上的信用卡信息,它是安全的吗?

回答

1

看来我在我的文章的做法是最后我的答案。

因为andriod提供对内部存储的访问限制(see this link) ,即使设备丢失或被盗,黑客仍然无法通过强力方法访问密钥存储库并将其破解。

但还有另一个问题。

在根深蒂固的手机中,'坏程序'有可能听到软键盘,还有一些其他的学习工作我应该做。

+0

你无法预防一切。例如,用户可以安装自己的键盘应用程序(例如Swype),该应用程序可以随时记录输入的信息。我认为重要的部分是做一切合理的措施,以防止您的应用程序泄漏,包括允许用户在选择不具有保存在所有这些数据。 – Thor84no

+0

感谢您的评论! –

2

不要将用户信用卡数据保存在设备上!没有办法确保它的安全。根植手机可以让应用程序访问敏感数据更加简单。设备可能会丢失或被盗。您必须实现安全的用户登录到您的服务器并将CC数据存储在那里。

尝试使用此http://developer.authorize.net/downloads/

+0

-1,因为从技术上说,我觉得你是一个有点过时,因为我有和轮我好电流(和长达2年以上)设备内置了这个确切的使用安全元件。 – paulkayuk

+1

我想你也明白,随着时间的推移,安全性也成为其可以更容易受到损害的事情。 –

+0

在Android开发者网站,[这个链接](http://developer.android.com/guide/practices/security.html#Data)说,如果我把我的密钥存储文件在内部存储,文件将只访问我的应用程序。是否足以保护我的密钥库文件并防止遭受暴力攻击? –

0

您不应该在用户设备上存储信用卡号码。

PCI需要对您的加密元素进行季度重要更改 - 那么您将如何实现这一目标?强制用户每3个月更换一次密码?如果他们从不登录来更改它,该怎么办?

您的方法极易受到攻击者成为“客户”的攻击,以试图破坏您的系统 - 他可以在自己的设备上正确执行任何操作,而不会受到攻击者的检测或抵制。然后他可以使用他学到的东西来攻击其他客户的帐户。请让我们知道您正在处理的是哪个网站 - 如果您按照此设计方法完成工作,我希望保持距离远。

+0

做“的季度关键的变化”是指在密钥库中的关键,应经常改变? –

+0

做“的季度关键的变化”是指在密钥库中的关键,应经常改变?也许可以通过在用户登录或完成付款后每次更改密钥来实现(用户在用信用卡付款之前总是需要重新输入密码)。另一方面... keystore存储在受android操作系统保护的内部存储中,你的意思是我不应该相信操作系统提供的安全机制? –

相关问题