HTTPS/TLS 协议 HTTPS协议安全超文本传输协议并不是一个全新的协议是在HTTP协议的基础上在应用层和底层的TCP之间进行了加密添加了ssl加密层 加密的方式有两种对称加密和非对称加密对称加密对称加密的计算速度极快能够支撑海量数据的快速传输非对称加密主要用于SSL/TLS握手阶段。客户端使用服务器提供的公钥进行加密。客户端分发公钥的过程其实就是向客户端发送“数字签名”也就是CA证书因为只有服务器掌握了私钥所以只有服务器可以接收到客户端发的报文一般是双方在协商密钥的阶段会使用后续双方都掌握了密钥就使用对称加密进行报文的传输因为对称加密的计算速度极快能支撑海量数据的快速传输数据摘要数据指纹数据摘要是文本信息经过了hash函数的运算也就是单向散列函数的运算之后生成的具有不可逆性摘要的特征摘要实际上不是一种加密但是它能确认报文有没有被篡改过数字签名摘要经过加密后形成的最后HTTPS采用的方案是对称加密非对称加密证书认证CA证书是如何形成的1.首先由server向CA机构发起申请生成公钥与私钥对确认申请信息包括域名/申请者/公钥生成请求文件csr不包含私钥信息2.CA机构对server发起的申请进行审核。3.审核通过就用非对称加密签发证书证书大致分为两个部分签名和明文信息明文信息中包含了域名和server的公钥两个重要的信息server再把证书进行一个安装。4.server返回证书给client5.client对证书进行验证计算明文信息INFO的摘要用CA证书的公钥解密签名对比两个摘要最后验证其他信息如域名/有效时间/是否吊销这样client也就拿到了CA证书了CA证书形成了双方就要开始通信了。先由客户端生成一个随机数发送给服务器服务器收到后发送CA证书以及一个服务器随机数给客户端客户端确认证书上的签名和明文信息有效由于证书中是包含了服务器的公钥的所以客户端可以通过证书拿到公钥生成了一个绝密的“预主密钥”用服务器的公钥进行加密传回给服务器服务器通过只有自己掌握的私钥拿到了“预主密钥”这样一来双方就有了三个数两个名牌的随机数服务器随机数和客户端随机数以及一个由客户端生成的预主密钥双方通过这三个数就能用加密算法算出最终的密钥从而进行快速的对称加密通信了最终对称会话密钥 PRF算法(确定的预主密钥 两张明牌的随机数)