介面測試之深入理解HTTPS

2022-07-03 13:00:15 字數 1940 閱讀 1213

首先,在理解https之前需要了解http。http(hyper text transfer protocol)是超文字傳輸協議,是在網際網路上廣泛使用的一種資訊傳輸方式,通常瀏覽器與伺服器進行通訊使用的都是http協議。該協議因為其使用簡單、方便,隨著網際網路的發展也同時在壯大。而http協議本身只是定義了乙份規範,具體的傳輸能力則是由tcp協議來完成。所以http是基於tcp之上,廣泛應用與瀏覽器中的一種傳輸協議。

因為有了http協議,所以網際網路的發展如虎添翼,在短短幾十年時間內,改變了人類很多的生活方式甚至生存方式。至今http本身仍然是可以支援網際網路的通訊,只是其在安全上不能提供很好的保障。尤其是網際網路與人們的生活越來越密切的時候,網際網路的安全問題也越來越重要。而https則是解決這個問題的方法。本質上https=http+ssl/tls。其中ssl和tls是一種加密協議,即https是一種帶加密功能的http協議。

即https並不是乙個新的協議,而是多個協議組裝後的產物。而其安全性則主要由ssl/tls層來保障。(當然ssl/tls也可以可以保障其它的應用層協議,比如:ssl+ftp=sftp)

既然ssl可以保障安全,那麼它到底是如何保障的呢?其實ssl安全機制是通過對http協議內容進行加密來實現的。而加密方式一般有2種型別:對稱加密和非對稱加密。

對稱加密:加密和解密時使用的密匙(key)是一樣的。密匙安全性不高,加密速度快

非對稱加密:加密時使用公匙加密,解密時使用私匙解密。密匙安全性高,加密速度相對慢

而ssl中兩者都有使用,且分別結合了它們的優缺點。在每次通訊前先使用非對稱加密來確定本次通訊後續使用的對稱加密的密匙,之後所有的通訊都是使用臨時生成的密匙來進行對稱加密後傳輸。

但是從安全角度考慮這還不夠,因為密匙還是有可能被人竊取了,然後篡改內容。所以就引入了證書機制,相當於給加密內容在加乙個蓋章。接著問題就變成了有人偽造證書怎麼辦?再然後就有了第三方認證機構,專門來發證書的,只有這些機構發的證書才可以信任。

於是現在訪問https**的時候就可能有兩種情況,一種是使用認證的證書、一種是使用未認證的證書。當我們訪問的**使用未認證的證書時,瀏覽器往往就會有提醒--該**不可信任。如果要一意孤行,就需要自己手動點繼續。(當然你還可以給瀏覽器設定忽略安全認證)

全世界範圍內可以發放安全證書的第三方機構就2-3個,而全世界有那麼多的公司或**需要申請證書。如何知道某個證書是否可信任呢?

其實安全證書有分根證書、子證書、子子證書,不同等級的信任範圍。通常根證書是由最上面的第三方機構頒發給自己的,根證書下面的一級子證書通常是頒發給其下的**公司的,而如果你的**是從**公司申請的,那麼你證書將會是乙個二級子證書。

而在認證證書的時候, 作業系統或者程式會去檢查該證書此前是否已經被信任過,或者該證書的上級證書(父級、父父級等等)是否被信任過。只要有乙個等級的證書被信任過,則認為該證書是可信任的。

了解了https和證書的基本知識之後,再來看看https的**是如何實現的。與http**相比,https**會多乙個證書管理的功能,因為它要給瀏覽器端下發證書,才能模擬正常的https連線。所以https**在進行內容**之前,還需要對內容進行解碼和加密的轉換。具體**如下:

這就是為什麼使用charles、fiddler之類的軟體**https的時候,需要先安裝乙個它們的證書(尤其是移動端)。因為它們的證書是沒有認證過的,需要手動安裝並信任,之後才可以正常的**。

跟大家推薦乙個學習資料分享群:706315665,裡面大牛已經為我們整理好了許多的學習資料,有自動化,介面,效能等等的學習資料!人生是乙個逆水行舟的過程,不進則退,咱們一起加油吧!

深入理解https

首先,我們來說一下http協議的缺點。主要有一下三條 1 通訊使用明文,內容可能會被竊聽。2 通訊方身份無法確認。3 收到的報文可能已經被修改。所以我們來採用https來解決以上問題。http 加密 認證 完整性保護 https tcp ip協議族分為四層 應用層,傳輸層,網路層,鏈路層。首先我們要...

深入理解HTTPS協議

最好對http協議有所了解,不需要太透徹,但是基本概念要知道。如果能懂一些tcp ip 方面的東西就更好了。還不知道tcp三次握手的同學,可以先自行搜尋一下相關知識。這裡為什麼要複習tcp三次握手,因為http鏈結是在這之上的,任何乙個http鏈結,都需要tcp的三次握手的過程,https下面的加密...

深入理解HTTPS通訊原理

一 https簡介 二 https與http的區別 1 https的伺服器需要到ca申請證書,以證明自己伺服器的用途 2 http資訊是明文傳輸,https資訊是密文傳輸 3 http與https的埠不同,乙個是80埠,乙個是443埠 可以說http與https是完全不同的連線方式,https集合了...