• 沒有找到結果。

中 華 大 學 碩 士 論 文

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學 碩 士 論 文"

Copied!
34
0
0

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

全文

(1)

中 華 大 學 碩 士 論 文

以時間為基礎的 RFID 加密傳輸演算法 A Time Based Encoding Algorithm towards

Secure RFID Transmission

系 所 別:資訊工程學系碩士班 學號姓名:M09702004 陳柏孙 指導教授:許慶賢 博士

中華民國 100 年 7 月

(2)

i

摘要

無線射頻辨識系統 RFID(Radio Frequency IDentification),主要是由 RFID Tag 以 及 RFID Reader 構成,RFID Reader 能夠利用無線電波讀取存在 Tag 中的數位資訊,

並加以識別。與傳統條碼相比,RFID Reader 不需要接觸就可以識別 Tag 資訊,因 此已經在各個應用系統中被採用,例如物流管理、門禁系統管理等等。

由於 RFID 系統採用無線電波來傳遞資料,任何人只要能夠監視無線電波傳輸 便可得知傳輸內容並用來刺探商業機密,或是利用攔截到的傳輸資訊複製出另一個 一模一樣的 RFID Tag 藉以躲避門禁檢查,因此如何保護傳輸內容,不被有心人士複 製或監視是一項重要的安全議題。

在這篇論文中,我們提出了一個加密傳輸資料的演算法,首先在 Tag 以及 Reader 中建立一個以特定公式產生的編碼表,當傳輸發生時,先利用經過 MD5 演 算法編碼過的 Unix Time 來查詢編碼表,再送到 Tag 進行驗證。Tag 收到資料後會 驗證資料是否正確,當驗證通過後 Tag 會與傳輸資料交互運算,最後送出加密過後 的訊息。由於時間只會往前前進,所以我們可以確保每次參與運算的 Unix Time 變 數都是獨一無二不會重複,如此一來攻擊者就沒有辦法藉由分析傳輸封包的方式來 監視傳輸內容,也沒有辦法複製 Tag。

關鍵詞:無線射頻辨識、傳輸協定、加密、安全

(3)

ii

Abstract

RFID(Radio Frequency IDentification) system is based on RFID tag and RFID reader.

The reader can read and identify the data from tags by using radio frequency technology.

Compared with traditional barcode, the reader can identify without contact to the tag, therefore it has been used in various system, such as supply chain management system, entrance control system, etc.

Because the RFID system use radio wave to transmit data, anyone can monitor the transmission of radio wave to get transmit content, or they can duplicate another tag by using the transmit data to cheat the entrance control system. Consequently, to protect the transmit data from duplicating or monitoring has become an important secure issue.

In this thesis, we proposed a time based data encoding algorithm to prevent transmit data from monitoring or duplicating. First, we create a specific encoding table which generated by expression, and we put the encoding table into the reader and the tag. When transmission initiate, we will use the MD5 to encode Unix time and query the encoding table by using encoded Unix Time, then send the result to the tag. The tag will verify the data to ensure it was sent by the trust reader, and send back the tag data by doing some expression if the reader can be trust. As time will only move forward, so we can ensure that Unix time is unique and won't repeat. In this way, the attacker can't monitor transmit data or duplicate the tag.

Keywords: RFID, transmission protocol, encoding, security

(4)

iii

致謝

首先我要誠摯的感謝指導教授許慶賢博士,從大學三年級的專題實習以來到現 在碩士班,教授帶領完全不懂 RFID 的我一路學習,直到現在有這個能力能夠了解 RFID 衍伸的相關研究與技術。在學習的過程中,教授會在我提出自己的想法時,加 入教授過往所學以及累積的經驗,不斷補足加強我的想法與觀念,使我能夠順利完 成相關研究。除此了學術的領域之外,我也從教授的身上學到對任何事要保持嚴謹 的態度以及細心的精神,這樣的態度與精神讓我在面對未來的人生能夠讓我受益無 窮。

再來我要感謝的是我的女朋友,感謝妳能夠體諒在我最忙碌的時候沒有辦法陪 妳出門走走。

最後我要感謝的是我的家人,有了你們的全力支持,才能讓我無後顧之憂地完 成我的論文。

(5)

iv

目錄

摘要 ... i

Abstract ... ii

致謝 ... iii

目錄 ... iv

表目錄 ... v

圖目錄 ... vi

第一章 緒論 ... 1

1.1. 研究動機 ... 1

1.2. 研究目的 ... 2

1.3. 論文架構 ... 3

第二章 相關技術與研究 ... 4

第三章 以時間為基礎的 RFID 加密傳輸演算法 ... 9

3.1. Unix Time ... 9

3.2. MD5 演算法 ... 10

3.3. 編碼表 ... 10

3.4. TBE 演算法 ... 11

3.5. 例子 ... 14

第四章 實驗與分析 ... 19

第五章 結論與未來研究方向 ... 23

References ... 24

(6)

v

表目錄

表一:16 進位 Tag ID 長度為 2 的編碼表 ... 15

表二:16 進位 Tag ID 長度為 4 的編碼表 ... 17

表三:取固定字元計算 MD5 加密後 Unix Time 的字元重複率 ... 19

表四:取固定 Tag ID 長度進行 TBE 計算 ... 20

表五:相關研究的安全性比較表 ... 21

(7)

vi

圖目錄

圖一:RFID 環境中存在著竊聽者的情形 ... 2

圖二:RFID 環境中的 hidden terminal 問題 ... 4

圖三:Hack Lock 方法 ... 6

圖四:Randomized Hash Lock 方法 ... 7

圖五:Hash-based Authentication of “Good Reader”方法 ... 8

圖六:An improved security solution 方法 ... 8

圖七:編碼表產生方式的 Pseudo Code ... 11

圖八:TBE 流程圖 ... 12

(8)

1

第一章 緒論

1.1. 研究動機

RFID 是 Radio Frequency Identification 的縮寫,是利用 IC 以及無線電波來存放 以及傳遞儲存在 RFID Tag 之中的資料。與傳統條碼相比,RFID 具有長距離讀取、

