我有一个移动应用程序和一个服务器。移动应用程序通过SSL通过Web服务框架与服务器通信。
移动应用程序允许客户支付交易费用。服务器通过用户名,密码,设备ID和数字签名在每次Web服务调用上验证移动应用程序。
设备ID可确保从用于创建帐户的设备访问移动帐户。因此,黑客需要物理访问智能手机,即使他知道移动帐户的用户名和密码。
使用在移动应用程序内硬编码的私钥计算数字签名。从移动应用程序发送的每条消息都附带使用此私钥计算的数字签名。这可确保消息来自移动应用程序,并确保消息内容在传输过程中不会被更改。
如果发现此私钥会有什么后果?黑客是否能够修改通过SSL传输的信息并仍使用此私钥重新计算有效的数字签名?如果移动应用程序生成公钥 - 私钥对并将公钥发送到服务器,或者这是否是必要的,那会更好吗?非常感谢你。
答案 0 :(得分:1)
黑客可以随时通过手机向您的服务器伪造他的帐户的虚假请求,如果黑客无限制地访问该设备就无法阻止该操作。
然而,如果所有手机共享相同的密钥进行签名,黑客也可以做的一件事就是假如他知道另一部手机的设备ID而无法访问另一部手机的请求。
解决此问题的简单方法是每部手机都有自己的身份验证密钥,该密钥是在安装时生成的。
你可能已经这样做了,但你没有在你的问题中说出来。