通过爱情故事,彻底弄懂 https 原理本质(二)加密过程

一、加密知识回顾

 

单向加密

        不可逆,只要输入的内容一样,输出的密文一定是一样的,有任何修改, 产生的密文都是不同的。例如,md5。

对称加密

        加密和解密使用同一把密钥,加密解密速度特别快。例如, DES。

非对称加密

         使用公钥和私钥进行加密和解密,公钥加密私钥解,私钥加密公钥解。加密、解密的过程非常慢。例如, RSA。

注:以上内容,纯粹是加密的知识,和https没有任何关系。下面我们开始讲解 https的过程。

二、通过一个需求,明白https的过程

假设:小明 ❤️小花。青春期的男女通过写情书方式交往,怕人发现,需要保密传递。

Question: 情书如何安全传递?

        学完上面‘加密知识’,我们很容易想到,把通信的内容加密。

Question:情书什么方式加密?

        首先,单向加密肯定不行,小花收到信,解不出来,这恋爱还谈个屁。

        其次,对称加密是可以,小花只要有密钥,就可以把内容解出来。最后,非对称加密也是可以的,小明用自己的私钥加密,小花拿到小明的公钥,也可以把内容解出来

Question:对称非对称如何抉择?

        学完上面‘加密知识’,对称加密速度快,非对称加密速度慢。

        那么,小明小花这俩人都是碎嘴子,话多的很,而去肯定也想快速交流。如果使用非对称方式加密解密很慢,那估计得郁闷死,太慢急死个人。

       因此,使用对称加密方式比较快的方式最合适。小明小花,都持有同一把密钥,双方互相都能解密出来对方发的信。

       小明❤️小花通信使用对称加密。假如密钥是 S ,双方都使用同一把密钥 S 进行加密解密。

       这样小明就可以能愉快的和小花说情话了,而且内容是加密的,加密解密的速度也很快,也很nice。

        这时候,有一个情敌叫老王。在情书在传输的过程中,密钥 S 被老王截获了。小明、小花、老王,都有相同的密钥 S 了。

        那么,小明和小花之间没有秘密可言了,他们发的信,老王都能解开看,看完再加密,再发给小花,这还得了。通过爱情故事,彻底弄懂 https 原理本质(二)加密过程_第1张图片

        


三、如何解决密钥 S 在传输的过程中被截获

        现在的问题变成了:小明如何把 密钥 S  安全的传给小花。 这和上面的问题“小明如何把情书传给小花”非常类似了。

Question:小明如何安全的把密钥 S  传输给小花?

        如果密钥S的传输过程不安全,那么后面的通信就是不安全的。反之,密钥S能安全的传输给小花,那么后面的通信就是安全的。

        学完上面‘加密知识’,我们很容易想到,把密钥 S 用非对称加密。

        首先,小明生成一对私钥和公钥。小明把 公钥给了小花,

        方法一,小明用私钥密钥 S 加密,加密后的密文S0传输给小花,小花用公钥密文S0解密得到密钥 S 

        方法二小花用公钥 对 密钥 S  进行加密,加密后的 密文S0传输给小明,小明用 私钥密文S0解密出来  密钥 S 

        但是,聪明的老王发现,小明的 公钥 是公开的,谁都可以下载。也就是说,老王也可以对 密文S0进行解密得到密钥 S 

        因此,方法一失败。方法二成功。


四、小结 

        为了方便理清思路,重新梳理一遍:小明选择使用效率高的‘对称加密’密钥 S 方式给小花传递情书,再通过通过效率慢的‘非对称加密’方式将密钥 S 二次加密。而且此时‘非对称加密’工作量很小,密钥 S 安全的传输给对方之后,后面的通信就直接使用对称加密了,这样效率就高了。

        我们懂了:如果用非对称加密,我只要拿到谁的公钥,我和谁通信,就是安全的。比如,你有一对私钥和公钥,我只要拿到你的公钥,然后用你的公钥进行加密传输内容,只有你自己能解开,因为私钥只有你自己有。反过来说,只要你用自己的私钥加密,其它人用你的公钥如果能解开,那么证明这封信一定以及肯定是你写的。比如,你需要发一个通知,但是又要确保这个通知一定是你发的,为了怕别人在中间窜改,你可以用你的私钥对通知进行加密,其它人想看的话,通过下载你的公钥,进行解密。能解密出来,说明通知一定是你发的,其它人想在中间涂改,因为没有你的私钥重新加密,所以行不通。


        当然,别以为到这,老王就会轻易放弃,“没用挖补了的墙角,只有不努力的小三”。下一篇,看老王如何进行反攻。

点击关注,持续更新。

你可能感兴趣的:(网络,安全,服务器,http,https)