解读HTTPS加密协议

来源:互联网 发布:非诚勿扰淘宝男被灭灯 编辑:程序博客网 时间:2024/05/17 06:30

说之前,我们先来看几幅图
一,图1

二,图2

三,图3


三张图过后,我们从头开始讲。

一,关于HTTP

①http,叫做超文本传输协议。什么要做超文本,就是通过计算机来处理文本信息的一种方法。

②作为最广泛的一种网络协议,所有的www开头的文件都必须遵守这个标准,是从www服务器传输超文本到本地浏览的传输协议。

③http的优点在于,它可以让浏览器更加高效,让网络传输减少,不仅保证了计算机既快又准确的传输超文本文档,还能确定传输文档的哪一个部分,哪部分的内容应该首先显示出来。

④HTTP是一个应用层协议,承载在TCP协议之上,如果承载到TLS/SSL协议层上面的话,也就是我们所说的HTTPS。

⑤默认的HTTP端口号是80,HTTP协议永远都是客户端发送请求,服务器回送响应,属于一种无状态协议,同一个客户端的每次请求没有对应的关系。


下面画幅图来解释一下http:


这里写图片描述


这里写图片描述


这里写图片描述
这上面的四点,如果其中一点出错的话,那么产生错误的信息就会返回到客户端,有显示屏输出。我们经常也在屏幕上看到某个网页出现ERROR的字样!
这样的对于用户来说,这些过程是由HTTP自己完成的,用户只要用手动一动鼠标,等待信息显示就可以了。


图中还提到了,URL(统一资源定位符),本来是说https的,没想到这也的写,那也得写!就做个铺垫吧,画幅图,我们来说一下URL.

这里写图片描述


二,什么叫做SSL,TLS.


SSL其实就是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在的HTTPS,加密套件基本上是TLS。


三,密码


密码,password,这个大家都知道,我银行卡账号密码,我Q号密码,我微信号密码等等等等,其实我们用的这些密码,从严格意义上来说并不能称作密码,只能说是口令。像抗日电视剧里,长官视察下面的人有没有人偷懒,黑灯瞎火的,一个哨兵说:“口令! ”长官说:“天王盖地虎!回令!”,哨兵说:“宝塔镇河妖。”然后哨兵敬礼长官回礼,其实到现在我都不知道这两句话什么意思。
咳咳……

我们所登录用的密码,它是用于认证的一组文本字符串,char,有木有!!!高大上的密码,那叫密码学,那叫密码算法有木有!!!


四,密钥


什么叫做密钥,其实就是在交互过程中,“高大上的”密码算法中需要输入的一段参数。同一个明文,同一套密码算法,但是就是因为密钥的不同,就会产生不同的“密文”。
很多知名的密码算法都是公开的,比如说MD5,RSA,DES。但是密钥才是决定密文是否是安全的重要参数,不言而喻,密钥越长,破解的难度就越大。根据密钥的使用方法,密码大概分了两类:对称加密,非对称加密。


五,对称加密


我们直接来画一张对称加密的流程图!

这里写图片描述


对称加密,又叫做共享钥匙加密。
它有一个特点:加密和解密使用相同的密钥!上面说的著名的DES加密,就是一种对称加密!
对称加密的优点在于:加密、解密效率比较高。缺点在于:数据发送方、数据接收方需要协商、共享同一把密钥,并确保密钥不泄露给其他人。此外,对于有很多数据交换需求的个体,两两之间需要分配并维护一把密钥,这个带来的成本基本是不可接受的。换句话说,接收的人,需要发送的人告诉他密钥才能解密,所以密钥怎么才能安全的发送给接受的人,成了一个很难的问题。

我们用《西游记》来做例子进行讲解。
唐僧 = 发送者;
孙悟空 = 接收者;
窃贼 = 攻击者;