可程式化、可存放大量資料、可重複讀寫資料,在範圍內可以同時讀取大量標籤等 優勢,因此 RFID 已經在各種應用系統中廣泛被採用,如醫療服務、物流管理、門 禁管理、大眾運輸以及定位系統等等。

完整的 RFID 系統包含了 RFID Reader、RFID Tag 以及系統整合應用軟體 Middleware[19],基本的工作原理是由內建天線的 Reader 發送特定頻率的無線電波 給 Tag,當 Tag 收到無線電波之後就會驅動內建的硬體電路,將 Tag 內部的資料傳 回 Reader,而 Reader 在收到資料之後再將資料傳回 Middleware 做進一步處理與管 理。

RFID 系統針對 Tag 的供電方式分為主動式、半被動式以及被動式三種類型;主 動式 Tag 本身內建電源供應,可以將本身資訊主動傳給 Reader,並且供應電源給內 部數位電路使用;半被動式 Tag 本身雖然內建電源,但是電源僅供應給內部數位電 路使用,因此無法主動將 Tag 本身資訊主動傳給 Reader;被動式 Tag 本身沒有內建 電源,Reader 必頇要發送無線電波才能從被動式 Tag 取得資訊,不過由於被動式標 籤除了 IC 外,大多沒有複雜的內部電路,因此體積可以做到相當輕薄,相當多的物 流盤點系統都會採用被動式標籤作為解決方案。

(9)

2

1.2. 研究目的

由於 RFID 帶來的方便性,越來越多的應用系統都採用 RFID 系統作為解決方案,

相對的也帶來了一些安全以及隱私方面的問題。例如在倉儲管理系統中,Tag 可以 存放商品的詳細資料以及數量,如果競爭對手能夠獲得這些資訊將會為公司帶來不 利的影響。由於 RFID 系統中沒有任何的安全加密機制,競爭對手只要利用一台 Reader 便可以得知所有 Tag 的產品資訊,進而造成商業機密外洩。在前面章節提到 RFID 是透過 Reader 發送無線電波來取得存放在 Tag 之中的資訊,因此竊聽者只要 在 Reader 以及 Tag 的感應範圍中置入一台 Reader 便可以取得 Reader 與 Tag 之間的 所有傳輸封包,再根據這些資訊來擬訂新的銷售策略。圖一顯示在一個 RFID 環境 中存在著竊聽者的情形。

圖一:RFID 環境中存在著竊聽者的情形

過去保護 Reader 與 Tag 資料傳輸的許多相關研究中,都會假設 Reader 與 Tag 之間傳輸的任何封包都不會被竊聽者擷取,而且在 Reader 取得 Tag 的驗證之後就再 也沒有針對傳輸封包作加密的動作,所以攻擊者仍然能夠針對之後的封包做擷取以 及分析。這篇論文所提出的就是一個完整的加密傳輸解決方案,不僅能夠提供 Tag 驗證 Reader 的機制,還能夠保護 Tag 傳輸的資料不被截取分析。

(10)

3

1.3. 論文架構

本篇論文內容共分為六個章節,其各章節簡述如下:在第二章裡,針對一些安 全隱私方面的研究做一些說明,並介紹現有演算法的流程以及缺點。第三章裡,將 說明我們所提出的以時間為基礎的傳輸編碼技術原理,並提出一些例子來說明。並 在第四章裡,使用 RFID 模擬環境來比較以時間為基礎的傳輸編碼技術的保護效能,

並分析安全方面的成效。最後,在第五章裡,將整個研究結果做一個整理總結。

(11)

4

第二章

相關技術與研究

由於 RFID 技術的普及,近年來有許多 RFID 相關的技術研究陸續被發表出來,

主要的議題有防碰撞、應用以及安全等類型。對於 RFID 防碰撞的研究中,主要分 為 Reader 以及 Tag 兩個方面;在一個 RFID 環境中,如果兩個 Reader 的訊號範圍會 互相干擾,就會產生 hidden terminal[3、4]而無法正確識別標籤的問題。圖二顯示的 是在 RFID 環境中兩台 Reader 感應範圍覆蓋所產生的 hidden terminal 問題。

圖二:RFID 環境中的 hidden terminal 問題

Tag 的防碰撞技術方面,由於 Reader 一次只能夠讀取一個 Tag 資訊,當有一個 以上的 Tag 回應 Reader 訊號時,Reader 就無法正確判讀出 Tag 資訊。因此,

ALOHA-based[5、6、7、8]演算法以及 Tree-based[9、10、11、12]演算法就是用來 解決 Tag 碰撞的問題。

在 RFID 相關應用裡,其中一項是定位系統的應用;由於 RFID 是透過無線電波 傳輸訊號,所以 Reader 可以藉由 Tag 回傳的訊號強弱度來判斷 Tag 的遠近,若再結

(12)

5

合多個 Reader 便可以得知 Tag 的位置。利用多個 Reader 來定位 Tag 的相關技術包 含判斷訊號強度的 Received Signal Strength[13],利用 Tag 與 Reader 傳輸時間差的 Time of Arrival 以及 Time Difference of Arrival,還有利用內建指向性天線的 Reader 來完成的 Angle of Arrival[14]都是定位系統中常被用到的技術。另外近年來在 RFID 標籤的快速統計[20]、物流管理[21]以及國防管理[22]上面的相關技術應用也是越來 越多。

在普通的 RFID 環境中,Reader 與 Tag 之間的傳輸依賴的是無線電波,當 Tag 進入到 Reader 的無線電波感應範圍,便會將 Tag 本身的資訊透過無線電波傳給 Reader。無線電波的特性是只要頻率相同,任何人都可以接收到相同的資料,因此 在這個傳輸過程中如果有另外一台 Reader 的存在,便可以完完整整的將傳輸封包記 錄下來,如果這個 RFID 環境是應用在是一個倉儲系統中,竊聽者便可利用記錄下 來的資料分析廠商貨物的庫存量;如果這個 RFID 是應用在門禁系統中,竊聽者便 可以根據 Reader 與 Tag 傳輸的資訊複製一張一模一樣的 Tag 來騙過門禁系統。另外 由於每張 Tag 都有一個獨一無二的 ID,竊聽者可以根據 ID 資料來追蹤 Tag 的流向,

