HTTP over SSL 的简称,即工做在 SSL(安全套接字层) 或TLS(SSL的升级版)上的 HTTP。说白了就是加密通讯的HTTP。算法
必定注意HTTPS不是协议。安全
加密解密数据用的对称加密,传输Pre master sercert和证书验证使用的非对称加密。服务器
非对称加密因为使用了复杂的数学原理,所以计算至关复杂,若是彻底使用非对称加密来加密通讯内容,会严重影响网络通讯的性能。网络
1. 对称加密算法
2. 非对称加密算法
3. Hash算法
4. SSL或者TLS版本号
5. 一个随机数
复制代码
1. 对称加密算法
2. 非对称加密算法
3. Hash算法
4. SSL或者TLS版本号
5. 一个随机数
复制代码
那么此时客户端和服务端就拥有了相同的性能
1. 对称加密算法
2. 非对称加密算法
3. Hash算法
4. SSL或者TLS版本号
5. 两个随机数
复制代码
看图:加密
1. 首先咱们经过发来证书的根证书在本地找寻相同的根证书(本地根证书通常是操做系统自身已经带着的)。
2. 取出根证书的公钥对证书的签名(用证书私钥对发来公钥进行加密的一个Hash值)作认证(公钥解密)。
3. 比对验证后的数据(Hash)和发来证书公钥的Hash值是否相同,若是相同则认证经过,说明是一个受信任的证书。
复制代码
1. Client Hello
2. Server Hello
3. 服务器证书 信任创建
4. Pre-master Secret
5. 客户端通知:将使用加密通讯
6. 客户端发送:Finished
7. 服务器通知:将使用加密通讯
8. 服务器发送:Finished
复制代码
由于它要求你手动信任了它的根证书。此时它就能够篡改证书为它本身的证书了,HOST NAME直接篡改成目标服务器不变,证书公钥是它自身的假机构签发的而你本地又信任了它的根证书,那么此时证书的验证是能够经过的,后续的Pre Master-Sercert它也能够获取到了,那么最后它是持有密钥的
。Fiddler至关于当了中间人,客户端服务端两头骗,因此咱们平时不要信任未知的证书。spa
可参考:blog.csdn.net/hbdatouerzi…操作系统