• 沒有找到結果。

安全性分析與效率分析

在文檔中 中 華 大 學 (頁 56-69)

47

48

h(ID

c⊕x)的密碼PW,並進而使用智慧卡。而安全單向雜湊函 數h()會保護ATMe中的分散式秘密金鑰x,使其不被非法使用 者竊取。

3. 由於單向雜湊函數其單向的特性,假使部份已經過驗證的訊

息{Cj, IDc, T1,j(1jn), ruj}不幸被盜竊者得知,他們仍然無法推

導出其他需要經過驗證的訊息。若一個偽裝的STB嘗詴要騙 取發出要求的智慧卡,它必頇具備已經過驗證的訊息{C’’, T2,

rs

j},此模組也會無法推導出h(IDc⊕x),並計算出C’’的值。

4. 已使用過的秘密金鑰Vi或x,並無法被用來推導出對話金鑰

K

l(1lj-1),若無法得知所使用的隨機值rsl和rul(1lj-1),則沒有 人可以計算出這些被使用的對話金鑰Kl = h(rsl, rsl(1lj-1), Vi)。

若無法得知rsl、rul、和Vi為何,則要計算出對話金鑰Kl是不 可行的,因此即使他人已得知對話金鑰Kj和隨機值rsj和ruj何,也無法透過Kl = h(rsl, rul, Vi)計算出其他對話金鑰,其中l

≠ j。

5. 但若隨機值rsl、rul、和秘密金鑰Vi,不幸被盜竊者取得,為 了避免讓他計算出所使用的對話金鑰Kl = h(rsl, rul, Vi),我們 可使用Diffiee-Hellman金鑰交換演算法來計算出對話金鑰。

此演算法的安全性,來自於有限域內,離散對數運算的困難

49

性[1],在此方法中,我們讓rsl =gx、rul=gy,其中x和y是分別 由使用者和ATMe所選擇出來的隨機號碼,且Kl = h(rslx

, Vi)=

h(ru

ly

, Vi)。

6. 在本論文所提出的方法中,若Ui發現或懷疑他的Vi (=h(IDc

x))已被洩漏出去,他可選擇一個新的密碼PW

new和一個新的 隨機號碼bnew,並計算出h(PWnew⊕IDc⊕bnew)。接著Ui可以透 過h(PWnew⊕IDc⊕bnew),並計算出Winew = h(IDc⊕x) ⊕h(PWnew

⊕IDc⊕bnew),以重新對STBS註冊。STBS接著可以透過安全 頻道在Ui的智慧卡中儲存Winew,完成之後Ui就可以使用新密 碼PWnew安全的登入至STB。在此期間,已被洩漏的Vi將會被 自動撤銷,例如由已取得h(IDc⊕x)的攻擊者所發出的登入請 求,將會被拒絕,由此可知本架構亦具有相當程度的可修復 性。

而針對資訊安全中幾種常見的攻擊和所可能會遇到的問題,

會在以下章節中加以分析。

智慧卡的複製問題(Cloning Problem)和 McCormac Hack 問題 智慧卡複製問題,是指使用一張合法的智慧卡晶片,來複製 多張構造相同、但非法的智慧卡晶片,並詴圖使用這些晶片來進

50

行不被允許的資料存取。在智慧卡的複製問題中,當犯罪者竊取 使用者的智慧卡,並對其中的智慧卡晶片進行複製時,若他在其 他STB中使用他所複製的智慧卡,由於在此卡片中的智慧卡晶片 中並沒有STB的辨識碼IDs,且擴充模組中的雜湊函數和智慧卡中 的不同,因此他並無法通過相互認證和金鑰協議層。

當智慧卡晶片的Data line被導引到其他非法的擴充模組時,我 們稱之為McCormac Hack。在McCormac Hack問題中,同樣的,

當一個犯罪者重新指向所竊取來的智慧卡的通訊訊息至其他擴 充模組時,在模組中並沒有對話金鑰和金鑰交換相關的訊息,少 了相互認證,此模組就無法對被其他智慧卡重新指向的訊息解 密。

內 部 人 員 攻 擊 (Insider Attack) 和 密 碼 猜 測 攻 擊 (Password

Guessing Attack)

在電腦系統所常面臨到最傳統、也是最主要的威脅,就是內 部人員的攻擊[4]。內部人員可以合法的對系統進行存取、植入對 系統完整性和保密性來說都具有嚴重威脅的木馬病毒、瀏覽檔案 系統和系統中的機密訊息、或是影響系統的處理或儲存容量,造 成系統的負擔過載,進而導致系統的崩潰,這些動作通常都是無

51

法被偵測或察覺的,因此要防止這種類型的攻擊非常的困難。

密碼猜測攻擊一般來說可分為兩種:

1. 即時密碼猜測攻擊法(On-line Password Guessing Attack):

