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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 實現(xiàn)安全的USB傳輸

          實現(xiàn)安全的USB傳輸

          作者: 時間:2013-08-31 來源:網(wǎng)絡 收藏
          隨著越來越多的嵌入式設計趨向于與計算機進行通信,對USB連接的需求正在持續(xù)增長。USB沒有內(nèi)置來保護總線上通信的數(shù)據(jù),對于某些應用來說,這可能是一個問題。

            USB定義了多組指定設備工作方式的設備類別。這些設備中有許多已具有預定義的格式,設備必須遵守這些數(shù)據(jù)格式才能正常工作。這使得鼠標、鍵盤和U盤等設備可在所有平臺上工作,而無需在首次連接時安裝驅(qū)動程序。這些設備實際不需要任何類型的,因為其所含數(shù)據(jù)是已知的。其他不使用預定義數(shù)據(jù)格式的設備可以靈活地發(fā)送自定義應用數(shù)據(jù)。由于大多數(shù)USB都是針對預定義數(shù)據(jù)應用,而不是自定義應用設計的,因此沒有針對這些設備類型的內(nèi)置安全或加密機制。

            對于自定義USB應用的開發(fā)人員來說, USB分析儀的廉價(甚至免費)和易用使問題更加棘手。這些分析儀可捕捉USB通信,因此任何人只需非常少的專業(yè)技術(shù)知識便可看到USB通信并可能獲得機密信息。

            設計注意事項

            創(chuàng)建更安全的USB自定義應用的第一步是選擇滿足應用需求的加密算法。現(xiàn)在有多種算法可供選擇,它們在提供的安全性、大小、加密或解密數(shù)據(jù)塊所需時間以及對各種編譯器的固有支持方面有所差異。高級加密標準(Advanced Encryption Standard,AES)是一個很好的選擇,因為它相當安全。例如,美國政府已批準將AES用于標有SECRET(機密)和TOP SECRET(絕密)且對密鑰大小有不同要求的應用(http://www.cnss.gov/Assets/pdf/cnssp_15_fs.pdf)。AES可通過一段規(guī)模不大的代碼(約8 KB)實現(xiàn)。就提供的安全級別而言,AES是一種較好的算法。此外,。NET Framework默認支持AES。

            .NET framework默認支持的算法還有數(shù)據(jù)加密標準(Data Encryption Standard,DES)和三重數(shù)據(jù)加密標準(Triple Data Encryption Standard,TDES),它們都能用來替代ASE算法,因而對此無需花費過多時間。與AES相比,它們速度較慢,安全性較差且代碼更大,但仍在許多應用中使用。

            微型加密算法(XTEA)的第二版也是一個備選算法。它在默認情況下不受編譯器工具支持,但其非常簡單且容易實現(xiàn)。XTEA是最小的可用算法之一,特別適合于存儲空間較小的應用。XTEA的安全級別不如AES明確,因為它尚未經(jīng)過嚴格的測試。但根據(jù)迄今為止執(zhí)行的測試來看,它還是比較安全的。有關(guān)各種加密算法的更多信息,請參見圖1以及Microchip應用筆記AN953和AN1044。

          圖1 AES和XTEA加密算法比較

            選擇加密算法時首先要考慮其有效密鑰大小以及是否應該使用加密。一些國家(包括美國)將具有特定密鑰大小的算法視為軍需品。因此,這些算法的出口會受到限制。根據(jù)算法類型和所用密鑰大小,應用程序可能需要政府批準才能出口。

            選擇算法后,下一步是考慮塊大小對應用的影響。在本例中,AES的塊大小為16字節(jié)。這意味著應用通過USB總線發(fā)送的數(shù)據(jù)量必須是16字節(jié)的倍數(shù)。如果需要發(fā)送小于16字節(jié)的數(shù)據(jù)載荷,則需要填充數(shù)據(jù)以滿足塊大小要求。如果使用填充法將數(shù)據(jù)塊補充完整,還必須將這些字節(jié)傳送到解密設備。加密算法的設計機制是:只要某一位出錯或丟失,數(shù)據(jù)塊便無法解密。

            Microchip Technology(美國微芯科技公司)提供免費的USB協(xié)議棧,其中包括多個自定義應用風格的演示,以及AES、DES、XTEA和其他加密算法的實現(xiàn)。該協(xié)議??稍谖⑿竟镜木W(wǎng)站中找到,數(shù)據(jù)加密庫(部件編號SW300052)也可在網(wǎng)站內(nèi)找到。該協(xié)議棧和數(shù)據(jù)加密庫可與免費的Microsoft Visual Studio C++ Express Edition編譯器及其對AES算法的固有支持相結(jié)合,以創(chuàng)建加密的自定義USB應用示例。

            需要考慮的最后一點是加密密鑰的生成和維護。對于目前可用的高級加密算法而言,數(shù)據(jù)失竊的根源通常并不是加密算法,而是系統(tǒng)背后的人。對稱加密算法(例如AES、TDES和XTEA)具有快速、小巧和安全等優(yōu)點。其主要缺點是雙方必須都知道同一密鑰才能加密或解密數(shù)據(jù)。一旦系統(tǒng)被破解,就會始終保持在破解狀態(tài),因此破解將來的傳輸不再需要額外的精力。這正是存在非對稱加密算法的主要原因。非對稱算法創(chuàng)建一個公鑰和一個私鑰,這樣在交換信息時無須使用共享密鑰。這有助于防止系統(tǒng)的共享密鑰泄露并保護系統(tǒng)免遭“破解”,因為每次連接都生成一個新算法。非對稱算法常用于交換惟一生成的可用對稱密鑰,以使后續(xù)通信安全快速。非對稱算法的主要缺點是,與對稱加密算法相比,需要占用大量固件空間才能實現(xiàn),且速度非常慢。本文介紹的示例中使用對稱加密算法,非對稱算法的實現(xiàn)過程十分相似。

          c++相關(guān)文章:c++教程



          上一頁 1 2 下一頁

          評論


          相關(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); })();