• 沒有找到結果。

三、 改善以 ElGamal 為基礎的使用者驗證機制

3.1 前言

使用者身份驗證是網路系統用來保護系統內部資料的一個保護措施,其中以密 碼為主的使用者驗證機制更是廣泛的使用在網路系統之中,因為它具備簡單、容易 實作的特性。西元 1981 年,學者 Lamport[14]提出了一種使用驗證表的使用者驗證 機 制 , 它 可 以 讓 伺 服 器 在 不 安 全 的 環 境 之 下 也 能 夠 驗 證 遠 端 的 使 用 者 身 份 , 在 Lamport 所提出的驗證機制裡,密碼會先經由單向雜湊函數的加密後再存放到這個 使用者驗證表中,不過,如果有攻擊者成功入侵了這一台伺服器,並且盜取出這個 使用者驗證表,他就可以利用離線密碼破解的方式去取得使用者的帳號密碼,為了 有效避免這個安全性問題的發生,許許多多不同的無驗證表驗證機制被提出。西元 2000 年,學者 Hwang 等人[17]指出了學者 Lamport 所提出的驗證機制容易遭受攻擊 者以密碼表被竊攻擊(Stolen-Verifier Attack)所攻擊,提出了一種以 ElGamal 公開鑰 匙加密演算法為基礎的無驗證表驗證機制,隨後,學者 Sun 等人[8]也在西元 2000 裝攻擊(Server Spoofing Attack)的安全性問題存在,為了改善這個問題,學者 Khan 等人也提出了一個改善的驗證機制去改善這樣的安全性問題。

對於以智慧卡為存放工具的驗證機制來說,密碼可以分為使用者記憶的使用者 密碼以及存放於智慧卡中的驗證密碼,在本研究中,本研究發現西元 2004 年學者 Lin 等人[4]所提出的驗證機制和西元 2007 年學者 Khan 等人[15]所提出的驗證機制

都有著使用者假冒攻擊(Impersonation Attack)的安全性問題,任何一個合法的註冊者 都可以使用他所擁有智慧卡中的重要資訊,創造出其他合法使用者的重要資訊,進 而偽裝成其他的使用者入侵系統,為了有效改善這個安全性問題,本研究也提出了 一個新的改善驗證機制去防範使用者偽裝攻擊的發生。

3.2 學者 Lin 等人與學者 Khan 等人所提出的驗證機制

這個小節,將會簡單的介紹一下這兩個有安全性問題之驗證機制,這兩個驗證 機制都是以ElGamal 公開鑰匙加密演算法為基礎的驗證機制,第一個驗證機制是由 學者Lin 和學者 Lai 於西元 2004 所提出,另外一個驗證機制是由學者 Khan 和學者 Zhang 於西元 2007 年所提出。在介紹完之後,本研究會針對這兩個驗證機制提出攻 擊的方法,不過,在檢視這兩個驗證機制之前,先簡單的定義驗證過程中所需要的 符號,在驗證過程中需要用到符號如下表所示:

表 3.1:符號說明表 符號 說明

h() 單向雜湊函數 XS 伺服器的私密鑰匙

♁ Xor 運算

ID, PW 使用者的帳號密碼

|| 連結

N 伺服器與使用者所產生的亂數 X->Y:M X 傳送 M 給 Y

U, S 代表使用者與伺服器 Si 使用者的指紋

P 一個非常大的質數

YA’ 使用者與伺服器互相驗證用之網路密碼

3.2.1 學者 Lin 等人所提出的驗證機制

西元 2004,學者 Lin 和學者 Lai[4]提出了一個以 ElGamal 公開鑰匙加密演算法 為基礎的驗證機制,這個驗證機制融合了生物驗證技術(biometrics),並且使用智慧 卡來當作存放工具,整個驗證流程可以簡單的分成註冊期(Registration Phasee)、登 入 期(Login Phase)、驗證期(Authentication Phase)、密碼改變期(Password Change Phase)等四個時期,下面將會簡單的介紹他們的驗證機制流程。

3.2.1.1 註冊期(Registration Phase)

圖 3.1:學者Lin等人所提出驗證機制的註冊期

整個註冊期主要是在伺服器端執行,令XS是由伺服器所保管的祕密鑰匙,當使 用者想要註冊及成為一個合法的使用者時,這個使用者必須先將自己的指紋按在輸 入的機器上,並且將他/她的指紋(Si)、帳號(IDi)以及密碼(PWi)以安全通道的方式送 到伺服器,整個註冊期執行步驟如下:

Step1: U -> S : Si, IDi、PWi、Si

使用者將IDi和PWi、Si以安全通道的方式送到伺服器。

Step2: 伺服器使用PWi、Si、IDi、XS和p去計算PWi’=h(PWi♁Si) mod p以及 Yi=(IDiXS mod p) PW♁ i

