HTTPS 工作原理详解

HTTP简介

HTTP 是一种在客户端和服务器之间进行文本传输的request-response协议,在四层网络协议中位于第四层也就是应用层。HTTP是基于TCP来保证文本传送的准确性和完整性。

HTTPS相比较HTTP多了什么?

在HTTP协议和TCP协议中间增加了SSL或TSL协议,用于保证HTTP传输的安全性。下图为HTTPS 传输流程。在HTTP传输中,没有证书,没有对称密钥,没有公钥私钥,客户端发送请求,服务端找到内容直接明文回传。

HTTPS传输流程

HTTPS之证书如何验证?

验证的流程可以通过下图明确的展示

介绍一些术语

加密

传输的内容不想被第三方知道,对明文进行加密

认证

让对方确认内容是自己发出的,且内容没有被篡改

指纹

对证书明文进行Hash算法得到一个字符串哈希值(内容摘要)

数字签名

用私钥对指纹加密得到数字签名

证书

证书包含申请者的公钥,申请者的组织信心,签发机构CA的信息,有效时间,证书序列号,摘要(指纹),生成摘要的哈希算法,数字签名算法等明文。签名是使用CA机构的私钥加密生成的。

下图所示,为优快云的服务端证书完整内容:

优快云证书内容

客户端如何验证服务端发来的证书的准确性

客户端在收到证书后,知道签发的CA机构。浏览器会内置根证书,如优快云的证书所,根证书由DigiCert自己颁发给自己,二级机构GeoTrust CN RSA CA G1的证书由DigiCert颁发,优快云的证书由二级机构给其颁发。二级机构证书的认证由一级机构来验证,而优快云的证书则有二级机构的证书来认证。

以二级机构和优快云为例,首先说证书的颁发过程:二级机构首先对证书明文进行哈希计算(使用证书中所示的签名哈希算法)得到指纹,然后使用私钥Y'对指纹进行加密(使用证书中所示的签名算法)得到签名,私钥Y'由二级机构自己持有。然后将证书附带数字签名颁发给优快云。

三级证书之间的逻辑联系

客户端 向优快云发起HTTPS请求,优快云作为服务端回传给客户端优快云证书和数字签名。客户端根据优快云发给的证书得到其证书路径,然后向二级机构获取对优快云证书进行认证的公钥Y。客户端在向二级机构获得公钥Y时,二级机构会回传另外一个证书(称之为二级机构证书),这个证书中含有公钥Y,二级机构证书是为了验证二级机构是二级机构。二级机构证书的由根证书颁发(由X’进行签名),而根证书则在浏览器内置。使用根证书中附带的公钥X对二级机构证书数字签名解密,得到散列值C,然后使用二级证书中的签名哈希算法对二级证书进行哈希得到散列值C',若C==C',则二级证书有效。二级证书有效,使用二级证书中附带的公钥Y对优快云数字签名解密得到哈希值B,然后使用优快云证书中的签名哈希算法对优快云证书哈希得到另一个哈希值B',若B==B',则优快云证书有效。

优快云证书不由浏览器内置根证书颁发机构直接颁发,流程会比较绕,尤其是公私钥的成对情况。谨记私钥始终是由机构自己持有,公钥发给其他方。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值