我正在构建一个必须只能用于iOS应用程序的Web服务.在未来,我想扩展到移动网站,使我的服务也可用于其他移动操作系统.
现在,我通过API完成所有工作.我的用户可以注册,搜索公司,从这些公司订购产品并跟踪他们的订单.它尚未活跃,但它正在运作..
我面临一个主要问题:如何确保这一点?
在过去的几天里,我已停止编码,我一直忙于搜索网络,StackOverflow和信息安全,以了解如何执行此操作.我发现亚马逊获取API的方式对我来说是最好的解决方案.亚马逊确保其服务的方式在这里解释.我已经为我的服务稍微调整了一下:
用户注册并获取私有API密钥+公共(标识)密钥
用户输入凭据并点击"登录".应用程序从变量+私钥创建哈希.App将变量+时间戳+哈希+公钥发送给API
API查找数据库中的公钥,查找属于该公钥的私钥(如果公钥有效).然后API以与应用程序相同的方式创建哈希.如果哈希值相同,则执行请求(在这种情况下登录).
这种保护服务的方式对我来说很有意义,我可以编写大部分代码.但我有一个主要问题,我找不到任何解决方案:
用户在创建帐户时获取公钥和私钥API密钥.公钥可以从服务器发送到用户设备,因为这不一定是秘密.由于私有API密钥永远不能通过网络发送,我怎么能确保登录用户设备的帐户知道在服务器上创建的私有API密钥?
有谁知道如何解决这个问题?任何帮助将非常感谢!!