三、 改善以 ElGamal 為基礎的使用者驗證機制
3.2 學者 Khan 等人與學者 Lin 等人所提出的驗證機
3.2.2 學者 Khan 等人所提出的驗證機制
圖 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。