• 沒有找到結果。

符合 EPC-C1G2 之 RFID 身分認證 協定之密碼分析與改進

N/A
N/A
Protected

Academic year: 2021

Share "符合 EPC-C1G2 之 RFID 身分認證 協定之密碼分析與改進"

Copied!
61
0
0

加載中.... (立即查看全文)

全文

(1)

國 立 臺 中 教 育 大 學 資 訊 科 學 研 究 所 碩 士 論 文

指導教授:顧維祺 教授

符合 EPC-C1G2 之 RFID 身分認證

協定之密碼分析與改進

Cryptanalysis and Improvement of

EPC-C1G2 RFID Authentication

Protocols

研究生:陳怡涵 撰

(2)

誌謝

誌謝

誌謝

誌謝

首先要感謝我的指導教授顧維祺教授,無論是在課業上或生活上,對我的 悉心指導與關心使得這篇論文得以完成。在老師的引領下,不僅培養我在資訊 安全領域的專業知識與獨立研究思考的能力,更令我學習到做人該有的謙虛態 度和處事該有的嚴謹態度,不論在課業研究或待人處事,這兩年皆令我獲益良 多。我也要特別感謝論文口試委員陳澤雄教授與林嬿雯教授對於本論文內容不 足的地方提供各項寶貴的建議,使得本論文的內容更臻完善。 其次我要感謝資安實驗室的學長雨澤、民德和思堯,感謝你們給我的建議 與協助,並且我要特別感謝我的好朋友—博仁,感謝你一路從大學到研究所的 陪伴,讓我在台中的生活變得燦爛,同時我也要感謝我的學弟維屏和我的同學 介民、國唐與昱群等夥伴,能和大家一起並肩作戰是我的福氣,而其他學長姐 芳瑜、鈺軒與豐旭,感謝你們的開導和鼓勵,讓我在低潮時得以重新振作克服 困難。 而我也要感謝我的家人對我的支持鼓勵與栽培,給予我不虞匱乏的環境, 讓我能無後顧之憂地完成學業,你們的支持與鼓勵是我完成學業的最大動力。 需要感謝的人太多,無法一一道謝,最後僅以此論文獻給所有曾經幫助與 鼓勵我的人,在我求學的日子裡,沒有你們我無法成長與茁壯,也因為有你們, 往後的路途我會更勇敢的走下去,謝謝你們,我衷心的感謝。

(3)

摘要

摘要

摘要

摘要

RFID (無線射頻識別) 近年來已被廣泛運用在許多日常生活應用中,例如: 電子錢包、汽車鑰匙、寵物晶片、倉儲管理、自動收費系統、門禁系統等。為了 提升 RFID 科技與支援相互操作性,國際組織 EPCglobal 提出一套全球性的

RFID 標準 — EPCglobal Class-1 Generation-2 (簡稱 EPC-C1G2),由於其成本低

廉的特性,EPC-C1G2 已被視為國際性的 RFID 主流標準之一。然而,在

EPC-C1G2 被廣泛應用的同時,其隱私性與安全性亦逐漸受到重視。迄今,已有

許多符合 EPC-C1G2 之 RFID 身分認證協定的相關研究陸續被提出且各有優 缺點。在本論文中,我們將分別分析兩套現有符合 EPC-C1G2 之 RFID 身分認 證協定 — Lo-Yeh 協定與 SRP,我們發現:(1) Lo-Yeh 協定無法抵擋破解 EPC 攻擊、位置追蹤攻擊與假冒攻擊;(2) SRP 無法抵擋猜測攻擊、位置追蹤攻擊、 假冒攻擊與去同步攻擊。由於 Lo-Yeh 協定與 SRP 之部份弱點可直接歸因於

EPC-C1G2 所訂定 16-bit CRC 與 16-bit PRNG 之長度不足,因此,我們提出 EPC-C1G2 之微擴充架構 — EPC-C1G2*,藉著增加 CRC 與 PRNG 的位元長 度以提高安全性並維持低運算成本的優點。接著,我們提出一套符合 EPC-C1G2* 之 RFID 身分認證改進協定,此改進協定可抵擋破解 EPC 攻擊、猜測攻擊、 位置追蹤攻擊、假冒攻擊與去同步攻擊。最後,我們做協定安全強度之比較,為 增加比較之客觀性與公平性,我們將EPC-C1G2* 架構套用在 Lo-Yeh 協定及 SRP (分別以 Lo-Yeh* 與 SRP* 表示),比較的結果說明我們的改進協定在安全 性上優於 Lo-Yeh 協定、SRP、Lo-Yeh* 與 SRP*

關鍵詞:RFID 身分認證協定、EPC-C1G2、破解 EPC 攻擊、猜測攻擊、位置 追蹤攻擊、假冒攻擊、去同步攻擊。

(4)

Abstract

RFID (Radio Frequency Identification) has been considered as a cost-effective solution for a wide variety of applications, such as supply chain, medical medication management, logistics management, auto-tolling system, and so on. To promote the RFID technology and to support operability, EPCglobal Class 1 Generation 2 (EPC-C1G2) has been proposed. In the EPC-C1G2 standard, the channel between tag and reader is assumed to be secure while the channel between reader and database is assumed to be insecure. Meanwhile, for protecting the channel between the tag and the reader, EPC-C1G2 specifies two basic mechanisms, a 16-bit pseudo-random number generator (PRNG), which is used to generate 16-bit random number, and a 16-bit cyclic redundancy code (CRC), which is used to detect errors in transmitted data. The EPC-C1G2 standard is widely regarded as an international mainstream when developing RFID applications due to its major property of lightweight cost. Up to now, many RFID authentication protocols conforming to EPC-C1G2 have been proposed. In 2010, Lo and Yeh proposed an EPC-C1G2 RFID authentication protocol, and employed a formal logic proof to prove the security of their protocol. Simultaneously, Yeh et al. proposed an EPC-C1G2 RFID authentication protocol, SRP, and claimed that their protocol could be applied in high security demanding environments. However, we find that Lo-Yeh’s protocol and SRP are not as secure as their designers claimed. We show that Lo-Yeh’s protocol is vulnerable to an EPC cracking attack, a location tracking attack, and an impersonation attack. In addition, we demonstrate that SRP is vulnerable to a location tracking attack, a guessing attack, a desynchronization attack, and an impersonation attack. To improve the security of EPC-C1G2 without incurring much extra cost and overhead, we propose an extended version of EPC-C1G2, called EPC-C1G2*, which employs stronger CRC and PRNG functions. Furthermore, we propose an improved RFID authentication protocol conforming to EPC-C1G2*, and then show that our improved protocol can resist the EPC cracking attack, the guessing attack, the location tracking attack, the impersonation attack, and the desynchronization attack. Finally, we show our improved protocol is superior to Lo-Yeh’s protocol and SRP, and the improved versions of Lo-Yeh’s protocol and SRP with respect to security.

Keywords: RFID authentication protocol, EPC-C1G2, EPC cracking attack, guessing attack, location tracking attack, impersonation, desynchronization.

(5)

目錄

目錄

目錄

目錄

第一章 第一章 第一章 第一章 序論序論序論序論 ... 1 第二章 第二章 第二章 第二章 研究背景研究背景研究背景研究背景 ... 5 2.1 EPC-C1G2 ... 5 2.2 相關研究 ... 9 2.3 RFID 身分認證協定常見之攻擊 ... 10 第 第 第 第三三三三章章章章 兩套兩套兩套兩套符合符合 EPC-C1G2 之符合符合 之之之 RFID 身分認證身分認證身分認證協定之身分認證協定之協定之分析協定之分析分析分析 ... 12 3.1 Lo-Yeh 協定之安全性分析 ... 13 3.1.1 Lo-Yeh 協定簡介 ... 13 3.1.2 Lo-Yeh 協定之弱點 ... 17 3.2 SRP 之安全性分析 ... 20 3.2.1 SRP 簡介 ... 21 3.2.2 SRP 之弱點 ... 25 第 第 第 第四四四四章章章章 EPC-C1G2 之微擴充架構與改良的身分認證協定之微擴充架構與改良的身分認證協定之微擴充架構與改良的身分認證協定之微擴充架構與改良的身分認證協定 ... 32 4.1 EPC-C1G2 之微擴充架構—EPC-C1G2* ... 33 4.2 符合 EPC-C1G2* 之 RFID 身分認證改進協定 ... 33 4.3 符合 EPC-C1G2* 之 RFID 身分認證改進協定之安全性分析 ... 39 4.4 改進協定與現有同類協定之安全性比較 ... 44 第 第 第 第五五五五章章章章 結論與未來研究方向結論與未來研究方向結論與未來研究方向結論與未來研究方向 ... 48

(6)

參考文獻 參考文獻參考文獻 參考文獻 ... 50 著作 著作著作 著作目錄目錄目錄 ... 53 目錄

(7)

圖目錄

圖目錄

圖目錄

圖目錄

圖 1-1:RFID 系統架構圖 ... 3 圖 3-1:Lo-Yeh 協定 (Case 1) ... 15 圖 3-2:Lo-Yeh 協定 (Case 2) ... 17 圖 3-3:M1 位元長度示意圖 (Case 1) ... 18 圖 3-4:SRP ... 25 圖 4-1:符合 EPC-C1G2* 之 RFID 身分認證改進協定 (Case 1) ... 36 圖 4-2:符合 EPC-C1G2* 之 RFID 身分認證改進協定 (Case 2) ... 39

(8)

表目錄

表目錄

表目錄

表目錄

表 3-1:Lo-Yeh 協定之符號說明 ... 13 表 3-2:SRP 之符號說明 ... 21 表 4-1:符合 EPC-C1G2* 之 RFID 身分認證改進協定之符號說明 ... 34 表 4-2:改進協定與同類協定之安全性比較表 ... 47

(9)

第 一

一 章

序論

序論

序論

序論

RFID (Radio Frequency IDentification;無線射頻識別) 是一種「非接觸式」的自動

識別技術,最初之發展可追朔到 1930 年代,美國海軍實驗室 (naval research

labora-tory;NRL) 發展的敵我識別系統 (identify friend or foe;IFF) [Bhup05],然而,礙於成

本與技術的限制,當時並未能將此技術應用於軍事以外的用途上。近年來,由於電子技 術的快速進步與硬體成本的大幅降低,RFID 已被廣泛地運用在許多應用中,從日常生 活中的自動收費系統、門禁管理系統等,到商業所使用的物流鏈管理、倉儲管理,甚至 是醫療用藥管理等 [Juels06] 皆可見到 RFID 的蹤跡。而為了提升 RFID 科技與支援相 互操作性,國際組織 EPCglobal 提出一套全球性的 RFID 標準 — EPCglobal Class-1

