https並非是應用層乙個新的協議,通常http直接和tcp通訊,https則先和安全層(ssl、tls)通訊,然後安全層再和tcp層通訊。
可以看出https就是在http的基礎上增加了一層ssl/tls那麼ssl都起了什麼作用呢?
所有資訊是加密傳輸的
配備身份驗證(服務端),防止身份被冒充
具有校驗機制,一旦被篡改,通訊雙方會立刻發現
tls全稱傳輸層安全協議transport layer security protocol,tls/ssl是一種加密通道的規範。
tls協議是ssl協議發展來的,目前大都用的是tls協議了理解https前需要理解這些概念:對稱加密、非對稱加密、摘要演算法、數字簽名、證書、認證中心(ca - certificate authority)
1. 對稱加密演算法
定義:採用單鑰密碼系統的加密方法,同乙個金鑰可以同時用作資訊的加密和解密。
特點:常用演算法:
2. 非對稱加密演算法
定義:非對稱加密演算法需要兩個金鑰:公鑰和私鑰,公鑰和私鑰是一對。
特點:如果用公鑰加密,只有用對應的私鑰能解密;
如果用私鑰加密,只有用對應的公鑰能解密
由於演算法複雜,使得加解密速度沒用對稱加密那麼快。有兩種金鑰,其中乙個是公開的,就不需要傳輸對方的金鑰了,安全性提高了很多。
常用演算法:
rsa、dsa、ecdsa
3. 數字簽名
數字簽名有兩種功能:
能確認訊息是由傳送方簽名併發出來的,因為別人假冒不了傳送方的簽名
能確認訊息的完整性,校驗資料是否被篡改。
數字簽名的過程:
將要傳送的原文資料用hash演算法(摘要演算法,雜湊演算法)生成訊息摘要,然後用傳送者的私鑰加密生成數字簽名。
簽名校驗過程:
接收者用對應的公鑰解密開簽名,然後也用hash演算法對收到的原文資料生成乙個訊息摘要。兩相對比,如果一致說明資訊完整有效。
訊息摘要演算法分為三類:
4. 證書
數字證書:是一種經證書認證構數字簽名的,包含公鑰,擁有者資訊的檔案。
ssl證書檔案中包含:組織資訊、網域名稱資訊、公鑰、證書有效期等等。
5. 認證中心(ca)
ca是證書的簽發機構,它是公鑰基礎設施的核心。ca是負責簽發證書、認證證書、管理已頒發證書的機關。
ca把自己的ca證書整合在了瀏覽器和作業系統裡面。客戶端瀏覽器通過這個ca證書能夠識別伺服器返給他的證書的真偽。
介紹完上述知識後,接著了解下https的請求流程:
瀏覽器給出tls協議版本號、乙個客戶端生成的隨機數1,以及客戶端支援的加密方法去服務端請求證書。
伺服器確認雙方使用的加密方法,並給出數字證書,以及乙個伺服器生成的隨機數2。
瀏覽器確認數字證書有效,然後生成乙個新的隨機數3,並使用數字證書中的公鑰加密這個隨機數,發給伺服器。
伺服器使用自己的私鑰,解密獲取客戶端發來的隨機數。這時雙方交換過3個隨機數了。
客戶端和伺服器根據約定的加密方法,使用前面的三個隨機數經過特定的演算法,生成「對話金鑰」,用來加密整個對話過程。
客戶端怎麼校驗伺服器發來的數字證書的合法性?
了解HTTPS協議
大家都知道,在客戶端與伺服器資料傳輸的過程中,http協議的傳輸是不安全的,也就是一般情況下http是明文傳輸的。但https協議的資料傳輸是安全的,也就是說https資料的傳輸是經過加密。在客戶端與伺服器這兩個完全沒有見過面的陌生人交流中,https是如何保證資料傳輸的安全性的呢?下面我將帶大家一...
Https簡單原理
三 https的工作原理 https在傳輸資料之前需要客戶端 瀏覽器 與服務端 之間進行一次握手,在握手過程中將確立雙方加密傳輸資料的密碼資訊。tls ssl協議不僅僅是一套加密傳輸的協議,更是一件經過藝術家精心設計的藝術品,tls ssl中使用了非對稱加密,對稱加密以及hash演算法。握手過程的簡...
HTTPS簡單總結
https全稱hyper text transfer protocol over secure socket layer超文字傳輸安全協議,是以安全為目標的http通道。即http下加入ssl tls層,https的安全基礎是ssl,https在http跟tcp之間多了乙個加密 身份校驗層。http...