PKI基础设施和使用问题

PKI基础设施和使用问题

我在一家小型软件解决方案公司工作(50 名员工),最近我被要求试验 Web 服务。由于我们主要为以下领域提供解决方案视窗,我开始研究微软的 WCF 4(.NET 4.0)。基本上,这些 Web 服务最终将通过互联网被我们的客户使用。我们也将通过我们的内部网在内部使用它们。

我现在不知道如何保护这些 Web 服务。我想使用一种在支持/维护方面负担最小的方案。基本上,我想确保只有我们“认证”的客户(例如已向我们付款的客户)才能使用我们的 Web 服务。

使用 Windows Identity Foundation (WIF) 的联合身份验证看起来非常不错,我有一些使用自签名证书和自托管服务(Web 服务和 STS)的工作示例。如果我采用联合方案,这些最终将托管在 IIS 中。我的理解是,STS 将具有由根 CA 颁发的证书。Web 服务和客户端也将具有由同一根 CA 颁发的证书。然后,客户端将能够通过 STS 的证书身份验证使用 Web 服务。

现在,我的问题是:

我们公司没有 PKI。如果我们有 CA(以及 PKI 所需的一切),我们域外的客户端是否可以使用由我们的 CA 颁发的证书来使用我们的 Web 服务?这对我来说仍然很模糊。这将如何工作?客户端如何申请证书?他们能否将我们的 CA 添加到他们信任的 CA?他们如何访问我们的 CRL?我正在考虑使用带有 Active Directory 证书服务的 Windows Server 2008 R2。

我是不是跑题了?还有更简单的方法吗?

谢谢

答案1

您可以部署自己的 PKI。您的主要限制是让所有客户将您的 CA 证书安装为受信任的根证书。也就是说,当您说服务器是安全的时,让所有人都相信它是安全的(这是一个非常宽泛的说法,大多数 IT 部门都会反对)。

否则,你建议的方法就会有效。

我可能会建议研究使用 OpenID 或 Windows Live ID 或类似服务来处理身份验证。您只需跟踪授权(接受哪些 ID),无需担心保存密码。加密和不可否认性可以通过基本 SSL 或 TLS 以及来自公共 CA 的廉价证书轻松处理。联合服务非常适合紧密合作的公司,但通常不用于临时客户关系。

答案2

PKI 实际上是为在不安全的通道上进行安全通信而设计的。我认为 PKI 不适合限制访问。

我确实对 WIF 一无所知,但我猜测 PKI 证书更多地适用于客户端能够验证服务器,就像现在在浏览器中所做的那样。

相关内容