由于hhtp是明文傳輸芍阎,所以對(duì)于一些敏感信息存在許多的安全隱患 ?? ,所以要對(duì)HTTP進(jìn)行加密處理
HTTPS =HTTP ?? + ?? 加密+ ?? 認(rèn)證 ?? +完整性保護(hù)
HTTPS就是身披SSL(secure socket? layer)外套的HTTP精续,它并不是新的協(xié)議,而是Http的通信接口部分用ssl和tls協(xié)議代替了而已
加密:通過共享密鑰來進(jìn)行加密傳輸
共享密鑰:加密算法是公開的,每種算法對(duì)應(yīng)著它的密鑰菩收,所以密鑰一定要保密雇卷;
但是如果想要在服務(wù)器與客戶端之間傳輸密鑰的話就有可能被竊聽的風(fēng)險(xiǎn)鬓椭,那么安全就無從談起,
所以我們引進(jìn)了另外一種技術(shù)來傳輸密鑰关划;就是公開密鑰技術(shù)
公開密鑰:每一個(gè)公開密鑰對(duì)應(yīng)著一把私有密鑰小染,顧名思義公開密鑰就是大家都可以知道的,私有密鑰就是不能讓任何人知道的贮折;
就是私有密鑰只存放在服務(wù)器端裤翩,由客戶端發(fā)送公開密鑰,然后用私有密鑰才能解開调榄,那么私有密鑰就一直存放在服務(wù)器端而不會(huì)泄露踊赠。
但是這樣又存在另外一個(gè)問題,就是人家截取了你的公開密鑰每庆,然后換掉你的公開密鑰筐带,這樣就無法證實(shí)這條鑰匙是不是真的了,也就是說別人叫你用它的公開密鑰寫信它缤灵,那你的信息就發(fā)過去烫堤,不知道是不是你請(qǐng)求的那個(gè)服務(wù)器了。
所以你要證明你發(fā)起https請(qǐng)求后凤价,對(duì)你響應(yīng)的那個(gè)服務(wù)器是不是你要請(qǐng)求的服務(wù)器鸽斟,那個(gè)服務(wù)器用的是什么公開密鑰,就要通過證書來確定了利诺。
證書:由專門的數(shù)字證書認(rèn)證機(jī)關(guān)頒發(fā)公開密鑰
1富蓄、持有人將公鑰以及身份信息發(fā)送給權(quán)威機(jī)構(gòu)。
2慢逾、權(quán)威機(jī)構(gòu)負(fù)責(zé)對(duì)持有人的身份進(jìn)行驗(yàn)證立倍,確保公鑰和持有人的信息準(zhǔn)確無誤。
3侣滩、權(quán)威機(jī)構(gòu)使用自己私鑰對(duì)持有人公鑰進(jìn)行數(shù)字簽名口注,生成數(shù)字證書。
4君珠、為了確保證書不被篡改寝志,權(quán)威機(jī)構(gòu)對(duì)數(shù)字證書進(jìn)行hash計(jì)算(指紋算法),生成摘要(指紋),使用自己的私鑰對(duì)摘要進(jìn)行數(shù)字簽名材部,放到數(shù)字證書中毫缆。
但是它的公鑰是集成到操作系統(tǒng)中的。別人無法知道乐导。所以持有人的公鑰通過證書的私鑰進(jìn)行加密之后苦丁,只有操作系統(tǒng)解得開,就可以確保公鑰是是真正的服務(wù)器發(fā)過來的物臂。(別人的也是公鑰旺拉,但是沒有證書加密,不可信)
使用方法
使用混合加密方式棵磷,就是通過公開密鑰和證書來傳送 共享密鑰蛾狗,然后數(shù)據(jù)通過共享密鑰進(jìn)行加密傳輸。
因?yàn)楣_密鑰配合私有密鑰解密要比共享密鑰慢泽本。
但是https本身就要比http慢淘太,因?yàn)榻饷芤腸pu資源,所以不涉及敏感信息的網(wǎng)頁一般不用http加密