TLS证书ð-简化
#网络开发人员 #react #node #tls

Is it really Youtube? Or a malicious Chady ?

介绍

假设Jayp希望通过公共互联网连接到YouTube.com。在发生任何沟通之前,会出现一些担忧:
他如何验证他确实正在与YouTube沟通? (身份验证)
杰伊普怎么知道没有人拦截他的信息? (机密性)
另外,他怎么能确定没有人更改消息? (完整性)

好吧,让我们分开解决每个问题。
首先,Jayp应该验证YouTube的身份。为此,他需要YouTube的公钥。公钥代表YouTube的身份。

问题

问题是,攻击者提出了从一台计算机上拦截一台计算机到Internet上另一台计算机并在中间攻击中启动男人的方法。有了这种攻击,我们的攻击者查迪(Chady)会注入自己的公共密钥,让杰伊普(Jayp)认为他正在与YouTube进行交流,而实际上他正在与Chady进行交流。

Chady sneaking in and sending HIS public key
Chady偷偷溜进并发送了他的公共钥匙。
现在您可能会想,可怕,不是吗?想象一下,这种攻击可能会发生什么,从窃取登录凭据或信用卡详细信息等个人信息到恶意软件分发或其他恶意目标。
那么,如何确保他收到的公共密钥真的来自YouTube?
那是数字证书的来源。(TADAAA)

TLS Certificate Sample

他们确保公共密钥确实来自YouTube,而不是来自恶意的Chady。实际上,数字证书不仅可以用于HTTP,还可以用于邮件,物联网和VPN

TLS证书中的信息

数字证书将包含许多信息,让我们探索最重要的证书。

Youtube’s Certificate as shown in the Chrome browser

  • 发行人是签署此证书的第三方,我们将稍微介入。一些基本信息将包括通用名称,组织和国家。
  • 当然,数字证书还将包括其有效性,带有两个关键领域,而不是之前和不在之后
  • 之后
  • 主题是证书的所有者,在我们的情况下将是YouTube。该主题将包含通用名称,地址和最重要的公共密钥等信息。
  • 最后,数字证书包括其签名。这是发行人签署的签名,证明该证书是真实的。 Certificate Authority

谁签名数字证书?

数字证书由名为证书局的实体签署(例如Digicert,Comodo,Symantec,Google Trust Services)。
但是等等,什么是证书机构?
好吧,简而言之,证书机构是负责发行数字证书的值得信赖的第三方组织。

证书机构有自己的公共和私钥。由此,让我们解释一下如何制作签名。
在数字证书中包含的前面提到的信息将用于HASHH,例如SHA-256算法。
生成哈希后,使用RSA不对称密钥加密使用其私钥对哈希进行加密。此加密的哈希是证书的签名,只能使用证书当局的公钥进行解密。签署此证书的证书机构公共密钥的任何人都可以解密并验证证书是真实的,尚未篡改。

当浏览器收到证书时,它将使用相同的哈希算法(在此示例)SHA-256使用相同的哈希算法哈希。然后,它使用证书机构的公钥解密签名,以使从证书局获得的哈希收到。
如果两种哈希匹配,则浏览器可以确认该证书确实来自声称的证书授权。

证书局的层次结构

存在证书机构,根证书颁发机构和中级证书机构的层次结构。

这些根CA实际上并未直接为服务器签发任何数字证书。它仅针对代表其行动的中级CA签发数字证书。中级CAS可以为另一个中级CA签发数字证书,也可以直接针对服务器发放数字证书。


因此,从根CA到服务器都有一系列信任链。
操作系统与信任商店捆绑在一起,这是受信任的根证书授权机构的列表。此列表由制造苹果和微软等操作系统的公司维护。他们都要求根证书权限进行一个或多个审核,以证明其可信赖性和有效性。

所有这些如何适合图片?让我们从开始时可视化整个过程。

首先,让我们假设youtube.com是一家全新的创业公司。 YouTube了解需要在公开可用的互联网上安全的需求,必须拥有可信赖的数字证书,并将其呈现给访问者。

步骤1:YouTube购买数字证书

