前言
总括: 本文详细(xì)讲述(shù)了SSL协议(yì)中的数据加密的过程,数字证书(shū)、对称加密、非对称加密和SSL握手过程(chéng)等(děng)概念。
SSL
只要你听过HTTPS,不可能没听(tīng)过SSL协议吧,SSL协议是一种(zhǒng)安全协议。对于互(hù)联网协议没有了解的童(tóng)鞋可(kě)以参考(kǎo)博主另一篇博(bó)客:internet协议入门
HTTP+SSL = HTTPS
HTTPS之所以安全(quán)就(jiù)是因为加持了SSL这个外挂(guà)来(lái)对传输(shū)的(de)数据进行加密,那么具体的(de)加密方法又(yòu)是什么呢?
请听我娓娓(wěi)道来。先看下面两个概念:
对称加密
非对(duì)称加密
你知道(dào)上面(miàn)两(liǎng)个概念是(shì)什么意思么??
OK,不管你(nǐ)懂不懂,我先用我的方式来给你解释下:
亲(qīn),你(nǐ)作(zuò)过弊么??不(bú)要告诉我在你漫长的学生生涯里你没作过弊(那(nà)你的(de)学生生涯得(dé)多(duō)枯燥),作弊(bì)我们常用的(de)方法是(shì)啥?(说把答案(àn)写在胳膊大腿纸条上的同学请你出去,谢谢(xiè)?) 当然是加密(mì)了(le)!比如我出(chū)于人道主(zhǔ)义,想要帮(bāng)助小明同学作弊,首先考(kǎo)试前(qián)我们会约定好(hǎo)一个暗号来传递选(xuǎn)择题的答(dá)案,摸头(tóu)发(fā)——A,摸耳(ěr)朵——B,咳嗽——C,跺脚——D,于是一(yī)个加密(mì)方(fāng)法就诞(dàn)生了。
这个加密方(fāng)法只有(yǒu)我和小明知(zhī)道(dào),老师虽(suī)然(rán)看我抓耳挠腮但(dàn)他(tā)顶多把我当(dāng)成神经病,并没有直接证据说(shuō)我作弊(bì)。好,这种(zhǒng)我和小(xiǎo)明知(zhī)道,别人不知道的(de)加密方法(fǎ)就是一种对称加密算(suàn)法,对(duì)称加(jiā)密算法(fǎ)也是(shì)我们(men)日常(cháng)最常见的加密算法。这种(zhǒng)算法?只有一把(bǎ),加(jiā)密解密都用(yòng)同一把(bǎ)钥匙,一旦?泄(xiè)露就(jiù)全玩完了。
随时时代(dài)的进步,人们发现实际上加密和解密不用同一把?也是可以的,只要加密和解密(mì)的两把?存(cún)在某种关系(xì)就行了。
于是,层出不(bú)穷的非对称加(jiā)密(mì)算(suàn)法就被研究了出来(lái),那(nà)么它基于什么样(yàng)的道理(lǐ)呢?请严格记(jì)住下面这句话:
将(jiāng)a和b相乘(chéng)得(dé)出(chū)乘积c很容易,但要是想要通过乘积(jī)c推导出a和b极难。即对一(yī)个大数进行因式分解(jiě)极难。
听不懂因式分解(jiě)的童鞋先去面壁5分(fèn)钟,这么多年(nián)数(shù)学白(bái)学(xué)了?甩给你维基(jī)百科(kē)链接,自行补课:因式分解(jiě)
好的,我们继续,非对称加(jiā)密算(suàn)法就多了两个概(gài)念——公钥c和私钥b。
用法如下:公钥加密的(de)密(mì)文只能用私(sī)钥解密(mì),私钥加密(mì)的密文只能用公钥解密。
公钥(yào)我(wǒ)们可以随便公开(kāi),因为别人知道了(le)公钥毫无用处(chù),经过公钥加密后的密文只(zhī)能通过私(sī)钥来解(jiě)密。而想要通过(guò)公钥推导出a和b极难。但很明显的是(shì),使(shǐ)用非对称加密(mì)效率不(bú)如对(duì)称(chēng)加密(mì),因为非(fēi)对称加密(mì)需(xū)要有计算两(liǎng)个密钥的过程。
我们通过密码学中的两(liǎng)个典型(xíng)的爱(ài)丽(lì)丝和(hé)鲍勃(bó)人物(wù)来(lái)解释这个非对称加(jiā)密算法的过程(chéng):
客户端叫(jiào)做爱(ài)丽丝,服务器叫做鲍勃。
爱丽丝: 鲍勃我要给你发送一段(duàn)消(xiāo)息,把(bǎ)你的公钥给我吧;
鲍勃: OK,这是我的公钥:234nkjdfdhjbg324**;
爱丽丝:收到公钥,我给你发送的消息经过公钥(yào)加(jiā)密之后是(shì)这样的:#$#$@#@!$%*(@;
鲍(bào)勃:好的(de),收到了,亲(qīn),我(wǒ)来用我的私钥解密看下(xià)你真(zhēn)正(zhèng)要给(gěi)我发(fā)送的内容;
上(shàng)述过程(chéng)就是一个非(fēi)对称(chēng)加密的过程,这个过程安全(quán)么?好像是很安全,即使查理(通信中(zhōng)的第三位参加者)截取了密文(wén)和公钥没有私钥(yào)还(hái)是(shì)没法得到明文。
可如果第三者查理发送给(gěi)爱丽丝(sī)他自己的公钥,然后爱丽丝用查(chá)理(lǐ)给的公钥加密密文发送(sòng)了出去(qù),查理再(zài)通过自(zì)己的(de)私钥解密(mì),这不就泄露信息了么?我(wǒ)们需(xū)要想个办法让爱丽(lì)丝判断这个公钥到底是不是鲍(bào)勃发(fā)来的(de)。于是(shì)就有了(le)数字(zì)证(zhèng)书的(de)概念。
版权申明:本内容来自(zì)于互(hù)联网,属第三方汇集推荐平台。本文的(de)版权归原作者所有,文章言(yán)论不(bú)代表链门(mén)户的观点,链门户不承担任何法律责任。如有侵权请联系(xì)QQ:3341927519进(jìn)行反馈。