我有一个问题,让我的秘密API密钥遍布全球,潜在的数千移动设备上。它很容易被黑客利用并用于恶意目的。不想在移动设备上存储秘密的Facebook/Twitter API密钥,设计模式?
那么我有什么选择? 我会猜测一个私人服务器,它具有秘密的API密钥和一个封装所有方法调用的Web服务。因此,而不是移动设备具有的密钥和做一些事情,如:
List<Friends> = service.GetFriends(secretKey);
如果我的秘密API密钥被泄露,并用于发送垃圾邮件/滥用的目的,我必须关闭我的所有用户使用,留下我的应用程序死在海里。
所以我的想法是,我可以使用移动设备唯一的设备ID,并做到:
List<Friends> = myService.GetFriends(deviceID);
当然,恶意黑客可能只是我的web服务与假的设备ID,但至少我现在有控制黑名单deviceID的。它还引入了一些潜在的带宽问题,但这不是那么重要。
真正的PKI可能是不可能的,因为目标设备在当前版本中不处理HTTP客户端证书。
其他好主意?