首先,YouTube去寻找中间证书授权。请记住,中级证书局是服务器和根证书授权机构之间的中间人。以YouTube为例,Google拥有自己的证书授权,称为Google Trust Services。

选择中间CA后,YouTube提出了证书签名请求。证书签名请求将包含YouTube数字证书中包含的信息,例如通用名称,组织,最重要的是YouTube的公钥。 YouTube将将证书签名请求发送到中级CA。


中级证书机构将验证包含有关所有者的信息的企业社会责任,也称为主题。然后,它添加了诸如发行人信息之类的字段,即有关中间证书的信息以及有效性,然后签署所有这些信息,如先前在签名过程中所述。签署后,中级证书机构将寄回YouTube的数字证书。

YouTube现在可以将其新购买的数字证书附加到其Web服务器上。

步骤2:Jayp连接到YouTube.com观看健身视频


当他将连接到YouTube时,YouTube将发送自己的证书和中级证书证书。根证书授权将不会发送,因为它可在Jayp的操作系统上使用。
YouTube的证书将包括发行人信息,即中级证书机构。因此,浏览器将知道该证书由Google Trust Services Services Services中级证书授权机构签署,并具有其证书。如前所述,任何数字证书都将包含信息和签名。
浏览器将哈希列出所有信息以获得其哈希值。然后,它将使用发行人的公钥解密签名,换句话说,是中级证书局的公钥。同样,请记住,只能使用发行人的公钥解密签名。之后,浏览器将比较两个哈希值,如果它们是相同的,那么链条的这一部分将被验证,并且浏览器将继续验证中间证书授权机构,因为如说明,中间证书局不会直接信任操作系统。


好的,现在浏览器将验证Google Trust信任中级证书颁发机构的证书。该中级证书由Google Trust Services Services根证书授权签署。
请注意,在此步骤之前,我们可以在终点证书和根证书之间有许多中间证书机构,对于链的每个部分,将发生相同的验证过程。


在我们的示例中,我们将坚持一个。
中间证书授权证书的签名将通过以前的根证书授权的公共密钥进行验证。
到达根证书授权时,这就是链条的结束。自签名的根证书授权将在Jaypee的操作系统信托商店中提供。


就是这样!经过此验证后,浏览器将显示一个漂亮的锁图标,就像浏览器中的锁定图标一样。现在可以保证,沟通确实与YouTube有关,并且它是安全的(Hooray)

三种类型的域证书

在总结之前,我们将很快解释三种主要类型的TLS证书。

1)单域证书


单个域证书旨在保护单个完全合格的域名。这意味着证书仅适用于一个特定域,并且不涵盖任何子域或其他域。例如,对于域“ www.youtube.com,”,单个域证书只能确保该域而不是其他任何变化,例如“ Academy.youtube.com”或“ blog.youtube.com”
用例:当您拥有一个不需要其他子域的网站或Web应用程序时,单个域证书是理想的选择。它们是确保特定领域的最直接,最具成本效益的选择。

2)通配符证书


接下来,我们将使用通配符证书,该证书是使用单个证书为主要领域及其所有子域的TLS证书。通配符asterix在通用名称(CN)字段或主题替代名称(SAN)字段中使用,以指示指定域下的任何子域都涵盖。例如,如果您有“ .youtube.com”的通配符证书,则它将确保“ youtube.com”,“ Academy.youtube.com ”,“ blog.youtube.com”等等上。
用例:通配符证书使您免于必须管理和续订每个子域的单个证书。但是,必须注意,通配符证书仅涵盖一个子域。例如,“*.youtube.com”的通配符证书不会覆盖“ Academy.blog.youtube.com。”

3)多域(SAN)证书


多域证书(也称为主题替代名称证书)允许您在单个证书中保护多个无关域。每个要确保的域或子域都列在主题的替代名称(SAN)证书扩展中。
例如,Google和其他大公司将使用这些多域证书。
主要好处之一是简化的证书管理:Google运营着许多Web服务和应用程序,每个服务都有自己的域或子域。使用多域证书使他们可以将多个域或子域的证书的管理合并为单个证书。这简化了证书发行,续订和监视的过程。

就是这样。请有时间检查动画版本;)

在我的下一篇文章中,我将与tls

讨论加密