Generation-2 (簡稱 EPC-C1G2) 並陸續更新以保障 EPC-C1G2 系統的完善性與安全性 [EPC05a] [EPC05b] [EPC08],主要因其成本低廉的特性,EPC-C1G2 已被視為國際性的 RFID 主流標準之一。在 2005 年,美國大型零售業 Wal-Mart 宣布在其商品供應鏈上

的前百大廠商所提供的商品須含有 RFID 標籤,另外,Wal-Mart 也同時宣布將於測試 後替換為 EPC-C1G2 以提升效率 [Rob05]。在 2010年,Aalborg 機場在行李管理上將 原本使用的條碼系統全面替換成使用 EPC-C1G2 的系統,並額外擴充約五倍的記憶體

[Wes10]。

(10)

Database (後端資料庫) 所組成,分述如下:

Tag

限制使用被動式的 (passive) Tag,而 Tag 之電力係由 Reader 傳來的無線電波 來轉成電力,其體積小、價格便宜、壽命長。

Reader

Reader 為發送無線電波以對 Tag 資料作存取,常與應用系統結合使用。Tag

與 Reader 之間的傳輸通道被設為一般通道 (insecure channel),因此攻擊者可 攔截與竊聽該通道的一切資訊。

Database

藉由 Reader 去辨識、收集與管理 Tag 的資訊,可搭配加密技術與防火牆以 提供系統更安全的環境,運算能力較 Reader 與 Tag 強大許多。Reader 與

Database 之間的傳輸通道被設為安全通道 (secure channel),攻擊者無法攔截與

竊聽該通道的一切資訊。

其運作原理為 Reader 發送頻率 860 ~ 960 MHz 的無線電波至 Tag 以存取資料,

(11)

隨著 EPC-C1G2 逐漸被廣泛應用的同時,使用者的隱私性與安全性亦逐漸受到人 們的重視,然而,由於 EPC-C1G2 限制 Tag 僅能運用較簡單與低成本的運算方式,如:

XOR、串接 (concatenation) 等,並限制 Tag 僅能使用 16-bit 的 CRC (循環冗餘檢查

碼;cyclic redundancy check) 與 16-bit 的 PRNG (虛擬隨機亂數產生器;pseudo-random

number generator),因此,符合 EPC-C1G2 的身分認證協定之成本較使用加解密系統 (cryptosystem) 或使用雜湊函數 (hash function) 等的身分認證協定更低,但設計的限制

則 較 使 用 加 密 系 統 或 使 用 雜 湊 函 數 等 身 分 認 證 協 定 為 多 。 迄 今 , 已 有 許 多 符 合

EPC-C1G2 的身分認證協定陸續被提出 [Bur08] [Chien07] [Duc06] [Huang10] [Lopez09] [Lo10] [Sun09] [Yeh10],但多數的設計均被後續的研究發現有其弱點。在 2007 年,Chien

與 Chen [Chien07] 提出一套符合 EPC-C1G2 的身分認證協定,且宣稱其協定可抵擋多 項攻擊,但之後的研究卻指出該協定無法抵擋位置追蹤攻擊 (location tracking attack)、 假冒攻擊 (impersonation attack)、去同步攻擊 (desynchronization attack) 且無法保證前饋 安全 [Bur08] [Lopez09] [Yeh10]。在 2010 年,Lo 與 Yeh [Lo10] 提出了一套改良的符 合 EPC-C1G2 之身分認證協定,但我們卻發現 Lo-Yeh 協定仍無法抵擋破解 EPC 攻 擊 (Electronic Product Code cracking attack)、位置追蹤攻擊與假冒攻擊。同年,Yeh等人

Reader Tag Database

(12)

[Yeh10] 針對 Chien-Chen 協定 提出一套 符 合 EPC-C1G2 的身分 認證改進協 定 — SRP,並宣稱 SRP 可抵擋多項攻擊,但我們卻發現 SRP 無法抵擋位置追蹤攻擊、猜

測攻擊 (guessing attack)、假冒攻擊與去同步攻擊。由於 Lo-Yeh 協定與 SRP 之部份弱 點可直接歸因於 EPC-C1G2 所訂定 16-bit CRC 與 16-bit PRNG 之長度不足,因此, 我們提出 EPC-C1G2 之微擴充架構 — EPC-C1G2*,藉著僅增加 CRC 與 PRNG 的位 元長度以提高安全性並維持低運算成本的優點。接著,我們以 Lo-Yeh 協定與 SRP 為 基礎並針對其安全弱點,提出一套符合 EPC-C1G2* 之 RFID 身分認證改進協定。此改 進協定可抵擋破解 EPC 攻擊、猜測攻擊、位置追蹤攻擊、假冒攻擊與去同步攻擊。最 後,我們做協定安全強度之比較,為增加比較之客觀性與公平性,我們將EPC-C1G2* 架 構套用在 Lo-Yeh 協定及 SRP (分別以 Lo-Yeh* 與 SRP* 表示),比較的結果說明我們 的改進協定在安全性上優於 Lo-Yeh 協定、SRP、Lo-Yeh* 與 SRP* 本論文的後續章節安排如下,第二章將介紹 EPC-C1G2 與其相關研究背景。接著, 第三章將介紹現有符合 EPC-C1G2 的 RFID 身分認證協定與其安全性分析。之後,第 四章將提出我們的符合 EPC-C1G2* 之 RFID 身分認證改進協定並分析其安全強度並 與現有同類之 RFID 身分認證改進協定比較。最後,第五章將為本論文研究作結論並簡 述未來研究方向。

(13)

第 二

二 章

研究背景

研究背景

研究背景

研究背景

國 際 組 織 EPCglobal 提 出 一 套 全 球 性 的 RFID 標 準 — EPCglobal Class-1

Generation-2 (簡稱 EPC-C1G2) 並陸續更新以保障 EPC-C1G2 系統的完善性與安全性 [EPC05a] [EPC05b] [EPC08],主要因其成本低廉的特性,EPC-C1G2 已被視為國際性的 RFID 主流標準之一。在本章中,我們將分別介紹 EPC-C1G2 標準訂定的 16-bit CRC

、16-bit PRNG、Tag 邏輯記憶體之四類區域以及 Tag 在執行身分認證協定運作時的七 種狀態。近年來,符合 EPC-C1G2 之 RFID 身分認證協定之研究已陸續被提出 [Bur08]

[Chien07] [Jules05] [Lo08] [Lo10] [Sun09] [Yeh10],我們將分別介紹其協定之特色與優缺

點。

2.1 EPC-C1G2

EPC-C1G2 係 由 國 際 組 織 EPCglobal 所 提 出 , 目 前 版 別 為 1.2.0 [EPC08] , EPC-C1G2 與國際標準組織 (ISO;International Organization for Standardization) 訂定的 ISO 1800-6 相容,此兩套標準皆為 860 ~ 960 MHz 的被動式Tag 所設計,而 Tag 詳

細規格則訂定於 EPCglobal 的 EPC Tag Data Standard [EPC10]。因相關標準內容繁複, 在本節中僅簡介 EPC-C1G2 與 RFID 身分認證協定較相關的部分 — CRC、PRNG、

(14)

CRC (cyclic redundancy check) 一般 CRC 的表示式為 i(x).xN = d(x).p(x) + r(x),其中 i(x) 為輸入的位元 字串、xN 為使輸入的位元字串轉成 N 次多項式、d(x) 與 p(x) 分別代表除式 與商式、r(x) 代表餘式使得|r(x)|<|p(x)|,CRC 主要目的在於取得 r(x) 。 EPC-C1G2 規定 Tag 僅能使用 CRC-16-CCITT (多項式:x16

+ x12 + x5 + 1)

與 CRC-5 (多項式:x5

+ x3 + 1) 偵測 Tag 與 Reader 間的傳輸錯誤。CRC 屬

於線性 (linear) 函數且具有下列特性:CRC(a∥b) ⊕ CRC(a∥c) = CRC(b∥c) ,因此,在設計符合 EPC-C1G2 之 RFID 身分認證協定時,須謹慎地使用

CRC 函數以避免暴露秘密資訊。

PRNG (pseudo-random number generator)

EPC-C1G2 僅規定 Tag 可透過 PRNG 產生 16-bit 的亂數 (random number)

,但並未限定其建構方式,而 PRNG 所產生亂數之隨機性須滿足以下條件: (1) 產生亂數的機率須介於 0.8 / 216 與 1.25 / 216 之間;(2) 當 Tag 數量達到 一萬時,任兩個 Tags 以上同時產生相同亂數的機率須小於 0.1 %;(3) 亂數 被預測之機率不可大於 0.025 %。 Tag 記憶體 (1) Reserved Memory

儲存 32-bit 的 kill password 與 access password,前者為使 Tag 不再對 任何 Reader 進行回應並永遠保持沉默,或是使 Tag 重新被 Reader 再委

(15)

任 (recommission);後者為使 Tag 轉為 Secure State 安全狀態所需要使用 的通行碼。若 kill password 或 access password 的值為零,則 Tag 不提 供上述的功能。

(2) EPC Memory

儲存 Tag 本身的 EPC (Electronic Product Code) 與 CRC 運算的相關資 訊,而 EPC 最大位元數可達 512-bit [EPC10]。

(3) TID Memory

儲存 Tag 本身的 ID 以供 Reader 辨識,該 ID 必須具有唯一性

(uni-queness),另外,此區亦可儲存 Tag 和供應商之間的特定數據,例如:Tag

序號 (serial number)。

(4) User Memory

此區為 optional,可讓使用者儲存特定資訊。另外,當 Tag 被 kill password 再委任時,將導致此區的記憶體無法再被讀寫使用。

Tag 狀態

(1) Ready State

當未被刪除的 Tag 收到 Reader 發出的無線電波且尚未收到 Reader 所 發出的 query 時,則進入 Ready State。Tag 無論在何種狀態下,當電力 消耗殆盡而再重新獲得電力時,皆會進入 Ready State。

(16)

(2) Arbitrate State

當 Tag 收到由 Reader 發出的 query 時,則進入 Arbitrate State 並準備 開始執行與 Reader 之身分認證協定。

(3) Reply State

當 Tag 進入 Reply State 時,將依身分認證協定的內容回覆 Reader 的

query,接著,若 Reader 的回應正確則 Tag 將進入 Acknowledged State;

反之,若 Reader 的回應逾時 (time out) 或回應不正確則 Tag 將回到

Arbitrate State。

(4) Acknowledged State

當 Tag 進入 Acknowledged State 後,可由 Reader 傳來之命令

