作者:
Kevin2600
·
2016/05/10 10:43
0x00 前言
如今物聯網 RFID系統已經完全融入了我們的生活當中. 從樓宇門禁到 Apple Pay. 可以說其身影是無處不在.很多網友也分享了自己對RFID系統的安全測試心得.不過大多還是基於門禁卡和 Mifare-Classic 而言. 實際上在 Mifare 系列的大家族中還有著許多其他類別. 比如 Mifare-DESFire 和本文的主角 Mifare-Ultralight.

溫哥華交通公司Translink 在 2015年開始逐漸淘汰老舊的列印票務系統. 並全面推廣RFID為基礎的票務系統, 併為其取名為 Compass. 此係統為了方便不同乘客的需要, 使用了Mifare-DESFire 作為月票卡. 同時還以Mifare-Ultralight 作為一次性車票.因 Mifare-Ultralight 成本低廉, 使其成為車票的不二之選. 但也正是為了節省成本, 其安全性近乎於零. 它的天生殘疾為攻擊者開啟了一道方便之門.本文將以此輕軌RFID 票務系統為例, 跟大家一起來場RFID 系統的探索之旅.

0x01 Mifare-Ultralight 簡介
Mifare-Ultralight 是 NXP 公司出品的眾多Mifare系列中的一款. 其同樣工作在 13.56 Mhz. 但跟它的老大哥 Mifare-Classic 不同的是, 它並無使用任何加密, 其資料內容是可以任意訪問的. 因為造價低廉很多需要一次性門票的場合都將其作為首選.比如 2006 的世界盃比賽.其資料結構非常簡單明瞭. 總共 64 bytes. 分為16 個區, 每個區為4 bytes. 而 4 - 15 區通常會用於資料儲存, 存有時間; 入口和站臺名等. 值得一提的是此區可任意讀寫無需認證哦. ;)

UID區
其 UID 區在預設情況下是不可寫的. 佔有 9 個 bytes, 但只有 7 個bytes 作為 UID 使用. 比如 “ 04 e2 a8 c6 ba e2 43 80 9b ” 其中只有 04 e2 a8 ba e2 43 80 被識別為UID, 而 c6 和 9b 是作為校驗值 Check Bytes 存在的.
OTP 區
前面提到Ultralight 的安全性近乎於零, 是因為它設有這個One time programmable 區. 整個區分為 4 bytes, 預設數值為 00 00 00 00. 通常將其作為為車票的計數器使用. 透過 01 對每個 bits 進行 OR 不可逆運算. 直到 00 全部用完車票作廢.不過這個OTP 也是可以透過啟用 Lock Byte 來 bypass. 因為 Compass 系統並無使用OTP , 所以無做此測試.

0x02 實戰測試 — Single Fare Reset Attack
需要事先宣告整個測試過程使用的是預先支付的車票. 並僅是在車站入口處測試了 Reset 攻擊, 並無實際逃票行為. 所以不要擔心會發生被請喝茶的悲劇. 而且在下也反對濫用此類技術來做壞事... :p
其實整個攻擊過程非常簡單. 因為Data 區可任意讀寫無需認證. 所以我們可以事先 dump 出 Compass 車票的原始資料. 等車票過期無法使用後, 用手機 APP 將原始資料寫回車票. 從而實現 Reset 攻擊, 達到系統繞過目的. :) 整個攻擊過程出奇的簡單對嗎? 而從 Translink 的角度來看, 又有哪些防禦方案呢? 其實 NXP 公司早就提供了3DES加密的 MIFARE Ultralight C. 不知道為什麼 Translink 在系統設計之初不考慮呢?
0x03 總結
最後要感謝在整個研究過程中提供過幫助的弟兄們. 同時在下認為系統安全加固, 有時也取決於自身對問題的態度. 出了問題不積極修復, 卻試圖將問題隱藏. 並寄希望於掌握瞭解方法的人越少越好. 這是十分不明智的處理態度.

在這裡強烈鄙視溫哥華交通公司 TransLink. 在漏洞曝光後明知系統存在隱患的情況下仍放任不理. 當記者採訪時還擺出一副有種你咬我的嘴臉. 那好吧 May the luck be with you…FXXK YOU…Now we all know how to hack you..

0x04 參考文獻
- http://www.nxp.com/documents/data_sheet/MF0ICU1.pdf
- https://www.youtube.com/watch?v=Czvn4L1r6f4 (Building safe NFC system --30c3)
- http://www.cbc.ca/news/canada/british-columbia/compass-ticket-hack-1.3535955
- http://bc.ctvnews.ca/security-flaw-lets-smartphone-users-hack-transit-gates-1.2852464
- https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2012/september/ultrareset-bypassing-nfc-access-control-with-your-smartphone/
本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!