前言
從2015年左右開始,Google、Baidu、Facebook 等互聯網巨頭,不謀而合地開始大力推行 HTTPS, 國內外的大型互聯網公司很多也都已經啟用了全站 HTTPS
為鼓勵全球網站的 HTTPS 實作,一些互聯網公司都提出了自己的要求:
1)Google 已調整搜索引擎演算法,讓采用 HTTPS 的網站在搜索中排名更靠前;
2)從 2017 年開始,Chrome 瀏覽器已把采用 HTTP 協議的網站標記為不安全網站;
3)蘋果App Store 中的所有應用都必須使用 HTTPS 加密連接;
4)微信小程式也要求必須使用 HTTPS 協議;
5)HTTP/2和HTTP/3 協議的支持需以 HTTPS 為基礎,
因此學習HTTPS的是一件很必要的事情
https概述
超文本傳輸安全協議(英語:Hypertext Transfer Protocol Secure,縮寫:HTTPS,常稱為HTTP over TLS,HTTP over SSL或HTTP Secure)是一種通過計算機網路進行安全通信的傳輸協議,HTTPS經由HTTP進行通信,但利用SSL/TLS來加密資料包,HTTPS開發的主要目的,是提供對網站服務器的身份認證,保護交換資料的隱私與完整性,這個協議由網景公司(Netscape)在1994年首次提出,隨后擴展到互聯網上,HTTPS是并非應用層的新協議,只是HTTP通信介面用SSL或TLS協議代替而已,
HTTP直接和TCP通信,當使用ssl時,則演變為跟ssl通信,然后再由ssl與tcp進行通信,簡單的講就是http的plus版,
在采用ssl后,http就擁有了加密、證書、完整性保護這些功能,
在講解ssl時,先講解下幾個關鍵的知識點,
加密方法
對稱密鑰加密
又稱私鑰加密、共享密鑰加密,需要對加密和解密使用相同密鑰的加密演算法,由于其速度快,對稱性加密通常在訊息發送方需要加密大量資料時使用,對稱性加密也稱為密鑰加密,
優點:性能高
缺點:密鑰泄露風險高,因為大家共享一個密鑰,假如一方泄露這個密碼,就沒有安全可言,比如:在前后端呼叫的程序中使用此種演算法,如果前端js中存放密鑰,那么就會被竊取,app端也有可能反編譯獲取,
常用的演算法:DES、3DES、AES、Blowfish、IDEA、RC5、RC6
公開密鑰加密
(英語:public-key cryptography,又譯為公開密鑰加密),也稱為非對稱加密(asymmetric cryptography),在這種密碼學方法中,需要一對密鑰,一個是私人密鑰,另一個則是公開密鑰,
優點:知道了公鑰,也無法計算出來密鑰,例如:在開發專案時,一般私鑰是保存在服務端,公鑰保存在前端,只要服務端安全,那么私鑰就不會被竊取,
缺點:計算量大,需要消耗大量的系統資源,性能低,
常用的演算法:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法),
數字簽名
數字簽名主要是有兩個作用
-
身份證明
-
驗證資訊的內容是否被篡改,
而數字簽名因為采用公鑰加密技術實作,又叫公鑰數字簽名,
示例:taker給maker給了自己的公鑰,說以后通過此公鑰可以驗證自己的身份和資訊是否篡改,
有一天,taker在外遇到了點困難需要錢,想要朝maker借點錢,但是又怕無法證明自己,所以采用數字簽名,
首先他把訊息內容,通過hash演算法計算出一個摘要,然后在采用自己私鑰對摘要進行加密
然后在把這個加密資訊添加到郵件附件中,一同發給maker,
maker收到郵件后,用公鑰對加密資訊進行解密得到了摘要,
然后在用郵件內容進行hash,生成摘要與公鑰解密出來的摘要進行比對,就可以確保此郵件是taker所發,并且內容未被篡改,然后在給taker打錢,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/514130.html
標籤:架構設計
上一篇:架構師的必備素質和成長途徑
下一篇:銀行核心系統之應用集成
