我正在开发一项从 Windows Phone 8 和/或 WinRT 设备上的客户端访问的小型服务,该服务需要适度的安全性。我的目标是创建一个在 Windows Azure 中运行的服务。
我的应用程序需要验证两件事的身份验证:1)客户端的真实性 2)客户端的用户凭据
第 1 步)我需要在一定程度上确定调用服务的应用程序实际上是我的客户端应用程序。
步骤 2) 用户需要在系统中有一个可以被认证的账户。我可以通过简单地在接口中创建一个 Login() 方法来实现身份验证(除非有更好的方法)。但是,为此,客户端和服务器之间的通信需要安全,因为我不希望我的用户名+密码组合未加密。
我目前的观点是,将其实现为 WCF 服务可能是可行的方法,因为我可能对在客户端移植到其他平台有进一步的兴趣,并且快速浏览表明这在一定程度上得到了支持。
但是,由于我是所有这些证书恶作剧的新手,我的问题是我是否可以使用自签名证书来保护我的连接?只有我的服务器和我的客户端需要能够验证真实性。此外,是否有任何关于在 WP8 + Windows Azure 案例中究竟是如何做到这一点的指针?
另一个交易是假设一个漂亮的黑客从客户端硬件打开我的程序,他可以获取证书并使用它来创建他自己的客户端以使用(他的)用户名/密码登录并执行我原来的客户端执行的操作吗?或者有没有办法在客户端防止这种情况?换句话说,我的服务器是否可以根据我签署的有效证书来确定客户端软件的真实性?