HTTPS 原理與證書實踐 一)

2021-08-21 03:44:05 字數 3952 閱讀 2013

對於預設的兩台主機而言,早期傳輸資料資訊並沒有通過加密方式傳輸資料,裝置兩端傳輸的資料本身實際是明文的,只要能擷取到傳輸的資料報,就可以直接看到傳輸的資料資訊,所以根本沒有安全性可言。

ø網路安全問題--資料機密性

在網路傳輸資料資訊時,對資料的加密是至關重要的,否則所有傳輸的資料都是可以隨時被第三方看到,完全沒有機密性可言。

ø網路安全問題--資料完整性

網路傳輸資料的完整性,也是安全領域中齋要考慮的裡要環節,如果不能保證傳輸資料的完整性,那傳輸過程中的資料就有可能被任何人所篡改,而傳輸數琚雙方又不能及早的進行發現,將會造成互連通汛雙方所表達資訊的意義完全不一致。因此,對於不芫整的資料資訊,接收方應該進行相應判斷,如果完整性驗證錯誤,就拒絕接收相應的資料。

ø網路安全問題--身份驗證問題

ø資料機密性解決思路--利用普通演算法解決機密性

為了保證資料的機密性,首先可以採用的方法就是將資料通過相應演算法,轉換為其它的資料資訊,然後再通過相應演算法反推出真正的資料是什麼,這樣一來就保證了資料在網路傳輸過程中安全性,不會被其它人輕易的看到傳輸過程中的資料資訊.資料加密前的資訊稱為明文資料(plaintext),經過加密演算法轉換後進行傳輸的資訊稱為密文資料(ciphertext);反之經過解密演算法轉換後,會將密文資料恢復為明文資料進行顯示接收。

圖 - 資料機密性處理示意圖

l 優點:

實現了資料機密傳輸,避免了明文傳輸資料的危險性。

l 缺點:

利用加密演算法,將明文改密文,如果第三方獲得加密演算法,即可將傳輸密文再次變為明文

ø資料機密性解決思路--利用對稱加密演算法解決機密性

普通演算法雖然已經解決了明文資料的機密性,可以在網路傳輸過程中不被直接看到明文資料。但是新的問題又產生了,既然明文資料是通過演算法改變成了新的資料資訊,如果第三方獲得了演算法,利用演算法也是可以將密文資料資訊,再次轉換為明文資料資訊,因此出現了對稱加密演算法,形象比喻來說:資料加密演算法就好比是一本密碼規則手冊,而對稱加密演算法就是將手冊放在了乙個保險櫃中進行了上鎖傳輸,只有傳遞資料資訊的雙方知道開啟保險櫃的密碼。

圖 - 資料機密性處理示意圖

ø資料完整性解決思路--利用單項加密演算法

利用資料的單項加密演算法(提取資料指紋),進行提取資料特徵碼的方式,從而完成資料傳輸的完整性驗證.實際的演算法實現過程為:在一段明文資料資訊後加上資料資訊的特徵碼,這個特徵碼是通過結合資料資訊進行相應演算法獲得的資料特徵碼,接收方當收到資料資訊後,會利用相同的加密演算法對獲取的資料進行加密,確認加密後得到的特徵碼是否與傳送過來資料後面描述的特徵碼一致;如果一致,可以表示資料沒有被篡改過,如果不一致表示資料完整性遭到了破壞,資料一概不予以接收處理。

ø資料完整性解決思路--利用單項加密演算法(加密特徵碼)

由於可能存在中間人攻擊的可能性,因此可以對傳輸過程中資料特徵碼進行加密,傳送方利用對稱金鑰方式對手中的特徵碼進行加密,接收方會利用相同的金鑰對手中的特徵碼進行解密,從而確認特徵碼是否一致.如果中間人將新的特徵碼也進行了加密,傳送給接收方,但接收方無法利用和傳送方協商好的解密金鑰對特徵碼進行解密,最終無法識別中間人傳送過來的資料特徵碼資訊。

在此需要了解一下加密演算法的原理

↓ 通訊雙方需要進行資料金鑰資訊約定(金鑰協商過程),在金鑰相互可以獲悉的過程中,需要借助金鑰交換機制(internet key exchange ike),進而實現金鑰的互動。為了滿足網路中,兩台主機間金鑰交換統一的過程,需要引入一種新的協議diffie-hellman協議。

diffie-hellman

協議演算法實現的過程:

1) 首先傳送方選取乙個大素數p(只能被1和自己整除的數),再選取乙個生產數g ,並且傳送方將p與g經過網際網路傳輸到接收方。

2) 資料傳輸的兩端,傳送方選取乙個隨機數x,接收方選取乙個隨機數y;傳送方只知道隨機數x ,接收方只知道隨機數y , x和y不在網際網路上進行傳輸。