在即時密碼猜測攻擊法中,攻擊者可以不間斷的輸入所要猜測 的密碼,並連接到遠端伺服器並進行認證,直到成功的取得認 證為止。此種攻擊方式可透過遠端伺服器,以限制認證失敗次 數的方式,來避免此類攻擊。例如若認證兩次失敗,該使用者 就不被允許繼續進行登入。

2. 離線密碼猜測攻擊法(Off-line Password Guessing Attack):

在離線密碼猜測攻擊法中,攻擊者會利用之前所取得的資訊,

來對所猜測的密碼進行驗證,確認其正確性,取得資訊的方式 可分為下列幾種:

(1) 攻擊者一開始會持續觀察,並將使用者與遠端伺服器先前 認證過程的通訊內容加以記錄,再利用此內容,蒐集其中 的有用資訊。之後攻擊者會利用這些資訊,來驗證所猜測 密碼的正確性,以確認此次攻擊是否成功。

(2) 若不幸被攻擊者竊取到儲存在遠端伺服器中的認證表,即 使認證表內的認證資訊,為經過單向雜湊函數運算後的密 碼雜湊值,其安全強度仍然不足,因為攻擊者可反覆地對

52

密碼進行猜測,並在經過單向雜湊函數運算後,再去判斷 與認證表內的雜湊值是否與其猜測的值相等,若相等,則 表示攻擊者所猜測的密碼是正確的。

在一般的身份認證系統之中,通常使用者所選用的密碼長度 都較短,且是具有意義的字串,此時攻擊者就可利用字典攻擊法 (Dictionary Attack) ,來對密碼來進行猜測,因為這類的字串很可 能在字典中出現[9][13][14][16][24]。

在本架構中,當Ui以h(PW⊕IDc⊕b)取代PW,並對STB完成註 冊之後,模組的內部人員並無法直接取得PW。再者,也由於STB 並不會顯示出b的值為多少,如此一來可對擴充模組進行存取的 內部人員就無法執行密碼猜測攻擊,以h(PW⊕IDc⊕b)來獲得PW。

因此,本論文所提出的方法亦可以防止內部人員攻擊和密碼猜測 攻擊。

重複攻擊(Replay Attack)和身分偽造攻擊(Impersonated Attack) 典型的重複攻擊,並不要求要同時進行[6]。假設傳送者A透 過協定,傳送一則訊息給接收者B,但此訊息被攻擊者C所攔截並 且儲存下來,接著C會嘗詴著將此訊息原封不動的傳送給接收者B。

若C可以成功的瞞過B,讓B結束這次的對話連線,且相信他所接

53

收到的訊息,是由傳送者A所傳送的,那這次的攻擊就成功了,

另一方面,攻擊者C亦可以相同的方式,來對A傳送B所發送的訊 息,這樣的對話連線是有缺陷且不完整的,理論上必頇要被放棄 掉。為了要防止重複攻擊所造成的威脅,常見的方式有三種,分 別是:時間戳記(Time Stamp)、序號(Sequence)、和一次通行碼 (One-Time Password)[10]。在本架構中,我們使用了時間戳記的 驗證,在相互認證層中,由智慧卡所傳送至STB的訊息C1={C, IDc,

T

1, ruj}中,包含了訊息傳送時的日期與時間T1。在接收到訊息之 後,STB會確認T1 和T1’之間的時間區間是否正確,△T1表示傳輸 時預期中所花費的時間區間,若(T1’

-T1)>△T1,或T1’

=T1,則代表 此次訊息的傳送,有遭遇重複攻擊的可能性,則此次的登入要求 就會被駁回。同理,由STB所傳送回智慧卡的訊息C2={C’’, T2, rsj} 中亦包含有時間戳記T2,透過這樣相互確認的方式,來有效的防 止重複攻擊的威脅。

而在偽造身分攻擊中,攻擊者會偽裝成一個合法的系統參與 者,並透過在認證方法中所收集到的資訊,來偽造認證訊息,並 和其他合法的參與者一樣對系統提出認證程序的申請。成功之後,

攻擊者就可以偽裝成一個合法的使用者,登入伺服器,並取得伺

54

服器的資源[12]。

對話金鑰Kj是由雜湊函數所產生的輸出,而其輸入為rsj、ruj

ID

c、和IDa,且單向雜湊函數從頭到尾都只有智慧卡和STB兩方 可以得知,Ui和STB之外,並沒有人能夠得知隨機rsj、ruj、或Vi

的值,因此其他人也無法得知對話金鑰Kj=h(rsj, ruj, Vi)的值為何。

若缺少這幾項資訊,盜竊者就無法透過竊聽到的訊息,來得知對 話金鑰的內容。STB只需要儲存使用者NFC手機中的智慧卡識別 碼IDc,就可以防止意圖從STB中取得智慧卡密碼的攻擊。對每一 次的通訊連線來說,為了要達到動態的對話金鑰,相互認證和金 鑰交換都是必頇的,而且要由智慧卡和STB兩邊共同提供金鑰產 生所必頇的種子訊息rsj和ruj,因此我們即可透過這樣的方式,來 抵抗重複攻擊和身份偽造攻擊。

