2.1 Ad Hoc 無線網路
2.1.2 安全上的挑戰
是靠電池供電,除了 Notebook 之外,還有 PDA、Smart Phon
積極型攻擊 (active attack):此類型的攻擊者有能力影響合法參與者所傳遞 的資料訊息,甚至破壞整個會協定的進行,此類型的
重送攻擊(replay attack)、假冒合法參與者(impersonation)…等方法。
式或集中式架構
耗損。
將 IC
證金鑰交換協定
在傳統的通行碼身份驗證系統中,密碼的角色只是單純用來檢驗使用者的身 中密碼經由雜湊函式(hash function)處理後 與帳
方的通行碼 驗證
卡隨身攜帶也造成使用者的不便,而利用生物特徴的方式也同樣需要額外 的辨識設備輔助,而其辨識的正確率及執行效率之間的取捨也使得此類的認證方 式還未普遍被採用,相較以上的二種方式,運用使用者所知道的資訊來做識別,
如自選通行碼的方式,是目前成本最低、對使用者而言也是非常方便的使用者身 份驗證方式。
2.2.2 通行碼驗
份,通常是使用者輸入帳號與密碼,其
號一併傳送給網路另一端的系統,該系統便可利帳號資訊與其事先己存且已 雜湊處理過的密碼資訊做比對,完成使用者身份的驗證;此外,當網路上的某兩 方想要建立一個安全的通道以供其倆秘密通訊之用時,最常看到的做法便是兩人 共用一把金鑰,做對稱式的資料加密,以保護傳輸資料的安全性。
上述所提關於“密碼認證"與“網路雙方共享金鑰",兩者原本是彼此獨立 的安全機制,但 Bellovin 與 Merritt 於 1992 年[10]首先提出運用於雙
交換協定(Password Authentication Key Exchange , PAKE),一般也稱之為 Encrypted Key Exchange (EKE) 協定,主要目的就是為欲通訊的雙方分配一把金 鑰且同時利用通行碼達到互相身份驗證(mutual authentication),其提出的概念說 明如下:
[EKE 金鑰交換協定的概念]
challenge
Achallenge
B使用者 A。 [
R ( challenge
A, challenge
B)
] 的挑戰值challenge 、A challenge ,可以達到雙方認證(mutual authentication)的效B 果。2.3 會議金鑰協定
群組金鑰管理方法可分成三類[9]:1.集中式的金鑰管理:由單一個金鑰分佈 金鑰 2.半集中式的金鑰管理:將整個群組分成多個子群 組,
,還會包含處理成員加入或離開 的演
而完成,因此以下先說明何謂 Diffie-Hellman 金鑰
Diffi 與 Hellman 兩位學者在 1976 年首先提出公開金鑰密碼系統的觀念 曾謀面的兩人(two-party),在不透 過第
中心或管理者來產生群組
並由各子群組管理者來產生金鑰 3.分散式的金鑰管理:沒有單一個金鑰分佈 中心,群組金鑰的建立是每個成員貢獻其密秘值且成員間彼此合作之下而建立 的;一般又將前二種類型稱為金鑰分佈協定(key distribution protocol),而將第三 種類型則稱為金鑰協同協定(key agreement protocol),由於 Ad Hoc 網路環境的特 性及為了避免集中式架構下的單一點攻擊的風險,本論文選擇利用分散式的金鑰 管理方法,即金鑰協同協定來建立群組金鑰。
由於群組會議中,成員會有加入或離開的動作,所以一般而言,金鑰協同協 定除了包含金鑰起始演算法以求出初始金鑰之外
算法,由於本論文的重點在改善初始金鑰演算法,因此以下各節所探討的方 法便著重在初始金鑰演算法上。
經由探討後發現,目前大部份的金鑰協同協定(key agreement protocol)都是基 於 Diffie-Hellman 金鑰交換的方法
交換,再介紹相關的金鑰協同協定的研究。
2.3.1 Diffie-Hellman 金鑰交換演算法
e
[13],其主要是為了解決一個問題,亦即讓未
三者的協助下,仍可以透過公眾通道,安全地獲得只有他們倆人才知道的共 同金鑰,這就是有名的 Diffie-Hellman 金鑰交換演算法,運作流程如下所示:
[Diffie-Hellman 金鑰交換演算法]
以下將證明使用者 i 計算出的金鑰 與使用者 j 計算出的金鑰 是真的是
Diffie-Hellman 離散對數問題(Discrete
ogarithm Problem)之困難度,因為當 p 大到一定程度時,欲由 y 求出 x,為計算
可能;基於 Diffie-Hellman 金鑰交換演算法,許多會議金鑰協定陸續被提出,
以下各小節將陸續做介紹。
2.3.2 Group Diffie-Hellman 金鑰協同協定
限於兩個人之間(two-party) 的運
[GDH. 金鑰協定演算法]
由於基本的 Diffie-Hellman 金鑰交換演算法只挶
作,所以 Steiner、Tsudik、Waidner 三位作者於 1996 年,提出 Group Diffie-Hellman 金鑰分配演算法[6],使得多個人之間(n-party)也能建立共享金鑰,
以供後續安全的群組通訊使用,其提出的演算法有 GDH.1、GDH.2、GDH.3 三 種版本,GDH.2 主要是改善 GDH.1 在成員合作回合數、傳輸訊息量等效率問題,
在 GDH.2 金鑰協定中,其成員合作的傳輸模式是採環狀的架構,以四個成
能利用本身握有的隨機值 與所收到的廣播資料,透過 Diffie-Hellman 金鑰運算 產生會議金鑰
2.3.3 Hypercube 金鑰協同協定
此協定演算法是由 Becker 與 Wille 於 1998 年所提出的[4],同樣是將 Diffie-Hellman 金鑰交換演算法擴充至多人環境使用,以求多人之間(n-party)建立 共享金鑰,其成員合作關係是採用向量空間的立方體概念,目的是想改善群體成 員建立金鑰過程之合作回合數的效率問題,其演算法如下所示:
[Hypercube 金鑰協同協定演算法]
參數說明:假設成員共有 個人,成員合作關係為 因次向量空間 (註 1),
為
GF
的基準方向, 為質數,2 d d GF
(2)db
db
r r ,...,1
)d
2
(
q α
為 (註 2)下循環子群組的生成數(generator)。
*
Z q
回合 1:
Step1. 每一個成員
v r ∈ GF ( 2 )
d 選擇一個隨機數 , 。r v r r
vr ∈Z
q∗ Step2. 每一個成員v r
與成員 vr +br11
分別利用其秘密值 、 進行 Diffie-Hellman 金鑰交換。
r v r
b
1r v r+ r
回合 i (
1 < i ≤ d
):Step1. 每一個成員
v r
與成員 vr + 進行 Diffie-Hellman 金鑰交換,雙方所使用的秘密br 值皆為回合 i-1 中 Diffie-Hellman 金鑰交換後的值。當合回 i 結束後,每位成員皆已產生相同的會議金鑰。
註 1:
GF
( )為 Galois Field ,又叫有限場。註 2:
Z q *
為數值 1 到 q-1 中,與 q 互質的數所形成的集合。以四個成員為例子來說明此演算法的執行過程,如圖 2-4 與圖 2-5 所示,其
Hypercube 演算法有一個重要限制,即其參與成員數目必需符合 才 能進行,關於此缺點,[4]中所提的 Octopus 演算法便是以 Hypercube 演算法為基 礎,加上子群組的概念,來改善參與成員數目限制的問題。
1 , 2d d >
2.3.4 DH-LKH 金鑰協同協定
Wallner 等 學 者 於 1997 年 提 出 利 用 階 層 式 樹 狀 結 構 (Logical Key Hierarchy)[1][2]來做金鑰管理,藉由一個金鑰分配中心(KDC)來產生、維護金鑰;
而 Kim 等學者在 2000 年所提出的 DH-LKH(又稱為 T-GDH)金鑰協同協定,則是 利用階層式樹狀結構的概念加上 Diffie-Hellman 金鑰交換演算法所構成,主要目 的是讓會議金鑰的建立改由所有成員的貢獻值組成,且藉由樹狀架構來增加金鑰
3. 某個節點編號<l,v>若擁有左右子節點,則左右子節點編號各為<l+1,2v>、
<l+1,2v+1>。
以六個成員為例,如圖 2-6,當成員 要計算出會議金鑰時,當其知道
<1,0> <1,1>
<2,0> <2,1> <2,2> <2,3>
<3,0> <3,1> <3,6>
M
4 式階層樹狀結構(Distributed LKH) [7]、分散式單向函式樹(Distributed One-Way Function Tree) [12] 等方法。2.3.5 Huang 與 Chang 所提的金鑰協同協定
2003 年 由 Huang 與 Chang 兩 人 所 提 出 的 金 鑰 協 同 協 定 [8] , 與 基 於 Diffie-Hellman 金鑰交換方法最大的不同在於此協定完全沒用到 Diffie-Hellman 演 算 法 來 求 出 共 同 金 鑰 , 而 是 利 用 互 斥 或 (XOR) 運 算 式 , 可 避 開 採 用 Diffie-Hellman 方法所產生的高度模指數運算,因而更適合運算能力較差的行動 通訊裝罝,此外,此協定亦加上了密碼認證來驗證使用者身份的合法性。
在此演算法裡,由成員所貢獻的秘密值,其合作的傳輸模式是採用樹狀結 構,而且是一個完全二元樹的結構,如圖 2-7,其中編號最大的( )為檢查者 (Checker),其地位和其它成員最大的不同之處,在於除了也得貢獻組成金鑰的秘 密值之外,還要檢查最後每位成員經由合作所握有的金鑰是否一致,而編號第二 大的( )為候補者(Candidae),負責遞補其它成員離開時的編號,讓成員們的 合作關係保持在完全二元樹的結構上,每位成員皆會貢獻自己所產生的秘密值,
而最後的共同金鑰則是由所有成員所貢獻的秘密值相互執行 XOR 運算而成。
Mn
−1
Mn
階度
l
= 0 l
= 1 l
= 2 l
= 3 l 11
1
2 3
4 5 6 7
Candidate Checker
8 9 10
h
圖 2-7. 依成員編號所形成的虛擬樹狀結構
演算法
[Huang & Chang 金鑰起始演算法之第二階段]
π
個成員 (i = 1,2,…,10);成員 (i = 1,2,…,10)收到由 送來的資料後,執行
三.改良後的金鑰協同協定
經由第一章的研究動機說明,可以清楚了解本論文要做的方向,於是收集、
研究了許多相關的文獻,如第二章所介紹,在探討的過程中,了解到 Ad Hoc 網 路的特性、了解為什在 Ad Hoc 的網路環境上較適用金鑰協同協定,而不採用有 CA 的架構的金鑰協定,也了解利用 XOR 運算的好處,接著本論文提出一個改 良後的金鑰協同協定,在此章中,先對問題做分析、定義,接著再對本論文提出 的方法做詳細的介紹。
3.1 問題分析
由於 Ad Hoc 應用於無線網路環境上的設備,其電力或運算能力常被假設有 一定的限制,綜觀之前學者所提的方法,利用 XOR 運算取代模指數的的確可以 增加運算上的效率[11],因此本論文希望所提出的方法也是以 XOR 運算為基礎 的;此外,無線網路的封包較一般實體網路更容易被擷取、收集,因此不管是主 動式攻擊或被動式攻擊對於無線網路安全的威脅都相當大,以是否能承受網路上 非法的惡意攻撃來檢視於第二章中所探討過的金鑰協定,在仔細檢視於第二章所 述的 Huang 與 Chang 方法後,發現此方法很有可能遭受到某些非法的惡意攻擊,
而違害到整個金鑰建置的安全,以下便是其可能遭受攻擊的探討與驗證:
首先說明在一個 Ad Hoc 無線網路的環境下,配合 Huang 與 Chang 方法做 Key Agreement 時,假設一個非法的惡意攻擊者有能力擷取到此協定過程的所有 封包,則其可以擷取到的封包資料列於表 3-1 中:
表 3-1. 運用 Huang & Chang 方法時,攻擊者可以擷取到的封包
如圖 3-1 所示,可以觀察出,假若有一個非法的惡意的攻擊者 A 擷 取到成員 4 送給成員 2 的封包資料 f(P||K4′ 、) K ′ ,此攻擊者可以謊稱4 自己是成員 4 或 5,而將此封包資料重送給成員 2;甚至謊稱自己是合 法的成員 2,而將 f(P||K4′ 、) K ′ 送給成員 1,雖然攻擊者並不知道驗4 證身分的密碼
P
為何,但成員 1 利用雜湊函式做合法性驗證後,仍會誤 信攻擊者是合法的成員 2,使得金鑰建立的過程產生錯誤。如圖 3-1 所示,可以觀察出,假若有一個非法的惡意的攻擊者 A 擷 取到成員 4 送給成員 2 的封包資料 f(P||K4′ 、) K ′ ,此攻擊者可以謊稱4 自己是成員 4 或 5,而將此封包資料重送給成員 2;甚至謊稱自己是合 法的成員 2,而將 f(P||K4′ 、) K ′ 送給成員 1,雖然攻擊者並不知道驗4 證身分的密碼