首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信任不可信的CA -我可以限制系统如何信任它吗?

信任不可信的CA -我可以限制系统如何信任它吗?
EN

Server Fault用户
提问于 2016-05-05 03:10:55
回答 1查看 2.1K关注 0票数 34

(发布到ServerFault而不是StackOverflow,因为我觉得它更多地涉及操作系统配置而不是编程代码)。

我目前负责维护一个连接到第三方网络服务的系统。此webservice需要客户端身份验证证书,这是相当公平的,但是webservice本身使用一个由自创建的根证书颁发机构证书创建的自签名证书进行保护--与创建客户端颁发证书的根证书相同。

只需将当前服务证书添加到已知的受信任列表中,忽略自创建的授权证书就足够了,不幸的是,服务证书定期更改,因此必须信任授权证书,以确保应用程序在服务证书更新时不会中断。

然而,我(个人)并不(个人)信任CA证书,这是基于我在运行webservice的公司的经验--如果它被泄露到网络上,我也不会感到惊讶--而且令人担忧的是,CA证书没有对其设置密钥使用限制(虽然外部MITM攻击是一种可能性,但我更担心的是用于代码签名的泄漏证书--例如签名)。

我是否可以告诉我的计算机(目前是服务器框,但在未来的普通桌面客户端)信任CA,但只对给定的一组密钥使用和一小部分可能的主题名称(域名)?

该服务器目前是Windows 2012 R2,但它可能运行在Linux盒上--尽管桌面计算机都是Windows。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-05-05 05:28:38

是的,这是可能的。在Windows的情况下,有一个叫做交叉认证或合格从属的特性。

您的想法是在您的环境中签署第三方颁发的CA证书。结果,远程SSL证书链接到您自己的根CA证书。为了保护自己不受可能的流氓证书的影响,您可以实现一个Name Constraints证书扩展,其中指定了一个可接受的名称列表。如果第三方CA为任何其他名称(未在名称约束扩展中显式指定)颁发证书,则CryptoAPI提供程序将自动拒绝它。

除了名称约束之外,还可以通过在交叉证书中定义Application Policies证书扩展来描述增强的密钥使用约束。因此,您的信任提供程序将只成功地验证Application Policies扩展中指定的用法。

更多信息:使用Windows 2003规划和实施交叉认证和合格排序

附注:尽管本文是针对Windows Server 2003编写的,但本文仍然适用于最新的Windows Server版本。

票数 43
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/774930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档