我有一个开源应用程序,我最近添加了应用内结算。保持开源是否安全,因为代码现在有RSA密钥?
我指的是Google Play开发者控制台提供的Base64编码的RSA公钥。
答案 0 :(得分:1)
名称如何表明它是公钥。这意味着它可以与其他人公开共享。即使您不想分享它,任何具有足够技能的开发人员都很可能从您的应用程序中提取它,如果它存在的话。如果你透露它,这不是一个大问题。
您真正需要保密的是您在应用内存储和访问公钥的方式。这很重要,因为您的应用使用您的公钥验证付款服务器响应。如果您的私钥签名,则认为该响应有效。因此,拥有公钥可以随时说明服务器是否使用了您的私钥(只有您自己知道)才能对内容进行签名。黑客可以做的是,他/她可以用他们的公钥替换你的应用程序内的公钥,然后发送用他们的私钥签名的黑客攻击响应。您的逻辑将成功验证此类响应,您的应用将表现为付费应用。因此,请注意并保持将公钥存储为私有方式。
关于您的情况,我建议您完全从开源项目中删除与应用内付款相关的代码。这将增加安全性并使黑客的生活更加困难。您不必担心自己泄露了公钥,但最好还是删除它,以及上面提到的实现。