https简述

协议栈

https是在http应用层和tcp传输层之间加入了一个安全层(SSL、TLS) ,加入安全层的主要目的是将传输内容加解密,这样就避免了传输内容被窃听后,泄露重要信息(如用户名、密码),加密后即便被窃听,窃听者得到的也是无用的密文(因为窃听者没有解密密钥)。

 

https执行逻辑

我们知道了https主要就是用来加密传输数据的(防止被窃听),那么他是如何进行加密、解密的呢?如下图所示,当client发送https请求时,client不会像http那样(先建立tcp)直接将url发送至server,发送url属于正式数据的传输,而https要保证数据传输的加密。所以,在tcp建立之后,在正式http请求(发送url)之前,会有一个ssl的握手过程,该过程就是安全套接字要完成的:

首先client会发送其支持的加密算法等信息;

server收到请求后选择加密算法算法,然后随同证书一起发送给client;

client收到响应后,先进行证书认证(认证会验证证书是否过期、域名是否一致,最主要的是验证发送证书的人是不是证书的持有人,CA签发的证书都会先使用hash摘要,然后使用私钥签名,通过CA的公钥和hash就可以验证签名),生成一个随机数并保存,然后使用证书上的公钥(申请证书时,server生成的)加密该随机数后发送至server;

server收到加密后的随机数后,使用私钥(申请证书时,server生成的)将其解密并保存;

(此时双方已经持有安全通信的必要信息(对称加密算法、随机数密钥),可以进行安全通信了)

加密url等数据,进行正式的http请求;

server收到http请求后,会由安全层使用之前握手生成的随机密钥解密数据,然后上传至http应用层(此时就是普通的http信息了),server响应时,同样会经过安全层加密,然后发送给client;

client接收到请求响应后,安全层使用之前握手生成的随机密钥解密响应内容,然后传给应用层,至此一次完整的https请求就结束了。

 

https证书属性

https的证书遵循X.509标准,会包含许多属性,如下列属性,签名算法、哈希算法、公钥就可以验证证书有没有被篡改(即验证发送证书的人是不是证书的持有人)。类似12306这样使用自己制作的证书,如果自己可以保证证书本身的安全性,其实和CA颁发的证书在数据传输安全性方面没有差别。如果无法保证证书的安全性,就无法保证数据传输安全性了。比如私钥泄露(别人就可以使用私钥伪造证书了)、泄露出相同域名不同ip的另一份证书,从而可以进行dns劫持。

 

 

 

https性能

看来https的握手过程还是蛮复杂的,来看一下https的性能到底怎么样,下图是打开一个https网站时间消耗情况,Initial connection就是tcp+ssl=50ms,ssl为25ms,可见ssl与tcp的耗时相当(略高)。

 

转载于:https://www.cnblogs.com/holoyong/p/7296292.html

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

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

相关文章

Mac Apache 开启对php支持

1、在终端中以管理员身份打开Apache的配置文件。 sudo vi /etc/apache2/httpd.conf 2、找到#LoadModule php7_module libexec/apache2/libphp7.so,然后把光标定位到井号#,然后按下x键,删掉#,相当去掉注释。 3、保存退出 :wq! …

040、全卷积

之——FCN 目录 之——FCN 杂谈 正文 1.FCN 2.实现 杂谈 FCN(Fully Convolutional Network)是一种深度学习网络架构,专门设计用于语义分割任务。传统的深度学习网络如卷积神经网络(CNN)在处理图像时通常用于分类…

html不支持ie7,解决IE6/IE7/IE8不支持before,after问题

对从事web开发的朋友来讲,低版本的永远是一个痛点,不支持最新技术(如css3,html5)。在现在web开发中使用图标字体已经很广泛,如Font Awesome,Bootstrap等,字体图片主要是通过css选择器before,after结合content来实现,但…

前端学习(2511):路径出错

./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?typescript&index0!./src/ 原因路径出错,引入正确路径即可

HOJ 13828 Funfair

链接:http://acm.hnu.cn/online/?actionproblem&typeshow&id13828 Problem descriptionWe are going to a funfair where there are n games G1,...,Gn. We want to play k games out of the n games, and we can choose the order in which we play them—…

Z-Blog 爬虫 node实现

