Http 双向认证与单向认证

单向认证

1.客户端发起建立HTTPS连接请求,将SSL协议版本的信息发送给服务器端;
2.服务器端将本机的公钥证书(server.crt)发送给客户端;
3.客户端读取公钥证书(server.crt),取出了服务端公钥;
4.客户端生成一个随机数(密钥R),用刚才得到的服务器公钥去加密这个随机数形成密文,发送给服务端;
5.服务端用自己的私钥(server.key)去解密这个密文,得到了密钥R
6.服务端和客户端在后续通讯过程中就使用这个密钥R进行通信了。

双向认证

1.客户端向服务端发送SSL协议版本号、加密算法种类、随机数等信息。
2.服务端给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的证书,即公钥证书
客户端使用服务端返回的信息验证服务器的合法性,包括:

证书是否过期
发型服务器证书的CA是否可靠
返回的公钥是否能正确解开返回证书中的数字签名
服务器证书上的域名是否和服务器的实际域名相匹配
验证通过后,将继续进行通信,否则,终止通信

3.服务端要求客户端发送客户端的证书,客户端会将自己的证书发送至服务端
4.验证客户端的证书,通过验证后,会获得客户端的公钥
5.客户端向服务端发送自己所能支持的对称加密方案,供服务器端进行选择
6.服务器端在客户端提供的加密方案中选择加密程度最高的加密方式
7.将加密方案通过使用之前获取到的公钥进行加密,返回给客户端
8.客户端收到服务端返回的加密方案密文后,使用自己的私钥进行解密,获取具体加密方式,而后,产生该加密方式的随机码,用作加密过程中的密钥,使用之前从服务端证书中获取到的公钥进行加密后,发送给服务端
9.服务端收到客户端发送的消息后,使用自己的私钥进行解密,获取对称加密的密钥,在接下来的会话中,服务器和客户端将会使用该密码进行对称加密,保证通信过程中信息的安全。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值