一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

454398 ? 來源:電子發(fā)燒友網(wǎng)整理 ? 作者:h1654155596.7254 ? 2017-08-04 09:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為助力中國電子工程師更好將創(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é)議。

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

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è)備都各有一個讀和寫地址,只有知道了這個讀寫地址才能跟其通訊。

手把手DIY,教你強(qiáng)攻嵌入式設(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é)議如下:

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

BusPirate 接口連接示意圖:

BusPirate 命令列表:

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

攻擊案例 -- 數(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ù)總線)。

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

終于我們的神器BusPirate要派上用場了。我們首先用數(shù)據(jù)線將24C02的I2C 管腳和BusPirate的對應(yīng)接口連接起來。

隨后通過minicom 或其他serial tools 進(jìn)入Buspirate的I2C調(diào)試模式。

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

在I2C 的調(diào)試模式中,有個非常有用的功能I2C sniffer。通過它我們可以監(jiān)控I2C 的數(shù)據(jù),用過WIRESHARK 的朋友一定不會陌生。

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

開啟了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一覽無遺。

手把手DIY,教你強(qiáng)攻嵌入式設(shè)備那些黑科技

▲如圖:因?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)去。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5152

    文章

    19678

    瀏覽量

    317789
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3683

    瀏覽量

    131446
  • DIY
    DIY
    +關(guān)注

    關(guān)注

    176

    文章

    894

    瀏覽量

    353399
  • 智能硬件
    +關(guān)注

    關(guān)注

    205

    文章

    2387

    瀏覽量

    109278
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    電子發(fā)燒友年終盤點(diǎn)——內(nèi)容精選

    其中排名靠前的TOP50,在這里綜合精選20余篇,讓諸位重溫這些文章。DIY高大上!用STM32單片機(jī)搞定四旋翼無人機(jī)飛控你想知道的NB-IoT知識都在這里了!手把手DIY,教你
    發(fā)表于 02-06 15:01

    手把手教你怎樣去實(shí)現(xiàn)一個嵌入式軟件架構(gòu)的設(shè)計

    手把手教你怎樣去實(shí)現(xiàn)一個嵌入式軟件架構(gòu)的設(shè)計?有哪些步驟及其要求呢?
    發(fā)表于 12-24 06:54

    手把手教你構(gòu)建一個完整的工程

    手把手教你構(gòu)建一個完整的工程
    發(fā)表于 08-03 09:54 ?33次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>構(gòu)建一個完整的工程

    手把手教你寫批處理-批處理的介紹

    手把手教你寫批處理-批處理的介紹
    發(fā)表于 10-25 15:02 ?69次下載

    美女手把手教你如何裝機(jī)(中)

    美女手把手教你如何裝機(jī)(中) 再來是硬碟的部份,這款機(jī)殼還不錯,可以旋轉(zhuǎn)支架~
    發(fā)表于 01-27 11:14 ?1527次閱讀

    美女手把手教你如何裝機(jī)(下)

    美女手把手教你如何裝機(jī)(下) 接著下來就是今天的重頭戲,開核蘿!~
    發(fā)表于 01-27 11:16 ?3027次閱讀

    手把手教你學(xué)電子書制作

    手把手教你學(xué)電子書制作,可以自己DIY電子書
    發(fā)表于 09-13 11:26 ?0次下載

    手把手教你安裝Quartus II

    本章手把手把教你如何安裝 Quartus II 軟件 ,并將它激活 。此外 還有USB -Blaster下載器的驅(qū)動安裝步驟 。
    發(fā)表于 09-18 14:55 ?9次下載

    手把手教你在家搭建監(jiān)控系統(tǒng)

    手把手教你在家搭建監(jiān)控系統(tǒng)
    發(fā)表于 01-17 19:47 ?28次下載

    手把手教你如何開始DSP編程

    手把手教你如何開始DSP編程。
    發(fā)表于 04-09 11:54 ?13次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何開始DSP編程

    手把手教你學(xué)LabVIEW視覺設(shè)計

    手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視
    發(fā)表于 03-06 01:41 ?3328次閱讀

    嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Windows版 - 3]

    嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Windows版 - 1]《嵌入式 - STM32開發(fā)指南》手把手
    發(fā)表于 12-06 09:36 ?0次下載
    《<b class='flag-5'>嵌入式</b> - STM32開發(fā)指南》<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搭建STM32開發(fā)環(huán)境 [Windows版 - 3]

    嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Linux版 - 3]

    嵌入式 - STM32開發(fā)指南》手把手教你搭建STM32開發(fā)環(huán)境 [Linux版 - 1]《嵌入式 - STM32開發(fā)指南》手把手
    發(fā)表于 12-06 09:36 ?0次下載
    《<b class='flag-5'>嵌入式</b> - STM32開發(fā)指南》<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>搭建STM32開發(fā)環(huán)境 [Linux版 - 3]

    嵌入式秘術(shù)】手把手教你如何劫持RTOS(下)

    在《【嵌入式秘術(shù)】手把手教你如何劫持RTOS(上)》中,我們做了簡單的熱身——介紹了一種在你擁有某一個庫的源代碼或者.lib文件時,如何...
    發(fā)表于 01-25 18:51 ?7次下載
    【<b class='flag-5'>嵌入式</b>秘術(shù)】<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何劫持RTOS(下)

    手把手教你學(xué)FPGA仿真

    電子發(fā)燒友網(wǎng)站提供《手把手教你學(xué)FPGA仿真.pdf》資料免費(fèi)下載
    發(fā)表于 10-19 09:17 ?2次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>學(xué)FPGA仿真