小伙伴们在面试过程当中会遇到一些HTTPS相关问题面试
我大概收集整理了下算法
这些问题咱们均可以在如下文章中找到答案
被窃听解决安全
遇假装解决服务器
遭篡改解决并发
HTTP + 加密 + 认证 + 完整性保护
= HTTPS加密
HTTPS 不是新协议,只是HTTP通讯接口部分用SSL和TLS代替code
HTTP + SSL = HTTPS
接口
HTTPS : HTTP -> SSL -> TCP -> IP
HTTPS : HTTP -> TCP -> IP登录
对称密钥加密(共享密钥加密):加密解密用同一个密钥随机数
非对称密钥加密(公开密钥加密):一把私有密钥(只有本身知道),一把公开密钥(任何人均可以知道)
HTTPS采用共享密钥加密
与公开密钥加密
混合加密机制,保证处理速度和安全性
- 交换密钥阶段: 使用公开密钥加密 能够简单理解为加密的是共享密钥的公钥(保证安全) - 创建通讯交换报文: 使用共享密钥加密 加密的是通讯的报文(保证速度)
公开密钥
登陆证书认证机构数字签名
并颁发公钥证书
客户端支持的加密算法 = [A,B,C]
客户端随机数 = R1
服务端随机数 = 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知识尽量的作了简化处理,某些细节没有深究,望见谅