我已经设置了一个 Windows Azure 数据库,其中的数据可通过 oData 访问。我正在尝试研究如何保护 WP7 设备和数据库之间的连接。所谓安全,我的意思是我只希望应用程序的用户能够从应用程序内访问数据。
我考虑过 SSL,但它对我来说相当昂贵 - 是否有另一种方法来保护这种连接?
谢谢!
我已经设置了一个 Windows Azure 数据库,其中的数据可通过 oData 访问。我正在尝试研究如何保护 WP7 设备和数据库之间的连接。所谓安全,我的意思是我只希望应用程序的用户能够从应用程序内访问数据。
我考虑过 SSL,但它对我来说相当昂贵 - 是否有另一种方法来保护这种连接?
谢谢!
“安全”有多种定义。您将需要身份验证,因此 Azure 只允许正确的用户访问数据。这通常由 WP7 应用程序提供的用户名和密码处理。
WP7 应用程序需要确保它与正确的服务器通信。SSL 使用数字证书处理此问题。还有其他机制,但最好使用基于公钥/私钥对的机制,因为您可以验证您正在连接到正确的服务器,而无需模拟该服务器。然而,大多数情况下使用的RSA算法计算量很大。
WP7 应用程序和 Azure 之间发送的数据也需要保密,包括用户的密码。这通常由加密处理。您可以选择计算成本较低的算法或仅加密某些数据。
WP7 应用程序和 Azure 之间发送的数据也需要某种形式的篡改检测。否则,有人可能会破坏发送或接收的数据。也许这是您可以为应用程序接受的东西,但它必须是一种攻击无法轻易重现的方式。正如Shanin 的 Maxim所说,攻击者了解系统。
问题是 SSL 为您提供了所有这些。是的,它可能很昂贵,但它是可用的最佳通用解决方案之一。您可以使用组策略、代码或PowerShell更改 Azure 提供的密码套件。
如果您不想使用 SSL,则需要知道可以牺牲什么。一般来说,我不建议您使用自己的加密机制或协议,因为我们人类往往会搞砸它。