HTTPS学习笔记:(1)入门介绍

前言

HTTPS包含的知识体系过于庞大,很难通过一篇文章进行介绍,本系列笔记主要基于<>而做的一个读书笔记,通过阅读该书与自己的一些感悟从多个方面对HTTPS进行的总结。

关于快速入门,可以先看看:https://blog.csdn.net/eric_sunah/article/details/103144744

背景

随着互联网行业的发展,HTTP协议的因其轻便简单而收到广泛的应用,然而由于其都是基于TCP协议进行明文传输,所以安全问题可以说是HTTP协议最大的一大的短板,总结而言,HTTP的安全问题主要包含以下几个方面:

  • 可窃听:HTTP使用明文进行传输,因此传输内容可能很容易被窃听。
  • 可伪装:HTTP协议中不管是请求还是响应都不会对客户端和服务器的身份进行确认。通过中间人攻击的方式很容易伪装成通信的一端与另一端进行通信。
  • 可篡改:HTTP协议本身没有提供数据完整性的校验机制,因此很容易被中间人进行信息篡改。

由于上述问题,HTTPS应运而生。HTTPS可以简单理解为,运用SSL/TLS,PKI,密码学等安全机制来保障HTTP安全通信的技术集合,其主要解决了上述的几个问题:

  • 防止被窃听—加密:通过和SSL或TLS的组合使用,加密HTTP的通信内容。
  • 防止遭遇伪装—证书:通过证书确认通信双方的身份。证书可以由专门的第三方CA颁发,也可以自己给自己颁发(风险较大)。
  • 防止被篡改—摘要:通过对主体内容进行摘要计算,以防止信息篡改。

概念

HTTPS涉及到的概念较多,本文先对主要概念进行简单说明,后面将会对每个概念进行详细介绍。
主要概念如下:

  • SSL:SSL(Secure Sockets Layer)安全套接层,该协议由Netscape开发的。从OSI 7层模型的角度看是在TCP与HTTP两层中间插入的一层,用来确保上层HTTP的数据安全。从数据层面看,在传输的过程中,会将HTTP协议的内容包裹起来,以达到安全传输的目的。通过wireshark的抓包,可能更加清楚的了解该层的位置与包裹的方式.

  • TLS:TLS(Transport Layer Security)传输层安全协议。作用和SSL类似,可以理解为SSL 3的升级版,之所以改名,主要是为缓和微软与Netscape当时因浏览器之争而产生的矛盾。
  • 证书:证书也叫公开密钥证书,是由数字证书认证机构(CA,Certificate Authority)或其相关机构颁发用来确认身份的文件。
  • PKI:互联网公钥基础设施(public key infrastructure,PKI)
  • CA:证书颁发机构(certification authority或certificate authority,CA),是PKI实现成员间安全通信的一种模型。
  • 对称加密算法:用相同的秘钥进行加密,解密的算法称为对称加密算法,例如AES.该类算法的速度较快
  • 非对称加密算法:以公钥,私钥分别进行加密解密的方式称为非对称加密算法,该算法一般会比对称加密算法要慢

引入的问题

鱼翅熊掌不可兼得,在解决了HTTP安全问题的同时,也引入了以下几个问题:

  • 提高实施成本:根据证书的用途以及类型,通过CA签发证书的价格从免费-几百万/年不等。一个证书几百万,不信?看看下面阿里云上选择的一个土豪证书套餐的截图:

  • 性能损耗:HTTPS在原有通信的基础上增加了TLS握手的处理流程,以及加密过程中涉及到数据的加密解密,因此会导致增加时延以及消耗更多系统资源

操作流程

HTTPS落地到业务的操作流程主要包括以下几步:

  1. 生成证书
    生成证书的大致流程为:确定证书类型->填写CSR->提交申请。不同的第三方机构流程可能会存在一定的差异。

证书可以从第三方供应商那边购买,也可以自己签发[如果某网站仅用自签名证书对外提供服务,安全性没保障不说,专业性也肯定受到质疑],常见的CA包括:GeoTrust,Symantec,GlobalSign,沃通等。公有云一会代理这些CA的销售渠道,例如:Amazon,腾讯云,阿里云等。例如:

  1. 证书配置
    管理员拿到证书后,就可以对web服务器进行配置了,不同的服务器配置方式不同,可参考:https://www.globalsign.cn/resources.shtml

  2. 按照协议传输

对配置了HTTPS的网站进行访问时,就按照SSL/TLS协议进行协商与数据传输了,本文不对协议的内容进行介绍,细节请参考后续文章。

你可能感兴趣的:(网络协议)