2012-01-03 115 views
1

我有点关于WCF服务器认证丢失...检查WCF服务的真实性

我在写一个WCF服务,将被多个客户端访问。 我想确保客户端应用程序始终连接到此服务,而不是一些实施相同ServiceContracts的恶作剧版本。

重要提示:服务客户的服务器上运行,并会像某种授权服务的,只允许客户端的X号(在其他机器上)在同一时间运行。所以我不希望这个服务被一个可以让所有客户端同时运行的副本绕过。

至于我可以找到interwebs,所有的解决方案建议使用WCF服务标识的服务器证书。但是,如何阻止某人继续在使用同一证书的同一台计算机上实施欺诈服务?

的服务将客户的服务器上运行,使他们能够在其上运行的服务。该服务的行为类似于某种授权服务,只允许X个客户端(在其他机器上)同时运行。所以我不希望这个服务被一个可以让所有客户端同时运行的副本绕过。

我在这里错过了什么(我觉得我是)?

+0

你是说其他人不应该访问你的服务器能够运行服务吗?具体来说,你想阻止什么? – 2012-01-03 14:13:33

+0

某人如何在同一个盒子上部署服务?这不是第一个要回答的问题吗? – 2012-01-03 14:13:40

+0

嗨,亚当,服务将运行在客户的服务器上,以便他们能够在其上运行服务。该服务的行为类似于某种授权服务,只允许X个客户端(在其他机器上)同时运行。所以我不希望这个服务被一个可以让所有客户端同时运行的副本绕过。 – 2012-01-03 14:19:55

回答

1

但是,如何阻止某人继续在同一台机器上使用相同证书实施欺诈服务?

首先,如果您在任何机器上部署使用机密数据的服务,则预计您可以控制机器。客户端主要验证与受信任的服务器建立了通信,客户端认为您已尽力保护服务器。

它会如何阻止某人滥用您的服务器?您将保护您的服务器,并且您将把证书的私钥放入正确的证书存储区。只有运行您的服务(和管理员)的指定帐户才能访问该私钥,以便恶意用户无法使用它。当然,这期望你相信你的管理员,例如你收集所有的审计,以便能够验证管理员做了什么。

证书时,也会发出一些特定的主机名,所以如果你的服务应用程序分配它作为一个主机头不应该在同一个服务器上的任何其他应用程序可用。

与管理员信托通常是通过巨大的惩罚一些协议确定,如果机密数据被滥用。

+0

嗨拉迪斯拉夫,'问题'是它不是我的服务器。所有这些都将安装在客户的服务器上。 所以我甚至无法控制服务是否正在运行。 该服务的行为类似于某种授权服务,只允许X个客户端(在其他客户机器上)同时运行。所以我不希望这个服务被一个可以让所有客户端同时运行的副本绕过。 – 2012-01-03 14:31:20

+2

在这种情况下,它不是一个安全问题,而是一些协议再次涉及的授权问题。避免这种绕过的唯一方法是不在客户端计算机上安装服务,而是将服务器或云从服务器或云中暴露出来,从而控制服务和托管环境。 – 2012-01-03 14:38:34

0

您可以在客户端和服务上拥有某种密钥/加密机制。

这样的服务和客户端将只能够用来同有钥匙等工序。

这个机制不会是100%安全的,所以你必须考虑你的客户会走多远绕过它。