HTTPS详解

关于为什么使用HTTPS,为什么选用对称加密和非对称加密混合方式,网上有很多,可以参考如下两篇文章:
1.HTTPS 原理详解
2.一个故事讲完https

HTTPS的步骤

  1. 浏览器发起请求https://www.jianshu.com
  2. 服务器发送一个SSL证书给浏览器,SSL 证书中包含的具体内容有,SSL证书的公钥使用非对称加密算法:
    (1)证书的发布机构CA
    (2)证书的有效期
    (3)公钥
    (4)证书所有者
    (5)签名
  3. 浏览器验证证书是否有效
    验证步骤有:
    (1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
    (2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发
    (3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。
    (4)如果找到,那么浏览器就会从操作系统中取出 颁发者CA 的公钥,然后对服务器发来的证书里面的签名进行解密
    (5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
    (6)对比结果一致,则证明服务器发来的证书合法,没有被冒充
    (7)此时浏览器就可以读取证书中的公钥,用于后续加密了
    (8)如果没有验证通过,浏览器就会报错,而用户选择了“了解风险,继续操作”,浏览器依然会取出公钥往下进行。
  4. 浏览器随机选择一个对称加密算法和秘钥,用第2步证书中的公钥加密,传输给服务器
  5. 服务器收到后,用非对称加密算法的私钥解密(只有私钥能解密),获得后续传输使用的对称加密算法和秘钥
  6. 浏览器和服务器使用该对称加密算法和秘钥加密后的内容进行传输。

使用Fiddler等代理的时候,是如何能拦截https请求的

  1. fiddler拦截https请求,替换SSL证书中的公钥,改为自己的公钥(因为用公钥加密的内容只有私钥才能解密,所以fiddler要替换为自己的公钥),因为修改了SSL证书的内容,fiddler并用自己的私有CA私钥对内容进行了重签名,导致浏览器验证签名无效,故需要安装fiddler的根证书使浏览器信任该CA。
  2. 浏览器拿到的SSL证书中的公钥(其实为fiddler的公钥,并不是服务器的公钥),进行上述第4步操作
  3. fiddler拦截上述第4步操作,替换其中内容,使用真正的服务器公钥加密和服务器通信,此后的所有通信中,fiddler先对服务器内容解密,然后在用浏览器的对称算法和公钥加密传输给浏览器。达到拦截解析https的目的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 超文本传输安全协议(HTTPS,常称为 HTTP over TLS/SSL)是一种通过计算机网络进行安全通信的传输...
    MarchCd阅读 12,000评论 1 22
  • 计算机通信原理 互联网的关键技术就是TCP/IP协议。两台计算机之间的通信是通过TCP/IP协议在因特网上进行的。...
    jackyshan阅读 8,265评论 2 5
  • 协议 1、HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器...
    大富帅阅读 4,276评论 0 11
  • 一、前言 1.通信的加密(报文传输通道的加密,即对称加密算法协商过程的加密) 2.内容的加密(报文主体的加密,即对...
    南慕瑶阅读 4,270评论 0 0
  • 不知怎么的,觉得有一门手艺,就可以找到自己。 每天散步的那条路的尽头,有一个手艺人,一个记忆深刻的手艺人,一个做桌...
    13小八阅读 1,490评论 0 0

友情链接更多精彩内容