HTTPS原理解析

HTTP与HTTPS区别

http发送数据以明文方式发送,存在被窃取,HTTPS是指使用http与ssl协议,访问过程会先和服务端建立链接,返回服务器网站证书,确认无误。

对称加密

  原理:存在加密密钥K与解密密钥K一致,加密数据data。

  举例:

  1. 浏览器(C端)向服务端(S端)发送数据,C端使用加密密钥K加密数据转为密文cT,S端接收到cT使用解密密钥K解析。
  2. 那么密钥K如何生成?因为S端仅有一个,因此密钥K在S端生成,当C端访问S端,会获取到密钥K。
  3. 缺点:如果存在黑客拦截,监听发送,获取到密钥K,则会导致数据被窃取。

非对称加密

  原理:公钥pK、私钥sK,加密数据data。

  举例:

  1. 密钥均存放于服务端。
  2. 浏览器(C端)向服务端(S端)访问,获取公钥pK。
  3. C端向S端发送数据data,使用公钥pK进行加密生成cT,S端接收cT使用私钥sK解析获取数据。S端向C端发送数据data,使用私钥sK进行加密产生cT ' ,C端接收cT'使用公钥pK解析获取数据。
  4. 缺点:如果存在黑客拦截,也可以在(2)中拦截获取公钥pK,进而解析(3)中S端向C端发送的数据cT',导致数据被窃取。

对称加密+非对称加密

原理:私钥sK由服务方指定,首次公钥有服务方指定,下次使用协商公钥、加密数据data。

举例:

  1. 公钥、私钥存放于服务端。
  2. 浏览器(C端)向服务端(S端)访问,获取公钥pK。
  3. C端产生一个key数据,通过公钥pK进行产生加密数据cT,发送到S端,S端使用私钥sK解密出key,此时双方均持有key,使用key作为新公钥(S端回复C端收到)。
  4. 此后C端发送数据使用key加密,S端使用key解密(即对称加密)。
  5. 缺点:如果存在黑客拦截,直接拦截(2),C端访问S端,黑客冒充S端,返回C端一个假的pK,黑客冒充C端,向真正S端发送请求,获取真正pK,此后重复(3)过程,将会导致C端key存放在黑客S端,而黑客在冒充C端到真正S端使用key' 作为公钥,在(4)中,黑客冒充S端,获取C端key数据并窃取C端数据,黑客冒充C端向服务端在窃取S端数据,充当中间人

权威机构CA

原理:CA颁发cpK、CA持有csK。

举例:

  1. S端向CA机构获取证书license,CA使用csK加密S端pK产生license(付费)。
  2. C端向S端获取license后,使用cpK获取解密license获取pK,而cpK也可能被截获,因此直接写死在操作系统OS中,即C端已有cpK。
  3. 此后C端发送数据使用pK加密,而S端使用sK解密。

使用:对称加密+非对称加密+CA

HTTPS验证原理

Https在真正请求数据前,先回与目标服务器进行握手验证,以证明双方的正确性,没有中间人。

通信过程:

  1. C端发起https请求,将SSL/TSL版本、C端支持的机密算法种类(cipher)发送到S端。
  2. S端接收到cipher与自身对比,不支持就断开链接,否则选取一种加密算法和Hash算法,以证书形式返回C端(包括:公钥pK、颁发机构、自身网址、失效日期)。
  3. C端接收证书,验证证书合法性:是否合法与过期,是否证书中网址地址与当前地址保持一致,通过提示小锁,否则ishi红色小锁。
  4. 验证通过后,生产随机密码key,用证书中公钥pK加密,生成Hash握手消息(将握手消息取Hash值,使用随机数key加密生成'握手消息+握手Hash值')发送给S端。
  5. S端接收到C端数据,用私钥解密取出随机数密码key,使用key解密取出'握手消息+握手Hash值',进行比较验证C端身份。
  6. S端同样重复4过程,发送到C端。
  7. C端同样重复来确定S端身份。

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值