而造成安全以及隱私的問題。

為了解決 RFID 系統中的安全性問題,許多方法以及研究都已經被發表出來[23、

24、25],例如目前已被大量採用,由 EPCglobal 組織所制定的 EPC Class 1 Gen 2 RFID 標籤[15]就內建了兩個安全防護機制,分別是 Access Password 以及 Kill Command 方法;當啟用 Access Password 後,Reader 向 Tag 發出詢問時必頇加上密 碼,Tag 收到密碼之後會跟自己內部已經設定好的 Access Password 作比對,在密碼 正確的情況下 Tag 才會回應 Reader 的訊息,Access Password 可以避免未經授權的 Reader 存取,但仍然無法解決 Tag 被追蹤的問題,且固定的 Access Password 一樣會 有被破解的危機;另外當 Tag 接收到 Kill command 之後,就會令其本身永久失效,

(13)

6

不再接收任何 Reader 傳來的訊息,如此一來可以防止 Tag 本身被追蹤,但缺點就是 Tag 就無法回收再次利用了。

有學者提出 Hash Lock[16]的保護機制,如圖三。在 Hash Lock 的方法中,

Reader 會先發送 Query 指令要求查詢範圍內的 Tag,Tag 收到後就會傳回 Tag 記憶 體中的 Meta ID,當 Reader 收到 Meta ID 後會透過資料庫查詢該 Meta ID 所對應的 Key,查詢到對應的 Key 之後再將 Key 傳給 Tag 驗證,當 Tag 驗證通過後便會將 ID 傳回 Reader,完成一次訊息傳輸。由於 Meta ID 是固定不變的,所以很容易就能夠 追蹤到 Tag 的流向,另外在每次傳輸過程中,Reader 以及 Tag 之間的傳輸訊息都是 一樣的,因此也很有可能會遭到封包重送攻擊,造成訊息不一致。

圖三:Hack Lock 方法

為了解決 Tag 可能被追蹤的問題,有學者提出 Randomized Hash Lock[16]的方 法,如圖四。在 Randomized Hash Lock 的方法中,Reader 會先發送 Query 指令要求 查詢範圍內的 Tag,Tag 收到後會隨機產生一個亂數 R,然後將本身的 Tag ID 跟亂 數 R 透過一個雜湊函數混和再一起,最後將亂數 R 以及雜湊函數的結果一起傳回 Reader,Reader 收到回應之後會向資料庫取得所有的 Tag ID 做運算,當代入亂數 R 以及 Tag ID 的運算結果符合 Tag 傳來的值時就代表這組 Tag ID 是正確的,此時再 將正確的 Tag ID 傳給 Tag 取得 Tag 的驗證。使用此方法的缺點就是資料庫與 Reader

(14)

7

傳輸的負荷相當的大,另外攻擊者有可能藉由監聽封包傳輸後,偽造會發出相同訊 息的 Tag 來達到欺騙 RFID 系統的目的。

圖四:Randomized Hash Lock 方法

另外有學者提出 Hash-based Authentication of “Good Reader”[17]的方法,如圖五。

在此方法中,每個 Tag 的記憶體裡面都會儲存一台 Reader 的 ID,Tag 只會固定該台 Reader 通訊,不回應其他 Reader 所傳來的訊息。在傳輸過程中 Reader 會先發送 Query 指令要求查詢範圍內的 Tag,Tag 收到後會隨機產生一個亂數 k,與 Tag 記憶 體儲存的 Reader ID 透過雜湊函式組合在一起,並且將 k 傳回 Reader,Reader 收到 k 之後會透過後端資料庫計算相同的雜湊函式,然後將值傳給 Reader,Reader 最後再 將值傳給 Tag,Tag 收到後會比對是否跟剛才 Tag 本身計算出的值相同,若不同則 不回應該 Reader 的訊息,若相同,則 Reader 得到 Tag 的驗證。不過此方法缺乏 Reader 驗證 Tag 的機制,因此攻擊者一樣可以透過監聽傳輸封包的方式來偽造 Tag,

或是透過重送封包來欺騙 Reader,危害整個 RFID 系統。

(15)

8

圖五:Hash-based Authentication of “Good Reader”方法

也有學者提出 An improved security solution[18]的方法,如圖六。首先,Reader 會先發送 Query 指令以及隨機產生的亂數 R,Tag 收到指令後會將 Tag 本身 ID 與亂 數 R 做雜湊函數計算,接者將值傳回 Reader,Reader 收到後會將亂數 R 以及 Tag 的 回傳值送到資料庫端查詢對應的 Tag ID,然後將亂數 R、Reader ID 以及 Tag ID 透 過 XOR 運算結合在一起傳回 Reader,Reader 收到後將剩下的亂數 R 以及 Tag ID 傳 給 Tag,以完成 Tag 對 Reader 的驗證。不過假如 Reader 以及 Tag 之間的傳輸資訊都 被監聽了,攻擊者就可以透過第一個步驟的亂數 R 來推算出第五個步驟所傳輸的 Tag ID,達到追蹤 Tag 的目的;此外,攻擊者只要持續監聽一段時間,尋找亂數 R 與雜湊函式值的配對,便能夠偽造 Tag 來欺騙 Reader 以及後端系統。

圖六:An improved security solution 方法

(16)

9

第三章

以時間為基礎的 RFID 加密傳輸演算法

由於前面提到的方法都沒有辦法提出完整有效的方法能解決 RFID 安全上的問 題,所以我們提出了 A Time Based Encrypting Protocol (TBE)這個方法來達成 Reader 與 Tag 之間的安全傳輸。我們提出的方法能夠確保 Reader 以及 Tag 都能夠互相驗證 避免偽造的情況發生,並且利用時間只會遞增的特性,轉換成一個幾乎不會重複的 亂數來讓攻擊者無法透過長時間的分析來破解安全機制。

