網(wǎng)站建設(shè)中有的網(wǎng)址是https,這個是什么意思?和http有什么區(qū)別?為什么需要https
HTTP是明文傳輸?shù)?,也就意味著,介于發(fā)送端、接收端中間的任意節(jié)點都可以知道你們傳輸?shù)膬?nèi)容是什么。這些節(jié)點可能是路由器、代理等。
舉個最常見的例子,用戶登陸。用戶輸入賬號,密碼,采用HTTP的話,只要在代理服務(wù)器上做點手腳就可以拿到你的密碼了。
用戶登陸 –> 代理服務(wù)器(做手腳)–> 實際授權(quán)服務(wù)器
在發(fā)送端對密碼進(jìn)行加密?沒用的,雖然別人不知道你原始密碼是多少,但能夠拿到加密后的賬號密碼,照樣能登陸。
HTTPS是如何保障安全的
HTTPS其實就是secure http的意思啦,也就是HTTP的安全升級版。稍微了解網(wǎng)絡(luò)基礎(chǔ)的同學(xué)都知道,HTTP是應(yīng)用層協(xié)議,位于HTTP協(xié)議之下是傳輸協(xié)議TCP。TCP負(fù)責(zé)傳輸,HTTP則定義了數(shù)據(jù)如何進(jìn)行包裝。
HTTP –> TCP (明文傳輸)
HTTPS相對于HTTP有哪些不同呢?其實就是在HTTP跟TCP中間加多了一層加密層TLS/SSL。
神馬是TLS/SSL?
通俗的講,TLS、SSL其實是類似的東西,SSL是個加密套件,負(fù)責(zé)對HTTP的數(shù)據(jù)進(jìn)行加密。TLS是SSL的升級版。現(xiàn)在提到HTTPS,加密套件基本指的是TLS。
傳輸加密的流程
原先是應(yīng)用層將數(shù)據(jù)直接給到TCP進(jìn)行傳輸,現(xiàn)在改成應(yīng)用層將數(shù)據(jù)給到TLS/SSL,將數(shù)據(jù)加密后,再給到TCP進(jìn)行傳輸。
就是這么回事。將數(shù)據(jù)加密后再傳輸,而不是任由數(shù)據(jù)在復(fù)雜而又充滿危險的網(wǎng)絡(luò)上明文裸奔,在很大程度上確保了數(shù)據(jù)的安全。這樣的話,即使數(shù)據(jù)被中間節(jié)點截獲,壞人也看不懂。
HTTPS是如何加密數(shù)據(jù)的
對安全或密碼學(xué)基礎(chǔ)有了解的同學(xué),應(yīng)該知道常見的加密手段。一般來說,加密分為對稱加密、非對稱加密(也叫公開密鑰加密)。
對稱加密
對稱加密的意思就是,加密數(shù)據(jù)用的密鑰,跟解密數(shù)據(jù)用的密鑰是一樣的。
對稱加密的優(yōu)點在于加密、解密效率通常比較高。缺點在于,數(shù)據(jù)發(fā)送方、數(shù)據(jù)接收方需要協(xié)商、共享同一把密鑰,并確保密鑰不泄露給其他人。此外,對于多個有數(shù)據(jù)交換需求的個體,兩兩之間需要分配并維護(hù)一把密鑰,這個帶來的成本基本是不可接受的。
非對稱加密
非對稱加密的意思就是,加密數(shù)據(jù)用的密鑰(公鑰),跟解密數(shù)據(jù)用的密鑰(私鑰)是不一樣的。
什么叫做公鑰呢?其實就是字面上的意思——公開的密鑰,誰都可以查到。因此非對稱加密也叫做公開密鑰加密。
相對應(yīng)的,私鑰就是非公開的密鑰,一般是由網(wǎng)站的管理員持有。
公鑰、私鑰兩個有什么聯(lián)系呢?
簡單的說就是,通過公鑰加密的數(shù)據(jù),只能通過私鑰解開。通過私鑰加密的數(shù)據(jù),只能通過公鑰解開。
很多同學(xué)都知道用私鑰能解開公鑰加密的數(shù)據(jù),但忽略了一點,私鑰加密的數(shù)據(jù),同樣可以用公鑰解密出來。而這點對于理解HTTPS的整套加密、授權(quán)體系非常關(guān)鍵。