RSA算法在https協(xié)議中的應(yīng)用

https作為網(wǎng)絡(luò)數(shù)據(jù)安全傳輸?shù)闹匾ぞ?,在互?lián)網(wǎng)時(shí)代扮演著重要的角色,它可以保障數(shù)據(jù)的保密性、完整性,以及完成身份安全驗(yàn)證。而在https完成數(shù)據(jù)加密和身份驗(yàn)證的過程中,也離不開加密算法的協(xié)作。下面我們就來了解一下RSA算法在https協(xié)議中的應(yīng)用。

RSA算法簡(jiǎn)介

RSA算法是一款著名的非對(duì)稱加密算法,它的安全性依賴于大整數(shù)因子分解的困難性,其密鑰越長(zhǎng)安全性就越高,但與此同時(shí)所消耗的時(shí)間也就越長(zhǎng)。目前RSA算法在線支付、電子郵件、數(shù)據(jù)傳輸?shù)确矫嬗兄鴱V泛的應(yīng)用。

RSA算法

RSA算法在https協(xié)議中的應(yīng)用

在https協(xié)議中,公鑰發(fā)放給使用者,而私鑰則保留在服務(wù)器端。在https通信過程中,服務(wù)器只會(huì)傳遞公鑰,而私鑰永遠(yuǎn)不會(huì)被傳輸。并且,使用公鑰加密的信息只能用私鑰才能解開,而能被公鑰解密的信息則一定是被私鑰加密過的。

當(dāng)瀏覽器和一個(gè)https服務(wù)器建立連接后,服務(wù)器會(huì)向?yàn)g覽器發(fā)送一個(gè)包含RSA公鑰、簽名、簽發(fā)機(jī)構(gòu)、持有者信息、域名模式和有效期等信息的證書。

其中,簽名就是用上一級(jí)證書里的RSA公鑰對(duì)應(yīng)的私鑰來對(duì)下一級(jí)證書內(nèi)容的散列值進(jìn)行加密,并將加密后得到的數(shù)字以及所用的散列算法類型寫入下一級(jí)證書中。證書內(nèi)容的散列算法經(jīng)歷了MD5-SHA1-SHA2的變遷,目前僅有SHA2被認(rèn)為是安全的。

RSA算法

校驗(yàn)簽名的步驟如下:

  1. 對(duì)證書除簽名以外的部分按證書的散列算法類型計(jì)算出散列值,將這個(gè)值記作H1;
  2. 對(duì)證書簽名S用上級(jí)證書中的公鑰進(jìn)行解密,將這個(gè)值記作H2;
  3. 如果H1和H2相等,簽名校驗(yàn)通過,否則不通過。

在https協(xié)議中,一般僅使用RSA這種非對(duì)稱加密算法來傳輸用于加密實(shí)際頁面數(shù)據(jù)的對(duì)稱加密算法的一個(gè)偽隨機(jī)數(shù)k。目前比較主流和安全的對(duì)稱加密算法是AES-128。采用AES-128時(shí),k是一個(gè)128-bit的隨機(jī)數(shù),k被通過RSA加密傳輸后,實(shí)際頁面數(shù)據(jù)的加解密就以k為密鑰用AES-128進(jìn)行。這主要是由于RSA無法加密長(zhǎng)度超過大質(zhì)數(shù)乘積的字節(jié)長(zhǎng)度的數(shù)據(jù),實(shí)際應(yīng)用中,一般不超過4096bits,即512字節(jié),而普通頁面的數(shù)據(jù)長(zhǎng)度遠(yuǎn)大于這個(gè)值。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪稿。