如何保护.NET Web服务以供iPhone应用程序使用?

时间:2010-04-16 09:23:09

标签: .net iphone web-services security

我有一个用.NET编写的Web服务,它为iPhone应用程序提供数据。它还允许应用程序进行“预订”。

目前它全部都在公司网络内部,但很明显,当iPhone应用程序发布时,我需要确保Web服务在外部可用。

我如何保护Web服务?

我正在研究两个方面:

  • 用于访问Web服务的身份验证
  • 保护正在传输的数据

我对来回传递的数据并不感到困扰,因为无论如何它都可以在应用程序中查看(这将是免费的)。对我而言,关键问题是阻止用户访问Web服务并自行进行预订。

目前我正在考虑加密来回传递的XML数据中的任何字符串,这样只有客户才能有效地使用Web服务来回避身份验证的需要并为数据提供保护。这是我见过的唯一模型,但我认为iPhone上的开销甚至是Web服务的开销都会导致用户体验不佳。

3 个答案:

答案 0 :(得分:5)

只需使用https进行网络服务调用即可。然后,您可以使用您想要的任何身份验证,并可能会收到一个令牌,该令牌将传递给后续的Web服务调用。您的身份验证详细信息和数据将受到保护。会有一些开销,但不应该很大。

答案 1 :(得分:2)

https是一个简单的答案,但您不仅应该为服务器提供自己的服务 证书,但每个移动设备给一个。这允许相互认证。

如果您无法执行此操作,则可以使用AES对来自iphone的消息进行签名 到服务器,使用只知道服务器和iPhone的共享密钥,但是 永远不会传播:

签名= AES(数据+ iphone udid +共享密钥)  (或者那种效果)

您应该选择分发秘密的方式 这允许您验证其他部分。

答案 2 :(得分:0)

我更喜欢加密(Base64 / AES)+ HTTPS。 oData,oAuth身份验证也可以使用。