當 Reader 開始啟動傳輸時,Reader 會先取得 Unix Time 的秒數,針對這個數字 做 MD5 加密後會得到長度為 32 字元的 16 進位編碼字串,接著再視 RFID 標籤長度 擷取部分字元下來,透過一個預先儲存在 RFID 標籤以及讀取器裡面的一個編碼表 來轉換編碼,並加以運算之後傳給 Tag。而 Tag 收到 Reader 傳來的資料後,會對資 料逆向運算來驗證資料是否正確,如果不正確的話,Tag 將不會回傳任何訊息;如 果資料正確無誤,Tag 將會利用 Reader 傳來的資料加上 Tag 本身的 ID 運算過後傳 回 Reader。Reader 收到 Tag 傳來的訊息後,就可以利用剛剛傳給 Tag 的編碼資訊加 以解密,從而得到 Tag 真正的 ID 資訊。在資料傳輸的過程中,所有的資料都是經 過編碼後再傳出的,所以有心人士就算能夠擷取到封包內容,也無法得到真正的資 料。

3.1. Unix Time

Unix Time 又稱之為 POSIX Time,代表著從 1970 年 1 月 1 日 0 時 0 分 0 秒到 目前的總經過秒數,例如 1970 年 1 月 2 日 0 時 0 分 0 秒的 Unix Time 為 86400,

2011 年 1 月 1 日 0 時 0 分 0 秒的 Unix Time 為 1293840000。

(17)

10

3.2. MD5 演算法

MD5 演算法是在 1992 年由 Ronald L. Rivest 設計出來的一種加密演算法,針對 現有的 MD2、MD3、MD4 演算法加強複雜度以及不可逆性。任意長度的資料經過 MD5 演算法處理之後會輸出一個 128 bits 的資料。採用 MD5 演算法作為 Unix Time 時間編碼的原因在於任何一個字元的變動都會讓 MD5 演算法輸出的結果有著相當 大 的 差 別 , 舉 例 來 說 , 1293840000 經 過 MD5 演 算 法 編 碼 過 後 會 得 到 0x2289C5B863D8A731EDE6BBA454FB400A 的結果,而只要稍稍改動一個字元,將 前 一 個 的 Unix Time 加 上 1 秒 , 就 會 與 剛 剛 的 結 果 截 然 不 同 , 變 成 了 0xD68422765723F56B5E3B0B5A8F49999B。因為 MD5 演算法有著如此的特性,所 以我們採用 MD5 演算法輸出的結果直接當作字元來做為 Unix Time 的編碼值。

3.3. 編碼表

在編碼表的部分,首先在 Reader 與 Tag 內部必頇先記錄同樣的一組 Base Code

B,B

0~15的組成字元為亂數排序 16 進位 0~F,從第 1 個字元到第 16 個字元均對應 到編碼表 bit 位置的 0~F,在 Reader 與 Tag 中各自保存一份相同的 Base Code。另外 還要根據 16 進位的 Tag ID 長度 k 來決定一組相同長度的 Cipher C,而 C0~k-1的組成 字元一樣也是 16 進位 0~F,同樣採亂數產生並且儲存於 Reader 及 Tag 之中。有了 Base Code 與 Cipher,我們便可以利用 XOR 運算來計算此編碼表中任意位置的任意 值。

(18)

11

圖七:編碼表產生方式的 Pseudo Code

3.4. TBE 演算法

當傳輸開始時,Reader 會先取得目前的 Unix Time,然後透過 MD5 演算法加密 成一串 32 字元 16 進位的字串。接著將 Tag ID 以 16 進位表示,得到 Tag ID 的字元 長度為 k,例如 1byte 的 16 進位 Tag ID 0x3F,字元長度 k 就是 2。回到剛剛產生的 MD5 字串,從第一個字元開始擷取 2k 個字元得到 P0~2k-1。取得了 P 以後,我們將 P 從中間分成一半,分為前半段 P0

P

1……Pk-1,與後半段 Pk

P

k+1……P2k-1,然後我們先 將前半段 Pi的值逐字直接對應到編碼表 Ci⊕BPi的值,後半段 Pi一樣重複相同步驟,

經過編碼表轉換過後我們可以得到編碼過後前半段的 Q0

Q

1……Qk-1,與後半段

Q

k

Q

k+1……Q2k-1。接著我們在將前半段與後半段字串相互進行 XOR 運算,得到 XOR 運算後的值 X0~k-1,然後向 Tag 發送 P0

P

1……Pk-1

P

k

P

k+1……P2k-1

X

0

X

1……Xk-1

Tag 在收到 Reader 傳來的加密訊息後,會對資料作驗證以確保訊息發送來源可 信任,若驗證通過,Tag 會利用此加密訊息的資料,進一步加入要傳回的訊息一併 傳送回 Reader;若是驗證失敗,Tag 會停止發送訊息一段時間,避免有心人士採用 窮舉法惡意破解。

首先,Tag 會將收到的字串平均分為三部份,第一部分為 P0~k-1,第二部分為

P

k~2k-1, 第 三 部 分 為 X0~k-1。 先 將 P0~k-1 逐 字 直 接 對 應 到 編 碼 表 Ci⊕ BPi 得 到

EncodingTable = Array[k, 16];

for(i = 0; i < k; i++) { for(j = 0; j < 16; j++) {

EncodingTable[i, j] = Cipher[i] XOR BaseCode[j];

} }

(19)

12

Q

0

Q

1……Qk-1,再將 Pk~2k-1逐字直接對應到編碼表 Ci⊕BPi得到 Qk

Q

k+1……Q2k-1,最 後將 P0~k-1與 Pk~2k-1做 XOR 運算得到 X'0

X'

1……X'k-1,如果 X0~k-1與 X'0~k-1相等,則 驗證通過,否則視為驗證失敗。

