10. PKI - HTTPS单向认证和双向认证

10. PKI - HTTPS单向认证和双向认证

所谓的HTTPS单项认证和双向认证,其实是SSL/TLS的单项认证和双向认证。在8. PKI - SSL/TLS Handshake Protocol(TLS握手详解)已经对TLS协议有了一个比较详细的介绍。那单向认证和双向认证是怎么回事呢?

其实可以简单的理解为:

  • 单项认证是客户端要对服务器进行认证;
  • 双向认证是客户端要对服务器进行认证,同时服务器也要对客户端进行认证。

单项认证多用于B2C模式;双向认证多用于B2B模式。

下面从TLS报文角度对单项认证做一下分析:

1. 单项认证

如下图单项认证的报文中,虚线部分是省略掉的可选报文。其大致过程如下:

1)客户端发起ClientHello;
2)服务端回应SeverHello,该过程中服务器会将自己的证书发送给客户端;
3)客户端回应:客户端收到后,检查证书是否合法,主要检查下面4点:

  • 检查证书是否过期
  • 检查证书是否已经被吊销
  • 证书是否可信
  • 检查收到的证书中的域名与请求的域名是否一致

4)服务器的最后回应

在这里插入图片描述

2. 双向认证

在双向认证的报文中,多了一下三个报文:

  • Client Certificate Request
  • Client Certificate
  • Certificate Verify

1)Client Certificate Request:服务器在SeverHello消息中,会要求客户端提供“客户端的证书”
2)Client Certificate:客户端发送证书给服务器
3)Certificate Verify:客户端将之前所有收到的和发送的消息组合起来,并用hash算法得到一个hash值,然后用客户端的私钥对这个hash进行签名,并发送给服务器

服务器收到客户端证书后:

a)验证客户端证书的合法性,如果验证不通过则会拒绝连接;
b)用客户端证书中的公钥去验证收到的Certificate Verify消息中的签名。这一步的作用是为了确认证书确实是客户端的。

在这里插入图片描述

参考

HTTPS实战之单向验证和双向验证

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值