HTTP学习笔记 2018-08-07

2018-08-07_HTTP与HTTPS笔记

HTTP的缺点

  1. 通信使用明文, 内容可能被窃听

  2. 不验证通信方的身份, 因此有可能遭遇伪装

  3. 无法证明报文的完整性, 所有有可能已经遭到篡改

通信使用明文可能会被窃听


1. 通信加密

通过SSL(Secure Socket Layer安全套接层) 或者 TLS(Transprt Layer Security 安全传输层协议)对传输过程进行加密


2. 内容加密

服务器端和客户端之间的加密

不验证对方的身份可能会被伪装


1. 任何人都可以发起请求

HTTP协议通信 不存在确认通信方的处理步骤, 所以任何人都可以发起请求, 而且服务器只要收到请求, 不管对方是谁都会返回一个响应

1. 无法确定请求发送至目标的WEB服务器是否是按真实意图返回响应的那台服务器, 有可能是已伪装的WEB服务器
2. 无法确定响应回到的客户端是否是按照真实意图接受响应的那个客户端
3. 无法确定正在通信的对方是否具有访问权限, 因为某些WEB服务器上保存着重要的信息, 只想发给特定用户通信的权限
4. 无法判定请求是来自何方, 出自谁手
5. 即使是无意义的请求也会照单全收. 无法阻止海量请求下的DoS攻击(拒绝服务攻击)   


2. 查明对手的证书

通过使用证书来完成通信双方的身份验证

无法证明报文的完整性


1. 接受到的信息可能有误

如: 中间人攻击(MITM)


2. 如何防止篡改

通常使用 MD5 , SHA-1等散列值校验的方法
PGP创建数字签名

HTTPS


1. HTTPS并不是一种新的协议,而是HTTP通信接口部分用SSL和TLS协议代替

结构变化

HTTP:  应用层(HTTP) -> TCP -> IP

HTTPS: 应用层(HTTP) -> SSL -> TCP -> IP


2. HTTPS采用混合加密机制

1.使用公钥发送共享秘钥
2.使用共享秘钥加密方式    

HTTPS通信步骤

  1. 客户端通过发送 Client Hello 报文开始 SSL 通信, 报文中包含客户端支持的SSL的指定版本, 加密组件列表(Cipher Suite)(所使用的加密算法以及秘钥长度等)

  2. 服务器可进行SSL通信时, 会以 Server Hello 报文作为应答, 和客户端一样, 在报文中包含 SSL 版本以及加密组件, 服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的

  3. 之后服务器端发送 Certificate 报文 报文中包含公开秘钥证书

  4. 最后服务器发送 Server Hello Done 报文通知客户端, 最初阶段的 SSL 握手协商部分结束

  5. SSL第一次握手结束之后, 客户端以Client Key Exchange 报文作为回应. 报文中包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串. 该报文已用步骤3中的公开密钥进行加密

  6. 接着客户端继续发送Change Cipher Spec报文. 该报文会提示服务器, 在此报文之后的通信中会使用Pre-master secret密钥加密

  7. 客户端发送Finished报文. 该报文包含链接至今全部报文的整体校验值. 这次握手协商是否能成功, 要以服务器是否能够正确解密该报文作为判定标准

  8. 服务器同样发送 Change Cipher Spec报文

  9. 服务器同样发送 Finished 报文

  10. 服务器和客户端 Finished 报文交换完毕之后, SSL连接就算建立完成. 当然, 通信会受到SSL的保护, 当然, 通信会受到SSL的保护. 从此处开始进行应用层协议的通信, 即发送HTTP请求

  11. 应用层协议通信, 即发送HTTP响应

  12. 最后由客户端断开连接. 断开连接时, 发送close_notify报文, 上图做了一些省略, 这步之后再发送TCP FIN报文来关闭与TCP的通信

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值