(com-mand) 進入除了 Killed State 以外的任何狀態。

(5) Open State

當 Tag 為 Acknowledged State 且 Tag 支援 access password,Tag 可由

Reader 傳來之命令從Acknowledged State 進入 Open State。當 Tag 為 Open State 時,Tag 可進入除了 Acknowledged State 以外的任何狀態。

(6) Secure State

當 Tag 為 Acknowledged State 但 Tag 不支援 access password,Tag 可 由 Reader 傳來之命令從 Acknowledged State 進入 Secure State。在此狀

(17)

態的 Tag 可允許被執行任何存取動作,並且也可以進入除了 Open State 與 Acknowledged State 以外的任何狀態。

(7) Killed State

當 Tag 為 Open State 或 Secure State 時,Tag 可透過 Reader 傳來之

kill password 而進入 Killed State。刪除 Tag 為不可逆的 (irreversible),

因此當 Tag 被刪除時,必須永遠保持 Killed State 且不回應任何詢問。

2.2 相關研究

相關研究

相關研究

相關研究

在 2005 年,Jules [Jules05] 提出一套符合 EPC-C1G2 之 RFID 身分認證協定,並 使用 PINset 來抵擋 EPC 複製攻擊 (EPC cloning attack),但是該作者自己也指出其協 定無法抵擋竊聽攻擊 (eavesdropping attack) 與中間者攻擊 (man-in-the-middle attack)。 在 2007 年,Chien 與 Chen [Chien07] 指出 Karthikeyan 與 Nesterenko [Karth05] 所提 出的符合 EPC-C1G2 之 RFID 身分認證協定無法抵擋去同步攻擊 (desynchronization

attack) 與 重 送 攻 擊 (replay attack) , 同 時 也 指 出 Duc 等 人 [Duc06] 所 提 出 的 符 合 EPC-C1G2 之 RFID 身分認證協定無法抵擋去同步攻擊與假冒攻擊 (impersonation at-tack),並提出一套符合 EPC-C1G2 之 RFID 身分認證改進協定 (在本論文中簡稱 Chien-Chen 協定)。然而,後續研究 [Bur08] [Lopez09] [Yeh10] 指出該協定無法提供前

饋安全且無法抵擋位置追蹤攻擊 (location tracking attack)、重送攻擊、假冒攻擊與去同 步攻擊。在 2007 年,Lo 與 Yeh [Lo07] 提出一套符合 EPC-C1G2 之 RFID 身分認證 協定,此協定提供 Tag 與 Reader 雙向認證的功能並保護使用者隱私與資料安全,然

(18)

而,Liu等人 [Liu10] 發現此協定無法抵擋位置追蹤攻擊。同年,Burmester 與 Medeiros

[Bur08] 提出一套符合 EPC-C1G2 之 RFID 身分認證協定並命名為 TRAP-3,且使用

額外擴增的 32-bit CRC 與 48-bit 金鑰以提高其協定之安全性,然而 Lo 與 Yeh [Lo09] 發現此協定無法抵擋去同步攻擊。在 2009 年,Sun 與 Ting [Sun09] 提出了一套符合

EPC-C1G2 的協定並命名為 Gen2+,同時也設計產生金鑰的演算法與選取 Tag 的演算

法並模擬其結果,然而 Burmester 與 Medeiros [Bur09] 指出此協定無法抵擋重送攻擊 。在 2010 年,Yeh等人 [Yeh10] 針對 Chien-Chen 協定提出了一套符合 EPC-C1G2 之

RFID 身分認證改進協定,在此簡稱為 SRP (Securing RFID Protocol) [Habi11],並宣稱

此協定可符合高安全應用之需求,但我們仍發現 Yeh等人的協定無法抵擋位置追蹤攻擊 、猜測攻擊 (guessing attack)、假冒攻擊與去同步攻擊。同年,Lo 與 Yeh [Lo10] 提出 了一套改良的符合 EPC-C1G2 之 RFID 身分認證協定 (在本論文中簡稱 Lo-Yeh 協定) ,並同時宣稱其協定可抵擋多項攻擊,但我們仍發現此協定無法抵擋 EPC 取得攻擊、 位置追蹤攻擊與假冒攻擊,我們將在第三章中詳細說明 Lo-Yeh 協定與 SRP 的安全性 分析結果。

2.3 RFID 身分認證協定

身分認證協定

身分認證協定

身分認證協定常見之攻擊

常見之攻擊

常見之攻擊

常見之攻擊

由於目前對於符合 EPC-C1G2 之 RFID 身分認證協定並無特定的分析方式,在本 論文中,我們將採取經驗法則檢驗各章中所介紹之 RDID 身分認證協定以及我們所提 出的 RDID 身分認證改進協定。歸納現有 RFID 身分認證較常遭受之攻擊如下:

(19)

位置追蹤攻擊 (location tracking attack) 此攻擊可區分為被動與主動兩類,前者為攻擊者僅被動的竊聽與記錄 Reader 與 Tag 之間訊息,並藉由這些訊息來追蹤此 Tag;後者則為攻擊者主動的傳 送訊息給欲追蹤之 Tag 並比對其回應的訊息來持續追蹤特定 Tag 的擁有者 所在的位置。 猜測攻擊 (guessing attack) 攻擊者不斷地猜測訊息並透過比對傳遞或儲存的訊息來判斷是否猜測正確,以 此方式獲得 Tag 或 Reader 的秘密資訊。 假冒攻擊 (impersonation attack) 攻擊者竊聽、記錄或修改 Tag 與 Reader 之間所傳送的訊息,再將擬造的訊 息傳給 Tag 或 Reader,以假冒 Tag 通過 Reader 認證或假冒 Reader 通過

Tag 認證。

去同步攻擊 (desynchronization attack)

攻擊者嘗試攔截、更改 Tag 與 Reader 所傳送的訊息或其他方法,造成 Tag 與

Reader 或 Tag 與 Database 之間儲存的認證資訊不同步,使其無法正常運作。

阻斷服務攻擊 (denial-of-service attack;DoS attack)

攻擊者利用去同步攻擊等各種攻擊與方法,造成 Tag 與 Reader 或 Tag 與

(20)

第 三

三 章

兩套

兩套

兩套

兩套符合

符合

符合 EPC-C1G2 之

符合

之 RFID 身分認

身分認

身分認

身分認

證協定之

協定之

協定之分析

協定之

分析

分析

分析

EPC-C1G2 限 制 Tag 僅 能 運 用 較 簡 單 與 低 成 本 的 運 算 , 如 : XOR 、 串 接 (concatenation) 等,而不可使用成本較高的加解密運算。另外,EPC-C1G2 也限制 Tag

僅能使用 16-bit 的 CRC (循環冗餘檢查碼;cyclic redundancy check) 與 16-bit 的

PRNG (虛擬隨機亂數產生器;pseudo-random number generator),而不可使用較複雜的雜

湊函數 (hash function)。由於限制較多,故符合 EPC-C1G2 之 RFID 身分認證協定的 設計困難度高於可使用加密系統 (cryptosystem) 或雜湊函數 (hash function)等之身分認 證協定的設計困難度。迄今,已有許多符合 EPC-C1G2 之 RFID 身分認證協定被提出 ,但多數的協定均被後續的研究發現有其弱點。最近,有兩套改良的符合 EPC-C1G2 之

RFID 身分認證協定被提出— Lo-Yeh協定 [Lo10] 與 SRP [Yeh10],然而,我們發現這

兩套協定仍有弱點與問題,我們將在本章中指出 Lo-Yeh 協定無法抵擋破解 EPC 攻擊

(Electronic Product Code cracking attack)、位置追蹤攻擊 (location tracking attack) 與假冒

