發表日期:2016-12 文章編輯:小燈 瀏覽次數:2621
http協議是目前非常普及的應用層傳輸協議,了解https之前要先知道http的缺點.
1.通信使用明文(不加密),內容可能被竊聽.(抓包工具可以獲取請求和響應內容)
2.不驗證通訊方的身份,可能遭遇偽裝.(任何人都能發送請求,不管對方是誰都會返回響應).
3.無法證明報文的完整性,可能會遭篡改.(沒有辦法確認發出的請求/響應和接收到的請求/響應前后一致)
這些問題不止會在http上出現,在其他未加密的協議中也會出現這類問題
HTTP+加密+認證+完整性保護 = HTTPS.
為了解決上述問題,需要再http上再加入加密處理和認證等機制.我們把添加了加密和認證機制的http稱之為https(http secure)
HTTPS是身披SSL保護外衣的HTTP
HTTPS并非應用層的一種新協議,只是http通訊接口部分用SSL(secure socket layer)和TLS(transport layer security)協議代替.
通常,http直接和tcp通信.當使用ssl時,則演變成先和ssl通信,再由ssl和tcp通訊.so,所謂https其實就是身披ssl保護外衣的http.
在對ssl了解之前先了解兩種加密技術.
公開密鑰加密(public-key cryptography)->加密算法是公開的,而密鑰是保密的.加密和解密都會用到密鑰.但反過來說只要持有密鑰就能解密.
共享密鑰加密(common key crypto system)->也被叫做對密鑰加密.以共享密鑰方式加密時必須將密鑰也發給對方.在互聯網上轉發密鑰時,若果通信被監聽那么密鑰就會落入攻擊者之手,另外還得設法安全的保管接收到的密鑰.
公開密鑰加密使用一對非對稱的密鑰.一把私鑰一把公鑰.私鑰不能讓任何人知道,公鑰任何人都能獲得.也就是發送密文一方使用對方的公鑰進行加密處理,對方收到被加密的信息后,再使用自己的的私鑰進行解密.利用這種方法不需要發送用來解密的私鑰,也不必擔心密鑰被盜走.
https采用共享密鑰加密和公開密鑰加密兩者并用的混合加密機制.若密鑰能夠實現安全交換,那么有可能會考慮僅適用公開密鑰加密來通信.但是公開密鑰加密與共享密鑰加密相比,其處理速度要慢.
所以應充分利用兩者各有的有事,將多種方法組合起來用于通信.在交換密鑰環節適用公開密鑰加密方式,之后的建立通信交換報文階段則適用共享加密方式.
公開密鑰加密方式存在一些問題,無法證實公鑰真偽.為了解決這個問題,可以使用由數字證書認證機構(CA,certificate authority)和其相關頒發的公鑰證書.
證書的一個作用是用來證明作為通信乙方的服務器是否規范,另外一個作用就是確認對方服務器背后運營的企業是否真實存在.擁有該特性的證書就是EV SSL證書(extended validation SSL certificate)
EV SSL證書是基于國際標準的認證指導方針頒發的證書.通過認證的web網站能夠獲得更高的認可度.
持有EV SSL證書的web網站瀏覽器地址欄處的背景是綠色的.點擊后可以查看詳情
HTTPS中還可以使用客戶端證書.以客戶端證書進行客戶端認證,證明服務器正在通信的對方始終是預料之內的客戶端,起作用跟服務器證書如出一轍.
想獲取證書時,用戶需要自行安裝客戶端證書,證書是付費購買的,且每張證書對應到每位用戶也就意味著需支付和用戶數對等的費用.另外要讓不同的用戶自行安裝證書,這件事本身也是充滿了挑戰.
現狀是,安全性極高的認證機構可頒發客戶端證書但僅用于特殊用途的業務.比如銀行的網銀就采用客戶端證書.客戶端證書另一個問題只能證明客戶端實際存在,而不能用來證明用戶本人的真實.
由自認證機構頒發的證書成為自簽名證書
如果使用openSSL這套開源程序,都可以構建一套屬于自己的認證機構,從而自己給自己頒發服務器證書.但該服務器證書在互聯網不可作為證書使用.
獨立構建的認證機構叫做自認證機構頒發的證書為"自簽名證書"
瀏覽器訪問該服務器時,會顯示"無法確認連接安全性"或"該網站的安全證書存在問題"等
之所以這樣原因是它無法消除偽裝的可能性.值得信賴的第三方機構介入認證,才能讓已植入在瀏覽器內的認證機構頒布的公鑰發揮作用,并證明服務器的真實性.
ps:中級認證機構的證書,某些瀏覽器會以正規的證書來對待,可有的瀏覽器會當做自簽名證書.
為了更好地理解HTTPS,我們觀察一下HTTPS的通信步驟
1.客戶端通過發送client hello報文開始SSL通信.報文中包含客戶端支持的SSL指定版本,加密組件列表(所使用的加密算法 密鑰長度等)
2.服務器可進行SSL通信時,會議Server Hello報文作文回應.報文中含SSL版本 加密組件.服務器的加密組件內容是從接受客戶端加密組件內篩選出來的.
3.之后服務器發送certificate報文.報文中包好公開密鑰證書.
4.服務器發送server hello done報文通知客戶端.最初階段握手協商部分結束.
5.SSL第一次握手結束后,客戶端以client key exchange報文作為回應.報文包含通信加密中使用的隨機密碼串.該報文已用步驟3中的公鑰加密;
6.客戶端繼續發送change cipher spec報文.該報文會提示想服務器,在此報文之后的通訊會采用pre-master secret密鑰加密
7.客戶端發送finished報文 該報文包含連接至今前部報文的整體校驗值.這次握手協商是否成功,要以服務器是否能夠正確解密該報文作文判定標準.
8.服務器同樣發送change cipher spec報文
9.服務器同樣發送finished報文
10.C&S finishe報文交換完畢之后,ssl連接就算建立完成.通信會受到SSL的保護.從此開始進行應用層的協議通信,即發送HTTP響應
11.應用層協議通信,即發送HTTP響應
12.最后客戶端斷開連接.斷開連接時,發送close_notity報文.上圖做了一些省略
在以上流程中,應用層發送數據時會附加一種叫做MAC(message authentication code)的報文摘要.MAC能夠查知報文是佛遭到篡改.從而保護報文的完整性.
到此HTTP的問題基本都已經解決啦,那HTTPS就沒有缺點嗎
SSL最大的問題所在就是慢!!
SSL的慢分兩種.一種指通信慢,另一種是指由于大量消耗CPU以及內存資源,導致處理速度變慢.
和使用http相比網絡負載可能會變慢2到100倍.出去和TCP連接,發送HTTP請求&響應以外,還必須進行SSL通信,因此整體上處理通信量不可避免會增加.
另一點是SSL必須進行加密處理.服務器和客戶端都要進行加密和解密的處理.比起HTTP會更多的消耗服務器和客戶端的硬件資源,導致負載增強.
針對速度變慢這一問題,并沒有根本性的解決方案,我們會使用SSL加速器(專用服務器)硬件來改善該問題.該硬件為SSL通信專用硬件,相對軟件來講,能夠提高數倍SSL的計算速度.僅在SSL處理時發揮SSL加速器的功效,以分擔負載.
為什么不一直使用HTTPS?
目前并非所有內容都進行加密處理,而是僅在那些需要信息隱藏時才會加密,以節約資源.除此之外購買證書的開銷一室原因之一
ps:SSL證書參考下面的消息;
免費的目前有 2 個
國內的:免費SSL證書申請
國外的:StartSSL? Certificates & Public Key Infrastructure
備注:其實,國內的這家的根證書,也是startssl簽發的,實際上還是等于是startssl提供的免費證書。
便宜的有很多家,這里列舉幾個:
Namecheap:Cheap SSL Certificates from $7.95/yr ? Namecheap.com
還是Namecheap:SSL Certificates. Buy Cheap SSL Certs from $4.99/yr
cheapssl:Cheap SSL Certificates. Buy or Renew Cheapest SSL at $4.80
再補充 2 個賣便宜 SSL 的:
Gogetssl:https://www.gogetssl.com/domain-validation/comodo-positive-ssl/
Starfieldtech:https://www.starfieldtech.com/
以上來自<圖解HTTP>
日期:2018-04 瀏覽次數:6761
日期:2017-02 瀏覽次數:3435
日期:2017-09 瀏覽次數:3654
日期:2017-12 瀏覽次數:3526
日期:2018-12 瀏覽次數:4815
日期:2016-12 瀏覽次數:4582
日期:2017-07 瀏覽次數:13642
日期:2017-12 瀏覽次數:3505
日期:2018-06 瀏覽次數:4265
日期:2018-05 瀏覽次數:4442
日期:2017-12 瀏覽次數:3556
日期:2017-06 瀏覽次數:3979
日期:2018-01 瀏覽次數:3941
日期:2016-12 瀏覽次數:3908
日期:2018-08 瀏覽次數:4423
日期:2017-12 瀏覽次數:3705
日期:2016-09 瀏覽次數:6404
日期:2018-07 瀏覽次數:3205
日期:2016-12 瀏覽次數:3230
日期:2018-10 瀏覽次數:3377
日期:2018-10 瀏覽次數:3479
日期:2018-09 瀏覽次數:3577
日期:2018-02 瀏覽次數:3595
日期:2015-05 瀏覽次數:3518
日期:2018-09 瀏覽次數:3305
日期:2018-06 瀏覽次數:3433
日期:2017-02 瀏覽次數:3869
日期:2018-02 瀏覽次數:4334
日期:2018-02 瀏覽次數:4171
日期:2016-12 瀏覽次數:3571
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.