驗證成功後,Tag 需要將自身 ID0~k-1與 P0~k-1相互進行 XOR 運算,運算過後得 到 IDX0~k-1,接著再與 Pk~2k-1做 XOR 運算得到 IDX'0~k-1,最後將 IDX'0~k-1傳回 Reader。

Reader 收到 Tag 回傳的訊息之後,便要對訊息解碼,首先將收到的訊息 IDX'0~k- 1與先前傳出的 Pk~2k-1做 XOR 運算,就能夠反解得到 IDX0~k-1,然後再利與 P0~k-1XOR 運算,就能夠得到真正的 Tag ID 值 ID0~k-1

我們可以用一張圖來表示整個 Reader 與 Tag 之間溝通的流程,如圖八。

Reader Tag

圖八:TBE 流程圖 1. 取 得 Unix Time 並 利 用

MD5 加密

2. 將結果查詢 編碼表後 ,編 碼並送出訊息給 Tag

7. 接收 Tag 加密後的訊息

3. 接收 Reader 傳來的訊息 4. 查 詢 編 碼 表 並 驗 證 訊 息

是否正確

5. 將 Tag ID 透過 Reader 傳 來的訊息編碼加密 6. 將加密後含有 Tag ID 的

訊息傳給 Reader

(20)

13

Reader 部分的演算法如下:

unixtime_dec is Unix Time.

unixtime_hex is Unix Time encrypted by MD5.

tagid_len is the length of Tag ID.

first_part is the first part of unixtime_hex encoding by Encoding Table.

second_part is the second part of unixtime_hex encoding by Encoding Table.

xored is the value which first_part XOR second_part.

data is the data which Reader send to Tag.

unixtime_dec = get_unixtime();

unixtime_hex = MD5(unixtime_dec).substring(0, tagid_len * 2);

first_part = encoding (unixtime_hex.substring(0, tagid_len));

second_part = encoding (unixtime_hex.substring(tagid_len, tagid_len));

xored = converttoInt(first_part) XOR converttoInt(second_part);

data = unixtime_hex + xored.toHex();

data.sendtoTag();

Tag 針對 Reader 訊息做驗證、並且將 Tag ID 加密後傳回 Reader 的演算法如下:

first_part is the first part of data sent by Reader.

second_part is the second part of data sent by Reader.

third_part is the third part of data sent by Reader.

xored is the value which first_part XOR second_part.

tagid is Tag ID.

data is the data which Tag send to Reader.

if encoding(first_part) XOR encoding(second_part) != third_part then end

else

data = tagid XOR encoding(first_part) XOR encoding(second_part);

end if

data.sendtoReader();

(21)

14

3.5. 例子

接下來我們要舉兩個例子,以顯示在實際的過程中 Reader 與 Tag 是如何溝通的,

為了方便起見,我們假設傳輸發生的時間為 2011 年 1 月 1 日 0 時 0 分 0 秒,當時的 Unix Time 秒 數 為 1293840000 , 經 過 MD5 演 算 法 編 碼 後 的 值 為 2289C5B863D8A731EDE6BBA454FB400A。

 16 進位 Tag ID 為 0xAF

在這個例子中,我們需要傳輸的 Tag ID 長度為 k 為 2,因此我們先隨機產生 Cipher 值為 8B,Base Code 值為 6E48B9AC10D57F23,並建立以下編碼表:

(22)

15

表一:16 進位 Tag ID 長度為 2 的編碼表 Base Code: 6E48B9AC10D57F23

Cipher: 8B

bit Base Code Cipher 0: 8 Cipher 1: B 0 6 8⊕6=E B⊕6=D 1 E 8⊕E=6 B⊕E=5 2 4 8⊕4=C B⊕4=F 3 8 8⊕8=0 B⊕8=3 4 B 8⊕B=3 B⊕B=0 5 9 8⊕9=1 B⊕9=2 6 A 8⊕A=2 B⊕A=1 7 C 8⊕C=4 B⊕C=7 8 1 8⊕1=9 B⊕1=A 9 0 8⊕0=8 B⊕0=B A D 8⊕D=5 B⊕D=6 B 5 8⊕5=D B⊕5=E C 7 B⊕7=C 8⊕7=F D F B⊕F=4 8⊕F=7 E 2 B⊕2=9 8⊕2=A F 3 B⊕3=8 8⊕3=B

由於 k = 2,所以我們會擷取 MD5 加密後的 Unix Time 前 2k 個字,也就是前 4 個字 2289 來參與接下來的編碼運算。先將 2289 拆開,查詢編碼表後得知 22 會編碼

(23)

16

為 CF,而 89 會編碼為 9B,然後計算 CF⊕9B 得到 54,最後 Reader 傳出 228954 給 Tag。

當 Tag 收到 Reader 傳來的訊息之後,會將訊息平均分為三部分 22、89、以及 54 做運算,查詢編碼表後得知 22 會編碼為 CF,而 89 會編碼為 9B,而 CF⊕9B 會 得到 54 跟 Reader 傳來的訊息互相吻合,因此此次傳輸會被 Tag 視為有效訊息。

確認有效訊息後,Tag 會將自身 ID 與 Reader 傳來的第一部份訊息編碼後的結 果 XOR,AF⊕CF 得到 60,然後再與第二部分編碼後的結果 XOR,60⊕9B 得到 FB,最後回傳給 Reader 的值就是 FB。

Reader 收到 FB 這個訊息後,便開始進行解碼計算,先將 FB 與傳出的第二部分 訊息編碼後的結果 9B 做 XOR 計算,FB⊕9B 得到 60,再與第一部分訊息編碼後的 結果 CF 做 XOR 運算,60⊕CF 得到 AF,AF 這個值就是真正的 Tag ID 了。

 16 進位 Tag ID 為 0x08AF

在第二個例子中,我們需要傳輸的 Tag ID 長度為 k 為 4,因此我們先隨機產生 Cipher 值為 8BE9,Base Code 值為一樣 6E48B9AC10D57F23,並建立以下編碼表:

