HTTPS =?HTTP + Secure(常見SSL/TLS)
HTTPS安全性更高,HTTP效率更高,但我不建議您使用HTTP
安全:
TLS/SSL中使用了非對稱加密(RSA,DSA/DSS),對稱加密(AES,RC4,3DES)以及HASH算法(MD5,SHA1,SHA256)。握手過程的具體描述如下:
1)瀏覽器將自己支持的一套加密規則發送給網站。?
2)網站從中選出一組加密算法與HASH算法,并將自己的身份信息以證書的形式發回給瀏覽器。證書里面包含了網站地址,加密公鑰,以及證書的頒發機構等信息。??
3)瀏覽器獲得網站證書之后瀏覽器要做以下工作:?a)?驗證證書的合法性(頒發證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄里面會顯示一個小鎖頭,否則會給出證書不受信的提示。?b) 如果證書受信任,或者是用戶接受了不受信的證書,瀏覽器會生成一串隨機數的密碼,并用證書中提供的公鑰加密。?c)?使用約定好的HASH算法計算握手消息,并使用生成的隨機數對消息進行加密,最后將之前生成的所有信息發送給網站。?
?4)網站接收瀏覽器發來的數據之后要做以下的操作:?a) 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發來的握手消息,并驗證HASH是否與瀏覽器發來的一致。?b) 使用密碼加密一段握手消息,發送給瀏覽器。?
?5)瀏覽器解密并計算握手消息的HASH,如果與服務端發來的HASH一致,此時握手過程結束,之后所有的通信數據將由之前瀏覽器生成的隨機密碼并利用對稱加密算法進行加密。
效率:(訪問百度)
補充:
SSL -?(Secure Sockets?Layer安全套接層協議)
TLS -?(Transport?Layer?Security 安全傳輸層協議)
SSL1.0 -> SSL2.0 ->?SSL3.0->?TLS(SSL更新到3.0時,IETF對SSL3.0進行了標準化,并添加了少數機制,標準化后更名為TLS1.0,所以也可看著是SSL3.1)