Step3: 伺服器將存放有h()、p、Yi、Si和IDi的智慧卡交給使用者。

3.2.1.2 登入期(Login phase)

圖 3.2:學者Lin等人所提出驗證機制的登入期

當一個合法的使用者想要進入系統時,他必須先將智慧卡插入讀卡機中,然後 在指紋讀取機器上按下他的指紋,並且輸入他個人的密碼,整個登入期的執行步驟 如下所示:

Step1: 使 用 者 從 指 模 樣 板 (fingerprint template) 中 的 使 用 指 紋 特 徵 點 (minutiae)產生一個隨機亂數 r 。

Step2: 使 用 者 使 用 PWi、Si、Yi和p去 計 算 PWi’’=h(PWi♁Si) mod p以 及 Yi’=Yi♁PWi’’。

Step3: 使用者使用IDi、r、Yi’、T和p去計算C1=(IDi)r mod p,以及M=h(Yi’ T) ♁ mod p,T代表目前登入設備的時間。

Step4: 使用者使用Yi’、M和p去計算C2=( Yi’)rM mod p。

Step5: U -> S : IDi, C1, C2, T

使用者將IDi、C1、C2和T送給伺服器。

3.2.1.3 驗證期(Authentication Phase)

圖 3.3:學者Lin等人所提出驗證機制的驗證期

當伺服器接收了使用者登入的訊息之後,伺服器將會先存放收到訊息的時間 T’,之後,伺服器會繼續下面的步驟:

Step1: 伺服器檢查IDi的格式是否正確與否,如果格式不正確的話,系統便 會拒絕使用者的登入要求。如果正確的話,便進行下面的步驟。

Step2: 伺服器會計算 T’-T,假如 T’-T≥ T△ 的話,伺服器拒絕使用者的登入 要求,否則的話,伺服器接受使用者的登入要求並且繼續下面的步 驟,△T 是預設的傳送間隔時間。

Step3: 伺服器比較C2(C1XS)-1 mod p ?= h((IDiXSmod p) T) mod p ♁ 是否一 樣,如果他們相同,伺服器接受登入要求,否則,伺服器便拒絕了 使用者的登入請求。

3.2.1.4 密碼改變期(Password Change Phase)

圖 3.4:學者Lin等人所提出驗證機制的密碼改變期

當使用者想要將他的舊密碼PWi改成新密碼PWi*

時,這個使用者必須要插入他 智慧卡進入到讀卡機中。然後使用者必須要將他的指紋輸入到機器中,這時,讀卡 機會比對使用者的指紋,如果使用者通過了指紋的比對,使用者便需要輸入舊密碼 PWi以及新密碼PWi*,讀卡機會進行下面的步驟:

Step1: 讀卡機使用PWi、Si和p去計算PWi”=h(PWi♁Si) mod p。

Step2: 讀卡機使用PWi”、Yi、p去計算Yi’=Yi♁PWi”=IDXS mod p。

Step3: 讀卡機使用Yi’、PWi*、Si 去計算Yi*=Yi’ h(PW♁ i*♁Si)。

Step4: 讀卡機存放新的Yi*取代舊的Yi.

3.2.2 學者 Khan 等人所提出的驗證機制

西元 2007,學者 Khan 和學者 Zhang[15]指出學者 Lin 等人所提出的驗證機制只 有提供伺服器去驗證使用者,而未提供使用者驗證伺服器,容易遭受攻擊者以伺服 器偽裝攻擊(Server Spoofing Attack)來攻擊整個驗証機制,為了要改善這個缺失,他 們也提出了一個改進的驗證機制,整個驗證機制可以簡單的分為註冊期(Registration Phase)、登入期(Login Phase)、驗證期(Authentication Phase)、密碼改變期(Password Change Phase),下面將會介紹學者 Khan 所提出的驗證機制。

3.2.2.1 註冊期(Registration Phase)

圖 3.5:學者Khan等人所提出驗證機制的註冊期

整個註冊期主要是在伺服器端執行,令XS是由伺服器所保管的祕密鑰匙,當使 用者想要註冊及成為一個合法的使用者時,這個使用者必須先將自己的指紋按在輸 入的機器上,並且將個人的指紋(Si)、帳號(IDi)以及密碼(PWi)以安全通道的方式送 到伺服器,整個註冊期執行步驟如下:

Step1: U -> S : Si, IDi, PWi

使用者將IDi、PWi、Si傳送到伺服器。

Step2: 伺服器使用PWi、Si、IDi、XS、p去計算PWi’=h(PWi♁Si) mod p和 Yi=(IDiXS mod p) PW♁ i’。

Step3: 伺服器將存放有h()、p、Yi、Si、IDi的智慧卡交給使用者。

3.2.2.2 登入期(Login phase)

圖 3.6:學者Khan等人所提出驗證機制的登入期

