https协议的加密

https的加密过程

明文、密文、密钥、对称加密(私钥)和非对称加密(一对,公钥或私钥)

  • https握手过程
    1、首先服务端有一对密钥(公钥和私钥用于非对称加密),客户端发起经过443端口发起https请求
    2、服务端向客户端发送公钥,客户端接受到公钥后会鉴定是否是合法的公钥,合法后生成一个随机的客户端密钥(用于对称加密),将该密钥通过服务端给的公钥进行加密后发给服务端
    3、服务端用自己的私钥进行解密,得到用于对称加密的客户端密钥
    这样既保护了密钥,又可以用对称加密算法来获取更快的加密解密速度。
TSL层内置于应用层和TCP层之间

1、1.2版本是通过1.5个RTT进行连接,通过3个随机数和证书建立安全连接
2、1.3版本是通过DH算法,通过1个RTT进行安全连接,是2个随机数,结合初始的共有两个数计算出私钥

验证公钥合法

https://blog.csdn.net/zysgdhf4253/article/details/80577574
鉴定合法 其中第二步,客户端需要通过证书来鉴定服务端的公钥是否合法,因为服务端的公钥可能是伪造的(公钥加密 私钥解密; 私钥加签 公钥验签)。

1、颁发证书(CA)的机构默认是可靠的,只有那么少数几家,可以理解为他们是根证书,而根证书以及他们的公钥会被内置到操作系统,所以每个人的电脑上都有根证书,而下面还有树形结构的其他被授权的证书机构,但是根都是要从这几家进行颁发的
2、当你的作为一个服务端需要一个证书,那么就把你的公钥和host地址发送到上级的CA机构,这里假设为一级机构,它会将你的信息添加到自己的证书上,并用自己的私钥进行签名,变成一个新的证书发送给你,而一级机构的证书是由根CA机构这样颁发的(它的信息被根CA用私钥进行了签名)。
3、服务端发送公钥给客户端的时候会携带证书,客户端可以在证书中找到根CA机构,并在电脑的操作系统中找到根CA是公钥,对证书验签,证明一级机构的证书是由根CA证书颁发的,再用一级机构的证书的公钥给服务器的证书验签,证明服务器的证书是由一级机构颁发的,也就证明了服务端的证书是可靠的。

注意:

  • 证书可以自签名(自己做CA),但是不受信任,因为浏览器并没有内置你的证书公钥
  • 验证过程可能会出现 证书的盗用的或证书是不受信任的两种警告

你可能感兴趣的:(https协议的加密)