为了证明您拥有一个域,您需要在该域上的特定(随机生成)URL上安装具有特定(随机生成)内容的文件。在签名证书之前,Let's Encrypt服务器将通过访问URL进行验证。
现在,假设我受到一些攻击,这将使域
awesomebank.example
解析为我的服务器。假设我还可以将某些人的MITM连接到https://awesomebank.example/
。 TLS旨在防止我发现或更改其与服务器的通信而未被检测到。是什么阻止我在Let's Encrypt服务器上使用此攻击,并获得
awesomebank.example
的证书,然后使用不会被发现给AwesomeBank的MITM客户(因为我有有效的证书)?全自动CA的存在是否会降低Internet的安全性?#1 楼
与其他DV证书相同的安全性是什么让我无法在Let's Encrypt服务器上使用此攻击,并获得awesomebank.example的证书,然后将其用于AwesomeBank的MITM客户而未被检测到(因为我有有效的证书)?
什么都没有。如果您拥有网络,则您拥有网络。 DV类型证书(请参阅下文)依靠网络来获取域所有权的证明。通常没有带外检查。 (没有人会打您的电话,没有人会检查您的照片ID,没有人会在公司注册地访问您,等等。)
不存在完全自动化的CA,因此互联网安全性较低吗?
不。与DV类型的证书具有相同的安全级别。
(当前)x509证书具有三个保证级别:
DV,域验证
OV,组织验证
EV ,扩展验证
DV最便宜。它的基本含义是“如果某人可以将电子邮件回复至admin@example.com,则该人将获得example.com的证书。”。
还可以进行OV,EV的其他检查。
有关证书的更多信息类型:GlobalSign.com:SSL证书有哪些不同类型? (在此处存档。)Wikipedia:https://zh.wikipedia.org/wiki/Public_key_certificate#Validation_levels
以及以下幻灯片中的更多背景信息:RSAConference2017,会议ID:PDAC-W10,Kirk Hall,100 Web加密百分比-TLS的新挑战
进一步阅读
Ryan Hurst,2016年1月6日,了解风险并避免FUD(在此处存档。) GlobalSign的首席技术官Ryan Hurst在他的私人博客上。
他的观点与我大致相同。但这要深入得多。而且,对于趋势科技反对Let's-Encrypt的言论有些愤慨。
请注意,趋势科技和GlobalSign都出售SSL证书,并且是直接竞争对手。 (还:他们都是CAB论坛的成员,也是CA安全理事会的成员。)
2018年3月6日更新:斯科特·赫尔姆(Scott Helme),2018年3月6日,揭穿付费证书优于免费证书和其他相关废话的谬论(在此处存档)。
评论
请注意,电子邮件支票虽然很常见,但并不是唯一使用的自动支票。特别是,许多现有的CA都提供了与Lets Encrypt在其文档中描述的基于Web的证据完全相同的选项。
–IMSoP
2015年5月4日13:29
是。除了野外的电子邮件版本,我再也没有遇到过。
– StackzOfZtuff
2015年5月4日14:00
在Web开发机构工作时,当Comodo开始提供DNS和HTTP验证时,我感到非常欣慰,因为这意味着我们不再需要向有权访问admin @电子邮件帐户的非技术人员解释该过程。或更糟糕的是,对于需要专门创建此类收件箱的IT员工而言。
–IMSoP
2015年5月4日在14:21
虽然DV和EV是行业标准(由CA / Browser论坛标准化),但据我所知,OV仅是GlobalSign。例如,DigiCert digicert.com/ssl-certificate.htm和Entrust entrust.net/ssl-certificates.htm都提供EV和它们自己的一些变体(但不提供OV)。
–麦克·恩斯沃思(Mike Ounsworth)
2015年5月4日17:54
@MikeOunsworth虽然尚未标准化,但我认为将OV作为DV和EV之间一步的广泛概念非常普遍。参见例如Comodo的知识库。
–IMSoP
15年5月6日在8:05
#2 楼
是的,您描述的协议仅确保当您呼叫他们时,“在很棒的银行取电话的人”与在“让我们的加密”服务器呼叫他们时在很棒的银行取电话的人相同。如果我有能力拦截来自Let's Encrypt和您的拨给真棒银行的电话,那么我可以欺骗您。理想情况下,您希望TLS告诉您的是,“打电话给他们时,他们实际上是一家很棒的银行的员工。但这很难实现自动化,因为计算机不能仅仅弄清楚某人为谁工作,因此,经过更好验证的证书的成本更高。 Let's Encrypt并没有做比其他CA更加安全的事情。
人们希望,Let's Encrypt会试图使截取他们对很棒的银行的电话比截取您的电话更加困难。某些互联网接入点比其他互联网接入点更容易混乱(不安全的无线评分较低),并且同时与多个接入点混乱不仅比仅一个要难(因此,让我们加密将在从许多不同的位置下载文件时确认接收到相同的文件)尽管我还没有考虑过他们是否认为有必要)。除了NSA之类的组织外,实践中的MITM攻击往往是本地化和临时性的。
因此,它只能提供某种程度的安全性,以致MITM难以进行加密是MITM的你。我们认为控制您访问Internet的权限比控制Let's Encrypt或真棒银行的访问要容易,这就是为什么您“信任” Let's Encrypt作为CA。
自然这些都不是真正的电话,它是入站套接字连接。
评论
如果使用DNSSEC,则可以确保“在AwesomeBank上接电话的人”实际上正在使用AwesomeBank的电话。
–user253751
2015年5月5日下午3:31
@immibis:好吧,您可以使用DNSSEC确保“您”具有正确的IP地址。您的路由仍可能被劫持。 DNNSEC还可以提供可靠的CERT记录,但是我对获得胜利的看法还不了解。
–史蒂夫·杰索普(Steve Jessop)
2015年5月5日,11:51
#3 楼
Let's Encrypt旨在帮助抵御各种攻击,并推动TLS使用的普遍化,以在全球范围内提供更安全,更私有的互联网。旨在更精确地消除可能阻止某些网站管理员更广泛地使用TLS证书的技术和财务限制。但是,作为任何安全措施,这将不是解决所有可能的证券问题的奇迹产品并允许您将网站标记为“ 100%安全的网站!” (即使某些网站会毫不犹豫地使用此类邮票...)。安全性意味着多层的结合,每一层旨在解决自己的威胁。
如果真正设法取得了您的域名所有权,那么大多数机会就是让sEncrypt证书交付自动化在这种情况下不会比在其他情况下产生更大的影响。
提醒一下,要从经典CA获得证书,您需要拥有的管理地址为“ admin @” example.com”并支付一些费用。如果您设法获得域所有权,则可以将电子邮件自由重定向到您自己的邮件服务器,从而也有效地拥有您选择的电子邮件地址。
这不是理论上的威胁。您会在这里找到由某人撰写的文章,该人的域名被盗以获取其电子邮件的所有权。在这种精确的情况下,是为了访问从第三方社团发送的密码重置电子邮件,但是,在他的位置上,攻击者还能够为该域生成新的证书,并建立一个网络钓鱼站点,该站点将被视为安全浏览器。
评论
您不仅需要对CA DNS解析器的缓存进行毒化(无论是Let'sEncrypt解析您的网站地址还是其他CA来解析邮件服务器地址都无关紧要),而且您还需要对每个DNS解析器的缓存进行毒化以及要访问https://awesomebank.example URL时要重定向到您的钓鱼网站的每个访问者(否则,如果您无法假冒该网站,则拥有证书将毫无用处)。作为针对性很强的攻击的一部分,在某种程度上可能是可行的,但显然仍然受到限制,并且无法大规模实施。
–WhiteWinterWolf
2015年5月4日,9:25
如果对网站进行MITM操作非常困难,那么我们肯定不需要TLS来阻止它吗?
–user253751
2015年5月4日9:32
如果我们只关心窃听,浏览器将接受自签名证书。
–user253751
15年5月4日在21:35
@immibis:自签名证书只能防御被动的MITM攻击。活跃的MITM攻击者可以创建自签名证书。
–布赖恩
2015年5月5日13:21
@ user54609:活动的MiTM攻击者(每个证书)只有一次机会危及Let's Encrypt,并且必须通过破坏与Let's Encrypt(由受信任的CA签名)的连接来实现。使用自签名证书,每个连接都容易受到主动的MITM攻击。
–布赖恩
2015年5月6日7:39
#4 楼
自动检查的使用不是该CA独有的,但对于入门级证书来说是常见的。如其他答案中所述,使用了3个级别的证书:Doman验证仅证明您在颁发证书时已控制域。 (并且从那时起,还没有明确撤销证书。)
组织验证涉及对证书中列出的公司名称有效的额外检查。
扩展验证包括对公司的更强大的审核申请证书。
对于基本的DV证书(作为OV和EV应用程序的第一步),大多数CA将使用某种形式的自动“域控制验证”。例如,Comodo提供了3种选择:
假设必须以域中的一小段通用地址(例如“ admin @”)之一接收电子邮件只能由授权人员访问这些邮箱。
必须在域的DNS区域中添加特定的CNAME记录,以证明申请人具有DNS控制权。
必须添加具有特定内容的URL在域的HTTP根目录中,证明申请人可以控制域所指向的Web服务器。
作为Lets Encrypt工作的一部分,正在开发的ACME协议是使客户端自动化这张支票。他们的技术概述实际上提到了基于DNS的检查和基于HTTP的检查,这些示例可以通过这种方式实现自动化。
这个想法是,您安装的软件可以根据其有权访问的配置自动确定如何应对这些挑战。如果它可以找到并写入要验证域的文档根目录,那么基于HTTP的质询就很容易实现自动化。由于邮件传递的复杂性,较传统的基于电子邮件的验证方法将更难以自动化,但实际上其提供的证据量没有区别。
#5 楼
发行期间针对MITM攻击的主要防御措施是从许多地理位置分散的位置执行验证检查-观察服务器或其DNS。这就是今天有多少CA进行自动Web检查以检测伪造和欺诈行为。从我在IRC会议室听到的信息来看,Let's Encrypt将对所有验证检查执行相同的操作。 />
评论
如果MITM在您的服务器附近(如果只有一条路由可用),则无济于事。
– Maxim
17-2-5在23:46
#6 楼
请记住,您需要的不是MITM站点用户,而是让Encrypts验证服务器能够获得该证书,这将变得更加困难。Lets Encrypt最近谈论了他们如何使用多角度验证来帮助保护自己免受此类攻击-他们的想法是,他们将从Internet的不同位置验证您对域的所有权,因此您需要在全球范围内建立MITM多个数据中心。
在这种情况下,我认为与没有足够长的时间来保护自己的证书提供者相比,Lets Encrypt更加安全。这不是Lets Encrypt所独有的-如果您可以使用MITM证书提供者,则可以使用它们中的任何一个,对您而言可能会更昂贵。
评论
好吧,某些证书提供商确实会尝试验证您的真实身份。自LE开始存在以来就没那么多了。
–user253751
20年9月3日,11:22
对于EV证书,他们应该这样做,但是对于Lets Encrypt给您的DV,其他提供程序都是类似的,并且往往也是自动的,但结构上不如ACME协议。
–mcfedr
20年9月3日,11:28
#7 楼
为了在2020年对此付诸实践-我在SSL实验室https://www.ssllabs.com/ssltest/analyze.html?d=certbot.eff.org
上进行了以下测试,他们将eff.org(可让您将LetsEncrypt与服务器集成的网站)报告为A +-这是它们的最高水平。因此,只要您正确设置服务器,就有可能获得与付费证书相同的结果。据我所知,自签名证书提供的加密级别与CA签名的相同,只是人们可以识别授权。有了LetsEncrypt,它们已成为浏览器的公认权威,因此它们的操作方式。
此外,它们具有90天的限制,这意味着,如果您的密钥被黑客入侵,则会更定期地发布它们。由于此操作是自动完成的,因此不会像正常续订那样痛苦!
评论
这仅表明SSL Labs信任LetsEncrypt。它并没有真正显示出为什么LetsEncrypt是值得信赖的。
–user253751
20 Sep 15 '10:49
评论
“ ...将使域awesomebank.example解析为我的服务器的攻击”。这称为DNS中毒。一旦做到这一点,为什么要执行MITM。客户的所有数据都将发送到您的服务器。比赛结束了。但是,除非您说服awesomebank.example的DNS注册商将其解析为您的IP,或者利用其DNS基础结构中的漏洞,否则您很难轻松实现这一目标。甚至可以通过DNS更改锁定来缓解。许多现有的CA已经自动化。他们只会检查您是否可以接收到发送到admin@example.com的电子邮件。
仅当使用缓存时,即使DNS(缓存)中毒也有效。如果解析程序设计为在每次查找时都专门遵循委托链,甚至可能对所有替代方案都这样做,并确保响应匹配,则可以轻松地高度缓解这种攻击。由于证书签名是一种相对低频的操作,因此这样的操作不会显着影响其他系统,也不会显着增加获得证书所需的时间。
这是整个基于CA的PKI的缺陷。替代方法,例如使用信任网络(例如PGP),将更能抵抗这种类型的攻击,因为您需要欺骗多个人以信任您的MITM身份,而不是单个CA。
@void_in“所有客户的数据都将发送到您的服务器”只有在客户端实际建立到服务器的TLS连接的情况下,情况才会如此。为此,您(通常)需要具有有效的域名证书(由受信任的CA签名)。为了获得这一点,您需要在验证过程中欺骗CA。