HTTPS

iOS9把所有的http請求都改爲https了:iOS9系統發送的網絡請求將統一使用TLS 1.2 SSL。採用TLS 1.2 協議,目的是 強制增強數據訪問安全,而且 系統 Foundation 框架下的相關網絡請求,將不再默認使用 Http 等不安全的網絡協議,而默認採用 TLS 1.2。服務器因此需要更新,以解析相關數據。如不更新,可通過在 Info.plist 中聲明,倒退回不安全的網絡請求。

在討論之前,跟往常一樣,先說下iOS程序猿們最關心的問題:

跟我有毛關係?需要我加班嗎?!

首先咱們來看下業內對Apple這一做法的評論:

1.jpg

這是某社交App上討論,看來業內還是吐槽聲和肯定聲同在。

結論是:

跟你很有關係,加班吧,少年!

書歸正傳【嚴肅臉】,我們正式討論下 WHAT,WHY,HOW:

  1. WHAT(什麼是SSL/TLS?跟HTTP和HTTPS有什麼關係)

  2. WHY(以前的HTTP不是也能用嗎?爲什麼要用SSL/TLS,閒得慌?!Apple是不是又在反人類?)

  3. HOW(如何適配?---弱弱地問下:加班要多久?)

WHAT(什麼是SSL/TLS?跟HTTP和HTTPS有什麼關係)

跟往常一樣,先說結論:

1
HTTP+SSL/TLS+TCP = HTTPS

TLS 是 SSL 新的別稱。舉個例子:

“TLS1.0”之於“SSL3.1”,猶“公元2015”之於“民國104”,或者是“一千克”之於“一公斤”,或者是“半斤”之於“八兩”:稱呼不同,但意思相同。

SSL 3.0版本之後的迭代版本被重新命名爲TLS 1.0,

也就是說:

1
TLS 1.0 = SSL 3.1

所以他們是一個東西,我們平常也經常簡單見到 “SSL/TLS” 這種說法。

常用的是下面這些:

  • SSL 2.0

  • SSL 3.0

  • TLS 1.0 (SSL 3.1)

  • TLS 1.1 (SSL 3.1)

  • TLS 1.2 (SSL 3.1)

那爲什麼標題是“使用HTTPS”而沒有提及SSL和TLS什麼事? 要理解這個,要看下一個公式:

1
HTTP+SSL/TLS+TCP = HTTPS

blob.png

打個比方:如果原來的 HTTP 是塑料水管,容易被戳破;那麼如今新設計的 HTTPS 就像是在原有的塑料水管之外,再包一層金屬水管。一來,原有的塑料水管照樣運行;二來,用金屬加固了之後,不容易被戳破。

目前,應用最廣泛的是TLS 1.0,接下來是SSL 3.0。但是,主流瀏覽器都已經實現了TLS 1.2的支持。

Apple讓你的HTTP採用SSL/TLS協議,就是讓你從HTTP轉到HTTPS

WHY(以前的HTTP不是也能用嗎?爲什麼要用SSL/TLS,閒得慌?!Apple是不是又在反人類?)

不使用SSL/TLS的HTTP通信,就是不加密的通信!

所有信息明文傳播,帶來了三大風險:

  1. 竊聽風險(eavesdropping):第三方可以獲知通信內容。

  2. 篡改風險(tampering):第三方可以修改通信內容。

  3. 冒充風險(pretending):第三方可以冒充他人身份參與通信。

SSL/TLS協議是爲了解決這三大風險而設計的,希望達到:

  1. 所有信息都是加密傳播,第三方無法竊聽。

  2. 具有校驗機制,一旦被篡改,通信雙方會立刻發現。

  3. 配備***書,防止身份被冒充。

HOW(如何適配?---弱弱地問下:加班要多久?)

正如文章開頭所說:

TLS 1.2 協議 強制增強數據訪問安全 系統 Foundation 框架下的相關網絡請求,將不再默認使用 Http 等不安全的網絡協議,而默認採用 TLS 1.2。服務器因此需要更新,以解析相關數據。如不更新,可通過在 Info.plist 中聲明,倒退回不安全的網絡請求。

方案一:立即讓公司的服務端升級使用TLS 1.2

方案二:雖Apple不建議,但可通過在 Info.plist 中聲明,倒退回不安全的網絡請求依然能讓App訪問指定http,甚至任意的http,

具體做法見gif圖,示例Demo見 Demo1

2.gif

正如 Apple官方文檔 所說 :

blob.png

blob.png

blob.png

Info.plist 配置中的XML源碼如下所示:

645.jpg

上面是比較嚴謹的做法,指定了能訪問哪些特定的HTTP。當然也有暴力的做法: 徹底倒退回不安全的HTTP網絡請求,能任意進行HTTP請求,比如你在開發一款瀏覽器App,或者你想偷懶,或者後臺想偷懶,或者公司不給你升級服務器。。。

646.jpg

聲明:目前Apple的官方文檔並未提及如何在 Info.plist 配置,我將密切關注官方文檔,如有提及,再來更新本文 .


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章