最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

物聯(lián)網(wǎng)安全研究人員可從智能燈泡得知你的WiFi密碼

出處:電子發(fā)燒友網(wǎng) 發(fā)布于:2018-08-21 13:42:26

  近十年,隨著傳感器技術(shù)、無線通信技術(shù)的迅速發(fā)展,越來越多的物聯(lián)網(wǎng)產(chǎn)品出現(xiàn)在我們的視野中,Gartner預(yù)測(cè),到2020年,物聯(lián)網(wǎng)設(shè)備的裝機(jī)量將超過200億,但很多物聯(lián)網(wǎng)設(shè)備受到成本、研發(fā)人員安全素質(zhì)等因素的限制,存在大量的安全問題。例如2016年底的Mirai事件,就是因?yàn)槿蹩诹詈臀葱迯?fù)的設(shè)備漏洞引起的。物聯(lián)網(wǎng)終端的安全,也越來越受到人們的關(guān)注。

  物聯(lián)網(wǎng)安全研究人員滲透進(jìn)了某智能燈泡,獲取到了Mesh網(wǎng)絡(luò)內(nèi)傳輸?shù)腤iFi信息(包括WiFi密碼)。盡管在該中WiFi密碼被加密,但是研究人員依然通過獲取設(shè)備的底層固件,得到了加密算法和密鑰信息,終得到了明文的WiFi密碼。固件提取進(jìn)而分析固件是攻擊者常見的滲透手段,反之如果廠商想要生產(chǎn)出高安全級(jí)別的智能燈泡,步就是要防止固件內(nèi)容被竊取。

  接下來,我們對(duì)這次做個(gè)簡(jiǎn)單的分析,然后進(jìn)一步分析固件提取原理和過程,總結(jié)在現(xiàn)有的技術(shù)背景下獲取固件的方法和相應(yīng)的防護(hù)方法。為了描述方便,我們把這種獲取固件的技術(shù)稱為固件提取。

  回放

  文章中提到的攻擊,可以分3步:

  1.利用單片機(jī)和支持IEEE 802.15.4無線通信的模塊來抓取6LoWPAN流量中的數(shù)據(jù),提取出WiFi信息(此時(shí)加密的)。

  2.通過提取固件、分析固件,分析出其采用的是AES加密算法,并提取出加密密鑰和初始向量等信息。

  3.根據(jù)2中獲取的信息來解密得到WiFi密碼。

  這是一個(gè)典型的針對(duì)家庭局域網(wǎng)絡(luò)內(nèi)的嗅探攻擊。今后的物聯(lián)網(wǎng)設(shè)備將有一大部分是作為Mesh網(wǎng)絡(luò)節(jié)點(diǎn)存在,只不過網(wǎng)關(guān)可能是手機(jī)、路由器、筆記本電腦等一切具備藍(lán)牙、ZigBee、WiFi等無線聯(lián)網(wǎng)能力的設(shè)備?;诂F(xiàn)有的網(wǎng)絡(luò)來看今后的物聯(lián)網(wǎng),設(shè)備如果想要具有聯(lián)網(wǎng)能力,則必須利用至少一條有線或無線的通道連接到互聯(lián)網(wǎng)。如果是通過WiFi連接,必要的信息就是WiFi的SSID和密碼。

  中,攻擊者通過分析固件得到了解密WiFi密碼所需的信息——加密密鑰和AES初始向量。那為什么研究人員可以獲取到固件呢?下面我們將分析固件提取的原理,并且分析在現(xiàn)有的技術(shù)背景下,提取物聯(lián)網(wǎng)節(jié)點(diǎn)上低性能智能設(shè)備固件的方法。

  固件提取的原理

  以STM32F103系列單片機(jī)為例。該單片機(jī)基于ARM Cortex M3內(nèi)核,片內(nèi)帶有64KB的Flash和20KB的SRAM。單片機(jī)讀取程序到SRAM再進(jìn)行譯碼。目前已知的有兩個(gè)地方會(huì)存儲(chǔ)需要運(yùn)行的程序:

  1.單片機(jī)內(nèi)的Flash/ROM。

  2.單片機(jī)外掛的Flash/ROM。

  對(duì)于存儲(chǔ)器來說,讀和寫的操作是基本的,即:必然存在一種方式,可以把存儲(chǔ)器中的數(shù)據(jù)讀取出來。如果讀取的數(shù)據(jù)是單片機(jī)需要翻譯的機(jī)器碼,那么我們就把讀取的過程叫提取,把要讀取的數(shù)據(jù)稱為固件。

  stm32f103c8t6單片機(jī)的片內(nèi)Flash的地址是0x08000000-0x0801ffff(如上圖所示),總共64KB。如果要提取出固件,有必要了解代碼是如何燒寫進(jìn)芯片內(nèi)的Flash區(qū)域里面的。

  在開發(fā)過程中,會(huì)有如下過程:

  1.搭建好編譯環(huán)境,編寫程序代碼(一般采用程序設(shè)計(jì)語言,如C語言),編譯、生成可執(zhí)行文件。

  2.搭建好燒寫環(huán)境,把可執(zhí)行文件傳到單片機(jī)芯片中,使單片機(jī)上電可以運(yùn)行。

  編譯環(huán)境就是用把單片機(jī)C語言程序編譯成匯編、機(jī)器碼等,生成16進(jìn)制hex文件或者二進(jìn)制bin文件,一個(gè)編譯器即可。燒寫環(huán)境就是把機(jī)器碼到上圖的Flash區(qū)域的過程中所需的工具,包含J-link、U-link、ST-LINK(stm32單片機(jī)專用)等硬件工具和STVP、mcuisp等軟件(使用一套軟硬件即可)

  請(qǐng)注意,燒寫、、上傳、提取這四個(gè)詞,說白了,就是對(duì)Flash區(qū)域讀寫的過程。目前發(fā)現(xiàn)兩種讀取固件的方式,種是依托于生產(chǎn)廠商固化在芯片內(nèi)的bootloader,把Flash中的固件讀取出來,第二種是通過調(diào)試接口把固件讀出來。種需要bootloader支持,而且一般是支持的。第二種是依靠硬件調(diào)試工具直接讀取,在前面的中,研究人員通過PCB上保留的JTAG調(diào)試接口,把固件讀取了出來。

  篇幅所限,讀取過程中的交互細(xì)節(jié)不多介紹,直接介紹兩類固件提取的工具和方法,一類是以stm32單片機(jī)為例的單片機(jī)固件提取的工具和方法,一類是外掛Flash形式的Flash固件提取的工具和方法。

  單片機(jī)片內(nèi)

  Flash的固件提取的工具和方法:

  單片機(jī)固件提取方式有兩類,一類是通過bootloader讀取,一類是通過調(diào)試接口讀取。

  利用bootloader提取

  通過串口,把芯片和電腦相連,運(yùn)行mcuisp軟件,點(diǎn)擊讀Flash即可。

  mcuisp軟件通常被用來通過串口通信固件到單片機(jī)。串口通信也是通信技術(shù)的一種,目的是實(shí)現(xiàn)芯片A到芯片B的數(shù)據(jù)傳輸,是芯片之間經(jīng)常用到的通信方式。例如:如果我的目的是把程序代碼“abcd”傳輸?shù)叫酒珹中,但是,我僅僅通過電腦與沒有bootloader的單片機(jī)進(jìn)行串口通信,“abcd”是沒辦法直接儲(chǔ)存到Flash區(qū)域的,必須在單片機(jī)內(nèi)部寫好一段代碼,在“abcd”已經(jīng)通過串行接口,一個(gè)一個(gè)的到達(dá)單片機(jī)內(nèi)部的緩沖器時(shí),把 “abcd”一個(gè)一個(gè)的轉(zhuǎn)存到Flash區(qū)域。這樣就實(shí)現(xiàn)一種電腦直接寫入“abcd”到Flash的假象,達(dá)到用戶無感知或是透明傳輸?shù)男Ч?。提取固件的過程與上述過程相反,只需要利用bootloader把Flash的內(nèi)容通過串口通信發(fā)送給電腦即可。

  利用硬件調(diào)試接口提取

  在開發(fā)單片機(jī)程序時(shí),會(huì)用到硬件調(diào)試工具,實(shí)現(xiàn)單步運(yùn)行來查看程序?qū)崟r(shí)運(yùn)行的效果。一般可以通過下面兩類調(diào)試接口,把Flash中的數(shù)據(jù)讀取出來。

 ?。?)SWD接口,利用硬件:J-LINK OB或者J-LINK或者ST-LINK;利用軟件:J-LINK驅(qū)動(dòng)程序自帶的J-FLASH或者ST提供的STVP。

 ?。?)JTAG接口,利用硬件:J-LINK;利用軟件:J-LINK驅(qū)動(dòng)自帶的J-FLASH。

  如果找不到串行接口,可以用這種方式,當(dāng)然,前提是產(chǎn)品電路板上可以引出這兩類接口之一,否則只能取下芯片了。

  單片機(jī)片外

  作為一個(gè)存儲(chǔ)器,上電之后不可能自己就把數(shù)據(jù)顯示給我們,就好像U盤買回來,得插電腦上,加載完驅(qū)動(dòng)才能讀取到里面的數(shù)據(jù)。對(duì)于片外Flash,需要把Flash芯片從產(chǎn)品的電路板中取下來,再放到另外一個(gè)帶有MCU的電路板上來讀取數(shù)據(jù)。的淘寶提供了編程器,方便了對(duì)眾多Flash芯片的內(nèi)部數(shù)據(jù)的提取。

  這種方式有兩個(gè)缺點(diǎn):

  一是比較暴力,需要把Flash芯片從電路板上取下來,再把Flash芯片放到編程器上面,利用配套的PC端軟件,把固件讀取出來。

  二是Flash芯片型號(hào)需要得到編程器的支持。那問題來了,如果這個(gè)編程器不支持我的Flash的型號(hào)呢?那就自己寫個(gè)單片機(jī)程序把程序讀出來吧。

  一般,在大學(xué)本科修讀電子信息工程、通信工程或自動(dòng)化的,有獨(dú)立硬件項(xiàng)目開發(fā)經(jīng)驗(yàn)的同學(xué),都可以獨(dú)立實(shí)現(xiàn)。

  防護(hù)措施

  介紹了這么多提取固件的工具和方法,那現(xiàn)在有哪些方法能有效防止產(chǎn)品固件被提取出來呢?

  針對(duì)單片機(jī)固件提取的防護(hù):我們可以通過編程的方式,把內(nèi)部Flash區(qū)域設(shè)置為讀保護(hù)狀態(tài),這樣只要不對(duì)MCU進(jìn)行解封,利用顯微鏡對(duì)內(nèi)部Flash的電平狀態(tài)進(jìn)行破壞,是很難篡改固件的,至于讀取固件,基本上不可能。例如,我們對(duì)stm32單片機(jī)的RDP寄存器進(jìn)行設(shè)置,使內(nèi)存保護(hù)等級(jí)提升至level 2,或者把重要的程序和數(shù)據(jù)利用PCROP功能保護(hù)起來,防止讀取。

  對(duì)外掛的Flash內(nèi)的固件,目前,就本人所知,只要能取下來,獲得型號(hào),就可以得到固件。

  那問題就變成了:如何不讓攻擊者把Flash安全地取下來?我建議硬件設(shè)計(jì)工程師把PCB上的Flash芯片,依靠電路設(shè)計(jì)保護(hù)起來。例如:設(shè)計(jì)Flash芯片在線檢測(cè)電路,一旦Flash芯片的引腳出現(xiàn)斷線,則立刻發(fā)動(dòng)強(qiáng)電壓攻擊,將Flash芯片破壞,防止攻擊者讀取出Flash芯片中的固件。

  總結(jié)

  我們通過分析固件提取的原理,介紹固件提取可用的方法和工具以及相應(yīng)的防護(hù)措施,希望可以使更多的電子工程師、嵌入式軟件工程師重視智能設(shè)備固件的保護(hù)。同時(shí),我們希望這篇文章可以給物聯(lián)網(wǎng)安全從業(yè)人員帶來一些物聯(lián)網(wǎng)設(shè)備的防護(hù)建議。希望在智能設(shè)備開發(fā)工程師和安全測(cè)評(píng)工程師的共同努力下,我們身邊的智能設(shè)備變得越來越安全。


關(guān)鍵詞:智能燈泡,wifi,單片機(jī),無線通信技術(shù)

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!