iOS中發起https的網路請求

2021-07-24 21:30:33 字數 1706 閱讀 3146

https: https(secure hypertext transfer protocol)安全超文字傳輸協議 它是乙個安全通訊通道,它基於http開發,用於在客戶計算機和伺服器之間交換資訊。它使用安全套接字層(ssl)進行資訊交換,簡單來說它是http的安全版。

http與https的比較

比較http

埠80

443協議

超文字傳輸協議(明文傳輸)

http+ssl(ssl使用40位關鍵字作為rc4流加密演算法)

證書需要到ca申請證書

信任主機的問題. 

採用https 的server(伺服器) 必須從ca 申請乙個用於證明伺服器用途型別的證書. 所以目前所有的銀行系統**,關鍵部分應用都是https 的. 客戶通過信任該證書,從而信任了該主機. 其實這樣做效率很低,但是銀行更側重安全. 這一點對我們沒有任何意義,我們的server ,採用的證書不管自己issue(問題) 還是從公眾的地方issue, 客戶端都是自己人,所以我們也就肯定信任該server.

通訊過程中的資料的洩密和被竄改 

一般意義上的https, 就是 server 有乙個證書,主要目的是保證server是目標伺服器,服務端和客戶端之間的所有通訊,都是加密的。

我推薦一篇寫的比較好的ios中如果配置https請求的方式 

我推薦一篇寫的比較好的ios中如果配置https請求的方式 

我推薦一篇寫的比較好的ios中如果配置https請求的方式 

接下來這3句話很重要

3. 具體講,是客戶端產生乙個對稱的金鑰,通過server 的證書來交換金鑰. 一般意義上的握手過程. 

3. https所有的資訊往來就都是加密的. 第三方即使截獲,也沒有任何意義.因為他沒有金鑰(鑰匙串)

(記住這裡)少許對客戶端有要求的情況下,會要求客戶端也必須有乙個證書.【這裡客戶端證書,其實就類似表示個人資訊的時候,除了使用者名稱/密碼, 還有乙個ca 認證過的身份. 這樣能夠更安全的確認自己的身份。比如少數個人銀的具體證書可能是拿u盤作為乙個備份的載體.這裡的u盾就是ca 驗證過的身份】

**接下來作為拓展可以不做了解

https 的實現 

1.http協議,乙個get(獲取)乙個response(返回). 由於https 要還金鑰和確認加密演算法的需要.單握手就需要6/7 個往返.過多的round trip(巡迴) 肯定影響效能.

2.具體的http協議,每一次響應或者請求, 都要求客戶端和服務端對會話的內容做加密/解密.儘管對稱加密/解密效率比較高,可是仍然要消耗過多的cpu,為此有專門的ssl 晶元. 如果cpu 信能比較低的話,肯定會降低效能,從而不能serve 更多的請求.加密後資料量的影響. 所以,才會出現那麼多的安全認證提示。

補充附錄:

說道安全機制 不得不說說鑰匙串(金鑰=密碼鑰匙) 

公鑰(public key)與私鑰(private key)是通過一種演算法得到的乙個金鑰對(即乙個公鑰和乙個私鑰),公鑰是金鑰對中公開的部分,私鑰則是非公開的部分。 

通過演算法得到的金鑰對能保證在世界範圍內是唯一的。使用這個金鑰對的時候,如果用其中乙個金鑰加密一段資料,必須用另乙個金鑰解密。(比如用公鑰加密資料就必須用私鑰解密,如果用私鑰加密也必須用公鑰解密,否則解密將不會成功) 

一把私有的鑰匙,僅有使用者才擁有。 

一把公開的鑰匙,可公開發行配送,只要有要求即取得。

iOS基於Https的網路請求

https簡單說明 https 全稱 hyper text transfer protocol over secure socket layer 是以安全為目標的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl 安全套接字層 因此加密的詳細內容就需要ss...

iOS中https的網路請求的配置

https https secure hypertext transfer protocol 安全超文字傳輸協議 它是乙個安全通訊通道,https經由 超文字傳輸協議 http 進行通訊,但利用ssl tls來加密封包。https開發的主要目的,是提供對網路伺服器的身分認證,保護交換資料的隱私與完整...

請描述https的請求過程。

客戶端向伺服器發起https請求,連線到伺服器的443埠 伺服器端有乙個金鑰對,即公鑰 即數字證書 和私鑰,是用來進行非對稱加密使用的,伺服器端儲存著私鑰,不能將其洩露,公鑰可以傳送給任何人 伺服器將自己的公鑰傳送給客戶端 客戶端收到伺服器端的公鑰之後,檢查其合法性,如果發現發現公鑰有問題,那麼ht...