• 沒有找到結果。

Khor 等學者提出的認證協定

在文檔中 中 華 大 學 (頁 54-60)

第三章、 相關研究

3.6 Khor 等學者提出的認證協定

44

步驟三:讀取器接收到標籤回傳的訊息 RNDnew、X、Y 之後,讀取器會利用本身資料 Ni和接收到的 RNDnew、X 計算 CRC(RNDnew⊕Ni⊕X),計算完成之後會和接 收到的 Y 做比對,如果相等代表讀取器驗證標籤成功。驗證成功之後,讀取 器會利用本身的和 Ki以及接收到的 RNDnew、X 將標籤的 EPCTi解出,並傳送 一個回應訊息給標籤,結束認證。

詳細了解 Chen 和 Deng 所發表的認證協定之後,我們發現標籤裡面所有的值並 沒有做任何更新,而且沒有利用到標籤本身的物理特性,例如電子指紋,此時標籤如 果遭受到攻擊者利用物理攻擊破解出儲存在標籤裡面的私密資料,那麼攻擊者就可以 利用這些私密資料製造出一個非法標籤,並利用這非法標籤通過認證,取得儲存在資 料伺服器的其它資料。

45

的動作,當標籤回應讀取器相關資訊時會有它回應的功率,研究學者去做測試,測出 標籤回應讀取器的最低功率,這個最低功率就是標籤獨特的物理特性。

3.6.2 前置作業

在認證協定還沒開始之前,必須先將環境設置完成,在此 Khor 等學者所發表的 認證協定中,假設資料伺服器和讀取器之間的通道為安全的不會遭受任何攻擊;讀取 器和標籤之間的通道為不安全的可能遭受任何形式的攻擊;另外,此認證協定的標籤 是遵循 EPC Class 1 Generation 2 的標準去做設置。此認證協定主要分成兩個階段,分 別為初始階段以及認證階段。表 3-1 為 Khor 等學者所發表的認證協定中會使用到的 參數符號。

表 3-1、Khor 等學者所發表認證協定符號參數表 符 號 符 號 解 釋

EPCT 標籤的電子產品代碼 FP 標籤的電子指紋 CRC 循環冗餘碼

PRNG 虛擬隨機亂數產生器

Ki 當前這回合的加密金鑰 Ki+1 下一回合的加密金鑰

Kt 標籤的臨時虛擬隨機金鑰

Ks 資料伺服器的臨時虛擬隨機金鑰

⊕ 互斥或運算符號

|| 串接運算符號 CK 加密運算 DK 解密運算

46

3.6.3 初始階段

在初始階段中,會在資料伺服器以及標籤上事先儲存在認證協定中所需要用到的 資料,兩者儲存的資料分別如下:

 標籤:Ki、EPCT、FP

 資料伺服器:index、Ki、EPCT、FP、DATA

其中 index = CRC(EPCT||FP)⊕Ki,此筆資料為事先計算完成的結果。

3.6.4 認證階段

Khor 等學者所發表的認證協定中主要分為五個步驟,其目的是用來認證 FRID 設備之間身份的合法性,並做資料的交換。圖 3-8 為詳細的認證協定流程圖,認證步 驟如下:

步驟一:讀取器發送一個 Request 查詢訊號給標籤,進行查詢標籤的動作。

步驟二:當標籤收到 Request 查詢訊號之後,會將本身所儲存的重要資料 EPCT和 FP 做計算,M1 = CRC(EPCT||FP),計算完成之後會將 M1做加密的動作,CK(M1)

= M1⊕Ki,加密之後再將加密好的資料 CK(M1)回傳給讀取器。當訊息 CK(M1) 傳給讀取器之後,標籤會產生一個臨時虛擬隨機金鑰 Kt,產生方式為 Kt = PRNG(Ki)。

步驟三:當讀取器收到標籤所回傳的加密訊息 CK(M1)之後,會將 CK(M1)訊息原封不 動的轉送到資料伺服器進行身份認證。

步驟四:當資料伺服器收到加密訊息 CK(M1)之後會進行身份認證,認證分為以下幾 個部分:

47

