我最近想知道是否有一种方法可以确保我的政府不换出SSL证书来拦截流量。

我知道几乎所有浏览器都在自签名证书的情况下抱怨。但是,是什么阻止了政府颁发自己的钥匙串呢?

可以想象破坏包含CA证书的软件包的存储库,然后颁发自己的证书以解密流量。所有流量都流经政府忠诚的第一级运营商,该运营商还具有提供互联网访问权的垄断权。

如果不可能的话,什么机制阻止了他们这样做?

评论

这不是不现实的情况。例如,在2016年,哈萨克斯坦政府尝试嗅探每个用户的TLS流量:bugzilla.mozilla.org/show_bug.cgi?id=1229827、bugzilla.mozilla.org/show_bug.cgi?id=1232689。 AFAIK,所有这些尝试在这种特定情况下都失败了,但是政府有机会跳入信任列表。此外,一些非民主国家可能会在法律的基础上强迫使用其根CA。

另请参见民族国家的对手是否可以通过强迫CA向其颁发假证书来进行MITM攻击?

如果浏览器不知道/您未安装其根链,他们会抱怨自签名证书。

#1 楼

如果您的对手是强大的民族国家威胁行动者,则Web PKI不会保护您。

没有什么可以阻止他们颁发自己的证书。实际上,许多政府都运行自己的证书颁发机构,例如美国FPKI及其附属机构。请参阅Firefox当前信任的CA列表:


法国政府
香港政府(SAR),香港邮政
日本政府,内务省事务和通讯
西班牙政府,巴伦西亚自治区汽车协会(ACCV)
西班牙政府(CAV),Izenpe SA
荷兰政府,PKIoverheid
台湾,政府根证书颁发机构(GRCA)
土耳其政府Kamu Sertifikasyon Merkezi(Kamu SM)
CA,以及经验丰富的民族国家参与者绝对有权使用一些现有的商业CA。 Chrome,Internet Explorer和Edge使用系统信任库,对于Windows,该信任库确实包括许多政府证书颁发机构,包括美国FPKI。这些证书中的任何一个都可以用来为任何网站签署有效的证书,而您的浏览器会欣然信任它们,而无需担心。

证书透明性(CT)的新的实验性标准有助于减少影响对于错误签发的证书,它不能防止控制恶意CA的专门攻击者使用。但是,一旦被广泛采用,它可能会使得在短时间后更容易发现恶意或行为不佳的CA,但并不能立即阻止攻击的发生。

一些浏览器使用证书固定,其中重要域和高端域根据允许的证书颁发机构的硬编码列表进行验证。为这些域签署欺诈性证书将需要损害它们当前使用的CA。不幸的是,这仅适用于少数几个域,而不能保护整个网络。

部分解决方案是拒绝信任没有由.gov TLD颁发证书的域政府CA,可以在客户端实施,但对现实世界的影响很小。对抗政府不会与国有CA签署恶意网站,因为这将立即将攻击归因于它们。相反,它们将利用与现有CA的隐秘关系来欺骗它们或强迫它们签署证书。如上一段所述,CT可以检测到这一点,并且可以很快注意到攻击,但不能阻止它。

评论


“一旦获得更大的采用率”,仅供参考,截至去年,证书透明度已达到100%。 Chrome甚至不信任不再登录CT的新证书。 (尽管我认为,恶意CA仍然有可能在一年之内回溯证书,从而满足要求。)

– Ajedi32
19年1月3日,15:50

“没有什么可以阻止他们颁发自己的证书的”-这不是完全正确的。 Chrome和Firefox等浏览器具有针对关键域(google,facebook,mozilla等)的内置证书固定功能,它们将检测是否有与预期不同的CA为这些站点颁发了证书。例如,这就是当DigiNotar被黑时如何检测到在伊朗使用Google伪造证书的方式。虽然为显式添加的CA禁用了证书固定(和CT的检查)以促进合法的SSL拦截,但内置CA却没有禁用它。

– Steffen Ullrich
19年1月3日在16:44

除了证书固定外,任何会错误地颁发证书的内置CA都有可能迅速从浏览器的CA存储中删除或被禁止的特定子CA。过去,这发生过几次(DigiNotar,Starcom,WoSign,Symantec),而且政府运营的CA不太可能没有收到此消息。我怀疑这些CA是否有被永久禁止的风险。我发现政府更有可能正式要求其公民进口特定的CA,以允许SSL拦截,这也具有禁用固定和CT的良好副作用。

– Steffen Ullrich
19年1月3日在16:49



一旦被滥用,政府CA肯定会像其他任何人一样受到信任。结果很可能会永久丧失政府作为证书签署者的声誉。

–约书亚
19年1月3日在20:08

@Joshua您如何看待自由国家?这种情况发生在人们通常认为“免费”的所有西方国家(例如美国,英国,加拿大)。这些政府似乎正在变得强大。

–森林
19年1月4日在1:49



#2 楼

即使您拥有原始的CA证书,也可能会将浏览器/ OS修改为无法正确检查证书。或者,浏览器/操作系统可能是后门程序,因此可以在加密之前或解密之后直接从应用程序中提取纯数据。而且,行为的此类重要修改或更改也可能是由您使用的硬件引起的。

