为什么SSL需要预认证?
什么是SSL预证书?
预验证是一种特殊类型的SSL证书,用作证书透明度(CT)的一部分。预证书与常规SSL证书不同,因为它们(也不能)用于对服务器进行身份验证或形成经过身份验证的连接(例如HTTPS连接)。其唯一目的是允许将证明已记录证书的证据直接嵌入证书中。顾名思义,预证书先于正式证书。预证书很少会暴露给最终用户,这意味着您可能已经收到了预证书,但从不知道它的存在。
预证书在证书透明度RFC中定义。本文将以简单的语言解释什么是预证书,如何使用它们以及它们如何工作。
为什么我需要预先认证?
存在预证书,以允许将证书透明度数据直接嵌入到最终证书中。
预验证是向证书透明性日志(SCT)的证书提交证明的几种方法之一。预处理的优点是允许CT数据嵌入到SSL证书本身中,而不是作为单独的数据提供(其他方法要求SCT在握手过程中作为单独的文件发送,类似于OCSP装订)。
CT日志需要能够为证书的数据生成有效的签名(SCT),但是CA也需要日志中的SCT来创建最终证书。因此,需要一个预证书来解决此问题,它允许日志生成正确的签名而无需最终证书。
以下是需要预先认证的方案:
1.证书颁发机构(CA)将签署并向客户颁发证书。他们需要使其符合浏览器的CT策略,因此需要将证书提交到CT Log。
2.对于如何提供证明已记录证书的证据,CA有很多选择。如果他们想将证书直接嵌入到证书中,则需要使用预证书。
3.在CA签署最终证书之前,他们首先创建一个包含相同数据但以特定方式格式化的预证书,因此它不被视为有效的SSL证书。
4. CA将预证书提交到CT日志,并接收SCT(签名证书时间戳)。这是由日志签名的文件,可用于密码证明已记录客户端证书。
5. CA颁发最终证书,并且SCT嵌入其中。
6.最终用户可以部署其证书并证明其CT合规性已包括在其证书中。这是包括SCT的最佳方法。
当您搜索证书透明性日志时,您可能会遇到预身份验证,但是您无法检查关联的(有效)证书。这是因为CA不需要将后续证书提交到日志。即使客户认为预证书无效,仍会保留相同的发行标准。 CT RFC规定“预证书错误被认为等同于最终证书中的错误”。
预证书如何工作?
预证书与普通证书的不同之处在于它使用X.509 v3格式扩展名的数据字段区域。该扩展为X.509格式提供了灵活性,并允许采用新功能而无需使用该格式的新版本。
预证书包含“毒性扩展名”。是的,您没看错,此扩展程序有毒!之所以这样称呼,是因为扩展至关重要,并且不支持客户端。如果未正确解析,则官方证书将为GG(结论为无效)。当客户端遇到预身份验证时,极有可能将其视为无效。可以说,“有毒”扩展名的存在是常规证书和预证书之间的唯一区别。
有毒引伸使用唯一的OID:1.3.6.1.4.1.11129.2.4.3。 OID,也称为对象标识符,是分配给某些目的的标准化字符串,用于提供计算机可解析的格式。例如,您可以查看OID编号,并已为其分配了以下用途:“证书透明性预先认证的毒物扩展”。 SSL证书中使用其他OID(例如1.3.6.1.5.5.7.48.1)来指示证书的OCSP URL。
例如,如果您在Windows中下载并打开预身份验证,则该外观与常规服务器租用SSL证书非常相似。但是,在Windows“证书查看器”的“常规”窗格中,您会注意到它显示为“证书包含未标识为“关键”的扩展名。”在“详细信息”中,您将看到在该部附近列出的底部毒物扩展名(查找OID)。
因为存在此扩展名,所以Windows将预身份验证视为无效。这样可以防止在使用SSL证书(例如HTTPS连接)时使用SSL。在macOS上,证书查看器将显示“此证书无法使用(无法识别的关键扩展名)”。
在证书透明协议2.0版(仍在开发中,RFC6962)中,预身份验证的格式将从X.509更改为CMS(加密消息语法)。这意味着将大大改变预制证书的技术格式和编码,并且不再与常规SSL证书具有相同的格式。换句话说,部署CT 2.0时将不再有毒药扩展,因为不需要区分预密码和有效的X.509 SSL证书。
以上是木准科技小编的分享,木准科技专注IDC14年,为大家提供专业化广州服务器托管,广州服务器租用,广州主机托管,云服务器租用等服务器资源,详情可咨询客服了解。