我的HTTPS理解

前言

HTTPS(全稱:HyperText Transfer Protocol over Secure Socket Layer),其實 HTTPS 并不是一個新鮮協議,我在讀大學的時候就在書上看到了,那個時候就又部分公司用上了,而Google 很早就開始啟用了,初衷是為了保證數據安全。 近兩年,Google、Baidu、Facebook 等這樣的互聯網巨頭,不謀而合地開始大力推行 HTTPS, 國內外的大型互聯網公司很多也都已經啟用了全站 HTTPS,這也是未來互聯網發展的趨勢。

既然寫HTTPS的理解,那么也要談一下和HTTP的對比了

  • HTTP協議就是超文本傳輸協議,是客戶端瀏覽器和服務器之間的通信協議,舉個栗子,就是一種互相都能理解的語言。好比兩個中國人江湖,都用漢語一樣。
  • HTTPS協議只比HTTP多一一個S那么這個S應該就是security安全的意思了,舉個栗子就是,對兩者的交流語言進行了加密,不讓外人知道。
那么之間用什么加密呢,當然是加密算法了,加密算法不做深入交流,感興趣的可以自己搜索
  • 對稱加密【用相同的算法加密和對應的算法解密,然和人只要算法是什么都可以解密】
  • 非對稱加密【通過公私鑰去加密和解密,如果用私鑰加密,那么只能用這個私鑰對應的公鑰解密】
  • 哈希算法【轉換其長度比加密的信息小的多MD5、SHA-1...】
  • 數字簽名【給信息做個簽名,證明信息的有效性,信息如果改變,那么簽名就失效】

1.HTTP解釋

HTTP請求過程中,客戶端與服務器之間沒有任何身份確認的過程,數據全部明文傳輸,“裸奔”在互聯網上,所以很容易遭到黑客的攻擊,如下:

大家也可以打開你的谷歌瀏覽器在開發模式中查看

由此證明http的信息傳遞是明文的,那么就是不安全的

因為是明文的那么很容易被劫持,被不法分子知道的信息

2.HTTPS解釋

https的上面也說了,就是多了一層加密,那么究竟如何加密呢,無非是用算法,對稱加密效率最高,但是一旦被知道算法,那么就不再安全,其次是客戶端和服務端都要維持相同的密鑰,維護困難;那么非對稱加密呢?私鑰是服務器的,那么公鑰就是公開的,同樣也會被知道,其次是公鑰私鑰每次加解密的效率是明顯低于對稱加密算法的,有矛就有盾。因此現在大多數都采用了一個這種的辦法,既提高效率也維護安全。不是說非對稱加密算法的效率低于對稱加密么,那么在服務器第一次連接客戶頓的時候用非對稱加密驗證,驗證通過后,后面的信息交流就通過對稱加密解密進行后面的操作。反正小編所在的公司就是這樣,小編我就是專門做支付的,對這方面,稍微了解了一點。

上面的辦法固然好,但是當客戶端請求服務器的時候,這一步也很可能被黑客劫持,黑客知道了銀行的私鑰和公鑰就可以冒充銀行,給你一個交流了,那么久又產生了一個問題,就是:信任問題

什么是信任問題

就比如用淘寶購物,買賣雙方在支付的時候,都是把錢支付給支付寶,有支付寶做擔保,如何賣家出現是么有害消費者的行為,那么買家在有理的情況下就可以申請退款不把錢給賣家。

那么在網絡中也是這樣,那么這就是SSL證書,當客戶端連接服務器的時候,服務器會向客戶端發送一個SSL證書,證書里包含了:

  • (1)證書的發布機構CA
  • (2)證書的有效期
  • (3)公鑰
  • (4)證書所有者
  • (5)簽名

客戶端在接受到服務器的SSL證書后,會對證書進行校驗,瀏覽器會查找當前操作系統的內置受信任的證書發布機構CA,與服務器發來的證書中頒發者的CA對比,當如果沒有找到的時候就會提醒用戶是否信任當前證書,小編就無數次的遇到(一般在和銀行合作申請商戶的時候都會又這步),這就是小編眼里的HTTPS,當然HTTPS不止這些,里面包含了復雜的算法、協議和機制,這里只是小編所了解的一家之言,僅供參考。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容