WCF-使用证书使用消息安全性对客户端进行身份验证

WCF-使用证书使用消息安全性对客户端进行身份验证,wcf,security,certificate,Wcf,Security,Certificate,希望是一个简短的问题 我想保护我的WCF服务,该服务将由已知方使用。我们的组织信任他们,反之亦然 这项服务已经受到IP地址的限制,所以我们知道呼叫者一定来自他们的网络 然而,我希望它能受到保护,防止该组织内部的恶意开发人员。理论上,他们可以编写一个糟糕的应用程序,并将其安装在这个网络的任何地方,然后呼叫我们的服务,这将返回数据 我认为解决这个问题的一种方法是也使用客户端证书,这将使用对等信任进行验证。每个请求都将发送此证书,我们将在WCF服务上验证该证书,然后发送回数据 我的问题-这是否可以防止

希望是一个简短的问题

我想保护我的WCF服务,该服务将由已知方使用。我们的组织信任他们,反之亦然

这项服务已经受到IP地址的限制,所以我们知道呼叫者一定来自他们的网络

然而,我希望它能受到保护,防止该组织内部的恶意开发人员。理论上,他们可以编写一个糟糕的应用程序,并将其安装在这个网络的任何地方,然后呼叫我们的服务,这将返回数据

我认为解决这个问题的一种方法是也使用客户端证书,这将使用对等信任进行验证。每个请求都将发送此证书,我们将在WCF服务上验证该证书,然后发送回数据

我的问题-这是否可以防止上述恶意开发人员场景?我们知道,请求必须在安装了客户端证书的服务器上发起(对吗?)——我认为恶意开发人员很难在服务器上获得坏的应用程序。遗憾的是,我们不能将它精确地绑定到客户端应用程序,或者我们可以吗


感谢您的任何帮助-只是想确保我对这一点的理解准确无误

您可以在服务端检查客户端是否已使用特定证书对自己进行了身份验证。您也可以根据自己的需要编写和验证证书。但是,如果您假定攻击者可能能够在您的环境中使用受信任证书的私钥,那么我猜您可能会假定攻击者基本上可以做任何事情,并且您无法保护您的服务。

如果您将根据特定的传入客户端证书授予对您的服务的访问权,它应该与该证书的私钥一样安全。也就是说,如果私钥在其他组织中保持安全,则您的服务将与证书的公钥/私钥对在加密方面一样安全

如果私钥在另一个组织内受损,例如,攻击者可以在远程服务器上访问该私钥,或者能够将其复制到另一个远程服务器,则该攻击者可以访问您的服务。因为,一旦他们拥有私钥,他们就可以使用客户端证书使用SSL连接,然后他们只需通过IP地址检查。保护客户端证书的私钥