https知識整理

2021-09-30 19:18:14 字數 1701 閱讀 4259

最近在做和https相關的工作,因此把工作中遇到的問題及知識做一下梳理和總結。

在網際網路時代,資訊互動存在著不安全性,你無法判斷你訪問的**是真實的還是中間服務,https就是為了解決這個問題而產生的。在說https具體的知識之前,先要普及2個知識,對稱演算法和非對稱演算法。

對稱加密演算法:加密方和解密方共用乙個金鑰,該金鑰既可以進行加密也可以進行解密。

非對稱加密演算法:是指乙個加密演算法的加密金鑰和解密金鑰是不一樣的,或者說不能由其中乙個金鑰推導出另乙個金鑰,分為公鑰和私鑰。私鑰加密後的密文,只要是公鑰,都可以解密,但是公鑰加密後的密文,只有私鑰可以解密。私鑰只有乙個人有,而公鑰可以發給所有的人。一般伺服器存放私鑰,客戶端存放公鑰。

https:是以安全為目標的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。https實現的方案需要上述的知識點。

通過上述基礎知識普及,只要客戶端能夠安全的獲取到伺服器非對稱加密對的公鑰,那麼通過伺服器的公鑰進行加密資訊原文,密文在網路傳輸過程中就是安全的,即使被第三方抓取也不能解密,應為只有伺服器有私鑰可以進行解密。考慮到非對稱加密的加密解密效能是比較低的,因此每次資料傳輸都用非對稱加密演算法來傳輸原文是不合適的,因此換個思路做優化,在進行第一次http連線時,客戶端生成乙個對稱演算法(並且通過公鑰私鑰傳輸安全機制來傳輸協商後的對稱演算法給到伺服器,一般這個對稱演算法還會加入隨機數),然後客戶端原文通過這個對稱演算法進行加密,並且在網路上傳輸。(由於對稱演算法是實時生成的,並且會變化的,雖然對稱演算法加密過的密文在網路上可能被抓取,理論上會破解,但是現實中難度是很大的,要通過窮舉法來反覆)

用圖示方便大家理解上述過程

那麼所有的重點來了,我們怎麼在網路上保證客戶端能夠安全獲取到伺服器私鑰對應的公鑰?

1) 描述了中間攻擊過程

由此可見在網路上獲取伺服器公鑰始終無法解決上面的問題,因此引入第三方證書管理機構。

一般**申請證書的步驟如下

2)數字證書資訊除了伺服器的公鑰資訊以外,還儲存了其他資訊(如圖),其中數字簽名有2部分組成

證書編號的生成方法,以及該證書編號經過第三方機構私鑰加密後的證書編號。

當客戶端訪問伺服器的時候,伺服器返回數字證書,讓客戶端來鑑別。

客戶端獲取到數字證書,開始對證書中的內容進行驗證(根據公開的方法,證書中的原文資訊),如果客戶端計算出來的證書編號與用第三方公鑰解密證書編號得到的結果相同,則驗證通過。

第三方機構的公鑰會儲存在客戶端的證書管理中(有的在作業系統中),客戶端也會定期到第三方證書機構進行更新機構及公鑰更新。

簡單描述下互動過程:

HTTPS知識小結

internet上的兩台機器a,b要建立起http連線了,在這之前要先建立tcp連線,情景大概是這樣子的 網路上有個關於tcp的笑話,大概就是上面的意思。當然事實上的情景要比這個複雜 tcp握手本質上是在約定一次二進位制通訊的引數,使得網路上的兩台機型能夠基於這個約定交換二進位制資料。因為大家也知道...

https 相關知識 (openssl)

秘鑰演算法和協議 對稱加密 加密和解密使用同乙個秘鑰 des data encryption standard 不安全,容易被破解 56位秘鑰 3des triple des aes advanced encryption standard 安全性特別高 秘鑰128bits 192bits 256b...

oracle 知識整理

刪除使用者 例如建立了乙個使用者 a,要刪除它可以這樣做 connect sys 密碼 as sysdba drop user a cascade 就這樣使用者就被刪除了 使用者修改密碼,解鎖 alter user scott identified by alter user scott accou...