已知明文攻擊(Known Plaintext Attack)

一 般 的 密 碼 破 解 方 法 分 為 四 種 , 分 別 為 密 文 攻 擊 法 (Ciphertext-only Attack)、已知明文攻擊法(Known Plaintext Attack)、

選擇明文攻擊法(Chosen Plaintext Attack)、以及選擇密文攻擊法 (Chosen Ciphertext Attack)[27]。其中的已知明文攻擊法是指,攻 擊者取得一部分明文對密文的資訊,接著再由這些資料去求得金

55

鑰,或是解出下一個密文。而在本架構中,由於每次的對話金鑰 都不同,如此一來就可以增加以已知明文攻擊(Known Plaintext Attack)加密演算法來作攻擊的困難度。

4-2 效率分析

在運算的執行速度上,單向雜湊函數具有相當大的優勢。以對稱 式加密演算法 DES、非對稱式加密演算法 RSA、和單向雜湊函數來 做比較,單向雜湊函數的運算速度最快。三者之比較如表 4-1 所示:

表 4-1:RSA、DES、單向雜湊函數運算速度比較表

運算元 每秒執行的次數

RSA (1024bits) 2 DES 對稱金鑰密碼機制 2,000

單向雜湊函數 20,000

由表 4-1 中,我們可計算出單向雜湊函數的計算成本,約為 DES 的 10 倍,為 RSA 的 1000 倍,因此 RSA 運算所需要耗費的時間成本 最多,而單向雜湊函數則最少[18]。

而因為考量到智慧卡晶片與一般通用型電腦的處理器不同,其計 算能力有限,因此智慧卡晶片的計算工作負載量更應該被仔細的考量。

而針對 SCNFC 架構在計算效能上的表現,我們在表 4-2 中,針對本

56

論文中所提出的方法和其他相關研究的效能比較與評估。

表 4-2:安全通訊架構比較表

E1 E2 E3 E4 E5 E6 E7

Jiang et al.’s scheme

2 Hash +1 Exp

5 Hash

+ 2 Exp High No No No No

Hou et al.’s

scheme

2 Hash 2 Hash

+4 Sym Medium Yes Yes No No

SCNFC 2 Hash 6 Hash Extremely

Low Yes Yes Yes Yes

Exp:指數運算;Sym:對稱式加密 DES;Hash:單向雜湊函數運算

 E1:註冊時的計算成本

 E2:登入和相互認證的計算成本

 E3:計算和通訊成本

 E4:支援密碼變更層

 E5:在登入層中辨認智慧卡的合法性

 E6:NFC 近距離無線傳輸

E7:憑證的集中管理

在 Jiang et al.所提出的方法中所使用的指數模組,雖然可在智慧 卡空閒時先做預先處理,但指數模組運算對智慧卡來說是相當花費資 源的任務,應該盡可能減少指數模組的使用,因此這樣的方式對智慧

57

卡的負載仍嫌過大。除此之外,在此方法的所有層級中,共需要執行 三次雜湊、一次乘法模組運算、和一次對稱加密,這對智慧卡來說是 個不小的負擔。而對 STB 來說,則需要四個雜湊函數運算、兩次指 數模組計算和一次解密運算,對 STB 來說計算量也過重。而在相互 認證和金鑰交換的通訊成本來說,Jiang et al.所提出的方法在智慧卡 和 STB 之間需要傳送 X

YrID

c

Med 等參數,所有參數的

總長度大約是 800 位元[7]。在使用者註冊時,需要執行一次指數運 算和兩次雜湊運算,在登入和相互認證時則需要兩次指數運算和五次 雜湊運算。

而本論文中所提出的 SCNFC 架構是以安全的單向雜湊函數為基 礎,不同雜湊函數之間最大的不同在於訊息摘要的長度,但其演算方 式其實都差不多。一般而言,訊息摘要長度越長的雜湊函數,越不容 易找出兩個明文之間所具有的摘要值,因此安全性也就越高。目前最 為流行的雜湊函數有兩種,分別為 MD5 和 SHA-1。MD5 是在 1992 年,由 RSA 的其中一位發明者、麻省理工學院的 Rivest 教授,以 MD4 為基礎所改良而成,其摘要長度為 128 位元[21]。另一種常用的雜湊 函數為美國國家標準局所提出的 SHA(Secure Hash Algorithm)和其變 型 SHA-1,摘要長度為 160 位元。我們假設所使用的安全單向雜湊函 數為 MD5,則無論我們所輸入的明文位元長度為何,所產生出的摘

在文檔中 中 華 大 學 (頁 56-69)

相關文件