前言
當(dāng)我們?cè)诜治鯥OT設(shè)備,如智能攝像頭沥潭、智能門(mén)鎖、智能路由器等等產(chǎn)品時(shí)寓娩,采用傳統(tǒng)的安全檢測(cè)手段叛氨,如對(duì)APP的逆向、云端服務(wù)器的滲透測(cè)試棘伴、產(chǎn)品通信的抓包等方式可以獲得部分的信息寞埠,但如果需要深入分析智能設(shè)備底層的工作原理,從中發(fā)現(xiàn)更深層次的安全問(wèn)題焊夸,就不可避免的需要直接接觸硬件本身仁连,這也是傳統(tǒng)安全手段未能觸及的部分,據(jù)此阱穗,下面簡(jiǎn)單的談下關(guān)于電路分析和芯片固件提取和調(diào)試的一點(diǎn)心得饭冬。
芯片
ROM芯片
常見(jiàn)的IOT產(chǎn)品,一般采用嵌入式linux系統(tǒng)開(kāi)發(fā)揪阶,對(duì)芯片分析主要目的之一就是獲取到硬件系統(tǒng)的固件昌抠,從固件中分析可能存在的安全風(fēng)險(xiǎn)。
固件一般存儲(chǔ)在ROM中鲁僚,ROM是只讀存儲(chǔ)器(Read-Only Memory)的簡(jiǎn)稱(chēng)炊苫,是一種只能讀出事先所存數(shù)據(jù)的固態(tài)半導(dǎo)體存儲(chǔ)器。其特性是一旦儲(chǔ)存資料就無(wú)法再將之改變或刪除冰沙。通常用在不需經(jīng)常變更資料的電子或電腦系統(tǒng)中侨艾,并且資料不會(huì)因?yàn)殡娫搓P(guān)閉而消失。
常見(jiàn)的存儲(chǔ)芯片按照存儲(chǔ)讀取方式和制作工藝不同拓挥,可以分為: ROM唠梨、PROM、EPROM侥啤、EEPROM当叭、FLASH-ROM茬故。
在大部分IOT產(chǎn)品中多采用flash芯片作為存儲(chǔ)器,提取固件主要也是通過(guò)讀取flash芯片科展。
Flash芯片
FLASH ROM屬于真正的單電壓芯片均牢,在使用上很類(lèi)似EEPROM糠雨,因此才睹,有些書(shū)籍上便把FLASH ROM作為EEPROM的一種。事實(shí)上甘邀,二者還是有差別的琅攘。FLASH ROM在擦除時(shí),也要執(zhí)行專(zhuān)用的刷新程序松邪,但是在刪除資料時(shí)坞琴,并非以Byte為基本單位,而是以Sector(又稱(chēng)Block)為最小單位逗抑,Sector 的大小隨廠商的不同而有所不同剧辐;只有在寫(xiě)入時(shí),才以Byte為最小單位寫(xiě)入邮府;FLASH ROM芯片的讀和寫(xiě)操作都是在單電壓下進(jìn)行荧关,不需跳線,只利用專(zhuān)用程序即可方便地修改其內(nèi)容褂傀;FLASH ROM的存儲(chǔ)容量普遍大于EEPROM忍啤,約為512K到至8M KBit,由于大批量生產(chǎn)仙辟,價(jià)格也比較合適同波,很適合用來(lái)存放程序碼,近年來(lái)已逐漸取代了EEPROM叠国,廣泛用于主板的BIOS ROM未檩,也是CIH攻擊的主要目標(biāo)。
根據(jù)技術(shù)方式不同可分為: IIC EEPROM粟焊、SPI NorFlash 冤狡、CFI Flash、Parallel NandFlash吆玖、SPI NandFlash筒溃、eMMC Flash、USF2.0等沾乘。
其中SPI NorFlash因?yàn)榻涌诤?jiǎn)單怜奖,使用的引腳少,易于連接翅阵,操作方便歪玲,并且可以在芯片上直接運(yùn)行代碼迁央,其穩(wěn)定性出色,傳輸速率高滥崩,在小容量時(shí)具有很高的性價(jià)比岖圈,這使其很適合應(yīng)于嵌入式系統(tǒng)中作為 FLASH ROM,所以在市場(chǎng)的占用率非常高钙皮。
我們通常見(jiàn)到的S25FL128蜂科、MX25L1605、W25Q64等型號(hào)都是SPI NorFlash短条,其常見(jiàn)的封裝多為SOP8导匣,SOP16,WSON8茸时,US0N8贡定,QFN8、BGA24等可都。
芯片印字
一般PCB上有多塊邏輯處理IC缓待,在多個(gè)IC芯片中,可以通過(guò)分析電路原理和查找芯片印字來(lái)確定具體的存儲(chǔ)芯片渠牲。
芯片上的絲印大多數(shù)情況會(huì)注明廠商和芯片型號(hào)旋炒,通過(guò)印字可以初步確定芯片類(lèi)型,同時(shí)絲印層的文字也可以幫助我們來(lái)確定存儲(chǔ)的格式和大小嘱兼,常見(jiàn)的W25芯片的印字含義如下:
編程器
讀取Flash芯片国葬,需要借助編程器,編程器又稱(chēng)燒錄器芹壕、寫(xiě)入器汇四、寫(xiě)碼器,是專(zhuān)門(mén)用來(lái)對(duì)IC芯片進(jìn)行讀寫(xiě)踢涌、編程/燒錄的儀器通孽。并口多功能BIOS編程器,它可以對(duì)EPROM(27系列芯片)睁壁、EEPROM(28系列芯片)背苦、FLASH ROM(29、39潘明、49系列芯片)及單片機(jī)行剂、串行芯片等進(jìn)行讀寫(xiě)、編程钳降,是一種性價(jià)比較高的編程器厚宰。
編程器種類(lèi)多樣,從功能簡(jiǎn)單的專(zhuān)用型到功能全面的全功能通用型都有,價(jià)格從幾十元到上萬(wàn)元不等铲觉。
通信協(xié)議
串口通信指串口按位(bit)發(fā)送和接收字節(jié)澈蝙。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)撵幽。在串口通信中灯荧,常用的協(xié)議包括RS-232、RS-422和RS-485盐杂。
RS-232
通信方式允許簡(jiǎn)單連接三線:Tx逗载、Rx和地線。但是對(duì)于數(shù)據(jù)傳輸况褪,雙方必須對(duì)數(shù)據(jù)定時(shí)采用使用相同的波特率撕贞。
RS-422
RS-422標(biāo)準(zhǔn)全稱(chēng)是“平衡電壓數(shù)字接口電路的電氣特性”更耻,在RS232后推出测垛,使用TTL差動(dòng)電平表示邏輯,就是兩根的電壓差表示邏輯秧均,RS422定義為全雙工的食侮,所以最少要4根通信線(一般額外地多一根地線)。
RS-485
RS485是一個(gè)定義平衡數(shù)字多點(diǎn)系統(tǒng)中的驅(qū)動(dòng)器和接收器的電氣特性的標(biāo)準(zhǔn)目胡,RS-485與RS-422的區(qū)別在于RS-485為半雙工通信方式锯七,RS-422為全雙工方式。RS-422用兩對(duì)平衡差分信號(hào)線分別用于發(fā)送和接收誉己,所以采用RS-422接口通信時(shí)最少需要4根線眉尸。RS-485只用一對(duì)平衡差分信號(hào)線,不能同時(shí)發(fā)送和接收巨双,最少只需兩根連線噪猾。
SPI
spi是串行外設(shè)接口(Serial Peripheral Interface)的縮寫(xiě)。SPI筑累,是一種高速的袱蜡,全雙工,同步的通信總線慢宗,并且在芯片的管腳上只占用四根線坪蚁,節(jié)約了芯片的管腳蛤高,同時(shí)為PCB的布局上節(jié)省空間起意,提供方便祸泪,正是出于這種簡(jiǎn)單易用的特性鸭巴,如今越來(lái)越多的芯片集成了這種通信協(xié)議诀浪,比如AT91RM9200车酣。
I2C
I2C 即Inter-Integrated Circuit(集成電路總線)获黔,這種總線類(lèi)型是由飛利浦半導(dǎo)體公司在八十年代初設(shè)計(jì)出來(lái)的一種簡(jiǎn)單医窿、雙向宾舅、二線制统阿、同步串行總線彩倚,主要是用來(lái)連接整體電路(ICS) ,IIC是一種多向控制總線扶平,也就是說(shuō)多個(gè)芯片可以連接到同一總線結(jié)構(gòu)下帆离,同時(shí)每個(gè)芯片都可以作為實(shí)時(shí)數(shù)據(jù)傳輸?shù)目刂圃础_@種方式簡(jiǎn)化了信號(hào)傳輸總線接口结澄。
信號(hào)分析
示波器分析
示波器是一種用途十分廣泛的電子測(cè)量?jī)x器哥谷。它能把肉眼看不見(jiàn)的電信號(hào)變換成看得見(jiàn)的圖像,便于人們研究各種電現(xiàn)象的變化過(guò)程麻献。示波器利用狹窄的们妥、由高速電子組成的電子束,打在涂有熒光物質(zhì)的屏面上勉吻,就可產(chǎn)生細(xì)小的光點(diǎn)(這是傳統(tǒng)的模擬示波器的工作原理)监婶。在被測(cè)信號(hào)的作用下,電子束就好像一支筆的筆尖齿桃,可以在屏面上描繪出被測(cè)信號(hào)的瞬時(shí)值的變化曲線惑惶。利用示波器能觀察各種不同信號(hào)幅度隨時(shí)間變化的波形曲線,還可以用它測(cè)試各種不同的電量短纵,如電壓带污、電流、頻率香到、相位差鱼冀、調(diào)幅度等等。
通過(guò)分析電路結(jié)構(gòu)悠就,找到待測(cè)的引腳和信號(hào)源千绪,分析其信號(hào)變化和具體的信號(hào)形式,得到模擬信號(hào)和經(jīng)過(guò)外部AD轉(zhuǎn)換信號(hào)的波形圖。
邏輯分析儀
邏輯分析儀是分析數(shù)字系統(tǒng)邏輯關(guān)系的儀器理卑。邏輯分析儀是屬于數(shù)據(jù)域測(cè)試[2]儀器中的一種總線分析儀翘紊,即以總線(多線)概念為基礎(chǔ),同時(shí)對(duì)多條數(shù)據(jù)線上的數(shù)據(jù)流進(jìn)行觀察和測(cè)試的儀器藐唠,這種儀器對(duì)復(fù)雜的數(shù)字系統(tǒng)的測(cè)試和分析十分有效帆疟。邏輯分析儀是利用時(shí)鐘從測(cè)試設(shè)備上采集和顯示數(shù)字信號(hào)的儀器,最主要作用在于時(shí)序判定宇立。由于邏輯分析儀不像示波器那樣有許多電壓等級(jí)踪宠,通常只顯示兩個(gè)電壓(邏輯1和0),因此設(shè)定了參考電壓后妈嘹,邏輯分析儀將被測(cè)信號(hào)通過(guò)比較器進(jìn)行判定柳琢,高于參考電壓者為High,低于參考電壓者為L(zhǎng)ow,在High與 Low之間形成數(shù)字波形。
通過(guò)連接待測(cè)設(shè)備的接口柬脸,分析其中通信數(shù)據(jù)他去,通過(guò)協(xié)議轉(zhuǎn)碼,可以得到具體的16進(jìn)制數(shù)據(jù)倒堕。
設(shè)備拆解
對(duì)于一臺(tái)未接觸過(guò)的機(jī)器灾测,拆解首先需要觀察其外部結(jié)構(gòu),是否存在暴露的螺絲孔垦巴,如果沒(méi)有媳搪,一般可能隱藏在貼紙或橡膠墊下面,可以用手感受是否存在空洞骤宣,部分機(jī)器采用卡榫結(jié)構(gòu)秦爆,只要找對(duì)方向,用一字螺絲刀或撬片憔披,從縫隙中就可以撬開(kāi)等限,拆解設(shè)備唯一的要訣就是膽大心細(xì)。部分常用工具如下:
維修組合套裝活逆,用來(lái)拆裝各類(lèi)螺絲精刷,PCB夾用來(lái)拔出排線,熱風(fēng)槍和焊臺(tái)用來(lái)拆焊各類(lèi)元器件和芯片蔗候,BGA焊臺(tái)用于拆焊BGA封裝的芯片。
常見(jiàn)物聯(lián)網(wǎng)智能設(shè)備
共享充電寶埂软,采用gprs模塊配合物聯(lián)卡與云端通信
藍(lán)牙掛鎖锈遥,通過(guò)藍(lán)牙芯片與手機(jī)配對(duì)通信,
藍(lán)牙控制電機(jī)驅(qū)動(dòng)勘畔,使卡鎖運(yùn)轉(zhuǎn)
共享充電寶所灸,采用GSM模塊加藍(lán)牙模塊控制通信
智能鎖,WIFI芯片加藍(lán)牙芯片配合控制炫七,外接指紋識(shí)別傳感器
智能攝像頭爬立,采用WIFI芯片通信,外接音頻万哪、視頻處理模塊
網(wǎng)絡(luò)攝像機(jī)侠驯,采用網(wǎng)卡芯片,配合多口輸出輸入視頻信號(hào)模塊
智能路由器奕巍,高容量?jī)?nèi)存搭配智能OS
智能家居控制終端吟策,高性能WIFI收發(fā)中繼控制
智能保險(xiǎn)柜,采用WIFI芯片控制加指紋識(shí)別傳感器
無(wú)線終端的止,采用4G模塊和WIFI芯片檩坚,做便攜式WIFI終端
參考文獻(xiàn)
http://www.china-cic.cn/ 中國(guó)通信協(xié)會(huì)相關(guān)文獻(xiàn)
https://www.eia.gov/ 美國(guó)電子工業(yè)協(xié)會(huì)相關(guān)標(biāo)準(zhǔn)