https通信机制(http + ssl/tls)

42 篇文章 1 订阅
1 篇文章 0 订阅

https(http+ssl)

  • https协议不是应用层的新协议,只是HTTP通信接口部分用SSL 或 TLS协议代替
  • 一般情况,HTTP直接和tcp通信,使用SSL时,变成HTTP先和SSL通信,然后SSL在和TCP通信
  • SSL独立于HTTP,其他运行在应用层的协议,比如SMTP,Telnet等都可以配合SSL使用

SSL采用的是公开密钥加密:

  1. 公开密钥加密: 非对称的秘钥, 一把私有秘钥,一把公开秘钥。发送密文的一方使用对方的公开秘钥加密,对方接收后用自己的私钥解密
  2. 对称秘钥加密: 加密和解密用同一个秘钥

https采用混合加密机制:

交换秘钥缓解使用公钥加密,建立通信交换报文时用共享秘钥加密

 

CA证书(浏览器开发商一般会内置常用的公钥)

  1. 服务器运营人员向数字证书认证机构提出公钥的申请;
  2. 认证机构判明身份后,对已经申请的公钥做数字前民,分配这个已签名的公钥;
  3. 将该公钥放入公钥证书后绑定在一起;
  4. 服务器将这份公钥证书发给客户端,用于公开密钥加密方式通信;
  5. 接到证书后,客户端使用公钥对证书上的数字签名验证;(安全转交给客户端很困难,所以用内置的)

HTTPS通信

步骤详解:

  1. 客户端发送加密通信请求(client hello)【提供协议版本,客户端生成的随机数,支持的加密方法,压缩方法等】
  2. 服务器响应,如果可进行SSL通信,以server hello 报文作为应答【确认协议版本,服务端随机数,确认加密方法,服务器证书,】
  3. 服务端发送certificate报文,包含公钥证书
  4. 服务器发送server hello done通知客户端,最初的ssl握手协商结束。
  5. 客户端发送client key exchange作为回应,包含用3中公钥加密的一个随机字符串(pre-master secret)
  6. 客户端发送编码变更通知(Change Cipher Spec),之后通信采用5中的字符串密钥加密;
  7. 客户端发送finished报文,如果服务器正确解密本次报文,则本次握手协商成功
  8. 服务端发送编码变更通知
  9. 服务端发送finished报文
  10. ssl链接成功,HTTP请求;双方都发送finished报文后,ssl链接成功,这个时候开始进行应用层协议的通信,也就是
  11. 应用层协议通信,发送HTTP响应。
  12. 客户端断开链接

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值