a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 實現安全的USB傳輸

實現安全的USB傳輸

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

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

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

  設計注意事項

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

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

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

圖1 AES和XTEA加密算法比較

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

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

  Microchip Technology(美國微芯科技公司)提供免費的USB協議棧,其中包括多個自定義應用風格的演示,以及AES、DES、XTEA和其他加密算法的實現。該協議棧可在微芯公司的網站中找到,數據加密庫(部件編號SW300052)也可在網站內找到。該協議棧和數據加密庫可與免費的Microsoft Visual Studio C++ Express Edition編譯器及其對AES算法的固有支持相結合,以創建加密的自定義USB應用示例。

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

c++相關文章:c++教程



上一頁 1 2 下一頁

評論


技術專區

關閉