许多组织(如公司、大学、.)拥有使用内部CA颁发的SSL证书的内部站点和服务,默认情况下,这些证书不受浏览器或操作系统的信任。通常,这些服务的所有潜在用户(例如工作人员、学生)都是已知的,因此可以指示在他们的设备上安装内部CA的根证书。(或者,对于组织提供给用户的设备,组织的IT部门可以安装根证书作为安装的一部分。)
通常,具有此类内部CA颁发证书的所有服务都位于一个或至少几个域的子域上。尽管如此,内部CA通常具有能够签名任意证书的根证书。(也就是说,根证书不使用Name Constraints扩展自动限制自己。)
当以用户身份安装这样的根证书时,我是否可以将接受限制在我指定的一组域及其子域上?如果是,怎么做?我想安装根证书,这样我就不必告诉浏览器对每一个证书或服务都做异常,但我仍然不想让组织不被注意地打开我的SSL流量给外部(即第三方)服务和网站,当我通过他们的网络访问这些服务和网站时,他们可以很容易地做到。(例如从工作中访问https://security.stackexchange.com/。)
为了这个问题,让我们假设
如果问题的“方法”很重要:我在Linux上使用Mozilla (特别是NixOS),但我也会对适用于其他设置的解决方案感兴趣。
发布于 2019-03-28 08:24:37
至少不是以一种有趣或规模好的方式。
虽然从技术上讲,您想要的是绝对可能的,但实际上,将权限从常规的二进制“完全无条件信任”/“根本不信任”削减到两个极端之间的权限的基础结构实际上并不存在。
虽然这是一个相对简单的想法,但我不知道是否允许您将名称约束或其他约束应用到CA (或证书路径上的任何其他地方)。
你能做的就是手动检查一些东西。这是一种在接受作为证书链一部分的结束实体证书之前对证书链的期望进行白名单的方法。通常的想法是PIN (显式白名单)证书链上的证书的公钥。-至少这是个主意.同样,也没有很好的UI。--然而,我在过去遇到过一个Firefox扩展,它试图做一些大致类似的事情。然而,我发现它非常繁琐和不切实际。我也不知道它是否还被支持。但是如果你真的,真的下定决心,你可以试试:“证书巡逻”:http://patrol.psyced.org/
https://security.stackexchange.com/questions/206241
复制相似问题