(24)

17

表二:16 進位 Tag ID 長度為 4 的編碼表 Base Code: 6E48B9AC10D57F23

Cipher: 8BE9

bit Base Code Cipher 0: 8 Cipher 1: B Cipher 2: E Cipher 3: 9 0 6 8⊕6=E B⊕6=D E⊕6=8 9⊕6=F 1 E 8⊕E=6 B⊕E=5 E⊕E=0 9⊕E=7 2 4 8⊕4=C B⊕4=F E⊕4=A 9⊕4=D 3 8 8⊕8=0 B⊕8=3 E⊕8=6 9⊕8=1 4 B 8⊕B=3 B⊕B=0 E⊕B=5 9⊕B=2 5 9 8⊕9=1 B⊕9=2 E⊕9=7 9⊕9=0 6 A 8⊕A=2 B⊕A=1 E⊕A=4 9⊕A=3 7 C 8⊕C=4 B⊕C=7 E⊕C=2 9⊕C=5 8 1 8⊕1=9 B⊕1=A E⊕1=F 9⊕1=8 9 0 8⊕0=8 B⊕0=B E⊕0=E 9⊕0=9 A D 8⊕D=5 B⊕D=6 E⊕D=3 9⊕D=4 B 5 8⊕5=D B⊕5=E E⊕5=B 9⊕5=C C 7 B⊕7=C 8⊕7=F E⊕7=9 9⊕7=E D F B⊕F=4 8⊕F=7 E⊕F=1 9⊕F=6 E 2 B⊕2=9 8⊕2=A E⊕2=C 9⊕2=B F 3 B⊕3=8 8⊕3=B E⊕3=D 9⊕3=A

由於 k = 4,所以我們會擷取 MD5 加密後的 Unix Time 前 2k 個字,也就是前 8 個字 2289C5B8 來參與接下來的編碼運算。先將 2289C5B8 平均拆成一半,查詢編

(25)

18

碼表後得知 2289 會編碼為 CFF9,而 C5B8 會編碼為 C2B8,然後計算 CFF9⊕C5B8 得到 0A41,最後 Reader 傳出 2289C5B80A41 給 Tag。

當 Tag 收到 Reader 傳來的訊息之後,會將訊息平均分為三部分 2289、C5B8、

以及 0A41 做運算,查詢編碼表後得知 2289 會編碼為 CFF9,而 C5B8 會編碼為 C2B8,而 CFF9⊕C5B8 會得到 0A41 跟 Reader 傳來的訊息互相吻合,因此此次傳輸 會被 Tag 視為有效訊息。

確認有效訊息後,Tag 會將自身 ID 與 Reader 傳來的第一部份訊息編碼後的結 果 XOR,08AF⊕CFF9 得到 C756,然後再與第二部分編碼後的結果 XOR,C756⊕

C2B8 得到 05EE,最後回傳給 Reader 的值就是 05EE。

Reader 收到 05EE 這個訊息後,便開始進行解碼計算,先將 05EE 與傳出的第二 部分訊息編碼後的結果 C2B8 做 XOR 計算,05EE⊕C2B8 得到 C756,再與第一部 分訊息編碼後的結果 CFF9 做 XOR 運算,C756⊕CFF9 得到 08AF,08AF 這個值就 是真正的 Tag ID 了。

(26)

19

第四章 實驗與分析

在本章節中,我們會針對 TBE 演算法的安全性做一些數據展示,並且分析 TBE 演算法與相關研究的安全性。首先說明一下我們模擬實驗的環境,此環境將會模擬 單一 Reader 對 Tag 溝通的環境,撰寫的程式語言為 Microsoft Visual Studio C# 2005。

在第一個實驗中,我們計算的是經過 MD5 加密過的 Unix Time 字元重複率,由 於參與 TBE 演算法的主要元素是 MD5 加密過後的 Unix Time,因此得知編碼過後 Unix Time 的重複頻率是相當重要的一件事,過高的重複頻率將會讓攻擊者能夠藉 由分析資料,進一步提高攻擊成功的機率。第一個實驗我們會將 Unix Time 以 MD5 加密,並比較前 2、4、6、8 字元的重複率,如表三。

表三:取固定字元計算 MD5 加密後 Unix Time 的字元重複率 Unix Time 3 小時 6 小時 12 小時 18 小時 24 小時 2 字元 10544 21344 42944 64544 86144 4 字元 862 3211 11513 23582 38243

6 字元 5 14 54 119 223

8 字元 0 0 0 0 0

在這個實驗中,我們假設自 2011 年 1 月 1 日 2011 年 1 月 2 日的 86400 秒中,

每一秒都有 Reader 與 Tag 之間的傳輸,並且透過經 MD5 加密後不同長度的 MD5 字元來計算重複率。可以看到在連續傳輸了一天的時間之後,字數為四的 Unix Time 重複率大約在 44%左右,但是到了六個字元,重複率就下降到了 0.25%,到八 個字元時就不再有重複的情況發生了。當我們會取八個字元的 Unix Time 做計算時,

代表 RFID 環境中 Tag ID 的長度為兩個 bytes,但在實務應用上 Tag ID 還會更長,

(27)

20

例如 EPCglobal 標準中定義 EPC Class 1 Gen 2 的 RFID 標籤 Tag ID 長度為 96 bits,

這也就代表 MD5 加密後 Unix Time 要重複的機率更是微乎其微。

為了要證明我們的編碼表能夠有效的將 Tag ID 編碼,並且在編碼後仍然能夠保 持雜亂的程度,在第二個實驗我們一樣假設自 2011 年 1 月 1 日 2011 年 1 月 2 日的 86400 秒中,每一秒都有 Reader 與 Tag 之間的傳輸,Tag ID 分別為兩字元的 0xAF、

四字元的 0x08AF 以及八字元的 0x08AF08AF,計算結果如表四。

