【发布时间】:2014-05-22 18:21:33
【问题描述】:
我有一个我最近添加了应用内计费的开源应用。保持开源是否安全,因为代码中现在包含 RSA 密钥?
我所指的密钥是 Google Play 开发者控制台提供的 Base64 编码的 RSA 公钥。
【问题讨论】:
标签: android google-play google-play-services in-app-billing
我有一个我最近添加了应用内计费的开源应用。保持开源是否安全,因为代码中现在包含 RSA 密钥?
我所指的密钥是 Google Play 开发者控制台提供的 Base64 编码的 RSA 公钥。
【问题讨论】:
标签: android google-play google-play-services in-app-billing
名称如何表明它是公钥。这意味着它可以与他人公开共享。即使您不想共享它,任何具有足够技能的开发人员也很可能从您的应用程序中提取它,如果它存在的话。所以这不是什么大问题,如果你透露的话。
您真正需要保密的是您在应用中存储和访问公钥的方式。这很重要,因为您的应用程序使用您的公钥来验证支付服务器的响应。如果响应由您的私钥签名,则被认为是有效的。因此,拥有公钥,您始终可以判断服务器是否使用了您的私钥(只有您知道)来签署内容。黑客可以做的是,他/她可以用他们的公钥替换你的应用程序中的公钥,然后发送用他们的私钥签名的被黑响应。您的逻辑将成功验证此类响应,并且您的应用程序将作为付费应用程序运行。因此,请注意并保持您存储公钥的私密方式。
关于您的情况,我建议从您的开源项目中完全删除应用内支付相关代码。这将提高安全性并使黑客的生活更加困难。您不必担心您泄露了您的公钥,但您最好将其连同上述实现一起删除。
【讨论】: