蘋果已經確定,在iOS9中通信機制采用HTTPS了。
第一篇:http://www.cnblogs.com/ziyi--caolu/p/4742577.html
上一篇詳細介紹了為什么要對HTTP進行加密,以及對HTTP進行加密的兩種主要手段。也穿插了,在我以前開發過程中,對HTTP內容進行加密的知識。這一篇,主要是講對通信過程的加密,也就是所說的HTTPS了。
簡單的說,其實 HTTPS = HTTP + 加密 + 認證 + 完整性保護
為了統一解決上一篇中提到的HTTP各種安全問題,需要在HTTP上加入加密處理和認證機制,把加了加密和認證機制的HTTP稱為HTTPS。
使用HTTPS通信時,不再是http:// 而是https://
A、身披SSL(Secure Socket Layer 安全套接層)的HTTP,即HTTPS
HTTPS並非是應用層的一種新協議,只是HTTP通信接口部分用SSL協議(TLS協議)代替而已。通常,HTTP直接和TCP通信。當使用SSL時,則是HTTP先和SSL通信,再由SSL和TCP通信。在采用SSL之后,HTTP就擁有了HTTPS的加密、證書、完整性保護功能,SSL是獨立於HTTP協議的,也就是說,不光是HTTP協議,其他運行在應用層的協議,都是可以使用SSL的。
B、相互交換密鑰的公開密鑰加密技術
SSL采用的是一種叫做公開密鑰加密的加密處理方式(近代的加密方法中加密算法是公開的,而密鑰是保密的,加密和解密都要用到密鑰,沒有密鑰,也就無法解密,但如果密鑰被攻擊者得到,那么加密也就失去了意義)。
1、共享密鑰加密的困境
加密與解密使用的是同一個密鑰的加密方式稱之為共享密鑰加密(對稱密鑰加密)。以這種方式加密時,必須將密鑰也發給對方,同樣的,如果可以確保密鑰可以安全的到達,那么數據也是可以安全到達的。

2、使用兩把密鑰的公開密鑰加密
公開密鑰加密的方式很好的解決了共享密鑰加密的問題。公開密鑰加密使用一對非對稱的密鑰。一把為私鑰(私有密鑰),一把為公鑰(公開密鑰),其中私有密鑰不能讓任何人得知,而公開密鑰則可以隨意公布。
加密方式:
發送密文的那一端,使用對方的公開密鑰進行加密處理,對方接收到被加密的信息后,使用私鑰對此密文進行解密。
利用這種方式,不需要發送用來解密的私鑰。從而解決了共享密鑰加密存在的問題。
3、使用混合加密機制的HTTPS
HTTPS采用共享密鑰加密和公開密鑰加密的混合加密機制。如果為了實現密鑰的安全,那么可以考慮僅使用公開密鑰加密技術。(公開密鑰加密比共享密鑰加密處理速度要慢)
所以,應當充分利用兩者的優勢,將多種方法組合起來進行通信:在交換密鑰環節,使用公開密鑰加密技術(比如說,從客戶端到服務器,那么在這樣一個安全的通信中,客戶端可以將共享密鑰加密中的密鑰用公開密鑰加密中的公鑰進行加密,發送給服務器,然后服務器使用公開密鑰加密技術的私鑰進行解密,就拿到了共享密鑰加密技術中的私鑰),之后建立通信報文交換的階段則可使用共享密鑰加密技術。
