HTTPS 基本流程3
前文说到了6 组key material, 12个hash 值,非常迷惑, 今天才搞明白, 原来所有这些内容就是 对称密钥的内容。
上面的图 虽然不是很清晰,但是, 其实也已经写明白了, 就是 右边的 CBC 模式的部分。对于 CBC模式的DES加密算法, 是需要这些内容的。
关于 身份认证, 其实不是 防止 篡改, 说的另外的一回事。 一般就是说,防止 middler man, 就是验证 服务端就是 我想要的那个。 通过 证书 验证, 可以完成 身份的认证。
当然, 其实我们也可以 对客户端 进行认证, 这也是 身份认证的一部分。
- 身份认证:第三方无法伪造服务端(客户端)身份
DH 算法的通信建立过程是这样的:
总之,如果协商过程使用 RSA 的话, 建立tls / ssl通道(正式传输 tls 上层数据之前)有7个 交互过程:
1 C->S:Client Hello
2 S->C:Server Hello
3 S->C:Certificate, Server Key Exchange, Server Hello Done
4 C->S:Client Key Change
5 C->S:Change Cipher Spec
6 C->S:Encryted Handshake Messagex`
7 S->C:Change Cipher Spec, Encryted Handshake Message
8 C->S/S->C:Application Data
简单的SSL握手连接过程(仅Server端交换证书给client):
1.C->S:client发送ClientHello,指定版本,随机数(RN),所有支持的密码套件(CipherSuites)
2.S->C:server回应ServerHello,指定版本,RN,选择CipherSuites,会话ID(Session ID)
3.S->C:server发送Certificate
4.S->C:Server发送ServerHelloDone
5.C->S:Client发送ClientKeyExchange,用于与server交换session key
6.C->S:Client发送ChangeCipherSpec,指示Server从现在开始发送的消息都是加密过的
7.C->S:Client发送Finishd,包含了前面所有握手消息的hash,可以让server验证握手过程是否被第三方篡改
8.S->C:Server发送ChangeCipherSpec,指示Client从现在开始发送的消息都是加密过的
9.S->C:Server发送Finishd,包含了前面所有握手消息的hash,可以让client验证握手过程是否被第三方篡改,并且证明自己是Certificate密钥的拥有者,即证明自己的身份
已经SSL握手完成,已经 建立tls / ssl通道了。
10 C->S/S->C:Application Data 开始正式数据交互
实际上呢, 2/3/4 几个步骤是可以合并的, 5/6/7 也是,8/9 也是。 所以抓包的时候可以看到 4次通信。
参考:
https://blog.csdn.net/tterminator/article/details/50675540 非常非常详细
https://blog.csdn.net/phunxm/article/details/72853376 非常非常详细
https://blog.csdn.net/a_tu_/article/details/77119532
http://www.cnblogs.com/svan/p/5090201.html
HTTPS 基本流程3的更多相关文章
- [信息安全] 3.HTTPS工作流程
[信息安全]系列博客:http://www.cnblogs.com/linianhui/category/985957.html 0. 简单回顾 在前面两篇博客中介绍了密码相关的一些基本工具,包括(对 ...
- HTTPS加密流程超详解(一)前期准备
0.前言 前一阵子想写一个HTTPS的嗅探工具,之前只是大致了解SSL/TLS协议的加密流程,真正上起手来一步一步分析发现还是有点复杂的,于是我参考了wireshark的源码以及各种RFC,弄清楚了S ...
- HTTPS 通讯流程
原文地址 https://blog.csdn.net/wangweilica6/article/details/50171457 一.简介 前一篇文章,我总结了下,如何部署https服务,开通ssl通 ...
- https 通信流程和Charles 抓包原理
1. https 通信流程 ①客户端的浏览器向服务器传送客户端SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息.②服务器向客户端传送SSL 协议的版本 ...
- TCP连接、释放及HTTPS连接流程
一.建立连接是三次握手 为什么三次握手?前两次握手为了确认服务端能正常收到客户端的请求并愿意应答,后两次握手是为了确认客户端能正常收到服务端的请求并愿意应答.三次握手可以避免意外建立错误连接而导致浪费 ...
- HTTPS加密流程理解
HTTPS加密流程 由于HTTP的内容在网络上实际是明文传输,并且也没有身份验证之类的安全措施,所以容易遭到挟持与攻击 HTTPS是通过SSL(安全套接层)和TLS(安全传输协议)的组合使用,加密TC ...
- HTTPS工作流程
HTTPS工作流程 RSA算法 RSA的密钥分成两个部分: PublicKey 加密数据 验证签名 不能解密 任何人都可以获得 Private Key 数据签名(摘要算法) 解密 加密(不用此功能) ...
- https基础流程
背景: https基于SSL,目的是保护http通信的过程,防止中间人篡改信息,或假冒服务端的问题. 要解决的问题: 1. 客户端如何证明是与正确的服务端进行通信 2. 客户端如何确认收到服务端的 ...
- HTTPS加密流程超详解(二)
2.进入正题 上篇文章介绍了如何简单搭建一个环境帮助我们分析,今天我们就进入正题,开始在这个环境下分析. 我们使用IE浏览器访问Web服务器根目录的test.txt文件并抓包,可以抓到如下6个包(前面 ...
- https加密流程
引用其它博主博客,在这里谢谢这位博主,原博客地址:https://blog.csdn.net/xincai/article/details/51954468 1,下面,用一幅图展示一下https建立 ...
随机推荐
- Charles 注册码/破解/激活
Charles 注册码 软件去官网下载安装即可. 适用于Charles任意版本的注册码 Charles 4.2.7 目前是最新版,可用. Registered Name: https://zhil ...
- 多线程与CPU和多线程与GIL
多线程与CPU:1.单核CPU CPU密集型的程序(做计算操作的程序) 单线程即可( 此时的任务已经把CPU资源100%消耗了,就没必要也不可能使用多线程来提高计算效率)2.单核CPU IO密集 ...
- bootstrap研究感想1
我—>新人,特纯的新人,受到方大神的建议,开始写博客,写一些工作时敲代码时的感受,学习模仿大神时的感悟. -------------------------------------------- ...
- Java 关键字详解(持续更新中)
abstract: 表明类或者成员方法具有抽象熟悉. 修饰类,抽象类: 抽象类不能被实例化: 抽象类中可以有属性.方法.构造,都是用来给子类继承的: ...
- Java多线程学习(总结很详细!!!)
https://www.cnblogs.com/yjd_hycf_space/p/7526608.html
- 研究大华3G设备接入自主视频开发平台
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/fengshuiyue/article/details/24311977 近期项目上须要接入3G摄像头 ...
- Python3 多线程例子
import threading, zipfile class AsyncZip(threading.Thread): def __init__(self, infile, outfile): thr ...
- KiCad EDA 原理图库的最佳实践
KiCad EDA 原理图库的最佳实践 由于有 Alias 别名元件,可以不用一个每一个元件都有一个元件. 对每种元件类型建议一个元件库. 因为 Value 和 元件名是一样的,所以元件名要尽可能的简 ...
- Proxifier代理工具简介和下载
Proxifier 是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链.支持64位系统,支持Xp,Vista,Win7,支持soc ...
- Ntrip协议简介(转)
原文地址:https://blog.csdn.net/sinat_19447667/article/details/67637167 1 什么是Ntrip? CORS(Continuously Ope ...