產品經理懂點技術之:什麼是https,與http有什麼區別

某天,產品汪突然發現,自家的產品在電腦瀏覽器上打開、在微信瀏覽器裏面打開,都被提示“不安全”!這樣用戶看到該有多困擾啊。

Google Chrome對不安全網址的提示:

微信打開不安全網址時的提示“防欺詐盜號,請勿支付或輸入qq密碼”:

小汪就納悶了,我們什麼都沒做啊,咋就不安全了呢?經過一番研究,原來是自己產品的網址,都是http開頭的,而不是https開頭的,與程序猿哥哥溝通一番後,全部鏈接換成了https,就再也不會有這樣的提示了。

 


什麼是http?


要搞清什麼是https前,首先要了解什麼是http。

HTTP協議(HyperText Transfer Protocol,超文本傳輸協議)是因特網上應用最爲廣泛的一種網絡傳輸協議,所有的WWW(萬維網)文件都必須遵守這個標準。我們常見我網站、手機上的H5、甚至後臺服務器端很多的接口,都是採用HTTP協議實現。

所以我們需要上百度,就在瀏覽器中輸入http://www.baidu.com,就可以訪問百度的網站了。當然,一般的瀏覽器如果你沒有輸入http://,也會幫你自動補全這一部分的。

 

以谷歌瀏覽器爲例,輸入訪問sports.sina.com.cn/nba/並訪問新浪體育的NBA頻道,然後點一下地址欄,複製一下網址。隨便找個地方粘貼一遍:http://sports.sina.com.cn/nba/,就能發現前面已經帶上了http://協議的標誌。

http的傳輸,具有簡單、靈活的特點,但缺點是使用明文傳輸,請求和響應不會對通信方進行確認、無法保護數據的完整性,傳輸內容容易被竊取。

 


什麼是https?爲什麼要用https


HTTPS (全稱:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全爲目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。

 

網頁內容採用https傳輸後,用戶端和服務器端將利用“非對稱加密算法”交換祕鑰。服務器,也就是上圖中的小紅,先會生成一個公鑰、一個祕鑰。然後用證書封裝公鑰之後,把證書交給用戶,也就是上圖中的小明。

什麼是證書:

  • CA證書,是指由證書頒發機構(CA, Certificate Authority)即頒發數字證書的機構,頒佈給對應公司用的數字證書。CA是負責發放和管理數字證書的權威機構,並作爲電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。一般來說,證書業務都是要收費的。
  • 世界上很有多家證書頒發機構,程序猿哥哥們也可以生成自己的證書,但是很多證書是“不受信任的”,我們使用的微信、Google Chrome瀏覽器、iPhone的iOS系統等,都只選擇信任那些具備公信力的證書頒發機構頒發的證書。
  • 證書頒發機構就像我們用的四通一達快遞一樣,大家選擇他們就是因爲覺得信得過,快遞被掉包的可能性低。而那些小公司、或自行頒發的證書,就像一家沒聽說過的快遞公司一樣,大家去選擇他們收發快遞時,也不是不能用,但是碰上快遞被盜的概率就可能上升。

用戶在獲得服務器給的證書後,覺得這個證書值得信任,就打開它獲得裏面的公鑰,與此同時,用戶端會生成一串隨機的字符串,然後用服務器的公鑰對字符串進行加密,把加密完的內容發給服務費。

服務器在獲得用戶發送的密文後,用私鑰解密,就獲得了用戶端的密碼。這個過程就叫做非對稱加密。

服務器知道了用戶的密碼後,雙方傳輸數據前,都先用用戶生成的那個密碼對數據進行加密,然後再傳輸給對方,然後對方用這個密碼進行解密。加密解密都用同一個祕鑰的時候,這個過程就叫做對稱加密。

https的傳輸過程就是如此,先用非對稱加密傳輸讓雙方獲得一個對稱加密的祕鑰,然後雙方再用這個對稱祕鑰進行數據的傳輸加密,這樣能兼顧安全和快速。由於採用了密文傳輸,這時候第三方就不能竊聽用戶和服務器之間傳輸的內容了,這時候網站的安全性就獲得了提高。

可是這時候,小汪又想起另外一個問題,平常出了bug,程序猿哥哥們總是在說抓包抓包的,要抓包看看到底傳了什麼導致出錯的,我們網站用了https協議後,數據就被加密了,那傳了什麼就不知道啦,那以後遇到bug怎麼辦呢?然後程序員哥哥會心一笑說:其實並沒有什麼,https也是可以抓包的,只需要安裝一個證書就可以了


對https抓包的原理


前文提到了,服務器在把公鑰發送給用戶時,使用了一個證書來封裝公鑰,就像我們把東西寄給別人時,先用快遞袋裝好,再寄出去。如果我們選擇了一家不可靠的快遞公司,快遞員偷偷把快遞袋拆了,把裏面的東西換了(也可能只是拆開看看裏面都有啥),重新打包,再把快遞繼續送給對方,這就實現了https的抓包過程。

 

程序猿哥哥說的“裝一個證書”,其實就是信任抓包軟件的第三方證書,然後這個“黑心的快遞員”,就會作爲一個不老實的中間人,竊取了用戶端生成的對稱祕鑰,然後不斷的記錄下用戶與服務器之間傳輸的密文,並且用竊取到的祕鑰進行解密,這樣就知道了雙方之間傳輸的內容了。

小汪這時候恍然大悟,難怪網絡上經常說,電腦和手機上不要亂裝軟件,網站雖然用了https加密傳輸的內容,但是如果自己手機上裝了一個類似抓包軟件的病毒軟件,這時候就相當於把自己的賬號密碼、聊天內容都拱手送了出去呀!

發佈了17 篇原創文章 · 獲贊 20 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章