浅谈https(创建、传输、断开)

前言

  比起http,https是更安全的,传输过程中加密的。但是具体的加密过程是怎么样我一直一知半解。花了点时间抓包简单分析了一下,希望对大家有用。

  在windows平台下抓tcp包是用wireshark的了。没啥好说的。  

  我们平常的一次https 的请求,如下所示

 

创建https连接

  创建https链接是最复杂的部分。

  首先是tcp三次握手。基于tcp的东西,这是必须的。

 

  然后是客户端告知服务器要创建https连接,这一步称之为 client hello客户端告知服务器要创建一个怎么样的https协议,并且发出一个client的随机数

 

  然后是服务器响应客户端一个ack(服务器说我收到啦^_^)

  接下来服务器向客户端发出server hello服务器与客户端确认https具体什么协议(TLS V1.0? V2.0?等),而且发出一个server端的随机数

  客户端没有ack~,服务器告知客户端证书里面有一个证书,通过diffie-hellman算法来加解密。

  客户端说我收到啦,有一次ack。

  客户端一次diffie-hellman参数校验

  最后,server端响应session-ticket,用于全程加解密

 

  连接就创建完了。以后就是全程加密的传输啦。

 

  简述创建https的过程:

  • tcp三次握手
  • 客户端发送hello client
  • 服务器发送hello server
  • 服务器发送证书、diffie-hellman参数
  • 客户端响应diffie-hellman参数
  • 服务器响应sessionTicket

传输

  全程加密, 没啥。。。

 

断开

  在传统的四次挥手中, 多了一个 Alert Message: Encrypted Alert。 没什么的。

 

参考

http://blog.csdn.net/fw0124/article/details/40875629

http://blog.csdn.net/fw0124/article/details/40983787

 

转载于:https://www.cnblogs.com/ELMND/p/5152125.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

暑期项目经验(九) -- request session application

request、session、application 一、基础知识 可以看看 浅谈&#xff1a;request&#xff0c;session&#xff0c;application (http://blog.csdn.net/hzc543806053/article/details/7416007) 要点&#xff1a; 作用域&#xff1a; request<session<application 共同方法…

oracle 还原dmp时_报错的值太大,基于oracle数据库的CLOUD备份恢复测试

CLOUD oracle数据库备份恢复测试强烈建议使用expdp/impdp&#xff0c;因为&#xff1a;在expdp的时候Oracle不会再依赖和参考NLS_LANG的设置&#xff0c;而是完全按照数据库本身的字符集导出数据&#xff0c;impdp的时候&#xff0c;Oracle会自动判断如果dmp文件中的字符集和目…

Servlet读取文件的最好的方式

在java web 开发的时候不可避免的会读取文本信息&#xff0c;但是方式不同&#xff0c;所付出的代价也是不一样的&#xff0c;今天学到了一个比较好的实用性的技巧&#xff0c;拿来与大家分享一下。 读取属性配置文件 之所以说成是读取属性&#xff08;properties)文件&#xf…

Form.php 日期表单,Bootstrap日期和时间表单组件使用方法

提取其中的主要文件js/bootstrap-datetimepicker.js和css/bootstrap-datetimepicker.min.css1.引入bootstrap.min.css&#xff0c;因為其樣式包含在此文件中2.引入jquery.js&#xff0c;因為bootstrap是依賴於jquery的3.引入bootstrap.min.js以上是必備內容4.引入日期組件的css…

amp; 的意思

&amp是什么意思? <bean> <property name"jdbcUrl" value"jdbc:mysql://127.0.0.1:3306/spring?useUnicodetrue&amp;characterEncodingutf8"> </property> </bean> 这里面的&amp;是什么意思? 解答&#xff1a; &…

Bootstrap 排版

2019独角兽企业重金招聘Python工程师标准>>> Bootstrap 使用 Helvetica Neue、 Helvetica、 Arial 和 sans-serif 作为其默认的字体栈。 使用 Bootstrap 的排版特性&#xff0c;您可以创建标题、段落、列表及其他内联元素。 标题 Bootstrap 中定义了所有的 HTML 标题…

基于小波包的图像压缩及matlab实现,基于小波包的图像压缩及matlab实现精选.doc...