攻擊 (impersonation attack),並指出 SRP 無法抵擋位置追蹤攻擊、猜測攻擊 (guessing

(21)

3.1 Lo-Yeh 協定之安全

協定之安全

協定之安全

協定之安全性

性分析

分析

分析

分析

Lo 與 Yeh [Lo10] 在 2010 年提出一套符合 EPC-C1G2 之 RFID 身分認證協定

,提供雙向認證 (mutual authentication) 與資料保密性 (data confidentiality) 並宣稱能抵 擋位置追蹤攻擊與重送攻擊 (replay attack),且透過重新同步 (resynchronized) Tag 之方 式來抵擋阻斷服務攻擊 (denial-of-service attack),另外,該協定使用正規邏輯證明

(formal logic proof) 來證明其安全性,然而,我們發現 Lo-Yeh 協定無法抵擋 EPC 取

得攻擊、位置追蹤攻擊與假冒攻擊。本節中,我們將先介紹 Lo-Yeh 協定,之後分析其 弱點。Lo-Yeh 協定所使用之符號定義請見 (表3-1)。

3.1.1 Lo-Yeh 協定簡介

協定簡介

協定簡介

協定簡介

Tag 內儲存 (flag, Kx, EPCx),Reader 僅負責讀取 Tag 資料並傳送給 Database 或

表 3-1:Lo-Yeh 協定之符號說明

符號 符號表示

Kx Tag 金鑰 (16-bit)

Kx_DB Database 儲存的 Tag 金鑰 (16-bit)

EPCx Tag 的電子產品碼 (96-bit)

EPCx_DB Database 儲存的電子產品碼 (96-bit)

N1, N2, N3, N4 隨機亂數 (16-bit)

flag 標籤值 (flag = 0 代表前次認證正常結束;flag = 1 代表前次認證不

正常結束)

ObjectData Tag 的資訊

⊕ XOR 運算

CRC 16-bit 循環冗餘檢查碼 (cyclic redundancy check)

(22)

接 收 Database 的 資 料 後 傳 送 給 Tag, Database 則 儲 存 所 有 Tag 的 資 料 (Kx_DB,

EPCx_DB, objectData)。Lo-Yeh 協定步驟可分為 Case 1 與 Case 2 等兩種情形:若前次

認證正常結束,則執行 Case 1 (flag = 0);反之,若前次認證不正常結束,則執行 Case 2

(flag = 1)。協定中並使用位元填充機制 (bit filling mechanism) 以使得 XOR 的較短運算

元與較長運算元等長,例如:當 16-bit 的 PRNG(Kx⊕N2) 與 144-bit 的 EPCx∥N1∥

N2∥CRC(EPCx∥N1∥N2) 作 XOR 時 , PRNG(Kx⊕N2) 將 自 動 重 複 八 次 並 串 接 成

144-bit 的值後與 EPCx∥N1∥N2∥CRC(EPCx∥N1∥N2) 作 XOR。此外,協定中假設

Database 與 Reader 之間的傳輸通道為安全通道 (secure channel)。

Lo-Yeh 協定協定協定步驟協定步驟步驟步驟 (Case 1)

步驟1: Reader 產生亂數 N1 並將 N1 傳送給 Tag。

步驟2: Tag 產生亂數 N2 並以自身所儲存的 Kx 與 EPCx 計算 M1 = (EPCx∥

N1∥N2∥CRC(EPCx∥N1∥N2))⊕PRNG(Kx⊕N2),之後傳送 (flag, M1, N2)

給 Reader 並將 flag 設為 1。接著,Reader 將接收到的 (flag, M1, N2)

附上 N2 並轉傳 (flag, M1, N1, N2) 給 Database。 步驟3: Database 以自身所儲存的 Kx_DB* 與 EPCx_DB* 計算 M1⊕PRNG(Kx_DB* ⊕N2) 與 EPCx_DB*∥N1∥N2∥CRC(EPCx_DB*∥N1∥N2),接著,逐一比 對此二值是否相等,若不相等則檢查下一筆資料。若所有資料皆不滿足 則保持沉默;否則表示 Database 成功認證 Tag,Database 產生亂數 N3 與 N4 以計算 M2 = (EPCx_DB∥N4∥CRC(EPCx_DB∥N4))⊕PRNG(Kx_DB

(23)

⊕N3),之後更新 Kx_DB = PRNG(Kx_DB⊕N4) 並將 (M2, N3, ObjectData)

傳送給 Reader。接著,Reader 將接收到的 (M2, N3) 轉傳給 Tag。

步驟4: Tag 以自身所儲存的 Kx 計算 M2⊕PRNG(Kx⊕N3) 以擷取出 N4,接著

,計算 EPCx∥N4∥CRC(EPCx∥N4) 並與 M2⊕PRNG(Kx⊕N3) 比對是

否相等。若不相等則表示認證 Database 失敗,Tag 保持沉默;否則, 表示 Tag 成功認證 Database 並更新 Kx = PRNG(Kx⊕N4) 且將 flag

設為 0。 Lo-Yeh 協定之 Case 1 運作流程如 (圖3-1) 所示。 < flag, Kx, EPCx > 2. 產生 N2 並計算 M1 = (EPCx∥N1∥N2∥CRC(EPCx∥ N1∥N2))⊕PRNG(Kx⊕N2) 設 flag = 1 < Kx_DB, EPCx_DB, ObjectData > 圖 3-1:Lo-Yeh 協定 (Case 1) 1. 產生 N1 Reader Tag Database 3. 計算 M1⊕PRNG(Kx_DB*⊕N2) EPCx_DB*∥N1∥N2∥CRC(EPCx_DB*∥ N1∥N2) 若此二值不相等則比對下筆資料,若皆 不滿足則保持沉默;反之,則產生 N3 與 N4 並計算 M2 = (EPCx_DB∥N4∥CRC(EPCx_DB∥ N4))⊕PRNG(Kx_DB⊕N3) 更新 Kx_DB = PRNG(Kx_DB⊕N4) 4. 從 M2⊕PRNG(Kx⊕N3) 擷取出 N4 並計算 EPCx∥N4∥CRC(EPCx∥N4) 若 M2⊕PRNG(Kx⊕N3) ≠ EPCx∥N4 ∥CRC(EPCx∥N4) 則保持沉默;反 之,則通過認證並更新 Kx = PRNG( Kx⊕N4),設 flag = 0。 M2, N3, ObjectData flag, M1, N2 flag, M1, N1, N2 N1 M2, N3

(24)

Lo-Yeh 協定步驟協定步驟協定步驟 (Case 2) 協定步驟

步驟1: Reader 產生亂數 N1 並將 N1 傳送給 Tag。

步驟2: Tag 產生亂數 N2 並以自身所儲存的 Kx 與 EPCx 計算 M1 = (EPCx∥

Kx∥N1∥N2∥CRC(EPCx∥Kx∥N1∥N2))⊕PRNG(EPCx⊕N2) 並 傳 送

(flag, M1, N2) 給 Reader。 Reader 再 把 (flag, M1, N1, N2) 傳 送 給

Database。

步驟3: Database 以自身所儲存的 Kx_DB* 與 EPCx_DB* 計算 EPCx∥Kx∥N1∥

N2∥CRC(EPCx∥Kx∥N1∥N2) = M1⊕PRNG(EPCx_DB*⊕N2) , 若 EPCx_DB* ≠ EPCx 則比對下筆資料。若所有資料皆不滿足則保持沉默;否 則表示 Database 成功認證 Tag 並產生亂數 N3 與 N4 以計算 M2 = (EPCx_DB∥N4∥CRC(EPCx_DB∥N4))⊕PRNG(Kx⊕N3),之後更新 Kx_DB = PRNG(Kx⊕N4) 並將 (M2, N3, ObjectData) 傳送給 Reader。接著,Reader 將 (M2, N3) 轉傳給 Tag。 步驟4: Tag 以自身所儲存的 Kx 計算 M2⊕PRNG(Kx⊕N3) 擷取出 N4,接著, 計算 EPCx∥N4∥CRC(EPCx∥N4) 並與 M2⊕PRNG(Kx⊕N3) 比對是否 相等。若不相等則表示認證 Database 失敗,Tag 保持沉默;否則,表 示 Tag 認證 Database 成功並更新 Kx = PRNG(Kx⊕N4) 且將 flag 設

(25)

Lo-Yeh 協定運作流程如 (圖3-2) 所示。

3.1.2 Lo-Yeh 協定之弱點

協定之弱點

協定之弱點

協定之弱點

Lo 與 Yeh 宣稱他們的協定可以抵擋位置追蹤攻擊、重送攻擊與阻斷服務攻擊,然 而,我們發現 Lo-Yeh 協定無法抵擋破解 EPC 攻擊、位置追蹤攻擊與假冒攻擊,茲將 攻擊方法描述如下: 圖 3-2:Lo-Yeh 協定 (Case 2) < flag, Kx, EPCx > < Kx_DB, EPCx_DB, ObjectData > 1. 產生 N1 Reader Tag Database M2, N3, ObjectData flag, M1, N2 flag, M1, N1, N2 N1 M2, N3 2. 產生 N2 並計算 M1 = (EPCx∥Kx∥N1∥N2∥CRC( EPCx∥Kx∥N1∥N2))⊕PRNG( EPCx⊕N2) 3. 計算 EPCx∥Kx∥N1∥N2∥CRC(EPCx∥Kx ∥N1∥N2) = M1⊕ PRNG (EPCx_DB*⊕ N2) 若 EPCx_DB* ≠ EPCx則比對下筆資料, 若皆不滿足則保持沉默;反之,則產生 N3 與 N4 並計算 M2 = (EPCx_DB∥N4∥CRC(EPCx_DB∥ N4))⊕PRNG(Kx⊕N3) 更新 Kx_DB = PRNG(Kx⊕N4) 4. 從 M2⊕PRNG(Kx⊕N3) 擷取出 N4 並計算 EPCx∥N4∥CRC(EPCx∥N4) 若 M2⊕PRNG(Kx⊕N3) ≠ EPCx∥N4 ∥CRC(EPCx∥N4) 則保持沉默;反 之,則通過認證並更新 Kx = PRNG (Kx⊕N4),設 flag = 0。 註:虛線內為與 Case 1 不同之處

(26)

破解 破解破解

破解 EPC 攻擊攻擊攻擊 攻擊

以下,我們將說明 Lo-Yeh 協定 (包括 Case 1 與 Case 2) 均無法抵擋破解 EPC 攻擊。在 Case 1 中,攻擊者首先藉著竊聽步驟 1 與步驟 2 以得到 N1、N2 與 M1 =

(EPCx∥N1∥N2∥CRC(EPCx∥N1∥N2))⊕PRNG(Kx⊕N2)。根據位元填充機制可知 M1

的前 96 位元等於 EPCx 與六個 16-bit 的 PRNG(Kx⊕N2) 作 XOR 運算的結果,而接

續的 16 位元為 N1 與一個 16-bit 的 PRNG(Kx⊕N2) 作 XOR 運算的結果,故攻擊者

可使用竊得的 N1 自 M1 的第 97 位元到第 112 位元擷取出 16-bit 的 PRNG(Kx⊕N2)

,再以六個 16-bit 的 PRNG(Kx⊕N2) 自 M1 的前 96 位元擷取出 96-bit 的 EPCx,如

(圖3-3) 所示。此外,在 Case 2 中,攻擊者亦可藉著竊聽步驟 1 與步驟 2 以得到 N1

、N2 與 M1 = (EPCx∥Kx∥N1∥N2∥CRC(EPCx∥Kx∥N1∥N2))⊕PRNG(EPCx⊕N2),並

使 用 竊 得 的 N1 自 M1 的 第 113 位 元 到 第 128 位 元 擷 取 出 16-bit 的

PRNG(EPCx⊕N2),接著,便可以六個 16-bit 的 PRNG(EPCx⊕N2) 自 M1 的前 96 位

元擷取出 96-bit 的 EPCx。

位置追蹤 位置追蹤位置追蹤 位置追蹤攻擊攻擊攻擊攻擊

攻擊者完成前述之破解 EPC 攻擊後,便可獲得該 Tag 的 EPCx 以進行位置追蹤

⊕ PRNG(Kx⊕N2) ... PRNG(Kx⊕N2) EPC N1 N2 CRC(EPCx∥N1∥N2) M1 = 圖 3-3:M1 位元長度示意圖 (Case 1) 96 16 16 16 16 16 144 144

(27)

攻擊。在 Case 1 中,攻擊者首先假冒 Reader 產生亂數 N1′ 並傳送給 Tag。接著,Tag

執行步驟 2 並回傳 (flag, M1, N2) 給攻擊者,而攻擊者完全不回應以確保 Tag 將 flag

設為 1 並結束此次認證。之後,Tag 進入 Case 2,攻擊者再次假冒 Reader 產生亂數

N1′′ 並傳送給 Tag。Tag 產生亂數 N2 並計算 M1′′ = (EPCx∥Kx∥N1′′∥N2∥CRC(EPCx

∥Kx∥N1′′∥N2))⊕PRNG(EPCx⊕N2) 並傳送 (flag, M1′′, N2) 給攻擊者,攻擊者便可利

用獲得的 EPCx 計算 PRNG(EPCx⊕N2) 並從 M1′′ 擷取出 Kx。此後,攻擊者便可利用

得到的 EPCx 與 Kx 進行位置追蹤攻擊 (包括 Case 1 與 Case 2)。在 Case 1 中,攻擊

者 可 藉 由 竊 聽 步 驟 1 與 步 驟 2 以 獲 得 N1、 N2 與 M1 = (EPCx∥N1∥N2∥

CRC(EPCx∥N1∥N2))⊕PRNG(Kx⊕N2),接著,可計算 PRNG(Kx⊕N2) 並從 M1 擷取出

EPCx 以成功追蹤該 Tag。而在 Case 2 中,攻擊者可藉由竊聽步驟 1 與步驟 2 得到

N1、N2 與 M1 = (EPCx∥Kx∥N1∥N2∥CRC(EPCx∥Kx∥N1∥N2))⊕PRNG(EPCx⊕N2),

之後便可計算 PRNG(EPCx⊕N2) 並從 M1 擷取出 EPCx 以成功追蹤該 Tag。另外,即

使該 Tag 被合法 Database 更新 Kx,Lo-Yeh 協定仍無法抵擋位置追蹤攻擊。

假冒攻擊 假冒攻擊假冒攻擊 假冒攻擊

攻擊者完成前述之破解 EPC 攻擊後,便可獲得該 Tag 的 EPCx 以進行假冒 Tag

通過 Database 認證及假冒 Database 通過 Tag 認證 (包括 Case 1 與 Case 2)。攻擊者 可透過兩個方法以假冒 Tag 通過 Database 認證:(方法一) 攻擊者利用獲得的 EPCx

與前述位置追蹤攻擊所得到的 Kx 來進行攻擊,因攻擊者已獲得該 Tag 內的秘密資訊

(28)

Reader 產生亂數 N1 並將 N1 傳送給攻擊者時,攻擊者產生自己的 N2′、Kx′ 並使用得

到 的 EPCx 計 算 M1′ = (EPCx∥Kx′∥N1∥N2′∥CRC(EPCx∥Kx′∥N1∥N2′))⊕

PRNG(EPCx⊕ N2′) 再傳送 (flag = 1, M1′, N2′) 給 Reader。Reader 再把 (flag = 1, M1′, N1,

N2′) 傳送給 Database。由於 flag = 1,Database 將執行 Case 2 之步驟 3 並成功認證攻

擊者且更新 Kx_DB = PRNG(Kx′⊕N4)。因此,攻擊者可成功使用自己的 N2′ 與 Kx′ 來假

冒 Tag 通過 Database 認證。而攻擊者假冒 Database 通過 Tag 認證 (包括 Case 1 與

Case 2) 的方法如下:攻擊者假冒 Reader 產生亂數 N1′ 並將 N1′ 傳送給 Tag,接著,

Tag 執行步驟 2 後將 (flag, M1, N2) 傳送給攻擊者。無論 flag = 0 或 flag = 1,攻擊者

皆產生亂數 N3′ 與 N4′ 並使用得到的 EPCx 與藉由前述位置追蹤攻擊所得到的 Kx 計

算 M2′ = (EPCx∥N4′∥CRC( EPCx∥N4′))⊕PRNG(Kx⊕N3′),之後更新 Kx = PRNG(Kx⊕

N4′) 並傳送 (M2′, N3′) 給 Tag。接著,Tag 先計算 M2′⊕PRNG(Kx⊕N3′) 擷取出 N4′

,再計算 EPCx∥N4′∥CRC(EPCx∥N4′) 並成功比對 M2′⊕PRNG(Kx⊕N3′),最後,Tag

更新 Kx = PRNG(Kx⊕N4′) 並完成此次認證。因此,攻擊者可成功假冒 Database 通過

Tag 認證。

3.2 SRP 之安全

之安全

之安全性

之安全

性分析

分析

分析

分析

Yeh等人 [Yeh10] 在 2010 年針對 Chien-Chen 協定 [Chien07] 提出另一套改良

且符合 EPC-C1G2 之 RFID 身分認證改進協定,在此簡稱為 SRP,並不使用 CRC 運 算函數以避免其線性特性暴露秘密資訊。該協定宣稱符合隱私性、可抵擋阻斷服務攻擊 、保證前饋安全與具有較 Chien-Chen 協定更好的效率,故該作者宣稱其協定可應用於

(29)

高安全需求之環境。然而,我們發現 SRP 具有將導致協定無法正常運作的錯誤初始存 取設定之問題,且無法抵擋位置追蹤攻擊、猜測攻擊、去同步攻擊與假冒攻擊。在本節 中我們將先簡要介紹 SRP,之後敘述其錯誤初始存取設定的問題並分析其弱點。SRP 所 使用之符號定義請見 (表3-2)。

3.2.1 SRP 簡介

簡介

簡介

簡介

在此協定中,Tag 內儲存 (Ki, Pi, Ci, EPCs),Reader 內儲存 RID 並提供雜湊運算

但主要為讀取 Tag 資料並傳送給 Database 或接收 Database 的資料後傳送給 Tag,

Database 儲存 (Kold, Knew, Pold, Pnew, Cold, Cnew, EPCs, DATA, RID)。在初始階段中,

Database 產生亂數 K0 與 P0 並將 Tag 儲存的值設為 Ki = K0、Pi = P0 及 Ci = 0,

表 3-2:SRP 之符號說明

符號 符號表示

RID Reader 的識別碼 (16-bit)

EPCs 將 96-bit EPC 切成六個子值再相互作 XOR 產生的值 (16-bit)

Ki Tag 的認證金鑰 (16-bit)

Kold, Knew Database 儲存的 Tag 認證金鑰,KX = Kold 或 Knew (16-bit)

Pi Tag 的存取金鑰 (16-bit)

Pold, Pnew Database 儲存的 Tag 存取金鑰,PX = Pold 或 Pnew (16-bit)

Ci Tag 的索引標籤值 (16-bit)

Cold, Cnew Database 儲存的 Tag 索引標籤值,CX = Cold 或 Cnew (16-bit)

NR, NT 隨機亂數(16-bit)

⊕ XOR 運算

H() 雜湊運算

DATA Tag 的資訊

CRC 16-bit 循環冗餘檢查碼 (cyclic redundancy check)

(30)

Database 儲存的值則設為 Kold = Knew = K0、Pold = Pnew = P0 及 Cold = Cnew = 0。此外,協

定中假設 Database 與 Reader 之間的傳輸通道為安全通道 (secure channel)。

SRP 的步驟的步驟的步驟的步驟 步驟1: Reader 產生亂數 NR 並將 NR 傳送給 Tag。 步驟2: Tag 產生亂數 NT 並以自身所儲存的 Ki、Pi、Ci 與 EPCs 計算 M1 = PRNG(EPCs⊕NR)⊕Ki D = NT⊕Ki E = NT⊕PRNG(Ci⊕Ki) 並傳送 (Ci, M1, D, E) 給 Reader。 步驟3: Reader 收到 (Ci, M1, D, E) 後,計算 V = H(RID⊕NR) 並傳送 (Ci, M1, D, E, NR, V) 給 Database。 步驟4: (1) Database 利用自身的 RID* 與收到的 N R 計算 V* = H(RID*⊕NR),若 V* ≠ V 則比對下筆資料。若所有資料皆不滿足則保持沉默。 (2) Case 1:Ci = 0 (初始狀態)

Database 以自身所儲存的 Knew*、Kold* 與 EPCs* 計算

Iold* = M1⊕Kold*

(31)

PRNG(EPCs*⊕NR)

接著,逐一比對是否 Iold* 或 Inew* 與 PRNG(EPCs*⊕NR) 相等。

若 Iold* = PRNG(EPCs*⊕NR) , 則 X 設 為 “old” ; 若 Inew* =

PRNG(EPCs*⊕NR),則 X 設為 “new”。若皆不滿足則保持沉默。

Case 2:Ci ≠ 0

Database 利用自身所儲存的 Cold* 及 Cnew* 逐一比對是否與 Ci

相等。若 Ci = Cold* 則 X 設為 “old”;若 Ci = Cnew*,則 X 設為

“new”。若所有資料皆不滿足則保持沉默。接著,Database 依據 X 的值計算 M1* = PRNG(EPCs⊕NR)⊕KX。若 M1* 與收到的 M1 不相等,則保持沉默。 (3) Database 接著依據 X 來計算 NT = D⊕KX E* = NT⊕PRNG(CX⊕KX) 若 E* 與收到的 E 不相等,則保持沉默;否則表示 Database 成功認 證 Tag 並計算 M2 = PRNG(EPCs⊕NT)⊕PX Info* = (DATA⊕RID*) 並傳送 (M2, Info*

) 給 Reader。接著,若 X = new 則 Database 更新 Kold ← Knew ← PRNG(Knew)

(32)

Pold ← Pnew ← PRNG(Pnew)

Cold ← Cnew ← PRNG(NT⊕NR)

反之,X = old 則 Database 僅更新

Cnew = PRNG(NR⊕NT)

步驟5: Reader 以自身所儲存的 RID 計算 DATA = Info*⊕RID。接著,Reader

將 M2 轉傳給 Tag。

步驟6: Tag 以自身儲存的EPCs計算

PRNG(EPCs⊕NT)* = M2⊕Pi

PRNG(EPCs⊕NT)

若 PRNG(EPCs⊕NT)* PRNG(EPCs⊕NT) 則保持沉默;否則表示 Tag

認證 Database 成功並更新

Ki+1 = PRNG(Ki)

Pi+1 = PRNG(Pi)

Ci+1 = PRNG(NT⊕NR)

(33)

3.2.2 SRP 之弱點

之弱點

之弱點

之弱點

Yeh等人宣稱 SRP 符合隱私性、可抵擋阻斷服務攻擊、保證前饋安全等優點且可 應用於高安全需求之環境。然而,我們發現 SRP 具有導致協定無法正常運作的錯誤存 取設定之問題,且無法抵擋位置追蹤攻擊、猜測攻擊、去同步攻擊與假冒攻擊。茲將錯 誤存取設定之問題與攻擊方法描述如下: < RID > 圖 3-4:SRP < Ki, Pi, Ci, EPCs > 1. 產生 NR Reader Tag Database M2, Info* Ci, M1, D, E Ci, M1, D, E, NR,V NR M2 2. 產生 NT 並計算 M1 = PRNG(EPCs♁NR)♁Ki D = NT♁K E = NT♁PRNG(Ci♁Ki) 4. (1) 計算 V* = H(RID*N R) 若 V* V 則比對下筆資料,則比對下筆 資料。若所有資料皆不滿足則保持沉默。 (2) Case 1:(Ci = 0) 計算 Iold* = M1⊕Kold Inew*=M1⊕Knew* PRNG(EPCs*⊕NR)

若 Iold* 或 Inew* 等於 PRNG( EPCs*⊕

NR),則 X 設為 “old” 或 “new”。若 皆不滿足則保持沉默。 Case 2:(Ci ≠ 0) 若 Cold* 或 Cnew* 等於 Ci,則 X 設為 “old” 或 “new”。若皆不滿足則保持沉 默。 (3) 計算 NT = D⊕KX E* = N T⊕PRNG(CX⊕KX) 若 E* E,則保持沉默;反之,則計算 M2 = PRNG(EPCs⊕NT)⊕PX Info* = (DATA⊕RID*) 若 X = new,更新

Kold ← Knew ← PRNG(Knew)

Pold ← Pnew ← PRNG(Pnew)

Cold ← Cnew ← PRNG(NT⊕NR) 若 X = old,更新 Cnew = PRNG(NR⊕NT) 6. 計算 PRNG(EPCs⊕NT)* = M2⊕Pi PRNG(EPCs⊕NT) 若此二值不相等則保持沉默; 反之,則通過認證並更新 Ki+1 = PRNG(Ki) Pi+1 = PRNG(Pi) Ci+1 = PRNG(NR⊕NT) 3. 計算 V = H(RID♁NR)

< Kold, Knew, Pold, Pnew, Cold,

Cnew, EPCs, DATA, RID >

5. 計算

(34)

錯誤 錯誤錯誤

錯誤初始初始初始存取初始存取存取存取設定設定設定設定

SRP 在正常運作時,將因 Database 存取 資料的順序而導致 Tag 自動去同步 (auto-desynchronization) 且再也無法認證,證明如下:根據初始階段的設定,Tag 儲存

的 Ki = K0、Pi = P0 及 Ci = 0,而 Database 儲存的 Kold = Knew = K0、Pold = Pnew = P0 及

Cold = Cnew = 0。第一次認證時,協定從步驟 1 執行到步驟 4 之 (2),Database 將執行

Case 1 (Ci = 0) 並計算 Iold* = M1⊕Kold*。 因 Database 先 存 取 Kold* 且 Iold* =

PRNG(EPCs*⊕NR),故 X 將設為 “old”。接著,Database 執行步驟 4 之 (3) 並更新

Cnew = PRNG(NR⊕NT)。在經過步驟 5 與步驟 6 後,Tag 將認證 Database 成功並更新

Ki+1 = PRNG(Ki) Pi+1 = PRNG(Pi) Ci+1 = PRNG(NT⊕NR) 往後第二次認證時,Reader 產生亂數 NR 並將 NR 傳送給 Tag。接著,Tag 產生亂數 NT 並計算 M1+ = PRNG(EPCs⊕NR)⊕Ki+1 D+ = NT⊕Ki E+ = NT⊕PRNG(Ci⊕Ki)

並傳送 (Ci+1, M1+, D+, E+) 給 Reader。經過步驟 3 到步驟 4 之 (2),Database 將執行

Case 1 (Ci ≠ 0)。因 Ci+1 = Cnew*,X 將設為 “new”。接著,Database 計算 M1* =

PRNG(EPCs⊕NR)⊕Knew。但 M1* 與收到的 M1+ 不相等,Database 將保持沉默。因此

(35)

Database 於步驟 4 之 (2) 中,將優先存取 Knew 以計算 Inew* = M1⊕Knew* 並 與 PRNG(EPCs*⊕NR) 比對,而非先存取 Kold 來計算比對,即可解決此錯誤存取設定的問 題。 位置追蹤攻擊 位置追蹤攻擊位置追蹤攻擊 位置追蹤攻擊 首先,攻擊者假冒 Reader 產生亂數 NR′ 並傳送給 Tag。接著,Tag 產生亂數 NT 並計算 M1′ = PRNG(EPCs⊕NR′)⊕Ki D = NT⊕Ki E = NT⊕PRNG(Ci⊕Ki) 之後,Tag 將 (Ci, M1′, D, E) 傳送給攻擊者,攻擊者將不予回應並結束此次認證程序。 之後,攻擊者再次假冒 Reader 重送同樣的亂數 NR′ 給 Tag。Tag 將產生新的亂數 NT+ Tag 並使用同樣的 Ki、Pi、Ci 與 EPCs 執行步驟 2,接著,回傳 (Ci, M1′, D+, E+) 給 攻擊者。之後,由於這次所得的 M1′ 與前次所收到的 M1′ 之計算結果皆相同,故攻擊 者可成功比對以達成位置追蹤攻擊。換言之,攻擊者僅傳送兩次同樣的亂數並使 Tag 無 法更新,便能得知欲追蹤之 Tag 在假冒 Reader 能存取資料的距離範圍內,藉以侵犯 Tag 擁有者的隱私。更嚴重的是即使之後該 Tag 更新其 Ki,攻擊者仍可成功攻擊。 猜測攻擊 猜測攻擊猜測攻擊 猜測攻擊 攻擊者先藉由竊聽以得到合法 Reader 與 Tag 之間所有傳輸的訊息:NR、(Ci, M1,

(36)

D, E) 與 M2。之後,攻擊者重送竊聽而來之亂數 NR 給 Tag。Tag 產生亂數 NT+ 並計 算 M1+ = PRNG(EPCs⊕NR)⊕Ki+1 D+ = NT+⊕Ki+1 E+ = NT+⊕PRNG(Ci+1⊕Ki+1) 之後回傳 (Ci+1, M1+, D+, E+) 給攻擊者,攻擊者便不予回應並結束此次認證。接著,攻 擊者將竊聽的 M1 與收到的 M1+ 作 XOR 並得到 K i⊕Ki+1。由於 Ki+1 = PRNG(Ki), 攻擊者假設變數 Ki′ 以及 Ki+1′ = PRNG(Ki′) 並針對 Ki 進行猜測。若 M1⊕M1+ = Ki′⊕Ki+1′ 則攻擊者猜測成功;反之,則攻擊者繼續嘗試並比對下一個 Ki′ 直到比對成 功。因 Ki 的長度為 16-bit,攻擊者至多猜測 65536 次即可猜測成功以獲得該 Tag 之 Ki。之後,攻擊者產生 NR′ = 000016 並將 NR′ 傳給 Tag,Tag 進行步驟 2 之運算後回

傳 (Ci+1, M1′, D′, E) 給攻擊者。因 NR′ = 000016,故 M1′ = PRNG(EPCs)⊕Ki+1,而攻擊

者便可使用得到的 Ki+1 = PRNG(Ki) 自 M1′ 擷取出 PRNG(EPCs)。接著,攻擊者同樣

針對 EPCs 進行猜測並與 PRNG(EPCs) 進行比對,若 PRNG(EPCs′) 與 PRNG(EPCs)

相等,則攻擊者猜測成功;反之,則攻擊者繼續嘗試並比對下一個 EPCs′ 直到比對成

功。因 EPCs 的長度同樣為 16-bit,攻擊者至多猜測 65536 次即可猜測成功並獲得

EPCs。由於攻擊者可取得 Tag 的秘密資訊 Ki 與 EPCs,故 SRP 無法抵擋猜測攻擊

去同步攻擊 去同步攻擊去同步攻擊 去同步攻擊

(37)

擊。當收到合法 Reader 傳來之 NR 時,攻擊者產生亂數 NT′ 並利用取得的 Ki、Ci 與 EPCs 計算 M1 = PRNG(EPCs⊕NR)⊕Ki D′ = NT′⊕Ki E′ = NT′⊕PRNG(Ci⊕Ki) 並傳送 (Ci, M1, D′, E′) 給 Reader。經過步驟 3 由 Reader 傳送 (Ci, M1, D′, E′, NR, V)

給 Database。接著,在步驟 4 中 Database 將執行 Case 2 並將 X 設為 “new” 且更 新

Kold ← Knew ← PRNG(Knew)

Pold ← Pnew ← PRNG(Pnew)

Cold ← Cnew ← PRNG(NT′⊕NR) 經過步驟 5 之後,攻擊者收到合法 Reader 傳送來的 M2。接著,攻擊者不驗證 Database 傳來之訊息而是計算 Pi = PRNG(EPCs⊕NT′)⊕M2 以擷取出 Pi,並直接更新 Ki+1 = PRNG(Ki) Pi+1 = PRNG(Pi) Ci+1 = PRNG(NT′⊕NR)

之後,攻擊者只要再次重複進行上述過程,即可將 Database 內合法 Tag 之 Kold、Pold 與

(38)

假冒攻擊 假冒攻擊假冒攻擊 假冒攻擊

攻擊者完成前述之猜測攻擊後,便可獲得該 Tag 的 Ki、Ci 與 EPCx 以進行假冒

Tag 通過 Database 認證;除此之外,攻擊者亦可透過前述之去同步攻擊所獲得的 Pi

已進行假冒 Database 通過 Tag 認證。首先為攻擊者嘗試假冒 Tag 通過 Database 認 證:攻擊者收到合法 Reader 傳來的 NR,攻擊者便利用取得的 Ki、Ci 與 EPCs 進行

步驟 2 之運算,並回傳 (Ci, M1, D, E) 給合法 Reader。經過步驟 3 與步驟 4 後,

Database 將成功認證 Tag。因此,攻擊者可成功假冒 Tag 通過 Database 認證。另外

,攻擊者嘗試假冒 Database 通過認證 Tag:攻擊者先產生亂數 NR′ 並傳送給 Tag。接

著,Tag 經過步驟 2 後回傳 (Ci, M1′, D, E) 給攻擊者。此時,攻擊者使用得到的 Ki 、Ci、Pi 與 EPCs計算 NT = D⊕Ki E* = NT⊕PRNG(Ci⊕Ki) 若 E* 與收到的 E 不相等,則保持沉默;否則表示攻擊者成功認證 Tag 並計算 M2 = PRNG(EPCs⊕NT)⊕Pi,並傳送 M2 給 Tag。接著,攻擊者更新 Ki ← Ki+1 ← PRNG(Knew) Pi ← Pi+1 ← PRNG(Pnew) Ci ← C+1 ← PRNG(NT⊕NR′) Tag 收到 M2 後進行步驟 6 之運算,最後,Tag 將成功認證攻擊者並更新 Ki+1 = PRNG(Ki) Pi+1 = PRNG(Pi)

(39)

Ci+1 = PRNG(NT⊕NR′)

(40)

第 四

四 章

EPC-C1G2 之

之微

微擴充架構與改良

擴充架構與改良

擴充架構與改良

擴充架構與改良的身分

的身分

的身分

的身分

認證改進協定

認證改進協定

認證改進協定

認證改進協定

根據第三章的分析結果,符合 EPC-C1G2 之 RFID 身分認證協定之安全性與

CRC (循環冗餘檢查碼;cyclic redundancy check) 及 PRNG (虛擬隨機亂數產生器; pseudo-random number generator) 有密切的關係。然而,CRC 主要用於檢測傳輸錯誤,

但在符合 EPC-C1G2 之 RFID 身分認證協定中卻常被用於產生訊息認證碼 (message

authentication code) 。 因 CRC 具 有 線 性 (linear) 特 性 , 與 一 般 密 碼 雜 湊 函 數 (cryptographic hash function) [FIPS08] 在安全性上有相當大的差異,不適當的使用將可

能導致秘密資訊洩漏 [Lopez09] [Yeh10]。另外,PRNG 主要用於產生亂數,但不適當 的使用將導致協定之安全性降低。在低成本的考量下,EPC-C1G2 限定僅能使用 16-bit

CRC 與 16-bit PRNG,然而,16-bit 長度之參數及運算函數已明顯不敷使用,如第三章

所述,Lo-Yeh 協定與 SRP 之部份弱點便可直接歸因於 16-bit CRC 與 16-bit PRNG 之長度不足。因此 , 為提高符合 EPC-C1G2 之 RFID 身分認證 協定之安全性,

EPC-C1G2 的規格需做必要的修改。在本章中,我們將提出一套改進協定 — 符合 EPC-C1G2* 之 RFID 身分認證改進協定,藉著增加 CRC 與 PRNG 的位元長度以提

高協定之安全性,為維持低運算成本的優點,改進協定中並未使用雜湊函數 (hash

(41)

(EPC cracking attack)、猜測攻擊 (guessing attack)、位置追蹤攻擊 (location tracking attack)

、假冒攻擊 (impersonation attack) 與去同步攻擊 (desynchronization attack)。在改進協定 中,Tag 與 Reader 之間之傳輸通道為一般通道 (insecure channel),而 Reader 與

Database 之間之傳輸通道為安全通道 (secure channel),皆符合 EPC-C2G2 之要求。

4.1 EPC-C1G2 之

之微

微擴充架

擴充架

擴充架構

擴充架

構—EPC-C1G2

*

在 2010年,歐洲 Aalborg 國際機場在行李管理上將原本使用的條碼系統全面替換 成使用 EPC-C1G2 的系統,並額外擴充約五倍的記憶體 [Wes10]。近年來,已有多家

RFID 公司可提供符合 EPC-C1G2 之擴充型產品 [Syn11] [Int11]。另外,如第三章所述

,Lo-Yeh 協定與 SRP 之部份弱點可直接歸因於 16-bit CRC 與 16-bit PRNG 之長度 不足。因此,為提高符合 EPC-C1G2 之 RFID 身分認證協定之安全性,且基於現有技 術之考量,我們認為提高協定中的參數與運算函數之位元長度具有一定的可行性。而在 我們的改進協定中,Tag 儲存的 EPC 與金鑰之長度皆為 96-bit,而運算函數 CRC 與

PRNG 亦使用 96-bit 之長度,藉以增加暴力攻擊 (brute-force attack) 的困難度。

4.2 符合

符合

符合 EPC-C1G2

符合

*

的身分認證改進協定

身分認證改進協定

身分認證改進協定

身分認證改進協定

Tag 內儲存 (flag, Ki, EPCi),Reader 負責讀取 Tag 資料並傳送給 Database 或接收

Database 的資料後傳送給 Tag,Database 則儲存 (Kold, Knew, EPCDB, Datai)。執行步驟可

分為 Case 1 與 Case 2 等兩種情形:若收到的 flag 值為 0,則執行 Case 1;反之,若 收到的 flag 值為 1,則執行 Case 2。此外,協定中假設 Database 與 Reader 之間的傳

(42)

輸通道為安全通道 (secure channel)。另外,改進協定所使用之參數及運算函數皆使用延 長的位元長度,符號定義請見 (表4-1)。 改進協定步驟 改進協定步驟改進協定步驟 改進協定步驟 (Case 1) 步驟1: Reader 產生亂數 NR 並將 NR 傳送給 Tag。 步驟2: Tag 產生亂數 NT 並以自身所儲存的 Ki 與 EPCi 計算 A = NT♁PRNG(Ki) ∆N = NR-NT M1 = EPCi♁PRNG(∆N)♁Ki

之後,Tag 傳送 (flag = 0, A, M1) 給 Reader 並將 flag 設為 1。接著,

Reader 將接收到的 (flag = 0, A, M1) 附上 NR 並轉傳 (flag, A, M1, NR)

給 Database。 表 4-1:符合 EPC-C1G2*

之 RFID 身分認證改進協定之符號說明

符號 符號表示

EPCi Tag 的電子產品碼 (96-bit)

EPCDB Database 儲存的電子產品碼 (96-bit)

Ki Tag 金鑰 (96-bit)

Kold, Knew Database 儲存的 Tag 金鑰 (96-bit),KX = Kold 或 Knew

NR, NT 隨機亂數 (96-bit)

flag 標籤值 (flag = 0 代表前次認證正常結束;flag = 1 代表前次

認證不正常結束)

Datai Tag 的資訊

♁ XOR 運算

CRC 96-bit 循環冗餘檢查碼 (cyclic redundancy check)

(43)

步驟3: Database 以自身所儲存的 Knew* 與 EPCDB* 計算 NT*= A♁PRNG(Knew*) ∆N* = NR-NT* EPCi* = M1♁PRNG(∆N*)♁Knew* 接著,逐一比對 EPCDB* 與 EPCi* 是否相等。若不相等則比對下筆資料 。若所有資料皆不滿足則保持沉默;否則表示 Database 成功認證 Tag 並計算 NT = NT* ∆N =∆N* Q = PRNG(NT)∥Knew Kold = Knew 之後,Database 產生新的亂數更新 Knew 以計算 M2 = Q♁(PRNG(∆N)∥Knew) B = CRC(∆N∥Knew)

Database 傳送 (M2, B, Datai) 給 Reader。而 Reader 將接收到的 (M2, B)

轉傳給 Tag。

步驟4: Tag 以自身所儲存的 Ki 計算

Q = PRNG(NT)∥Ki

PRNG(∆N)*∥Knew* = Q♁M2

接著,Tag 比對 PRNG(∆N) * 與 PRNG(∆N) 比對是否相等。若不相等

則表示認證 Database 失敗,Tag 保持沉默;否則,Tag 繼續計算 B*

(44)

CRC(∆N∥Knew*) 並與接收到的 B 比對。若不相等則表示認證 Database

失敗,Tag 保持沉默;否則,表示 Tag 成功認證 Database 並更新 Ki =

Knew* 且將 flag 設為 0。 符合 EPC-C1G2* 之 RFID 身分認證改進協定之 Case 1 如 (圖4-1) 所示。 改進協定步驟 改進協定步驟改進協定步驟 改進協定步驟 (Case 2) 步驟1: Reader 產生亂數 NR 並將 NR 傳送給 Tag。 圖 4-1:符合 EPC-C1G2* 之 RFID 身分認證改進協定 (Case 1) < flag, Ki, EPCi > 1. 產生 NR Reader Tag Database M2, B, Datai flag, A, M1 flag, A, M1, NR NR M2, B 2. 產生 NT 並計算 A = NT♁PRNG(Ki) ∆N = NR-NT M1 = EPCi♁PRNG(∆N)♁Ki 設 flag = 1 3. 計算 NT* = A♁PRNG(Knew*) ∆N* = NR-NT* EPCi* = M1♁PRNG(∆N*)♁Knew* 若 EPCi* ≠ EPCDB* 則比對下筆資料,若 皆不滿足則保持沉默;反之,則計算 NT = NT* ∆N =∆N* Q = PRNG(NT)∥Knew Kold = Knew 產生新的亂數更新 Knew 並計算 M2 = Q⊕(PRNG(∆N)∥Knew) B = CRC(∆N∥Knew)

< Kold, Knew, EPCDB, Datai >

4. 計算 Q = PRNG(NT)∥Ki PRNG(∆N)*∥K new* = Q♁M2 若 PRNG(∆N)* ≠ PRNG(∆N)則保 持沉默;反之,則計算 B* = CRC(∆N∥K new*) 若 B* B 則保持沉默;反之,則 通過認證並更新 Ki = Knew*,設 flag = 0。

(45)

步驟2: Tag 產生亂數 NT 並以自身所儲存的 Ki 與 EPCi 計算

A = NT♁PRNG(Ki)

∆N = NR-NT

M1 = EPCi♁PRNG(∆N)♁Ki

之後,Tag 傳送 (flag, A, M1) 給 Reader 並 將 flag 設 為 1 。 接 著 ,

Reader 將接收到的 (flag, A, M1) 附上 NR 並轉傳 (flag, A, M1, NR) 給

Database。

步驟3: Database 以自身所儲存的 Knew*、Kold*與 EPCDB* 計算

NT* = A♁PRNG(KX*)

∆N* = NR-NT*

EPCi* = M1♁PRNG(∆N*)♁KX*

接著,逐一比對 EPCDB* 與計算的 EPCi* 是否相等。若 EPCDB* = M1

♁PRNG(∆N*

)♁Kold*,則 X 設為 “old”;若 EPCDB* = M1♁PRNG(

∆N*)♁Knew*,則 X 設為 “new”。若不相等則比對下筆資料。若所有資 料皆不滿足則保持沉默;否則表示 Database 成功認證 Tag。接著,若 X = new 則計算 NT = NT* ∆N =∆N* Q = PRNG(NT)∥Knew Kold = Knew 之後,Database 產生新的亂數更新 Knew 以計算

(46)

M2 = Q♁(PRNG(∆N)∥Knew) B = CRC(∆N∥Knew) 另一方面,若 X = old 則計算 NT = NT* ∆N =∆N* Q = PRNG(NT)∥Kold 並且,Database 產生新的亂數更新 Knew 以計算 M2 = Q♁(PRNG(∆N)∥Knew) B = CRC(∆N∥Knew)

最後,Database 將傳送 (M2, B, Datai) 給 Reader。而 Reader 將接收到

的 (M2, B) 轉傳給 Tag。

步驟4: Tag 以自身所儲存的 Ki 計算

Q = PRNG(NT)∥Ki

PRNG(∆N)*∥Knew* = Q♁M2

接著,Tag 比對 PRNG(∆N) * 與 PRNG(∆N) 比對是否相等。若不相等

則表示認證 Database 失敗,Tag 保持沉默;否則,Tag 繼續計算 B*

= CRC(∆N∥Knew*) 並與接收到的 B 比對。若不相等則表示認證 Database

失敗,Tag 保持沉默;否則,表示 Tag 成功認證 Database 並更新 Ki =

Knew* 且將 flag 設為 0。

符合EPC-C1G2*

(47)

4.3 符合

符合

符合 EPC-C1G2

符合

*

之 RFID 身分認證改進協定

身分認證改進協定

身分認證改進協定

身分認證改進協定之安全性分析

之安全性分析

之安全性分析

之安全性分析

在本節中,我們將分析所提出的符合 EPC-C1G2* 之 RFID 身分認證改進協定針 對破解 EPC 攻擊、猜測攻擊、位置追蹤攻擊、假冒攻擊與去同步攻擊的防禦能力。 < flag, Ki, EPCi > 1. 產生 NR Reader Tag Database M2, B, Datai flag, A, M1 flag, A, M1, NR NR M2, B 2. 產生 NT 並計算 A = NT♁PRNG(Ki) ∆N = NR-NT M1 = EPCi♁PRNG(∆N)♁Ki 3. 計算 NT* = A♁PRNG(KX *) ∆N* = N R-NT* EPCi* = M1♁PRNG(∆N*)♁KX *

若 Kold * 或 Knew* 所計算之 EPCi* 等於

EPCDB*,則 X 設為 “old” 或 “new”。若皆

不滿足則保持沉默。 若 X = new,則計算 NT* = A♁PRNG(Knew*) ∆N* = N R-NT* EPCi* = M1♁PRNG(∆N*)♁Knew* 若 EPCi* ≠ EPCDB* 則比對下筆資料,若 皆不滿足則保持沉默;反之,則計算 NT = NT* ∆N =∆N* Q = PRNG(NT)∥Knew Kold = Knew 產生新的亂數更新 Knew 並計算 M2 = Q⊕(PRNG(∆N)∥Knew) B = CRC(∆N∥Knew) 若 X = old,則計算 NT = NT* ∆N =∆N* Q = PRNG(NT)∥Kold 產生新的亂數更新 Knew 並計算 M2 = Q⊕(PRNG(∆N)∥Knew) B = CRC(∆N∥Knew)

< Kold, Knew, EPCDB, Datai >

4. 計算 Q = PRNG(NT)∥Ki PRNG(∆N)*∥K new* = Q♁M2 若 PRNG(∆N)* ≠ PRNG(∆N)則保 持沉默;反之,則計算 B* = CRC(∆N∥K new*) 若 B* B 則保持沉默;反之,則 通過認證並更新 Ki = Knew*,設 flag = 0。 圖 4-2:符合 EPC-C1G2* 之 RFID 身分認證改進協定 (Case 2) 註:虛線內為與 Case 1 不同之處

(48)

破解 破解破解

破解 EPC 攻擊攻擊攻擊的防禦能力攻擊的防禦能力的防禦能力的防禦能力

改進協定須能確保傳輸訊息即使被竊取也無法獲得 Tag 的秘密資訊。在 Case 1 中 ,攻擊者可能先竊聽 Reader 與 Tag 之間於步驟 1 與步驟 2 中傳輸的訊息而得到 NR

、flag (=0)、A 與 M1。接著,攻擊者阻擋步驟 3 中 Reader 所回傳的值 (M2, B),使 Tag

無法更新 Ki 並結束此次認證。之後,攻擊者假冒 Reader 重送竊聽而來的 NR 給 Tag ,Tag 便產生亂數 NT+ 並以 Ki 與 EPCi 計算 A+ = NT+♁PRNG(Ki) ∆N+ = NR-NT+ M1+ = EPCi♁PRNG(∆N+)♁Ki 接著,Tag 回傳 (flag = 1, A+ , M1+) 給攻擊者。然而,攻擊者將 M1 與 M1+ 作 XOR 僅 能得到 PRNG(∆N)♁PRNG(∆N+ ) 而無法擷取出 EPCi 或 Ki。另一方面,在 Case 2 中 ,攻擊者可能先藉著竊聽 Reader 與 Tag 之間於步驟 1 與步驟 2 中傳輸的訊息而得 到 NR、flag (=1)、A 與 M1。接著,攻擊者阻擋步驟 3 中 Reader 所回傳的值 (M2, B)

,使 Tag 無法更新 Ki 並結束此次認證。之後,攻擊者再假冒 Reader 重送 NR 給 Tag

,並經過步驟 2 後攻擊者收到 Tag 回傳之 (flag = 1, A+

, M1+)。然而,攻擊者亦無法從

Tag 回傳之訊息擷取出 EPCi 或 Ki。另外,因改進協定 (包括 Case 1 與 Case 2) 僅有

步驟 2 之 M1 使用到 Tag 的秘密資訊 EPCi,故在有限的資訊之下攻擊者將無法成功

(49)

猜測攻擊 猜測攻擊猜測攻擊

猜測攻擊的防禦能力的防禦能力的防禦能力的防禦能力

在 Case 1 中,若攻擊者假冒 Reader 產生亂數 NR′ 並將 NR′ 傳送給 Tag,則 Tag

將產生亂數 NT′ 並回傳 (flag = 0, A′, M1′) 給攻擊者,接著,攻擊者不回應 Tag 並結束 此次認證。之後,攻擊者再次假冒 Reader 重送 NR′ 給 Tag,接著,Tag 將產生亂數 NT′′ 並回傳 (flag = 1, A′′, M1′′) 給攻擊者。此時,攻擊者計算 A′♁A′′= NT′♁NT′′ M1′♁M1′′ = PRNG(∆N′)♁PRNG(∆N′′) 並先針對 NT′ 與 NT′′ 進行猜測攻擊,若攻擊者猜到正確的 NT′,則可從接收到的 A′ 中擷取出 PRNG(Ki),進而將導致 Tag 的金鑰洩漏。然而,由於 NT′ 與 NT′′ 之長度 皆為 96-bit,攻擊者要同時猜中此二亂數在計算上不可行(computationally infeasible )。 另一方面,攻擊者可針對 ∆N′ 與 ∆N′′ 進行猜測攻擊,若攻擊者猜測成功則再使 Tag 無法更新 Ki 即可成功追蹤該 Tag。然而,由於 ∆N′ 與 ∆N′′ 之長度亦為 96-bit,攻 擊者要同時猜中此二亂數在計算上亦不可行。而在 Case 2 中的情形與在 Case 1 中類 似,故改進協定可抵擋猜測攻擊。 位置追蹤 位置追蹤位置追蹤 位置追蹤攻擊攻擊攻擊攻擊的防禦能力的防禦能力的防禦能力的防禦能力

在 Case 1 與 Case 2 中,攻擊者可採以下被動式 (passive) 與主動式 (active) 位 置追蹤攻擊:在被動式追蹤攻擊中,攻擊者可能企圖藉由竊聽傳輸訊息來追蹤 Tag。然 而,由於Tag 回傳給 Reader 之訊息 (flag, A, M1) 皆使用當次新產生之亂數 NT,而

(50)

Reader 之後傳給 Tag 之訊息 (M2, B) 亦使用當次新產生之金鑰 Knew,所以每次認證所

傳輸的訊息皆不相同,攻擊者無法藉由竊聽傳輸訊息以追蹤 Tag。因此,改進協定可抵 擋被動式位置追蹤攻擊。而在主動式追蹤攻擊中,攻擊者可能假冒 Reader 傳送自己產 生的亂數 NR′ 給 Tag,接著,攻擊者以 Tag 回傳的 (flag, A, M1) 當作追蹤的線索。然

而,因為 Tag 每次認證皆會產生新的亂數 NT,即使使用相同之 NR′ 所計算得到的 ∆N′

= NR′-NT 仍然不同,故攻擊者無法從 Tag 所回傳之訊息追蹤該 Tag。另一方面,攻

擊者亦可能阻擋 Reader 回傳給 Tag 之訊息 (M2, B) 並以此訊息當作追蹤的線索。然

而,儘管攻擊者使得 Tag 未更新 Ki,但 Database 在認證 Tag 時除了使用 Kold 之外

,亦會使用新產生的 Knew 以計算 M2。換言之,即使 Tag 持續使用同樣的 Ki 進行認 證,Database 所回傳之訊息 (M2, B) 亦不會相同,故攻擊者無法從 Reader 所回傳之訊 息追蹤該 Tag。因此,改進協定可抵擋主動式位置追蹤攻擊。 假冒攻擊 假冒攻擊假冒攻擊 假冒攻擊的防的防的防的防禦能力禦能力禦能力禦能力

在 Case 1 與 Case 2 中,攻擊者可能企圖假冒 Tag 通過 Database 的認證。起初 ,攻擊者假冒 Tag 並收到由 Reader 產生 NR,由於攻擊者無 Tag 之秘密資訊 EPCi 與

Ki,故僅能嘗試使用竊得之資訊 (flag, A, M1) 來回應 Reader。然而,由於計算 M1 所

使用的 PRNG(∆N) 並非使用此次 Reader 所產生之 NR,此驗證失敗將使得 Database

保持沉默。另外,即使攻擊者使用自己產生的亂數 NT′ 以計算 ∆N′ = NR-NT′,攻擊者

仍無法計算出可通過驗證的 A 與 M1 以回應 Reader。因此,攻擊者無法成功假冒 Tag

數據

圖 1-1 RFID 系統架構圖
表 3-1:Lo-Yeh  協定之符號說明
表 3-2:SRP  之符號說明
表 4-2:改進協定與同類協定之安全性比較表                        攻擊

參考文獻

相關文件

„ Be session information describing the media to be exchanged between the parties.. „ SDP, RFC 2327

[3] Haosong Gou, Hyo-cheol Jeong, and Younghwan Yoo, “A Bit collision detection based Query Tree protocol for anti-collision in RFID system,” Proceedings of the IEEE

[18] Jiho Ryu, Hojin Lee, Yongho Seok, Taekyoung Kwon and Yanghee Choi, “A Hybrid Query Tree Protocol for Tag Collision Arbitration in RFID systems,”,

Choi, “A Hybrid Query Tree Protocol for Tag Collision Arbitration in RFID systems”, IEEE International Conference on Communications (ICC-07), pp.24–28, 2007. Cole, “THE

Besides, we also classify the existing RFID protection mechanisms to solve the different personal privacy threats in our security threat model.. The flowchart of security threat

Through the help of this study, the inconvenient of insufficient information of biological pilot plant can be improved, the manufacture security can be promoted, and the

For the items of ―identity recognition‖ and ―education outreach‖, it can he improved by the promotion of public art education and make the life aesthetics take root in

在 EPC Radio-Frequency Identity Protocols Class-1 Generation-2 UHF RFID Protocol for Communications at 860MHz-960MHz Version 1.09 的規範之下,我們選定的 RFID