Z-Blog 爬虫 node实现 目前正在连载更新中 一、需求 帮朋友建站,指定用Z-Blog,安装后,我发现采集文章不便,所以准备写一个node爬虫,实现对友站文章的自动采集。 二、实现之前的思考 1、 熟悉Z-Blog数据库 Z-Blog使…

前端学习(2512):组件注册

app.vue <template><div id"app"><users></users></div> </template><script> import Users from ./components/User export default {name: App,data () {return {title: 这是我的第一个标题}},components: {users: Use…

中考物理可不可以用计算机,不能用计算机?2021年起广州中考课目改为“4+4”...

昨日&#xff0c;广州市教育局发布公告&#xff0c;明确提出广州将从2021年开始实施高中阶段学校考试招生制度改革(与在读初一学生相关)&#xff0c;改革实施前的2019至2020年为过渡期(与在读初二、初三学生相关)。从2021年开始&#xff0c;广州中考录取计分科目采用“44”模式…

superagent返回结果乱码

使用superagent返回结果乱码&#xff0c;处理编码的时候主要就分为utf-8以及gbk两大类&#xff0c;需要使用superagent-charset工具包解决问题 const charset require(superagent-charset); const superagent charset(require(superagent));const result await superagent.…

科学计算机java算法实现,(Java)科学型计算器开发及实现.doc

(Java)科学型计算器开发及实现淮北师范大学科学型计算器的开发与实现学 院 计算机科学与技术 专 业学 生 姓 名学 号指导教师姓名科学型计算器的开发与实现作 者&#xff1a;指导教师&#xff1a;摘 要&#xff1a;目前&#xff0c;科学计算器的应用非常广泛&#xff0c;从科研…

node process.env.NODE_ENV 使用 cross-env 配置 设置

process是一个全局对象&#xff0c;任意位置可以访问。在开发测试和正式部署时&#xff0c;需要区分不同的环境process.env.NODE_ENV&#xff0c;包括development和production&#xff0c;我推荐使用工具包cross-env实现在命令行中设置&#xff0c;解决跨平台问题。 1、全局安…

BI@Report烂笔头

有的时候&#xff0c;一定要设置浮动表元&#xff01;&#xff01;1. 一个红框就是一个报表2. 浮动表元 代表着按这个字段来group by&#xff08;但是数据库不能这么来&#xff09;3. _n求这个指标维的个数 sum(b2$)求和4. 小手抓数据 / 数据源中拖过去5. 当选择排序类型&#…

微型计算机相关的英文文献,微型计算机控制系统--------外文文献翻译

内容介绍Electronic systems are used for handing information in the most general sense; this information may be telephone conversation, instrument read or a company’s accounts, but in each case the same main type of operation are involved: the processing, …

Z-Blog 扩展数据库 字段 二次开发

需求 因为自己写了采集器往Z-Blog数据库中增加数据&#xff0c;友站的文章需要列出出处&#xff0c;尊重版权&#xff0c;所以需要对数据库字段进行扩展&#xff0c;增加采集站点名称和采集详情页链接字段&#xff0c;并且在Z-Blog系统文章页显示出来。 1、在数据库对应的zbp…

以计算机谈人文科学,阅读下面一段文字,完成问题   自20世纪80年代以来,世界都在谈“软科学技术”,何谓软科学?经常听人说:“脑子不够使。”这其实就是对软科学的需求。于是,从古至今,...

阅读下面一段文字&#xff0c;完成问题自20世纪80年代以来&#xff0c;世界都在谈“软科学技术”&#xff0c;何谓软科学&#xff1f;经常听人说&#xff1a;“脑子不够使。”这其实就是对软科学的需求。于是&#xff0c;从古至今&#xff0c;所谓“军师”、“谋士”、“智囊团…

ssh报错解决 ECDSA host key for 123.56.11.181 has changed and you have requested strict checking.

起因&#xff1a;云服务器重装了系统&#xff0c;导致本地的SSH信息便失效了&#xff0c;所以会报错。 解决办法: ssh-keygen -R 123.56.11.181 目的是清除本地关于远程服务器的缓存和公钥信息。

前端学习(2516):传值和引用

传引用 数据都会变化 传值 不变化