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、颁发证书(CA)的机构默认是可靠的,只有那么少数几家,可以理解为他们是根证书,下面还有树形结构的证书机构,但是根都是要从这几家进行颁发的,而根证书的公钥列表是内置到操作系统的
3、当服务端发送公钥的时候,会使用证书的私钥进行数字签名,如果是由下级机构颁发的证书,证书里会携带上级颁发机构的证书(证书里含有颁发机构的公钥),通过公钥来验证下级机构的证书不是伪造的,回溯到CA根机构。
4、客户端收到证书和加密信息,会根据证书的公钥 进行验签,验签的过程是从当前机构的证书一直查找到根证书,进行自上而下的验签过程,操作系统内置的树形证书颁发机构,首先从当前的子机构层层查找到CA根节点,再用操作系统内置的CA根公钥验证,证明第一层颁发者不是伪造的,之后通过第一颁发者证书上的公钥验证下一层 颁发者不是伪造的,直至证明所有的证书都是可信的。最终证明该证书是直接或间接由根颁发才是可靠的。验证过程可能会出现 证书的盗用的或证书是不受信任的两种警告
5、验签成功则说明证书是可信任的
网友评论