3) 接收資料雙方開始進行計算,對於傳送方進行計算g的x次方對p取模的結果,傳輸給接收者;而接收方進行計算g的y次方對p取模的結果,傳輸給傳送者。

4) 此時對於接收方獲取到了傳送方的g的x次方對p取模的結果,在取模結果的基礎上進行y次方的運算,y就是接收方自身產生的隨機數y;而對於傳送方獲取到了接收方的g的y次方對p取模的結果,在取模結果的基礎上進行x次方的運算。x就是傳送方自身產生的隨機數x#此次,雙方的加密運算金鑰就實現了交換,並且是統一一致的,最終的金鑰為g的xy次方對p取模的結果。

圖 - diffie-hellman協議演算法示意圖

ø網路安全身份驗證解決方案

ø安全身份驗證解決思路-利用非對稱金鑰加密箅法(公鑰加密演算法)

利用非對稱加密演算法(公鑰加密演算法),可以從根本上有效解決網路中,資料傳輸雙方的安全身份驗證問題。非對稱加密演算法中,存在金鑰對的概念,即擁有公鑰(public key)與私鑰(pnvate key),其中公鑰不是自行建立出來的而是從私鑰中提取出來一部分作為公鑰,因此可以說公鑰是來自於私鑰的,而私鑰才決定了金鑰加密的安全性,於是私鑰的長度可能會非常長,從最初的1024,2048,到4096一直到更多的位數,將私鑰金鑰位增加的很長,從而提公升了金鑰安全性。

利用非對稱加密演算法,需要遵循乙個基本原則:公鑰加密的只能利用與之配對的私鑰進行解密,反之也是一祥的.但是非對稱加密演算法並不能用於對資料完整性進行驗證,因為私鑰只有乙份,但公鑰可以有很多份。儘管非對稱加密演算法不能滿足資料

完整性驗證,但完全可以滿足對傳輸者身份驗證的需求,因為接收者可以擁有相應的公鑰,只有與之對應的傳送者用相應的私鑰進行加密資訊,用對應的公鑰自然即可解密,否則可以確認傳送者身份已經發生了變化。

預設公鑰在網路中進行傳遞時,預設情況下也是會出現問題的如下圖所示:

對傳送方的公鑰資訊進行公正步驟:(借助第三方安全機構)

a) a和b端首先生成自己的公鑰和私鑰的金鑰對,為了使對方能相佶自己的公鑰資訊,將自己的公鑰資訊告知給第三方發證機構,利用第三方機構對自己的公鑰進行公證,第三方機構會製作乙個數字證書(機構編號以及發證機構的聯),並且第三方機構也要給自己設定乙個合法的公鑰和私鑰,並且公鑰設為第三方機構的公鑰證書。

b) 發證機關計箅出數字證書資料的特徵碼,並用自己的私鑰進行加密,並將加密的資訊附加到

特徵碼後成為數字簽名。

c) a和b兩錠獲得公正過的證書資訊,並通過證書資訊傳遞.得到對方的公鑰。

d) a和b兩端與第三方機構建立連線,獲得第三方證書,通過第三方證書獲得第三方公鑰,利用第三方公鑰只要能解密數字簽名即可。

目前標準的證書儲存格式是x509,還有其他的證書格式,需要包含的內容為:

ü 公鑰資訊,以及證書過期時間

ü 證書的合法擁有人資訊

ü 證書該如何被使用

ü ca頒發機構資訊

ü ca簽名的校驗碼

網際網路上使用的ssl和tls證書管理機制均使用x509的格式。

基於 Nginx 的 HTTPS 證書配置實踐

前往 韋世東的技術專欄 收穫爬蟲架構 爬蟲逆向 儲存引擎 訊息佇列 python golang相關知識 https 的好處就不多說了,不過隨著 chrome 和 firefox 在位址列新增了明顯的鎖標識,甚至在使用者訪問網頁的時候會顯示 這樣一來,我們就不得不給自己的站點加上 ssl 證書,否則會...

https理論與實踐

本文內容分為以下三部分 part1 https協議 普通的http請求,在通訊雙方建立了tcp連線之後,就可以進行了。而https則不同,在建立tcp連線之後,需要先進行ssl協議的握手過程,然後才是http的通訊。ssl的握手過程如下圖所示 alice想要與bob進行https的通訊,需要以下幾步...

https理論與實踐

本文內容分為以下三部分 part1 https協議 普通的http請求,在通訊雙方建立了tcp連線之後,就可以進行了。而https則不同,在建立tcp連線之後,需要先進行ssl協議的握手過程,然後才是http的通訊。ssl的握手過程如下圖所示 alice想要與bob進行https的通訊,需要以下幾步...