<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 現(xiàn)實(shí)世界中的嵌入式安全

          現(xiàn)實(shí)世界中的嵌入式安全

          作者: 時(shí)間:2011-05-02 來(lái)源:網(wǎng)絡(luò) 收藏

          假如您是一位電子工程師,受聘于一家公司,職責(zé)是為汽水自動(dòng)售貨機(jī)添加性能。在面試時(shí),憑著對(duì)加密技術(shù)的淵博知識(shí),您給新雇主留下了深刻印象?,F(xiàn)在,表現(xiàn)的時(shí)候到了。從表面看來(lái),這個(gè)工作應(yīng)該像利用優(yōu)良的加密算法挑選芯片一樣簡(jiǎn)單,但可不是這樣簡(jiǎn)單的。

          本文引用地址:http://www.ex-cimer.com/article/150810.htm

          自動(dòng)售貨機(jī)等嵌入設(shè)備的隱憂
          為什么要召集大隊(duì)人馬來(lái)保護(hù)汽水自動(dòng)售貨機(jī)?因?yàn)槠詣?dòng)售貨機(jī)存在隱憂,而且各地的機(jī)器制造商都感受到了這種實(shí)際存在的問(wèn)題。通過(guò)機(jī)器固件提高安全性呈現(xiàn)出日益上升的趨勢(shì),雖然乍一看來(lái),這些機(jī)器似乎并不需要這樣的安全性能。汽水自動(dòng)售貨機(jī)是本文所選取的一個(gè)例子,你不難想到其他這樣的例子:例如停車計(jì)時(shí)器、自助洗衣房里的洗衣機(jī)和烘干機(jī)、收費(fèi)亭和售票機(jī)等。


          目前的售貨機(jī)正在實(shí)現(xiàn)聯(lián)網(wǎng),以便提供有助于削減運(yùn)營(yíng)成本和增加收益的直觀實(shí)時(shí)信息?,F(xiàn)在,機(jī)主可以知道哪臺(tái)機(jī)器需要維修,而且掌握著相關(guān)資料,可以選擇最適合的產(chǎn)品組合并安裝機(jī)器。實(shí)時(shí)信息是對(duì)抗競(jìng)爭(zhēng)和盜賊的有利武器。利用這一信息流的競(jìng)爭(zhēng)者可以利用這些信息來(lái)提高產(chǎn)品的競(jìng)爭(zhēng)攻勢(shì),也可隱藏機(jī)主信息(例如,拒絕服務(wù)攻擊)。同樣,現(xiàn)在盜賊也知道可以搶劫哪臺(tái)機(jī)器或者何時(shí)進(jìn)行搶劫。

          圖1 越來(lái)越多的應(yīng)用領(lǐng)域發(fā)現(xiàn)了實(shí)現(xiàn)機(jī)器聯(lián)網(wǎng)的價(jià)值,從而引發(fā)了對(duì)安全的需求

          如何實(shí)施保護(hù)
          上面做了簡(jiǎn)要的介紹,得出的結(jié)論是:產(chǎn)品設(shè)計(jì)者必須保護(hù)由自動(dòng)售貨機(jī)發(fā)送的信息。一種相當(dāng)簡(jiǎn)單的方法就是對(duì)網(wǎng)絡(luò)上的信息進(jìn)行加密,并防止自動(dòng)收貨機(jī)內(nèi)的密鑰和固件被非法訪問(wèn)。


          網(wǎng)絡(luò)信息的加密簡(jiǎn)單而直接。首先,確定一種良好的加密算法,最佳候選算法是那些公開(kāi)算法而非私密性算法,因?yàn)楣_(kāi)算法已經(jīng)通過(guò)了公眾檢驗(yàn),高級(jí)加密標(biāo)準(zhǔn)(AES)算法便是一個(gè)很好的例子;接著,在自動(dòng)售貨機(jī)的MCU中應(yīng)用該算法。為了實(shí)現(xiàn)這一點(diǎn),您可以通過(guò)在固件中嵌入該算法,也可以選擇在硬件中固化該算法的MCU。


          最后但同樣重要的是,按照推薦模式使用算法。為了通過(guò)加密算法實(shí)現(xiàn)信息的安全性,所需的不僅僅是將明文順序全部打亂以獲得密文。大部分公開(kāi)的算法都有運(yùn)行的推薦模式,以此來(lái)保證它們加密數(shù)據(jù)的保密性。


          AES可用的樣例模式包括密碼段鏈接(CBC)、密碼反饋(CFB)、填充密碼塊鏈接(PCBC)、輸出反饋(OFB)和計(jì)數(shù)器(CTR),可將他們按照不同組合方式來(lái)加以使用,從而提高加密強(qiáng)度。有關(guān)這些算法類型和使用的深入討論不屬于本文討論的范圍。需要知道的一點(diǎn)是,僅僅擁有這些算法并不能保障安全。


          防止無(wú)正當(dāng)理由獲悉密鑰或未經(jīng)授權(quán)訪問(wèn)固件,這種做法不是那么直接,因此理解起來(lái)難度較大。對(duì)于許多安全措施而言,這往往最容易產(chǎn)生弱點(diǎn)。這一弱點(diǎn)源自對(duì)攻擊者資源的低估和對(duì)硬件防入侵篡改的集成電路價(jià)值的低估。通常,人們把加密等同于安全,因此,沒(méi)有看到防篡改保護(hù)集成電路的投資價(jià)值。

          選擇安全MCU,還是采用其他方法
          您作為一名受人尊重的電子工程專業(yè)人士,通過(guò)閱讀本雜志保持與當(dāng)前業(yè)界趨勢(shì)同步,您能夠快速分析事實(shí),并提出十分簡(jiǎn)單的解決方案:利用安全MCU替換自動(dòng)售貨機(jī)中的MCU,并增加少量的額外固件。安全MCU可以保護(hù)固件和密鑰,加密通信,并實(shí)現(xiàn)硬件防篡改和防侵入。


          事實(shí)上,它們可以檢測(cè)到多種復(fù)雜的攻擊,并采取從簡(jiǎn)單的延遲應(yīng)答到關(guān)機(jī)的各種措施。安全MCU是銀行用來(lái)運(yùn)營(yíng)ATM機(jī)的IC芯片?,F(xiàn)在讓您設(shè)計(jì)一個(gè)解決方案,方案中不采用安全MCU,能辦到嗎?


          事實(shí)是,安全MCU成本更高,而且,您的公司也許要堅(jiān)持使用它們的標(biāo)準(zhǔn)處理器。安全MCU的編寫(xiě)代碼也比較難,導(dǎo)致更高的工程成本。

          中的工程解決方案
          當(dāng)市場(chǎng)營(yíng)銷、采購(gòu)乃至工程師同事們集體投票,對(duì)一個(gè)看上去具有絕對(duì)把握的解決方案進(jìn)行表決,作為一名工程師,您該怎么做?重新設(shè)定您的期望。我們的做法是,這意味著,不必依賴安全MCU,不必期望固件的更大內(nèi)存,也不要忽視任何改變。


          重新評(píng)估您的策略。不是把一切都集成一團(tuán),以放入安全MCU的單個(gè)保護(hù)外殼中,而是以不損害安全性能的方式,把系統(tǒng)分解成非安全的和安全的部分。非安全的部分將包含售貨機(jī)的核心業(yè)務(wù)(銷售)邏輯,而安全的部分將包括兩個(gè)子組件,一個(gè)用于保護(hù)密鑰,另一個(gè)用于驗(yàn)證系統(tǒng)完整性。


          密鑰保護(hù)需要在物理保護(hù)之下進(jìn)行存儲(chǔ)和使用,這種物理保護(hù)與安全MCU所提供的安全保護(hù)相類似。這需要采用一種集成電路,這種集成電路須與安全MCU一樣具備較強(qiáng)的物理性能,此外,無(wú)須其他東西。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();