如何保护.Net 2.0客户端到3.5独立WCF Web服务的传输?

时间:2010-12-10 18:15:48

标签: .net wcf encryption ssl

我们销售销售点系统,通常需要一个商店服务器和多个终端。

我们正在开发一种新产品,要求终端通过网络服务与家用机器的后端进行通信。房子的后面是作为WCF的独立Windows服务实现的。终端软件是一个c ++应用程序,通过非托管/托管网桥调用我们的.Net DLL。

我们遇到的真正问题是,由于终端上的资源限制,我们无法超越.Net 2.0(因而无法使用WCF)。就通过BasicHttpBinding使两者相互通信而言,这不是问题。但是,添加加密一直是一个令人头疼的问题。

我已经能够获得一个基本的自签名证书(由于服务器转到客户,CA不在问题中。)问题是我必须要做的这些步骤对我们来说不实用可交付产品。

好的,长序言 - 底线...在Intranet上运行的WCF独立Web服务,.Net 2客户端,只需要传输加密。我们需要能够使整个安装自动化。此外,我们没有与SSL结婚,但考虑到我们的限制,它似乎是唯一可行的解​​决方案。任何帮助或建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

这是我前段时间提出的类似问题:

How to configure security when calling WCF Service from .Net 2.0 Client

我最终做的是以下哪个效果很好 - 使用BasicHttpBinding:

  1. 使用SSL保护传输
  2. 客户端首先通过调用Web服务上的Login方法登录Web服务。如果登录成功,则会将加密的FormsAuthenticationTicket返回给客户端。
  3. 然后,客户端必须为每个Web服务调用提供表单身份验证票证。每种方法都会检查故障单是否有效,如果是,则检查其是否有效。如果故障单已过期或无效,则客户端必须重新进行身份验证。
  4. 这不会让您远离SSL,但可能会让您更接近您的需求。一种选择可能是手动加密要发送到商店服务器后端的数据/对象以避免SSL。