新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 站长技术 > 网站

看完这篇文章,我奶奶都懂了HTTPS原理

时间:2019-06-14 09:33:20  来源:  作者:

上过网的朋友都知道,网络是非常不安全的。尤其是公共场所很多免费的 WiFi,或许只是攻击者的一个诱饵。还有大家平时喜欢用的万能钥匙,等等。

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

HTTP 存在的问题

那我们平时上网可能会存在哪些风险呢?

  • 泄密,个人隐私、账户密码等信息可能会被盗取。
  • 篡改,收到的数据可能被第三方修改过,或被植入广告等。
  • 假冒,访问的站点非目标服务器站点。如域名欺骗、域名劫持、钓鱼网站等。

可能住你隔壁穿人字拖、说话都略显羞涩的小王,一到夜深人静的时候就开始偷窥你的一举一动!

陪你一起看 91 某社区的电影还好,万一窃取了各购物网站或其他站点的登录信息就……是不是想想有些害怕呢!

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

为什么别人能获取你上网的数据呢?有过一定网络基础的朋友多少都对 TCP/IP 有些了解,对各种握手挥手早已背得滚瓜烂熟,对 HTTP 协议也早了然于心。

HTTP 是应用层的协议,位于 TCP/IP 参考模型的最上层。用户数据经过应用层、传输层、网络层、链路层的层层封装后经过物理层发送到目标机器。

在这几层中,数据都没有经过加密处理,所以一旦别人获取到你的数据包,就能轻易的获取到数据的信息。

为了保护数据隐私,让数据不再“裸奔”。对需要传输的数据进行加密处理就很有必要了。

目前而言,加密算法可以分两大类,一类是对称加密算法,还有一类是非对称加密算法。

对称加密

对称加密算法的加密和解密都是用同一个密钥。在一定条件下,对称加密可以解决数据传输安全性的问题。

比如我在登录某个网站的时候,需要填写账户名和密码进行登录,客户端把登录的表单信息进行对称加密后再传输,这时候就算小王截获数据包,他也无法获取数据的内容,因为数据已经被加密了。

但是服务器收到数据后也是一脸懵逼,你发来的加密的数据包服务器也不知道解密的密钥!

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

那是不是客户端与服务端在通信之前应该先协商密钥呢?客户端可以通知服务器需要开启数据传输了,然后服务器告诉客户端,咱们以后用 xxxx 这个密钥进行加密解密吧!

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

这样内容是可以加密传输了,但是上图中第一步协商密钥的过程又同样存在安全的问题!

万一小王截获了协商密钥的数据,那后续加密传输的数据对小王来说无异于未加密!所以,对称加密存在密钥协商的问题!

非对称加密

基于对称加密存在的问题,又有了非对称加密。非对称加密算法需要一组密钥对,分别是公钥和私钥,这两个密钥是成对出现的。

公钥加密的内容需要用私钥解密,私钥加密的内容需要用公钥解密!私钥由服务器自己保存,公钥发送给客户端。

客户端拿到公钥后就可以对请求进行加密后发送给服务端了,这时候就算被小王截获,小王没有私钥也无法解密发送的内容,这样确保了客户端发送到服务端数据的“安全”!

但是由于公钥也需要通过网络发送给客户端,同样能被小王截获,这样服务器私钥加密后的内容依然可以被小王截获并解密,并且非对称加密的效率很低。

对称加密和非对称加密都存在密钥传输的问题,但是至少非对称加密可以保证客户端传输给服务端的内容无法被“破解”,而对称加密算法性能又比较好,那我们是不是可以这样子呢。

第一次通信的时候服务端发送公钥给客户端,由客户端产生一个对称密钥,通过服务端的公钥加密后发送给服务端,后续的交互中都通过对称密钥进行加密传输。

也就是说先通过非对称密钥加密对称密钥,通过对称密钥加密实际请求的内容。

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

上面的方案看起来天衣无缝,小王拿到数据后貌似就无从下手了,但是真的就天衣无缝了吗?

我们看看下图:

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

也就是说小王可以伪装成服务器,与客户端进行通信。类似于你与服务端之间多了一个中间商!也就是说协商密钥的过程依然存在漏洞!

有点脑阔疼!还能不能让我安全的上网了!就没有更安全的机制了么? 在协商密钥的过程中,客户端怎么能确定对方是真正的目标服务器呢?怎么证明服务器的身份呢?我们先了解一下数字证书!

数字证书

我们生活中有各种证,有能证明自己是个有身份的人的身份证,有能证明自己读了几年书的毕业证。

这些证都是由某些权威机关认证、无法伪造的,能证明自己身份的凭据。

那服务器是不是也能有个类似身份证的东西,在与服务器进行通信的时候证明自己确实是目标服务器而不是小王伪造的呢?

在生活中这些证件都是实实在在能看得见摸得着的,而计算机中的证书是虚拟的,看得见但是摸不着,是数据形式记录的,所以叫数字证书!

