L03 登录与授权、HTTPS 和 TCP IP 协议族

版权声明:转载请附明原文链接 https://blog.csdn.net/songyuequan/article/details/83714231

本节重点

  • OAuth2
  • https 传输

登录和授权

  • Cookie
  • Authorization
    • 把具有一定权限的令牌赋予你。
    • 现实中的例子:尚方宝剑。皇上是授权方,包拯是被授权方。
    • 登录也是一种授权:把本来属于客户端的权限赋予客户端。

Cookie

  • Cookie的起源:购物车
    • 早期网站的开发者就是浏览器的开发者。做了一个本地存储购物车的功能,叫做Cookie
  • Cookie的工作机制
    在这里插入图片描述
    • 是由服务端来管理的
  • Cookie的作用
    • 会话管理:登录状态,购物车等
    • 个性化:用户偏好,行为
    • Tracking:分析用户行为
  • XSS (Cross-site scripting):HttpOnly(本地脚本看不到)
  • XSRF((Cross-site request forgery):Referer

Authorization

Basic

Bearer

  • 格式:Authorization: Bearer
  • bearer token 的获取方式:通过 OAuth2的授权流程
  • OAuth2流程
  1. 第三方网站向授权方网站申请第三方授权合作,拿到 client idclient secret
  2. 用户在使用第三方网站时,点击「通过 XX (如 GitHub) 授权」按钮,第三方网 站将跳转到授权方网站,并传入client id 作为自己的身份标识
  3. 用户点击「同意授权」按钮后,授权 方网站将跳转回第三方网站,并传入Authorization code作为用户认可的凭证。
  4. 第三方网站将 Authorization code 发送回 自己的服务器
  5. 服务器将 Authorization code和自己的 client secret并发送给授权方的服务器,授权方服务器在验证通过后,返回 access token。OAuth 流程结束。
  • 为什么OAuth2 要引入Authorization code,并需要申请授权的第三方将 Authorization code 发送回自己的服务 ,再从服务器来获取 access token,而不是直接返回 access token ?这样复杂的流程意义何在? 为了安全。OAuth2 强制授权流程必须使用HTTPS,因此需要保证当通信 路径中存在窃听者时,依然具有足够的安全性。
  • 在自家App中使用Bearer token
    • 有的 App会在Api的设计中,将登录和授权设计成类似 OAuth2 的过程,但简化掉 Authorization code 概念。即:登录接口请求成功时,会返回 access token,然后客户端在之后的请求中,就可以使用这个access token 来当做 bearer token 进行用户操作了 。
  • Refresh token
    • ⽤法:access token 有失效时间,在它失效后,调⽤ refresh token 接⼝,传⼊ refresh_token
      来获取新的 access token。
    • ⽬的:安全。

    当 access token 失窃,由于它有失效时间,因此坏⼈只有较短的时间来「做坏
    事」;同时,由于(在标准的 OAuth2 流程中)refresh token 永远只存在与第三⽅服务的服务
    器中,因此 refresh token ⼏乎没有失窃的⻛险。

TCP/IP 协议族

概念

一系xie协议所组成的一个网络分层模型

为什么要分层

因为网络的不稳定性

具体分层

  • Application Layer 应 层:HTTP、FTP、DNS
  • Transport Layer 传输层:TCP、UDP
  • Internet Layer 络层:IP
  • Link Layer 数据链 层:以太 、Wi-Fi

长连接

为什么要长连接

因为移动网络并不在 Internet 中, 是在运营商的内网,并不具有真正的公 IP,因此当某个TCP连接在一段时间不通信之后, 网关会出于网络性能考虑而关闭这条TCP连接和公 的连接通道,导致这个TCP端口不再能收到外部通信消息,即TCP连接被动关闭。

连接的实现方式

心跳。即在一定间隔时间内,使TCP连接发送超短 意义消息来让网关不能将自己定义为「空闲连 接」,从而防止关将自己的连接关闭。

HTTPS

  • HTTP over SSL
  • SSL: Secure Socket Layer ——> TLS Transport Layer Secure
  • 定义:在HTTP之下增加的一个安全层,用于保障HTTP的加密传输。
  • 工作原理:在客户端和服务端之间(使用非对称加密)协商出一套对称密钥,每次发送信息之前将内容加密,收到之后解密,达到内容的加密传输

为什么不直接使用非对称加密

  • 对称加密由于使用了复杂数学原理,因此计算相当复杂,如果完全使用非对称加密来加密通信内容,会严重影响网络通信的性能

HTTPS 链接

  • 加密套件
    • TLS 版本
    • 非对称加密
    • 对称加密
    • hash算法
  • 过程
    • Client Hello (加密套件)
    • Server Hello (加密套件)
    • 服务器证书
      • (核心是非对称加密的公钥)
      • 服务器地址
      • 证书签名
      • 证书机构信息
        • 证书机构公钥
        • 证书机构其他信息
          • 证书机构签发方
    • Pre-master Secret(唯一一次非对称加密)
    • Master Secret
      • 客户端加密密钥
      • 服务端加密密钥
      • 客户端 MAC Secret
      • 服务端 MAC Secret

HMAC

Hash-based Message Authenticate Code

猜你喜欢

转载自blog.csdn.net/songyuequan/article/details/83714231