说,唐僧孙悟空发了一份很重要的邮件!唐僧用对称加密对这个邮件进行了加密,因此,就算有窃贼窃了这份邮件,也没有办法破解开来,因为窃贼不知道密钥是什么。可是同样的,孙悟空收到这封邮件后也是一筹莫展,因为他也不知道密钥是什么! 那唐僧能不能把这封邮件和密钥一起发给孙悟空呢?当然不行啦,一起发的话,和直接发送明文还有什么区别呢?所以对称加密的密钥发送是个问题!该怎么解决呢?非对称加密!


六,非对称加密


                  我们再来画一幅图:

这里写图片描述


非对称加密又叫做公开钥匙加密,即公钥加密
这套密码算法是怎么一回事儿呢?这套密码算法有一对密钥对儿,分别叫做加密密钥,解密密钥。我们还拿上述的《西游记》来说事儿。孙悟空一念着咒语,生成了一对密钥对,就是公钥和私钥。私钥呢,孙悟空他自己保存,只有他自己知道。孙悟空把公钥发送给唐僧,发送的过程中,即使公钥被人窃取也没关系。然后呢,唐僧就用公钥来对邮件进行加密,并发送给了孙悟空。在发送的过程中,即使邮件和公钥都被窃取了也没关系,因为没有孙悟空配对的那把私钥,窃贼是没法破解的。孙悟空收到邮件之后,就可以用私钥来进行破解了。

可是事情没有这么简单,非对称加密依然存在漏洞,密钥的配送问题是解决了,但是唐僧他没法确认这把公钥是不是合法的啊!!!孙悟空发送的公钥,你不能肯定就是孙悟空发的啊,因为有可能在孙悟空唐僧发公钥的这个过程中,窃贼从中间把这把公钥给调包替换了,唐僧也不知道收到的公钥有没有被掉包!!!而且,非对称加密的运行速度和对称加密比起来,实在是慢的多。


六点一,公钥证书

上述的公钥哪里来的呢?总不可能真是孙悟空变的吧,那就尴尬了。所以在这里要涉及两个非常重要的概念:证书、CA(证书颁发机构)。
证书:这就相当于一个人的身份证明一样,里面有很多信息,其中就包含有上面我们举例的公钥。所以,当你进去某个“秘密地址”时,你就没有必要再在这个“秘密地址”里面找公钥了。“秘密地址”会把证书发给浏览器,并且告诉你:公钥就在这,别乱翻别的了!!!

“CA”: 证书从哪里来的?就是证书颁发机构颁发的呗,比如:VeriSign。大致流程就是,你在网站上向CA提交申请,然后CA开始审核,审核成功后给网站,当你进去时,网站再把证书给你。

注:
证书也有假的,要么这个证书就不是CA颁发的,要么就是这个证书里面的公钥被篡改过了!!!


七.消息摘要
通俗的来讲,这是一种通过哈希算法来进行加密,或者我们叫做散列函数来进行加密,而用散列函数取得的散列值就称为消息摘要。这种算法是一个不可逆的算法,因此你没法通过这个消息摘要反向推倒出消息是什么。所以它也叫做单向散列函数。什么原理呢,通过哈希函数得到一个散列值,和官方提供软件所计算出的散列值进行散列值的对比,看看是否相同,是否被人篡改过数据。我们再来画一幅图:


这里写图片描述


八,数字签名
从上图可以看到最后生成了一种叫做数字签名的东西,数字签名,目的就是为了确定发送者是发送者,就是他发的,有了这个签名说是他发的就是他发的,说不是他发的也是他发的,因为只有他才能够用私钥生成签名!!!防止有人耍赖,咦,前两天那500万不是我借的!!!!这个东西有什么用呢?好吧,我们再拿《西游记》画一幅图:


这里写图片描述


话到这里,我想有必要再画一幅图来对HTTP与HTTPS进行一下对比了!!


这里写图片描述


唐僧画的太难看,但我的懒惰告诉我:就那样吧!!!

1 0
原创粉丝点击