基于小波包的图像压缩及matlab实现精选基于小波包的图像压缩及matlab实现摘要&#xff1a;小波包分析理论作为新的时频分析工具&#xff0c;在信号分析和处理中得到了很好的应用&#xff0c;它在信号处理、模式识别、图像分析、数据压缩、语音识别与合成等等许多方面都取得了很…

为div添加滚动效果:

为div添加滚动效果: .xxxx{  width: 100%;height: 100%;overflow: hidden;overflow-y: auto;} 代码片段 <div class"xxxx"><div>aaa</div><div>aaa</div><div>aaa</div><div>aaa</div><div>aaa</d…

php读取子目录下文件内容,php小代码----目录下读取子文件或子目录_PHP教程

php小代码----目录下读取子文件或子目录rootPath $rootPath;if (is_dir($this->rootPath)) {$this->rootPath pathinfo($this->rootPath, PATHINFO_DIRNAME) . DIRECTORY_SEPARATOR . pathinfo($this->rootPath, PATHINFO_BASENAME);$this->opDirectory dir(…

Apache Lens —— 统计数据分析查询接口

Lens 提供了一个统一数据分析接口。通过提供一个跨多个数据存储的单一视图来实现数据分析任务切分&#xff0c;同时优化了执行的环境。无缝的集成 Hadoop 实现类似传统数据仓库的功能。 该项目主要特性&#xff1a; 简单元数据层为数据存储提供抽象视图层 单一的共享模式服务器…

js文件中调用另一个js文件:

document.write("<script languagejavascript src/UEditor/uparse.js></script");转载于:https://www.cnblogs.com/flywing/p/3998261.html

JDK8新特性-java.util.function-Predicate接口

上篇主要对Function函数进行了简单了解&#xff0c;本篇则主要了解Predicate。该函数的主要作用其实就是判定输入的对象是否否和某个条件&#xff0c;然后将其布尔值返回。 主要使用方法如下&#xff1a; //唯一的抽象方法 boolean test(T t); //且操作&#xff0c;既满足A也满…

linux查服务器总内存大小,在linux 下怎么查看服务器的cpu和内存的硬件信息

1&#xff0c;Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu&#xff0c;在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. …

ZIP打包解包

linux zip命令的基本用法是&#xff1a; zip [参数] [打包后的文件名] [打包的目录路径] linux zip命令参数列表&#xff1a; -a 将文件转成ASCII模式-F 尝试修复损坏的压缩文件-h 显示帮助界面-m 将文件压缩之后&#xff0c;删除源文件-n 特定字符串 不压缩具有特定字尾字符串…

HTML5 上传图片预览

html5出现之前如果需要上传图片预览 一般都是先上传到服务器然后远程预览 html5出现之后 有个filereader 解决了这问题 //选中图片之后$("#fileAddPic").on(change, function (e) {var files e.target.files || e.dataTransfer.files;onSelect(files);})//选中图片…

博客园自动显示随笔标签

title: 博客园自动显示随笔标签 date: 2018-01-03 20:52:22 tags: 浏览器脚本 categories: 前端 在添加随笔页自动显示已有标签&#xff0c;不用点击插入已有标签 效果如图 安装链接https://greasyfork.org/zh-CN/scripts/36809-%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%98%BE%E7%A4%BA…

linux 进程代码,怎样从Linux终端管理进程:10个你必须知道的命令

Linux终端有一系列有用的命令。它们可以显示正在运行的进程、杀死进程和改变进程的优先级。本文列举了一些经典传统的命令和一些有用新颖的命令。本文提到的命令会实现某个单一功能。它们可以结合起来——这也是Unix设计程序的理念。其它命令&#xff0c;例如htop,会在命令的上…

c# datagridviewcomboboxcell值无效的解决办法

一直认为是数据库存储的数据和datagridviewcomboboxcell对不上导致&#xff0c;今天碰到两者对应上了&#xff0c;预览的时候还是提示错误&#xff0c; 查看了下网上其他大神的解决方法&#xff0c;是数据库字段类型有误&#xff0c;查看了下&#xff0c;当下拉菜单中包含中文字…

python object类

这个应为写得&#xff0c;写得蛮啰嗦的&#xff0c;建议耐心的人看看&#xff1a;http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html 知乎&#xff1a;http://www.zhihu.com/question/19754936 新式类&#xff0c;不学也没关系。看了一堆…