i. 首先會將 CK(M1)和資料伺服器裡面所有的索引直 index 做比對,搜尋出 index = CK(M1),若可以找到相等的 index 索引值,則資料伺服器會利用 對應的加密金鑰 Ki將加密訊息 CK(M1)解密,DK[CK(M1)] = [CRC(EPCT||FP)

⊕Ki]⊕Ki,解密之後可以得到 M1;否則,資料伺服器將會回傳錯誤訊息,

停止認證。

ii. 求出 M1 之後,資料伺服器會利用原本儲存的 EPCT 和 FP 重新計算 CRC(EPCT||FP),然後驗證解密之後的 M1是否會和資料伺服器重新計算 過後的值相等,DK[CK(M1)] ?= CRC(EPCT||FP),若兩個值相等代表身份認 證成功,認證成功之後資料伺服器會產生一個臨時虛擬隨機金鑰 KS,產 生方式為 KS = PRNG(Ki),然後資料伺服器計算 M2 = CRC(EPCT||FP)⊕

KS,計算好之後資料伺服器會將 M2 傳給讀取器;否則,資料伺服器會 回傳錯誤訊息,停止認證。

iii. 當資料伺服器成功將 M2 傳送出去之後,資料伺服器會做更新的部分, 將 更新值 Ki+1 = PRNG(KS)儲存到 Ki,然後 index 值將更新為 index = CRC(EPCT||FP)⊕Ki+1

步驟五:當標籤透過讀取器收到 M2之後,標籤會計算 Mt = CRC(EPCT||FP)⊕Kt,計 算後會驗證 M2 ?= Mt,若兩個值相等代表認證成功,否則回傳錯誤訊息,停 止認證。認證成功之後標籤會做更新的動作,將更新值 Ki+1 = PRNG(Kt)儲存 到 Ki,更新完成,認證結束。

48

資料伺服器 (Data Server)

讀取器 (Reader)

標籤 (Tag) index = CRC(EPCT || FP)⊕ Ki

Ki , EPCT , FP, DATA

M1 = CRC(EPCT || FP) CK(M1) = M1 ⊕ Ki

Request

CK(M1) CK(M1)

M2

M2

Ki , EPCT , FP

比對資料庫全部 index 搜尋 index = CK(M1) 若找到 index = CK(M1)

DK[CK(M1)] = [CRC(EPCT || FP) ⊕ Ki ] ⊕ Ki

否則回傳錯誤訊息 計算 CRC(EPCT || FP)

驗證 DK[CK(M1)] ?= CRC(EPCT || FP) 若驗證成功

Ks = PRNG(Ki)

M2 = CRC(EPCT || FP) ⊕ Ks

否則回傳錯誤訊息

更新

Ki <= Ki+1 = PRNG(Ks)

index <= CRC(EPCT || FP) ⊕ Ki+1

Mt = CRC(EPCT || FP) ⊕ Kt

驗證Mt ?= M2

若驗證成功 更新

Ki <= Ki+1 = PRNG(Kt) 否則回傳錯誤訊息

Kt = PRNG(Ki)

圖 3-8、Khor 等學者認證協定流程圖

3.6.5 Khor 等學者提出的認證協定之弱點分析

Khor 等學者所提出的認證協定中,聲稱可以防止竊聽攻擊、重送攻擊、阻斷服 務攻擊,以及複製攻擊。但是經過我們的仔細研究討論之後,發現 Khor 等學者所提 出的認證協定還是會發生阻斷服務攻擊的可能性,進而導致資料伺服器和標籤之間更 新資料的時候會出現問題,造成雙方資料更新不同步。

49

以下為阻斷服務攻擊造成更新不同步的模擬過程:如果在最後一步讀取器將認證 訊息 M2 傳送到標籤的過程中,遭受到攻擊者惡意的阻斷服務攻擊,此時會發現資料 伺服器的金鑰 Ki 以及索引值 index 已經先做好更新,但是因為標籤無法收到 M2行驗證,導致無法正常更新,這時候就會造成兩邊的 Ki 資料不同步,如果下一回合 再度進行認證的時候,當資料伺服器接收到從標籤所傳過來的加密訊息 CK(M1)時,

會發生無法找到對應的 index 值的狀況,導致比對失敗,資料伺服器將回傳錯誤訊息,

停止認證。

50

在文檔中 中 華 大 學 (頁 54-60)

相關文件