HTTPS证书

HTTPS证书

网站要升级到HTTPS,必不可少的就是HTTPS证书,其作为各种信息的承载体,是证明网站可信的重要凭证,本文的目的在于帮助理解HTTPS证书作为可信凭证的实现原理。

HTTPS概述

HTTPS即HTTP+TLS,在HTTP与TCP之间加入一个加密层,中间传输节点在不知道密钥的前提下,难以破解双方传输的内容。这个加密层协议称为SSL(Secure Sockets Layer)或TLS(Transport Layer Security),TLS是SSL标准化过程中,升级到某个版本后顺便改了个名字。

非对称加密算法

简要描述非对称算法的特点,便于理解后面涉及的知识。

  • 非对称加密算法生成一对密钥A和B,密钥A加密的内容可用密钥B解密,反之亦然
  • 根据用途不同,公开给他人的称为公钥,自己持有的称为私钥
  • 用密钥对传输内容签名,使用公钥可以确认内容完整未被篡改
// 用privateKey对内容content签名,通过publicKey验证
sign = encrypt(MD5(content), privateKey);
success = decrypt(sign, publicKey) === MD5(content);

证书的可信度

TLS协议握手阶段,客户端依赖网站服务器的公钥发送加密消息,以确保只有拥有私钥的网站服务器才能解密。证书是公钥的载体,因此至关重要的就是确保客户端收到的证书是服务器所提供的,保证流量不被窃听的关键即解决证书可信度问题。

客户端不能预先知道所有的网站对应的证书,必须借助其它方式判断证书的确是网站提供的,TLS协议判断证书可信度主要借助信任链的传播。可用现实生活中的担保机制帮助理解:甲相信张三,张三为李四提供担保,则甲认为李四可信,同时李四为王五提供担保,则甲认为王五也可信……

上述担保例子的人物对应到计算机名词,甲指客户端,张三和李四是证书颁发机构,王五是你所访问网站提供的证书,其中张三是根证书颁发机构,李四是中级证书颁发机构。客户端(甲)认为网站(王五)可信的充分条件如下:

  • 客户端(甲)信任根证书颁发机构(张三)
  • 根证书颁发机构(张三)信任中级证书颁发机构(李四)
  • 中级证书颁发机构(李四)信任网站(王五)

可借助非对称加密算法的特点满足上述三个条件,每个证书颁发机构与网站,都各自拥有一对密钥,其中私钥只有自己知道,公钥包含在公开的证书中。

  • 客户端通过内置根证书颁发机构的证书,表明其信任该根证书颁发机构
  • 根证书颁发机构使用自己的私钥为中级证书颁发机构的证书签名(签名包含在中级证书颁发机构的证书中),表明信任关系
  • 中级证书颁发机构同样使用自己的私钥为网站的证书签名(签名包含在网站的证书中),表明信任关系

证明信任关系依赖非对称加密算法的签名机制,用私钥对内容进行签名可用其对应的公钥验证,若用公钥验证签名成功,表明信息可信,否则表明信息被篡改。

最终网站服务需要做的就是给客户端提供自己的证书(域名,公钥,信任关系-中级证书颁发机构对证书内容的签名)、中级证书颁发机构的证书(公钥,信任关系-根证书颁发机构对证书的签名),客户端再结合自己内置的根证书颁发机构证书,即可确认网站提供的证书是可信的。

网站证书中还包含一些其他信息,如域名,组织信息,中级证书颁发机构信息等,其中域名是必不可少的一个信息,用来确认证书的可信范围,只有与网站域名对应的证书才是可信的。

证书的撤销

已经被证书颁发机构表明可信的证书,在某些情况下可能不再值得信任,例如证书颁发机构的私钥泄露,导致任何人都能为证书签名,从而伪造信任关系,这时需要证书撤销机制让客户端不再相信该证书。依赖该证书的其他证书因为信任链被破坏,也会被认为不可信。

根证书颁发机构的证书出现问题,客户端应及时将其从内置可信列表移除,所有依赖它的中级证书颁发机构,网站证书都将失效。

证书颁发机构验证过的证书出现问题,颁发机构有责任撤销该证书,实现方式有两种:

  • 证书撤销名单CRL(Certificate Revocation List),证书颁发机构需要维护一个撤销证书的序列号名单,想验证证书的人下载该名单,若出现在名单中,说明证书已经被撤销,不再可信
  • 在线证书状态协议OCSP(Online Certificate Status Protocol),证书颁发机构提供一种实时检查证书状态的机制,即客户端可实时询问证书颁发机构其所信任的某序列号对应的证书是否有效

以上两种方式依赖客户端的实现,但使用这两种方式所需要的信息应在证书颁发机构的证书中提供。

证书颁发机构

证书颁发机构应该是得到大家一致认可的权威机构,有责任核查认证对象所提供的信息,只有信息准确无误才能为其提供信任关系担保。如果某些证书颁发机构存在失责,为不可信的人提供了信任担保,让其得以欺骗他人,应该对证书颁发机构进行惩罚。

博客原文

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值