我正在开发一个WP7应用程序。这个WP7应用程序将与我创建的一些web服务交互。我不希望其他应用程序与这些web服务交互。原因是我不想让他们窃取我的数据。考虑到这一点,下面是我目前正在做的事情:
application
此时,我看不出是什么阻止了恶意开发人员创建用户名/密码组合,并在应用程序中使用该帐户与我的web服务交互。我怎么才能把这东西锁起来?
谢谢!
发布于 2010-12-01 16:33:20
作为一个更安全的系统的起点,您应该停止存储密码,并在每个请求中通过线路发送密码(即使您使用SSL)。
如果必须将其与每个请求一起传递,则存储密码的咸散列并使用该哈希。
发布于 2010-12-01 21:31:46
我用了一种多层次的方法来解决这个问题。我建议您创造性地思考,并使用各种方法验证请求是否来自您希望请求来自的设备。
或者,如果您的场景中有任何优点,请向第三方开发人员开放您的api并使其朝着您的目标发展。
发布于 2010-12-09 23:30:45
如果您确实决定在应用程序中存储一个键,不要存储原始文本,而是声明一个UTF8值的字节数组,这将不会那么容易读取。
然后,您可以使用该应用程序第一次运行时,使用该应用程序的盐碱化哈希与您的服务进行握手,该服务为该设备提供了另一个用于日常实际使用的密钥。
手机应该有一个几乎准确的时间,这样你就可以每天或每小时重新计算钥匙。您还可以仅为该设备在服务器端撤消密钥。
此API将有助于确保您可以永久地将设备列入黑名单。
DeviceExtendedProperties.GetValue(“DeviceUniqueId”).ToByte();
我还没有研究过对称加密,您可能甚至可以使用上面的唯一ID作为私钥。
我认为成功的关键是直接握手,并确保这不是窥探。如果它是一个非常重要的系统,那么不要使用这些想法,因为滚动您自己的加密总是脆弱的任何人有认真的意图-使用众所周知的方法和阅读。
卢克
https://stackoverflow.com/questions/4324835
复制相似问题