表四:取固定 Tag ID 長度進行 TBE 計算 Tag 3 小時 6 小時 12 小時 18 小時 24 小時 2 字元 9771 20400 41858 63376 84976 4 字元 804 2865 9512 18816 29744

8 字元 0 0 0 0 0

從這個實驗我們可以看到當 Tag ID 為四個字元時,24 小時內每秒都傳輸的重 複率約為 34%,但在實務上不會有每秒都要傳輸的情況發生,因此實際的重複率會 更低;到了 Tag ID 為八個字元時,連續 24 小時傳輸都不會有重複的數值出現,因 此我們可以確保攻擊者沒有辦法藉由重複資訊來分析 Reader 與 Tag 間的傳輸封包。

接下來我們要針對幾項 RFID 系統中的安全性議題作分析比較,包括下列:

 Privacy Attack:使用某些手段非法取得 Tag 本身儲存的資訊。

 Replay Attack:稱為重送攻擊,攻擊者監聽 Reader 與 Tag 之間的傳輸後,

偽裝成其中一方重新傳送相同訊息藉以取得資訊或是攻擊 RFID 系統。

 Denial of Service Attack:又稱阻斷式服務攻擊,攻擊者藉由發送大量無用 封包達到癱瘓 RFID 系統的目的。

 Cloning Attack:攻擊者透過封包監聽或是拆解後的實體分析,複製出一個 功能相同的 RFID Tag 來欺騙 Reader,造成 RFID 系統混亂。

(28)

21

 Backward Traceability:攻擊者利用已經收集到的資訊,追蹤 Tag 未來可能 會出現的地方。

 Forward Traceability:攻擊者利用已知資訊往前推測該 Tag 以前曾經出現在 那些地方。

 Man-in-the-Middle Attack:攻擊者扮演中間人的角色,Reader 與 Tag 之間 任何的傳輸都會經過攻擊者,攻擊者可以修改傳輸的封包達到攻擊的效果。

表五可以看到針對以上安全性議題的相關研究表現。各個符號代表的意義如下:

○:有提供防護 Δ:部分提供防護

╳:不提供防護

表五:相關研究的安全性比較表 Hash

Lock

Random Hash Lock

Good Reader

An improved security solution

TBE

Privacy Attack Δ ○ ○ ○ ○

Replay Attack ╳ Δ Δ Δ ○

Denial of Service Attack

╳ ╳ ╳ ╳ ○

Cloning Attack ╳ ╳ ○ ○ ○

Backward Traceability

╳ ○ ○ ○ ○

Forward Traceability

╳ ○ ○ ○ ○

Man-in-the-Middle Attack

╳ ╳ Δ Δ ○

(29)

22

由於 TBE 利用儲存於 Reader 以及 Tag 編碼表的方式來完成彼此之間的認證,

外來或是偽造的 Tag 以及 Reader 都沒有辦法與之溝通,攻擊者也沒辦法得知編碼表 內容來偽造 Tag 或是 Reader,且惡意的大量封包傳送也會被忽略,因此 TBE 提供了 Privacy Attack、Denial of Service Attack、Cloning Attack、Backward Traceability 以及 Forward Traceability 的防護;另外因為 TBE 採用另一個幾乎不會重複的 MD5 加密 Unix Time 做為傳輸時的亂數因子,每次傳輸時同一台 Reader 與同一個 Tag 所發送 的數據都不會相同,所以 Replay Attack 也不會影響到使用 TBE 的 Reader 以及 Tag。

(30)

23

第五章

結論與未來研究方向

在這篇論文裡,我們主要是利用 Reader 與 Tag 共同存有的一份能夠產生編碼表 的雜湊函式,以及將時間轉換成秒數,利用時間永遠只會往前進的特性創造出幾乎 不會重複的亂數來保護 Reader 與 Tag 之間的傳輸。透過編碼表,我們能夠防止攻擊 者偽造 Reader 或是 Tag 來擾亂整個 RFID 系統,同時也能夠將所有傳輸的訊息透過 編碼表加密,增加了破解的困難;透過 MD5 加密過後的 Unix Time,我們能夠使每 次 Reader 與 Tag 傳輸的訊息完全不相同,也完全無跡可尋,攻擊者也就沒有辦法透 過分析的方式得知 Reader 與 Tag 內的編碼表,也無法利用監聽到的封包資訊做重送 攻擊。所以我們的方法能夠真正有效的防止傳輸封包被竊聽、Tag 被追蹤、Reader 或 Tag 被偽造,以及針對 RFID 系統的拒絕服務攻擊等等安全問題。

現在的方法中需要加強的部分在於,當 RFID 系統中的 Tag ID 越來越長時,

Reader 所發出的初始封包也會跟著越來越長,進而延長資料傳輸時間導致資料發生 碰撞的機率變高,所以如果如何縮短傳輸資料長度,但又能夠保有原本資料加密強 度會是之後要繼續研究的地方。

(31)

24

References

1. “Unix Time”, http://en.wikipedia.org/wiki/Unix_time.

2. “MD5”, http://en.wikipedia.org/wiki/MD5.

3. W-T. Chen, T-W. Ho and Y-C. Chen, “An MAC protocol for wireless ad-hoc networks using smart antennas”, Proceedings of the 11th IEEE International Conference on Parallel and Distributed Systems, pp. 446-452, 2005.

4. T. You, H. Hassanein and C-H. Yeh, “PIDC – towards an ideal mac protocol for multi-hop wireless LANs”, Proceedings of the IEEE International Conference on Wireless Networks, Communications and Mobile Computing, pp.655-660, 2005.

5. Junbong Eom and Tae-Jie Lee, “Framed-Slotted ALOHA with Estimation by Pilot Frame and Identification by Binary Selection for RFID Anti-collision,” Proceedings of the International Symposium on Communications and Information Technologies, pp.

1027-1031, 2007.

6. Su-Ryun Lee, Sung-Don Joo and Chae-Woo Lee, “An enhanced dynamic framed slotted ALOHA algorithm for RFID tag identification,” Proceedings of the 2nd Annual International Conference on Mobile and Ubiquitous System: Networking and Services, pp. 166-172, 2005.

