IPSEC ×××
之重要概念解析篇
無止境系列文檔將以網絡安全爲方向,以專題的形式每週天發佈,但願你們支持。
第一期專題:IPSEC ×××,將分爲四周完成,每週一篇,分別爲安全基礎篇,重要概念解析篇,配置詳解篇,深刻理解篇。
【閱讀說明】
爲了方便你們閱讀,特做以下說明:
1.
專業術語或者一些概念用紅色標識。
2.
重要或者強調的語句用藍色標識。
3.
總結的部分用綠色標識。
【主要內容】
主要介紹
IPSEC
裏有可能用到的四個概念:
1.
MAC
消息認證碼
2.
數字簽名
3.
數字證書
4.
DH
算法
【MAC消息認證碼】
消息認證碼(
MAC
)
就是帶密鑰的
hash
函數,用來作驗證用。
MAC
消息認證碼是將共享密鑰和數據一塊兒作
hash
,如圖
2-1
所示。
圖
2-1
驗證過程:
1.
A
和
B
通訊以前已經協商好一個共享密鑰,只有
A
和
B
知道。
2.
A
將發出的消息和密鑰一塊兒作
hash
運算,獲得
mac
值,附在消息後面。
3.
B
收到消息和
mac
值,將消息和他共享密鑰作一樣的
hash
運算。
4.
對比兩個
hash
值,由於只有消息和密鑰都同樣,
hash
值纔可能同樣,因此若是
hash
值同樣,則說明消息是正確的,並且說明消息是由
A
(擁有共享密鑰的人)發送的。達到認證和完整性的目的。
注意:
IPSEC ×××
裏用的就是
HMAC
。
完整性和數據源認證的區別
本質區別:完整性檢驗只對消息作
hash
值,而數據源認證對數據和密鑰作
hash
。
第一,數據源認證必需要求通訊,而數據完整性認證不必定須要通訊,例如存儲數據的完整性認證。
第二,數據源認證必然要求識別數據源,而數據完整性校驗不必定須要,例如無源數據識別中的數據完整性校驗。
消息認證碼總結:
1.
MAC
主要功能是用來作消息認證的。
2.
利用
hash
算法來實現的。
3.
Hash
算法能夠用來作完整性檢驗,也能夠用來作消息認證,取決於所
hash
的內容有沒有包含密鑰。
【數字簽名】
數字簽名
,目的是認證,防止欺騙或抵賴。
數字簽名涉及的技術:公鑰密碼體制和完整性檢驗。
回顧公鑰密碼體制的最重要特性:
密鑰是成對的,並且公鑰加密只有私鑰能解,一樣私鑰加密只有公鑰能解。
數字簽名方案有兩個部分:簽名算法和驗證算法。
圖
2-2
和圖
2-3
表示簽名算法和驗證算法。
簽名算法
:
圖
2-2
圖示說明:數據用
hash
函數哈希獲得定長的輸出,而後用私鑰簽名
hash
值。
數字簽名的核心在於用私鑰加密。
這裏
hash
函數的做用有兩個:
1
)獲得的定長輸出,位數短,私鑰簽名的時候速度快。
2
)保證數據的完整性。
驗證算法
:
圖
2-3
數字簽名總結:
1.
數字簽名的技術支持:完整性算法和公鑰密碼體制。
2.
數字簽名的標準:
DSS
3.
數字簽名是一種身份認證方式。
【數字證書】
數字證書
,數字證書將身份標識與公鑰綁定在一塊兒,並由可信任的第三方權威機構用其私鑰簽名。
數字證書能夠防止「中間人***」。
中間人***的過程如圖
2-4
所示。
圖
2-4
圖示解說:
1.
帶有引號的公鑰,(即「公鑰」)指的是
hacker
的公鑰,並非真正的公鑰,可是
Alice
認爲是
BOb
的公鑰。
2.
經過數字順序說明中間人***的過程。
從中間人***過程能夠看出,不安全的因素在於不能識別公鑰的來源。數字證書就是爲解決這個問題而來的。
數字證書的解決辦法:
1.
身份標識與公鑰綁定在一塊兒,造成證書,這樣公鑰就和身份相對應。
2.
由可信任的第三方權威機構用其私鑰簽名來確保證書的有效性和安全性。
注意:
數字證書安全的前提是第三方是可信任的,若是第三方被僞造,數字證書就沒有安全性可言。
數字證書總結:
1.
驗證過程:
A
從第三方下載證書,內有
B
的公鑰和
B
的身份標識,由第三方證實公鑰是由
B
所持有。
2.
數字證書用來防止中間人***。
【DH算法】
DH
算法,全稱:
Diffie
—
Hellman
算法,是一種非對稱密鑰算法。
目的:
在一個非安全的通道上安全地創建一個共享密鑰,用來創建安全的信道。
數學基礎:基於求離散對數難
詳細過程:
【如下部分較難,須要有必定的數學基礎,可選閱讀】
1
、有兩個全局公開的參數,一個素數
q
和一個整數
a
,
a
是
q
的一個原根。
2
、假設用戶
A
和
B
但願交換一個密鑰,用戶
A
選擇一個做爲私有密鑰的隨機數
XA<q
,並計算公開密鑰
YA=
a
X
A
mod q
。
A
對
XA
的值保密存放而使
YA
能被
B
公開得到。相似地,用戶
B
選擇一個私有的隨機數
XB<q
,並計算公開密鑰
YB=
a
X
B
mod q
。
B
對
XB
的值保密存放而使
YB
能被
A
公開得到。
3
、用戶
A
產生共享祕密密鑰的計算方式是
K = (YB)X
A
mod q
。一樣,用戶
B
產生共享祕密密鑰的計算是
K = (YA)X
B
mod q
。這兩個計算產生相同的結果:
K = (YB)X
A
mod q
= (
a
X
B
mod q)X
A
mod q
= (
a
X
B
)X
A
mod q
(根據取模運算規則獲得)
=
aX
BX
A mod q
= (
a
X
A
)X
B
mod q
= (
a
X
A
mod q)X
B
mod q
= (YA)X
B
mod q
所以至關於雙方已經交換了一個相同的祕密密鑰。
4
、由於
XA
和
XB
是保密的,一個敵對方能夠利用的參數只有
q
、
a
、
YA
和
YB
。於是敵對方被迫取離散對數來肯定密鑰。例如,要獲取用戶
B
的祕密密鑰,敵對方必須先計算
XB = ind
a ,q
(YB)
而後再使用用戶
B
採用的一樣方法計算其祕密密鑰
K
。
Diffie-Hellman
密鑰交換算法的安全性依賴於這樣一個事實:雖然計算以一個素數爲模的指數相對容易,但計算離散對數卻很困難。對於大的素數,計算出離散對數幾乎是不可能的。
【本期總結】
本篇介紹了
IPSEC ×××
有用到的四個概念,
mac
和數字簽名是認證的手段,數字證書是用來確認公鑰的持有者身份,
DH
是用來在非安全的信道上協商共享密鑰,創建安全通道。
完成於
2009年
10月
9日
星期五
下週主要內容預告:
IPSEC ×××
之配置詳解篇(
AH
和
ESP
封裝方式,
IPSEC ×××
的兩個階段,有無
NAT
狀況下的配置
)
敬請期待!