• 沒有找到結果。

IC 卡的安全機制

二、 文獻探討

2.5 IC 卡簡介

2.5.2 IC 卡的安全機制

大 部 分 的 IC 卡 對 於 使 用 者 的 認 證 是 利 用 個 人 驗 證 碼 (Personal Identification Number,簡稱PIN)的系統協定,當使用者想要使用IC卡的時候,通常都必須要先輸 入該卡片的個人驗證碼給卡片進行確認工作,為了卡片避免遭受非法的使用者進行 猜測密碼,IC卡會在經過連續的幾次錯誤之後,即判斷此使用者為非法使用者,自 動的鎖住卡片資料,導致卡片無法繼續使用。另外,智慧卡比起記憶卡更具有安全 性,主要原因是因為智慧卡本身具有CPU,所以可以實現各種想要的安全演算法(視 該卡片提供的功能而定),以達到使用的安全性。而且智慧卡為了避免個人認證碼的 外洩,在傳輸的過程中通常會先被加密起來,當卡片收到該名使用者的認證碼之 後,再經由解密以供計算、比對內部的個人驗證碼,當確認無誤之後即可以使用該 卡片。智慧卡上的特殊作業系統(Card OS),可以對卡內儲存的資料進行控管動作,

並且依照不同的使用者權限做不同的存取控制。另外,智慧卡卡片上因為具有密碼 運算的功能,所以當使用者需要執行加解密動作或簽章動作時,可以將資料傳送到 智慧卡中,在智慧卡中執行運算,大大降低鑰匙因為在電腦上運算時,可能會洩漏、

被盜取的風險[28][33][39]。不過,智慧卡也不是不能夠被破解的,破解智慧卡技術 可以區分為破壞性攻擊與非破壞性攻擊兩種類型,破壞性攻擊技術通常以反向工程 技術為起點,破壞智慧卡的結構進而找出秘密金鑰存放於何處。非破壞性攻擊技術 通常需要微處理器和軟體的專業知識,目前常見的非破壞性攻擊技術為電力分析攻 擊技術、時間分析攻擊技術、故障分析攻擊技術和暫時性故障分析攻擊技術等四種 [34]。

第三章 改善以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 ♁ 是否相 同,如果他們相同,伺服器接受了使用者的登入請求並且繼續了下面 的執行步驟,否則,伺服器拒絕了使用者的登入請求。

相關文件