美文网首页
浅谈HTTPS

浅谈HTTPS

作者: 貌似很有道理呢 | 来源:发表于2017-02-08 18:28 被阅读28次

HTTPS:基于 SSL/TLS 的安全的 HTTP

  1. 所有信息都是加密传播,第三方无法窃听;
  2. 具有校验机制,一旦被篡改,通信双方会立刻发现;
  3. 配备身份证书,防止身份被冒充。

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密.

SSL/TLS 的基本过程

  1. 客户端向服务器端索要并验证公钥;
  2. 双方协商生成“对话密钥”;
  3. 双方采用“对话密钥”进行对称加密通信;

SSL 数字证书的签名和验证过程

加密算法
  • 对称加密(单密钥加密)
    使用同一个密钥对数据进行加密和解密,速度快。(eg: DES)
  • 非对称加密(双密钥加密)
    使用两个密钥(公钥和私钥)分别进行加密和解密,速度比较慢。(eg: RSA)
    如果使用公钥对数据进行加密,则只有对应的私钥才能解密;
    如果使用私钥对数据进行加密,则只有对应的公钥才能解密。
  • 散列算法(Hash)
    将任意大小的数据映射到一个较小的固定长度的唯一值,理论上不可逆;
    即无法根据散列结果推算出原始数据信息,常用于数据校验。(eg: SHA, MD5)

SSL 握手过程中心思想:SSL 握手过程中客户端使用服务端给的 RSA 公钥对 用于生成最终对话密钥的随机数 进行加密(RSA 非对称公钥加密法),并传给服务端;随后双方在数据传输过程中使用上述生成的对话密钥进行对称加密(对称加密算法由双方在握手过程商定),同时保证了安全和效率。

每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

SSL/TLS握手图解,自己吭哧吭哧画一堆,也没人家画得好,直接见 http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html ,阮老师很牛x的,

公钥存放在数字证书中,由服务端发给客户端,只要证书可信,公钥就可信。

数字证书

字段 说明
Subject Name 证书持有者的相关信息(国家/地区、组织、单位、CN)
Issuer Name 证书颁发者的相关信息(国家/地区、组织、单位、CN)
Common Name Subject Name 和 Issuer Name 信息里都包含一个常用名称字段(Common Name, CN),对于 CA 证书而言,该字段表示 CA 机构的名称,对于用户证书而言,通常是相应的域名。
Serial Number CA 机构给该证书的唯一序列号
Not Valid Before 证书生效日期
Not Valid After 证书失效日期
Public Key 服务端公开的密钥(RSA 公钥)
Signature Algorithm 签名所使用的算法(SHA-1,SHA-256 等)
Signature CA 机构给该证书的签名,用于验证证书是否被篡改

HTTPS 请求前的 SSL 握手过程中,用户证书和中间 CA 证书由服务端返回,而根 CA 证书则保存在客户端系统的可信任 CA 列表中。

证书更新策略

  1. 服务端计算出证书文件的 MD5 值,作为这个文件的数字签名。
  2. 服务端通过私钥加密第 1 步算出的 MD5 值,得到一个加密后的 MD5 值。
  3. 把证书文件和加密后的 MD5 值一起下发给客户端。
  4. 客户端拿到加密后的 MD5 值,通过保存在客户端的公钥解密。
  5. 客户端计算证书文件的 MD5 值。
  6. 对比第 4/5 步的两个 MD5 值(分别是客户端和服务端计算出来的 MD5 值),若相等则通过校验。

只要通过校验,就能确保证书在传输的过程中没有被篡改,因为第三方若要篡改证书文件,必须计算出新的证书文件 MD5 并用私钥加密,客户端公钥才能解密出这个 MD5 值,而在服务端未泄露的情况下第三方是拿不到私钥的。

相关文章

  • 浅谈HTTPS

    HTTPS:基于 SSL/TLS 的安全的 HTTP 所有信息都是加密传播,第三方无法窃听; 具有校验机制,一旦被...

  • 浅谈Https

    众所周知,Https能够加密信息,防止在数据传输过程中被恶意拦截和修改。所以那些安全级别高的服务都会使用Https...

  • 浅谈Https

    浅谈Https 前言 HTTP和HTTPS的基本概念 HTTP与HTTPS有什么区别? HTTPS的工作原理 HT...

  • 浅谈HTTPS协议

    为什么存在https协议 http通信存在的问题容易被监听http通信都是明文,数据在客户端与服务器通信过程中,任...

  • 浅谈HTTPS协议

    安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议...

  • 浅谈https(一)

    一 首先在传输中,为了加快加密和解密的速度,我们一般选用对称加密在AtoB模型中,对称加密足够了二 但是具体到BS...

  • 浅谈HTTP HTTPS

    0.HTTPS简介HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理...

  • 浅谈HTTPS加密

    了解web网络基础,什么是http HTTP( HyperText Transfer Protocol,超文本传输...

  • 图结构

    https://zh.visualgo.net/graphds 浅谈图形结构https://zh.visualgo...

  • 写书评难吗?难就对了!跟着叶子老师一起学习精进

    葉葉素心[https://www.jianshu.com/u/81d70bb540f2] | 浅谈书评之深度浅谈书...

网友评论

      本文标题:浅谈HTTPS

      本文链接:https://www.haomeiwen.com/subject/rwlbittx.html