• 沒有找到結果。

改良我們的認證協定

在文檔中 中 華 大 學 (頁 45-49)

第四章 我們提出的認證協定

4.3 改良我們的認證協定

36

資料庫(Database) 讀取器(Reader) 標籤(Tag)

V=Hleft(RID⊕NR)

產生 NT

M1=PRNG(EPCs⊕NR)⊕Ki

D=NT⊕Ki

E=NT⊕PRNG(NT⊕Ci⊕Ki)

M2⊕Pi=?PRNG(EPCs⊕NT) Ki+1=PRNG(Ki)

Pi+1=PRNG(Pi) Ci+1=PRNG(NT⊕NR) Hleft(RID⊕NR)=?V

Ci=0 {

對資料庫所有(EPCs, Kold, Knew) 做比對

Iold=M1⊕Kold, Inew=M1⊕Knew

Iold or Inew=?PRNG(EPCs⊕NR) x=old or new

} 否則 {

Cold or Cnew=?Ci

x=old or new

M1=?PRNG(EPCs⊕NR)⊕Kx }

NT=D⊕Kx

NT⊕PRNG(NT⊕Cx⊕Kx)=?E M2=PRNG(EPCs⊕NT)⊕Px

Info=Hright(RID⊕NR)⊕DATA

x=new {

Kold←Knew←PRNG(Knew) Pold←Pnew←PRNG(Pnew) Cold←Cnew←PRNG(NT⊕NR) }

否則 { Cold←Cx

Cnew←PRNG(NT⊕NR) }

KoldPoldColdKnewPnew

CnewRIDEPCsDATA RID KiPiCiEPCs

1. NR

2. M1, D, Ci, E 3. M1, D, Ci, E, NR, V

4. M2, Info 5. M2

圖 4-1、我們提出的認證協定流程圖

37

樣的問題。為了使我們所提出的認證協定更加的安全,我們將針對 Lee 等學者提出的 攻擊手法,進一步的改良認證協定。在這個章節中,將會說明 Lee 等學者的攻擊手法,

以及改良我們所提出的認證協定。

4.3.1 Lee等學者的攻擊手法

Lee 等學者在 2011 年提出了一個攻擊手法去攻擊 Yeh 等學者提出之認證協定,

而攻擊的手法主要分為三個階段,以下說明其攻擊手法。

 階段 1:

第一步:攻擊者傳送一個隨機亂數 NA1至標籤。

第二步:標籤收到 NA1之後,將會計算 M11=PRNG(EPCs⊕NA1)⊕Ki、D=NT

⊕Ki、E=NT⊕PRNG(Ci⊕Ki),並傳送訊息(M11、D、 Ci和 E)給攻擊者。

 階段 2:

攻擊者重複階段 1 的動作,傳送隨機亂數 NA2至標籤,並且取得標籤傳送之 訊息(M12、D、 Ci和 E)。同時攻擊者準備了一個集合 H={H0, H1, H2, … …, H216} 來 偽 造 所 有 可 能 性 的 EPCS’ 。 接 著 攻 擊 者 計 算 M11⊕ M12 取 得 PRNG(EPCs⨁NA1)⨁PRNG(EPCs⨁NA2)⨁Ki⨁K,而認證金鑰 Ki i經由 Exculsive OR 運算過後將消除,最後攻擊者取得了 PRNG(EPCs⨁NA1)⨁PRNG(EPCs⨁

NA2)算式以及(H、NA1 、NA1、M11 和 M12),而攻擊者使用字典攻擊法來進 行運算。

for ( i = 0 ; i < 216 ; i++ ) {

EPCS’ = Hi;

if (M11⊕M12 == PRNG(EPCs⨁NA1)⨁PRNG(EPCs⨁NA2) ) return EPCS’;

else

continue;

}

38

經過以上的程式運算過後,攻擊者就能夠輕易的在 216個元素的集合中 找出正確的 EPCS’同時也相當於取得了正確的 EPCS

 階段 3:

當攻擊者取得了正確的 EPCS後就能夠運算出 Ki =PRNG(EPCs⊕NA1)⊕

M11,而當攻擊者取得了正確的 EPCS和 Ki之後,就能夠冒充成一個合法的 標籤來進行認證。

攻擊者藉由互斥或運算的特性,成功的將認證金鑰 Ki消除,以及只要 使用 216個元素的集合就能夠輕易的取得認證協定中的重要資訊。攻擊者之 所以能夠成功攻擊的原因,是因為 Yeh 等學者將原本 96-bits EPC 改成 16-bits 的 EPCS,使得長度大幅的縮減,因而造成了安全性的漏洞。

4.3.2 改良我們提出之認證協定

由於 Lee 等學者的攻擊手法成功的攻擊了 Yeh 等學者提出之認證協定,因而在此 我們將更進一步的改良我們的認證協定,以抵擋 Lee 等學者的攻擊手法。

首先針對互斥或運算的特性,我們將改進認證協定中訊息的運算方式,改良的目 的為,盡可能不讓重要的資訊直接使用互斥或,使攻擊者無法使用互斥或運算將認證 金要消除。修改運算的訊息分別為 M1、E、M2 以及 C 更新運算,修改後的運算如下:

M1=PRNG(EPCs⊕NR⊕Ki) E= PRNG(NT⊕Ci⊕Ki) M2=PRNG(EPCs⊕NT⊕Px) Ci+1=PRNG(NT⊕NR⊕Pi)

接著我們將 Yeh 等學者修改的 16-bits 的 EPCS,改進成原始 96-bits 的 EPC。同

39

時我們也進行了一項測詴,我們使用了桌上型電腦(環境為 Windows 7 32 位元、2G 記 憶體、Intel Core 2 Quad CPU Q6600 2.4GHz)進行了 16-bits 和 96-bits 的運算實驗。由 於 16-bits 只有 65536 種可能性,在我們的測詴環境中僅僅只需少許的時間就能夠運 算完成,而 96-bits 大約有 7.92281625 × 1028種可能性,在我們現有的測詴環境中無 法運算完成。兩者相比較,很明顯的 16-bits 的安全性遠比 96-bits 來的低。因此我們 將原本沿用 Yeh 等學者的設定,改進成 96-bits 的 EPC,加以保障我們所提出的認證 協定。改良後的認證協定流程圖如圖 4-2。

資料庫(Database) 讀取器(Reader) 標籤(Tag)

V=Hleft(RID⊕NR)

產生 NT

M1=PRNG(EPC⊕NR⊕Ki) D=NT⊕Ki

E=PRNG(NT⊕Ci⊕Ki)

M2=?PRNG(EPC⊕NT⊕Pi) Ki+1=PRNG(Ki)

Pi+1=PRNG(Pi)

Ci+1=PRNG(NT⊕NR⊕Pi) Hleft(RID⊕NR)=?V

Ci=0 {

對資料庫所有(EPC, Kold, Knew) 做比對

M1=?PRNG(EPC⊕NR⊕Kold or new) x=old or new

} 否則 {

Cold or Cnew=?Ci

x=old or new

M1=?PRNG(EPC⊕NR⊕Kx) }

NT=D⊕Kx

PRNG(NT⊕Cx⊕Kx)=?E M2=PRNG(EPC⊕NT⊕Px) Info=Hright(RID⊕NR)⊕DATA

x=new {

Kold←Knew←PRNG(Knew) Pold←Pnew←PRNG(Pnew) Cold←Cnew←PRNG(NT⊕NR) }

否則 { Cold←Cx

Cnew←PRNG(NT⊕NR⊕Px) }

KoldPoldColdKnewPnew

CnewRIDEPCDATA RID KiPiCiEPC

1. NR

2. M1, D, Ci, E 3. M1, D, Ci, E, NR, V

4. M2, Info 5. M2

圖 4-2、改良後的認證協定流程圖

40

在文檔中 中 華 大 學 (頁 45-49)

相關文件