HTTPS 小记

2018-07-01  本文已影响0人  zhanghTK

title: HTTPS小记
date: 2016-10-24 23:58:06
tags: daily
categories: 其它


背景

最近好像跟HTTPS较上劲了,连续碰到与之相关问题。自己对HTTPS了解的并不多,今天简单了解了一下,在此做个记录。

首先有几个基本概念,TCP/IP协议,HTTP一些,对称/非对称加密,证书,公钥/私钥。

TCP/TP:

HTTP:

对称加密:

非对称加密:

证书:

为什么用HTTPS

因为HTTP不安全。

  1. HTTP使用的是明文传输,容易被窃取
  2. 无法验证报文完整性,可能被篡改
  3. 无法验证通信双方的身份

为了对HTTP提供安全保障,就依赖:

SSL与TLS

SSL(Secure Socket Layer,安全套接字层)

TLS(Transport Layer Security,传输层安全协议)

TLS可以理解为SSL的增强版。

HTTP直接与TCP通信,而在HTTPS中首先与SSL通信,SSL再与TCP通信。我觉得可以理解成HTTPS = HTTP + SSL。

不论HTTP还是HTTPS,所有的通信、加解密都是最终都是建立在TCP/IP之上的。

加密思路

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

在通信过程中其实双方使用的还是对称的加密算法,但是为了让这个对称的加密算法足够安全。首先使用非对称的算法来获取对话密钥,之后再用对话密钥来对通信的内容加密解密。

所以关键问题就变成了:

对话密钥的创建

我没有仔细阅读相关协议,在网上查了一些资料,下面的内容是根据自己的理解写的。

简单描述一次对话密钥的获取过程:

C:我想跟服务器A说悄悄话,我支持1,2,3版本的协议。我先跟你说个秘密X。

S:我是服务器A。我们用3版本的协议说话吧,我也给你说个秘密Y。我再给你个公钥,使用它加密后的信息就只有我能听懂了。

C:让我先看看你是不是服务器A。(确认是服务器A)那我再给你说个秘密Z,这次用你给我的公钥对Z加密,确保其他人都不知道。以后我们用X,Y,Z这三个秘密来验证彼此的消息。我要跟你确认的就这些。

S:好的,以后我们用X,Y,Z这三个秘密来验证彼此的消息。我要确认的也就这些内容。网上把上面四个步骤描述

网上把上述的四个步骤描述为:

如果服务器需要对客户端的身份进行认证,那么在第一次服务器回应中可以向客户端索取证书。客户端提供证书后,服务器通过验证客户端证书,从而验证客户端的身份。

上一篇 下一篇

猜你喜欢

热点阅读