為助力中國電子工程師更好將創(chuàng)新創(chuàng)意落地,
由華強(qiáng)芯城、電子發(fā)燒友網(wǎng)攜手ARM聯(lián)合舉辦
華強(qiáng)芯城2017工程師創(chuàng)新設(shè)計大賽[點(diǎn)擊報名]
為什么要舉辦這個大賽?
簡單來說,就是一個給工程師創(chuàng)意創(chuàng)新造夢的舞臺;
沒有參賽利器?送你mbed相關(guān)開發(fā)套件;
如果你是一枚科技極客俠,
擁有無數(shù)天馬行空的想法;
如果你是智造DIY達(dá)人,
用有眾多令人欽羨的技能;
如果你想親自參與改變未來智能電子產(chǎn)品,
而且創(chuàng)意爆表;
NB了,Word天!你還在猶豫什么?
Come on!“華強(qiáng)芯城2017工程師創(chuàng)新設(shè)計大賽”并且期待你組隊(duì)來迎戰(zhàn)!
未來的創(chuàng)新設(shè)計舞臺就在這里
快來盡情揮灑你的靈感吧~
嵌入式產(chǎn)品Hacking 一直都是備受關(guān)注的議題,而越來越多的攻擊者也瞄上了物聯(lián)網(wǎng)嵌入式設(shè)備。跟以往純軟件安全研究不同的是,這類研究往往需要結(jié)合相應(yīng)的硬件知識和設(shè)備。如何能快速入門嵌入式系統(tǒng)?本文分享針對I2C協(xié)議的實(shí)戰(zhàn)案例和相應(yīng)的工具使用。希望可以一起來Hacking all the Things。
I2C協(xié)議基礎(chǔ)
凡是接觸過嵌入式系統(tǒng)的朋友,對I2C協(xié)議一定不會陌生。其與UART,SPI和JTAG等并列為最常見調(diào)試協(xié)議。I2C 全稱為Inter-Integrated Circuit,是由飛利浦公司設(shè)計的一種多主從架構(gòu)的串口通訊協(xié)議。
I2C協(xié)議非常簡單,僅有Clock 和 Data 兩條數(shù)據(jù)總線,外加 Ground. 通常是1個主設(shè)備和多個從設(shè)備的架構(gòu)。在通訊速度上分別為100khz,400khz,1Mhz,3.2Mhz。在運(yùn)用方面對速度沒有高要求的,都可以使用I2C進(jìn)行通訊。比如PC風(fēng)扇的溫度和電池的電壓數(shù)據(jù)采集等,每個I2C設(shè)備都各有一個讀和寫地址,只有知道了這個讀寫地址才能跟其通訊。
除此之外許多用來存儲系統(tǒng)配置和參數(shù)的EEPROM芯片自身也支持I2C協(xié)議,比如IBM Thinkpad 系列用來存儲BIOS 密碼的EEPROM,就是通過I2C協(xié)議在MCU與EEPROM 之間進(jìn)行交互。
神器BusPirate
工欲善其事必先利其器,擁有一款神器對嵌入式設(shè)備Hacking將起到事半功倍的作用。BusPirate 是由Dangerous prototypes 設(shè)計出品的一款硬件hacking 瑞士軍刀,支持多項(xiàng)常見協(xié)議并可跨平臺Windows/Linux/MAC,并擁有豐富的幫助文檔。
BusPirate可以Sniffing 和讀寫 I2C等協(xié)議,同時還可對AVR 等芯片進(jìn)行編程操作,在操作上也是非常簡單,只需用minicom 以115200 波特率跟BusPirate連接便可。
BusPirate支持協(xié)議如下:
BusPirate 接口連接示意圖:
BusPirate 命令列表:
攻擊案例 -- 數(shù)字密碼鎖
接下來我們來看一個通過分析I2C 協(xié)議,從而破解門鎖密碼的實(shí)戰(zhàn)案例,我們的目標(biāo)是這款 型號為YL99 的數(shù)字密碼鎖。這款密碼鎖完全依賴于用戶設(shè)置的數(shù)字密碼,也許對某些人來說不需要帶一堆鑰匙的確方便了很多。
因?yàn)閅L99 是完全電子化的的門鎖,所以提供了普通機(jī)械鎖沒有的功能。比如YL99 擁有多 個功能不同的賬戶,Master 賬戶:可用于設(shè)置管理用戶密碼(默認(rèn)0123#)。普通賬戶:用于存儲普通用戶密碼。YL99 同時還提供了貼心的防密碼泄漏功能,操作方法:鍵入起始碼(0) + 跟隨用于掩蓋的任意幾位數(shù)字+ 跟隨正確密碼 + # (確認(rèn)結(jié)束)。 通過這樣的方式就算邊上有人,也不怕被看到正確密碼了。
但是千里之堤,潰于蟻穴。YL99 的設(shè)計缺陷,竟能讓人從外部將鎖的鍵盤部分分離,從而訪問到內(nèi)部PCB 主板。而玩過硬件Hacking 的朋友都知道,被人輕易訪問到內(nèi)部PCB 主板部分是大忌。
在YL99被打開后主板結(jié)構(gòu)便展現(xiàn)眼前。除了YL99 使用的元器件外,我們還可以清晰看到主板上還標(biāo)有一個Reset 復(fù)位觸點(diǎn)。那么這個時候我們便可以通過短接復(fù)位觸點(diǎn)和Ground 的方式將密碼恢復(fù)到出廠設(shè)置,從而得到bypass 的目的。但這方法的短處也非常明顯,在bypass 的時候每次都需要卸螺絲,而且如果恢復(fù)到出廠值,很容易就被人發(fā)現(xiàn)了。
不過好戲才剛開始。我們在主板上還發(fā)現(xiàn)了YL99使用的MCU em78p156e 和用來存儲密碼信息的EEPROM 24C02。通過閱讀24C02 的datasheet 我們得知其使用I2C 協(xié)議和MCU 通訊,同時datasheet 也清晰的標(biāo)出了芯片管腳的用途,比如I2C 使用的SCL(時鐘頻率) 和SDA(數(shù)據(jù)總線)。
終于我們的神器BusPirate要派上用場了。我們首先用數(shù)據(jù)線將24C02的I2C 管腳和BusPirate的對應(yīng)接口連接起來。
隨后通過minicom 或其他serial tools 進(jìn)入Buspirate的I2C調(diào)試模式。
在I2C 的調(diào)試模式中,有個非常有用的功能I2C sniffer。通過它我們可以監(jiān)控I2C 的數(shù)據(jù),用過WIRESHARK 的朋友一定不會陌生。
開啟了I2C Sniffer 模式后,我們便可開始觀察MCU 和 EEPROM之間的密碼交互。比如YL99 的密碼輸入過程為起始碼(0) + 正確密碼 + 結(jié)束確認(rèn)(#)。
通過觀察發(fā)現(xiàn)在按下結(jié)束確認(rèn)(#) 后,MCU 便向24C02 發(fā)送密碼驗(yàn)證請求。但隨后致命的設(shè)計錯誤出現(xiàn),EPPROM 24C02 將正確的密碼以明文的方式發(fā)回給MCU 以求完成密碼驗(yàn)證過程,而這過程我們通過BusPirate 的I2C sniffer一覽無遺。
▲如圖:因?yàn)槭褂玫膌ittle endian 所以密碼 123 和456 會反著顯示
總結(jié)
通過本文的介紹和實(shí)踐案例,相信大家對I2C 協(xié)議和利用方式有了一定的了解。劍走偏鋒,反其道行之。攻擊者往往將系統(tǒng)的短板作為攻擊點(diǎn),倘若某款嵌入式系統(tǒng)的設(shè)計者僅僅考慮到軟件層面的安全,而攻擊者又能得到物理訪問的話,那些防御方式便形同虛設(shè)。同時嵌入式產(chǎn)品往往面臨上市后便難以升級的困難,一旦攻擊方式曝光由此給產(chǎn)品帶來的損失是巨大的,因此安全產(chǎn)品在設(shè)計之初即應(yīng)將安全考慮進(jìn)去。
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19678瀏覽量
317789 -
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3683瀏覽量
131446 -
DIY
+關(guān)注
關(guān)注
176文章
894瀏覽量
353399 -
智能硬件
+關(guān)注
關(guān)注
205文章
2387瀏覽量
109278
發(fā)布評論請先 登錄
電子發(fā)燒友年終盤點(diǎn)——內(nèi)容精選
手把手教你怎樣去實(shí)現(xiàn)一個嵌入式軟件架構(gòu)的設(shè)計
美女手把手教你如何裝機(jī)(中)
手把手教你安裝Quartus II
手把手教你學(xué)LabVIEW視覺設(shè)計
《嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Windows版 - 3]
![《<b class='flag-5'>嵌入式</b> - STM32開發(fā)指南》<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搭建STM32開發(fā)環(huán)境 [Windows版 - 3]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
《嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Linux版 - 3]
![《<b class='flag-5'>嵌入式</b> - STM32開發(fā)指南》<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搭建STM32開發(fā)環(huán)境 [Linux版 - 3]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【嵌入式秘術(shù)】手把手教你如何劫持RTOS(下)

評論