當一個合法的使用者想要進入系統時,他必須先將智慧卡插入讀卡機中,然後 在機器上按下他的指紋,並且輸入他個人的密碼,整個登入期的執行步驟如下所示:

Step1: 使 用 者 從 指 模 樣 板 (fingerprint template) 中 的 使 用 指 紋 特 徵 點 (minutiae)產生一個隨機亂數 r 。

Step2: 使 用 者 使 用 PWi、Si和Yi去 計 算PWi’’ = h(PWi♁Si) mod p 以 及 Yi’=Yi♁PWi’’=IDXS mod p.

Step3: 使用者使用IDi、r、T和p去計算C1=(IDi)r mod p和M=h(Y’ T) mod p♁ , T是目前使用者的時間。

Step4: 使用者使用Yi’、r、M和p去計算C2=( Yi’)r M mod p.

Step5: U -> S : IDi, C1, C2, T

使用者將IDi、C1、C2、T傳送給伺服器。

3.2.2.3 驗證期(Authentication Phase)

圖 3.7:學者Khan等人所提出驗證機制的驗證期

當伺服器收到使用者的登入要求之後,伺服器首先會計算出它收到訊息的時間 T’,再來執行以下步驟:

Step1: 伺服器檢查IDi的格式是否正確與否,如果格式不正確的話,系統便 會拒絕使用者的登入要求。如果正確的話,便進行下面的步驟。

Step2: 伺服器計算 T’-T,假如 T’-T≥ T△ ,伺服器拒絕使用者的登入請求,

否則,伺服器接受了使用者的登入請求並且繼續下面的步驟,△T 是 系統預設的時間間隔。

Step3: 伺服器比對C2(C1XS )-1 mod p ?= h((IDiXSmod p) T) mod p ♁ 是否相 同,如果他們相同,伺服器接受了使用者的登入請求並且繼續了下面 的執行步驟,否則,伺服器拒絕了使用者的登入請求。

Step4: S->U: C3, T”

伺服器計算了目前的時間T”並且計算了C3=h((IDXS mod p) T”)♁ ,並且 將C3, T”傳送給使用者。

Step5: 當使用者接收了伺服器傳送過來的訊息,使用者計算 C3*=h((IDXS mod p) T”)♁ 並且比對C3 ?= C3*

是否相同,如果他們相同的話,使用 者相信伺服器是正確無誤並且接受了他的連線,否則,使用者中斷了 這個連線。

3.2.2.4 密碼改變期(Password Change Phase)

圖 3.8:學者Khan等人所提出驗證機制的密碼改變期

當使用者想要將他的舊密碼PWi改成新密碼PWi*時,這個使用者必須先要插入 個人的智慧卡進入到讀卡機中。然後使用者必須要將個人的指紋輸入到機器中,這 時,讀卡機會比對使用者的指紋,如果使用者通過了指紋的比對,使用者便需要輸 入舊密碼PWi以及新密碼PWi*,讀卡機會進行下面的步驟:

Step1: 讀卡機使用PWi、Si、p去計算PWi”=h(PWi♁Si) mod p。

Step2: 讀卡機使用Yi、PWi’’去計算Y’i=Yi♁PWi”=IDXS mod p。

Step3: 讀卡機使用Yi’、PWi、Si去計算Yi*=Yi’ h(PW♁ i* S♁ i).

Step4: 讀卡機存放新的Yi*代替舊的Yi

3.2.3 本研究所提出的攻擊方法

方法與西元 2000 年學者Chan和學者Cheng[5]以及西元 2003 年學者Chang與學者 Hwang[3]所提出的使用者偽裝攻擊(Impersonation Attack)雷同,這種使用者偽裝攻擊

攻擊方法二:

延伸攻擊方法一的概念,可以產生出多組使用者驗證資訊,讓攻擊者可以利用 這些偽造的資訊入侵系統,這時攻擊者要將攻擊方法一的步驟三之

IDA = IDi2 mod p 修正為

IDB = IDin mod p,n為與p互質的正整數。

將攻擊方法一的步驟三之

YA’= (Yi’*Yi’) mod p = (IDi2)XS mod p 修正為

YB’= (Yi’)n mod p

= ((IDin)XS mod p),n為與p互質的正整數

如此,攻擊者便可以產生多組假造的驗證資訊(IDB, YB’)去入侵遠端的系統。

攻擊方法三:

假使一個攻擊者擁有兩張智慧卡並且知道這兩張智慧卡的(PW1, PW2) 和(Si1, Si2),這個攻擊者可以以組合的方式來計算出其他合法的使用者驗證資料,進而偽 裝成其他的使用者入侵系統,整個入侵方法如下所示:

Step1: 攻 擊 者 使 用 PW1, PW2, Si1, Si2去 計 算 出Y1’=(ID1XS mod p) and Y2’=(ID2XS mod p)。

Step2: 攻擊者計算

Step2: 攻擊者計算

相關文件