“Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。”
最近因为开发h5,故有需要去配置学习charles,进而认识到了SSL/TLS(HTTPS中的S)。 对于HTTPS请求,会在建立连接之前进行SSL/TLS握手确定后续传输信息的加密密钥。现在记录下学习到的内容。
了解SSL/TLS
用来规范在网络传输中信息加密的协议
主要作用: 身份验证、信息加密、完整性校验
主要手段: 密码算法、数字签名算法、数字证书
用一句话概括SSL/TLS:
利用加密算法和数字证书在建立连接之前进行握手以获得对传输信息加密的密钥,对传输信息进行加密,保证信息的安全。
SSL和TLS的关系:
TLS 是 对SSL3.0版本进行标准化,并加入了一些机制,更名为TLS
获得密钥过程
使用选定的密码套件,对三个随机数进行算法处理生成密钥,从而对传输信息进行加密
关键字: 对称加密、非对称加密
文字说明:
第一步:
客户端发送自己所支持的密码套件、一个随机数、本次SSL/TLS握手所使用的SSL/TLS协议版本号
第二步:
服务端收到客户端发送来的信息后,在客户端所支持的密码套件中选定合适的密码套件。后返回一个随机数和证书给客户端
第三步:
客户端收到证书后,首先验证证书是否可信任,若是证书是可信任的,生成一个随机数,后使用证书中所包含的公钥对随机数进行加密,返回随机数给服务端
第四步: 服务端收到公钥加密的随机数后,使用私钥进行解密,得出随机数。后使用之前选定的密码套件和三个随机数进行算法处理得出一个密钥,在后面传输中使用密钥进行对传输信息进行加密传输。
参考资料: