HTTPS的基本使用
1.https簡單說明
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer)厌杜,是以安全為目標(biāo)的HTTP通道沟于,簡單講是HTTP的安全版。
即HTTP下加入SSL層榄融,HTTPS的安全基礎(chǔ)是SSL缕贡,因此加密的詳細(xì)內(nèi)容就需要SSL翁授。 它是一個URI scheme(抽象標(biāo)識符體系)拣播,句法類同http:體系晾咪。用于安全的HTTP數(shù)據(jù)傳輸。
https: URL表明它使用了HTTP贮配,但HTTPS存在不同于HTTP的默認(rèn)端口及一個加密/身份驗(yàn)證層(在HTTP與TCP之間)谍倦。
2.HTTPS和HTTP的區(qū)別主要為以下四點(diǎn):
一、https協(xié)議需要到ca申請證書泪勒,一般免費(fèi)證書很少昼蛀,需要交費(fèi)宴猾。
二、http是超文本傳輸協(xié)議叼旋,信息是明文傳輸仇哆,https 則是具有安全性的ssl加密傳輸協(xié)議。
三夫植、http和https使用的是完全不同的連接方式讹剔,用的端口也不一樣,前者是80详民,后者是443延欠。
四、http的連接很簡單沈跨,是無狀態(tài)的由捎;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議饿凛,比http協(xié)議安全狞玛。
3.簡單說明
1)HTTPS的主要思想是在不安全的網(wǎng)絡(luò)上創(chuàng)建一安全信道,并可在使用適當(dāng)?shù)募用馨头?wù)器證書可被驗(yàn)證且可被信任時(shí)涧窒,對竊聽和中間人攻擊提供合理的保護(hù)为居。
2)HTTPS的信任繼承基于預(yù)先安裝在瀏覽器中的證書頒發(fā)機(jī)構(gòu)(如VeriSign、Microsoft等)(意即“我信任證書頒發(fā)機(jī)構(gòu)告訴我應(yīng)該信任的”)杀狡。
3)因此蒙畴,一個到某網(wǎng)站的HTTPS連接可被信任,如果服務(wù)器搭建自己的https 也就是說采用自認(rèn)證的方式來建立https信道呜象,這樣一般在客戶端是不被信任的膳凝。
4)所以我們一般在瀏覽器訪問一些https站點(diǎn)的時(shí)候會有一個提示,問你是否繼續(xù)恭陡。
在一個HTTPS連接的網(wǎng)絡(luò)中蹬音,輸入賬號和密碼并單擊登陸按鈕后,到服務(wù)器返回這個請求前休玩,這期間經(jīng)歷了什么著淆?
1 客戶端打包請求。
? ? ? ?其中包括URL拴疤、端口永部、賬號和密碼等。使用賬號和密碼登陸應(yīng)該用的是POST方式呐矾,所以相關(guān)的用戶信息會被加載到body中苔埋。這個請求應(yīng)該包含3個方面:網(wǎng)絡(luò)地址、協(xié)議和資源路徑蜒犯。注意:這里用的是HTTPS组橄,即HTTP+SSL/TLS荞膘,在HTTP上又加了一層處理加密信息的模塊(相當(dāng)于加了一個鎖)。這個過程相當(dāng)于客戶端請求鑰匙玉工。
2 服務(wù)器端接受請求羽资。
? ? ? ? 一般客戶端的請求會先被發(fā)送到DNS服務(wù)器中。DNS服務(wù)器負(fù)責(zé)將網(wǎng)絡(luò)地址解析成IP地址遵班,這個IP地址對應(yīng)網(wǎng)上的一臺計(jì)算機(jī)削罩。這其中可能發(fā)生Hosts Hijack和ISP failure的問題。過了DNS這一關(guān)费奸,信息就到服務(wù)器端弥激,此時(shí)客戶端和服務(wù)端的端口之間會建立一個socket連接。socket一般都是以file descriptor的方式解析請求的愿阐。這個過程相當(dāng)于服務(wù)器端分析是否要想客戶端發(fā)送鑰匙模板微服。
3 服務(wù)器端返回?cái)?shù)字證書。
? ? ? ?服務(wù)器端會有一套數(shù)字證書(相當(dāng)于一個鑰匙模板)缨历,這個證書會先被發(fā)送個客戶端以蕴。這個過程相當(dāng)于服務(wù)端向可獨(dú)斷發(fā)送鑰匙模板。
4 客戶端生成加密信息辛孵。
? ? ? ? 根據(jù)收到的數(shù)字證書(鑰匙模板)丛肮,客戶端就會生成鑰匙,并把內(nèi)容鎖起來魄缚,此時(shí)信息已經(jīng)被加密宝与。這個過程相當(dāng)于客戶端生成鑰匙并鎖上請求。
5 客戶端方發(fā)送加密信息冶匹。
? ? ? ?服務(wù)器端會收到由自己發(fā)送的數(shù)字證書加密的信息习劫。這個時(shí)候生成的鑰匙也一并被發(fā)送到服務(wù)端。這個過程相當(dāng)于客戶端發(fā)送請求嚼隘。
6 服務(wù)端解鎖加密信息诽里。
? ? ? ? ?服務(wù)端收到加密信息后,會根據(jù)得到的鑰匙進(jìn)行解密飞蛹,并把要返回的數(shù)據(jù)進(jìn)行對稱加密谤狡。這個過程相當(dāng)于服務(wù)器端解鎖請求,生成卧檐、加鎖回應(yīng)信息墓懂。
7 服務(wù)器端向客戶端返回信息。
? ? ? ? ?客戶端會收到相應(yīng)的加密信息泄隔。這個過程相當(dāng)于服務(wù)器端向客戶端發(fā)送回應(yīng)信息拒贱。
8 客戶端解鎖返回信息。
? ? ? ? 客戶端會用剛剛生成的鑰匙進(jìn)行解密佛嬉,將內(nèi)容顯示在瀏覽器上逻澳。
以上內(nèi)容摘自《iOS面試之道》一書,感謝作者暖呕。