7. J. Park, M. Chung, and T.-J. Lee, “Identification of RFID Tags in Framed-Slotted ALOHA with Robust Estimation and Binary Selection,” Proceedings of the IEEE Communications Letters, Vol. 11, no.5, pp. 452-454, 2007.

(32)

25

8. Bo-Yu Chen, Ching-Hsien Hsu, Kuan-Ching Li, “An Adaptive Anti-Collision Algorithm towards Efficient RFID Tag Identification,” Proceedings of the Ubiquitous, Autonomic and Trusted Computing, 2009.

9. Bo Feng, Jin-Tao Li, Jun-Bo Guo, and Zhen-Hua Ding, “ID-binary tree stack anti- collision algorithm for RFID,” Proceedings of the Computers and Communications, ISCC '06, pp. 207-212, 2006.

10. J. Myung, W. Lee, T. K. Shih, “An adaptive memoryless protocol for RFID tag collision arbitration,” Proceedings of the Multimedia, IEEE Transactions on Vol. 8, Issue 5, pp. 1096-1101, 2006.

11. Jiho Ryu, Hojin Lee, Yongho Seok, Taekyoung Kwon and Yanghee Choi, “A Hybrid Query Tree Protocol for Tag Collision Arbitration in RFID systems,” Proceedings of the IEEE International Conference on Communications, pp. 5981 - 5986, 2007.

12. Tsan-Pin, Wang, “Enhanced Binary Search with Cut-Through Operation for Anti- Collision in RFID Systems,” Proceedings of the IEEE COMMUNICATIONS LETTERS, Vol. 10, No. 4, pp. 236-238, 2006.

13. Qi Yao, Seng-Kee Tan, Yu Ge, Boon-Sain Yeo, Qinghe Yin, “An Area Localization Scheme for Large Wireless Sensor Networks,” Proceedings of the Vehicular Technology Conference, 2005.

14. Xun Chen, Peng Han, Qiusheng He, and Shiliang Tu, “A Viable Localization Scheme for Dynamic Wireless Sensor Networks,” Proceedings of the International Multi- Symposiums on Computer and Computational Sciences, 2006.

15. EPCglobal, EPC Radio-Frequency Identify Protocols Class-1 Generation-2 UHF RFID Protocol for Communications at 860MHz-960MHz Version 1.2.0

(33)

26

16. B. Feng, J.T. Li, J.B. Guo, and Z.H. Ding, “ID-binary tree stack anticollision algorithm for RFID,” Proceedings of the 11th IEEE Symposium on Computers and Communications, pp. 207-212, 2006.

17. D. Henrici, P. Muller, “Hash-based enhancement of location privacy for radio- frequency identification devices using varying identifiers,” Proceedings of the Second IEEE Annual Conference, pp. 149-153, 2004.

18. Xiao-hua Wang, Xiao-guang Zhou, Bai-sheng Sun, “An Improved Security Solution of RFID system,” Proceedings of the Wireless Communications, Networking and Mobile Computing, pp. 2081-2084, 2007.

19. R. Want, “An Introduction to RFID Technology”, IEEE Pervasive Computing, Vol. 5, No. 1, pp. 25-33, 2006.

20. Chen Qian, Hoilun Ngan, and Yunhao liu, “Cardinality Estimation for Large-scale RFID Systems”, Proceedings of the Sixth Annual IEEE International Conference, pp.

30-39, 2008.

21. Xingxin Gao, Zhe Xiang, Hao Wang, Jun Shen, Jian Huang, Song Song, “An approach to security and privacy of RFID system for supply chain”, Proceedings of the E-Commerce Technology for Dynamic E-Business, pp. 164-168, 2004.

22. Qinghan Xiao, Cam Boulet, and Thomas Gibbons, “RFID Security Issues in Military Supply Chains”, Proceedings of the Availability, Reliability and Security conference, pp. 599-605, 2007.

23. Lan Zhang, Huaibei Zhou, Ruoshan Kong, and Fan Yang, “An Improved Approach to Security and Privacy of RFID Application System,” Proceedings of the Wireless Communications, Networking and Mobile Computing, pp. 1195-1198, 2005.

(34)

27

24. Jaemin Park, Junchae Na, and Minjeong Kim, “A Practical Approach for Enhancing Security of EPCglobal RFID Gen2 Tag.” Proceedings of the Future Generation Communication and Networking, pp. 436-441, 2007.

25. Hoon Ko and Carlos Ramos, “A Study on the Encryption Algorithm for RFID tag,”

Proceedings of the Convergence and Hybrid Information Technology, pp.672-677, 2008.

參考文獻

相關文件

討論結束,整理腦圖。首先嘗試將資料歸類,然 後可以開始收窄範圍,定出文章中心,再按照重

• 不過,如果是為調查及懲處嚴重不當行為(並不限於罪案)的目的而使用 的個人資料,則受《 私隱條例》第58條所豁免 ,以致有關資料不受保障資

在網路數位的時代,人們將面對越來越多資訊安全的威脅,對於此行政院將 特別在今年

存放檔案的 inode 資訊, inode 一旦滿了也一樣會 無法儲存新檔案, inode 會告知檔案所使用的 data block 位置。. Q :如何知道那些 inode 和

 其中包括有多款燈具、兩款床頭櫃, 以及可以單獨購買用來給 現有家居升級的充電墊配件 。 據悉這些產品全都是基於 Qi 標 準,市面上主流的那些 無線充電手機應該都可以使用

密碼系統中,通常將想要保護的密碼訊息稱為 plain text。而將經過加密後產生的加密訊息稱為 cipher text。在這 中間的過程,會用到可以對外供應的 Public Key 以及私人保

– 某人因為與上市公司有關連,即內幕人士 (如公司董事、職員或公司的 核數師等)

第二層 尊重及懂得引述資訊來源,並對知識產權監管法例有所認識 高小 第三層