https原理详解

技术标签: https  ssl  数字签名  数字证书

1.https作用

Secure Hypertext Transfer Protocol(安全超文本传输协议),是在http协议基础上增加了使用SSL加密传送信息的协议,从而保证信息传输的安全性。

2.https原理

主要采用了SSL的握手获取对称秘钥,从而服务器和客户端通过该秘钥对数据进行加密和解密。由于客户端和服务端是通过对称秘钥加解密,也保证了加解密的效率。

3.SSL握手过程

在这里插入图片描述

3.1.客户端发送请求

  1. 发送一个随机数n1
  2. 发送支持的加密方式
  3. 支持的协议版本,如TSL1.0版本

3.2.服务端回应

  1. RSA方式:生成RSA公钥和私钥,发送RSA的公钥;DH加密方式:生成DH公钥和私钥,发送DH的公钥
  2. 发送一个随机数n2
  3. 发送确认的加密方式和确认的协议

3.3.客户端回应

  1. RSA加密方式:根据服务器RSA公钥生成随机数n3;DH加密方式:根据服务器DH公钥生成本地公钥和私钥,通过服务器DH公钥和客户端生成的私钥生成随机数n3
  2. RSA加密方式:发送随机数n3;DH加密方式:发送客户端生成的公钥
  3. RSA加密方式:n3加密前的值+n1+n2生成对称加密秘钥;DH加密方式:n3+n1+n2生成对称加密秘钥
  4. 发送结束通知和客户端握手结束通知,后续使用双方协商的加密方式加密

3.4.服务端回应

  1. RSA加密方式:根据本地私钥解密随机数n3,n3解密后的值+n1+n2生成对称加密秘钥;DH加密方式:通过客户端的公钥和本地私钥生成随机数n3,n3+n2+n1生成对称加密秘钥
  2. 向客户端发送确认加密结束握手的通知,并表示随后都是用双方协商的加密方式加密

4.SSL过程中如何保证公钥不被篡改

将公钥放在数字证书中,只要证书可信,公钥就是可信的。

5.数字证书和数字签名

  • 数字签名:
    • 服务器端是对传输的数据,通过私钥加密后的数据就是签名
    • 客户端比较数据和通过公钥解密签名的数据是否一致,就防止了数据被篡改
  • 数字证书:由证书机构进行数字签名
    • 服务端通过证书机构,对传输的数据进行私钥加密,然后将数据和证书传输给客户端
    • 客户端通过证书机构的公钥进行解密操作,确认数据与传输的数据一致

参考




版权声明:本文为博主原创文章,遵循版权协议,转载请附上原文出处链接和本声明。
本文链接:
幸运赛车 快乐赛车开奖 河北11选5开奖 欢乐生肖 三分PK拾平台 快乐赛车 PK10牛牛 三分快3 一分时时彩 澳门最有名彩票网站