我正在开发一个将由我的客户用户使用的API。以下是流程的样子:
我正在寻找有关如何保护此API的建议。我看到了一些问题:
有没有人对如何设计这个有什么想法?
答案 0 :(得分:1)
我可能会弄错,但也许您可以让客户的用户与客户的API进行对话。基本上,您的客户会将他们的密钥保存在他们的服务器上,而不是将它们嵌入到他们为用户提供的客户端中,因此不能被高举(除非他们的服务器当然受到了损害)。然后,用户将通过客户的API与您的API通信。
它会慢一点,需要你的客户做更多的工作,但也更安全。
答案 1 :(得分:0)
我可以看到两个解决方案,虽然我确信还有更多......
使用oauth的RSA签名方法,并使用“基于云的服务”作为交换机制(或公共证书提供商)实施密钥的安全证书交换。
实施一项服务,允许客户自动“更新”其消费者密钥/密钥,然后使用RSA或其他一些公钥加密方法保护该机制。
这些都不容易,并且需要用户的应用程序“打电话回家”才能更新他们的消费者密钥。
将来我认为OAuth 2至少会为这样的事情提供协议定义,但就目前而言,如果你使用的是OAuth 1.0a,那么你想要做的事情并不能很好地适应规范(即你必须自己设计很多。)