这实际上意味着您要询问如何确保您使用的系统(硬件,操作系统,软件,配置...)仅具有您期望的功能,即仅具有预期的功能。供应商和开发人员(以后不会再添加后门或类似的东西),并且此功能不包含任何可能对您不利的东西(供应商/开发人员不会后门,也没有可能用作后门的严重错误)。

很遗憾,没有机制可以完全确保您的系统具有这种行为。最终,无论是在显式后门方面,还是在错误(无意中的后门)方面,它都使您可以信任交付链。交付链意味着您可以信任来源的硬件和软件(供应商,互联网下载...)的来源,以及如何保护硬件和软件在从来源进行传输的过程中不被篡改。而且这些资源通常也使用第三方组件,这意味着必须进一步扩展交付链可以信任多少的问题。

有几种方法可以帮助信任交付链,但不可能完全信任。一种方法是首先真正了解您的交付链并将其保持足够小,以便您可以实际对其进行审核。这还包括使用较不复杂的系统,因为这些系统可以使传递链更小,更易于审核。尽管对于某些必须担心针对性攻击的政府或大型公司来说,这可能是可行的,但对于普通的最终用户而言,这实际上是不可能的。这些方法可能试图通过仅从受信任的供应商处购买(如果您不信任本地供应商,则可能在国外)来降低风险,并最大程度地减少从Internet下载的内容并确保始终通过安全的传输方式进行加载。人们可能还会尝试将关键部分(例如本地CA证书或用于特定连接的CA)与其他部分进行比较。

还有诸如安全启动或证书固定之类的机制,可以帮助防止或检测较小的修改,但是可能被更复杂的攻击者(政府机构)简单地绕过,如果攻击者(政府机构)可以更改/禁用相关检查,控制足够的交付链。

最后,一个不老练的最终用户没有太多机会区分正常和异常系统行为,因为他没有足够的细节来了解正常系统行为应该是什么样子首先。但是,假设像使用政府控制的(和受浏览器信任的)CA替换CA证书或MITM之类的攻击不会仅针对此类老练的用户,而是会更广泛地传播,则可能会有更多偏执狂和知识渊博的用户受到影响并将检测到攻击并警告他人。

攻击者也可能无法控制足够的交付链,尤其是在可能或多或少地免费访问Internet的情况下(即,除了一些明确的黑名单以外,大部分都是免费访问)。在这种情况下,用户可能会下载添加了保护功能的软件-例如Chrome或Firefox等浏览器中针对关键域的内置SSL固定。另一方面,偏执狂的用户也可能被诱骗下载声称可以保护其隐私的软件,但实际上是间谍木马。

#3 楼

是。检查证书的颁发CA及其指纹和/或整个公钥,您可以通过在浏览器中查看证书详细信息来找到。将这些值与相关政府控制范围之外的其他人或另一台计算机看到的值进行比较。您可以使用命令行工具在另一个国家/地区托管的廉价vps进行此操作,以建立TLS连接并转储证书信息。您还可以使用“证书透明性”日志来查看是否要获得与提供给其他用户的证书不同的证书。

评论


grc.com/fingerprints.htm就是一项服务,它可以显示在美国收到的任何给定站点的证书的指纹。将其与您收到的证书进行比较。

–马塞尔
19年7月3日在5:54

这应该是可接受的答案,因为它是答案。

–马塞尔
19年7月3日在7:11

#4 楼

这确实是一种风险,如果您要执行要求“真正”安全的事情,比如说交换核弹代码,那是一个现实问题。再说一次,这不是更大的问题。攻击所经过的参与者不是政府而是CA。政府始终可以使用简单的胶管攻击,因此,只要CA成为受法治约束的公共实体,这将始终是一个问题(因为这会使它们受一个或多个政府的约束,因此对压力或普通的旧暴力很敏感)。只要这种攻击可行,那么更精细的证书操作就毫无用处,即使他们自己不是CA,它们也可能会迫使CA帮助他们(并保持沉默)。

如果需要更高的置信度,我建议您使用其他通讯方式,其中还包括(但不仅限于)隐写术和辅助通道,以降低通讯的可见性,从而降低遭受攻击的可能性。

为了进一步研究这种情况,CA可以展示其证书的正确性证明的想法还不是很流行,但是在区块链系统中可能是可行的。它可能需要大量的计算,因此我怀疑如果不对当前行业进行一些调整,它是否可行。甚至在那时,政府在什么密码原语是安全的方面都有很大的发言权,因此它们可以污染用于颁发证书的方法,例如,我想请您参考NSA的Bullrun计划,以及更详细的示例Dual_EC_DRBG后门由Bruce Schneier和Niels Ferguson提出理论,后来被Edward Snowden证实(该论据是我在确认之前有机会在研究中面对,Dual_EC_DRBG可能是安全的,但您必须生成用于加密基元的曲线您自己,否则,您实质上是在信任NSA为您提供良好的私钥,请注意,其他算法并非总是如此。