美文网首页
揭秘HTTPS(网络编程安全一)

揭秘HTTPS(网络编程安全一)

作者: 想回家种地的程序员 | 来源:发表于2020-11-23 14:30 被阅读0次

    HTTPS和HTTP是什么关系?HTTPS加密流程是什么?Websocket项目中如何集成SSL?阿里云如何进行HTTPS开发。

    一 HTTP和HTTPS概述

    1.1 HTTP协议

    1. 概述
      HTTP的第一个版本只能传输超文本标记语言(HTML)文件,因此被称为超文本传输协议。

    2. 特征

    image
    a 是一个请求响应无状态的应用层协议。
    b 基于TCP/IP协议族传输(明文)数据,所有的WWWW都必须遵守这个标准。 image
    上图解释
    域名:表示网站中不同的页面。
    通信协议:浏览器和服务器之间沟通的语言。
    
    1. HTTP发展史


      image

    1.2 HTTPS

    image
    HTTPS(中文名是超文本安全协议)是在HTTP基础下加入SSL层,SSL就是加密详细内容(数据加密和身份认证)。
    即可以理解为对HTTP升级版,在数据传递前进行数据加密。
    1. HTTPS和HTTP之间区别
    1、https协议需要申请CA,证书,http不需要证书
    2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的加密传输
    5、http直接与四层交互,https先给安全层交互,然后在与四层交互
    

    二 加密原理和算法刨析

    image

    2.1 SSL和TLS

    1. 概述
      SSL(安全套接字协议),及继任者TLS(传输层安全)为网络通信提供安全及数据完整性
      的一种安全协议。SSL和TLS在传输层和应用层之间对网络连接进行加密。

    2. TLS(传输层安全)历史

    a 前身是SSL,最初几个版本(SSL1.0、SSL2.0、SSL3.0)。        
    b 1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有TLS1.0、TLS1.1、TLS1.2三个版本。 
    c TLS1.3改动会比xia较大,目前还未大规模推广,目前使用最广泛的是TLS 1.2。   
    

    2.2 加密详解

    2.2.1 概述

    访问www.taobao.com

    image
    1. 访问流程
      image
      上图说明
      a 通过先向服务器获取公钥。
      b 产生对称加密的密钥。
      c 公钥加密对称密钥后传递给服务端。
      d 服务端用私钥解密,获取对称加密的密钥。
      e 客户端对数据用对称密钥加密然后传给服务端。服务端用对称密钥解密获取原数据。
    总结:在数据传输过程用对称加密,因为对称加密效率高。客户端产生的对称密钥传递给服务端。
          为了保证对称密钥的安全性,所以对对称密钥进行非对称加密传给服务端。然后服务端就
          获取对称密钥。
    
    1. 加密算法解析
      image
      建立一个密码体制,需要五个空间组成(上图描述)
    明文M:加密前或解密后的信息;
    密文C:明文加密后的信息;
    密钥K:由加密密钥和解密密钥组成;
    加密E:从明文到密文的变换;
    解密D:从密文到明文的变换
    

    2.2.2 加密算法

    2.2.2.1 对称加密

    1. 描述
      也叫单钥加密,是指加密和解密是使用相同的密钥。

    2. 优势
      加密、解密运算速度快,效率高。代表算法:AES算法、DES算法、RC4,3DES 、Triple-DES, RC2等;

    3. 特点
      发送端和接收端共享相同的密钥才能通信,一定程度上保证了安全。
      对于枚举攻击,密码长度越长越难以破解

    4. 案例
      0010101010101010 明文
      0001010001001011 秘钥
      0011111011100001 密文(异或后)
      0010101010101010 明文(解密后)

    2.2.2.2 非对称加密

    image
    1. 描述
      加密和解密的密钥不一样,分别称为公钥和私钥。公钥和算法是公开的,私钥是保密的。

    2. 优缺
      运算性能比较低、加密数据长度有限、安全性超强。例如:RSA、DSA、ECDSA、 DH、ECDHE;

    3. 特点
      只有特定主机才有私钥,保证数据安全。
      解决对称加密的密钥多管理不方便问题。

    4. 对称和非对称区别
      对称加密效率高,但是在密钥管理上和密钥交换的时候,安全性不能保障。所以网络环境二者混合使用。

    2.2.2.3 散列加密

    1. 描述
      算法是不可逆的,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值。
      却不能通过这个hash值重新获得目标信息。

    2. 常见算法
      MD5、SHA-1、SHA-2、SHA-256 等

    2.3 CA证书

    1. 定义
      CA证书顾名思义就是由CA(Certification Authority,也叫“证书授权中心”)机构发布的数字证书。

    2. 证书包含内容
      颁发者、使用者、版本、签名算法、使用者、公钥、指纹、指纹算法等等。

    3. 编码格式
      X.509规范中一般推荐使用PEM格式来存储证书相关的文件。证书文件的文件名后缀一般为 .crt 或 .cer
      对应私钥文件的文件名后缀一般为 .key。证书请求文件的文件名后綴为 .csr 。有时候也统一用pem作为
      文件名后缀。

    4. 证书(浏览了解下)


      image
    版本号(Version Number):CA证书一个规范的版本号,目前为版本3,值为0x2;
    序列号(Serial Number):由CA维护的,为它所发的每个证书分配一个序列号,用来追踪和撤销证
    书。只要拥有签发者信息和序列号,就可以唯一标识一个证书,最大不能过20个字节;
    签名算法(Signature Algorithm):数字签名所采用的算法,如:
    sha256-with-RSA-Encryption
    ccdsa-with-SHA2S6;
    颁发者(Issuer):发证书单位的标识信息,如 ” C=CN,ST=Beijing, L=Beijing,
    O=org.example.com,CN=ca.org。example.com ”;
    有效期(Validity): 证书的有效期很,包括起止时间。
    
    image
    image
    image
    服务器提供服务器的公钥给ca机构,生成证书,证书一般包含以下内容:
    ◆Issuer (证书的发布机构)
    ◆Valid from , Valid to (证书的有效期)
    ◆Public key (公钥)
    ◆Subject (主题,使用者)
    ◆Signature algorithm (签名所使用的算法)
    ◆Thumbprint, Thumbprint algorithm (指纹以及指纹算法)
    
    1. 证书生成流程
    把Issuer (证书的发布机构),Public key (公钥),Subject (主题),Valid from,Valid
    to(证书的有效期)等信息以明文的形式写到证书里面作为内容,然后用一个指纹算法(淘宝是sha1)计算
    出这些数字证书内容的一个指纹(也就是签名),并把指纹和指纹算法用自己的私钥进行加密,然后生成
    证书
    

    相关文章

      网友评论

          本文标题:揭秘HTTPS(网络编程安全一)

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