一、 緒論
1.3 論文架構
本論文共分為七個章節,各章節的內容說明如下:
第一章節說明本研究的背景、動機與研究目的。
第二章節說明本研究所需的相關文獻探討。
第四章節分析以生物驗證技術(biometrics)為基礎的兩個驗證機制之安全性問 題,並提出改進的驗證機制。
第四章節分析學者 Chang 和學者 Chang 所提出的驗證機制之安全性問題,並提 出改進的驗證機制。
第五章節分析目前以隨機亂數(nonce)為基礎的無驗證表驗證機制之缺失,並且 提出自己的驗證機制。
第六章節利用第五章節所提出的驗證機制,進而提出一種多伺服器的無驗證表 驗證機制。
第七章節為本研究的結論與未來發展。
第二章 文獻探討
2.1 驗證(Authentication)
如何在網路上確認對方的身分一直是網路安全一個十分重要的研究議題,當使 用者希望得到某項服務而需要登入到某台伺服器時,首先他必須要先通過伺服器的 驗證程序。目前網路上驗證使用者身份通常有下面三種模式[39]:
2.1.1 單向驗證(One-Way Authentication)
這是目前網路上最常見的驗證方式,大部分的系統都是利用這樣的方式來驗證 遠端使用者的身分,因為這樣的驗證方式簡單、容易實作,在這個模式中使用者必 須事先在伺服器上註冊使用者的帳號密碼,當使用者想要登入時,使用者必須先提 供使用者的帳號與密碼給伺服器,方可跟伺服器作驗證確認動作,進而登入系統或 是使用該伺服器所提供之服務,不過,這樣的驗證方式並沒有辦法驗證伺服器的身 份是否合法,因此,當攻擊者偽裝成一台合法的伺服器時,使用者無法察覺這一台 偽裝的伺服器是否合法,所以有著伺服器偽裝攻擊(Server Spoofing Attack)的安全性 問題存在。
圖 2.1:單向認證
2.1.2 雙向驗證(Mutual Authentication)
前面所介紹的單向認證在安全上並不是很安全,因為它僅僅提供伺服器如何去 驗證遠端的使用者身分,卻未提供使用者去驗證伺服器的身分是否合法,如果一個
攻擊者假冒伺服器來欺騙遠端的使用者,將會發生使用者被攻擊者所假冒的伺服器 所欺騙導致使用者的帳號密碼或重要資料等被攻擊者所盜取的問題,因此,為了避 免這樣的問題,通常我們會希望使用者與伺服器都必須互相提供帳號密碼給對方,
以確認驗證的雙方身分是否合法,不過這類型的驗證方式有個嚴重的安全性問題,
那就是使用者要如何保有伺服器的帳號密碼,因為萬一這組伺服器的帳號密碼遺失 或是被合法使用者所盜用時,反而可以讓攻擊者可以假冒合法的伺服器去欺騙其他 的使用者,因此,常見的保護方式是利用智慧卡來存放伺服器的帳號密碼,以避免 一個攻擊者在擁有一個合法使用者的智慧卡時,盜用這組帳號密碼來假冒伺服器,
而且最好每個使用者所擁有的伺服器帳號密碼皆不同,。
圖 2.2:雙向認證
2.1.3 使 用 公 正 的 第 三 者 驗 證 (Trusted Third-party Authentication)
這個驗證方法與前面的驗證方式一樣,都是希望能夠讓伺服器與使用者去驗證 對方彼此的身分是否合法,但是在方法上卻不是十分相同,其特色主要是在驗證的 過程中加入了一個彼此都相信的第三公正單位,透過這個第三公正單位來幫忙驗證 彼此的身分。因此,當使用者要登入時,使用者與伺服器都必須先通過這一個第三 公正單位的確認。當第三公正單位確認過需要確認者的身分是合法時,第三公正單 位會頒發一個通過認證資訊給需要確認者,當使用者跟伺服器拿到這個認證資訊 後,能夠利用它來讓通訊的對方知道它的身分是合法的,不過,這樣的驗證方法有 個明顯的缺點,那就是在這個驗證方法中第三公正單位的安全性變得十分的重要,
如果這個第三公正單位被攻擊者所入侵,將會導致所有的伺服器及使用者暴露在極 不安全的環境之下。
圖 2.3:使用公正的第三者認證
2.2 單向雜湊函數(One-way hash function)
單向雜湊函數是一種可以將任意長度的訊息加以濃縮、轉換,使其成為一個固 定長度的訊息的加密函數,所產生的訊息通常叫做雜湊值(Hash Value)[25],而我們 通常利用雜湊值來驗證某項資訊是否正確無誤。單向雜湊函數本身具備不可逆的單 向﹝One-Way﹞特性,亦即如果將一段訊息經過單向雜湊函數之後所產生的雜湊 值,是無法將其還原成原本的訊息。此外,單向雜湊函數還必須具備唯一性,每份 文件計算出來的雜湊值必須要是唯一值,欲找出另外一份文件可以輸出相同的雜湊 值是不可能的。目前常見的單向雜湊函數主要有MD5及SHA[25][39]。
2.2.1 MD5(Message Digest Algorithm version 5)
MD 系列的雜湊函數皆是由學者 Rivest 所發展,MD5 是在西元 1992 年由 MD4 改良而成,運算速度比MD4 慢了一點,壓縮過程也從 MD4 的三個回合,增加為四 個回合,其他都與MD4 相同,其 C 語言實作基礎被定義在 RFC1321 之中。加密時 首先會把訊息長度mod 2 後,將產生訊息摘要放置於訊息的最後,再把訊息切割為 數個512 位元的區塊,並且檢查最後一個區塊的長度是否為 448 位元,若不是的話,
會填補明文,讓最後一個區塊的長度為 448 位元,然後以 512 位元區塊為單位,進 行運算,最後產生一個長度為128 位元的摘要[26][37]。
原本 MD5 被認為是一種很安全的雜湊函數,並且廣泛的使用在各種電腦系統 之中,不幸的是,在西元2004 年 8 月 17 日,美國加州聖巴巴拉所召開的國際密碼 學會議中安排了三場關於雜湊函數的特別報告。在國際著名密碼學家 Eli Biham 和 Antoine Joux 相繼做了對 SHA-1 的分析與給出 SHA-0 的一個碰撞之後,來自山東大 學的王小雲教授做了破譯 MD5、HAVAL-128、 MD4 和 RIPEMD 算法的報告。也 因為這樣讓美國已經考慮再制定新的雜湊函數技術,因為隨著它們的發現將使駭客 更能在電腦程式碼中放置後門或是捏造電子簽章。美國國家技術與標準局(NIST)
更於西元2004 年 8 月 24 日針對王小雲等人所提出的報告發表了專門評論,評論的 大致內容:「在最近的國際密碼學會議(Crypto 2004)上,有研究人員宣佈他們發 現了破解數種 HASH 算法的方法,其中包括 MD4、MD5、HAVAL-128、RIPEMD 還有 SHA-0。美國國家技術與標準局表明,於西元 1994 年替代 SHA-0 成為聯邦信 息處理標準的 SHA-1 的減弱條件的變種算法能夠被破解;但完整的 SHA-1 並沒有 被破解,也沒有找到SHA-1 的碰撞。研究結果說明 SHA-1 的安全性暫時沒有問題,
但隨著技術的發展,技術與標準局計劃在西元 2010 年之前逐步淘汰 SHA-1,換用 其他更長更安全的算法(如SHA-224、SHA-256、SHA-384 和 SHA-512)來替代。」
[26][27][37]
2.2.2 SHA(Secure Hash Algorithm, SHA)
SHA(Secure Hash Algorithm)是由美國「國家安全局(National Security Agency)」
與「國家技術與標準局(National Institute of Standard and Technology, NIST)」於西元 1993 所 公 佈 的 , 並 成 為 美 國 聯 邦 資 料 處 理 標 準 (Federal Information Processing Standard,FIPS)的 FIPS 180。SHA 的設計主要是以 MD4 為其主要依據,在西元 1995 年修正部份的缺失,制定了 FIPS-1,亦即 SHA-1,其 C 語言實作基礎被定義在 RFC3174 之中。SHA-1 的加密方式與 MD5 差不多,只是區塊處理長度以及輸出的 摘要長度為 160 位元。然而為了因應電腦速度越來越快的影響以及避免碰撞的發 生,美國國家標準與技術中心於西元 2002 年八月也發表 SHA-224、SHA-256、
SHA-384 與 SHA-512 等雜湊函數,並列入聯邦資料處理標準,以增加其安全性[26]。
2.3 ElGamal 公開加密演算法
公開加密演算法是密碼學的一大突破,開創了密碼學一個新的章程,第一個有非對 稱性加密構想的是 Diffie 與 Hellman 這兩位學者,他們是在西元 1976 年提出了這樣的 想法,但是他們卻不知可不可行,直到西元 1978 年美國麻省理工學院的 Rivest、Shamir 及 Adleman 提出了第一個公開加密演算法─RSA[35][37]。
ElGamal 公開加密演算法是一種建立於離散對數問題上的非對稱加密演算法,它是 在西元 1985 年被提出的,其特色在於它將隨機加密(Radomized encryption)這樣的方 法加入到加密的過程中,因此,一個相同的明文在經過每次的加密後,都會因為一個隨 機產生的亂數而產生不同的密文,但是這些密文都可以解密回原來的明文,公開加密演 算法 ElGamal 加解密過程如下:
密鑰建立:
2.4.1 竊聽攻擊(Eavesdrop Attack)
竊聽攻擊(Eavesdrop Attack)是攻擊者常使用的攻擊方法,造成這個攻擊方式的
2.4.2 密碼猜測攻擊(Password Guessing Attack)
測的離線式密碼猜測攻擊(Off-Line Password Guessing Attack)兩種。此外,密碼猜測 攻擊又可以以如何進行猜測來做區分,區分為以某些常用的密碼或是字句來進行猜 測的字典攻擊(Dictionary Attack),以及窮盡各種組合所產生的字詞進行破解的暴力 攻擊(Brute-Force Attack)兩種。以字典攻擊的方式來攻擊系統比較有效率,因為使用 者通常習慣以自身相關的相關資訊來當作密碼,例如:身分證字號、生日、電話號 碼等等,而且往往沒有定期更改密碼的習慣[29][31]。2.4.3 重送攻擊(Replay Attack)
重送攻擊(Reply Attack)主要是利用竊聽技術來觀察或紀錄使用者和伺服器之
2.4.4 使用者假冒攻擊(Impersonation Attack)
使用者假冒攻擊(Impersonation Attack)是一種可以讓攻擊者以假造的方式假冒 成其他合法使用者入侵系統的攻擊方式。這樣的攻擊方式對於驗證機制來說,是十 分的具有殺傷力的。因為大部分的假冒攻擊都不容易被系統管理人員察覺出目前正 有攻擊者在假冒其他的合法使用者登入系統,因此,當一個系統具有假冒攻擊的危 險性時,將會導致重要的資料輕易的被攻擊者所竊取[30][31][36]。
2.4.5 認證表被竊攻擊(Stolen-Verifier Attack)
2.4.6 伺服器偽裝攻擊(Server Spoofing Attack)
伺服器偽裝攻擊(Server Spoofing Attack)主要發生的原因通常是因為使用者無 攻擊(Server Spoofing Attack)的攻擊。
2.5 IC卡簡介
分。IC卡的規格主要是遵循ISO7816系列的標準,其外觀是一個長寬為 85.6mm x 53.98mm ,厚度是0.8mm的卡片,隨著卡片的構造不同而有不同的功能以及應用方 式[28][38]。2.5.1 IC卡的分類
統)技術來達到不需要插卡的功能,RFID 包括 RFID Reader(射頻辨識讀取器)、RFID Tag(射頻辨識標籤)以及電腦系統三個主要因素所組成,這個技術最早出現在第二次2.5.2 IC卡的安全機制
大 部 分 的 IC 卡 對 於 使 用 者 的 認 證 是 利 用 個 人 驗 證 碼 (Personal Identification
大 部 分 的 IC 卡 對 於 使 用 者 的 認 證 是 利 用 個 人 驗 證 碼 (Personal Identification