2021-02-21 人閱讀
HTTPS是如何對(duì)數(shù)據(jù)進(jìn)行加密的?
對(duì)安全或密碼學(xué)基礎(chǔ)有了解的同學(xué),應(yīng)該知道常見的加密手段。一般來說,加密分為對(duì)稱加密、非對(duì)稱加密(也叫公開密鑰加密)。
對(duì)稱加密對(duì)的意思就是,加密數(shù)據(jù)用的密鑰,跟解密數(shù)據(jù)用的密鑰是一樣的。對(duì)稱加密的優(yōu)點(diǎn)在于加密、解密效率通常比較高。缺點(diǎn)在于,數(shù)據(jù)發(fā)送方、數(shù)據(jù)接收方需要協(xié)商、共享同一把密鑰,并確保密鑰不泄露給其他人。此外,對(duì)于多個(gè)有數(shù)據(jù)交換需求的個(gè)體,兩兩之間需要分配并維護(hù)一把密鑰,這個(gè)帶來的成本基本是不可接受的。
非對(duì)稱加密非對(duì)稱加密的意思就是,加密數(shù)據(jù)用的密鑰(公鑰),跟解密數(shù)據(jù)用的密鑰(私鑰)是不一樣的。
?
什么叫做公鑰呢?
其實(shí)就是字面上的意思——公開的密鑰,誰都可以查到。因此非對(duì)稱加密也叫做公開密鑰加密。
相對(duì)應(yīng)的,私鑰就是非公開的密鑰,一般是由網(wǎng)站的管理員持有。
?
公鑰、私鑰兩個(gè)有什么聯(lián)系呢?
簡單的說就是,通過公鑰加密的數(shù)據(jù),只能通過私鑰解開。通過私鑰加密的數(shù)據(jù),只能通過公鑰解開。
很多同學(xué)都知道用私鑰能解開公鑰加密的數(shù)據(jù),但忽略了一點(diǎn),私鑰加密的數(shù)據(jù),同樣可以用公鑰解密出來。而這點(diǎn)對(duì)于理解HTTPS的整套加密、授權(quán)體系非常關(guān)鍵。
舉個(gè)非對(duì)稱加密的例子
登陸用戶:小明
授權(quán)網(wǎng)站:某知名社交網(wǎng)站(以下簡稱XX)
小明都是某知名社交網(wǎng)站XX的用戶,XX出于安全考慮在登陸的地方用了非對(duì)稱加密。小明在登陸界面敲入賬號(hào)、密碼,點(diǎn)擊“登陸”。于是,瀏覽器利用公鑰對(duì)小明的賬號(hào)密碼進(jìn)行了加密,并向XX發(fā)送登陸請(qǐng)求。XX的登陸授權(quán)程序通過私鑰,將賬號(hào)、密碼解密,并驗(yàn)證通過。之后,將小明的個(gè)人信息(含隱私),通過私鑰加密后,傳輸回瀏覽器。瀏覽器通過公鑰解密數(shù)據(jù),并展示給小明。
步驟一: 小明輸入賬號(hào)密碼 --> 瀏覽器用公鑰加密 --> 請(qǐng)求發(fā)送給XX
步驟二: XX用私鑰解密,驗(yàn)證通過 --> 獲取小明社交數(shù)據(jù),用私鑰加密 --> 瀏覽器用公鑰解密數(shù)據(jù),并展示。
用非對(duì)稱加密,就能解決數(shù)據(jù)傳輸安全的問題了嗎?前面特意強(qiáng)調(diào)了一下,私鑰加密的數(shù)據(jù),公鑰是可以解開的,而公鑰又是加密的。也就是說,非對(duì)稱加密只能保證單向數(shù)據(jù)傳輸?shù)陌踩浴?/p>
?
微信公眾號(hào) 關(guān)注我們
加我微信 售前咨詢
加我微信 售前咨詢