SSL為什么不直接用公鑰加密數(shù)據(jù)?

2022-10-04    分類(lèi): 網(wǎng)站建設(shè)

SSL為什么不直接用公鑰加密數(shù)據(jù)?

當(dāng)網(wǎng)站安裝SSL證書(shū)后,建立連接的過(guò)程會(huì)發(fā)生改變,安全性大幅提高,其原理就是利用非對(duì)稱(chēng)加密傳輸會(huì)話(huà)密鑰,再通過(guò)會(huì)話(huà)密鑰加密客戶(hù)端與服務(wù)器之間傳輸?shù)臄?shù)據(jù)。

問(wèn)題來(lái)了,為什么不直接使用公鑰加密數(shù)據(jù),而是先用公鑰加密會(huì)話(huà)密鑰,再通過(guò)會(huì)話(huà)密鑰加密數(shù)據(jù)呢?豈不是畫(huà)蛇添足,多此一舉。

我們先來(lái)看看網(wǎng)站安裝SSL證書(shū)后,客戶(hù)端與服務(wù)器建立連接的過(guò)程。

SSL為什么不直接用公鑰加密數(shù)據(jù)?

客戶(hù)端提交https請(qǐng)求 服務(wù)器響應(yīng)請(qǐng)求,把證書(shū)公鑰發(fā)給客戶(hù)端 客戶(hù)端驗(yàn)證證書(shū)公鑰的有效性 驗(yàn)證通過(guò)后,生成一個(gè)會(huì)話(huà)密鑰 使用SSL證書(shū)的公鑰,加密該會(huì)話(huà)密鑰,并發(fā)送給服務(wù)器 服務(wù)器收到加密數(shù)據(jù)后,使用私鑰解密,得到會(huì)話(huà)密鑰 客戶(hù)端與服務(wù)器利用該會(huì)話(huà)密鑰,加密要傳輸?shù)臄?shù)據(jù),進(jìn)行通信

當(dāng)客戶(hù)端成功驗(yàn)證了SSL證書(shū)公鑰的有效性后,便可以直接通過(guò)該公鑰加密數(shù)據(jù),與服務(wù)器傳輸數(shù)據(jù),為什么還需要多出很多步驟出來(lái)呢?

其實(shí)這主要是為了解決速率太慢的問(wèn)題。

RSA公鑰算法的簽名算法、驗(yàn)證算法耗時(shí)以及每秒所能完成的計(jì)算量如下:

我們以RSA 2048為例,普通電腦完成一次簽名操作需要4.097毫秒,也就是說(shuō)一秒鐘可以完成的加密了為244.1*2048=499916.8bit/second=499.917kbps。

如此慢的速率,用戶(hù)肯定無(wú)法接受。

非對(duì)稱(chēng)加密雖然安全性很高,但速率太慢是它一個(gè)致命的缺點(diǎn)。

對(duì)稱(chēng)加密恰恰相反,雖然安全性差,但速率很高。

SSL證書(shū)的智慧就體現(xiàn)在這里。首先利用非對(duì)稱(chēng)加密的高安全性,傳輸AES對(duì)稱(chēng)加密的密鑰,服務(wù)器解密后,通信雙方便有了會(huì)話(huà)密鑰,這個(gè)會(huì)話(huà)密鑰因?yàn)槭峭ㄟ^(guò)RSA這一非對(duì)稱(chēng)算法進(jìn)行加密的,不會(huì)被第三人監(jiān)聽(tīng)或者竊取很安全。

此后丟掉速率很難的非對(duì)稱(chēng)加密,直接使用對(duì)稱(chēng)加密算法通信即可。

我們可以舉一個(gè)更容易理解的例子。

A和B在不同的兩個(gè)地方,他們想互相運(yùn)送珍貴的貨物,運(yùn)送途中必須保證貨物的安全。

他們現(xiàn)在有兩種運(yùn)輸方式可以選擇,一種是飛機(jī),一種是貨車(chē)。

A和B所在的地方很奇怪,陸路運(yùn)輸公司會(huì)配備專(zhuān)門(mén)的安保人員,而航空運(yùn)輸沒(méi)有,所以經(jīng)常發(fā)生劫機(jī)事件,陸路運(yùn)輸則比較安全。

迫于無(wú)奈,A和B只能選擇陸路運(yùn)輸,但時(shí)間長(zhǎng)了,它們發(fā)現(xiàn)這樣做效率太低。經(jīng)過(guò)調(diào)查發(fā)現(xiàn),只要按照特定的航線(xiàn)航行,就不會(huì)發(fā)生劫機(jī)事件。

于是,B想了一個(gè)好辦法,使用陸路運(yùn)輸將航線(xiàn)圖運(yùn)送到A的手中,A知道航線(xiàn)后,雙方再使用航空運(yùn)輸,既能保證速度,又能保證安全性,一舉兩得。

從另一方面說(shuō),不使用公鑰直接加密數(shù)據(jù),也是為了安全考慮。假如直接使用公鑰加密,一旦服務(wù)器私鑰被獲取,那么所有通信內(nèi)容都將被解密,極其不安全。

如果公鑰加密的是會(huì)話(huà)密鑰,即便私鑰被獲取,由于通信內(nèi)容是采用會(huì)話(huà)密鑰進(jìn)行加密的,第三人也無(wú)法解密數(shù)據(jù)。

文章題目:SSL為什么不直接用公鑰加密數(shù)據(jù)?
文章網(wǎng)址:http://www.bm7419.com/news9/201359.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、動(dòng)態(tài)網(wǎng)站面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管