客户端第一次与服务器进行通信的时候,服务器需要出示自己的数字证书,证明自己的身份以及自己的公钥,类似如下(实际上就是一堆数据,这里为了直观):

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

那这个数字证书怎么产生的呢?总不能是服务器自己造一个吧?上面说到了我们生活中的证书是由权威机构颁发的、无法伪造的。

比如身份证就是由派出所发证、毕业证由教育部发证,如果需要验证真假,只需要上相关的系统输入编号查询就能查到了!那我们数字证书也应该有这两个特性,权威机构颁发、防伪!

CA 机构

CA 机构就是数字证书颁发的权威机构,负责颁发证书以及验证证书的合法性。

如果服务器需要做个有身份的服务器,就需要向 CA 机构提交申请,当然有钱才好办事,交钱才能给你办证……

服务器向 CA 机构提交申请,需要提交站点的信息如域名、公司名称、公钥等等,CA 审批无误之后就可以给服务器颁发证书了!

客户端在拿到服务器的证书后,就需要验证证书编号是否能在对应的 CA 机构查到,并且核对证书的基本信息如证书上的域名是否与当前访问的域名一致等等,还可以拿到证书中服务器的公钥信息用于协商对称密钥!

证书颁发了,可是又怎么防止伪造,怎么保证在传输过程中不被篡改呢?万一小王截获到数字证书,把公钥改成自己的那不是依然无法保证安全了么?这就需要数字签名了!

数字签名

与公司签过劳动合同的朋友应该都知道,在合同信息的填写中,是不能有涂改的,否则需要重新填写!并且在最后需要甲方和乙方签名并且盖章。

一旦签名盖章后的合同就具有了法律的效力,合同就不能再修改。签名和盖章操作就是防止合同伪造,规定不能修改就防止了合同被篡改!

在实际生活中签名、盖章操作是实实在在的动作,作用在具体某个物体上的!

但是我们的数字证书本身就是虚拟的,怎么去给一个虚拟的证书签名盖章呢?数字签名又是什么机制呢?

我们在做权限系统的时候,存储用户密码的时候都会经过 MD5 计算摘要后存储,在登录的时候计算用户填写的密码的 MD5 摘要与数据库存储的摘要进行对比,如果一致则密码正确,否则登录失败!

MD5 是不可逆的,且不同的数据计算出来的摘要是不一样的(当然也有极小的概率会 Hash 碰撞),基于这个特性,就有了数字签名的思路。

服务器提交自己的基本信息向 CA 机构提出申请,CA 机构在给服务器颁发证书的时候,会连同数字证书以及根据证书计算的摘要一同发送给服务器,且这个摘要是需要经过 CA 机构自己的私钥进行加密的。

申请流程如下:

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

啥?不够直观?那我们再来个直观点的!通过下图我们能看到,CA 给服务器颁发的证书是有自己专属的“公章”的。

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

哪些 CA 机构对于客户端来说是权威或者说是认可的呢?我们打开 IE 浏览器能看到客户端内置的 CA 机构的信息,包含了 CA 的公钥、签名算法、有效期等等...

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

服务器在与客户端通信的时候,就会将数字证书和数字签名出示给客户端了。

客户端拿到数字证书和数字签名后,先通过操作系统或者浏览器内置信任的 CA 机构找到对应 CA 机构的公钥对数字签名进行解密,然后采用同样的摘要算法计算数字证书的摘要。

如果自己计算的摘要与服务器发来的摘要一致,则证书是没有被篡改过的!

这样就防止了篡改!第三方拿不到 CA 机构的私钥,也就无法对摘要进行加密,如果是第三方伪造的签名自然在客户端也就无法解密,这就防止了伪造!

所以数字签名就是通过这种机制来保证数字证书被篡改和被伪造。具体流程如下:

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

啥?又不够直观?那我们继续...

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

这里需要注意一点,一个是 CA 机构的公钥,内置在客户端,用来解密数字签名!另一个是目标服务器的公钥,在数字证书内容里,用来协商对称密钥!

HTTps

本文的标题是 HTTPS,但是到目前为止 HTTPS 只字未提!其实 HTTPS=HTTP+SSL,在 HTTP 层和 TCP 之间加了一个 SSL/TLS 层。

如下图:

 

看完这篇文章,我奶奶都懂了HTTPS原理

 

 

SSL(Secure Sockets Layer)中文叫“安全套接层”,后来由于广泛应用,SSL 标准化之后就改名为 TLS(Transport Layer Security)了。

HTTPS 就是通过上面说到的那些手段来解决网络上可能存在的数据泄密、篡改、假冒的这些问题,保证网络传输的安全的啦!

看到这里的你,对 HTTPS 的原理是否懂了呢,反正我奶奶看完已经懂了!手动狗头(* ̄︶ ̄)

作者:苏静

