繁体   English   中英

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

[英]How do I secure a .NET Web Service for use by an iPhone application?

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

当前,所有这些都在公司网络内部,但是显然在发布iPhone应用程序时,我将需要确保Web Service在外部可用。

我将如何保护Web服务?

我正在研究两个方面:

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

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

目前,我正在考虑对来回传递的XML数据中的任何字符串进行加密,以便只有客户端才能有效地使用Web服务,从而避免了身份验证和为数据提供保护的需求。 这是我见过的唯一模型,但我认为iPhone甚至网络服务的开销都会带来糟糕的用户体验。

只需使用https即可进行Web服务调用。 然后,您可以使用所需的任何身份验证,并且可以接收回令牌,该令牌将传递给后续的Web服务调用。 您的身份验证详细信息和数据将得到保护。 会有一些开销,但它不应该太大。

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

如果无法执行此操作,则可以使用AES来签名从iphone到服务器的消息,使用服务器和iphone都知道的共享密钥,但绝不能以明文方式进行传输:

签名= AES(数据+被iPhone挖除+共享秘密)(或类似的东西)

您应该选择一种分发机密的方法,该方法允许您验证另一部分。

我希望同时使用Encrypting(Base64 / AES)+ HTTPS。 也可以使用oData,oAuth身份验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM