小伙伴们在面试过程当中会遇到一些HTTPS相关问题面试
我大概收集整理了下算法
这些问题咱们均可以在如下文章中找到答案安全
HTTP + SSL = HTTPS
HTTP + 加密 + 认证 + 完整性保护
= HTTPS服务器
HTTPS 不是新协议,只是HTTP通讯接口部分用SSL和TLS代替并发
HTTPS : HTTP -> SSL -> TCP -> IP加密
HTTPS采用共享密钥加密
与公开密钥加密
混合加密机制,保证处理速度和安全性code
公开密钥
登陆证书认证机构数字签名
并颁发公钥证书
客户端支持的加密算法 = [A,B,C]
接口
客户端随机数 = R1
class
服务端随机数 = R2
登录
TLS四次握手
Client Hello
客户端请求创建链接,向服务端发送(R1 + [A,B,C]
)
Server Hello
服务端 回复(R2 + [A] + 证书(非对称加密公钥)
)
Client Key Exchange
客户端 验证证书 而后经过 [A] -> key
key + 非对称加密公钥 = 加密key
并发送(加密key
)
Server Finish
服务端 利用 加密key + 非对称加密私钥 = 解密key
同时利用 R1 + R2 + 解密key = 对称加密的密钥
此后的HTTP连接数据传输即经过对称加密方式进行加密传输。
SSL
是一种安全传输协议,因为安全的缘由SSL v1.0和SSL v2.0都没有公开,直到SSL v3.0。
TLS
是SSL v3.0的升级版,目前市面上全部的HTTPS都是用的是TLS,而不是SSL
为保证小伙伴们快速理解记忆,本文对HTTPS知识尽量的作了简化处理,某些细节没有深究,望见谅