简介:有过多年大型互联网项目的开发经验,对高并发、分布式、以及微服务技术有深入的研究及相关实践经验。经历过自学,热衷于技术研究与分享!格言:始终保持虚心学习的态度!

作者:苏静来源:17coding 技术博客
 



Tags:   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
1、反斜杠的使用反斜线可以将紧随其后的单个字符视为字面意义上的字符,如*在 Shell中代表任意字符,在查找时经常会使用*来查找多个匹配的文件,但是有时我们需要找的就是*字...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
用工单位(甲方) 派遣单位(乙方)法定代表人 法定代表人地址 地址电话 电话传真 传真根据《中华人民共和国合同法》和《中华人民共和国劳动合同法》等有关法律、法规的规定,甲、乙...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
医疗保险是比较特殊的一类商业保险,与社保的医保有比较多的相似之处。它的存在是为了解决医疗费用贵、看病难的问题。投保人为被保险人购买医疗保险后,被保险人产生医疗费用可...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
事务机制ACID和CAP理论是数据管理和分布式系统中两个重要的概念,很不巧,这两个概念中都有相同的“C”代表 "Consistency" 一致性,但是实际上是完全不同的意义,下面是比较两个概...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
1. 前言本文主要讲解如何使用Linux命令行测试网站连接速度。网站速度可以对用户体验有很大的影响,如果你是一个web开发人员,你当然希望开发一个能让用户迅速打开的网站。怎...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
  在 Windows 10 安装系统过程中,提示设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。  GPT带来了很多新特性,但MBR仍然拥有最...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
WordPress 5.0正式版发布以后,新的Gutenberg 编辑器(在WP5.0中准确地说应该叫block editor编辑器)给众多用户带来困惑,很简单的文字编辑操作,变得繁琐复杂,虽然用户对这个编辑器...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
时光荏苒,不知不觉已在体制内工作了十年。十年的青春韶光,可谓一个人一生中最美好的年华,而我的体制内十年,一直“躬耕”在基层。“躬耕”这个词,本来出自于诸葛亮的《出师表》“...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
点击添加图片描述(最多60个字)事业单位工资及其考点事业单位工作人员实行岗位绩效工资制度。岗位绩效工资由岗位工资、薪级工资、绩效工资和津贴补贴四部分组成,其中岗位工资...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
B站在小视频功能处提供了 API 接口,今天的任务爬取Bilibili视频~B 站视频网址:https://vc.bilibili.com/p/eden/rank#/?tab=全部 此次爬取视频,我们爬取前100个~我们做好前期...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
平时浏览网站的时候,您有没有发现,每个网站都是千篇一律?左上角logo、企业名,然后导航栏分类,接着就是各种跳转链接……毫无美感可言。 为什么不建议模板建站对于用...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
要想避免爆仓,首先要要学会合理控制仓位,因为只有合理控制了仓位,你才有稳定获利的机会,不然,你的帐户纵然有过赢利,到最后也会一败涂地。爆仓是投资者非常担心出现的一种情况,指的...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
市场上有许多可用的框架。其中一些更受欢迎,例如Spark,Hadoop,Hive和Storm。Presto在效用指数上得分很高,而Flink具有巨大的潜力。另外还有一些需要提及的其他内容,例如Samza,Impa...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
睡眠障碍一般和生活工作压力有很大关系,可通过心理疗法来缓解睡眠障碍。其实生活中的一些小妙招能让人们快速的提高睡眠质量。 1、面带微笑催眠平躺在床上全身心保持放松状态...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
【你的颈椎还好吗?试试这个动作自测你的颈椎是否健康】民生视角你知道吗,吞咽不畅、视力障碍……都可能是颈椎病的潜伏症状。双手向后背手,如果能在后背双手合十,说...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
要从架构和管理决策来看正如同我们在“区块链技术是什么(什么是区块链技术?)”一文中所述,区块链与传统数据库,从架构开始就是不同的,或者说其技术如何部署便是不同的。万维网(万维...【详细内容】
2019-11-24     点击:(0)  评论:(0)  加入收藏
作为服务端,web容器是如何解析http报文的呢?本文以jetty和undertow容器为例,来解析web容器是如何处理http报文的。...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
概述Healthd是android4.4之后提出来的一种中介模型,该模型向下监听来自底层的电池事件,向上传递电池数据信息给Framework层的BatteryService用以计算电池电量相关状态信息,Batt...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
很多小伙伴肯定会遇到想复制数据到U盘,发现U盘有写入保护的情况 那么这种情况该如何解决呢?下面我们就来分享U盘保护错误的解决方法。 1、首先检查一下U盘表面的写入保护开关...【详细内容】
2019-11-27     点击:(0)  评论:(0)  加入收藏
相信很多小伙伴都不喜欢别人用自己的电脑,毕竟有自己的隐私,而且更重要的是怕别人误操作删除或者搞坏。小编给大家分享一个方法,只使用一个U盘就能让别人没法动你的电脑,给电脑...【详细内容】
2019-10-30     点击:(0)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条